connection
Click on the red underlined text to get to the source
... host is directly connected to some particular
network(s); its connection to the Internet is only
conceptual. Two hosts ...
... transport layer or in application programs. All
connection control information is thus co-located with the
end points of the communication, so it will be lost only
...
... Source Quench may be in the transport layer (for
connection-oriented protocols like TCP) or in the
application layer ...
... characteristics of the path tend to remain
approximately constant over a time period longer than a
single typical host-host transport connection.
Therefore, a route cache entry is a natural place to
...
... hash
table to speed the lookup, or by giving a connection-
oriented transport protocol a "hint ...
... gateway quickly
enough that transport-layer connections will not break
before an alternate gateway can be selected.
...
... TCP or any connection-oriented transport protocol
should be able to give negative advice, e.g.,
...
... timer to a value Tr, which must be small enough to
allow detection of a dead gateway before transport
connections time out.
...
... (2) An application MUST be able to explicitly specify the
source address for initiating a connection or a
request.
...
... This data will be used by the transport layer to locate the
connection state information, if any.
...
... must deal directly with end-to-end communication problems that
a connection-oriented protocol would have handled -- e.g.,
retransmission for reliable delivery ...
... 8-bit bytes). TCP is used by those applications
needing reliable, connection-oriented transport service, e.g.,
mail (SMTP ...
... reserved ports by permitting only privileged users to
open TCP connections with those port values. This is
perfectly reasonable as long as the host ...
... implementations reserve 32-bit fields for the send and
receive window sizes in the connection record and do all
window computations with 32 bits.
...
... data stream. There MUST be a way
for the application to learn how much urgent data remains to
be read from the connection, or at least to determine
whether or not more urgent data remains to be read.
...
... notification will
allow the application to go into "urgent mode", reading
data from the TCP connection. This allows control
commands to be sent to an application whose normal
input buffers ...
... TCP MUST be prepared to handle an illegal option length
(e.g., zero) without crashing; a suggested procedure is to
reset the connection and log the reason.
...
... implementors that if two
applications attempt to simultaneously connect to each
other, only one connection is generated instead of two.
This was an intentional design decision; don't try to
"fix" it.
...
... Note that a TCP implementation MUST keep track of whether a
connection has reached SYN_RCVD state as the result of a
...
... Closing a Connection: RFC-793std7 Section 3.5 ...
...
A TCP connection may terminate in two ways: (1) the normal
TCP close sequence using a FIN handshake ...
... RST segments are sent and the
connection state is immediately discarded. If a TCP
connection is closed by the remote site, the local
...
... connection state is immediately discarded. If a TCP
connection is closed by the remote site, the local
application MUST be informed whether it closed normally or
was aborted.
...
... TCP close sequence delivers buffered data
reliably in both directions. Since the two directions of a
TCP connection are closed independently, it is possible for
a connection to be "half closed," i.e., closed in only one
...
... TCP connection are closed independently, it is possible for
a connection to be "half closed," i.e., closed in only one
direction, and a host is permitted to continue sending data
...
... direction, and a host is permitted to continue sending data
in the open direction on a half-closed connection.
...
... TCP close sequence, so
that an application that has called CLOSE cannot continue to
read data from the connection. If such a host issues a
CLOSE call while received data is still pending in TCP ...
...
When a connection is closed actively, it MUST linger in
TIME-WAIT state for a time 2xMSL (Maximum Segment ...
... (1) assigns its initial sequence number for the new
connection to be larger than the largest sequence
number it used on the previous connection incarnation,
...
... connection to be larger than the largest sequence
number it used on the previous connection incarnation,
and
...
...
Some systems have not implemented half-closed
connections, presumably because they do not fit into
the I/O model of their particular operating system. On
...
... operating system. On
these systems, once an application has called CLOSE, it
can no longer read input data from the connection; this
is referred to as a "half-duplex" TCP close sequence.
...
... algorithm of TCP requires that the
connection state remain defined on (at least) one end
of the connection ...
... connection state remain defined on (at least) one end
of the connection, for a timeout period of 2xMSL, i.e.,
4 minutes. During this period, the (remote socket,
...
... socket,
local socket) pair that defines the connection is busy
and cannot be reused. To shorten the time that a given
port ...
... sender and
receiver have a large total buffer space for the
connection. SWS can only occur during the transmission
of a large amount of data; if the connection goes
...
... connection. SWS can only occur during the transmission
of a large amount of data; if the connection goes
quiescent, the problem will disappear. It is caused by
typical straightforward implementation of window
...
... problem. It does have the effect of clumping
characters over Telnet connections; this may initially
surprise users accustomed to single-character echo, but
...
... sender. The extreme case occurs with
single-character segments on TCP connections using the
Telnet protocol for remote login ...
... sender MAY also
retransmit old data beyond SND.UNA+SND.WND, but SHOULD NOT
time out the connection if data beyond the right window edge
is not acknowledged. If the window shrinks to zero, the TCP ...
... reliably transmitted by TCP. If zero window probing is
not supported, a connection may hang forever when an
ACK segment ...
... Every passive OPEN call either creates a new connection
record in LISTEN state, or it returns an error; it MUST NOT
...
... an OPEN call that will functionally allow an application to
LISTEN on a port while a connection block with the same
local port is in SYN ...
... Some applications (e.g., SMTP servers) may need to
handle multiple connection attempts at about the same
time. The probability of a connection attempt failing
...
... handle multiple connection attempts at about the same
time. The probability of a connection attempt failing
is reduced by giving the application some means of
listening for a new connection ...
... connection attempt failing
is reduced by giving the application some means of
listening for a new connection at the same time that an
earlier connection attempt is going through the three-
...
... listening for a new connection at the same time that an
earlier connection attempt is going through the three-
way handshake.
...
... passive OPEN calls, or they may allow
"cloning" of LISTEN-state connections from a single
passive OPEN call.
...
... state, Check for SYN, p. 68: When the
connection enters ESTABLISHED state, the following
variables must be set:
...
... SYN-RECEIVED state and if
the connection was initiated with a passive OPEN, then
return this connection ...
... connection was initiated with a passive OPEN, then
return this connection to the LISTEN state and return.
Otherwise...".
...
... SYN-RECEIVED state, p. 72: When the
connection enters ESTABLISHED state, the variables
listed in (c) must be set.
...
... It would be better to notify the application of the
timeout rather than letting TCP force the connection
closed. However, see also Section 4.2.3.5.
...
...
The following values SHOULD be used to initialize the
estimation parameters for a new connection:
...
... tied up with data that has been received and
acknowledged but which the user process has not yet
consumed. When the connection is quiescent, RCV.WND =
RCV.BUFF and RCV.USER = 0.
...
... MSS is the effective send MSS for the
connection (see Section 4.2.2.6). When the inequality
is satisfied, RCV.WND is set to RCV.BUFF-RCV.USER.
...
... an application to disable the Nagle algorithm on an
individual connection. In all cases, sending data is also
subject to the limitation imposed by the Slow Start
algorithm ...
... the sender to calculate Max(SND.WND), the maximum send
window it has seen so far on the connection, and to use
this value as an estimate of RCV.BUFF. Unfortunately,
this can only be an estimate; the receiver ...
... TCP Connection Failures ...
... threshold R2 greater than R1, close the
connection.
(d) An application MUST be able to set the value for R2 for
...
...
(d) An application MUST be able to set the value for R2 for
a particular connection. For example, an interactive
application might set R2 to "infinity," giving the user
control over when to disconnect.
...
... segment
for at least 3 minutes. The application can close the
connection (i.e., give up on the open attempt) sooner, of
course.
...
... implementations, although this practice is not universally
accepted. If keep-alives are included, the application MUST
be able to turn them on or off for each TCP connection, and
they MUST default to off.
...
... no data or
acknowledgement packets have been received for the
connection within an interval. This interval MUST be
configurable and MUST default to no less than two hours.
...
... MUST NOT interpret failure to respond to any specific probe
as a dead connection.
...
... keep-alive" mechanism periodically probes the other
end of a connection when the connection is otherwise
idle, even when there is no data ...
... probes the other
end of a connection when the connection is otherwise
idle, even when there is no data to be sent. The TCP ...
... specification does not include a keep-alive mechanism
because it could: (1) cause perfectly good connections
to break during transient Internet failures; (2)
...
... consume unnecessary bandwidth ("if no one is using the
connection, who cares if it is still good?"); and (3)
cost money for an Internet path that charges for
...
... keep-alive mechanism. To confirm that an idle
connection is still active, these implementations send
a probe ...
... SND.NXT-1 and may or may not contain one garbage octet
of data. Note that on a quiet connection SND.NXT =
RCV.NXT ...
... return an acknowledgment segment, confirming that the
connection is still live. If the peer has dropped the
connection due to a network ...
... connection is still live. If the peer has dropped the
connection due to a network partition or a crash, it
...
... indefinitely and consume resources unnecessarily if a
client crashes or aborts a connection during a network
failure.
...
... host does not specify the
local IP address when actively opening a TCP connection,
then the TCP MUST ask the IP layer ...
... At all other times, a previous segment has either been sent
or received on this connection, and TCP MUST use the same
local address ...
... An application MUST be able to specify a source route when
it actively opens a TCP connection, and this MUST take
precedence over a source route received in a datagram ...
...
When a TCP connection is OPENed passively and a packet
arrives with a completed IP Source Route ...
... route and use it
for all segments sent on this connection. If a different
source route arrives in a later segment ...
... TCP MUST act on an ICMP error message passed up from the IP
layer, directing it to the connection that created the
error. The necessary demultiplexing ...
... TCP MUST react to a Source Quench by slowing
transmission on the connection. The RECOMMENDED
procedure is for a Source Quench to trigger a "slow
start ...
... Since these Unreachable messages indicate soft error
conditions, TCP MUST NOT abort the connection, and it
SHOULD make the information available to the
application.
...
... ERROR_REPORT routine, or it could merely note the
message and report it to the application only when
and if the TCP connection times out.
o Destination ...
... algorithms
that control the message flow over the connection --
packetizing, managing the window, sending
acknowledgments, etc. These design decisions are
...
...
ERROR_REPORT(local connection name, reason, subreason)
...
... Service (TOS) for segments that are sent on a connection.
It not required, but the application SHOULD be able to
change the TOS ...
... It not required, but the application SHOULD be able to
change the TOS during the connection lifetime. TCP SHOULD
...
... The TOS will be specified independently in each direction on
the connection, so that the receiver application will
specify the TOS ...
... their communication during the lifetime of a
connection, and therefore would like to change the TOS
specification.
...
... TCP-based applications need to specify the local
IP address to be used to open a particular connection;
FTP is an example.
...
... passive OPEN call with a specified "local IP address"
parameter will await an incoming connection request to
that address. If the parameter is unspecified, a
...
... address. If the parameter is unspecified, a
passive OPEN will await an incoming connection request
to any local IP address, and then bind the local IP
address ...
... to any local IP address, and then bind the local IP
address of the connection to the particular address
that is used.
...
... active OPEN call, a specified "local IP address"
parameter will be used for opening the connection. If
the parameter is unspecified, the networking software
will choose an appropriate local IP address ...
... will choose an appropriate local IP address (see
Section 3.3.4.2) for the connection
...
... Use clock-driven ISN selection |4.2.2.9 |x| | | | |
| | | | | | |
Opening Connections | | | | | | |
Support simultaneous open attempts |4.2.2.10|x| | | | |
SYN ...
...
| | | | | | |
Closing Connections | | | | | | |
RST can contain data |4.2.2.12| |x| | | |
...
... RST can contain data |4.2.2.12| |x| | | |
Inform application of aborted conn |4.2.2.13|x| | | | |
Half-duplex close connections |4.2.2.13| | |x| | |
Send RST to indicate data lost |4.2.2.13| |x| | | |
...
... Application can disable Nagle algorithm |4.2.3.4 |x| | | | |
| | | | | | |
Connection Failures: | | | | | | |
Negative advice to IP on R1 ...
... IP on R1 retxs |4.2.3.5 |x| | | | |
Close connection on R2 retxs |4.2.3.5 |x| | | | |
ALP can set R2 |4.2.3.5 |x| | | | |1
Inform ALP of R1 ...
... IP |4.2.4.2 | |x| | | |
ALP can change TOS during connection |4.2.4.2 | |x| | | |
Pass received TOS up to ALP |4.2.4.2 | | |x| | |
...
