การส่งข้อมูลทั้ง 3 รูปแบบทำงานควบคู่กันระหว่าง Layer 3 (IP Address) และ Layer 2 (MAC Address) โดยสรุปหลักการทำงานและโครงสร้าง Address ได้ดังนี้
1. Unicast (One-to-One)
การส่งข้อมูลจากเครื่องต้นทาง 1 เครื่อง เจาะจงไปยังเครื่องปลายทาง 1 เครื่องเท่านั้น
- IP Address Level:
- ใช้ IP ปลายทางแบบ Unicast ทั่วไป (เช่น
192.168.1.50) - กำหนดปลายทางชัดเจนเพียง Host เดียว
- ใช้ IP ปลายทางแบบ Unicast ทั่วไป (เช่น
- MAC Address Level:
- ใช้ MAC Address ปลายทางของเครื่องเป้าหมายโดยตรง (เช่น
AA:BB:CC:11:22:33) - จุดสังเกต: บิต Least Significant Bit (LSB) ของ Byte แรกของ MAC Address (บิต I/G: Individual/Group) จะเป็น 0 เสมอ หมายถึง Individual/Unicast
- ใช้ MAC Address ปลายทางของเครื่องเป้าหมายโดยตรง (เช่น
- กลไกการทำงาน:
- ต้นทางจะเปิดตาราง ARP Cache เพื่อแปลง Destination IP เป็น Destination MAC Address หากไม่มีจะยิง ARP Request ไปถามก่อน
- Switch ดู MAC Address Table และ Forward เฟรมออกไปเฉพาะพอร์ตที่เชื่อมกับ MAC ปลายทางนั้น (หรือ Flood แค่ครั้งแรกหากยังไม่เรียนรู้ MAC)
- เครื่องอื่นใน Network จะ Drop เฟรมทิ้งทันทีที่ระดับ NIC เพราะ MAC ปลายทางไม่ตรงกับตนเอง
2. Broadcast (One-to-All)
การส่งข้อมูลจากต้นทาง 1 เครื่อง กระจายไปยัง “ทุกโฮสต์” ที่อยู่ใน Broadcast Domain (Subnet) เดียวกัน
- IP Address Level:
- Limited Broadcast:
255.255.255.255(ส่งหาทุกคนใน Local Subnet โดยไม่ข้าม Router) - Directed Broadcast: IP สุดท้ายของวง Subnet เช่น
192.168.1.255สำหรับ Subnet/24
- Limited Broadcast:
- MAC Address Level:
- ใช้ค่าคงที่ตายตัวคือ
FF:FF:FF:FF:FF:FF(บิตทั้งหมดเป็น 1)
- ใช้ค่าคงที่ตายตัวคือ
- กลไกการทำงาน:
- ต้นทางห่อ IP Packet ที่ระบุ Broadcast แล้ว Encapsulate ใส่ Ethernet Frame โดยระบุ Destination MAC เป็น
FF:FF:FF:FF:FF:FF(ไม่ต้องส่ง ARP ถาม) - เมื่อ Switch ได้รับเฟรมที่มี MAC ปลายทางเป็น Broadcast มันจะทำ Flooding ส่งเฟรมนี้ออกไป “ทุกพอร์ต” ที่อยู่ใน VLAN เดียวกัน (ยกเว้นพอร์ตที่รับเข้ามา)
- ทุกเครื่องที่ได้รับเฟรมนี้ NIC จะยอมรับและส่งขึ้นไปประมวลผลต่อที่ CPU (สร้าง Overhead สูงหากเกิดขึ้นปริมาณมาก เช่น Broadcast Storm)
- ต้นทางห่อ IP Packet ที่ระบุ Broadcast แล้ว Encapsulate ใส่ Ethernet Frame โดยระบุ Destination MAC เป็น
3. Multicast (One-to-Many)
การส่งข้อมูลจากต้นทาง 1 เครื่อง ไปยัง “กลุ่มเครื่องเฉพาะ” ที่ลงทะเบียน (Join) ขอรับข้อมูลชุดนั้นไว้
- IP Address Level:
- ใช้ Class D IP Address ในช่วง
224.0.0.0ถึง239.255.255.255 - เช่น OSPF (
224.0.0.5), mDNS (224.0.0.251)
- ใช้ Class D IP Address ในช่วง
- MAC Address Level (IPv4 Multicast MAC Mapping):
- มีช่วง MAC Address เฉพาะขึ้นต้นด้วย
01:00:5E:xx:xx:xx - จุดสังเกต: บิตแรกของ Byte แรก (
01ในเลขฐาน 16 คือ0000 0001บิตท้ายสุดคือ 1 = Group) - การแปลง IPv4 เป็น MAC:
- MAC Multicast ถูกจอง Prefix ไว้ 25 บิตแรก คือ
01:00:5Eตามด้วยบิต 0 (24 บิต + 1 บิต = 25 บิต) - ดึง 23 บิตสุดท้าย ของ Multicast IP มาแปะเป็น 23 บิตท้ายของ MAC Address
- (ผลข้างเคียง: เนื่องจาก IP Multicast มีบิตที่ผันแปรได้ 28 บิต แต่นำมาใส่ MAC ได้แค่ 23 บิต ทำให้มี 5 บิตที่ตกหล่น เกิดอัตราส่วน 32 Multicast IPs แมปชนกันที่ 1 Multicast MAC Address เดียวกัน)
- MAC Multicast ถูกจอง Prefix ไว้ 25 บิตแรก คือ
- มีช่วง MAC Address เฉพาะขึ้นต้นด้วย
- กลไกการทำงาน:
- เครื่องลูกข่ายที่ต้องการรับข้อมูลจะส่ง IGMP Report เพื่อ Join Multicast Group
- หาก Switch รองรับ IGMP Snooping Switch จะดักฟังข้อมูลและ Forward ข้อมูล Multicast ออกไปเฉพาะพอร์ตที่มีสมาชิกลงทะเบียนไว้เท่านั้น (ถ้า Switch บ้านๆ ทั่วไปที่ไม่รองรับ IGMP Snooping มันจะปฏิบัติกับ Multicast เหมือน Broadcast คือสาดออกทุกพอร์ต)
- เฉพาะเครื่องที่ NIC/OS ผูก Multicast Group นั้นไว้เท่านั้นที่จะรับข้อมูลขึ้นไปประมวลผล ส่วนเครื่องอื่น NIC จะปฏิเสธเฟรมทิ้งทันที
ตารางเปรียบเทียบ
| ชนิด | ตัวอย่าง IP ปลายทาง | Destination MAC Address | พฤติกรรมของ Switch | พฤติกรรมของ Host อื่น |
|---|---|---|---|---|
| Unicast | 192.168.1.50 | MAC เฉพาะของเครื่องปลายทาง (บิตแรกสุดขึ้นต้นเลขคู่ เช่น xx:xx... ที่บิต LSB เป็น 0) | Forward ออกเฉพาะพอร์ตปลายทาง | Drop ทิ้งที่ระดับ NIC ทันที |
| Broadcast | 255.255.255.255 หรือ Subnet Broadcast (.255) | FF:FF:FF:FF:FF:FF | Flood ออกทุกพอร์ตใน VLAN | ทุก Host รับเข้าประมวลผลที่ CPU |
| Multicast | 224.0.0.1 ถึง 239.255.255.255 (Class D) | 01:00:5E:00:00:00 ถึง 01:00:5E:7F:FF:FF (สำหรับ IPv4) | Forward เฉพาะพอร์ตที่มีสมาชิก (หากเปิด IGMP Snooping) | เฉพาะ Host ในกลุ่มที่รับไปประมวลผล |
ARP (Address Resolution Protocol) คือโปรโตคอลที่ทำหน้าที่จับคู่หรือแปลง IP Address (Layer 3) ให้เป็น MAC Address (Layer 2) ภายในเครือข่ายท้องถิ่น (Local Area Network / Same Subnet)
เหตุผลที่ต้องมี ARP เพราะในระดับแอปพลิเคชันหรือระบบปฏิบัติการ เราส่งข้อมูลหากันด้วย IP Address แต่ฮาร์ดแวร์จริงในระดับ Network Interface Card (NIC) และ Switch สื่อสารกันผ่าน Ethernet Frame ซึ่งจำเป็นต้องรู้ Destination MAC Address ทางกายภาพเท่านั้น หากไม่มี MAC Address การ์ดแลนจะไม่สามารถห่อ (Encapsulate) ข้อมูลส่งออกไปบนสายแลนหรือ Wi-Fi ได้
ขั้นตอนการทำงานของ ARP (Request & Reply)
สมมติเครื่อง A (192.168.1.10) ต้องการส่งข้อมูลหาเครื่อง B (192.168.1.20) ในวงแลนเดียวกัน:
- ตรวจสอบ Cache (ARP Cache Lookup)
- เครื่อง A จะเช็กตารางในเครื่องตัวเองก่อนว่าเคยมี MAC ของ
192.168.1.20เก็บไว้ไหม - ถ้ามีอยู่แล้ว ก็นำ MAC นั้นไปสร้าง Frame ส่งได้ทันที
- ถ้ายังไม่มี จะเริ่มเข้าสู่กระบวนการค้นหา
- เครื่อง A จะเช็กตารางในเครื่องตัวเองก่อนว่าเคยมี MAC ของ
- ส่งคำถาม (ARP Request – Broadcast)
- เครื่อง A ส่งแพ็กเก็ตถามว่า: “ใครถือ IP
192.168.1.20ขอ MAC Address ให้เครื่อง192.168.1.10ด้วย” - รูปแบบการส่งเป็น Broadcast:
- Destination IP:
192.168.1.20 - Destination MAC:
FF:FF:FF:FF:FF:FF
- Destination IP:
- Switch จะกระจาย (Flood) แพ็กเก็ตนี้ไปให้ทุกเครื่องในวง LAN
- เครื่อง A ส่งแพ็กเก็ตถามว่า: “ใครถือ IP
- การคัดกรอง (Host Filtering)
- เครื่องอื่น ๆ ที่ได้รับ แต่ IP ไม่ใช่
192.168.1.20จะ Drop แพ็กเก็ตทิ้ง - เครื่อง B เห็นว่าเป็น IP ของตนเอง จึงรับไว้ประมวลผล และบันทึก MAC ของเครื่อง A ลงตารางตัวเองไว้ล่วงหน้าด้วย
- เครื่องอื่น ๆ ที่ได้รับ แต่ IP ไม่ใช่
- ตอบกลับ (ARP Reply – Unicast)
- เครื่อง B ส่งข้อมูลตอบกลับว่า: “
192.168.1.20อยู่ที่นี่ MAC Address คือBB:BB:BB:22:22:22“ - รูปแบบการส่งเป็น Unicast ยิงตรงกลับไปหาเครื่อง A:
- Destination IP:
192.168.1.10 - Destination MAC: MAC ของเครื่อง A
- Destination IP:
- เครื่อง B ส่งข้อมูลตอบกลับว่า: “
- อัปเดตตารางและส่งข้อมูลจริง (Cache Update & Data Transmission)
- เครื่อง A นำค่าที่ได้ไปบันทึกลงใน ARP Table / ARP Cache
- จากนั้นเครื่อง A จึงประกอบ Ethernet Frame ส่งข้อมูลจริงไปยัง MAC ของเครื่อง B ได้สำเร็จ
สิ่งสำคัญที่ควรรู้เกี่ยวกับ ARP
- ARP Cache มีอายุ (Aging Timeout): รายการที่บันทึกไว้ใน ARP Table จะถูกลบออกอัตโนมัติหากไม่มีการใช้งานต่อเนื่อง (ปกติราวๆ 2–20 นาที ขึ้นอยู่กับ OS) เพื่อป้องกันปัญหาเมื่อเครื่องปลายทางเปลี่ยน IP หรือเปลี่ยนการ์ดแลน
- ทำงานเฉพาะใน Local Subnet เดียวกันเท่านั้น: หากต้องการส่งข้อมูลข้ามเครือข่าย (คนละวง Subnet หรือออกอินเทอร์เน็ต) เครื่อง A จะไม่ถามหา MAC ของปลายทางจริง แต่จะส่ง ARP Request เพื่อถามหา MAC Address ของ Default Gateway (Router) แทน แล้วให้ Router รับช่วงต่อ
- คำสั่งตรวจสอบบนเครื่อง:
- Windows / Linux:
arp -aหรือบน Linux ยุคใหม่ใช้ip neighเพื่อดูตาราง IP คู่กับ MAC
- Windows / Linux:
- ประเด็นด้าน Security (ARP Spoofing / Poisoning):
- ARP เป็นโปรโตคอลยุคเก่าที่ไม่มีการยืนยันตัวตน (Authentication) ทำให้ผู้ไม่ประสงค์ดีสามารถส่ง Fake ARP Reply ปลอมแปลงตัวตนว่าเป็น Default Gateway เพื่อดักจับข้อมูลทั้งหมดในวงแลนได้ (Man-in-the-Middle) ซึ่งอุปกรณ์ Switch ระดับองค์กรมักแก้ด้วยฟีเจอร์ Dynamic ARP Inspection (DAI)