Equally, though Stevens implies that MSS=MTU40, the increasing use
of TCP options (especially Timestamp, see section 24.5) means that this is
not always the case48. RFC 2525 (section 2.18) points out that failure to
allow for this, especially in the presence of Path MTU discovery (section
24.2) can result in a complete failure to transmit. I have seen
Windows 2000 systems advertise an MSS of
, and refuse
to send larger segments than this, even though the other end
advertises 1460.
Not all transitions in this diagram are supported by all applications. Barry Margolin (barmar@genuity.com) writes as follows.
Both of these issues (LISTEN toSYN_SENT
transition and simultaneous open) are probably more applicable to peer-peer protocols than client-server protocols. An example might be BGP (note: it doesn't make use of the above features, but it could have been designed to), where the neighboring routers establish TCP connections with each other in order to exchange routing information; if it were specified to use the same port as both the source and destination (which would not be unreasonable, since there's no need for multiple connections between the same two peers, except for theTIME_WAIT
delay between reuse of the same ports) then a simultaneous open would occur if both peers tried to connect to the other at the same time. And aLISTEN
toSYN_SENT
could happen if one router first tries listening for an incoming connection, and when a timeout occurs it then tries to connect it.
Boot time is not the only means by which a crashed IP address may be restarted -- for instance, an IP address in a modem pool may be re-assigned within seconds of its last use (or even shorter -- ISDN, for instance). Add to this any number of 'embedded' devices that are quickly restartable, and there are plenty of systems that might be thought to be subject to such a delay on sending new packets.And another reader says the following
People have effectively wiped out the MSL delay with dynamic IP address assignment, where the addresses are assigned to different clients whenever they are called for -- at periods when the pool is busy, of course, that would mean turnover of addresses within a few seconds.
I'd imagine (but I haven't run an ISP, so I don't know) that this has been done for quite some time -- with firewalls being implemented at more clients, of course, it's anyone's guess as to how long we'll go before we have to re-implement the MSL delay on assigning IP addresses to new dialups, or explain to our users that they'll be responding with RSTs to random machines for their first two or three minutes of activity :-)