⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc761.txt

📁 RFC 相关的技术文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                                                            January 1980Transmission Control ProtocolFunctional Specification  Sequence Number:  32 bits    The sequence number of the first data octet in this segment (except    when SYN is present).  Acknowledgment Number:  32 bits    If the ACK control bit is set this field contains the value of the    next sequence number the sender of the segment is expecting to    receive.  Once a connection is established this is always sent.  Data Offset:  4 bits    The number of 32 bit words in the TCP Header.  This indicates where    the data begins.  The TCP header including options is an integral    number of 32 bits long.  Reserved:  6 bits    Reserved for future use.  Must be zero.  Control Bits:  8 bits (from left to right):    URG:  Urgent Pointer field significant    ACK:  Acknowledgment field significant    EOL:  End of Letter    RST:  Reset the connection    SYN:  Synchronize sequence numbers    FIN:  No more data from sender  Window:  16 bits    The number of data octets beginning with the one indicated in the    acknowledgment field which the sender of this segment is willing to    accept.  Checksum:  16 bits    The checksum field is the 16 bit one's complement of the one's    complement sum of all 16 bit words in the header and text.  If a    segment contains an odd number of header and text octets to be    checksummed, the last octet is padded on the right with zeros to    form a 16 bit word for checksum purposes.  The pad is not    transmitted as part of the segment.  While computing the checksum,    the checksum field itself is replaced with zeros.    The checksum also covers a 96 bit pseudo header conceptually    prefixed to the TCP header.  This pseudo header contains the Source[Page 16]                                                               January 1980                                                                                                       Transmission Control Protocol                                                Functional Specification    Address, the Destination Address, the Protocol, and TCP length.    This gives the TCP protection against misrouted segments.  This    information is carried in the Internet Protocol and is transferred    across the TCP/Network interface in the arguments or results of    calls by the TCP on the IP.                     +--------------------------+                     |      Source Address      |                     +--------------------------+                     |    Destination Address   |                     +--------------------------+                     | zero | PTCL | TCP Length |                     +--------------------------+      The TCP Length is the TCP header plus the data length in octets      (this is not an explicitly transmitted quantity, but is computed      from the total length, and the header length).  Urgent Pointer:  16 bits    This field communicates the current value of the urgent pointer as a    positive offset from the sequence number in this segment.  The    urgent pointer points to the sequence number of the octet following    the urgent data.  This field should only be interpreted in segments    with the URG control bit set.  Options:  variable    Options may occupy space at the end of the TCP header and are a    multiple of 8 bits in length.  All options are included in the    checksum.  An option may begin on any octet boundary.  There are two    cases for the format of an option:      Case 1:  A single octet of option-kind.      Case 2:  An octet of option-kind, an octet of option-length, and               the actual option-data octets.    The option-length counts the two octets of option-kind and    option-length as well as the option-data octets.    Note that the list of options may be shorter than the data offset    field might imply.  The content of the header beyond the    End-of-Option option should be header padding (i.e., zero).    A TCP must implement all options.                                                               [Page 17]                                                            January 1980Transmission Control ProtocolFunctional Specification    Currently defined options include (kind indicated in octal):      Kind     Length    Meaning      ----     ------    -------       0         -       End of option list.       1         -       No-Operation.      100        -       Reserved.      105        4       Buffer Size.          Specific Option Definitions      End of Option List        +--------+        |00000000|        +--------+         Kind=0        This option code indicates the end of the option list.  This        might not coincide with the end of the TCP header according to        the Data Offset field.  This is used at the end of all options,        not the end of each option, and need only be used if the end of        the options would not otherwise coincide with the end of the TCP        header.      No-Operation        +--------+        |00000001|        +--------+         Kind=1        This option code may be used between options, for example, to        align the beginning of a subsequent option on a word boundary.        There is no guarantee that senders will use this option, so        receivers must be prepared to process options even if they do        not begin on a word boundary.      Buffer Size        +--------+--------+---------+--------+        |01000101|00000100|    buffer size   |        +--------+--------+---------+--------+         Kind=105 Length=4[Page 18]                                                               January 1980                                                                                                       Transmission Control Protocol                                                Functional Specification        Buffer Size Option Data:  16 bits          If this option is present, then it communicates the receive          buffer size at the TCP which sends this segment.  This field          should only be sent in the initial connection request (i.e.,          in segments with the SYN control bit set).  If this option is          not used, the default buffer size of one octet is assumed.  Padding:  variable    The TCP header padding is used to ensure that the TCP header ends    and data begins on a 32 bit boundary.  The padding is composed of    zeros.3.2.  Terminology  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  Transmission Control Block or TCB.  Among the variables stored in the  TCB are the local and remote socket numbers, the security and  precedence of the connection, pointers to the user's send and receive  buffers, pointers to the retransmit queue and to the current segment.  In addition several variables relating to the send and receive  sequence numbers are stored in the TCB.    Send Sequence Variables      SND.UNA - send unacknowledged      SND.NXT - send sequence      SND.WND - send window      SND.BS  - send buffer size      SND.UP  - send urgent pointer      SND.WL  - send sequence number used for last window update      SND.LBB - send last buffer beginning      ISS     - initial send sequence number    Receive Sequence Variables      RCV.NXT - receive sequence      RCV.WND - receive window      RCV.BS  - receive buffer size      RCV.UP  - receive urgent pointer      RCV.LBB - receive last buffer beginning      IRS     - initial receive sequence number                                                               [Page 19]                                                            January 1980Transmission Control ProtocolFunctional Specification  The following diagrams may help to relate some of these variables to  the sequence space.  Send Sequence Space                   1         2          3          4                    ----------|----------|----------|----------                      SND.UNA    SND.NXT    SND.UNA                                                  +SND.WND                1 - old sequence numbers which have been acknowledged          2 - sequence numbers of unacknowledged data                    3 - sequence numbers allowed for new data transmission         4 - future sequence numbers which are not yet allowed                            Send Sequence Space                               Figure 4.          Receive Sequence Space                       1          2          3                         ----------|----------|----------                           RCV.NXT    RCV.NXT                                            +RCV.WND                1 - old sequence numbers which have been acknowledged          2 - sequence numbers allowed for new reception                 3 - future sequence numbers which are not yet allowed                           Receive Sequence Space                               Figure 5.          There are also some variables used frequently in the discussion that  take their values from the fields of the current segment.[Page 20]                                                               January 1980                                                                                                       Transmission Control Protocol                                                Functional Specification    Current Segment Variables      SEG.SEQ - segment sequence number      SEG.ACK - segment acknowledgment number      SEG.LEN - segment length      SEG.WND - segment window      SEG.UP  - segment urgent pointer      SEG.PRC - segment precedence value  A connection progresses through a series of states during its  lifetime.  The states are:  LISTEN, SYN-SENT, SYN-RECEIVED,  ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, TIME-WAIT, CLOSE-WAIT, CLOSING,  and the fictional state CLOSED.  CLOSED is fictional because it  represents the 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-RECEIVED - represents waiting for a confirming connection    request acknowledgment after having both received and sent a    connection request.    ESTABLISHED - represents an open connection, ready to transmit and    receive data segments.    FIN-WAIT-1 - represents waiting for a connection termination request    from the remote TCP, or an acknowledgment of the connection    termination request previously sent.    FIN-WAIT-2 - represents waiting for a connection termination request    from the remote TCP.    TIME-WAIT - represents waiting for enough time to pass to be sure    the remote TCP received the acknowledgment of its connection    termination request.    CLOSE-WAIT - represents waiting for a connection termination request    from the local user.    CLOSING - represents waiting for a connection termination request    acknowledgment from the remote TCP.    CLOSED - represents no connection state at all.                                                               [Page 21]                                                            January 1980Transmission Control ProtocolFunctional Specification  A TCP connection progresses from one state to another in response to  events.  The events are the user calls, OPEN, SEND, RECEIVE, CLOSE,  ABORT, and STATUS; the incoming segments, particularly those  containing the SYN and FIN flags; and timeouts.  The Glossary contains a more complete list of terms and their  definitions.  The state diagram in figure 6 only illustrates state changes, together

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -