RFC 793:TRANSMISSION CONTROL PROTOCOL
RFC-Ref

connection


Click on the red underlined text to get to the source

... TCP is a connection-oriented, end-to-end reliable protocol designed to fit into a layered hierarchy of protocols which support multi-network ...
... TCP should be able to operate above a wide spectrum of communication systems ranging from hard-wired connections to packet-switched or circuit-switched networks. ...
... operating system provides to an application process for manipulating files. For example, there are calls to open and close connections and to send and receive data on established connections. It is also expected that the TCP ...
... calls to open and close connections and to send and receive data on established connections. It is also expected that the TCP can asynchronously ...
... TCP is to provide reliable, securable logical circuit or connection service between pairs of processes. To provide this service ...
... Multiplexing Connections Precedence and Security ...
... a socket. A pair of sockets uniquely identifies each connection. That is, a socket may be simultaneously used in multiple ...
... That is, a socket may be simultaneously used in multiple connections. ...
... Connections: ...
... sockets, sequence numbers, and window sizes, is called a connection. Each connection is uniquely specified by a pair of sockets ...
... sequence numbers, and window sizes, is called a connection. Each connection is uniquely specified by a pair of sockets identifying its two sides. ...
... When two processes wish to communicate, their TCP's must first establish a connection (initialize the status information on each side). When their communication is complete, the connection is ...
... establish a connection (initialize the status information on each side). When their communication is complete, the connection is terminated or closed to free the resources for other uses. ...
... Since connections must be established between unreliable hosts and over the unreliable internet ...
... sequence numbers is used to avoid erroneous initialization of connections. ...


