rfc793_SEGMENT_ARRIVES_elided.txt | rfc793bis_section_3.10.7.4_updated_no_bullets_elided.txt | |||
---|---|---|---|---|
Otherwise, | Otherwise, | |||
first check sequence number | first check sequence number | |||
SYN-RECEIVED STATE | SYN-RECEIVED STATE | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
FIN-WAIT-1 STATE | FIN-WAIT-1 STATE | |||
FIN-WAIT-2 STATE | FIN-WAIT-2 STATE | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
CLOSING STATE | CLOSING STATE | |||
LAST-ACK STATE | LAST-ACK STATE | |||
TIME-WAIT STATE | TIME-WAIT STATE | |||
Segments are processed in sequence. Initial tests ... | Segments are processed in sequence. Initial tests ... | |||
<new text in bis> | In general, the processing of received segments MUST ... | |||
There are four cases for the acceptability test for ... | There are four cases for the acceptability test for ... | |||
Segment Receive Test | +=========+=========+======================================+ | |||
Length Window | | Segment | Receive | Test | | |||
------- ------- ------------------------------------ ... | | Length | Window | | | |||
+=========+=========+================================== ... | ||||
<new text in bis> | In implementing sequence number validation as described ... | |||
If the RCV.WND is zero, no segments will be acceptable, ... | If the RCV.WND is zero, no segments will be acceptable, ... | |||
If an incoming segment is not acceptable, an ... | If an incoming segment is not acceptable, an ... | |||
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | + <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | |||
After sending the acknowledgment, drop the unacceptable ... | After sending the acknowledgment, drop the unacceptable ... | |||
<new text in bis> | Note that for the TIME-WAIT state, there is an improved ... | |||
In the following it is assumed that the segment is the ... | In the following it is assumed that the segment is the ... | |||
second check the RST bit, | second check the RST bit, | |||
<new text in bis> | RFC 5961 [9] section 3 describes a potential blind reset ... | |||
<new text in bis> | 1) If the RST bit is set and the sequence number is ... | |||
<new text in bis> | 2) If the RST bit is set and the sequence number exactly ... | |||
<new text in bis> | 3) If the RST bit is set and the sequence number does not ... | |||
<new text in bis> | <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | |||
<new text in bis> | After sending the challenge ACK, TCP endpoints MUST ... | |||
SYN-RECEIVED STATE | SYN-RECEIVED STATE | |||
If the RST bit is set | If the RST bit is set | |||
If this connection was initiated with a passive ... | If this connection was initiated with a passive ... | |||
ESTABLISHED | ESTABLISHED | |||
FIN-WAIT-1 | FIN-WAIT-1 | |||
FIN-WAIT-2 | FIN-WAIT-2 | |||
CLOSE-WAIT | CLOSE-WAIT | |||
If the RST bit is set then, any outstanding RECEIVEs ... | If the RST bit is set then, any outstanding RECEIVEs ... | |||
CLOSING STATE | CLOSING STATE | |||
LAST-ACK STATE | LAST-ACK STATE | |||
TIME-WAIT | TIME-WAIT | |||
If the RST bit is set then, enter the CLOSED state ... | If the RST bit is set then, enter the CLOSED state ... | |||
third check security and precedence | third check security | |||
SYN-RECEIVED | SYN-RECEIVED | |||
If the security/compartment and precedence in the segment do not ... | If the security/compartment in the segment does not ... | |||
ESTABLISHED STATE | ESTABLISHED | |||
<new text in bis> | FIN-WAIT-1 | |||
<new text in bis> | FIN-WAIT-2 | |||
<new text in bis> | CLOSE-WAIT | |||
<new text in bis> | CLOSING | |||
<new text in bis> | LAST-ACK | |||
<new text in bis> | TIME-WAIT | |||
If the security/compartment and precedence in the segment do not ... | If the security/compartment in the segment does not ... | |||
Note this check is placed following the sequence check ... | Note this check is placed following the sequence check ... | |||
fourth, check the SYN bit, | fourth, check the SYN bit, | |||
SYN-RECEIVED | SYN-RECEIVED | |||
<new text in bis> | If the connection was initiated with a passive OPEN ... | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
FIN-WAIT STATE-1 | FIN-WAIT STATE-1 | |||
FIN-WAIT STATE-2 | FIN-WAIT STATE-2 | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
CLOSING STATE | CLOSING STATE | |||
LAST-ACK STATE | LAST-ACK STATE | |||
TIME-WAIT STATE | TIME-WAIT STATE | |||
If the SYN is in the window it is an error, ... | If the SYN bit is set in these synchronized states ... | |||
<new text in bis> | <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | |||
<new text in bis> | After sending the acknowledgement, TCP implementations ... | |||
<new text in bis> | For implementations that do not follow RFC 5961 ... | |||
If the SYN is not in the window this step would ... | If the SYN is not in the window this step would ... | |||
fifth check the ACK field, | fifth check the ACK field, | |||
if the ACK bit is off drop the segment and return | if the ACK bit is off drop the segment and return | |||
if the ACK bit is on | if the ACK bit is on | |||
<new text in bis> | RFC 5961 [9] section 5 describes a potential blind data ... | |||
SYN-RECEIVED STATE | SYN-RECEIVED STATE | |||
If SND.UNA =< SEG.ACK =< SND.NXT then enter ESTABLISHED ... | If SND.UNA < SEG.ACK =< SND.NXT then enter ESTABLISHED ... | |||
<new text in bis> | SND.WND <- SEG.WND | |||
<new text in bis> | SND.WL1 <- SEG.SEQ | |||
<new text in bis> | SND.WL2 <- SEG.ACK | |||
If the segment acknowledgment is not acceptable, form ... | If the segment acknowledgment is not acceptable, form ... | |||
<SEQ=SEG.ACK><CTL=RST> | <SEQ=SEG.ACK><CTL=RST> | |||
and send it. | and send it. | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
If SND.UNA < SEG.ACK =< SND.NXT then, set SND.UNA ... | If SND.UNA < SEG.ACK =< SND.NXT then, set SND.UNA ... | |||
If SND.UNA < SEG.ACK =< SND.NXT, the send window ... | If SND.UNA =< SEG.ACK =< SND.NXT, the send window ... | |||
Note that SND.WND is an offset from SND.UNA, ... | Note that SND.WND is an offset from SND.UNA, ... | |||
FIN-WAIT-1 STATE | FIN-WAIT-1 STATE | |||
In addition to the processing for the ESTABLISHED ... | In addition to the processing for the ESTABLISHED ... | |||
FIN-WAIT-2 STATE | FIN-WAIT-2 STATE | |||
In addition to the processing for the ESTABLISHED ... | In addition to the processing for the ESTABLISHED ... | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
Do the same processing as for the ESTABLISHED state. | Do the same processing as for the ESTABLISHED state. | |||
CLOSING STATE | CLOSING STATE | |||
In addition to the processing for the ESTABLISHED ... | In addition to the processing for the ESTABLISHED ... | |||
LAST-ACK STATE | LAST-ACK STATE | |||
The only thing that can arrive in this state is ... | The only thing that can arrive in this state is ... | |||
TIME-WAIT STATE | TIME-WAIT STATE | |||
The only thing that can arrive in this state is ... | The only thing that can arrive in this state is ... | |||
sixth, check the URG bit, | sixth, check the URG bit, | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
FIN-WAIT-1 STATE | FIN-WAIT-1 STATE | |||
FIN-WAIT-2 STATE | FIN-WAIT-2 STATE | |||
If the URG bit is set, RCV.UP <- max(RCV.UP,SEG.UP) ... | If the URG bit is set, RCV.UP <- max(RCV.UP,SEG.UP) ... | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
CLOSING STATE | CLOSING STATE | |||
LAST-ACK STATE | LAST-ACK STATE | |||
TIME-WAIT | TIME-WAIT | |||
This should not occur, since a FIN has been received ... | This should not occur, since a FIN has been received ... | |||
seventh, process the segment text, | seventh, process the segment text, | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
FIN-WAIT-1 STATE | FIN-WAIT-1 STATE | |||
FIN-WAIT-2 STATE | FIN-WAIT-2 STATE | |||
Once in the ESTABLISHED state, it is possible to ... | Once in the ESTABLISHED state, it is possible to ... | |||
When the TCP takes responsibility for ... | When the TCP endpoint takes responsibility for ... | |||
Once the TCP takes responsibility for ... | Once the TCP endpoint takes responsibility for ... | |||
<new text in bis> | A TCP implementation MAY send an ACK segment ... | |||
Please note the window management suggestions in ... | Please note the window management suggestions in ... | |||
Send an acknowledgment of the form: | Send an acknowledgment of the form: | |||
<SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK> | |||
This acknowledgment should be piggybacked on a ... | This acknowledgment should be piggybacked on a ... | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
CLOSING STATE | CLOSING STATE | |||
LAST-ACK STATE | LAST-ACK STATE | |||
TIME-WAIT STATE | TIME-WAIT STATE | |||
This should not occur, since a FIN has been received ... | This should not occur, since a FIN has been received ... | |||
eighth, check the FIN bit, | eighth, check the FIN bit, | |||
Do not process the FIN if the state is CLOSED, LISTEN ... | Do not process the FIN if the state is CLOSED, LISTEN ... | |||
If the FIN bit is set, signal the user "connection ... | If the FIN bit is set, signal the user "connection ... | |||
SYN-RECEIVED STATE | SYN-RECEIVED STATE | |||
ESTABLISHED STATE | ESTABLISHED STATE | |||
Enter the CLOSE-WAIT state. | Enter the CLOSE-WAIT state. | |||
FIN-WAIT-1 STATE | FIN-WAIT-1 STATE | |||
If our FIN has been ACKed (perhaps in this ... | If our FIN has been ACKed (perhaps in this ... | |||
FIN-WAIT-2 STATE | FIN-WAIT-2 STATE | |||
Enter the TIME-WAIT state. Start the time-wait ... | Enter the TIME-WAIT state. Start the time-wait ... | |||
CLOSE-WAIT STATE | CLOSE-WAIT STATE | |||
Remain in the CLOSE-WAIT state. | Remain in the CLOSE-WAIT state. | |||
CLOSING STATE | CLOSING STATE | |||
Remain in the CLOSING state. | Remain in the CLOSING state. | |||
LAST-ACK STATE | LAST-ACK STATE | |||
Remain in the LAST-ACK state. | Remain in the LAST-ACK state. | |||
TIME-WAIT STATE | TIME-WAIT STATE | |||
Remain in the TIME-WAIT state. Restart the 2 MSL ... | Remain in the TIME-WAIT state. Restart the 2 MSL ... | |||
and return. | and return. | |||
End of changes. 141 change blocks. | ||||
142 lines changed or deleted | 143 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |