title: At the level of IP, does "leave the connection open" have a specific technical meaning - such as intermediate gateways storing an IP map entry?
body: <p>I am an experienced socket-level programmer in C++, but I do not understand what happens at the IP network level when a <strong>socket connection is left open</strong> (vs. being closed by calling the <code>close</code> function on the socket from within code).</p>
  
  <p>I have studied the IP header and tried to understand if leaving a socket open has any implications at the IP level.</p>
  
  <p>At the TCP level, leaving a socket open could make sense to me, because perhaps that means the "sequence number" field in the TCP header continues to increment.  However, that would be a purely endpoint-based implementation, and therefore could not cut down on transit time for TCP packets.  It is my understanding that <strong>leaving a connection open</strong> generally means that transit time between endpoints across the internet is decreased for packets.</p>
  
  <p>The question is, does it mean anything at the IP level to leave a socket connection open?</p>
  
  <p>The best guess I have is that if a socket connection remains open, that intervening gateways along the complete IP network path will attempt to leave an entry in their mapping table so that the next hop can be executed immediately, without needing to do a broadcast to all connected gateways in order to determine the next hop.</p>
  
  <p>(Perhaps the overhead of DNS lookup is also avoided in this fashion.)</p>
  
  <p>Am I correct in guessing that "leaving a connection open" corresponds to map entries remaining in place on intermediate IP gateways (which speeds up packet transfer)?</p>