... communication system that provides two-way data flow on logical connections between process ports. ...
... by the user on the TCP to OPEN or CLOSE a connection, to SEND or RECEIVE data, or to obtain STATUS about a connection ...
... connection, to SEND or RECEIVE data, or to obtain STATUS about a connection. These calls are like other calls from user programs on the operating system, for example, the calls to open, read ...
... A stream of data sent on a TCP connection is delivered reliably and in order at the destination. ...
... Connection Establishment and Clearing ...
... A connection is fully specified by the pair of sockets at the ends. A local socket ...
... sockets at the ends. A local socket may participate in many connections to different foreign sockets. A connection ...
... connections to different foreign sockets. A connection can be used to carry data in both directions, that is, it is "full duplex". ...
... the "appropriate" processes by some means. We envision that processes may "own" ports, and that processes can initiate connections only on the ports they own. (Means for implementing ownership is a local ...
... A connection is specified in the OPEN call by the local port and foreign socket ...
... socket arguments. In return, the TCP supplies a (short) local connection name by which the user refers to the connection in subsequent calls. There are several things that must be remembered ...
... TCP supplies a (short) local connection name by which the user refers to the connection in subsequent calls. There are several things that must be remembered about a connection ...
... connection in subsequent calls. There are several things that must be remembered about a connection. To store this information we imagine that there is a data structure called a Transmission Control Block ...
... Transmission Control Block (TCB). One implementation strategy would have the local connection name be a pointer to the TCB for this connection ...
... connection name be a pointer to the TCB for this connection. The OPEN call also specifies whether the connection establishment is to be actively pursued, or to ...
... TCB for this connection. The OPEN call also specifies whether the connection establishment is to be actively pursued, or to be passively waited for. ...
... A passive OPEN request means that the process wants to accept incoming connection requests rather than attempting to initiate a connection. Often the process requesting a passive ...
... A passive OPEN request means that the process wants to accept incoming connection requests rather than attempting to initiate a connection. Often the process requesting a passive OPEN will accept a connection request ...
... connection. Often the process requesting a passive OPEN will accept a connection request from any caller. In this case a foreign socket of all zeros ...
... passive OPEN request with an unspecified foreign socket. Then a connection could be made with any process that requested a connection to this local socket ...
... socket. Then a connection could be made with any process that requested a connection to this local socket. It would help if this local socket ...
... active OPENs from other processes and be informed by the TCP when connections have been established. Two processes which issue active OPENs to each ...
... The procedures to establish connections utilize the synchronize (SYN) control flag and involves an exchange of three messages. This ...
... A connection is initiated by the rendezvous of an arriving segment containing a SYN ...
... command. The matching of local and foreign sockets determines when a connection has been initiated. The connection becomes "established" when sequence numbers ...
... sockets determines when a connection has been initiated. The connection becomes "established" when sequence numbers have been synchronized in both directions. ...
... The clearing of a connection also involves the exchange of segments, in this case carrying the FIN control flag. ...
... The data that flows on a connection may be thought of as a stream of octets. The sending user indicates in each SEND ...
... security option to provide precedence and security on a per connection basis to TCP users. Not all TCP ...
... them to specify the desired security level, compartment, and precedence of connections. ...


... sender of the segment is expecting to receive. Once a connection is established this is always sent. Data Offset: 4 bits ...
... PSH: Push Function RST: Reset the connection SYN: Synchronize sequence numbers ...
... TCP which sends this segment. This field must only be sent in the initial connection request (i.e., in segments with the SYN ...
... Before we can discuss very much about the operation of the TCP we need to introduce some detailed terminology. The maintenance of a TCP connection requires the remembering of several variables. We conceive of these variables being stored in a connection record called a ...
... to introduce some detailed terminology. The maintenance of a TCP connection requires the remembering of several variables. We conceive of these variables being stored in a connection record called a Transmission Control Block or TCB ...
... socket numbers, the security and precedence of the connection, pointers to the user's send and receive buffers, pointers to the retransmit queue ...
... A connection progresses through a series of states during its lifetime. The states are: LISTEN, SYN ...
... state when there is no TCB, and therefore, no connection. Briefly the meanings of the states are: ...
... LISTEN - represents waiting for a connection request from any remote TCP and port ...
... SYN-SENT - represents waiting for a matching connection request after having sent a connection request. ...
... SYN-SENT - represents waiting for a matching connection request after having sent a connection request. SYN ...
... SYN-RECEIVED - represents waiting for a confirming connection request acknowledgment after having both received and sent a connection request. ...
... SYN-RECEIVED - represents waiting for a confirming connection request acknowledgment after having both received and sent a connection request. ESTABLISHED - represents an open connection ...
... connection request. ESTABLISHED - represents an open connection, data received can be delivered to the user. The normal state for the data transfer ...
... state for the data transfer phase of the connection. FIN-WAIT-1 - represents waiting for a connection ...
... connection. FIN-WAIT-1 - represents waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection ...
... connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent. ...
... termination request previously sent. FIN-WAIT-2 - represents waiting for a connection termination request from the remote TCP. ...
... TCP. CLOSE-WAIT - represents waiting for a connection termination request from the local user. ...
... from the local user. CLOSING - represents waiting for a connection termination request acknowledgment from the remote TCP. ...
... LAST-ACK - represents waiting for an acknowledgment of the connection termination request previously sent to the remote TCP (which includes an acknowledgment of its connection ...
... connection termination request previously sent to the remote TCP (which includes an acknowledgment of its connection termination request). ...
... TIME-WAIT - represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request. ...
... termination request. CLOSED - represents no connection state at all. ...
... A TCP connection progresses from one state to another in response to events. The events are the user calls, OPEN, SEND ...
... +---------+ +---------+ TCP Connection State Diagram Figure 6. ...
... A fundamental notion in the design is that every octet of data sent over a TCP connection has a sequence number. Since every octet is sequenced, each of them can be acknowledged. The acknowledgment ...
... SYN and FIN are the only controls requiring this protection, and these controls are used only at connection opening and closing. For sequence number purposes, the SYN ...
... The protocol places no restriction on a particular connection being used over and over again. A connection is defined by a pair of ...
... The protocol places no restriction on a particular connection being used over and over again. A connection is defined by a pair of sockets. New instances of a connection ...
... connection is defined by a pair of sockets. New instances of a connection will be referred to as incarnations of the connection. The problem that arises from this is ...
... sockets. New instances of a connection will be referred to as incarnations of the connection. The problem that arises from this is -- "how does the TCP identify duplicate segments ...
... TCP identify duplicate segments from previous incarnations of the connection?" This problem becomes apparent if the connection is being opened and closed in quick succession, or if the ...
... incarnations of the connection?" This problem becomes apparent if the connection is being opened and closed in quick succession, or if the connection breaks with loss of memory and is then reestablished. ...
... connection is being opened and closed in quick succession, or if the connection breaks with loss of memory and is then reestablished. ...
... To avoid confusion we must prevent segments from one incarnation of a connection from being used while the same sequence numbers may still be present in the network ...
... TCP crashes and loses all knowledge of the sequence numbers it has been using. When new connections are created, an initial sequence number ...
... For each connection there is a send sequence number and a receive sequence number. The initial send sequence number ...
... receive sequence number (IRS) is learned during the connection establishing procedure. ...
... For a connection to be established or initialized, the two TCPs must synchronize on each other's initial sequence numbers. This is done in ...
... synchronize on each other's initial sequence numbers. This is done in an exchange of connection establishing segments carrying a control bit ...
... segment was an old delayed one or not, unless it remembers the last sequence number used on the connection (which is not always possible), and so it must ask the sender to ...
... sequence numbers transmitted on each active (i.e., not closed) connection shall delay emitting any TCP segments ...
... TCP does not have any memory of the sequence numbers it last used on a given connection. For example, if the TCP were to start ...
... the TCP were to start all connections with sequence number 0, then upon crashing and restarting ...
... restarting, a TCP might re-form an earlier connection (possibly after half-open connection resolution) and emit packets with sequence numbers ...
... TCP might re-form an earlier connection (possibly after half-open connection resolution) and emit packets with sequence numbers identical to or overlapping with ...
... packets still in the network which were emitted on an earlier incarnation of the same connection. In the absence of knowledge about the sequence numbers used on a particular connection ...
... connection. In the absence of knowledge about the sequence numbers used on a particular connection, the TCP specification recommends that the source delay for MSL seconds ...
... specification recommends that the source delay for MSL seconds before emitting segments on the connection, to allow time for segments from the earlier connection ...
... connection, to allow time for segments from the earlier connection incarnation to drain from the system. ...
... initial sequence number values are not immune from this problem (i.e., even if time of day is used to select an initial sequence number for each new connection incarnation). ...
... Suppose, for example, that a connection is opened starting with sequence number ...
... starting with sequence number S. Suppose that this connection is not used much and that eventually the initial sequence number function (ISN(t)) ...
... segment sent by this TCP on a particular connection. Now suppose, at this instant, the host crashes, recovers, and establishes a new ...
... at this instant, the host crashes, recovers, and establishes a new incarnation of the connection. The initial sequence number chosen is S1 = ISN(t) -- last used sequence number ...
... S1 = ISN(t) -- last used sequence number on old incarnation of connection! If the recovery occurs quickly enough, any old duplicates in the net bearing sequence numbers in the neighborhood ...
... of S1 may arrive and be treated as new packets by the receiver of the new incarnation of the connection. ...
... host may not know for how long it crashed nor does it know whether there are still old duplicates in the system from earlier connection incarnations. ...
... Implementors may provide TCP users with the ability to select on a connection by connection basis whether to wait after a crash, or may informally implement the "quite time" for all connections ...
... TCP users with the ability to select on a connection by connection basis whether to wait after a crash, or may informally implement the "quite time" for all connections. ...
... connection by connection basis whether to wait after a crash, or may informally implement the "quite time" for all connections. Obviously, even where a user selects to "wait," this is not necessary after the host ...
... block of space-time is occupied by the octets of the last emitted segment, if a new connection is started too soon and uses any of the sequence numbers in the space-time footprint of the last segment ...
... sequence numbers in the space-time footprint of the last segment of the previous connection incarnation, there is a potential sequence number overlap area which could cause confusion at the receiver. ...
... Establishing a connection ...
... The "three-way handshake" is the procedure used to establish a connection. This procedure normally is initiated by one TCP and responded to by another TCP ...
... SYN" segment can potentially make it appear, to the recipient, that a simultaneous connection initiation is in progress. Proper use of "reset" segments can disambiguate these cases. ...
... Several examples of connection initiation follow. Although these examples do not show connection synchronization ...
... Several examples of connection initiation follow. Although these examples do not show connection synchronization using data-carrying segments ...
... valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state). The three-way handshake ...
... state). The three-way handshake reduces the possibility of false connections. It is the implementation of a trade-off between memory and messages to provide information for this checking. ...
... Basic 3-Way Handshake for Connection Synchronization ...
... ACK> --> ESTABLISHED Simultaneous Connection Synchronization ...
... The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion. To deal with this, a special control message, reset, has been devised. If the ...
... FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT), it aborts the connection and informs its user. We discuss this latter case under "half-open" connections below. ...
... aborts the connection and informs its user. We discuss this latter case under "half-open" connections below. ...
... Half-Open Connections and Other Anomalies ...
... An established connection is said to be "half-open" if one of the TCPs has closed or aborted the connection at its end without the ...
... An established connection is said to be "half-open" if one of the TCPs has closed or aborted the connection at its end without the knowledge of the other, or if the two ends of the connection have ...
... TCPs has closed or aborted the connection at its end without the knowledge of the other, or if the two ends of the connection have become desynchronized owing to a crash that resulted in loss of memory. Such connections ...
... connection have become desynchronized owing to a crash that resulted in loss of memory. Such connections will automatically become reset if an attempt is made to send data in either direction. However, half-open connections ...
... connections will automatically become reset if an attempt is made to send data in either direction. However, half-open connections are expected to be unusual, and the recovery procedure is mildly involved. ...
... If at site A the connection no longer exists, then an attempt by the user at site B to send any data on it will result in the site B TCP ...
... site B TCP that something is wrong, and it is expected to abort the connection. ...
... A is likely to start again from the beginning or from a recovery point. As a result, A will probably try to OPEN the connection again or try to SEND on the connection ...
... connection again or try to SEND on the connection it believes open. In the latter case, it receives the error message "connection ...
... connection it believes open. In the latter case, it receives the error message "connection not open" from the local (A's) TCP. In an attempt to establish the connection ...
... connection not open" from the local (A's) TCP. In an attempt to establish the connection, A's TCP will send a segment ...
... example shown in figure 10. After TCP A crashes, the user attempts to re-open the connection. TCP B, in the meantime, thinks the connection ...
... re-open the connection. TCP B, in the meantime, thinks the connection is open. ...
... SYN> --> Half-Open Connection Discovery Figure 10. ...
... sent and, being unsynchronized, sends a reset (RST) because it has detected a half-open connection. TCP B aborts at line 5. TCP A will ...
... TCP B aborts at line 5. TCP A will continue to try to establish the connection; the problem is now reduced to the basic 3-way handshake of figure 7. ...
... TCP A crashes and TCP B tries to send data on what it thinks is a synchronized connection. This is illustrated in figure 11. In this case, the data arriving at TCP ...
... TCP A from TCP B (line 2) is unacceptable because no such connection exists, so TCP A sends a RST ...
... RST is acceptable so TCP B processes it and aborts the connection. ...
... Active Side Causes Half-Open Connection Discovery Figure 11. ...
... In figure 12, we find the two TCPs A and B with passive connections waiting for SYN. An old duplicate arriving at TCP ...
... RST) must be sent whenever a segment arrives which apparently is not intended for the current connection. A reset must not be sent if it is not clear that this is the case. ...
... 1. If the connection does not exist (CLOSED) then a reset is sent in response to any incoming segment except another reset. In ...
... in response to any incoming segment except another reset. In particular, SYNs addressed to a non-existent connection are rejected by this means. ...
... segment length of the incoming segment. The connection remains in the CLOSED state. ...
... state. 2. If the connection is in any non-synchronized state (LISTEN, SYN ...
... security level or compartment which does not exactly match the level and compartment requested for the connection, a reset is sent. If our SYN ...
... cannot raise the precedence level to match ours this will be detected in the next segment it sends, and the connection will be terminated then). If our SYN has been acknowledged (perhaps in this ...
... segment length of the incoming segment. The connection remains in the same state. ...
... state. 3. If the connection is in a synchronized state (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK ...
... and an acknowledgment indicating the next sequence number expected to be received, and the connection remains in the same state. ...
... security level, or compartment, or precedence which does not exactly match the level, and compartment, and precedence requested for the connection,a reset is sent and connection goes to the CLOSED state ...
... and precedence requested for the connection,a reset is sent and connection goes to the CLOSED state. The reset takes its sequence number from the ACK ...
... state, otherwise the receiver aborts the connection and goes to the CLOSED state. If the receiver ...
... receiver was in any other state, it aborts the connection and advises the user and goes to the CLOSED state. ...
... Closing a Connection ...
... CLOSE is an operation meaning "I have no more data to send." The notion of closing a full-duplex connection is subject to ambiguous interpretation, of course, since it may not be obvious how to treat ...
... interpretation, of course, since it may not be obvious how to treat the receiving side of the connection. We have chosen to treat CLOSE in a simplex fashion. The user who CLOSEs may continue to RECEIVE until he is told that the other side has CLOSED also. Thus, a program ...
... TCP will reliably deliver all buffers SENT before the connection was CLOSED so a user who expects no data in return need only wait to hear the connection was CLOSED ...
... buffers SENT before the connection was CLOSED so a user who expects no data in return need only wait to hear the connection was CLOSED successfully to know that all his data was received at the destination ...
... destination TCP. Users must keep reading connections they close for sending until the TCP says no more data. ...
... 1) The user initiates by telling the TCP to CLOSE the connection 2) The remote TCP ...
... receiving a FIN will ACK but not send its own FIN until its user has CLOSED the connection also. ...
... TCP can ACK it and tell the user that the connection is closing. The user will respond with a CLOSE, upon which the TCP can send a FIN to ...
... until its own FIN is acknowledged whereupon it deletes the connection. If an ACK is not forthcoming, after the user timeout the connection ...
... connection. If an ACK is not forthcoming, after the user timeout the connection is aborted and the user is told. ...
... A simultaneous CLOSE by users at both ends of a connection causes FIN segments to be exchanged. When all segments ...
... ACKs, delete the connection. ...
... The intent is that connection be allowed only between ports operating with exactly the same security ...
... A connection attempt with mismatched security/compartment values or a lower precedence value must be rejected by sending a reset. Rejecting ...
... security/compartment values or a lower precedence value must be rejected by sending a reset. Rejecting a connection due to too low a precedence only occurs after an acknowledgment of the SYN has been received. ...
... segments and possibly raise the precedence level they use on the connection. ...
... Once the connection is established data is communicated by the exchange of segments. Because segments ...
... networks that compose an internetwork system and the wide range of uses of TCP connections the retransmission timeout must be dynamically determined. One procedure ...
... the currently available data buffer space available for this connection. ...
... In a connection with a one-way data flow, the window information will ...
... least X percent of the maximum allocation possible for the connection (where X might be 20 to 40). ...
... may provide combinations or subsets of the basic functions in single calls. In particular, some implementations may wish to automatically OPEN a connection on the first SEND or RECEIVE issued by the user ...
... SEND or RECEIVE issued by the user for a given connection. ...
... (a) general information about a connection (e.g., interrupts, remote close, binding of unspecified foreign socket ...
... [, timeout] [, precedence] [, security/compartment] [, options]) -> local connection name ...
... processes it serves and will check the authority of the process to use the connection specified. Depending upon the implementation of the TCP, the local network ...
... passive flag is set to passive, then this is a call to LISTEN for an incoming connection. A passive open may have either a fully specified foreign socket ...
... have either a fully specified foreign socket to wait for a particular connection or an unspecified foreign socket to wait for any call. A fully specified passive ...
... active OPEN command, the TCP will begin the procedure to synchronize (i.e., establish) the connection at once. ...
... destination within the timeout period, the TCP will abort the connection. The present global default is five minutes. ...
... operating system will verify the users authority to open a connection with the specified precedence or security/compartment. The absence of precedence ...
... The precedence for the connection is the higher of the values requested in the OPEN call and received from the incoming request, and fixed at that value for the life of the ...
... requested in the OPEN call and received from the incoming request, and fixed at that value for the life of the connection.Implementers may want to give the user control of this precedence negotiation ...
... A local connection name will be returned to the user by the TCP. The local connection ...
... connection name will be returned to the user by the TCP. The local connection name can then be used as a short hand term for the connection defined by the <local socket ...
... The local connection name can then be used as a short hand term for the connection defined by the <local socket, foreign socket> ...
... Format: SEND (local connection name, buffer address, byte ...
... This call causes the data contained in the indicated user buffer to be sent on the indicated connection. If the connection has not been opened, the SEND ...
... buffer to be sent on the indicated connection. If the connection has not been opened, the SEND is considered an error. Some ...
... SEND first; in which case, an automatic OPEN would be done. If the calling process is not authorized to use this connection, an error is returned. ...
... If no foreign socket was specified in the OPEN, but the connection is established (e.g., because a LISTENing connection has become specific due to a foreign segment ...
... socket was specified in the OPEN, but the connection is established (e.g., because a LISTENing connection has become specific due to a foreign segment arriving for the ...
... socket becomes specified, an error will be returned. Users can use the STATUS call to determine the status of the connection. In some implementations the TCP may notify the user when an unspecified ...
... If a timeout is specified, the current user timeout for this connection is changed to the new one. ...
... is both subject to deadlocks (for example, both sides of the connection might try to do SENDs before doing any RECEIVEs) and offers poor performance, so it is not recommended. A more ...
... been acknowledged by the distant TCP. We could optimistically assume eventual success. If we are wrong, the connection will close anyway due to the timeout. In implementations of this kind (synchronous ...
... synchronous), there will still be some asynchronous signals, but these will deal with the connection itself, and not with specific segments or buffers ...
... Format: RECEIVE (local connection name, buffer address, byte ...
... receiving buffer associated with the specified connection. If no OPEN precedes this command or the calling process is not authorized to use this connection, an ...
... specified connection. If no OPEN precedes this command or the calling process is not authorized to use this connection, an error is returned. ...
... Format: CLOSE (local connection name) ...
... This command causes the connection specified to be closed. If the connection is not open or the calling process is not ...
... This command causes the connection specified to be closed. If the connection is not open or the calling process is not authorized to use this connection, an error is returned. ...
... the connection is not open or the calling process is not authorized to use this connection, an error is returned. Closing connections is intended to be a graceful operation in ...
... authorized to use this connection, an error is returned. Closing connections is intended to be a graceful operation in the sense that outstanding SENDs will be transmitted (and retransmitted), as flow ...
... to the destination. It should also be clear that users should continue to RECEIVE on CLOSING connections, since the other side may be trying to transmit the last of its data. Thus, CLOSE means "I have no more to send" but does not mean "I will not ...
... The user may CLOSE the connection at any time on his own initiative, or in response to various prompts from the TCP ...
... Because closing a connection requires communication with the foreign TCP, connections ...
... connection requires communication with the foreign TCP, connections may remain in the closing state for a short time. Attempts to reopen the connection ...
... connections may remain in the closing state for a short time. Attempts to reopen the connection before the TCP replies to the CLOSE command will result in error responses ...
... Format: STATUS (local connection name) -> status data ...
... excluded without adverse effect. Information returned would typically come from the TCB associated with the connection. ...
... foreign socket, local connection name, receive window, send window, ...
... receive window, send window, connection state, number of buffers ...
... Depending on the state of the connection, or on the implementation itself, some of this information may not be available or meaningful. If the calling process is not ...
... implementation itself, some of this information may not be available or meaningful. If the calling process is not authorized to use this connection, an error is returned. This prevents unauthorized processes from gaining information about a connection ...
... connection, an error is returned. This prevents unauthorized processes from gaining information about a connection. ...
... Format: ABORT (local connection name) ...
... removed, and a special RESET message to be sent to the TCP on the other side of the connection. Depending on the implementation, users may receive abort indications for each outstanding SEND ...
... Local Connection Name Always Response String Always Buffer ...
... destination. It is also important to preserve the return route to answer connection requests. ...
... TCP does in response to each of the events. In many cases the processing required depends on the state of the connection. ...
... Error responses are given as character strings. For example, user commands referencing connections that do not exist receive "error: connection not open". ...
... commands referencing connections that do not exist receive "error: connection not open". ...
... Create a new transmission control block (TCB) to hold connection state information. Fill in local socket ...
... caller does not have access to the local socket specified, return "error: connection illegal for this process". If there is no room to create a new connection ...
... connection illegal for this process". If there is no room to create a new connection, return "error: insufficient resources". ...
... active and the foreign socket is specified, then change the connection from passive to active, select an ISS. Send a SYN ...
... STATE Return "error: connection already exists". ...
... TCB does not exist) If the user does not have access to such a connection, then return "error: connection illegal for this process". ...
... If the user does not have access to such a connection, then return "error: connection illegal for this process". Otherwise, return "error: connection ...
... connection illegal for this process". Otherwise, return "error: connection does not exist". LISTEN STATE ...
... If the foreign socket is specified, then change the connection from passive to active ...
... STATE Return "error: connection closing" and do not service request. ...
... TCB does not exist) If the user does not have access to such a connection, return "error: connection illegal for this process". ...
... If the user does not have access to such a connection, return "error: connection illegal for this process". Otherwise return "error: connection ...
... connection illegal for this process". Otherwise return "error: connection does not exist". LISTEN STATE ...
... user. If no text is awaiting delivery, the RECEIVE will get a "error: connection closing" response. Otherwise, any remaining text can be used to satisfy the RECEIVE. ...
... STATE Return "error: connection closing". ...
... TCB does not exist) If the user does not have access to such a connection, return "error: connection illegal for this process". ...
... If the user does not have access to such a connection, return "error: connection illegal for this process". Otherwise, return "error: connection ...
... connection illegal for this process". Otherwise, return "error: connection does not exist". LISTEN STATE ...
... Strictly speaking, this is an error and should receive a "error: connection closing" response. An "ok" response would be acceptable, too, as long as a second FIN is not emitted (the first FIN may be retransmitted though). ...
... STATE Respond with "error: connection closing". ...
... TCB does not exist) If the user should not have access to such a connection, return "error: connection illegal for this process". ...
... If the user should not have access to such a connection, return "error: connection illegal for this process". Otherwise return "error: connection ...
... connection illegal for this process". Otherwise return "error: connection does not exist". LISTEN STATE ...
... Any outstanding RECEIVEs should be returned with "error: connection reset" responses. Delete TCB, enter CLOSED state ...
... STATE All queued SENDs and RECEIVEs should be given "connection reset" notification, delete ...
... RST> All queued SENDs and RECEIVEs should be given "connection reset" notification; all segments ...
... TCB does not exist) If the user should not have access to such a connection, return "error: connection illegal for this process". ...
... If the user should not have access to such a connection, return "error: connection illegal for this process". Otherwise return "error: connection ...
... connection illegal for this process". Otherwise return "error: connection does not exist". LISTEN STATE ...
... ACK Any acknowledgment is bad if it arrives on a connection still in the LISTEN state. An acceptable reset segment ...
... SND.NXT is set to ISS+1 and SND.UNA to ISS. The connection state should be changed to SYN ...
... valid, since it could not have been sent in response to anything sent by this incarnation of the connection. So you are unlikely to get here, but if you do, drop the segment, and return. ...
... If the ACK was acceptable then signal the user "error: connection reset", drop the segment, enter CLOSED state, ...
... If SND.UNA > ISS (our SYN has been ACKed), change the connection state to ESTABLISHED, form an ACK ...
... bit is set If this connection was initiated with a passive OPEN (i.e., came from the LISTEN state ...
... passive OPEN (i.e., came from the LISTEN state), then return this connection to LISTEN state and return. The user need not be informed. If ...
... LISTEN state and return. The user need not be informed. If this connection was initiated with an active OPEN (i.e., came from SYN ...
... from SYN-SENT state) then the connection was refused, signal the user "connection refused". In either case, all segments ...
... state) then the connection was refused, signal the user "connection refused". In either case, all segments on the retransmission ...
... queues should be flushed. Users should also receive an unsolicited general "connection reset" signal. Enter the CLOSED state, delete the ...
... queues should be flushed. Users should also receive an unsolicited general "connection reset" signal. Enter the CLOSED state, delete the ...
... Note this check is placed following the sequence check to prevent a segment from an old connection between these ports with a different security ...
... different security or precedence from causing an abort of the current connection. fourth, check the SYN ...
... segment queues should be flushed, the user should also receive an unsolicited general "connection reset" signal, enter the CLOSED state, delete ...
... If the FIN bit is set, signal the user "connection closing" and return any pending RECEIVEs with same message, advance RCV.NXT ...
... state if the user timeout expires, flush all queues, signal the user "error: connection aborted due to user timeout" in general and for any outstanding calls, delete the TCB ...
... TIME-WAIT TIMEOUT If the time-wait timeout expires on a connection delete the TCB, ...


... connection ...
... Receive Sequence number. The first sequence number used by the sender on a connection. ...
... Initial Sequence Number. The first sequence number used on a connection, (either ISS or IRS). Selected on a clock based procedure. ...
... sequence number used by the sender on a connection. ...
... that the receiver should delete the connection without further interaction. The receiver can determine, based on the ...
... sequence number the local (sending) TCP will use on the connection. It is initially selected from an initial sequence number curve (ISN) and is incremented for ...
... bit in the incoming segment, occupying one sequence number, used at the initiation of a connection, to indicate where the sequence numbering will start. ...
... data structure that records the state of a connection. ...
... The precedence of the connection. ...


... Dalal, Y. and C. Sunshine, "Connection Management in Transport Protocols", Computer Networks ...