This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ced by the other end.
This avoidance of fragmentation works only if either host is directly connected to a network
with an MTU of less than 576. If both hosts are connected to Ethernets, and both announce an
MSS of 536, but an intermediate network has an MTU of 296, fragmentation will occur. The
only way around this is to use the path MTU discovery mechanism (Section 24.2). 18.5 TCP Half-Close
TCP provides the ability for one end of a connection to terminate its output, while still
receiving data from the other end. This is called a half-close. Few applications take advantage
of this capability, as we mentioned earlier.
To use this feature the programming interface must provide a way for the application to say "I
am done sending data, so send an end-of-file (FIN) to the other end, but I still want to receive
data from the other end, until it sends me an end-of-file (FIN)."
The sockets API supports the half-close, if the application calls shutdown with a second argument of 1, instead
of calling close. Most applications, however, terminate both directions of the connection by calling close. Figure 18.10 shows a typical scenario for a half-close. We show the client on the left side
initiating the half-close, but either end can do this. The first two segments are the same: a FIN
by the initiator, followed by an ACK of the FIN by the recipient. But it then changes from
Figure 18.4, because the side that receives the half-close can still send data. We show only one
data segment, followed by an ACK, but any number of data segments can be sent. (We talk
more about the exchange of data segments and acknowledgments in Chapter 19.) When the end
that received the half-close is done sending data, it closes its end of the connection, causing a
FIN to be sent, and this delivers an end-of-file to the application that initiated the half-close.
When this second FIN is acknowledged, the connection is completely closed. file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustr...
View Full Document
- Spring '12