Connected: An Internet Encyclopedia
RFC 1122 - 3.5 INTERNET LAYER REQUIREMENTS SUMMARY

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1122
Up: 3. INTERNET LAYER PROTOCOLS
Prev: 3.4 INTERNET/TRANSPORT LAYER INTERFACE
Next: 4. TRANSPORT PROTOCOLS

### 3.5 INTERNET LAYER REQUIREMENTS SUMMARY

                                                     |        | | | |S| |
                                                     |        | | | |H| |F
                                                     |        | | | |O|M|o
                                                     |        | |S| |U|U|o
                                                     |        | |H| |L|S|t
                                                     |        |M|O| |D|T|n
                                                     |        |U|U|M| | |o
                                                     |        |S|L|A|N|N|t
                                                     |        |T|D|Y|O|O|t
    FEATURE                                          |SECTION | | | |T|T|e
    -------------------------------------------------|--------|-|-|-|-|-|--
                                                     |        | | | | | |
    Implement IP and ICMP                            |3.1     |x| | | | |
    Handle remote multihoming in application layer   |3.1     |x| | | | |
    Support local multihoming                        |3.1     | | |x| | |
    Meet gateway specs if forward datagrams          |3.1     |x| | | | |
    Configuration switch for embedded gateway        |3.1     |x| | | | |1
       Config switch default to non-gateway          |3.1     |x| | | | |1
       Auto-config based on number of interfaces     |3.1     | | | | |x|1
    Able to log discarded datagrams                  |3.1     | |x| | | |
       Record in counter                             |3.1     | |x| | | |
                                                     |        | | | | | |
    Silently discard Version != 4                    |3.2.1.1 |x| | | | |
    Verify IP checksum, silently discard bad dgram   |3.2.1.2 |x| | | | |
    Addressing:                                      |        | | | | | |
      Subnet addressing (RFC-950)                    |3.2.1.3 |x| | | | |
      Src address must be host's own IP address      |3.2.1.3 |x| | | | |
      Silently discard datagram with bad dest addr   |3.2.1.3 |x| | | | |
      Silently discard datagram with bad src addr    |3.2.1.3 |x| | | | |
    Support reassembly                               |3.2.1.4 |x| | | | |
    Retain same Id field in identical datagram       |3.2.1.5 | | |x| | |
                                                     |        | | | | | |
    TOS:                                             |        | | | | | |
      Allow transport layer to set TOS               |3.2.1.6 |x| | | | |
      Pass received TOS up to transport layer        |3.2.1.6 | |x| | | |
      Use RFC-795 link-layer mappings for TOS        |3.2.1.6 | | | |x| |
    TTL:                                             |        | | | | | |
      Send packet with TTL of 0                      |3.2.1.7 | | | | |x|
      Discard received packets with TTL < 2          |3.2.1.7 | | | | |x|
      Allow transport layer to set TTL               |3.2.1.7 |x| | | | |
      Fixed TTL is configurable                      |3.2.1.7 |x| | | | |
                                                     |        | | | | | |
    IP Options:                                      |        | | | | | |
      Allow transport layer to send IP options       |3.2.1.8 |x| | | | |
      Pass all IP options rcvd to higher layer       |3.2.1.8 |x| | | | |
      IP layer silently ignore unknown options       |3.2.1.8 |x| | | | |
      Security option                                |3.2.1.8a| | |x| | |
      Send Stream Identifier option                  |3.2.1.8b| | | |x| |
      Silently ignore Stream Identifer option        |3.2.1.8b|x| | | | |
      Record Route option                            |3.2.1.8d| | |x| | |
      Timestamp option                               |3.2.1.8e| | |x| | |
    Source Route Option:                             |        | | | | | |
      Originate & terminate Source Route options     |3.2.1.8c|x| | | | |
      Datagram with completed SR passed up to TL     |3.2.1.8c|x| | | | |
      Build correct (non-redundant) return route     |3.2.1.8c|x| | | | |
      Send multiple SR options in one header         |3.2.1.8c| | | | |x|
                                                     |        | | | | | |
    ICMP:                                            |        | | | | | |
      Silently discard ICMP msg with unknown type    |3.2.2   |x| | | | |
      Include more than 8 octets of orig datagram    |3.2.2   | | |x| | |
          Included octets same as received           |3.2.2   |x| | | | |
      Demux ICMP Error to transport protocol         |3.2.2   |x| | | | |
      Send ICMP error message with TOS=0             |3.2.2   | |x| | | |
      Send ICMP error message for:                   |        | | | | | |
       - ICMP error msg                              |3.2.2   | | | | |x|
       - IP b'cast or IP m'cast                      |3.2.2   | | | | |x|
       - Link-layer b'cast                           |3.2.2   | | | | |x|
       - Non-initial fragment                        |3.2.2   | | | | |x|
       - Datagram with non-unique src address        |3.2.2   | | | | |x|
      Return ICMP error msgs (when not prohibited)   |3.3.8   |x| | | | |
                                                     |        | | | | | |
      Dest Unreachable:                              |        | | | | | |
        Generate Dest Unreachable (code 2/3)         |3.2.2.1 | |x| | | |
        Pass ICMP Dest Unreachable to higher layer   |3.2.2.1 |x| | | | |
        Higher layer act on Dest Unreach             |3.2.2.1 | |x| | | |
          Interpret Dest Unreach as only hint        |3.2.2.1 |x| | | | |
      Redirect:                                      |        | | | | | |
        Host send Redirect                           |3.2.2.2 | | | |x| |
        Update route cache when recv Redirect        |3.2.2.2 |x| | | | |
        Handle both Host and Net Redirects           |3.2.2.2 |x| | | | |
        Discard illegal Redirect                     |3.2.2.2 | |x| | | |
      Source Quench:                                 |        | | | | | |
        Send Source Quench if buffering exceeded     |3.2.2.3 | | |x| | |
        Pass Source Quench to higher layer           |3.2.2.3 |x| | | | |
        Higher layer act on Source Quench            |3.2.2.3 | |x| | | |
      Time Exceeded: pass to higher layer            |3.2.2.4 |x| | | | |
      Parameter Problem:                             |        | | | | | |
        Send Parameter Problem messages              |3.2.2.5 | |x| | | |
        Pass Parameter Problem to higher layer       |3.2.2.5 |x| | | | |
        Report Parameter Problem to user             |3.2.2.5 | | |x| | |
                                                     |        | | | | | |
      ICMP Echo Request or Reply:                    |        | | | | | |
        Echo server and Echo client                  |3.2.2.6 |x| | | | |
        Echo client                                  |3.2.2.6 | |x| | | |
        Discard Echo Request to broadcast address    |3.2.2.6 | | |x| | |
        Discard Echo Request to multicast address    |3.2.2.6 | | |x| | |
        Use specific-dest addr as Echo Reply src     |3.2.2.6 |x| | | | |
        Send same data in Echo Reply                 |3.2.2.6 |x| | | | |
        Pass Echo Reply to higher layer              |3.2.2.6 |x| | | | |
        Reflect Record Route, Time Stamp options     |3.2.2.6 | |x| | | |
        Reverse and reflect Source Route option      |3.2.2.6 |x| | | | |
                                                     |        | | | | | |
      ICMP Information Request or Reply:             |3.2.2.7 | | | |x| |
      ICMP Timestamp and Timestamp Reply:            |3.2.2.8 | | |x| | |
        Minimize delay variability                   |3.2.2.8 | |x| | | |1
        Silently discard b'cast Timestamp            |3.2.2.8 | | |x| | |1
        Silently discard m'cast Timestamp            |3.2.2.8 | | |x| | |1
        Use specific-dest addr as TS Reply src       |3.2.2.8 |x| | | | |1
        Reflect Record Route, Time Stamp options     |3.2.2.6 | |x| | | |1
        Reverse and reflect Source Route option      |3.2.2.8 |x| | | | |1
        Pass Timestamp Reply to higher layer         |3.2.2.8 |x| | | | |1
        Obey rules for "standard value"              |3.2.2.8 |x| | | | |1
                                                     |        | | | | | |
      ICMP Address Mask Request and Reply:           |        | | | | | |
        Addr Mask source configurable                |3.2.2.9 |x| | | | |
        Support static configuration of addr mask    |3.2.2.9 |x| | | | |
        Get addr mask dynamically during booting     |3.2.2.9 | | |x| | |
        Get addr via ICMP Addr Mask Request/Reply    |3.2.2.9 | | |x| | |
          Retransmit Addr Mask Req if no Reply       |3.2.2.9 |x| | | | |3
          Assume default mask if no Reply            |3.2.2.9 | |x| | | |3
          Update address mask from first Reply only  |3.2.2.9 |x| | | | |3
        Reasonableness check on Addr Mask            |3.2.2.9 | |x| | | |
        Send unauthorized Addr Mask Reply msgs       |3.2.2.9 | | | | |x|
          Explicitly configured to be agent          |3.2.2.9 |x| | | | |
        Static config=> Addr-Mask-Authoritative flag |3.2.2.9 | |x| | | |
          Broadcast Addr Mask Reply when init.       |3.2.2.9 |x| | | | |3
                                                     |        | | | | | |
    ROUTING OUTBOUND DATAGRAMS:                      |        | | | | | |
      Use address mask in local/remote decision      |3.3.1.1 |x| | | | |
      Operate with no gateways on conn network       |3.3.1.1 |x| | | | |
      Maintain "route cache" of next-hop gateways    |3.3.1.2 |x| | | | |
      Treat Host and Net Redirect the same           |3.3.1.2 | |x| | | |
      If no cache entry, use default gateway         |3.3.1.2 |x| | | | |
        Support multiple default gateways            |3.3.1.2 |x| | | | |
      Provide table of static routes                 |3.3.1.2 | | |x| | |
        Flag: route overridable by Redirects         |3.3.1.2 | | |x| | |
      Key route cache on host, not net address       |3.3.1.3 | | |x| | |
      Include TOS in route cache                     |3.3.1.3 | |x| | | |
                                                     |        | | | | | |
      Able to detect failure of next-hop gateway     |3.3.1.4 |x| | | | |
      Assume route is good forever                   |3.3.1.4 | | | |x| |
      Ping gateways continuously                     |3.3.1.4 | | | | |x|
      Ping only when traffic being sent              |3.3.1.4 |x| | | | |
      Ping only when no positive indication          |3.3.1.4 |x| | | | |
      Higher and lower layers give advice            |3.3.1.4 | |x| | | |
      Switch from failed default g'way to another    |3.3.1.5 |x| | | | |
      Manual method of entering config info          |3.3.1.6 |x| | | | |
                                                     |        | | | | | |
    REASSEMBLY and FRAGMENTATION:                    |        | | | | | |
      Able to reassemble incoming datagrams          |3.3.2   |x| | | | |
        At least 576 byte datagrams                  |3.3.2   |x| | | | |
        EMTU_R configurable or indefinite            |3.3.2   | |x| | | |
      Transport layer able to learn MMS_R            |3.3.2   |x| | | | |
      Send ICMP Time Exceeded on reassembly timeout  |3.3.2   |x| | | | |
        Fixed reassembly timeout value               |3.3.2   | |x| | | |
                                                     |        | | | | | |
      Pass MMS_S to higher layers                    |3.3.3   |x| | | | |
      Local fragmentation of outgoing packets        |3.3.3   | | |x| | |
         Else don't send bigger than MMS_S           |3.3.3   |x| | | | |
      Send max 576 to off-net destination            |3.3.3   | |x| | | |
      All-Subnets-MTU configuration flag             |3.3.3   | | |x| | |
                                                     |        | | | | | |
    MULTIHOMING:                                     |        | | | | | |
      Reply with same addr as spec-dest addr         |3.3.4.2 | |x| | | |
      Allow application to choose local IP addr      |3.3.4.2 |x| | | | |
      Silently discard d'gram in "wrong" interface   |3.3.4.2 | | |x| | |
      Only send d'gram through "right" interface     |3.3.4.2 | | |x| | |4
                                                     |        | | | | | |
    SOURCE-ROUTE FORWARDING:                         |        | | | | | |
      Forward datagram with Source Route option      |3.3.5   | | |x| | |1
        Obey corresponding gateway rules             |3.3.5   |x| | | | |1
          Update TTL by gateway rules                |3.3.5   |x| | | | |1
          Able to generate ICMP err code 4, 5        |3.3.5   |x| | | | |1
          IP src addr not local host                 |3.3.5   | | |x| | |1
          Update Timestamp, Record Route options     |3.3.5   |x| | | | |1
        Configurable switch for non-local SRing      |3.3.5   |x| | | | |1
          Defaults to OFF                            |3.3.5   |x| | | | |1
        Satisfy gwy access rules for non-local SRing |3.3.5   |x| | | | |1
        If not forward, send Dest Unreach (cd 5)     |3.3.5   | |x| | | |2
                                                     |        | | | | | |
    BROADCAST:                                       |        | | | | | |
      Broadcast addr as IP source addr               |3.2.1.3 | | | | |x|
      Receive 0 or -1 broadcast formats OK           |3.3.6   | |x| | | |
      Config'ble option to send 0 or -1 b'cast       |3.3.6   | | |x| | |
        Default to -1 broadcast                      |3.3.6   | |x| | | |
      Recognize all broadcast address formats        |3.3.6   |x| | | | |
      Use IP b'cast/m'cast addr in link-layer b'cast |3.3.6   |x| | | | |
      Silently discard link-layer-only b'cast dg's   |3.3.6   | |x| | | |
      Use Limited Broadcast addr for connected net   |3.3.6   | |x| | | |
                                                     |        | | | | | |
    MULTICAST:                                       |        | | | | | |
      Support local IP multicasting (RFC-1112)       |3.3.7   | |x| | | |
      Support IGMP (RFC-1112)                        |3.3.7   | | |x| | |
      Join all-hosts group at startup                |3.3.7   | |x| | | |
      Higher layers learn i'face m'cast capability   |3.3.7   | |x| | | |
                                                     |        | | | | | |
    INTERFACE:                                       |        | | | | | |
      Allow transport layer to use all IP mechanisms |3.4     |x| | | | |
      Pass interface ident up to transport layer     |3.4     |x| | | | |
      Pass all IP options up to transport layer      |3.4     |x| | | | |
      Transport layer can send certain ICMP messages |3.4     |x| | | | |
      Pass spec'd ICMP messages up to transp. layer  |3.4     |x| | | | |
         Include IP hdr+8 octets or more from orig.  |3.4     |x| | | | |
      Able to leap tall buildings at a single bound  |3.5     | |x| | | |

    Footnotes:

    (1)  Only if feature is implemented.

    (2)  This requirement is overruled if datagram is an ICMP error message.

    (3)  Only if feature is implemented and is configured "on".

    (4)  Unless has embedded gateway functionality or is source routed.

Next: 4. TRANSPORT PROTOCOLS

Connected: An Internet Encyclopedia
RFC 1122 - 3.5 INTERNET LAYER REQUIREMENTS SUMMARY