tech-invite   World Map     

3GPP     Specs     Glossaries     Architecture     IMS     UICC       IETF     RFCs     Groups     SIP     ABNFs       Search

RFC 0675

 
 
 

Specification of Internet Transmission Control Program

Part 3 of 3, p. 44 to 70
Prev RFC Part

 


prevText      Top       Page 44 
   Utilization

      The effective throughput divided by the output rate gives a
      measure of utilization of the communication connection.

   Window and buffer allocation measurements

      Histogram of letters outstanding, measured at the instant of SEND
      receipt by TCP from user or at instant of arrival of a letter for
      a receiving user.

      Buffers in use on the SEND side upon packet departure into the
      net; buffers in use on the RECEIVE side upon delivery of packet
      into a USER Buffer.

5.3  MULTICONNECTION MEASUREMENTS

   Statistics on User Commands sent to the local TCP

   Statistics of error or success codes returned [histogram of each type
   of error or return response]

   Statistics of control bit use

      Counter for each control bit over all packets emitted by the TCP
      and another for packets accepted

   Count data carrying packets

   Count ACK packets with no data

   Error packets distribution by error type code received from the net
   and sent out into the net

5.4  MEASUREMENT IMPLEMENTATION PHILOSOPHY

   We view the measurement process as something which occurs internal to
   the TCP but which is controllable from outside. A well known socket
   owned by the TCP can be used to accept control which will select one
   or more measurement classes to be collected. The data would be
   periodically sent to a designated foreign socket which would absorb
   the data for later processing, in the manner currently used in the
   ARPANET IMPs. Each measurement class has its own data packet format
   to make the job of parsing and analyzing the data easier.

Top       Page 45 
   We would restrict access to TCP measurement control to a few
   designated sites [e.g. NMC, SU-DSL, BBN]. This is easily done by
   setting up listening control connections on partially specified
   foreign sockets.

6.  SCHEDULE OF IMPLEMENTATION

7.  REFERENCES

   1. CEKA74

      V. Cerf and R. Kahn, "A Protocol For Packet Network
      Intercommunication," IEEE Transactions on Communication, vol. C-
      2O, No. 5. May 1974, pp. 637-648.

   2. CERF74

      V. Cerf, "An Assessment of ARPANET Protocols," in Proceedings of
      the Jerusalem Conference on Information Technology, July l974
      [RFC#635, INWG Note # ***].

   3.CESU74

      V. Cerf and C. Sunshine, "Protocols and Gateways for the
      Interconnection of Packet Switching Networks," Proc. of the
      Subconference on Computer Nets, Seventh Hawaii International
      Conference on Systems Science, January 1974.

   4. HEKA70

      F. Heart, R.E. Kahn, et al, "The Interface Message Processor for
      the ARPA Computer Network," AFIPS 1970 SJCC Proceedings, vol. 36,
      Atlantic City, AFIPS Press, New Jersey, pp. 551-567.

   5. POUZ74

      L. Pouzin, "CIGALE, the packet switching machine of the CYCLADES
      computer network," Proceedings of the IFIP74 Congress, Stockholm,
      Sweden.

   6. ROWE74

      L. Roberts and B. Wessler, "Computer Network Development to
      achieve resource sharing," AFIPS 1970, SJCC Proceedings, vol. 36,
      Atlantic City, AFIPS Press, New Jersey, pp. 543-549.

Top       Page 46 
   7. POUZ73

      L. Pouzin, "Presentation and major design aspects of the CYCLADES
      Computer Network," Data Networks: Analysis and Design, Third Data
      Communications Symposium, St. Petersburg, Florida, November 1973,
      pp. 80-87.

   8. SCWI71

      R. Scantlebury and P.T. Wilkinson, "The Design of a Switching
      System to allow remote Access to Computer Services by other
      computers and Terminal Devices," Second Symposium on Problems in
      the Optimization of Data Communication Systems Proceedings, Palo
      Alto, California, 0ctober 1971, pp. 160-167.

   9. POST72

      J. Postel, "Official Initial Connection Protocol," Current Network
      Protocols, Network Information Center, Stanford Research
      Institute, Menlo Park, California. January 1972 (NIC 7101).

   10. CACR70

      C.S. Carr, S.D. Crocker, and V.G. Cerf, "Host-Host Communication
      Protocol in the ARPA Network," AFIPS Conference Proceedings, vol.
      36, 1970 SJCC, AFIPS Press, Montvale, N.J.

   11. ZIEL74

      H. Zimmerman and M. Elie, "Transport Protocol. Standard Host-Host
      Protocol for heterogeneous computer networks," INWG#61, April
      1974.

   12. CRHE72

      S. D. Crocker, J. F. Heafner, R. M. Metcalfe and J. B. Postel,
      "Function-oriented protocols for the ARPA Computer Network," AFIPS
      Conference Proceedings, vol. 41, 1972 FJCC, AFIPS Press, Montvale,
      N.J.

   13. DALA74

      Y. Dalal, "More on selecting sequence numbers," INWG Protocol Note
      #4, October 1974.

Top       Page 47 
   14. SUNS74

      C. Sunshine, "Issues in communication protocol design -- formal
      correctness." INWG Protocol Note #5, October 1974

   BELS74

      D. Belsnes, "Note on single message communication," INWG Protocol
      Note #3. September 1974.

   16. TOML74

      R. Tomlinson, "Selecting sequence numbers," INWG Protocol Note #2,
      September 1974.

   17. SCHA74

      R. Schantz, "Reconnection Protocol", private communication;
      available from Schantz at BBN.

   18. POUZ74A

      L. Pouzin, "A proposal for interconnecting packet switching
      networks, INWG Note #60, March 1974 [also submitted to EUROCOMP
      74].

   19. DLMG74

      D. Lloyd, M. Galland, and P. T. Kirstein, "Aims and objectives of
      internetwork experiments," to be published as an INWG Experiments
      Note.

   20. MCKE73

      A. McKenzie, "Host-Host Protocol for the ARPANET," NIC # 8246,
      Stanford Research Institute [also in ARPANET Protocols Notebook
      NIC 7104].

   21. BELS74A

      D. Belsnes, "Flow control in packet switching networks," INWG Note
      #63, October 1974.

