ARP
(Address Resolution Protocol)
ARP จะทำงานเมื่อมีการติดต่อสื่อสารบน LAN (Ethernet) ระหว่างเครื่องต้นทาง และ เครื่องปลายทาง ใช้ค้นหาและจับคู่ระหว่าง MAC Address กับ IP Address เพื่อให้ส่งถึงปลายทางในระดับ L2 ตาม OSI Model ได้ ลองมาดูเพื่อทำความเข้าใจกันต่อนะครับ
เมื่อเครื่อง NB1 ต้องการส่งข้อมูลหาเครื่อง NB2 จะเกิดการทำงานตาม OSI Model ดังนี้
(สมมุติว่าผมทำการ Ping จาก NB1 ไป NB2)
- ที่ Layer 3 เครื่อง NB1 จะสร้าง IP Packet ขึ้นมา โดยใน IP Packet จะระบุ Source IP address และ Destination IP address เพื่อใช้ในการส่งข้อมูล (Data)
- IP Packet ของ NB1 จะถูก Encapsulation ลงมาที่ Layer 2 คือ Ethernet Frame โดยใน Ethernet Frame จะระบุ Source MAC address และ Destination MAC address
จากรูป เป็น Ethernet Frame ของเครื่อง NB1 จะเห็นว่า เครื่อง NB1 จะไม่มีข้อมูล Destination MAC address ของเครื่อง NB2 ทำให้ยังไม่สามารถส่งข้อมูลได้
NB1 จึงจะต้องทำการถามหา MAC address ของ NB2 เพื่อให้การ Encapsulation บน Ethernet Frame ของ NB1 นั้นสมบูรณ์ และ สามารถส่งข้อมูลไปหา NB2 ได้
NB1 จึงเรียกใช้งาน ARP โดยส่ง ARP Request ออกไป ซึ่งใน Field ของ ARP จะมีดังนี้
Source MAC address (Sender) : อันนี้ทราบอยู่แล้วเพราะเป็น MAC Address ของเครื่องผู้ส่งเอง
Source IP address (Sender) : อันนี้ทราบอยู่แล้วเพราะเป็น IP ของเครื่องผู้ส่งเอง
Destination MAC address (Target) : อันนี้ยังไม่ทราบ จึงต้องส่ง ARP Request ไปถาม ระบุเป็น 0000.0000.0000
Destination IP address (Target) : อันนี้ทราบอยู่แล้วว่าต้องการจะส่งไป IP ไหน
จากนั้นทำการ Encapsulation บน Ethernet Frame เนื่องจากยังไม่ทราบ Dest. MAC address จึงระบุเป็น FFFF.FFFF.FFFF แล้วส่งออกไป
Note : สังเกตดีๆและอย่าสับสนระหว่าง Dest. MAC address ใน ARP Request กับ Ethernet Frame นะครับ
เมื่อเครื่อง NB2 ได้รับ ARP Request เข้ามา ก็จะพิจารณาว่า มันคือเครื่องเป้าหมายที่ NB1 ต้องการถาม MAC address หรือเปล่า โดยพิจารณาจาก Destination IP address ที่ NB1 ส่งมา
ถ้าใช่ มันก็จะใส่ข้อมูลของตัวเองลงไป และ ตอบกลับไปหาคนที่ส่งมา นั่นคือ NB1 โดยใช้ ARP Reply
เมื่อ NB1 ได้รับ ARP Reply กลับมา ก็จะทำการเก็บข้อมูล ARP เอาไว้เป็น Cache หรือ ARP Cache เพื่อใช้ในการส่งข้อมูลในครั้งถัดไป โดยที่ไม่ต้องมาทำการส่ง ARP Request ใหม่ทุกครั้งเมื่อมีการส่งข้อมูล
ในการส่งข้อมูลต่างๆ ในครั้งถัดไป ก็จะสามารถส่งข้อมูลได้เลย เพราะที่ NB1 มี ARP Cache เก็บไว้ ซึ่งจับคู่ Destination IP address กับ Destination MAC address เอาไว้อยู่ จึงสามารถ Encapsulation บน Ethernet Frame ได้เลย โดยไม่ต้อง ARP Request ใหม่ทุกครั้งที่ส่งข้อมูล จนกว่า ARP Cache จะหายไป (ARP Timeout)
https://sites.google.com
https://icesuntisuk.blogspot.com
ความคิดเห็น
แสดงความคิดเห็น