From RFC 793:

To be sure that a TCP does not create a segment that carries a sequence number which may be duplicated by an old segment remaining in the network, the TCP must keep quiet for a maximum segment lifetime (MSL) before assigning any sequence numbers upon starting up or recovering from a crash in which memory of sequence numbers in use was lost. For this specification the MSL is taken to be 2 minutes.

Seems contradicting what RFC 791 states:

Network delays are incurred in other ways, e.g., satellite links, which can add seconds of delay even though the Time to Live (TTL) is not decremented by a corresponding amount. There is thus no enforcement mechanism to ensure that datagrams older than 120 seconds are discarded.

I understand that MSL and TTL are used for different purposes reading this.

Provided that TCP segments are forwarded between routers as IP packets (considering no fragmentation for the sake of easier understanding), and IP packets have a Time To Live (TTL) field that works as a hop count and from RFC 791 seems like that is not time-related, how can routers in the network or TCP entities check that MSL is expired and therefore discard the segment?

  • Did any answer help you? if so, you should accept the answer so that the question does not keep popping up forever, looking for an answer. Alternatively, you could post and accept your own answer.
    – Ron Maupin
    Commented Dec 23, 2021 at 16:09

1 Answer 1


They don't. The MSL is an assumption. We assume that no segment takes more than 2 minutes to be delivered, and therefore it is safe to reuse a segment number if we wait for 2 minutes or more.

  • I think I am missing something... What kind of safety comes from an arbitrary assumption? Is it assumed that after 2 minutes the segment will be delivered or discarded by some other way? If not, what stops an obsolete segment from reappearing back to the sender after being in the network for 5 minutes?
    – giuliotal
    Commented Jan 26, 2021 at 19:57
  • @GiulioTalarico why would it be in the network for 5 minutes? Commented Jan 26, 2021 at 19:57
  • Hypothetically some kind of bottleneck. Why not? My question is how can the sender be sure that an obsolete segment won't interfere after MSL?
    – giuliotal
    Commented Jan 26, 2021 at 20:02
  • @GiulioTalarico if an obsolete segment interferes with MSL then the sender calls up the network admin's boss and demands to know why the network is delaying packets for 5 minutes. That's how he knows. Do you know what "assumption" means? Commented Jan 26, 2021 at 20:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.