Top       Page 48 
FIGURE 1: TCB Major States

                              0-no TCB
      \____________________________________________________________/
                       OPEN    |    A   CLOSE           CLOSE    A
                    ---------- |    | ----------      ---------- |
                    set up TCB |    | remove TCB      remove TCB |
                               |    |                            |
                               |    |       collision retry,     |
        SYN arrives          __V____|__       SEND, INTER        |
       -------------        / S1=0     \    ----------------     |
       send SYN, ACK       |  S2=0 F=0  |       send SYN         |
     ______________________|  R=0  C=0  |_____________________   |
    |                      |  U=0/1     |                     |  |
    |                      |            |   SYN arrives       |  |
    |      error,timeout   |   1-OPEN   |   -----------       |  |
    |      -------------    \__________/    collision;        |  |
    |        clear TCB         A    A       set timeout       |  |
    |     _____________________|    |_____________________    |  |
  __V____|__                                             _|___V__|_
 / S1=1     \                                           / S1=1     \
|  S2=0 F=0  |                                         |  S2=0 F=0  |
|  R=1  C=0  |                       SYN, ACK arrives  |  R=0  C=0  |
|  U=0/1     |  ACK arrives          ----------------  |  U=0       |
|            |  -----------              send ACK      |            |
| 3-SYN rcvd |_________________       _________________| 2-SYN sent |
 \__________/                  |     |                  \__________/
    |                        __V_____V__
    |                       / S1=1      \
    |  CLOSE               |  S2=1 F=0   |
    | --------             |  R=1  C=0   |     FIN arrives
    | send FIN             |  U=0        | -------------------
    |                      |             | tell user, send FIN
    |      ________________|4-established|______________________
    |     |    CLOSE        \___________/                       |
    |     |   -------                                           |
  __V_____V_  send FIN                                   _______V__
 / S1=1     \                                           / S1=1     \
| S2=0/1 F=1 |     timeout or                          |  S2=1 F=1  |
|  R=1   C=1 | FIN, error, arrives            CLOSE    |  R=1  C=0  |
|  U=0/1     | -------------------          ---------- |  U=0       |
|            |     remove TCB               remove TCB |            |
| 5-FIN wait |_____________________       _____________| 6-FIN rcvd |
 \__________/                      |     |              \__________/
                                   |     |
       ____________________________V_____V_______________________
      /                                                          \
                                  0-no TCB

Top       Page 49 
FIGURE 2.1: Structure of the TCP




      |       _____________            _______________       |
      |      |             |          |               |      |
      |      |             |          | INPUT PACKET  |<---->|
      |      | REASSEMBLER |          |    HANDLER    |      |
      |      |_____________|          |_______________|      |
      |             |_______________          |              |
      |                             |         |              |
      |       _________             |         |              |
      |      |         |          __V_________V____          |  NETWORK
      |<=====| SYSTEM  |         |                 |         |    or
      |      |  CALLS  |<========|       TCB's     |<========|   some
USERS |=====>|   or    |         |        and      |         |  NETWORK
      |      |  USER   |========>|ASSOCIATED QUEUES|========>| INTERFACE
      |<---->|INTERFACE|         |_________________|         |  PROGRAM
      |      |_________|            A         A              |
      |                             |         |              |
      |               ______________|         |              |
      |       _______|_____            _______|_______       |
      |      |             |          |               |      |
      |      | PACKETIZER  |          | OUTPUT PACKET |      |
      |      |             |          |    HANDLER    |<---->|
      |      |_____________|          |_______________|      |
      |                                                      |






     =======> Logical or physical flow of data (packets/letters)

     -------> "Interaction"

     NOTE:    The signalling of processes by others is not shown

