การ 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 น.
Counter : 22146 Pageviews.

5 comments
  
ขอบคุณครับ
โดย: Arnat IP: 58.11.148.138 วันที่: 5 สิงหาคม 2558 เวลา:0:45:59 น.
  
ขอบคุณคะ
โดย: pp IP: 27.55.84.170 วันที่: 30 พฤศจิกายน 2559 เวลา:1:50:15 น.
  
งงจังเลยครับ MAC address ??? สงสัยว่าเวลาเราใช้wifi จากค่ายOperator เช่นtrue ทำไมจนท.เค้าไปsetตรงmac address ครับ
โดย: tintin IP: 171.97.104.149 วันที่: 9 มีนาคม 2561 เวลา:19:42:52 น.
  
@K. Tintin,

เพราะอุปกรณ์สื่อสารที่ใช้งานบนพื้นฐานของ IP ทุกๆ อย่าง จะมีเลข MAC address ของแต่ละเครื่องที่ไม่ซ้ำกันเลยในโลกนี้ (ตามทฤษฎิ) และเพราะ Operator เค้าต้องการ lock ให้เครื่องของคุณใช้ Wifi ได้แค่เครื่องเดียว เค้าเลยต้อง lock ที่ MAC address ครับ
โดย: kochaiwat วันที่: 12 มีนาคม 2561 เวลา:23:15:28 น.
  
ขอบคุณอาจาร์ยมากๆครับ T^T เข้าใจในหลายๆอย่างเลย
โดย: Mark IP: 119.110.237.67 วันที่: 14 มิถุนายน 2562 เวลา:11:16:30 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Likecisco.BlogGang.com

kochaiwat
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 693 คน [?]

บทความทั้งหมด