Definition of MSL according to RFC 793:
Maximum Segment Lifetime, the time a TCP segment can exist in the internetwork system. Arbitrarily defined to be 2 minutes.
Definition of TTL according to RFC 791:
This field indicates the maximum time the datagram is allowed to remain in the internet system. If this field contains the value zero, then the datagram must be destroyed. This field is modified in internet header processing. The time is measured in units of seconds, but since every module that processes a datagram must decrease the TTL by at least one even if it process the datagram in less than a second, the TTL must be thought of only as an upper bound on the time a datagram may exist. The intention is to cause undeliverable datagrams to be discarded, and to bound the maximum datagram lifetime.
So my question is : Is MSL basically the time equivalent of TTL (i.e. does MSL simply tell the time required to cover TTL number of hops)?
Best Answer
No.
IP TTL is actually only decreased by routers when receiving a packer, so is effectively a "hop count". (a packet is never in transit on a single equipment for as long as one second, so the time-based decrement has no chance to happen, but I think it has never been implemented anywhere, although it's hard to prove a negative).
This is confirmed by RFC6864 section 3.2 which state:
So IP TTL not being time-base has nothing to do with the TCP MSL.
Closely related RFC1122 section 3.3.2 discuss the impact of those 2 mechanism on fragment reassembly:
(emphasis mine)