Top       Page 50 
FIGURE 2.2a:                               ________
Address Check                             / Begin  \
                                          \________/
                                               |
                                              _V_
                                           .'     '.
                                         .' packet  '.
                                       .'   foreign   '.
                  ___________________.'  socket matches '.
                 |                no  '.  a TCB local  .'
                 |                      '.   socket  .'
                 |                        '.   ?   .'
                 |                          '.___.'
                 |                             | yes
                 |                            _V_
                 |                         .'     '.
                 |                       .' packet  '.           ___
                 |                     .'local socket '.        /   \
                 |                   .'  matches fully  '.____\| YES |
                 |                    '. specified TCB .'     / \___/
                 |                      '.fgn socket .'
                 |                        '.   ?   .'
                _V_                         '.___.'
             .'     '.                         | no
           .'   SYN,  '.                      _V_
         .'FIN,INT,DSN, '.                 .'     '.
  _____.'or text length>0 './_____       .' matches '.
 |  no  '.   or QUERY    .' \     |    .'partly spec. '.
 |        '.           .'         |___.'  or unspec. TCB '.
 |          '.   ?   .'            no  '.     foreign   .'
 |            '.___.'                  '.   socket  .'
 |               | yes                   '.   ?   .'
 |     __________V_________                 '.___.'
 |    |                    |                   | yes
 |    |   Create error 7   |                  _V_
 |    | packet. Signal OPH |               .'     '.
 |    |____________________|             .' packet  '.
 |               |               ______.' has SYN set '.
 |           ____V____          |   no  '.           .'
 |          |         |         |         '.   ?   .'
 |_________\| discard |/________|          '.___.'
           /|_________|\                      |
                 |                           _V_
                _V_                         /   \
               /   \                       | YES |
              | NO  |                       \___/
               \___/

Top       Page 51 
FIGURE 2.2b-1:                         _______
Input Packet Handler                  / Begin \
                                      \_______/
                                          |
 ________________________________________\|/_________________________
|                              A         /|\                         |
|                              |          |                          |
|                              |         _V_                         |
|                              |       .'   '.          _______      |
|                              |     .' input '.       | go to |     |
|                              |   .'  packet   '.____\| sleep |     |
|                              |    '.available.'  no /|_______|     |
|                              |      '.__?__.'                      |
|                              |          | yes                      |
|                              |         _V_                         |
|                              |       .'   '.                       |
|   .->SPECIAL FUNCT. Fig 4.7  |     .'address'.                     |
|   | .->ERR Fig 4.5,4.6       |___.' check OK  '.                   |
|   | | .->SYN Fig 4.1,4.2      no  '.    ?    .'                    |
|   | | | .->INT Fig 4.3              '._____.'                      |
|   | | | | .->FIN Fig 4.4                | yes              ________|_
|   | | | | |                            _V_                | discard  |
|  _|_|_|_|_|___________               .'   '.              |(or queue)|
|  |                    |            .' error '.            |__________|
|<-| Control Processing |/_________.'or control '.                   A
   |____________________|\     yes  '.    ?    .'                    |
        |                             '._____.'                      |
        | (INT with data)                 | no                       |
        |                                 |                          |
        V                                _V_                         |
      to "X"                           .'   '.              .        |
  in Fig 2.2b-2                      .'(estab)'.          .' '.      |
                              _____.' R=S1=S2=1 '.----->.'seq.#'.--->|
                             | yes  '.    ?    .'  no    '.OK .'  no |
                             |        '._____.'            '.'       |
                             |                              | yes    |
                             |    _______________           |        |
                             |   | Set S2=1, U=0 |          V        |
                             |   | Notify user   |         .'.       |
                             |<--| with event 2  |       .'ACK'.     |
                             |   | if U was 1    |<-----'.  OK .'--->'
                             |   |_______________|  yes   '. .'   no
                             |                              '
                             V
                           to "Y"
                       in Fig 2.2b-2

Top       Page 52 
FIGURE 2.2b-2: Input Packet Handler (continued)

                            "Y"
                             |
           .'.              _V_
         .'txt'.          .'   '.        ______________________________
       .'lgth>0 '.      .'within '.     |Use ACK to advance send window|
