edited by
25,180 views
86 votes
86 votes

While opening a $TCP$ connection, the initial sequence number is to be derived using a time-of-day (ToD) clock that keeps running even when the host is down. The low order $32$ bits of the counter of the ToD clock is to be used for the initial sequence numbers. The clock counter increments once per milliseconds. The maximum packet lifetime is given to be $64$s.

Which one of the choices given below is closest to the minimum permissible rate at which sequence numbers used for packets of a connection can increase?

  1. $0.015$/s
  2. $0.064$/s
  3. $0.135$/s
  4. $0.327$/s
edited by

7 Answers

7 votes
7 votes
  • To answer this question. we should know a bit about TCP Sequence numbers.
  • Also, note that the question is worded extremely poorly. Packet is used, in place of Segment. And the last line of the question is criminally faulty.

How TCP ensures in-order delivery?

All the segments are given unique sequence numbers, through which the receiver can know the sequence of segments. The first TCP segment is given a random sequence number, sometimes called the Initial Sequence Number, or ISN.


Now, the sequence numbers of the next segments (after the first segment) depend on the ISN.

Suppose, ISN = 500. And each packet has 20 Bytes.

»Sequence number of second packet = 520

»Sequence number of third packet = 540

»Sequence number of fourth packet = 560... and so on.

Sequence number actually tells you the number of the first byte of the segment.


 

Now, coming to the question, it asks when can the ISN be changed? (Read the question thrice, first)

Given that, ISN depends on a ToD clock's last 32 bits. This clock increments every millisecond. So, we can change ISN every millisecond, ie,  $1/10^{-3}$ or 1000/second. 


This would be wrong because then, the sequence numbers would change abruptly.

Suppose, ISN = 500. And each packet has 20 Bytes.

»Sequence number of second packet = 784

»Sequence number of third packet = 116

»Sequence number of fourth packet = 9744... and so on.

How would the receiver know the sequence here? It can't.


 

We're given that a segment lasts 64 seconds maximum. So, for 64 seconds, whatever sequence numbers we're adding to our segments, need to depend on ISN.

After 64 seconds, the first packet expires, hence, the ISN expires and the sequence numbers of the following packet stop making sense. So, we need a new ISN now.

Hence, we can do it once every 64 seconds = 1/64 = Option A.


Using this, Sequence numbers would look like:

Suppose, ISN = 500. And each packet has 20 Bytes.

»Sequence number of second packet = 520

»Sequence number of third packet = 540

»Sequence number of fourth packet = 560.

New ISN = 800.

»Sequence number of fifth packet = 800

»Sequence number of sixth packet = 820

»Sequence number of seventh packet = 840... and so on. Which is fine.


 

Option A.

6 votes
6 votes
Here not any problem like ambiguity.

since if we increment 1 per 1ms and life time of packet is given 64s. But i think question is not asking in this scenario.TCP uses Sliding Window Protocol.

Here Minimum Permissible rate may be confusing but think like that if life time of packet is given 64s so this is max . Means if we increment seq.no per 64 sec is allowed but more than 64s should not be allowed. If we keep more than 64s for 1 sequence number we need to wait for next sequence without any reason.

so ans should be=1/64s = 0.015/s
reshown by
0 votes
0 votes
sequence no will be generated in every ms but it will be used after 64 sec. so the minimum rate will be

1 byte/seq no per 64 seconds = 1/64=0.015 B/s

If it would have asked for maximum then

1 ms=1

1 sec=1000

64 sec=64000

64000 per 64 sec=64000/64=1000/s
Answer:

Related questions