Requirements for Internet Hosts -- Communication Layers
| 1. INTRODUCTION |
| 1.1. The Internet Architecture |
| 1.1.1. Internet Hosts |
| 1.1.2. Architectural Assumptions |
| 1.1.3. Internet Protocol Suite |
| 1.1.4. Embedded Gateway Code |
| 1.2. General Considerations |
| 1.2.1. Continuing Internet Evolution |
| 1.2.2. Robustness Principle |
| 1.2.3. Error Logging |
| 1.2.4. Configuration |
| 1.3. Reading this Document |
| 1.3.1. Organization |
| 1.3.2. Requirements |
| 1.3.3. Terminology |
| 1.4. Acknowledgments |
| 2. LINK LAYER |
| 2.1. INTRODUCTION |
| 2.2. PROTOCOL WALK-THROUGH |
| 2.3. SPECIFIC ISSUES |
| 2.3.1. Trailer Protocol Negotiation |
| 2.3.2. Address Resolution Protocol -- ARP |
| 2.3.2.1. ARP Cache Validation |
| 2.3.2.2. ARP Packet Queue |
| 2.3.3. Ethernet and IEEE 802 Encapsulation |
| 2.4. LINK/INTERNET LAYER INTERFACE |
| 2.5. LINK LAYER REQUIREMENTS SUMMARY |
| 3. INTERNET LAYER PROTOCOLS |
| 3.1. INTRODUCTION |
| 3.2. PROTOCOL WALK-THROUGH |
| 3.2.1. Internet Protocol -- IP |
| 3.2.1.1. Version Number: RFC-791 Section 3.1 |
| 3.2.1.2. Checksum: RFC-791 Section 3.1 |
| 3.2.1.3. Addressing: RFC-791 Section 3.2 |
| 3.2.1.4. Fragmentation and Reassembly: RFC-791 Section 3.2 |
| 3.2.1.5. Identification: RFC-791 Section 3.2 |
| 3.2.1.6. Type-of-Service: RFC-791 Section 3.2 |
| 3.2.1.7. Time-to-Live: RFC-791 Section 3.2 |
| 3.2.1.8. Options: RFC-791 Section 3.2 |
| 3.2.2. Internet Control Message Protocol -- ICMP |
| 3.2.2.1. Destination Unreachable: RFC-792 |
| 3.2.2.2. Redirect: RFC-792 |
| 3.2.2.3. Source Quench: RFC-792 |
| 3.2.2.4. Time Exceeded: RFC-792 |
| 3.2.2.5. Parameter Problem: RFC-792 |
| 3.2.2.6. Echo Request/Reply: RFC-792 |
| 3.2.2.7. Information Request/Reply: RFC-792 |
| 3.2.2.8. Timestamp and Timestamp Reply: RFC-792 |
| 3.2.2.9. Address Mask Request/Reply: RFC-950 |
| 3.2.3. Internet Group Management Protocol IGMP |
| 3.3. SPECIFIC ISSUES |
| 3.3.1. Routing Outbound Datagrams |
| 3.3.1.1. Local/Remote Decision |
| 3.3.1.2. Gateway Selection |
| 3.3.1.3. Route Cache |
| 3.3.1.4. Dead Gateway Detection |
| 3.3.1.5. New Gateway Selection |
| 3.3.1.6. Initialization |
| 3.3.2. Reassembly |
| 3.3.3. Fragmentation |
| 3.3.4. Local Multihoming |
| 3.3.4.1. Introduction |
| 3.3.4.2. Multihoming Requirements |
| 3.3.4.3. Choosing a Source Address |
| 3.3.5. Source Route Forwarding |
| 3.3.6. Broadcasts |
| 3.3.7. IP Multicasting |
| 3.3.8. Error Reporting |
| 3.4. INTERNET/TRANSPORT LAYER INTERFACE |
| 3.5. INTERNET LAYER REQUIREMENTS SUMMARY |
| 4. TRANSPORT PROTOCOLS |
| 4.1. USER DATAGRAM PROTOCOL -- UDP |
| 4.1.1. INTRODUCTION |
| 4.1.2. PROTOCOL WALK-THROUGH |
| 4.1.3. SPECIFIC ISSUES |
| 4.1.3.1. Ports |
| 4.1.3.2. IP Options |
| 4.1.3.3. ICMP Messages |
| 4.1.3.4. UDP Checksums |
| 4.1.3.5. UDP Multihoming |
| 4.1.3.6. Invalid Addresses |
| 4.1.4. UDP/APPLICATION LAYER INTERFACE |
| 4.1.5. UDP REQUIREMENTS SUMMARY |
| 4.2. TRANSMISSION CONTROL PROTOCOL -- TCP |
| 4.2.1. INTRODUCTION |
| 4.2.2. PROTOCOL WALK-THROUGH |
| 4.2.2.1. Well-Known Ports: RFC-793 Section 2.7 |
| 4.2.2.2. Use of Push: RFC-793 Section 2.8 |
| 4.2.2.3. Window Size: RFC-793 Section 3.1 |
| 4.2.2.4. Urgent Pointer: RFC-793 Section 3.1 |
| 4.2.2.5. TCP Options: RFC-793 Section 3.1 |
| 4.2.2.6. Maximum Segment Size Option: RFC-793 Section 3.1 |
| 4.2.2.7. TCP Checksum: RFC-793 Section 3.1 |
| 4.2.2.8. TCP Connection State Diagram: RFC-793 Section 3.2, page 23 |
| 4.2.2.9. Initial Sequence Number Selection: RFC-793 Section 3.3, page 27 |
| 4.2.2.10. Simultaneous Open Attempts: RFC-793 Section 3.4, page 32 |
| 4.2.2.11. Recovery from Old Duplicate SYN: RFC-793 Section 3.4, page 33 |
| 4.2.2.12. RST Segment: RFC-793 Section 3.4 |
| 4.2.2.13. Closing a Connection: RFC-793 Section 3.5 |
| 4.2.2.14. Data Communication: RFC-793 Section 3.7, page 40 |
| 4.2.2.15. Retransmission Timeout: RFC-793 Section 3.7, page 41 |
| 4.2.2.16. Managing the Window: RFC-793 Section 3.7, page 41 |
| 4.2.2.17. Probing Zero Windows: RFC-793 Section 3.7, page 42 |
| 4.2.2.18. Passive OPEN Calls: RFC-793 Section 3.8 |
| 4.2.2.19. Time to Live: RFC-793 Section 3.9, page 52 |
| 4.2.2.20. Event Processing: RFC-793 Section 3.9 |
| 4.2.2.21. Acknowledging Queued Segments: RFC-793 Section 3.9 |
| 4.2.3. SPECIFIC ISSUES |
| 4.2.3.1. Retransmission Timeout Calculation |
| 4.2.3.2. When to Send an ACK Segment |
| 4.2.3.3. When to Send a Window Update |
| 4.2.3.4. When to Send Data |
| 4.2.3.5. TCP Connection Failures |
| 4.2.3.6. TCP Keep-Alives |
| 4.2.3.7. TCP Multihoming |
| 4.2.3.8. IP Options |
| 4.2.3.9. ICMP Messages |
| 4.2.3.10. Remote Address Validation |
| 4.2.3.11. TCP Traffic Patterns |
| 4.2.3.12. Efficiency |
| 4.2.4. TCP/APPLICATION LAYER INTERFACE |
| 4.2.4.1. Asynchronous Reports |
| 4.2.4.2. Type-of-Service |
| 4.2.4.3. Flush Call |
| 4.2.4.4. Multihoming |
| 4.2.5. TCP REQUIREMENT SUMMARY |
| 5. REFERENCES |
| 6. Security Considerations |
| 7. Author's Address |
