Chapter 9: Introduction to Data-Link Layer PDF
Document Details
Uploaded by HeroicBlackHole3042
Tags
Summary
This document introduces the data-link layer in the TCP/IP protocol suite, explaining its role in connecting networks and communicating data between nodes. It covers topics such as framing, flow control, error correction, and congestion control. The document also distinguishes between point-to-point and broadcast links.
Full Transcript
# Chapter 9: Introduction to Data-Link Layer The TCP/IP protocol suite does not define any protocol in the data-link layer or physical layer. These two layers are territories of networks that when connected makeup the Internet. These networks, wired or wireless, provide services to the upper three...
# Chapter 9: Introduction to Data-Link Layer The TCP/IP protocol suite does not define any protocol in the data-link layer or physical layer. These two layers are territories of networks that when connected makeup the Internet. These networks, wired or wireless, provide services to the upper three layers of the TCP/IP suite. This may give us a clue that there are several standard protocols in the market today. For this reason, we discuss the data-link layer in several chapters. This chapter is an introduction that gives the general idea and common issues in the data-link layer that relate to all networks. ## 9.1 Introduction The Internet is a combination of networks glued together by connecting devices (routers or switches). If a packet is to travel from a host to another host, it needs to pass through these networks. Figure 9.1 shows the same scenario we discussed in Chapter 3, but we are now interested in communication at the data-link layer. Communication at the data-link layer is made up of five separate logical connections between the data-link layers in the path. **Figure 9.1: Communication at the data-link layer** *Alice's computer* - Application - Transport - Network - Data-link - Physical *Router R2* - Network - Data-link - Physical *Router R4* - Network - Data-link - Physical *Router R5* - Network - Data-link - Physical *ISP Router R7* - Network - Data-link - Physical *Bob's computer* - Application - Transport - Network - Data-link - Physical The data-link layer at Alice's computer communicates with the data-link layer at router R2. The data-link layer at router R2 communicates with the data-link layer at router R4, and so on. Finally, the data-link layer at router R7 communicates with the data-link layer at Bob's computer. Only one data-link layer is involved at the source or the destination, but two data-link layers are involved at each router. The reason is that Alice's and Bob's computers are each connected to a single network, but each router takes input from one network and sends output to another network. Note that although switches are also involved in the data-link-layer communication, for simplicity we have not shown them in the figure. **Figure 9.2: Nodes and Links** | | | |---|---| | **Point to point network** | **Point to point network** | | LAN | LAN | | | LAN | **a. A small part of the Internet** | Link | Link | Link | Link | Link | |---|---|---|---|---| | Node | Node | Node | Node | Node | Node | **b. Nodes and links** The first node is the source host; the last node is the destination host. The other four nodes are four routers. The first, the third, and the fifth links represent the three LANs; the second and the fourth links represent the two WANs. ### 9.1.1 Nodes and Links Communication at the data-link layer is node-to-node. A data unit from one point in the Internet needs to pass through many networks (LANs and WANs) to reach another point. These LANs and WANs are connected by routers. It is customary to refer to the two end hosts and the routers as nodes and the networks in between as links. Figure 9.2 is a simple representation of links and nodes when the path of the data unit is only six nodes. ### 9.1.2 Services The data-link layer is located between the physical and the network layers. The data-link layer provides services to the network layer; it receives services from the physical layer. Let us discuss services provided by the data-link layer. The duty scope of the data-link layer is node-to-node. When a packet is traveling in the Internet, the data-link layer of a node (host or router) is responsible for delivering a datagram to the next node in the path. For this purpose, the data-link layer of the sending node needs to *encapsulate* the datagram received from the network in a *frame*, and the data-link layer of the receiving node needs to *decapsulate* the datagram from the frame. In other words, the data-link layer of the source host needs only to encapsulate, the data-link layer of the destination host needs to decapsulate, but each intermediate node needs to both encapsulate and decapsulate. One may ask why we need encapsulation and decapsulation at each intermediate node. The reason is that each link may be using a different protocol with a different frame format. Even if one link and the next are using the same protocol, encapsulation and decapsulation are needed because the link-layer addresses are normally different. An analogy may help in this case. Assume a person needs to travel from her home to her friend's home in another city. The traveller can use three transportation tools. She can take a taxi to go to the train station in her own city, then travel on the train from her own city to the city where her friend lives, and finally reach her friend's home using another taxi. Here we have a source node, a destination node, and two intermediate nodes. The traveller needs to get into the taxi at the source node, get out of the taxi and get into the train at the first intermediate node (train station in the city where she lives), get out of the train and get into another taxi at the second intermediate node (train station in the city where her friend lives), and finally get out of the taxi when she arrives at her destination. A kind of encapsulation occurs at the source node, encapsulation and decapsulation occur at the intermediate nodes, and decapsulation occurs at the destination node. Our traveller is the same, but she uses three transporting tools to reach the destination. **Figure 9.3: A communication with only three nodes** | | | | |---|---|---| | *Actual link* | *Logical link* | *Data-link header* | | | | | | *Datagramm* | *Datagram* | *Datagram* | | | | | | *Frame: type 1* | *Data-link* | *Frame type 2* | | | | | | *Source* | *Link: of type 1* | *Link: of type 2* | | | | | | | *To another link* | *Destination* | With the contents of the above figure in mind, we can list the services provided by a data-link layer as shown below. ### 9.1.3 Framing Definitely, the first service provided by the data-link layer is *framing*. The data-link layer at each node needs to encapsulate the datagram (packet received from the network layer) in a frame before sending it to the next node. The node also needs to decapsulate the datagram from the frame received on the logical channel. Although we have shown only a header for a frame, we will see in future chapters that a frame may have both a header and a trailer. Different data-link layers have different formats for framing. A packet at the data-link layer is normally called a *frame*. ### 9.1.4 Flow Control Whenever we have a producer and a consumer, we need to think about flow control. If the producer produces items that cannot be consumed, accumulation of items occurs. The sending data-link layer at the end of a link is a producer of frames; the receiving data-link layer at the other end of a link is a consumer. If the rate of produced frames is higher than the rate of consumed frames, frames at the receiving end need to be buffered while waiting to be consumed (processed). Definitely, we cannot have an unlimited buffer size at the receiving side. We have two choices. The first choice is to let the receiving data-link layer *drop the frames* if its buffer is full. The second choice is to let the receiving data-link layer send a feedback to the sending data-link layer to ask it to stop or slow down. Different data-link-layer protocols use different strategies for flow control. Since flow control also occurs at the transport layer, with a higher degree of importance, we discuss this issue in Chapter 23 when we talk about the transport layer. ### 9.1.5 Error Control At the sending node, a frame in a data-link layer needs to be changed to bits, transformed to electromagnetic signals, and transmitted through the transmission media. At the receiving node, electromagnetic signals are received, transformed to bits, and put together to create a frame. Since electromagnetic signals are susceptible to error, a frame is susceptible to error. The error needs first to be detected. After detection, it needs to be either corrected at the receiver node or discarded and retransmitted by the sending node. Since error detection and correction is an issue in every layer (node-to-node or host-to-host), we have dedicated all of Chapter 10 to this issue. ### 9.1.6 Congestion Control Although a link may be congested with frames, which may result in frame loss, most data-link-layer protocols do not directly use a congestion control to alleviate congestion, although some wide-area networks do. In general, congestion control is considered an issue in the network layer or the transport layer because of its end-to-end nature. We will discuss congestion control in the network layer and the transport layer in later chapters. ### 9.1.7 Two Categories of Links Although two nodes are physically connected by a transmission medium such as cable or air, we need to remember that the data-link layer controls how the medium is used. We can have a data-link layer that uses the whole capacity of the medium; we can also have a data-link layer that uses only part of the capacity of the link. In other words, we can have a point-to-point link or a broadcast link. In a point-to-point link, the link is dedicated to the two devices; in a broadcast link, the link is shared between several pairs of devices. For example, when two friends use the traditional home phones to chat, they are using a point-to-point link; when the same two friends use their cellular phones, they are using a broadcast link (the air is shared among many cell phone users). ### 9.1.8 Two Sublayers To better understand the functionality of and the services provided by the link layer, we can divide the data-link layer into two sublayers: *data link control (DLC)* and *media access control (MAC)*. This is not unusual because, as we will see in later chapters, LAN protocols actually use the same strategy. The data link control sublayer deals with all issues common to both point-to-point and broadcast links; the media access control sublayer deals only with issues specific to broadcast links. In other words, we separate these two types of links at the data-link layer, as shown in Figure 9.4. **Figure 9.4: Dividing the data-link layer into two sublayers** | *Sublayer* | *Sublayer* | |---|---| | **Data link control sublayer** | **Data link control sublayer** | | *Media access control sublayer* | | | *Data-link layer of a broadcast link* | *Data-link layer of a point-to-point link* | We discuss the DLC and MAC sublayers later, each in a separate chapter. In addition, we discuss the issue of error detection and correction, a duty of the data-link and other layers, also in a separate chapter. ## 9.2 Link-Layer Addressing The next issue we need to discuss about the data-link layer is the link-layer addresses. In Chapter 18, we will discuss IP addresses as the identifiers at the network layer that define the exact points in the Internet where the source and destination hosts are connected. However, in a connectionless internetwork such as the Internet we cannot make a datagram reach its destination using only IP addresses. The reason is that each datagram in the Internet, from the same source host to the same destination host, may take a different path. The source and destination IP addresses define the two ends but cannot define which links the datagram should pass through. We need to remember that the IP addresses in a datagram should not be changed. If the destination IP address in a datagram changes, the packet never reaches its destination; if the source IP address in datagram changes, the destination host or a router can never communicate with the source if a response needs to be sent back or an error needs to be reported back to the source (see ICMP in Chapter 19). The above discussion shows that we need another addressing mechanism in a connectionless internetwork: the link-layer addresses of the two nodes. A link-layer address is sometimes called a link address, sometimes a physical address, and sometimes a MAC address. We use these terms interchangeably in this book. Since a link is controlled at the data-link layer, the addresses need to belong to the data-link layer. When a datagram passes from the network layer to the data-link layer, the datagram will be encapsulated in a frame and two data-link addresses are added to the frame header. These two addresses are changed every time the frame moves from one link to another. Figure 9.5 demonstrates the concept in a small internet. **Figure 9.5: IP addresses and link-layer addresses in a small internet** *Alice's computer* - To another link - N3 L3 - Link 1 - N1 L1 - Frame - L2 L1 N1 N8 Data - N2 L2 R1 N4 L4 *Router R1* - Link 1 - IP addresses: source-destination - Link-layer address: destination-source *Router R2* - Link 3 - N8 L8 - Frame - L8 L7 N1 N8 Data - N7 L7 - N5 L5 *Bob's computer* - Link 2 - To another network - Frame - L5 L4 N1 N8 Data - N6 L6 In the internet in Figure 9.5, we have three links and two routers. We also have shown only two hosts: Alice (source) and Bob (destination). For each host, we have shown two addresses, the IP addresses (N) and the link-layer addresses (L). Note that a router has as many pairs of addresses as the number of links the router is connected to. We have shown three frames, one in each link. Each frame carries the same datagram with the same source and destination addresses (N1 and N8), but the link-layer addresses of the frame change from link to link. In link 1, the link-layer addresses are L₁ and L2. In link 2, they are L4 and L5. In link 3, they are L7 and L8. Note that the IP addresses and the link-layer addresses are not in the same order. For IP addresses, the source address comes before the destination address; for link-layer addresses, the destination address comes before the source. The datagrams and frames are designed in this way, and we follow the design. We may raise several questions: * If the IP address of a router does not appear in any datagram sent from a source to a destination, why do we need to assign IP addresses to routers? The answer is that in some routing protocols a router may act as a sender or receiver of a datagram. For example, in routing protocols we will discuss in Chapters 20 and 21, a router is a sender or a receiver of a message. The communications in these protocols are between routers. * Why do we need more than one IP address in a router, one for each interface? The answer is that an interface is a connection of a router to a link. We will see that an IP address defines a point in the Internet at which a device is connected. A router with n interfaces is connected to the Internet at n points. This is the situation of a house at the corner of a street with two gates; each gate has the address related to the corresponding street. * How are the source and destination IP addresses in a packet determined? The answer is that the host should know its own IP address, which becomes the source IP address in the packet. As we will discuss in Chapter 26, the application layer uses the services of DNS to find the destination address of the packet and passes it to the network layer to be inserted in the packet. * How are the source and destination link-layer addresses determined for each link? Again, each hop (router or host) should know its own link-layer address, as we discuss later in the chapter. The destination link-layer address is determined by using the Address Resolution Protocol, which we discuss shortly. * What is the size of link-layer addresses? The answer is that it depends on the protocol used by the link. Although we have only one IP protocol for the whole Internet, we may be using different data-link protocols in different links. This means that we can define the size of the address when we discuss different link-layer protocols. ### 9.2.1 Three Types of addresses Some link-layer protocols define three types of addresses: unicast, multicast, and broadcast. **Unicast Address** Each host or each interface of a router is assigned a unicast address. Unicasting means one-to-one communication. A frame with a unicast address destination is destined only for one entity in the link. **Example 9.1** As we will see in Chapter 13, the unicast link-layer addresses in the most common LAN, Ethernet, are 48 bits (six bytes) that are presented as *12 hexadecimal digits separated by colons*; for example, the following is a link-layer address of a computer. **A3:34:45:11:92:F1** **Multicast Address** Some link-layer protocols define multicast addresses. *Multicasting* means one-to-many communication. However, the jurisdiction is local (inside the link). **Example 9.2** As we will see in Chapter 13, the multicast link-layer addresses in the most common LAN, Ethernet, are 48 bits (six bytes) that are presented as *12 hexadecimal digits separated by colons*. The second digit, however, needs to be an even number in hexadecimal. The following shows a multicast address: **A2:34:45:11:92:F1** **Broadcast Address** Some link-layer protocols define a broadcast address. Broadcasting means one-to-all communication. A frame with a destination broadcast address is sent to all entities in the link. **Example 9.3** As we will see in Chapter 13, the broadcast link-layer addresses in the most common LAN, Ethernet, are 48 bits, all 1s, that are presented as *12 hexadecimal digits separated by colons*. The following shows a broadcast address: **FF:FF:FF:FF:FF:FF** ### 9.2.2 Address Resolution Protocol (ARP) Anytime a node has an IP datagram to send to another node in a link, it has the IP address of the receiving node. The source host knows the IP address of the default router. Each router except the last one in the path gets the IP address of the next router by using its forwarding table. The last router knows the IP address of the destination host. However, the IP address of the next node is not helpful in moving a frame through a link; we need the link-layer address of the next node. This is the time when the *Address Resolution Protocol* (ARP) becomes helpful. The ARP protocol is one of the auxiliary protocols defined in the network layer, as shown in Figure 9.6. It belongs to the network layer, but we discuss it in this chapter because it maps an IP address to a logical-link address. ARP accepts an IP address from the IP protocol, maps the address to the corresponding link-layer address, and passes it to the data-link layer. **Figure 9.6: Position of ARP in TCP/IP protocol suite** *Network Layer* - ICMP - IGMP - IP - IP address - ARP - Link-layer address Every host or router on the network receives and processes the ARP request packet, but only the intended recipient recognizes its IP address and sends back an ARP response packet. The response packet contains the recipient's IP and link-layer addresses. The packet is unicast directly to the node that sent the request packet. In Figure 9.7a, the system on the left (A) has a packet that needs to be delivered to another system (B) with IP address N2. System A needs to pass the packet to its data-link layer for the actual delivery, but it does not know the physical address of the recipient. It uses the services of ARP by asking the ARP protocol to send a broadcast ARP request packet to ask for the physical address of a system with an IP address of N2. This packet is received by every system on the physical network, but only system B will answer it, as shown in Figure 9.7b. System B sends an ARP reply packet that includes its physical address. Now system A can send all the packets it has for this destination using the physical address it received. **Figure 9.7: ARP operation** *LAN* - System A - N1 L1 - Request - N4 L4 - Request: Looking for link-layer address of a node with IP address N2 - System B - N2 L2 - N3 L3 *a. ARP request is broadcast* *LAN* - System A - N1 L1 - N4 L4 - System B - N2 L2 - N3 L3 - Reply - Reply: I am the node and my link-layer address is L2 *b. ARP reply is unicast* ### 9.2.3 Caching A question that is often asked is this: If system A can broadcast a frame to find the link-layer address of system B, why can't system A send the datagram for system B using a broadcast frame? In other words, instead of sending one broadcast frame (ARP request), one unicast frame (ARP response), and another unicast frame (for sending the datagram), system A can encapsulate the datagram and send it to the network. System B receives it and keep it; other systems discard it. To answer the question, we need to think about the efficiency. It is probable that system A has more than one datagram to send to system B in a short period of time. For example, if system B is supposed to receive a long e-mail or a long file, the data do not fit in one datagram. Let us assume that there are 20 systems connected to the network (link): system A, system B, and 18 other systems. We also assume that system A has 10 datagrams to send to system B in one second. * **Without using ARP**, system A needs to send 10 broadcast frames. Each of the 18 other systems need to receive the frames, decapsulate the frames, remove the datagram and pass it to their network-layer to find out the datagrams do not belong to them. This means processing and discarding 180 broadcast frames. * **Using ARP**, system A needs to send only one broadcast frame. Each of the 18 other systems need to receive the frames, decapsulate the frames, remove the ARP message and pass the message to their ARP protocol to find that the frame must be discarded. This means processing and discarding only 18 (instead of 180) broadcast frames. After system B responds with its own data-link address, system A can store the link-layer address in its cache memory. The rest of the nine frames are only unicast. Since processing broadcast frames is expensive (time consuming), the first method is preferable. ### 9.2.4 Packet Format Figure 9.8 shows the format of an ARP packet. The names of the fields are self-explanatory. The *hardware type* field defines the type of the link-layer protocol; Ethernet is given the type 1. The *protocol type* field defines the network-layer protocol: IPv4 protocol is (0800)16. The *source hardware* and *source protocol* addresses are variable-length fields defining the link-layer and network-layer addresses of the sender. The *destination hardware* address and *destination protocol* address fields define the receiver link-layer and network-layer addresses. An ARP packet is encapsulated directly into a data-link frame. The frame needs to have a field to show that the payload belongs to the ARP and not to the network-layer datagram. **Figure 9.8: ARP packet** | | | | | | |---|---|---|---|---| | *0* | *8* | *16* | *31* | *Hardware: LAN or WAN protocol* | | *Hardware Type* | *Protocol Type* | *Operation* | *Hardware: Network-layer protocol* | | | *Hardware length* | *Protocol length* | *Request:1, Reply:2* | | | | *Source hardware address* | | | | | *Source protocol address* | | | | | *Destination hardware address* | | | | | *(Empty in request)* | | | | | *Destination protocol address* | | | | **Example 9.4** A host with IP address N1 and MAC address L1 has a packet to send to another host with IP address N2 and physical address L2 (which is unknown to the first host). The two hosts are on the same network. Figure 9.9 shows the ARP request and response messages. **Figure 9.9: Example 9.4** *System A* - N1 - L1 - 0x0001 - 0x06 0x04 - 0x0800 - 0x0001 -ARP request - L1 - N1 - All 0s - N2 - Multicast frame - From A to B - A - Data - 1 - Destination - Source: - B: Broadcast address - From B to A - 0x0001 - 0x0800 - 0x06 0x04 - 0x0002 - L2 -ARP reply - N2 - L1 - N2 - Unicast frame - A - B - Destination - Source - Data - 2 ### 9.2.5 An Example of Communication To show how communication is done at the data-link layer and how link-layer addresses are found, let us go through a simple example. Assume Alice needs to send a datagram to Bob, who is three nodes away in the Internet. How Alice finds the network-layer address of Bob is what we discover in Chapter 26 when we discuss DNS. For the moment, assume that Alice knows the network-layer (IP) address of Bob. In other words, Alice's host is given the data to be sent, the IP address of Bob, and the IP address of Alice's host (each host needs to know its IP address). Figure 9.10 shows the part of the Internet for our example. **Figure 9.10: The Internet for our example** - To another link - Alice - Alice's Site - Point-to-point network - R1 - To another link - Bob - Bob's site - R2 **Activities at Alice's Site** We will use symbolic addresses to make the figures more readable. Figure 9.11 shows what happens at Alice's site. **Figure 9.11: Flow of packets at Alice's computer** | | Legend | | |---|---|---| | | N : Network-layer address | | | | L : Link-layer address | | | | | | | Alice's site | | Bob's site | | | | | | *NA* | *N1* | *N2* | *N3* | *N4* | *NB* | | *LA* | *L1* | *R1* | *L2* | *L3* | *R2* | *L4* | *LB* | | | | | | | | | | *Network layer* - Data - Forwarding table - N - NB - L1 - L1 - Datagram - NA NB - Data - Data-link layer - Frame - L1 LA NA NB - Data - Data - Physical layer - Signal - To R1 - Flow of packets at Alice's computer *Note: Data-link layer gets its own link-layer address (LA) here from its interface.* The network layer knows it's given NA, NB, and the packet, but it needs to find the link-layer address of the next node. The network layer consults its routing table and tries to find which router is next (the default router in this case) for the destination NB. As we will discuss in Chapter 18, the routing table gives N₁, but the network layer needs to find the link-layer address of router R1. It uses its ARP to find the link-layer address L₁. The network layer can now pass the datagram with the link-layer address to the data-link layer. The data-link layer knows its own link-layer address, LA. It creates the frame and passes it to the physical layer, where the address is converted to signals and sent through the media. **Activities at Router R1** Now let us see what happens at Router R1. Router R1, as we know, has only three lower layers. The packet received needs to go up through these three layers and come down. Figure 9.12 shows the activities. **Figure 9.12: Flow of activities at router R1** | | Legend | | |---|---|---| | | N : Network-layer address | | | | L : Link-layer address | | | | | | | Alice's site | | Bob's site | | | | | | *NA* | *N1* | *N2* | *N3* | *N4* | *NB* | | *LA* | *L1* | *R1* | *L2* | *L3* | *R2* | *L4* | *LB* | | *Alice* | | | | | | | | *Network Layer* - Forwarding Table - NB - N3 - L3 - N3 - ARP (R1) - ARP (R2) - NANB Data - Datagram - NA NB - Data - L3 - Data-link layer - L1 LA NANB Data - Frame - Physical layer - Signal - from Alice - Data-link layer - L2 - L3 L2 NA NB - Data - Frame - Physical layer - Signal - To R2 - Flow of packets at Router R1 At arrival, the physical layer of the left link creates the frame and passes it to the data-link layer. The data-link layer decapsulates the datagram and passes it to the network layer. The network layer examines the network-layer address of the datagram and finds that the datagram needs to be delivered to the device with IP address NB. The network layer consults its routing table to find out which is the next node (router) in the path to NB. The forwarding table returns N3. The IP address of router R2 is in the same link with R1. The network layer now uses the ARP to find the link-layer address of this router, which comes up as L3. The network layer passes the datagram and L3 to the data-link layer belonging to the link at the right side. The link layer encapsulates the datagram, adds L3 and L2 (its own link-layer address), and passes the frame to the physical layer. The physical layer encodes the bits to signals and sends them through the medium to R2. **Activities at Router R2** Activities at router R2 are almost the same as in R1, as shown in Figure 9.13. **Figure 9.13: Activities at router R2.** | | Legend | | |---|---|---| | | N : Network-layer address | | | | L : Link-layer address | | | | | | | Alice's site | | Bob's site | | | | | | *NA* | *N1* | *N2* | *N3* | *N4* | *NB* | | *LA* | *L1* | *R1* | *L2* | *R2* | *L3* | *L4* | *LB* | | *Alice* | | | | | | | | *Network Layer* - Forwarding Table - NB - L4 - NB - ARP (R2) - ARP (Bob) - NANB Data - Datagram - NA NB - Data - LB - Data-link layer - Data-link layer - L4 - L3 L2 NA NB - Data - Frame - L4 LB NA NB - Data - Frame - Physical layer - Signal - from R1 - Physical layer - Signal - To Bob - Flow of packets at Router R2 **Activities at Bob's Site** Now let us see what happens at Bob's site. Figure 9.14 shows how the signals at Bob's site are changed to a message. At Bob's site there are no more addresses or mapping needed. The signal received from the link is changed to a frame. The frame is passed to the data-link layer, which decapsulates the datagram and passes it to the network layer. The network layer decapsulates the message and passes it to the transport layer. **Figure 9.14: Activities at Bob's site** | | Legend | | |---|---|---| | | N : Network-layer address | | | | L : Link-layer address | | | | | | | Alice's site | | Bob's site | | | | | | *NA* | *N1* | *N2* | *N3* | *N4* | *NB* | | *LA* | *L1* | *R1* | *L2* | *R2* | *L3* | *L4* | *LB* | | *Alice* | | | | | | | | *Bob* | *Network layer* - Datagram NA NB - Data - Data-link layer - Frame - L4 LB NA NB - Data - Physical layer - Signal - Flow of packets at Bob's computer **Changes in Addresses** This example shows that the source and destination network-layer addresses, NA and NB, have not been changed during the whole journey. However, all four network-layer addresses of routers R1 and R2 (N1, N2, N3, and N4) are needed to transfer a datagram from Alice's computer to Bob's computer. ## 9.3 End-Chapter materials ### 9.3.1 Recommended Reading For more details about subjects discussed in this chapter, we recommend the following books. The items in brackets [...] refer to the reference list at the end of the text. **Books** Several books discuss link-layer issues. Among them we recommend [Ham 80], [Zar 02], [Ror 96], [Tan 03], [GW 04], [For 03], [KMK 04], [Sta 04], [Kes 02], [PD 03], [Kei 02], [Spu 00], [KCK 98], [Sau 98], [Izz 00], [Per 00], and [WV 00]. ### 9.3.2 Key Terms - Address Resolution Protocol (ARP) - Data link control (DLC) - Frame