,<----'. or DSN  .'<---'. window  .'--->|Release ACK'ed packets from   |
|  no   '.  ?  .'   no   '.  ?  .'  yes |retransmit or send queues. If |
|         '._.'            '._.'        |any packet had EB bit set     |
|           | yes                       |remove buffer from Packetized |
|   ________V____________________       |buffer queue and inform user  |
|  |Create ACK packet. Put on    |      |(success). Signal Packetizer. |
|<-|Send packet queue. Signal OPH|      |______________________________|
|  |_____________________________|                      |
|                                                       |
|          _____________________________________________|
|         |
|         |
|         |                      "X"
|         |                       |
|        _V_                     _V_              _____________________
|      .'   '.                 .'TCB'.           |Put packet on        |
|    .' text  '.   yes       .'Receive'.   yes   |Receive packet queue |
|  .' length>0  '.-------->.'  buffer   '.------>|in the right order.  |
|   '. or DSN  .'   A       '.available.'        |Signal Reassembler.  |
|     '.  ?  .'     |         '.  ?  .'          |_____________________|
|       '._.'       |           '._.'                           |
|         | no      |             | no                          |
|         |         |            _V_                            |
|________\|         |          .'   '.                          |
         /|         |        .' seq # '.         ________       |
          |         |      .' of packet '.  yes |Discard |      |
          |         |     '.  highest so .'---->|packet  |----->|
          |         |       '.   far   .'       |________|      |
          |         |         '.  ?  .'                         |
          |         |           '._.'                           |
          |         |             | no                          |
          |         |      _______V______________               |
          |         |     |Discard packet with   |              |
          |         |_____|highest seq. no from  |              |
          |               |Receive packet queue. |              |
          |               |______________________|              |
          |                                                     |
          |_____________________________________________________|
                                  |
                                  V
                      to "Begin" in Fig 2.2b-1

Top       Page 53 
FIGURE 2.3-1: Reassembler

       _______
      / Begin \
      \_______/
          |
          |
          |<----------------------------------------------.
          |                      _____                    | yes
    ______V_____               .'     '.                 _|_
   |Get ready   |            .' Receive '.   yes       .'any'.
   |for next TCB|--------->.'Packet Queue '.-------->.' more  '.
   |____________|     A     '.  empty ?  .'     A     '.work?.'
                      |       '._______.'       |       '._.'
                      |            | no         |         | no
   "R"------>---------'          __V__          |     ____V____
                               .' is  '.        |    |  Go to  |
                             .' packet  '.      |    |  Sleep  |
  .--<----------------------'.DSN with no.'     |    |_________|
  |                     yes   '. data? .'       |
  |                             '.___.'         |
  |                                | no         |
  |                              __V__          |
  |                            .'     '.        |
  |                          .' Receive '.  yes |
  |                        .'Buffer Queue '.--->|
  |                         '.  empty ?  .'     |
  |  ________________         '._______.'       |
  | |Copy from packet|             | no         |<-------------"S"
  | |to buffer until |           __V__          |
  | |one is exhausted|         .'First'.        |
  | |Update receive  | yes   .' packet  '.   no |
  | |window.         |<----.'matches Recv '.--->'
  | |________________|      '.left window.'
  |         |                 '. edge ?.'
  |       __V__                 '.___.'
  |     .'Send '.
  |   .' Packet  '.   yes  _____________________________
  | .' Queue empty '.---->|Create ACK packet containing |
  |  '.     ?     .'      |new window. Signal OPH.      |
  |    '._______.'        |_____________________________|
  |      no |                            |
  |         |                            |
  |         '--------------------------->|
  |                                      |
  V                                      V
to "T"                                 to "U"
in Fig 2.3-2                        in Fig 2.3-2

Top       Page 54 
FIGURE 2.3-2:  Reassembler (continued)




     "T"                                "U"
      |                                  |
      |                                  |           _____________
   ___V____           ___              __V__        |Mark progress|
  |process |  yes   .'   '.    yes   .'whole'.  no  |in packet.   |
  |  DSN   |<-----.'  DSN  '.<-----.' packet  '.--->|Return buffer|--->.
  |________|       '. set?.'        '.copied?.'     |to user.     |    |
      |              '._.'            '.___.'       |_____________|    |
      |                | no                                            |
      '--------------->|                                               |
                       |                                               |
                     __V__              __________________________     |
                   .' EOL '.  yes      |Return buffer to user.    |    |
                  '.  set? .'--------->|Return packet to free     |--->|
                    '.___.'            |storage. Signal Packetizer|    |
                    no |               |__________________________|    |
                       |                   A                           |
                     __V__                 |                           |
                   .' full'.               |                           |
                  '. buffer.'--------------'                           |
                    '.___.'   yes                                      |
                       | no                                            |
                       |                                               |
    ___________________V__________________                             |
   |Mark progress in buffer. Return packet|                            |
   |to free storage. Signal Packetizer.   |                   ,--------'
   |______________________________________|                   |
                       |                                      |
                       |                                      |
                       V                                      V
              to "R" in Fig 2.3-1                    to "S" in Fig 2.3-1

Top       Page 55 
FIGURE 2.4: Packetizer

    _______               ________________________
   / Begin \____________\| Get ready for next TCB |/___________________
   \_______/            /|________________________|\                   |
                                      |                                |
                                    __V__               _____          |
                                  .'Send '.           .' any '.        |
                            no  .' Buffer  '.  yes  .'  more   '.  yes |
                 .-------------'.   Queue   .'---->'.   work    .'-----'
                 |               '.empty? .'   A     '.   ?   .'
     ____________V____________     '.___.'     |       '.___.'
    |Pick packet size depend- |                |          | no
