This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ns up. Intermediate
routers can crash and reboot, phone lines may go down and back up, but as long as
neither host at the ends of the connection reboots, the connection remains established.
This assumes that neither application-the client or server-has application-level timers to
detect inactivity, causing either application to terminate. Recall at the end of Section 10.7
that BGP sends an application probe to the other end every 30 seconds. This is an
application timer that is independent of the TCP keepalive timer.
There are times, however, when a server wants to know if the client's host has either
crashed and is down, or crashed and rebooted. The keepalive timer, a feature of many
implementations, provides this capability.
Keepalives are not part of the TCP specification. The Host Requirements RFC provides three reasons
not to use them: (1) they can cause perfectly good connections to be dropped during transient failures,
(2) they consume unnecessary bandwidth, and (3) they cost money on an internet that charges by the
packet. Nevertheless, many implementations provide the keep-alive timer. The keepalive timer is a controversial feature. Many feel that this polling of the other end
has no place in TCP and should be done by the application, if desired. This is one of the
religious issues, because of the fervor expressed by some on the topic.
The keepalive option can cause an otherwise good connection between two processes to
be terminated because of a temporary loss of connectivity in the network joining the two
end systems. For example, if the keepalive probes are sent during the time that an
intermediate router has crashed and is rebooting, TCP will think that the client's host has
crashed, which is not what has happened.
The keepalive feature is intended for server applications that might tie up resources on
behalf of a client, and want to know if the client host crashes. Many versions of the
Telnet server and Rlogin server enable the keepalive option by default.
A common example showing the need for the keepalive feature nowadays is when file:...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12