0

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)?

1
  • TTL is a field in each packet, but MSL is a parameter in the algorithm.
    – user253751
    Jun 17, 2020 at 15:06

2 Answers 2

3

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:

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.

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:

DISCUSSION: The IP specification says that the reassembly timeout should be the remaining TTL from the IP header, but this does not work well because gateways generally treat TTL as a simple hop count rather than an elapsed time. If the reassembly timeout is too small, datagrams will be discarded unnecessarily, and communication may fail. The timeout needs to be at least as large as the typical maximum delay across the Internet. A realistic minimum reassembly timeout would be 60 seconds.

It has been suggested that a cache might be kept of round-trip times measured by transport protocols for various destinations, and that these values might be used to dynamically determine a reasonable reassembly timeout value. Further investigation of this approach is required.

If the reassembly timeout is set too high, buffer resources in the receiving host will be tied up too long, and the MSL (Maximum Segment Lifetime) [TCP:1] will be larger than necessary. The MSL controls the maximum rate at which fragmented datagrams can be sent using distinct values of the 16-bit Ident field; a larger MSL lowers the maximum rate. The TCP specification [TCP:1] arbitrarily assumes a value of 2 minutes for MSL. This sets an upper limit on a reasonable reassembly timeout value.

(emphasis mine)

5

TCP MSL isn't a field carried in packets/segments. It's a time interval used by the TCP state-machine. The values and their uses are very different. IP TTL is mainly needed for loop prevention, while TCP MSL provides a totally different function mostly related to TCP connection destruction/shutdown. Here is a good SO thread on the topic.

Historically, the IP TTL field was also a time interval; not a number of hops. That definition changed long ago, but it is why TTL is called time to live while the IPv6 functional equivalent is named hop limit.

1
  • 3
    Actually, the TTL was both time and hop count based. Quoting RFC791: "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".
    – JFL
    Jun 15, 2020 at 10:55

Your Answer

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

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