,-->|ing on send buffer, TCB  |                |    ______V______
|   |buffer space, window, etc|                |   | go to sleep |
|   |_________________________|                |   |_____________|
|                |                             |
|              __V__                           |
|            .'Send '.                         |
|          .' window  '.  no                   |
|         '.has room ? .'--------------------->|
|           '._______.'                        |
|                | yes                         |
|              __V__                           |
|            .' TCB '.                         |
|          .' buffer  '.   no                  |
|        .'space avail- '.---------------------'
|         '.  able ?   .'                   A
|           '._______.'                     |
|                | yes                      |
|   _____________V____________     _________|_______     ____________
|  |Copy from Send buffer to  |   |Move buffer from |   |Set EOL bit |
|  |packet until packet full. |   |Send queue to    |<--|in packet   |
|  |Put packet on Send packet |   |packetized queue |   |header      |
|  |queue. Signal OPH.        |   |_________________|   |____________|
|  |__________________________|             A                  A
|                |                          | no               |
|              __V__                      __|__                |
|            .'whole'.                  .' EOL '.              |
|          .'  Send   '.  yes         .' set in  '.  yes       |
|         '.  buffer   .'----------->'.   Send    .'-----------'
|           '.copied?.'                '.buffer?.'
|             '.___.'                    '.___.'
|                | no
|   _____________V__________
|  |Note in TCB where in    |
 --|Send buffer we stopped. |
   |________________________|

Top       Page 56 
FIGURE 2.5a:
Output Packet Handler
                                        _______
                                       / Begin \
                                       \_______/
                                           |
                                           |<--------------------------.
                               ____________V___________                |
                              | Get ready for next TCB |               |
                              |________________________|               |
                                      |                                |
,------------------------------------>|                                |
|                                   __V__               _____          |
|               _____             .'Send '.           .' any '.        |
|        yes  .' ACK '.     no  .' Buffer  '.  yes  .'  more   '.  yes |
|      .-----'.bit set.'<------'.   Queue   .'---->'.   work    .'-----'
|      |       '.___.'           '.empty? .'    A    '.   ?   .'
|      |       no |________        '.___.'      |      '.___.'
|      |                   |__________          |         | no
|  ____V__________________            |         |         |
| |Put latest receive left|   ________v______   |   ______V______
| |window edge in ACK.    |->|Transmit packet|  |  | go to sleep |
| |_______________________|  |_______________|  |  |_____________|
|                                     |         |
|     ________________              __V__       |
|    |Return packet to|           .'pckt '.     |_________________
|    |buffer pool as  |    no   .'seq # to '.                     |
|    |it has been     |<------.'rgt of Send  '.                   |
|    |ACKed           |        '.left window.'                    |
|    |________________|          '.  edge .'                      |
|             |                    '.___.'                        |
|             |                       | yes                       |
|             |        _______________V________________           |
|             |       |Move packet to retransmit queue;|          |
|             |       |set new retrans. time for it.   |          |
|             |       |________________________________|          |
|             |                       |                           |
|             '---------------------->|                           |
|                                   __V__                         |
|                            no   .'Time '.   yes                 |
 -------------------------------.'to switch'.---------------------'
                                 '.TCB's? .'
                                   '.___.'

Top       Page 57 
FIGURE 2.5b:
Retransmit Process

                                _______
                               / Begin \
                               \_______/
                                   |
                                   |<----------------------------------.
                       ____________V___________                        |
                      | Get ready for next TCB |                       |
                      |________________________|                       |
                                   |                                   |
 .-------------------------------->|                                   |
 |                               __V__                                 |
 |                             .' Any '.                _____          |
 |                           .'packet's '.            .' any '.        |
 |                         .'retrans. time'.  no    .'  more   '.  yes |
 |                        '. has occurred  .'----->'.   work    .'-----'
 |                          '.  for this .'          '.   ?   .'
 |                            '. TCB ? .'              '.___.'
 |                              '.___.'                   |
 |                                 | yes                  | no
 |                                 |                ______V______
 |                         ________V________       | go to sleep |
 |                        |Move packet to   |      |_____________|
 '------------------------|Send Packet      |
                          |queue. Signal OPH|
                          |_________________|

Top       Page 58 
FIGURE 3.1:
OPEN
                                 _______
                                / Begin \
                                \_______/
                                    |
                                  __V__
                                .'User '.          _______
                              .'permitted'.   no  |       |
                            .'  access to  '.---->|error 1|------------.
                             '.this local .'      |_______|            |
                               '.socket?.'                             |
                                 '.___.'                               |
                                    | yes                              |
                                  __V__                                |
                                .' fgn '.                              |
                         yes  .' socket  '.  no                        |
                       .-----'. specified .'----.                      |
                       |       '.   ?   .'      |                      |
                     __V__       '.___.'      __V__         _______    |
   _______         .'conn-'.                .'space'.  no  |       |   |
  |       |  yes .' ection  '.             '.for TCB.'---->|error 4|-->|
