- 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.