⚡ NEW: Doc/html/rfc - Full Gallery 2025


Network Working Group                    Internet Engineering Task Force
Request for Comments: 1122                             R. Braden, Editor
                                                            October 1989


        Requirements for Internet Hosts -- Communication Layers


Status of This Memo

   This RFC is an official specification for the Internet community.  It
   incorporates by reference, amends, corrects, and supplements the
   primary protocol standards documents relating to hosts.  Distribution
   of this document is unlimited.

Summary

   This is one RFC of a pair that defines and discusses the requirements
   for Internet host software.  This RFC covers the communications
   protocol layers: link layer, IP layer, and transport layer; its
   companion RFC-1123 covers the application and support protocols.



                           Table of Contents




   1.  INTRODUCTION ...............................................    5
      1.1  The Internet Architecture ..............................    6
         1.1.1  Internet Hosts ....................................    6
         1.1.2  Architectural Assumptions .........................    7
         1.1.3  Internet Protocol Suite ...........................    8
         1.1.4  Embedded Gateway Code .............................   10
      1.2  General Considerations .................................   12
         1.2.1  Continuing Internet Evolution .....................   12
         1.2.2  Robustness Principle ..............................   12
         1.2.3  Error Logging .....................................   13
         1.2.4  Configuration .....................................   14
      1.3  Reading this Document ..................................   15
         1.3.1  Organization ......................................   15
         1.3.2  Requirements ......................................   16
         1.3.3  Terminology .......................................   17
      1.4  Acknowledgments ........................................   20

   2. LINK LAYER ..................................................   21
      2.1  INTRODUCTION ...........................................   21



Internet Engineering Task Force                                 [Page 1]


RFC1122                       INTRODUCTION                  October 1989


      2.2  PROTOCOL WALK-THROUGH ..................................   21
      2.3  SPECIFIC ISSUES ........................................   21
         2.3.1  Trailer Protocol Negotiation ......................   21
         2.3.2  Address Resolution Protocol -- ARP ................   22
            2.3.2.1  ARP Cache Validation .........................   22
            2.3.2.2  ARP Packet Queue .............................   24
         2.3.3  Ethernet and IEEE 802 Encapsulation ...............   24
      2.4  LINK/INTERNET LAYER INTERFACE ..........................   25
      2.5  LINK LAYER REQUIREMENTS SUMMARY ........................   26

   3. INTERNET LAYER PROTOCOLS ....................................   27
      3.1 INTRODUCTION ............................................   27
      3.2  PROTOCOL WALK-THROUGH ..................................   29
         3.2.1 Internet Protocol -- IP ............................   29
            3.2.1.1  Version Number ...............................   29
            3.2.1.2  Checksum .....................................   29
            3.2.1.3  Addressing ...................................   29
            3.2.1.4  Fragmentation and Reassembly .................   32
            3.2.1.5  Identification ...............................   32
            3.2.1.6  Type-of-Service ..............................   33
            3.2.1.7  Time-to-Live .................................   34
            3.2.1.8  Options ......................................   35
         3.2.2 Internet Control Message Protocol -- ICMP ..........   38
            3.2.2.1  Destination Unreachable ......................   39
            3.2.2.2  Redirect .....................................   40
            3.2.2.3  Source Quench ................................   41
            3.2.2.4  Time Exceeded ................................   41
            3.2.2.5  Parameter Problem ............................   42
            3.2.2.6  Echo Request/Reply ...........................   42
            3.2.2.7  Information Request/Reply ....................   43
            3.2.2.8  Timestamp and Timestamp Reply ................   43
            3.2.2.9  Address Mask Request/Reply ...................   45
         3.2.3  Internet Group Management Protocol IGMP ...........   47
      3.3  SPECIFIC ISSUES ........................................   47
         3.3.1  Routing Outbound Datagrams ........................   47
            3.3.1.1  Local/Remote Decision ........................   47
            3.3.1.2  Gateway Selection ............................   48
            3.3.1.3  Route Cache ..................................   49
            3.3.1.4  Dead Gateway Detection .......................   51
            3.3.1.5  New Gateway Selection ........................   55
            3.3.1.6  Initialization ...............................   56
         3.3.2  Reassembly ........................................   56
         3.3.3  Fragmentation .....................................   58
         3.3.4  Local Multihoming .................................   60
            3.3.4.1  Introduction .................................   60
            3.3.4.2  Multihoming Requirements .....................   61
            3.3.4.3  Choosing a Source Address ....................   64
         3.3.5  Source Route Forwarding ...........................   65



Internet Engineering Task Force                                 [Page 2]


RFC1122                       INTRODUCTION                  October 1989


         3.3.6  Broadcasts ........................................   66
         3.3.7  IP Multicasting ...................................   67
         3.3.8  Error Reporting ...................................   69
      3.4  INTERNET/TRANSPORT LAYER INTERFACE .....................   69
      3.5  INTERNET LAYER REQUIREMENTS SUMMARY ....................   72

   4. TRANSPORT PROTOCOLS .........................................   77
      4.1  USER DATAGRAM PROTOCOL -- UDP ..........................   77
         4.1.1  INTRODUCTION ......................................   77
         4.1.2  PROTOCOL WALK-THROUGH .............................   77
         4.1.3  SPECIFIC ISSUES ...................................   77
            4.1.3.1  Ports ........................................   77
            4.1.3.2  IP Options ...................................   77
            4.1.3.3  ICMP Messages ................................   78
            4.1.3.4  UDP Checksums ................................   78
            4.1.3.5  UDP Multihoming ..............................   79
            4.1.3.6  Invalid Addresses ............................   79
         4.1.4  UDP/APPLICATION LAYER INTERFACE ...................   79
         4.1.5  UDP REQUIREMENTS SUMMARY ..........................   80
      4.2  TRANSMISSION CONTROL PROTOCOL -- TCP ...................   82
         4.2.1  INTRODUCTION ......................................   82
         4.2.2  PROTOCOL WALK-THROUGH .............................   82
            4.2.2.1  Well-Known Ports .............................   82
            4.2.2.2  Use of Push ..................................   82
            4.2.2.3  Window Size ..................................   83
            4.2.2.4  Urgent Pointer ...............................   84
            4.2.2.5  TCP Options ..................................   85
            4.2.2.6  Maximum Segment Size Option ..................   85
            4.2.2.7  TCP Checksum .................................   86
            4.2.2.8  TCP Connection State Diagram .................   86
            4.2.2.9  Initial Sequence Number Selection ............   87
            4.2.2.10  Simultaneous Open Attempts ..................   87
            4.2.2.11  Recovery from Old Duplicate SYN .............   87
            4.2.2.12  RST Segment .................................   87
            4.2.2.13  Closing a Connection ........................   87
            4.2.2.14  Data Communication ..........................   89
            4.2.2.15  Retransmission Timeout ......................   90
            4.2.2.16  Managing the Window .........................   91
            4.2.2.17  Probing Zero Windows ........................   92
            4.2.2.18  Passive OPEN Calls ..........................   92
            4.2.2.19  Time to Live ................................   93
            4.2.2.20  Event Processing ............................   93
            4.2.2.21  Acknowledging Queued Segments ...............   94
         4.2.3  SPECIFIC ISSUES ...................................   95
            4.2.3.1  Retransmission Timeout Calculation ...........   95
            4.2.3.2  When to Send an ACK Segment ..................   96
            4.2.3.3  When to Send a Window Update .................   97
            4.2.3.4  When to Send Data ............................   98



Internet Engineering Task Force                                 [Page 3]