,-|error 6|<----'.  already  .'              '.___.'       |_______|   |
| |_______|       '.exists?.'                   | yes                  |
|                   '.___.'                     |                      |
|                      | no                 ____V__________            |
|   _______          __V__                 |Create TCB. Set|           |
|  |       |   no  .'space'.               |S1=S2=R=F=C=1  |           |
|<-|error 4|<-----'.for TCB.'              |Set U=1        |           |
|  |_______|        '.___.'                |_______________|           |
|                      | yes                       |                   |
|                      |                           |                   |
|             _________V__________                 |                   |
|            |Create TCB. Set U=0 |                |                   |
|            |Set S1=S2=R=F=C=1   |                |                   |
|            |____________________|                |                   |
|                      |                           |                   |
|                      '-------------.-------------'                   |
|                                    |                                 |
|               _____________________V__________________               |
|              |Return local connection name and Success|              |
|              |________________________________________|              |
|                                    |                                 |
 ----------------------------------->|<--------------------------------'
                                 ____V___
                                / Return \
                                \________/

Top       Page 59 
FIGURE 3.2:
SEND
                   _______
                  / Begin \
                  \_______/
                      |
                    __V__
                  .'conn-'.
                .' ection  '.               _________
              .'  legal for  '.  no        |         |
             '. this process  .'---------->| error 1 |-----------.
               '.     ?     .'             |_________|           |
                 '._______.'                                     |
                      | yes                                      |
                    __V__                                        |
                  .'conn-'.                 _________            |
                .' ection  '.   no         |         |           |
              .'    open     '.----------->| error 3 |---------->|
               '.     ?     .'             |_________|           |
                 '._______.'                                     |
                      | yes                                      |
                    __V__                                        |
                  .' fgn '.                 _________            |
                .' socket  '.  no          |         |           |
               '. specified .'------------>| error 5 |---------->|
                 '.(U=0)? .'               |_________|           |
                   '.___.'                                       |
                      | yes                                      |
                    __V__                                        |
                  .'conn-'.                 _________            |
                .' ection  '.  yes         |         |           |
               '. closing ? .'------------>| error 12|---------->|
                 '.(F,C=1).'               |_________|           |
                   '.___.'                                       |
                      | no                                       |
  ____________________V________________________________          |
 |Put buffer on Send Buffer queue and signal Packetizer|         |
 |_____________________________________________________|         |
                      |                                          |
                      |<-----------------------------------------'
                  ____V___
                 / Return \
                 \________/

Top       Page 60 
FIGURE 3.3:
INTERRUPT


                   _______
                  / Begin \
                  \_______/
                      |
                      |
                      V


                Same as SEND


                      |                                          |
                      |                                          |
  ____________________V_________________________                 |
 |Return any pending Send buffers with code 10. |                |
 |Create INT packet on outgoing packet queue.   |                |
 |Signal Output Packet Handler.                 |                |
 |______________________________________________|                |
                      |                                          |
                      |<-----------------------------------------'
                  ____V___
                 / Return \
                 \________/

Top       Page 61 
FIGURE 3.4:
RECEIVE
                   _______
                  / Begin \
                  \_______/
                      |
                    __V__
                  .'conn-'.
                .' ection  '.               _________
              .'  legal for  '.  no        |         |
             '. this process  .'---------->| error 1 |-----------.
               '.     ?     .'             |_________|           |
                 '._______.'                                     |
                      | yes                                      |
                     _V_                                         |
                   .'   '.                                       |
                 .'       '.                                     |
               .'connection '.                                   |
             .'     state     '.                                 |
            :___________________:                   _________    |
               |      |      |                     |         |   |
           1-4 |  5,6 |    0 '-------------------->| error 3 |-->|
               |      '---------------------.      |_________|   |
     __________V__________                  |                    |
    |Put buffer on Receive|                 |       _________    |
    |Buffer queue. Signal |                 |      |         |   |
    |Reassembler          |                 '----->| error 12|-->|
    |_____________________|                        |_________|   |
               |                                                 |
               |<------------------------------------------------'
           ____V___
          / Return \
          \________/

Top       Page 62 
FIGURE 3.5:
CLOSE
                   _______
                  / Begin \
                  \_______/
                      |
                    __V__
                  .'conn-'.
                .' ection  '.               _________
              .'  legal for  '.  no        |         |
             '. this process  .'---------->| error 1 |-----------.
               '.     ?     .'             |_________|           |
                 '._______.'                                     |
                      | yes                                      |
                     _V_                                         |
                   .'   '.                                       |
                 .'       '.                                     |
               .'connection '.                                   |
             .'     state     '.                                 |
            :___________________:                   _________    |
            5|   |3,4  |1,2,6  |0                  |         |   |
             |   |     |       '------------------>| error 3 |-->|
