Connected: An Internet Encyclopedia
RFC 1122 - 4.2.5 TCP REQUIREMENT SUMMARY

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1122
Up: 4. TRANSPORT PROTOCOLS
Up: 4.2 TRANSMISSION CONTROL PROTOCOL -- TCP
Prev: 4.2.4.4 Multihoming
Next: 5. REFERENCES

### 4.2.5 TCP REQUIREMENT 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
    -------------------------------------------------|--------|-|-|-|-|-|--
                                                     |        | | | | | |
    Push flag                                        |        | | | | | |
      Aggregate or queue un-pushed data              |4.2.2.2 | | |x| | |
      Sender collapse successive PSH flags           |4.2.2.2 | |x| | | |
      SEND call can specify PUSH                     |4.2.2.2 | | |x| | |
        If cannot: sender buffer indefinitely        |4.2.2.2 | | | | |x|
        If cannot: PSH last segment                  |4.2.2.2 |x| | | | |
      Notify receiving ALP of PSH                    |4.2.2.2 | | |x| | |1
      Send max size segment when possible            |4.2.2.2 | |x| | | |
                                                     |        | | | | | |
    Window                                           |        | | | | | |
      Treat as unsigned number                       |4.2.2.3 |x| | | | |
      Handle as 32-bit number                        |4.2.2.3 | |x| | | |
      Shrink window from right                       |4.2.2.16| | | |x| |
      Robust against shrinking window                |4.2.2.16|x| | | | |
      Receiver's window closed indefinitely          |4.2.2.17| | |x| | |
      Sender probe zero window                       |4.2.2.17|x| | | | |
        First probe after RTO                        |4.2.2.17| |x| | | |
        Exponential backoff                          |4.2.2.17| |x| | | |
      Allow window stay zero indefinitely            |4.2.2.17|x| | | | |
      Sender timeout OK conn with zero wind          |4.2.2.17| | | | |x|
                                                     |        | | | | | |
    Urgent Data                                      |        | | | | | |
      Pointer points to last octet                   |4.2.2.4 |x| | | | |
      Arbitrary length urgent data sequence          |4.2.2.4 |x| | | | |
      Inform ALP asynchronously of urgent data       |4.2.2.4 |x| | | | |1
      ALP can learn if/how much urgent data Q'd      |4.2.2.4 |x| | | | |1
                                                     |        | | | | | |
    TCP Options                                      |        | | | | | |
      Receive TCP option in any segment              |4.2.2.5 |x| | | | |
      Ignore unsupported options                     |4.2.2.5 |x| | | | |
      Cope with illegal option length                |4.2.2.5 |x| | | | |
      Implement sending & receiving MSS option       |4.2.2.6 |x| | | | |
      Send MSS option unless 536                     |4.2.2.6 | |x| | | |
      Send MSS option always                         |4.2.2.6 | | |x| | |
      Send-MSS default is 536                        |4.2.2.6 |x| | | | |
      Calculate effective send seg size              |4.2.2.6 |x| | | | |
                                                     |        | | | | | |
    TCP Checksums                                    |        | | | | | |
      Sender compute checksum                        |4.2.2.7 |x| | | | |
      Receiver check checksum                        |4.2.2.7 |x| | | | |
                                                     |        | | | | | |
    Use clock-driven ISN selection                   |4.2.2.9 |x| | | | |
                                                     |        | | | | | |
    Opening Connections                              |        | | | | | |
      Support simultaneous open attempts             |4.2.2.10|x| | | | |
      SYN-RCVD remembers last state                  |4.2.2.11|x| | | | |
      Passive Open call interfere with others        |4.2.2.18| | | | |x|
      Function: simultan. LISTENs for same port      |4.2.2.18|x| | | | |
      Ask IP for src address for SYN if necc.        |4.2.3.7 |x| | | | |
        Otherwise, use local addr of conn.           |4.2.3.7 |x| | | | |
      OPEN to broadcast/multicast IP Address         |4.2.3.14| | | | |x|
      Silently discard seg to bcast/mcast addr       |4.2.3.14|x| | | | |
                                                     |        | | | | | |
    Closing Connections                              |        | | | | | |
      RST can contain data                           |4.2.2.12| |x| | | |
      Inform application of aborted conn             |4.2.2.13|x| | | | |
      Half-duplex close connections                  |4.2.2.13| | |x| | |
        Send RST to indicate data lost               |4.2.2.13| |x| | | |
      In TIME-WAIT state for 2xMSL seconds           |4.2.2.13|x| | | | |
        Accept SYN from TIME-WAIT state              |4.2.2.13| | |x| | |
                                                     |        | | | | | |
    Retransmissions                                  |        | | | | | |
      Jacobson Slow Start algorithm                  |4.2.2.15|x| | | | |
      Jacobson Congestion-Avoidance algorithm        |4.2.2.15|x| | | | |
      Retransmit with same IP ident                  |4.2.2.15| | |x| | |
      Karn's algorithm                               |4.2.3.1 |x| | | | |
      Jacobson's RTO estimation alg.                 |4.2.3.1 |x| | | | |
      Exponential backoff                            |4.2.3.1 |x| | | | |
      SYN RTO calc same as data                      |4.2.3.1 | |x| | | |
      Recommended initial values and bounds          |4.2.3.1 | |x| | | |
                                                     |        | | | | | |
    Generating ACK's:                                |        | | | | | |
      Queue out-of-order segments                    |4.2.2.20| |x| | | |
      Process all Q'd before send ACK                |4.2.2.20|x| | | | |
      Send ACK for out-of-order segment              |4.2.2.21| | |x| | |
      Delayed ACK's                                  |4.2.3.2 | |x| | | |
        Delay < 0.5 seconds                          |4.2.3.2 |x| | | | |
        Every 2nd full-sized segment ACK'd           |4.2.3.2 |x| | | | |
      Receiver SWS-Avoidance Algorithm               |4.2.3.3 |x| | | | |
                                                     |        | | | | | |
    Sending data                                     |        | | | | | |
      Configurable TTL                               |4.2.2.19|x| | | | |
      Sender SWS-Avoidance Algorithm                 |4.2.3.4 |x| | | | |
      Nagle algorithm                                |4.2.3.4 | |x| | | |
        Application can disable Nagle algorithm      |4.2.3.4 |x| | | | |
                                                     |        | | | | | |
    Connection Failures:                             |        | | | | | |
      Negative advice to IP on R1 retxs              |4.2.3.5 |x| | | | |
      Close connection on R2 retxs                   |4.2.3.5 |x| | | | |
      ALP can set R2                                 |4.2.3.5 |x| | | | |1
      Inform ALP of  R1<=retxs<R2                    |4.2.3.5 | |x| | | |1
      Recommended values for R1, R2                  |4.2.3.5 | |x| | | |
      Same mechanism for SYNs                        |4.2.3.5 |x| | | | |
        R2 at least 3 minutes for SYN                |4.2.3.5 |x| | | | |
                                                     |        | | | | | |
    Send Keep-alive Packets:                         |4.2.3.6 | | |x| | |
      - Application can request                      |4.2.3.6 |x| | | | |
      - Default is "off"                             |4.2.3.6 |x| | | | |
      - Only send if idle for interval               |4.2.3.6 |x| | | | |
      - Interval configurable                        |4.2.3.6 |x| | | | |
      - Default at least 2 hrs.                      |4.2.3.6 |x| | | | |
      - Tolerant of lost ACK's                       |4.2.3.6 |x| | | | |
                                                     |        | | | | | |
    IP Options                                       |        | | | | | |
      Ignore options TCP doesn't understand          |4.2.3.8 |x| | | | |
      Time Stamp support                             |4.2.3.8 | | |x| | |
      Record Route support                           |4.2.3.8 | | |x| | |
      Source Route:                                  |        | | | | | |
        ALP can specify                              |4.2.3.8 |x| | | | |1
          Overrides src rt in datagram               |4.2.3.8 |x| | | | |
        Build return route from src rt               |4.2.3.8 |x| | | | |
        Later src route overrides                    |4.2.3.8 | |x| | | |
                                                     |        | | | | | |
    Receiving ICMP Messages from IP                  |4.2.3.9 |x| | | | |
      Dest. Unreach (0,1,5) => inform ALP            |4.2.3.9 | |x| | | |
      Dest. Unreach (0,1,5) => abort conn            |4.2.3.9 | | | | |x|
      Dest. Unreach (2-4) => abort conn              |4.2.3.9 | |x| | | |
      Source Quench => slow start                    |4.2.3.9 | |x| | | |
      Time Exceeded => tell ALP, don't abort         |4.2.3.9 | |x| | | |
      Param Problem => tell ALP, don't abort         |4.2.3.9 | |x| | | |
                                                     |        | | | | | |
    Address Validation                               |        | | | | | |
      Reject OPEN call to invalid IP address         |4.2.3.10|x| | | | |
      Reject SYN from invalid IP address             |4.2.3.10|x| | | | |
      Silently discard SYN to bcast/mcast addr       |4.2.3.10|x| | | | |
                                                     |        | | | | | |
    TCP/ALP Interface Services                       |        | | | | | |
      Error Report mechanism                         |4.2.4.1 |x| | | | |
      ALP can disable Error Report Routine           |4.2.4.1 | |x| | | |
      ALP can specify TOS for sending                |4.2.4.2 |x| | | | |
        Passed unchanged to IP                       |4.2.4.2 | |x| | | |
      ALP can change TOS during connection           |4.2.4.2 | |x| | | |
      Pass received TOS up to ALP                    |4.2.4.2 | | |x| | |
      FLUSH call                                     |4.2.4.3 | | |x| | |
      Optional local IP addr parm. in OPEN           |4.2.4.4 |x| | | | |
    -------------------------------------------------|--------|-|-|-|-|-|--
    -------------------------------------------------|--------|-|-|-|-|-|--

    FOOTNOTES:

    (1)  "ALP" means Application-Layer program.

Next: 5. REFERENCES

Connected: An Internet Encyclopedia
RFC 1122 - 4.2.5 TCP REQUIREMENT SUMMARY