Table of Contents
Internet Protocols
- Background
Internet Protocol (IP)
Internet Routing
Internet Control Message Protocol (ICMP)
Transmission Control Protocol (TCP)
Internet Protocols
Background
The Internet protocols are the world's most popular open-system (nonproprietary) protocol suite because they can be used to communicate across any set of interconnected networks and are equally well suited for LAN and WAN communications. The Internet protocols consist of a suite of communication protocols, of which the two best known are the Transmission Control Protocol (TCP) and the Internet Protocol (IP). The Internet protocol suite not only includes lower-layer protocols (such as TCP and IP), but it also specifies common applications such as electronic mail, terminal emulation, and file transfer. This chapter provides a broad introduction to specifications that comprise the Internet protocols. Discussions include IP addressing and key upper-layer protocols used in the Internet. Specific routing protocols are addressed individually in Part 6, Routing Protocols.
Internet protocols were first developed in the mid-1970s, when the Defense Advanced Research Projects Agency (DARPA) became interested in establishing a packet-switched network that would facilitate communication between dissimilar computer systems at research institutions. With the goal of heterogeneous connectivity in mind, DARPA funded research by Stanford University and Bolt, Beranek, and Newman (BBN). The result of this development effort was the Internet protocol suite, completed in the late 1970s.
TCP/IP later was included with Berkeley Software Distribution (BSD) UNIX and has since become the foundation on which the Internet and the World Wide Web (WWW) are based.
Documentation of the Internet protocols (including new or revised protocols) and policies are specified in technical reports called Request For Comments (RFCs), which are published and then reviewed and analyzed by the Internet community. Protocol refinements are published in the new RFCs. To illustrate the scope of the Internet protocols, Figure 30-1 maps many of the protocols of the Internet protocol suite and their corresponding OSI layers. This chapter addresses the basic elements and operations of these and other key Internet protocols.
Figure 30-1: Internet protocols span the complete range of OSI model layers.
Internet Protocol (IP)
IP Packet Format
An IP packet contains several types of information, as illustrated in Figure 30-2.
Figure 30-2: Fourteen fields comprise an IP packet.
The following discussion describes the IP packet fields illustrated in Figure 30-2:
- Version—Indicates the version of IP currently used.
- IP Header Length (IHL)—Indicates the datagram header length in 32-bit words.
- Type-of-Service—Specifies how an upper-layer protocol would like a current datagram to be handled, and assigns datagrams various levels of importance.
- Total Length—Specifies the length, in bytes, of the entire IP packet, including the data and header.
- Identification—Contains an integer that identifies the current datagram. This field is used to help piece together datagram fragments.
- Flags—Consists of a 3-bit field of which the two low-order (least-significant) bits control fragmentation. The low-order bit specifies whether the packet can be fragmented. The middle bit specifies whether the packet is the last fragment in a series of fragmented packets. The third or high-order bit is not used.
- Fragment Offset—Indicates the position of the fragment's data relative to the beginning of the data in the original datagram, which allows the destination IP process to properly reconstruct the original datagram.
- Time-to-Live—Maintains a counter that gradually decrements down to zero, at which point the datagram is discarded. This keeps packets from looping endlessly.
- Protocol—Indicates which upper-layer protocol receives incoming packets after IP processing is complete.
- Header Checksum—Helps ensure IP header integrity.
- Source Address—Specifies the sending node.
- Destination Address—Specifies the receiving node.
- Options—Allows IP to support various options, such as security.
- Data—Contains upper-layer information.
IP Addressing
As with any other network-layer protocol, the IP addressing scheme is integral to the process of routing IP datagrams through an internetwork. Each IP address has specific components and follows a basic format. These IP addresses can be subdivided and used to create addresses for subnetworks, as discussed in more detail later in this chapter.
Each host on a TCP/IP network is assigned a unique 32-bit logical address that is divided into two main parts: the network number and the host number. The network number identifies a network and must be assigned by the Internet Network Information Center (InterNIC) if the network is to be part of the Internet. An Internet Service Provider (ISP) can obtain blocks of network addresses from the InterNIC and can itself assign address space as necessary. The host number identifies a host on a network and is assigned by the local network administrator.
IP Address Format
The 32-bit IP address is grouped eight bits at a time, separated by dots, and represented in decimal format (known as dotted decimal notation). Each bit in the octet has a binary weight (128, 64, 32, 16, 8, 4, 2, 1). The minimum value for an octet is 0, and the maximum value for an octet is 255. Figure 30-3 illustrates the basic format of an IP address.
Figure 30-3: An IP address consists of 32 bits, grouped into four octets.
IP Address Classes
IP addressing supports five different address classes: A, B,C, D, and E. Only classes A, B, and C are available for commercial use. The left-most (high-order) bits indicate the network class. Table 30-1 provides reference information about the five IP address classes.
Table 30-1: Reference Information About the Five IP Address Classes
IP Address Class | Format | Purpose | High-Order Bit(s) | Address Range | No. Bits Network/Host | Max. Hosts |
---|---|---|---|---|---|---|
A | N.H.H.H1 | Few large organizations | 0 | 1.0.0.0 to 126.0.0.0 | 7/24 | 16,777, 2142 (224 - 2) |
B | N.N.H.H | Medium-size organizations | 1, 0 | 128.1.0.0 to 191.254.0.0 | 14/16 | 65, 543 (216 - 2) |
C | N.N.N.H | Relatively small organizations | 1, 1, 0 | 192.0.1.0 to 223.255.254.0 | 22/8 | 245 (28 - 2) |
D | N/A | Multicast groups (RFC 1112) | 1, 1, 1, 0 | 224.0.0.0 to 239.255.255.255 | N/A (not for commercial use) | N/A |
E | N/A | Experimental | 1, 1, 1, 1 | 240.0.0.0 to 254.255.255.255 | N/A | N/A |
1N = Network number, H = Host number. 2One address is reserved for the broadcast address, and one address is reserved for the network. |
Figure 30-4 illustrates the format of the commercial IP address classes. (Note the high-order bits in each class.)
Figure 30-4: IP address formats A, B, and C are available for commercial use.
The class of address can be determined easily by examining the first octet of the address and mapping that value to a class range in the following table. In an IP address of 172.31.1.2, for example, the first octet is 172. Because 172 falls between 128 and 191, 172.31.1.2 is a Class B address. Figure 30-5 summarizes the range of possible values for the first octet of each address class.
Figure 30-5: A range of possible values exists for the first octet of each address class.
IP Subnet Addressing
IP networks can be divided into smaller networks called subnetworks (or subnets). Subnetting provides the network administrator with several benefits, including extra flexibility, more efficient use of network addresses, and the capability to contain broadcast traffic (a broadcast will not cross a router).
IP Subnet Mask
A subnet address is created by "borrowing" bits from the host field and designating them as the subnet field. The number of borrowed bits varies and is specified by the subnet mask. Figure 30-6 shows how bits are borrowed from the host address field to create the subnet address field.
Figure 30-6: Bits are borrowed from the host address field to create the subnet address field.
Subnet masks use the same format and representation technique as IP addresses. The subnet mask, however, has binary 1s in all bits specifying the network and subnetwork fields, and binary 0s in all bits specifying the host field. Figure 30-7 illustrates a sample subnet mask.
Figure 30-7: A sample subnet mask consists of all binary 1s and 0s.
Subnet mask bits should come from the high-order (left-most) bits of the host field, as Figure 30-8 illustrates. Details of Class B and C subnet mask types follow. Class A addresses are not discussed in this chapter because they generally are subnetted on an 8-bit boundary.
Figure 30-8: Subnet mask bits come from the high-order bits of the host field.
Various types of subnet masks exist for Class B and C subnets.
The default subnet mask for a Class B address that has no subnetting is 255.255.0.0, while the subnet mask for a Class B address 171.16.0.0 that specifies eight bits of subnetting is 255.255.255.0. The reason for this is that eight bits of subnetting or 28 - 2 (1 for the network address and 1 for the broadcast address) = 254 subnets possible, with 28 - 2 = 254 hosts per subnet.
The reference charts shown in table 30-2 and table 30-3 can be used when planning Class B and C networks to determine the required number of subnets and hosts, and the appropriate subnet mask.
Table 30-2: Class B Subnetting Reference Chart
Number of Bits | Subnet Mask | Number of Subnets | Number of Hosts |
---|---|---|---|
2 | 255.255.192.0 | 2 | 16382 |
3 | 255.255.224.0 | 6 | 8190 |
4 | 255.255.240.0 | 14 | 4094 |
5 | 255.255.248.0 | 30 | 2046 |
6 | 255.255.252.0 | 62 | 1022 |
7 | 255.255.254.0 | 126 | 510 |
8 | 255.255.255.0 | 254 | 254 |
9 | 255.255.255.128 | 510 | 126 |
10 | 255.255.255.192 | 1022 | 62 |
11 | 255.255.255.224 | 2046 | 30 |
12 | 255.255.255.240 | 4094 | 14 |
13 | 255.255.255.248 | 8190 | 6 |
14 | 255.255.255.252 | 16382 | 2 |
Table 30-3: Class C Subnetting Reference Chart
Number of Bits | Subnet Mask | Number of Subnets | Number of Hosts |
2 | 255.255.255.192 | 2 | 62 |
3 | 255.255.255.224 | 6 | 30 |
4 | 255.255.255.240 | 14 | 14 |
5 | 255.255.255.248 | 30 | 6 |
6 | 255.255.255.252 | 62 | 2 |
How Subnet Masks are Used to Determine the Network Number
The router performs a set process to determine the network (or more specifically, the subnetwork) address. First, the router extracts the IP destination address from the incoming packet and retrieves the internal subnet mask. It then performs a logical AND operation to obtain the network number. This causes the host portion of the IP destination address to be removed, while the destination network number remains. The router then looks up the destination network number and matches it with an outgoing interface. Finally, it forwards the frame to the destination IP address. Specifics regarding the logical AND operation are discussed in the following section.
Logical AND Operation
Table 30-4: Rules for Logical AND Operations
Input | Input | Output |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
Figure 30-9 illustrates that when a logical AND of the destination IP address and the subnet mask is performed, the subnetwork number remains, which the router uses to forward the packet.
Figure 30-9: Applying a logical AND the destination IP address and the subnet mask produces the subnetwork number.
Address Resolution Protocol (ARP) Overview
For two machines on a given network to communicate, they must know the other machine's physical (or MAC) addresses. By broadcasting Address Resolution Protocols (ARPs), a host can dynamically discover the MAC-layer address corresponding to a particular IP network-layer address.
In addition to the Reverse Address Resolution Protocol (RARP) is used to map MAC-layer addresses to IP addresses. RARP, which is the logical inverse of ARP, might be used by diskless workstations that do not know their IP addresses when they boot. RARP relies on the presence of a RARP server with table entries of MAC-layer-to-IP address mappings.
Internet Routing
Routers that move information between autonomous systems are called exterior routers. These routers use an exterior gateway protocol to exchange information between autonomous systems. The Border Gateway Protocol (BGP) is an example of an exterior gateway protocol.
Note Specific routing protocols, including BGP and RIP, are addressed in individual chapters presented in Part 6 later in this book.
IP Routing
Each node's involvement in the routing process is limited to forwarding packets based on internal information. The nodes do not monitor whether the packets get to their final destination, nor does IP provide for error reporting back to the source when routing anomalies occur. This task is left to another Internet protocol, the Internet Control-Message Protocol (ICMP), which is discussed in the following section.
Internet Control Message Protocol (ICMP)
The Internet Control Message Protocol (ICMP) is a network-layer Internet protocol that provides message packets to report errors and other information regarding IP packet processing back to the source. ICMP is documented in RFC 792.
ICMP Messages
ICMPs generate several kinds of useful messages, including Destination Unreachable, Echo Request and Reply, Redirect, Time Exceeded, and Router Advertisement and Router Solicitation. If an ICMP message cannot be delivered, no second one is generated. This is to avoid an endless flood of ICMP messages.
When an ICMP destination-unreachable message is sent by a router, it means that the router is unable to send the package to its final destination. The router then discards the original packet. Two reasons exist for why a destination might be unreachable. Most commonly, the source host has specified a nonexistent address. Less frequently, the router does not have a route to the destination.
Destination-unreachable messages include four basic types: network unreachable, host unreachable, protocol unreachable, and port unreachable. Network-unreachable messages usually mean that a failure has occurred in the routing or addressing of a packet. Host-unreachable messages usually indicates delivery failure, such as a wrong subnet mask. Protocol-unreachable messages generally mean that the destination does not support the upper-layer protocol specified in the packet. Port-unreachable messages imply that the TCP socket or port is not available.
An ICMP echo-request message, which is generated by the ping command, is sent by any host to test node reachability across an internetwork. The ICMP echo-reply message indicates that the node can be successfully reached.
An ICMP Redirect message is sent by the router to the source host to stimulate more efficient routing. The router still forwards the original packet to the destination. ICMP redirects allow host routing tables to remain small because it is necessary to know the address of only one router, even if that router does not provide the best path. Even after receiving an ICMP Redirect message, some devices might continue using the less-efficient route.
An ICMP Time-exceeded message is sent by the router if an IP packet's Time-to-Live field (expressed in hops or seconds) reaches zero. The Time-to-Live field prevents packets from continuously circulating the internetwork if the internetwork contains a routing loop. The router then discards the original packet.
ICMP Router-Discovery Protocol (IDRP)
IDRP uses Router-Advertisement and Router-Solicitation messages to discover the addresses of routers on directly attached subnets. Each router periodically multicasts Router-Advertisement messages from each of its interfaces. Hosts then discover addresses of routers on directly attached subnets by listening for these messages. Hosts can use Router-Solicitation messages to request immediate advertisements rather than waiting for unsolicited messages.
Transmission Control Protocol (TCP)
With stream data transfer, TCP delivers an unstructured stream of bytes identified by sequence numbers. This service benefits applications because they do not have to chop data into blocks before handing it off to TCP. Instead, TCP groups bytes into segments and passes them to IP for delivery.
Full-duplex operation means that TCP processes can both send and receive at the same time.
TCP Connection Establishment
To use reliable transport services, TCP hosts must establish a connection-oriented session with one another. Connection establishment is performed by using a "three-way handshake" mechanism.
The first host (Host A) initiates a connection by sending a packet with the initial sequence number (X) and SYN bit set to indicate a connection request. The second host (Host B) receives the SYN, records the sequence number X, and replies by acknowledging the SYN (with an ACK = X + 1). Host B includes its own initial sequence number (SEQ = Y). An ACK = 20 means the host has received bytes 0 through 19 and expects byte 20 next. This technique is called forward acknowledgment. Host A then acknowledges all bytes Host B sent with a forward acknowledgment indicating the next byte Host A expects to receive (ACK = Y + 1). Data transfer then can begin.
Positive Acknowledgment and Retransmission (PAR)
A simple transport protocol might implement a reliability-and-flow-control technique where the source sends one packet, starts a timer, and waits for an acknowledgment before sending a new packet. If the acknowledgment is not received before the timer expires, the source retransmits the packet. Such a technique is called positive acknowledgment and retransmission (PAR).
PAR is an inefficient use of bandwidth, however, because a host must wait for an acknowledgment before sending a new packet, and only one packet can be sent at a time.
TCP Sliding Window
A TCP sliding window provides more efficient use of network bandwidth than PAR because it enables hosts to send multiple bytes or packets before waiting for an acknowledgment.
In TCP, the receiver specifies the current window size in every packet. Because TCP provides a byte-stream connection, window sizes are expressed in bytes. This means that a window is the number of data bytes that the sender is allowed to send before waiting for an acknowledgment. Initial window sizes are indicated at connection setup, but might vary throughout the data transfer to provide flow control. A window size of zero, for instance, means "Send no data."
TCP Packet Format
Figure 30-10 illustrates the fields and overall format of a TCP packet.
Figure 30-10: Twelve fields comprise a TCP packet.
TCP Packet Field Descriptions
The following descriptions summarize the TCP packet fields illustrated in Figure 30-10:
- Source Port and Destination Port—Identifies points at which upper-layer source and destination processes receive TCP services.
- Sequence Number—Usually specifies the number assigned to the first byte of data in the current message. In the connection-establishment phase, this field also can be used to identify an initial sequence number to be used in an upcoming transmission.
- Acknowledgment Number—Contains the sequence number of the next byte of data the sender of the packet expects to receive.
- Data Offset—Indicates the number of 32-bit words in the TCP header.
- Reserved—Remains reserved for future use.
- Flags—Carries a variety of control information, including the SYN and ACK bits used for connection establishment, and the FIN bit used for connection termination.
- Window—Specifies the size of the sender's receive window (that is, the buffer space available for incoming data).
- Checksum—Indicates whether the header was damaged in transit.
- Urgent Pointer—Points to the first urgent data byte in the packet.
- Options—Specifies various TCP options.
- Data—Contains upper-layer information.
User Datagram Protocol (UDP)
The UDP packet format contains four fields, as shown in Figure 30-11. These include source and destination ports, length, and checksum fields.
Figure 30-11: A UDP packet consists of four fields.
Source and destination ports contain the 16-bit UDP protocol port numbers used to demultiplex datagrams for receiving application-layer processes. A length field specifies the length of the UDP header and data. Checksum provides an (optional) integrity check on the UDP header and data.
Internet Protocols Application-Layer Protocols
The Internet protocol suite includes many application-layer protocols that represent a wide variety of applications, including the following:
- File Transfer Protocol (FTP)—Moves files between devices
- Simple Network-Management Protocol (SNMP)—Primarily reports anomalous network conditions and sets network threshold values
- Telnet—Serves as a terminal emulation protocol
- X Windows—Serves as a distributed windowing and graphics system used for communication between X terminals and UNIX workstations
- Network File System (NFS), External Data Representation (XDR), and Remote Procedure Call (RPC)—Work together to enable transparent access to remote network resources
- Simple Mail Transfer Protocol (SMTP)—Provides electronic mail services
- Domain Name System (DNS)—Translates the names of network nodes into network addresses
Table 30-5 lists these higher-layer protocols and the applications that they support.
Table 30-5: Higher-Layer Protocols and Their Applications
Application | Protocols |
---|---|
File transfer | FTP |
Terminal emulation | Telnet |
Electronic mail | SMTP |
Network management | SNMP |
Distributed file services | NFS, XDR, RPC, X Windows |
No comments:
Post a Comment