,------------'   |     '-------------------.       |_________|   |
|  ______________V______________________   |                     |
| |Return all buffers to user with error|  |     ___________     |
| |12; clear all packet queues, create  |  |    |Remove TCB |    |
| |FIN packet, signal Output Packet     |  '--->|Return     |--->|
| |Handler, set C=F=1                   |       |Success    |    |
| |_____________________________________|       |___________|    |
|                      |                                         |
 --------------------->|<----------------------------------------'
                   ____V___
                  / Return \
                  \________/

Top       Page 63 
FIGURE 3.6:
STATUS
                   _______
                  / Begin \
                  \_______/
                      |
                    __V__
                  .'conn-'.
                .' ection  '.               _________
              .'  legal for  '.  no        |         |
             '. this process  .'---------->| error 1 |-----------.
               '.     ?     .'             |_________|           |
                 '._______.'                                     |
                      | yes                                      |
                    __V__                   __________           |
                  .'conn-'.                |Return    |          |
                .' ection  '.  no          |state=0 or|          |
               '.   open ?  .'------------>|error 3   |--------->|
                 '._______.'               |__________|          |
                      | yes                                      |
           ___________V___________                               |
          |Fill in reply from TCB.|                              |
          |Return Success to user.|                              |
          |_______________________|                              |
                      |                                          |
                      |<-----------------------------------------'
                  ____V___
                 / Return \
                 \________/

Top       Page 64 
FIGURE 4.1:
SYN (no ACK)
                              _______
                             / Begin \
                             \_______/
                                 |
                                _V_
                              .'   '.
                            .'       '.
                          .' S1, S2, R '.
                        .'       ?       '.
                       :___________________: 1,1,1        _________
 __________             |     |     |     | (states 4-6) |         |
|Treat as a|      1,0,1 |     |     |     '------------->| error 6 |-->.
|duplicate.|<-----------'     |     |                    |_________|   |
|Retransmit|                  |     | 1.0,0                            |
|SYN, ACK  |            0,0,0 |     | (Syn sent)   ________________    |
|__________|      (listening) |     '------------>|Collision: Clear|   |
     |                        |                   |S1, set timeout,|   |
     |   _____________________V________________   |remove SYN from |-->|
     |  |Set R=S1=1. If U=1 set foreign socket |  |retransmit queue|   |
     |  |in TCB to match packet local socket.  |  |________________|   |
     |  |Send SYN, ACK. Signal OPH. Fill in TCB|                       |
     |  |with send window, receive sequence #. |                       |
     |  |______________________________________|                       |
     |                        |                                        |
     |                        |                                        |
     '----------------------->|<---------------------------------------'
                           ___V__
                          / Done \
                          \______/

Top       Page 65 
FIGURE 4.2:
SYN,ACK

                        _______
                       / Begin \
                       \_______/
                           |
                         __V__
                       .'     '.
                     .' State 2 '.  no
                    '.S1=1;S2=R=0.'----------------.
                      '.   ?   .'                  |
                        '.___.'                    |
                           | yes                   |
                         __V__              _______V______
                       .' ACK '.   no      |              |
                     .' correct '.-------->| send error 6 |
                      '.   ?   .'          |______________|
                        '.___.'                    |
                           | yes                   |
                  _________V_________              |
                 |Set S2=R=1. Process|             |
                 |ACK. Send ACK.     |             |
                 |___________________|             |
                           |                       |
                           |<----------------------'
                        ___V__
                       / Done \
                       \______/

Top       Page 66 
FIGURE 4.3:
INT (from net)
                   _______       ____________
                  / Begin \____\|Process ACK |
                  \_______/    /|(may set S2)|------.
                                |____________|      |
                                                    |
                                                  __V__
                        ____________            .' in  '.
                       | Discard    |     no  .' state 4 '.
              .<-------| (or queue) |<-------'. S1=S2=R=1 .'
              |        |____________|          '. F=0 ? .'
              |                                  '.___.'
              |                                     | yes
              |                                   __V__
              |         ____________            .'     '.
              |        | ACK and    |     no  .' within  '.
              |<-------| discard    |<-------'.  window   .'
              |        |____________|          '.   ?   .'
              |                                  '.___.'
              |                                     | yes
              |         ____________________________V_______________
              |        |Move Receive Left window edge to sequence   |
              |        |number of INT. Return event 10 with any     |
              |        |pending Receive buffers. Ruturn event 11 to |
              |        |user. Send ACK for INT.                     |
              |        |____________________________________________|
              |                                     |
              |                                   __V__
              |                 see       yes   .'data '.
              |              Figure<----------.' in this '.
              |                 2.2            '.packet?.'
              |                                  '.___.'
              |                                     | no
              '------------------------------------>|
                                                 ___V__
                                                / Done \
                                                \______/

