tcp msl timeout implementation in linux
- by iamrohitbanga
The following is given in the book TCP IP Illustrated by Stevens
  Quiet Time Concept The 2MSL wait
  provides protection against delayed
  segments from an earlier incarnation
  of a connection from being interpreted
  as part of a new connection that uses
  the same local and foreign IP
  addresses and port numbers. But this
  works only if a host with connections
  in the 2MSL wait does not crash.
  
  What if a host with ports in the 2MSL
  wait crashes, reboots within MSL
  seconds, and immediately establishes
  new connections using the same local
  and foreign IP addresses and port
  numbers corresponding to the local
  ports that were in the 2MSL wait
  before the crash? In this scenario,
  delayed segments from the connections
  that existed before the crash can be
  misinterpreted as belonging to the new
  connections created after the reboot.
  This can happen regardless of how the
  initial sequence number is chosen
  after the reboot.
  
  To protect against this scenario, RFC
  793 states that TCP should not create
  any connections for MSL seconds after
  rebooting. This is called the quiet
  time
  
  Few implementations abide by this
  since most hosts take longer than MSL
  seconds to reboot after a crash.
Do operating systems wait for 2MSL seconds now after a reboot before initiating a TCP connection. The boot times are also less these days. Although the ports and sequence numbers are random but is this wait implemented in Linux?
Also RFC 793 says that this wait is not required if history is maintained.
Does linux maintain any history of used sequence numbers for connections to handle this case?