ITEC4610 Network Switching and Routing ดร. ประวิทย์ ชุมชู หัวหน้าสาขาวิชาวิศวกรรมสารสนเทศและการสื่ อสาร(ICE) MUT Email: prawit@mut.ac.th ห้องทางาน: F402 เบอร์โทรศัพท์ที่ทางาน: (02)9883655 ต่อ 220 เบอร์โทรศัพท์เคลื่อนที่: 065343850 MUT Class III รู ปแบบโปรโตคอล IPv4 และ รู ปแบบโปรโตคอล IPv6 ดร. ประวิทย์ ชุมชู หัวหน้าสาขาวิชาวิศวกรรมสารสนเทศและการสื่ อสาร(ICE) MUT Email: prawit@mut.ac.th ห้องทางาน: F402 เบอร์โทรศัพท์ที่ทางาน: (02)9883655 ต่อ 220 เบอร์โทรศัพท์เคลื่อนที่: 065343850 MUT หัวข้อการบรรยาย โครงสร้างการนาส่ งแพ็คเก็ต – Forwarding (การส่ งต่อ) – Routing (การคนหาเส้นทาง) • โครงสร้างของเร้าเตอร์ • อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (IPv4 (Internet Protocol version 4)) MUT ระดับชั้นสื่ อสาร 7 6 5 4 3 2 1 OSI Application Presentation Session Transport Network Data Link Physical TCP/IP Application FTP, Telnet, HTTP, SMTP, SNMP, DNS, etc Host-to-host TCP Internet ICMP,IGMP Network Access การทางานระดับชั้นที่ 3 นีป้ ระกอบด้ วย - การสร้ างการหาเส้ นทางโดยใช้ Routing Protocol -การนาส่ งแพ็คเก็ตโดยใช้ Routed Protocols -รู ปแบบการสื่ อสารช่ วยอื่นเช่ น -ICMP, IGMP, ARP, RARP MUT IP UDP ARP,RARP Not Specified Routing &Routed Protocols • Routing protocols – เป็ นโปรโตคอลที่ใช้ในการสื่ อสารเพื่อระหว่างเร้าเตอร์ เพื่อแลกเปลี่ยนข้อมูล เกี่ยวกับเส้นทาง เร้าเตอร์ ใช้ขอ้ มูลเหล่านี้ ในการกาหนดตารางเส้นทางให้กบั Routed Protocols – ตัวอย่าง routing protocols เช่น RIPv1, RIPv2, IGRP, EIGRP, OSPF • Routed protocols – เป็ นโปรโตคอลที่ใช้ในการกาหนดการนาส่ งแพ็คเก็ตโดยการกาหนดการจัด หมายเลขโลจิคอล การกาหนดรู ปแบบแพ็คเก็ต – ตัวอย่าง routed protocols เช่น IP, IPX, AppleTalk MUT โครงสร้างการจัดการแพ็คเก็ตของ IP ข้ อมูลในตารางได้ จาก A Routing Protocol การทางานระดับชั้นที่ 3 นีป้ ระกอบด้ วย - การสร้ างการหาเส้ นทางโดยใช้ Routing Protocol - การนาส่ งแพ็คเก็ตโดยใช้ Routed Protocols MUT หัวข้อการบรรยาย • โครงสร้างการนาส่ งแพ็คเก็ต Forwarding (การส่ งต่อ) – Routing (การคนหาเส้นทาง) • โครงสร้างของเร้าเตอร์ • อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (IPv4 (Internet Protocol version 4)) MUT การส่ งต่อแพ็คเก็ต (Forwarding) • วิธีการส่ งต่อแพ็คเก็ต (Forwarding Techniques) • วิธีการส่ งต่อแพ็คเก็ตโดยใช้การแบ่งกลุ่มของหมายเลข (Forwarding with Classful Addressing) • วิธีการส่ งต่อแพ็คเก็ตโดยไม่ใช้การแบ่งกลุ่มของหมายเลข (Forwarding with Classless Addressing) MUT Forwarding Techniques • • • • MUT Next-hop method Network-specific method Host-specific routing Default routing Next-hop method MUT Network-specific method MUT Host-specific routing MUT Default routing ถ้ าปลายทางเป็ น เครื่ อข่ าย N2 ส่ งต่ อไปยัง R2 ถ้ าปลายทางเป็ นอย่างอื่นส่ งต่ อไปยัง R2 MUT Simplified forwarding module in classful address without subnetting แบ่ งตารางตามประเภทของ หมายเลข IP เพื่อให้ การค้ นหาข้ อมูลได้ เร็วขึน้ MUT Example 1 หา routing table ของ R1 ของเครื อข่ ายดังรูป MUT Routing Table ของตัวอย่างที่ 1 MUT Example 2 จากตัวอย่ างที่ 1 ถ้ า R1 รับแพ็คเก็ตทีม่ ีหมายเลขปลายทางเป็ น 192.16.7.14 จงอธิบาย วิธีการที่ R1 ส่ งต่ อแพ็คเก็ตนั้น Solution - หมายเลขปลายทางเป็ น 11000000 00010000 00000111 00001110 - เป็ นหมายเลข IP ของกล่ มุ C - หมายเลขเครื อข่ าย ปลายทาง 192.16.7.0 (24 บิต) MUT Example 3 Router R1 in following Figure receives a packet with destination address 167.24.160.5. Show how the packet is forwarded. MUT Example 3 Solution - The class is B. - The network address is 167.24.0.0. The table for Class B is - No matching network address is found. - The packet needs to be forwarded to the default router MUT Simplified forwarding module in classful address with subnetting MUT Example 4 จงสร้ าง roouing table ของเครื อข่ ายดัง รูปด้ านล่ าง See Next Slide MUT Example 5 จากตัวอย่างที่ 4 ถ้ าเร้ าเตอร์ รับแพ็คเก็ตทีม่ ีหมายเลขปลายทางเป็ น 145.14.32.78 จงอธิบายการนาส่ ง แพ็คเก็ต - mask = /18. Solution - หมายเลขเครือข่ ายย่อย = 145.14.0.0. - Next-hop = 145.14.32.78 - outgoing interface m4. MUT Example 6 จากตัวอย่ างที่ 4 ถ้ าโฮสต์ ในเครื อข่ าย 145.14.0.0 ต้ องการส่ งแพ็คเก็ตไปยังโฮสต์ ทีม่ ีหมายเลขปลายทางเป็ น 7.22.67.91 จงแสดงการนาส่ งเป็ นเก็ต - เร้ าเตอร์ รับแพ็คเก็ต Solution -Mask = (/18). -network address =7.22.64.0 -ไม่ เจอหมายเลขเครือข่ ายนั้น MUT -ส่ งไปยัง default router Simplified forwarding module in classless address ตารางมี 4 คอลัมเพิม่ คอลัม Mask MUT Example 7 จงสร้ างตารางค้นหาเส้ นทาง MUT Routing table for router R1 MUT Example 8 ถ้ าหมายเลข IP ปลายทางเป็ น180.70.65.140 จงอธิบายการนาส่ งแพ็คเก็ต MUT Example 8 ถ้ าหมายเลข IP ปลายทางเป็ น180.70.65.140 จงอธิบายการนาส่ งแพ็คเก็ต Solution The router performs the following steps: -Mask = /26, network address 180.70.65.128, NO - Mask = /25, network address 180.70065.128, YES MUT Example 9 ถ้ าหมายเลข IP ปลายทางเป็ น 201.4.22.35 จงอธิบายการนาส่ งแพ็คเก็ต Solution The router performs the following steps: -Mask = (/26), Network address = 201.4.22.0, NO -Mask = (/25), Network address = 201.4.22.0, NO MUT -Mask = (/24), Network Address = 201.4.22.0, Yes Example 10 ถ้ าหมายเลข IP ปลายทางเป็ น 18.24.32.78 จงอธิบายการนาส่ งแพ็คเก็ต Solution - ไม่ เจอหมายเลขเครือในตาราง -ใช้ Default router MUT Example 11 จงวาดการเชื่ อมต่ อเครื อข่ ายเมื่อมี routing table ดังตาราง MUT Solution for example 11 MUT Address aggregation MUT Longest mask matching MUT Example 12 As an example of hierarchical routing, let us consider following Figure. A regional ISP is granted 16384 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. See Next Slide MUT Hierarchical routing with ISPs MUT Example 12 (Continued) The first local ISP has divided its assigned subblock into 8 smaller blocks and assigned each to a small ISP. Each small ISP provides services to 128 households (H001 to H128), each using four addresses. Note that the mask for each small ISP is now /23 because the block is further divided into 8 blocks. Each household has a mask of /30, because a household has only 4 addresses (232−30 is 4). The second local ISP has divided its block into 4 blocks and has assigned the addresses to 4 large organizations (LOrg01 to LOrg04). Note that each large organization has 1024 addresses and the mask is /22. MUT See Next Slide Example 12 (Continued) The third local ISP has divided its block into 16 blocks and assigned each block to a small organization (SOrg01 to SOrg15). Each small organization has 256 addresses and the mask is /24. There is a sense of hierarchy in this configuration. All routers in the Internet send a packet with destination address 120.14.64.0 to 120.14.127.255 to the regional ISP. The regional ISP sends every packet with destination address 120.14.64.0 to 120.14.79.255 to Local ISP1. Local ISP1 sends every packet with destination address 120.14.64.0 to 120.14.64.3 to H001. MUT คาถาม? MUT หัวข้อการบรรยาย • โครงสร้างการนาส่ งแพ็คเก็ต – Forwarding (การส่ งต่อ) Routing (การค้นหาเส้นทาง) • โครงสร้างของเร้าเตอร์ • อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (IPv4 (Internet Protocol version 4)) MUT Routing • เป็ นโปรโตคอลใช้ในการนาส่ ง • โดยใช้ตารางเส้นทางที่ได้จาก routing protocol – Dynamic Routing Table • ใช้ routing protocol ในการแลกเปลี่ยนข้อมูล – Static Routing Table • ผูด้ ูแลระบบเป็ นคนกาหนดเส้นทาง MUT Common fields in a routing table MUT Mask: เป็ นหน้ ากากที่ใช้ การคานวนหาหมายเลขเครื อข่ ายหรื อหมายเลขเครื อข่ ายย่ อยจาก หมายเลข IP Network Address: หมายเลขเครื อข่ ายที่จะใช้ นาส่ งแพ็คเก็ต ถ้ าการนาส่ งเป็ นแบบ Hostspecific routing, ค่ าในช่ องนีจ้ ะเป็ นหมายเลขปลายทางของโฮสต์ Next-hop address: หมายเลข IP ของเร้ าเตอร์ ตัวถัดไปที่จะส่ งฉพ็คเก็ตต่ อไป Interface:ชื่ อของอุปกรณ์ ใช้ ตอิ ต่ อเครื อข่ าย(Interface) Flags: เครื่ องหมายพิเศษเช่ น U(up) G(Gateway), H (Host-specific), D(added by redirection และ M (modified by redirection) Reference count: จานวนผู้ใช้ ที่กาลังใช้ เส้ นทางนี้ Use:จานวนแพ็คเก็ตที่ได้ ส่งผ่ านเร้ าเตอร์ ตัวนี้ Example 13 เครื่ องคอมพิวเตอร์ เครื่ องหนึ่งเมื่อรั น $ netstat –rn ได้ ผล routing table ดังตาราง Destination 153.18.16.0 127.0.0.0 0.0.0.0 MUT Gateway 0.0.0.0 0.0.0.0 153.18.31.254 Mask 255.255.240.0 255.0.0.0 0.0.0.0 Flags U U UG Interface eth0 lo eth0 สรุปจากตารางกาหนดเส้ นทางได้ ดงั นี้ 1. เครื อข่ าย 153.18.16.0/20 (จาก 255.255.240.0) เป็ นเครื อข่ ายที่โฮสต์ ต่อตรง (0.0.0.0) โฮสต์ เชื่ อมต่ อกับเครื อข่ าย 153.18.16.0/20 ใช้ eth0 2. เครื อข่ าย 127.0.0.0/8 เป็ นหมายเลข local loop 3. ถ้ าเครื อข่ ายปลายทางนอกเหนือจาก 2 ข้ อด้ านบนให้ ส่งต่ อไปยังเร้ าเตอร์ หมายเลข 153.18.31.254 ส่ งโดย eth0 Example 13 (continued) จากตัวอย่ างด้ านบนเมื่อรัน $ netstat –rn ได้ ผลดังต่ อไปนี้ $ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:B0:D0:DF:09:5D inet addr:153.18.17.11 Bcast:153.18.31.255 Mask:255.255.240.0 .... จากตัวอย่ างด้ านบนสามารถเขียนโครงสร้ างของการเชื่อมต่ อของโฮสต์ ได้ ดงั สไลด์ ต่อไป MUT Configuration of the server for Example 13 Mac Address IP Address Network Address MUT Default Gateway คาถาม? MUT หัวข้อการบรรยาย • โครงสร้างการนาส่ งแพ็คเก็ต – Forwarding (การส่ งต่อ) – Routing (การค้นหาเส้นทาง) โครงสร้างของเร้าเตอร์ • อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (IPv4 (Internet Protocol version 4)) MUT โครงสร้างของเร้าเตอร์ Routing table MUT Routing Processor: Routing table: Switching fabric: Input Ports: Output Ports: ตัวประมวลผลการจัดการกับแพ็คเก็ต ตารางกาหนดเส้ นทางการนาส่ งแพ็คเก็ต โครงสร้ างทีใ่ ช้ ในการสวิชย์ ช่ องทางทีแ่ พ็คเก็ตเข้ ามา ช่ องทางที่แพ็คเก็ตส่ งออก Input Port Input Ports: ช่ องทางที่แพ็คเก็ตเข้ ามา - ตัวประมวลผลของระดับชั้นที่ 1 - ตัวประมวลผลของระดับชั้นที่ 2 - Queue MUT Output Port Output Ports: ช่ องทางที่แพ็คเก็ตส่ งออก - Queue - ตัวประมวลผลทีร่ ะดับชั้นสื่ อสารที่ 2 - ตัวประมวลผลทีร่ ะดับชั้นสื่ อสารที่ 1 MUT Crossbar Swicth MUT A Banyan Switch - Banyan tree -N inputs N outputs MUT - log2(n) stages - n/2 microswitches for each stages ตัวอย่าง MUT Batcher-banyan switch ป้องกันการชนของแพ็คเก็ตโดยการเรียงลาดับแพ็คเก็ตตาม output ports Solves the problem of internal collision in banyan switches Arriving cells are sorted based on their destination port by means of a switch that comes before the banyan switch MUT A trap module following the Batcher switch prevents cells with same destination from passing to banyan switch simultaneously Batcher-banyan switch MUT คาถาม? MUT แบบฝึ กหัดลองทาดูแล้วส่ งท้ายคาบ (chapter 6) 1. จงหาตารางค้นเส้นทางของ R2 และ R3 เมื่อมีการเชื่อมต่อเครื อข่ายดังรู ป ต่อไปนี้ (exercises 2 &3 in the text book) MUT R2 R3 MUT ตอบ แบบฝึ กหัดลองทาดูแล้วส่ งท้ายคาบ (Cont.) 2. จงวาดการเชื่อมต่อเครื อข่ายเมื่อ ตารางค้นเส้นแสดงดังตารางต่อไปนี้ (exercise 14) Mask MUT Next-hop Address ---------- Interface /27 Network Address 202.14.17.224 /18 145.23.192.0 --------- m0 default default 130.56.12.4 m2 m1 ตอบ MUT แบบฝึ กหัดลองทาดูแล้วส่ งท้ายคาบ (Cont.) 3. จากรู ป R1 รับแพ็ตเก็ตที่มีหมายเลขปลายทางเป็ น 202.70.20.30 จงแสดงการส่ งต่อแพ็คเก็ต (exercise 11) MUT ตอบ MUT หัวข้อการบรรยาย • โครงสร้างการนาส่ งแพ็คเก็ต – Forwarding (การส่ งต่อ) – Routing (การคนหาเส้นทาง) • โครงสร้างของเร้าเตอร์ อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (IPv4 (Internet Protocol version 4)) MUT อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (Internet Protocol version 4)) • จุดมุ่งหมาย – – – – – MUT เข้าใจรู ปแบบของแพ็คเก็ต IPVv4 เข้าใจการทา Fragmentation เข้าใจการทางานของ option field ของ IP แพ็คเก็ต เข้าใจการคานวน Checksum เข้าใจการทางานส่ วนประกอบของระดับชั้นสื่ อสารที่ 3 (IP) Position of IP in TCP/IP protocol suite MUT อินเตอร์เน็ตโปรโตคอลรุ่ นที่ 4 (Internet Protocol version 4)) • • • • • • • MUT เป็ น routing protocol ชนิดหนึ่ง ใช้ในการนาส่ งแพ็คเก็ต กาหนดรู ปแบบของแพ็คเก็ต การแจ้งผลการนาส่ ง Connectionless Unreliable Best-effort แพ็คเก็ต IP - A packet in the IP layer is called a datagram, - a variable-length packet consisting of two parts: header and data. The header is 20 to 60 bytes in length and contains information essential to routing and delivery. - Maximum packet size is 65536 bytes MUT รู ปแบบ Header ของ IP แพ็คเก็ต MUT - Version : 4 Version - HLEN: VER+HLEN+DS+TLEN+ID+FL+OFF+Option ( in 4 bytes words) - DS: Next sides - TLEN: ขนาดรวมทั้งแพ็คเก็ต (2^16-1) - Identification: จานวนแพ็คเก็ตที่ IP ของโฮสต์ ได้ ส่ง - Flags: Next Slides - Fragmentation offset: Next slides -Time to live: จานวนมากสุ ดของเร้ าเตอร์ ที่ผ่านได้ - Protocol: Next Slides - Header Checksum: Next Slides MUT - Source IP address: หมายเลข IP ต้ นทาง - Destination IP address: หมายเลข IP ปลายทาง Service type or differentiated services MUT The precedence subfield was designed, but never used in version 4. Types of service MUT Default types of service MUT Values for codepoints 0,2,4,6,..,62 3,7,11,15,..,63 1,5,9,…,61 MUT Encapsulation of a small datagram in an Ethernet frame MUT Multiplexing การนาส่ งแพ็ตภายในโฮสต์ ใด L3 --- > L4 - แยกประเภทโปรโตคอลจาก IP header - แยกตามหมายเลขพอร์ ต MUT Protocols การนาส่ งแพ็ตภายในโฮสต์ ใด L3 --- > L4 - แยกประเภทโปรโตคอลจาก IP header - แยกตามหมายเลขพอร์ ต MUT Example 1 An IP packet has arrived with the first 8 bits as shown: 01000010 The receiver discards the packet. Why? MUT Solution There is an error in this packet. The 4 left-most bits (0100) show the version, which is correct. The next 4 bits (0010) show the header length; which means (2 × 4 = 8), which is wrong. The minimum number of bytes in the header must be 20. The packet has been corrupted in transmission. Example 2 In an IP packet, the value of HLEN is 1000 in binary. How many bytes of options are being carried by this packet? Solution The HLEN value is 8, which means the total number of bytes in the header is 8 × 4 or 32 bytes. The first 20 bytes are the base header, the next 12 bytes are the options. MUT Example 3 In an IP packet, the value of HLEN is 516 and the value of the total length field is 002816 . How many bytes of data are being carried by this packet? Solution The HLEN value is 5, which means the total number of bytes in the header is 5 × 4 or 20 bytes (no options). The total length is 40 bytes, which means the packet is carrying 20 bytes of data (40 − 20). MUT Example 4 An IP packet has arrived with the first few hexadecimal digits as shown below: 45000028000100000102 . . . How many hops can this packet travel before being dropped? The data belong to what upper layer protocol? MUT Solution To find the time-to-live field, we skip 8 bytes (16 hexadecimal digits). The time-to-live field is the ninth byte, which is 01. This means the packet can travel only one hop. The protocol field is the next byte (02), which means that the upper layer protocol is IGMP . FRAGMENTATION The format and size of a frame depend on the protocol used by the physical network. A datagram may have to be fragmented to fit the protocol regulations. The topics discussed in this section include: Maximum Transfer Unit (MTU) Fields Related to Fragmentation MUT MTU MUT Flags field MUT Fragmentation example MUT Detailed fragmentation example Figure 8.9 MUT Detailed fragmentation example Example 5 A packet has arrived with an M bit value of 0. Is this the first fragment, the last fragment, or a middle fragment? Do we know if the packet was fragmented? Solution If the M bit is 0, it means that there are no more fragments; the fragment is the last one. However, we cannot say if the original packet was fragmented or not. A nonfragmented packet is considered the last fragment. MUT Example 6 A packet has arrived with an M bit value of 1. Is this the first fragment, the last fragment, or a middle fragment? Do we know if the packet was fragmented? Solution If the M bit is 1, it means that there is at least one more fragment. This fragment can be the first one or a middle one, but not the last one. We don’t know if it is the first one or a middle one; we need more information (the value of the fragmentation offset). See also the next example. MUT Example 7 A packet has arrived with an M bit value of 1 and a fragmentation offset value of zero. Is this the first fragment, the last fragment, or a middle fragment?. Solution Because the M bit is 1, it is either the first fragment or a middle one. Because the offset value is 0, it is the first fragment. MUT Example 8 A packet has arrived in which the offset value is 100. What is the number of the first byte? Do we know the number of the last byte? Solution To find the number of the first byte, we multiply the offset value by 8. This means that the first byte number is 800. We cannot determine the number of the last byte unless we know the length of the data. MUT Example 9 A packet has arrived in which the offset value is 100, the value of HLEN is 5 and the value of the total length field is 100. What is the number of the first byte and the last byte? Solution The first byte number is 100 × 8 = 800. The total length is 100 bytes and the header length is 20 bytes (5 × 4), which means that there are 80 bytes in this datagram. If the first byte number is 800, the last byte number must be 879. MUT OPTIONS The header of the IP datagram is made of two parts: a fixed part and a variable part. The variable part comprises the options that can be a maximum of 40 bytes. The topics discussed in this section include: Format Option Types MUT Option format MUT Categories of options MUT No operation option MUT End of option MUT Record route option MUT Record route concept MUT Strict source route option All router defined in the option must be visited by the datagram MUT Strict source route concept MUT Loose source route option All router defined in the option must be visited by the datagram but the data could visit other router as well MUT Timestamp option MUT Use of flag in timestamp MUT Timestamp concept MUT Example 10 Which of the six options must be copied to each fragment? Solution We look at the first (left-most) bit of the code for each option. a. No operation: Code is 00000001; not copied. b. End of option: Code is 00000000; not copied. c. Record route: Code is 00000111; not copied. d. Strict source route: Code is 10001001; copied. e. Loose source route: Code is 10000011; copied. f. Timestamp: Code is 01000100; not copied. MUT Example 11 Which of the six options are used for datagram control and which are used for debugging and management? Solution We look at the second and third (left-most) bits of the code. MUT a. No operation: Code is 00000001; datagram control. b. End of option: Code is 00000000; datagram control. c. Record route: Code is 00000111; datagram control. d. Strict source route: Code is 10001001; datagram control. e. Loose source route: Code is 10000011; datagram control. f. Time stamp: Code is 01000100; debugging and management control. Example 12 One of the utilities available in UNIX to check the travelling of the IP packets is ping. In the next chapter, we talk about the ping program in more detail. In this example, we want to show how to use the program to see if a host is available. We ping a server at De Anza College named fhda.edu. The result shows that the IP address of the host is 153.18.8.1. $ ping fhda.edu PING fhda.edu (153.18.8.1) 56(84) bytes of data. 64 bytes from tiptoe.fhda.edu (153.18.8.1): .... MUT The result shows the IP address of the host and the number of bytes used. Example 13 We can also use the ping utility with the -R option to implement the record route option. $ ping -R fhda.edu PING fhda.edu (153.18.8.1) 56(124) bytes of data. 64 bytes from tiptoe.fhda.edu (153.18.8.1): icmp_seq=0 ttl=62 time=2.70 ms RR: voyager.deanza.fhda.edu (153.18.17.11) Dcore_G0_3-69.fhda.edu (153.18.251.3) Dbackup_V13.fhda.edu (153.18.191.249) tiptoe.fhda.edu (153.18.8.1) Dbackup_V62.fhda.edu (153.18.251.34) Dcore_G0_1-6.fhda.edu (153.18.31.254) voyager.deanza.fhda.edu (153.18.17.11) MUT The result shows the interfaces and IP addresses. Example 14 The traceroute utility can also be used to keep track of the route of a packet. $ traceroute fhda.edu traceroute to fhda.edu (153.18.8.1), 30 hops max, 38 byte packets 1 Dcore_G0_1-6.fhda.edu (153.18.31.254) 0.972 ms 0.902 ms 0.881 ms 2 Dbackup_V69.fhda.edu (153.18.251.4) 2.113 ms 1.996 ms 2.059 ms 3 tiptoe.fhda.edu (153.18.8.1) 1.791 ms 1.741 ms 1.751 ms The result shows the three routers visited. MUT Example 15 The traceroute program can be used to implement loose source routing. The -g option allows us to define the routers to be visited, from the source to destination. The following shows how we can send a packet to the fhda.edu server with the requirement that the packet visit the router 153.18.251.4. $ traceroute -g 153.18.251.4 fhda.edu. traceroute to fhda.edu (153.18.8.1), 30 hops max, 46 byte packets 1 Dcore_G0_1-6.fhda.edu (153.18.31.254) 0.976 ms 0.906 ms 0.889 ms 2 Dbackup_V69.fhda.edu (153.18.251.4) 2.168 ms 2.148 ms 2.037 ms MUT Example 16 The traceroute program can also be used to implement strict source routing. The -G option forces the packet to visit the routers defined in the command line. The following shows how we can send a packet to the fhda.edu server and force the packet to visit only the router 153.18.251.4, not any other one. $ traceroute -G 153.18.251.4 fhda.edu. traceroute to fhda.edu (153.18.8.1), 30 hops max, 46 byte packets 1 Dbackup_V69.fhda.edu (153.18.251.4) 2.168 ms 2.148 ms 2.037 ms MUT CHECKSUM The error detection method used by most TCP/IP protocols is called the checksum. The checksum protects against the corruption that may occur during the transmission of a packet. It is redundant information added to the packet. The topics discussed in this section include: Checksum Calculation at the Sender Checksum Calculation at the Receiver Checksum in the IP Packet MUT Note: To create the checksum the sender does the following: ❏ The value of checksum field is set to 0. ❏ The packet is divided into k sections, each of n bits. ❏ All sections are added together using 1’s complement arithmetic. ❏ The final result is complemented to make the checksum. -Normally, n=16 MUT Checksum concept MUT Checksum in one’s complement arithmetic MUT Example of checksum calculation in binary MUT Example 18 Let us do the same example in hexadecimal. Each row has four hexadecimal digits. We calculate the sum first. Note that if an addition results in more than one hexadecimal digit, the right-most digit becomes the current-column digit and the rest are carried to other columns. From the sum, we make the checksum by complementing the sum. However, note that we subtract each digit from 15 in hexadecimal arithmetic (just as we subtract from 1 in binary arithmetic). This means the complement of E (14) is 1 and the complement of 4 is B (11). Following Figure shows the calculation. Note that the result (8BB1) is exactly the same as in Example 17. MUT See Next Slide Example of checksum calculation in hexadecimal MUT IP PACKAGE We give an example of a simplified IP software package to show its components and the relationships between the components. This IP package involves eight modules. The topics discussed in this section include: Header-Adding Module Processing Module Queues Routing Table Forwarding Module MTU Table Fragmentation Module Reassembly Table Reassembly Module MUT IP components MUT Header-Adding module • Receive: data, destination 1. 2. 3. 4. MUT Encapsulation the data in an IP datagram Calculate the checksum and insert it in the checksum field Send the data to the corresponding queue Return Processing Module 1. 2. 3. 4. Remove one datagram from one of the input queue If (destination address is 127.X.Y.Z or matches one of the local address 1. Send the data to reassembly module 2. Return If (machine is a router) 1. Decrement TTL If (TTL less than or equal to zero) 1. 2. 3. 5. 6. MUT Discard the data gram Send ICMP error message Return Send the datagram to the following module Return Fragmentation MTU table MUT Fragmentation • MUT Receive: an IP packet from routing module 1. Exact the size of the datagram 2. If (Size >MTU) of the corresponding network 1. If( D==1) 1. Discard the datagram 2. Send an ICMP error message 3. Return 2. Else 1. Calculate the maximum size 2. Divide the datagram into fragments 3. Add header to each fragment 4. Add required options to each fragment 5. Send the datagram 6. Return 3. Else 1. Send the datagram 4. Return Reassembly table St: FREE or IN USE S.A.= Source IP Address D.I= unique number T.O.= predefined Time-out F.=a linked list of fragments MUT Reassembly module • MUT Receive: an IP packet from routing module 1. If (offset == 0 & M=0) 1. Send the datagram to the appropriate queue 2. Return 2. Search the reassembly table for the corresponding entry 3. If (not found) 1. Create a new entry 4. Insert the fragment at the appropriate place in the linked list 1. If( all fragment have arrived) 1. Reassemble the fragment 2. Deliver the datagram to the corresponding upper layer protocol 3. Return 2. Else 1. Check the time-out 2. If (time-out expired) 1. Discard all fragments 2. Send an ICMP error message 5. Return คาถาม? MUT แบบฝึ กหัดลองทาดูแล้วส่ งท้ายคาบ (chapter 8) • IP แพ็คเก็ตหนึ่งมีขอ้ มูลเป็ นเลขฐาน 16 ดังต่อไปนี้ – a) b) c) d) e) f) g) MUT 45 00 00 54 00 03 00 00 20 06 00 00 7C4E 03 02 B4 0E 0F 02 Are there any options? Is the packet fragment ? What is the size of the data? Is a checksum used? Howmany more router can the packet travel to? What is the identification number of the packet ? What is the type of service แบบฝึ กหัดลองทาดูแล้วส่ งท้ายคาบ • In a datagram, the M bit is zero. The value of HLEN is 5, the value of total length is 200, and the offset value is 200. What is the number of the first byte and number of the last byte in this diagram? Is this the last fragment, the first fragment, or a middle fragment ? (exercise 16) MUT ตอบ • M=0, HLEN=5---> 5*4=20 bytes, TL=200-- >200 bytes, offset =200-> 200*8=1600 – the fist byte = 1600 จาก offset – Data length =200-20=180; the last byte=1600+180-1=1779 – The last fragment. MUT ตอบ 45 00 00 54 00 03 00 00 20 06 00 00 7C 4E 03 02 B4 0E 0F 02 4 MUT 5 00 00 54 00 03 000 00000 20 06 0000 7C 4E 03 02 B4 0E 0F 02 - Are there any options? • NO - Is the packet fragment ? • NO - What is the size of the data? • 64 bytes - Is a checksum used? • No - How many more router can the packet travel to? 32 -What is the identification number of the packet ? 3 - What is the type of service Normal Summary • Forwarding & Routing • IPv4 • Next Class IPv6 (chapter 27), RIPv1 และ RIPv2 (chapter 14) MUT Summary • Forwarding & Routing • IPv4 • Next Class IPv6 (chapter 27), RIPv1 และ RIPv2 (chapter 14) MUT คาถาม? MUT