The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
+5 votes
Consider a long-lived $TCP$ session with an end-to-end bandwidth of $1$ $\text{Gbps}$ (-$10^9$ bits-per-second). The session starts with a sequence number of $1234$. The minimum time (in seconds, rounded to the closet integer) before this sequence number can be used again is ____
asked in Computer Networks by Boss (18k points)
edited ago by | 3.4k views
answer could be anything 34 or 35
it says time "before" which it can be reused
How to calculate Wrap Around Time(after this much time sender can reuse the first sequence number i.e. 1234 here) in TCP.

Wrap Around Time = (Possible sequence no. in TCP)/ Given Bandwidth

Note: Bandwidth should be in Byte/Second, so convert if it's given in bits/second. This is because in TCP 1 Byte Conume 1 Sequence no.

WRAP AROUND TIME = (2^32 * 2^3)/10^9

                                       =  34.35 seconds

We can reuse Seq. No. 1234 after this much time. Closest answer would be 35 not 34, because if you reuse 1234 after 34 second, in the worst case what can happen is (Assume initially 1234 got delayed for 34 seconds) old seq. no. and new seq. no. may reach at receiver at the same time i.e.after 34 seconds so receiver can't identify uniquely (receiver will think, Is it old segment or new segment ?)

Hence 35 seconds should be the right answer.
@KULDEEP  you used a word "after" in your explanation, but in question it is "before".
Lets say we use integers only.

34s is the time before it..... after which this sequence number can be reused.
35s is the time before it.... after which this sequence number can be reused.

Which one is correct? You read again and say.
34s is the time before it, so that it can be used in 35th second.

Sir You are saying "34s is the time before it, so that it can be used in 35th second."

If 34 is the answer, then according to question I can also say "34s is the time before it, so that it can be used in 34.1 second." but as we already know at 34.1 second, we cant use it. So answer is 35. isnt it?

It can be reused in 35 or not? So 35 need not to be before it. 34  will be before it..
Conclusion:  The ans is 34-35 after it is challenged. Previously it was 34 only.
So friends, no need to worry about ambiguous questions.
just answer whatever you think is right, later you can challenge to prove your point right.

3 Answers

+19 votes
Best answer

in another words qsn is asking to find Wrap-around time

$T_{minimum}=T_{wrap-around} = \frac{2^{32}*8}{10^9}=34.35s$

rounding to closest integer, we will get 34

answered by Boss (29k points)
selected by
We have to round it to 35 not 34 because in 34 sequence numbers will collide .
it is asking to round off the minimum time to closest integer

now, minimum time = 34.35, and rounding it to nearest integer we will get 34.
i think $35$ should be answer .Becuase $34$ is incorrect as on $34$sec , seq no is still below $1234$
Yeah it's asking for rounding off but 34 is not possible right for wrap around time so we have to choose 35
I think in rounding off some truncation error is acceptable hence answer should be 34.
I was confused between 34 and 35. Answered it 34.  After discussion I was thinking 35 which seems conceptually correct.  But again the word "Before" is giving me a hope that 34 is correct. :D
34 is the correct choice. Actual answer is 34.35 and nearest integer is 34.
Can anyone please explain in detail how to solve such tpe of question,i.e, without using any formula and arriving at the answer conceptually.
Did anyone challenge this answer key?
+7 votes

Since TCP is a byte stream protocol, every byte is numbered using a sequence number.

Every packet can loop around the internet for some period of time, which is the life time of the packet. Therefore, to ensure that there are no conflicting sequence numbers, we have to find out the Wrap Around Time of the sequence numbers after which the number is used again. 

Now this Wrap Around Time $T_{WAT}$ should be greater than LifeTime of the packet $T_{LT}$, i.e $T_{WAT} > T_{LT}$

We have $32$ bits for sequence number field in the TCP header.

Given Bandwidth = $10^9$ bps(bits per second)

$\therefore 10^9$ bits  can be sent out in  $1$ second

$\therefore 2^{32} * 8 $ bits  can be sent out in  $x$ seconds ($\because$ TCP is byte streamed)

$\therefore x = \frac{2^{32} * 8}{10^9} = 34.359 $ seconds

Since they have asked the closest integer, answer is $34$

P.S Initially I was convinced that answer should be $34$, however, if we consider the statement "The minimum time (in seconds, rounded to the closet integer) before this sequence number can be used again", then I might incline towards $35$, although official key says $34$.

answered by Active (1.1k points)
Your answer is great...In which book the wrapping around of sequence numbers is mentioned?..I don't remember reading about this in ferouzan.
I understood the concept through various resources on tcp header itself.
+5 votes

Answer has been Modified in the Final Answer Key from GATE officials and now it is in Range from 34 to 35.

answered by Boss (13.2k points)

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

36,162 questions
43,620 answers
42,880 users