Experimental specifications: These are a result of research or development efforts. They’re not intended to be standards, but the information they contain may be of use to the Internet community.
Informational specifications: These simply provide general information for the Internet community.
Historic specifications: These RFCs have been superseded by a more recent RFC and are thus considered obsolete.
Best Current Practice (BCP): RFCs are documents that summarize the consensus of the Internet community’s opinion on the best way to perform an operation or procedure. BCPs are guidelines, not standards.
TABLE 2-1 Maturity Levels for Internet Standards Track RFCs xxx
Maturity Level | Description |
---|---|
Proposed Standard | Generally stable, have resolved known design choices, are believed to be well understood, have received significant community review, and appear to enjoy enough community interest to be considered valuable. |
Draft Standard | Well understood and known to be quite stable. At least two interoperable implementations must exist, developed independently from separate code bases. The specification is believed to be mature and useful. |
Internet Standard | Have been fully accepted by the Internet community as highly mature and useful standards. |
Table 2-2 summarizes the RFCs that apply to the key Internet standards described in this book.
TABLE 2-2 RFCs for Key Internet Standards
RFC | Date | Description |
---|---|---|
768 | August 1980 | User Datagram Protocol (UDP) |
791 | September 1981 | Internet Protocol (IP) |
792 | September 1981 | Internet Control Message Protocol (ICMP) |
793 | September 1981 | Transmission Control Protocol (TCP) |
826 | November 1982 | Ethernet Address Resolution Protocol (ARP) |
950 | August 1985 | Internet Standard Subnetting Procedure |
959 | October 1985 | File Transfer Protocol (FTP) |
1034 | November 1987 | Domain Names — Concepts and Facilities (DNS) |
1035 | November 1987 | Domain Names — Implementation and Specification (DNS) |
1939 | May 1996 | Post Office Protocol Version 3 (POP3) |
2131 | March 1997 | Dynamic Host Configuration Protocol (DHCP) |
3376 | November 1997 | Internet Group Management Protocol (IGMP) (Updates RFC 2236 and 1112) |
7230 through 7235 | June 2014 | Hypertext Transfer Protocol – HTTP/1.1 |
5321 | October 2008 | Simple Mail Transfer Protocol (SMTP) |
The TCP/IP Protocol Framework
Like the seven-layer OSI Reference Model, TCP/IP protocols are based on a layered framework. TCP/IP has four layers, as shown in Figure 2-1. These layers are described in the following sections.
FIGURE 2-1: The four layers of the TCP/IP framework.
Network interface layer
The lowest level of the TCP/IP architecture is the network interface layer. It corresponds to the OSI physical and data link layers. You can use many different TCP/IP protocols at the network interface layer, including Ethernet and token ring for LANs and protocols such as X.25, Frame Relay, and ATM for wide area networks (WANs).
The network interface layer is assumed to be unreliable.
Network layer
The network layer is where data is addressed, packaged, and routed among networks. Several important Internet protocols operate at the network layer:
Internet Protocol (IP): A routable protocol that uses IP addresses to deliver packets to network devices. IP is an intentionally unreliable protocol, so it doesn’t guarantee delivery of information.
Address Resolution Protocol (ARP): Resolves IP addresses to hardware Media Access Control (MAC) addresses, which uniquely identify hardware devices.
Internet Control Message Protocol (ICMP): Sends and receives diagnostic messages. ICMP is the basis of the ubiquitous ping command.
Internet Group Management Protocol (IGMP): Used to multicast messages to multiple IP addresses at once.
Transport layer
The transport layer is where sessions are established and data packets are exchanged between hosts. Two core protocols are found at this layer:
Transmission Control Protocol (TCP): Provides reliable connection-oriented transmission between two hosts. TCP establishes a session between hosts, and then ensures delivery of packets between the hosts.
User Datagram Protocol (UDP): Provides connectionless, unreliable,