Chapter 6 Delivery Forwarding, and Routing of IP Packets Kyung Hee University 1 Introduction Delivery Meaning the physical forwarding of the packets Connectionless and connection-oriented services Direct and indirect delivery Routing Related to finding the route (next hop) for a datagram Kyung Hee University 2 6.1 Delivery Connection Types Connection-oriented service Using same path The decision about the route of a sequence of packets with the same source and destination addresses can be made only once, when the connection is established Connectionless service Dealing with each packet independently Packets may not travel the same path to their destination IP is : Connectionless protocol Kyung Hee University 3 Direct versus Indirect Delivery Two methods delivering a packet to its final destination Direct Indirect Direct delivery The final destination of the packet is a host to the same physical network as the deliverer or the delivery is between the last router and the destination host Decision making whether delivery is direct or not Kyung Hee University Extracting the network address of the destination packet (setting the hostid part to all 0s) Then, comparing the addresses of the network to which it is connected 4 Direct versus Indirect Delivery (cont’d) Direct delivery Kyung Hee University 5 Direct versus Indirect Delivery (cont’d) Indirect delivery The destination host is not on the same network as the deliverer The packet goes from router to router until finding the final destination Using ARP to find the next physical address Kyung Hee University Mapping between the IP address of next router and the physical address of the next router 6 Direct versus Indirect Delivery (cont’d) Indirect delivery Kyung Hee University 7 6.3 Forwarding Forwarding means to place the packet in its route to its destination. So, it requires a host or a router a routing table. Routing table Used to find the route to the final destination Kyung Hee University 8 Forwarding Techniques Next-hop Method A technique to reduce the contents of a routing table The routing table holds only the address of the next hop instead of holding information about the complete route The entries of a routing table must be consistent with each other Kyung Hee University 9 Forwarding Techniques (cont’d) Kyung Hee University 10 Forwarding Techniques (cont’d) Network-Specific Method Having only one entry to define the address of network itself Kyung Hee University 11 Forwarding Techniques (cont’d) Host-Specific Method Destination host addresses is given in the routing table The efficiency is sacrificed for the advantages : Giving to administrator more control over routing Ex) if the administrator wants all packets arriving for host B delivered to router R3 instead of R1, one single entry in the routing table of host A can explicitly define the route Kyung Hee University 12 Routing methods (cont’d) Kyung Hee University 13 Routing methods (cont’d) Default Method Instead of listing all networks in the entire Internet, host A can just have one entry called the default (network address 0.0.0.0) Kyung Hee University 14 Forwarding with Classful Addressing Forwarding without Subnetting Kyung Hee University 15 Example 1 Figure 6.8 shows an imaginary part of the Internet. Show the routing tables for router R1. Kyung Hee University 16 Example 1 - Solution Kyung Hee University 17 Example 2 Router R1 in Figure 6.8 receives a packet with destination address 192.16.7.14. Show how the packet is forwarded. Solution Kyung Hee University 18 Example 2 - Solution The destination address in binary is 11000000 00010000 00000111 00001110. A copy of the address is shifted 28 bits to the right. The result is 00000000 00000000 00000000 00001100 or 12. The destination network is class C. The network address is extracted by masking off the leftmost 24 bits of the destination address; the result is 192.16.7.0. The table for Class C is searched. The network address is found in the first row. The nexthop address 111.15.17.32. and the interface m0 are passed to ARP. Kyung Hee University 19 Example 3 Router R1 in Figure 6.8 receives a packet with destination address 167.24.160.5. Show how the packet is forwarded Solution The destination address in binary is 10100111 00011000 10100000 00000101. A copy of the address is shifted 28 bits to the right. The result is 00000000 00000000 00000000 00001010 or 10. The class is B. The network address can be found by masking off 16 bits of the destination address, the result is 167.24.0.0. The table for Class B is searched. No matching network address is found. The packet needs to be forwarded to the default router (the network is somewhere else in the Internet). The next-hop address 111.30.31.18 and the interface number m0 are passed to ARP. Kyung Hee University 20 Forwarding with Subnetting Kyung Hee University 21 Example 4 Figure 6.11 shows a router connected to four subnets. Kyung Hee University 22 Example 5 The router in Figure 6.11 receives a packet with destination address 145.14.32.78. Show how the packet is forwarded. Solution The mask is /18. After applying the mask, the subnet address is 145.14.0.0. The packet is delivered to ARP with the next-hop address 145.14.32.78 and the outgoing interface m0. Kyung Hee University 23 Example 6 A host in network 145.14.0.0 in Figure 6.11 has a packet to send to the host with address 7.22.67.91. Show how the packet is routed. Solution The router receives the packet and applies the mask (/18). The network address is 7.22.64.0. The table is searched and the address is not found. The router uses the address of the default router (not shown in figure) and sends the packet to that router. Kyung Hee University 24 Forwarding with Classless Addressing In classful addressing we can have a routing table with three columns; in classless addressing, we need at least four columns. Figure 6.12 Kyung Hee University Simplified forwarding module in classless address 25 Example 7 Make a routing table for router R1 using the configuration in Figure 6.13. Kyung Hee University 26 Example 7 - Solution Solution Table 6.1 shows the corresponding table Table 6.1 Routing table for router R1 in Figure 6.13 Kyung Hee University 27 Example 8 Show the forwarding process if a packet arrives at R1 in Figure 6.13 with the destination address 180.70.65.140. Kyung Hee University 28 Example 8 - Solution Solution The router performs the following steps: 1. The first mask (/26) is applied to the destination address. The result is 180.70.65.128, which does not match the corresponding network address. 2. The second mask (/25) is applied to the destination address. The result is 180.70.65.128, which matches the corresponding network address. The next-hop address (the destination address of the packet in this case) and the interface number m0 are passed to ARP for further processing. Kyung Hee University 29 Example 9 Show the forwarding process if a packet arrives at R1 in Figure 6.13 with the destination address 201.4.22.35. Kyung Hee University 30 Example 9 - Solution Solution The router performs the following steps: 1. The first mask (/26) is applied to the destination address. The result is 201.4.22.0, which does not match the corresponding network address (row 1). 2. The second mask (/25) is applied to the destination address. The result is 201.4.22.0, which does not match the corresponding network address (row 2). 3. The third mask (/24) is applied to the destination address. The result is 201.4.22.0, which matches the corresponding network address. The destination address of the package and the interface number m3 are passed to ARP. Kyung Hee University 31 Example 10 Show the forwarding process if a packet arrives at R1 in Figure 6.13 with the destination address 18.24.32.78. Solution This time all masks are applied to the destination address, but no matching network address is found. When it reaches the end of the table, the module gives the next-hop address 180.70.65.200 and interface number m2 to ARP. This is probably an outgoing package that needs to be sent, via the default router, to some place else in the Internet. Kyung Hee University 32 Example 11 Now let us give a different type of example. Can we find the configuration of a router, if we know only its routing table? The routing table for router R1 is given in Table 6.2. Can we draw its topology? Table 6.2 Routing table for Example 11 Kyung Hee University 33 Example 11 - Solution Kyung Hee University 34 Address Aggregation Figure 6.15 Kyung Hee University Address aggregation 35 Longest Mask Matching The routing table is sorted from the longest mask to the shortest mask. Kyung Hee University 36 Hierarchical Routing To solve the problem of gigantic routing tables, creating a sense of the routing tables Routing table can decrease in size Kyung Hee University 37 Example 12 As an example of hierarchical routing, let us consider Figure 6.17. A regional ISP is granted 16,384 addresses starting from 120.14.64.0. The regional ISP has decided to divide this block into four subblocks, each with 4096 addresses. Three of these subblocks are assigned to three local ISPs, the second subblock is reserved for future use. Note that the mask for each block is /20 because the original block with mask /18 is divided into 4 blocks. Kyung Hee University 38 Example 12 Kyung Hee University 39 6.3 Routing - Static versus Dynamic Routing Static routing table Containing information entered manually Cannot update automatically when there is a change in the internet Used in small internet that does not change very much, or in an experimental internet for troubleshooting Dynamic routing table is updated periodically using one of the dynamic routing protocols such RIP, OSPF, or BGP (see Chap. 14) Updating the routing table corresponding to shutdown of a router or breaking of a link Kyung Hee University 40 Routing Module Kyung Hee University 41 Routing Table Routing table In classless addressing, routing table has a minimum of four columns. - Some routers have even more columns Flags U (up) : The router is up and running. G (gateway) : The destination is in another network. H : Host-specific address. D : Added by redirection. M : Modified by redirection. Kyung Hee University 42 Routing Table (cont’d) Flags U (Up) : indicating the router’s running G (Gateway) : meaning that the destination is another network H (Host-specific) : indicating that the entry in the destination is a host-specific address D (Added by redirection) : indicating that routing information for this destination has been added to the host routing table by a redirection message from ICMP M (Modified by redirection) : indicating that routing information for this destination has been modified by a redirection message from ICMP Reference count : giving the number of users that are using this route at any moment Use : showing the number of packets transmitted through this router for the corresponding destination Interface : showing the name of the interface Kyung Hee University 43 Example 13 One utility that can be used to find the contents of a routing table for a host or router is netstat in UNIX or LINUX. The following shows the listing of the contents of the default server. We have used two options, r and n. The option r indicates that we are interested in the routing table and the option n indicates that we are looking for numeric addresses. Note that this is a routing table for a host, not a router. Although we discussed the routing table for a router throughout the chapter, a host also needs a routing table. Kyung Hee University 44 Example 13 (cont’d) $ netstat -rn Kernel IP routing table Destination Gateway 153.18.16.0 0.0.0.0 127.0.0.0 0.0.0.0 Mask Flags Iface 255.255.240.0 U eth0 0.0.0.0 255.0.0.0 U lo 153.18.31. 254 0.0.0.0 UG eth0. Loopback interface Kyung Hee University 45 Example 13 (cont’d) More information about the IP address and physical address of the server can be found using the ifconfig command on the given interface (eth0). $ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:B0:D0:DF:09:5D inet addr:153.18.17.11 Mask:255.255.240.0 Bcast:153.18.31.255 .... From the above information, we can deduce the configuration of the server as shown in Figure 6.19. Kyung Hee University 46 Example 13 (cont’d) Ifconfig command gives us the IP address and the physical address (hardware) address of the interface Kyung Hee University 47 6.4 Structure of a Router Kyung Hee University 48 Components Input port Output port Kyung Hee University 49 Components (cont’d) Routing Processor performing the functions of the network layer destination address is used to find the address of the next hop and output port number : table lookup Kyung Hee University 50 Switching fabrics Crossbar switch Kyung Hee University 51 Switching Fabrics Banyan switch log2 (n) stages with n/2 microswitches Kyung Hee University 52 Switching Fabrics (cont’d) Examples of routing in a banyan switch Kyung Hee University 53 Switching Fabrics (cont’d) Possibility of internal collision even when two packets are not heading for the same output port in banyan switch solving the problem by sorting the arriving packets based on their destination port Trap module: preventing duplicate packets (packets with the same output destination) from passing to the banyan switch simultaneously Kyung Hee University 54 Switching Fabrics (cont’d) Batcher-banyan switch Kyung Hee University 55 Summary(1) In a connection-oriented service, the local network layer protocol first makes a connection with the network layer protocol at the remote site before sending a packet. In a connectionless service, the network layer protocol treats each packet independently, with each packet having no relationship to any other packet. The packets in a message may or may not travel the same path to their destination. The IP protocol is a connectionless protocol. The delivery of a packet is called direct if the deliverer(host or router) and the destination are on the same network. The delivery of a packet is called indirect if the deliverer(host or router) and the destination are on different networks. In the next-hop method, instead of a complete list of the stops the packet must make, only the address of the next hop is listed in the routing table. In the network-specific method, all hosts on a network share one entry in the routing table. In the host-specific method, the full IP address of a host is given in the routing table. Kyung Hee University 56 Summary(2) In the default method, a router is assigned to receive all packets with no match in the routing table. The routing table for classful forwarding can have three columns. The routing table for classless addressing needs at least four columns. The number of columns in a routing table is vendor dependent. Address aggregation simplifies the forwarding process in classless addressing. Longest mask matching is required in classless addressing. Classless addressing requires hierarchical and geographical routing to prevent immense routing tables. Search algorithms for classful addressing are not efficient for classless addressing. A static routing table's entries are updated manually by an administrator. A dynamic routing table's entries are updated automatically by a routing protocol. A router is normally made of four components: input ports, output ports, the routing processor, and the switching fabric. Kyung Hee University 57