การ Mapping Multicast IP Address กับ Multicast MAC Address
ก่อนจะอ่านบทความนี้ หากใครไม่แม่นการแปลงเลขฐาน จากเลขฐาน 2 ไปเป็นเลขฐาน 10 แล้ว ขอให้ท่านไปทบทวนได้ตาม link นี้ครับ https://www.bloggang.com/viewblog.php?id=likecisco&date=26-07-2011&group=1&gblog=7 -------------------------------------------------------------------- สำหรับตัวอย่าง การแปลงเลขฐาน 2 ไปเป็นเลขฐาน 16 ให้ใช้หลักการเดียวกันกับ การแปลงเลขฐาน 2 ไปเป็นเลขฐาน 10 ========================================= การจับคู่ Multicast IP address กับ Multicast MAC address การจับคู่กันระหว่าง IP (Layer 3) address กับ MAC (Layer 2) address นั้น มันจะมีวิธีการจับคู่อยู่ 3 แบบ ดังนี้: -------------------------------------------------- Note: Unicast, Multicast และ Broadcast คืออะไร ท่านสามารถเข้าไปอ่านได้ตาม link นี้ครับ (จะอยู่ท้ายๆ ของบทความ) และใน link เดียวกันนี้ ท่านก็สามารถเข้าไปศึกษาถึงวิธีในการแบ่ง Class A, B, C และ D ของ IP address ได้ด้วยเช่นกันครับ https://www.bloggang.com/viewblog.php?id=likecisco&date=20-08-2011&group=1&gblog=9 --------------------------------------------------- 1. ในกรณีที่เป็น Unicast address (IP address Class A, B และ C) Host ต้นทางจะทำการ mapping Unicast IP address กับ Unicast MAC address ด้วยการใช้ ARP protocol ไปถามปลายทาง โดยการส่งเป็น ARP request ตะโกนไปถามแบบกระจาย (หรือ flooding) ประมาณว่า "ใครเป็นเจ้าของ IP address 10.1.1.1 รบกวนช่วยตอบกลับมาหาฉันหน่อยว่า เธอใช้ MAC address อะไร เพื่อที่ฉันจะได้ mapping ถูก เวลาส่งข้อมูลไปหาเธอน่ะ" และ เมื่อ Host ที่เป็นเจ้าของ IP address 10.1.1.1 ได้รับ ARP request ดังกล่าวแล้ว มันจะตอบกลับด้วย ARP reply ประมาณว่า "ฉันเป็นเจ้าของ IP address 10.1.1.1 จ๊ะ และนี่คือ MAC address ของฉัน ที่ใช้คู่กับ IP address 10.1.1.1 จ๊ะ" ด้วยเหตุนี้ จึงทำให้ host ต้นทางสามารถทำการ mapping Unicast IP address กับ Unicast MAC address ของ host ปลายทางได้ 2. ในกรณีที่เป็น Broadcast IP address - Directed Broadcast Address เช่น - 10.255.255.255/8 หรือ - 172.16.255.255/16 หรือ - 192.168.1.255/24 เป็นต้น - Local Broadcast Address (255.255.255.255) เมื่อ host ต้นทาง ต้องการที่จะส่งข้อมูลไปยังปลายทางด้วยการใช้ destination IP address เป็น Broadcast IP address (Directed Broadcast Address หรือ Local Broadcast Address) แล้ว มันจะทำการ mapping Broadcast IP address เหล่านี้เข้ากับ Broadcast MAC address FFFF.FFFF.FFFF ด้วยตัวของมันเอง Note: Link ที่อธิบายรายละเอียดเกี่ยวกับ Directed Broadcast Address กับ Local Broadcast Address ให้ดูตาม link นี้ครับ https://www.bloggang.com/viewblog.php?id=likecisco&date=06-08-2014&group=1&gblog=12 3. กรณีที่เป็น Multicast IP Address (IP address Class D) การจับคู่ระหว่าง Multicast IP address กับ Multicast MAC Address จะต้องมาจากการคำนวณที่แปลง Multicast IP Address มาเป็น Multicast MAC Address =================================== Layer 3 multicast address คือ address ที่อยู่ระหว่าง 224.0.0.0 จนถึง 239.255.255.255 หรือ กล่าวอีกนัยหนึ่งคือ address ทั้งหมดที่มี high-order bits (bit ทางซ้ายมือ) ที่ถูกตั้งค่าไว้เป็น 1110 (สังเกตได้จากรูปข้างล่าง) นั่นเอง ซึ่ง multicast address นี้จะเป็น address ที่อยู่ใน Class D Layer 3 multicast address เหล่านี้จะถูกใช้เพื่อวัตถุประสงค์ในการรับส่งที่เป็นแบบ multicast IANA (Internet Assigned Numbers Authority) จะเป็นผู้ที่มีอำนาจหน้าที่รับผิดชอบในการกำหนด Class D address ที่ถูกสงวนนี้ Address อื่นๆ ที่ถูกสงวนที่มีความน่าสนใจที่อยู่ใน range 224.0.0.0/8 มีดังนี้ - 224.0.0.1: หมายถึง systems หรืออุปกรณ์ ทั้งหมดบน subnet นี้ - 224.0.0.2: หมายถึง router ทั้งหมดบน subnet นี้ - 224.0.0.4: หมายถึง DVMRP router - 224.0.0.5: หมายถึง OSPF router ทั้งหมด (RFC 1583) - 224.0.0.6: หมายถึง OSPF DR router และ OSPF BDR router (RFC 1583) - 224.0.0.9: หมายถึง RIPv2 router - 224.0.0.13: หมายถึง PIMv2 router ทั้งหมด การแปลงระหว่าง IP multicast addresses กับ MAC addresses สำหรับ Ethernet จะสามารถทำได้โดยการ mapping "low-order 23 bits" ของ IP (Layer 3) multicast address เข้าไปใน "low-order 23 bits" ของ IEEE (Layer 2) MAC address ดังรูปข้างล่าง Note: Low-Order 23 bits หมายถึง 23 bits ทางขวามือ โดยนับจาก bit ที่อยู่ทางขวามือสุด ไล่มาทางซ้ายเรื่อยๆ จนครบทั้งหมด 23 bits
ใน MAC address นั้น, high-order bit (0x01) ที่อยู่ใน octet แรก จะแสดงให้ทราบว่า frame นี้เป็น Layer 2 multicast frame ดังภาพข้างล่าง ส่วน 0x01005e prefix (ที่เป็นที่รู้จักกันก็คือ vendor code) จะได้รับการสงวนเอาไว้สำหรับใช้ในการ mapping Layer 3 IP multicast addresses ไปเป็น Layer 2 multicast MAC addresses ดังภาพข้างล่าง Note: เนื่องจาก MAC address เป็นเลขฐาน 16 ดังนั้นเวลามีการกล่าวถึงเลขฐาน 16 ก็จะต้องมีการใส่ "0x" ไว้ข้างหน้า เพื่อเป็นการแสดงเชิงสัญลักษณ์ให้คนอ่านทราบว่า เลขที่ต่อท้าย "0x" ไม่ใช่เลขฐาน 10 นะ แต่มันเป็นเลขฐาน 16
หากมีเวลา ผมจะมาขยายความของบทความนี้ ถึงปัญหาบางอย่างของการแปลงระหว่าง Multicast IP address กับ Multicast MAC address นะครับ ขอบคุณครับ โก้-ชัยวัฒน์
Create Date : 05 มกราคม 2558 |
Last Update : 15 มิถุนายน 2562 7:25:36 น. |
|
5 comments
|
Counter : 22143 Pageviews. |
|
|
|