Top       Page 67 
FIGURE 4.4:
FIN
                 _______       ____________
                / Begin \____\|Process ACK |
                \_______/    /|(may set S2)|------.
                              |____________|      |
                                                  |
                                                __V__
                                              .'     '.
                                        no  .'S1=S2=R=1'.
                            .--------------'.  (estab-  .'
                            |                '.lished).'
                            |                  '.___.'
                            |                     | yes
                            |                   __V__
                      ______V_____            .'     '.
                     |            |     no  .' within  '.
   .-----------------| discard    |<-------'.  window   .'
   |                 |____________|          '.   ?   .'
   |                                           '.___.'
   |                                              | yes
   |                                            __V__
   |                             (state 4) 0  .'F bit'.  1 (state 5)
   |                            .------------'. value .'------------.
   |                            |              '.___.'              |
   |   _________________________V________                           |
   |  |Return all user buffers (event 12)|     _____________________V__
   |  |Clear all packet queues. Send FIN |    |Return success to User's|
   |  |packet. Set F=1. Inform user      |    |CLOSE.  Remove TCB.     |
   |  |"connection closing" (event 12)   |    |________________________|
   |  |__________________________________|                 |
   |                  |                                    |
   '----------------->|<-----------------------------------'
                   ___V__
                  / Done \
                  \______/

Top       Page 68 
FIGURE 4.5:
Error 6 (bad SYN)


                _______
               / Begin \
               \_______/
                   |
                   |
                 __V__
               .'     '.
             .'refers to'.
           .'current pckt?'.                      _________
         .'(ACK matches seq '.  no               |         |
        '.  # of packet on   .'----------------->| discard |-----------.
          '.retrans or send.'                    |_________|           |
            '.  queues?) .'                                            |
              '._______.'                                              |
                   | yes                                               |
                   |                                                   |
                  _V_                                                  |
                .'   '.   1 (state 3)                                  |
              .' value '.--------------------------------.             |
               '. of R.'  bad SYN,ACK                    |             |
                 '._.'                                   |             |
                   |                                     |             |
                   | 0 (state 2)                         |             |
                   | bad SYN                             |             |
 __________________V__________________            _______V______       |
|Other side is established. Send RESET|          |Clear S1, R   |      |
|(put error packet's seq. # in ACK    |          |Remove SYN,ACK|      |
|field. Return all user buffers with  |          |from retrans  |      |
|code 14. Inform user with event 14   |          |queue.        |      |
|_____________________________________|          |______________|      |
                   |                                     |             |
                   |                                     V             |
                   |<--------------------------------------------------'
                ___V__
               / Done \
               \______/

Top       Page 69 
FIGURE 4.6:
Error 7,8


                   _______
                  / Begin \
                  \_______/
                      |
                    __V__
                  .'     '.
                .'refers to'.                     _________
              .'   current   '.  no              |         |
             '. packet (check .'---------------->| discard |-----------.
               '.   ACK)?   .'         A         |_________|           |
                 '._______.'           |                               |
                      | yes            |                               |
                     _V_               |                               |
                   .'   '.             |                               |
                 .'       '.           |                               |
               .'connection '.         |                               |
             .'     state     '.       |                               |
            :___________________:      |                               |
           4|   5|   3|   2|   6|      |                               |
    .-------'    |    |    |    '------'                               |
    |            |    |    '-----------------------------.             |
    |            |    '-------------.                    |             |
    |            |                  |                    |             |
 ___V___     ____V_______     ______V_______     ________V_________    |
|Pass to|   |Remove TCB. |   |Clear S1, R.  |   |Discard. SYN will |   |
|user   |   |Return      |   |Remove SYN,ACK|   |be retrans to     |   |
|_______|   |success to  |   |from transmit |   |avoid receiver    |   |
    |       |user's CLOSE|   |queue (go to  |   |having to queue it|   |
    |       |____________|   |state 1).     |   |__________________|   |
    |            |           |______________|            |             |
    |            V                  |                    V             |
    '------------------------------>|<---------------------------------'
                                 ___V__
                                / Done \
                                \______/

Top       Page 70 
FIGURE 4.7:
RESET
                                _______
                               / Begin \
                               \_______/
                                   |
                                 __V__
                           no  .'Reset'.  yes
                 .------------'. All ? .'------------------.
                 |              '.___.'                    |
                 |                                _________V_________
                 |                               |Clear all TCB's for|
                 |                               |foreign TCP. Inform|
                 |                               |users with event 14|
                 |                               |___________________|
               __V__                                       |
             .' Is  '.             _________               |
           .'  RESET  '.   no     |         |              |
         .'believable ? '.------->| discard |------------->|
          '.(check ACK .'         |_________|              |
            '.field) .'                                    |
              '.___.'                                      |
                 | yes                                     |
 ________________V________________                         |
|Clear all queues for this TCB.   |                        |
|Return event 14 for user buffers.|                        |
|Inform User with event 14.       |                        |
|_________________________________|                        |
                 |                                         |
                 |<----------------------------------------'
              ___V__
             / Done \
             \______/










       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Alex McKenzie with    ]
       [ support from GTE, formerly BBN Corp.           2/2000 ]