Unicast Multicast Broadcast & ARP

การส่งข้อมูลทั้ง 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 เดียว
  • 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
  • กลไกการทำงาน:
    • ต้นทางจะเปิดตาราง 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
  • 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)

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)
  • 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 เดียวกัน)
  • กลไกการทำงาน:
    • เครื่องลูกข่ายที่ต้องการรับข้อมูลจะส่ง 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 อื่น
Unicast192.168.1.50MAC เฉพาะของเครื่องปลายทาง (บิตแรกสุดขึ้นต้นเลขคู่ เช่น xx:xx... ที่บิต LSB เป็น 0)Forward ออกเฉพาะพอร์ตปลายทางDrop ทิ้งที่ระดับ NIC ทันที
Broadcast255.255.255.255 หรือ Subnet Broadcast (.255)FF:FF:FF:FF:FF:FFFlood ออกทุกพอร์ตใน VLANทุก Host รับเข้าประมวลผลที่ CPU
Multicast224.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) ในวงแลนเดียวกัน:

  1. ตรวจสอบ Cache (ARP Cache Lookup)
    • เครื่อง A จะเช็กตารางในเครื่องตัวเองก่อนว่าเคยมี MAC ของ 192.168.1.20 เก็บไว้ไหม
    • ถ้ามีอยู่แล้ว ก็นำ MAC นั้นไปสร้าง Frame ส่งได้ทันที
    • ถ้ายังไม่มี จะเริ่มเข้าสู่กระบวนการค้นหา
  2. ส่งคำถาม (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
    • Switch จะกระจาย (Flood) แพ็กเก็ตนี้ไปให้ทุกเครื่องในวง LAN
  3. การคัดกรอง (Host Filtering)
    • เครื่องอื่น ๆ ที่ได้รับ แต่ IP ไม่ใช่ 192.168.1.20 จะ Drop แพ็กเก็ตทิ้ง
    • เครื่อง B เห็นว่าเป็น IP ของตนเอง จึงรับไว้ประมวลผล และบันทึก MAC ของเครื่อง A ลงตารางตัวเองไว้ล่วงหน้าด้วย
  4. ตอบกลับ (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
  5. อัปเดตตารางและส่งข้อมูลจริง (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
  • ประเด็นด้าน Security (ARP Spoofing / Poisoning):
    • ARP เป็นโปรโตคอลยุคเก่าที่ไม่มีการยืนยันตัวตน (Authentication) ทำให้ผู้ไม่ประสงค์ดีสามารถส่ง Fake ARP Reply ปลอมแปลงตัวตนว่าเป็น Default Gateway เพื่อดักจับข้อมูลทั้งหมดในวงแลนได้ (Man-in-the-Middle) ซึ่งอุปกรณ์ Switch ระดับองค์กรมักแก้ด้วยฟีเจอร์ Dynamic ARP Inspection (DAI)