บทความนี้เป็นส่วนหนึ่งของวิชา Computer Networkภาคการศึกษาที่ 2 ปีการศึกษา 2563
ในบทความนี้เราจะมาเล่ากันถึงเรื่องของ ARP โดยเนื้อหาในบทความนี้ก็จะแบ่งออกเป็นส่วนๆดังนี้
- ARP คืออะไร?
- ARP มีไว้ทำอะไร?
- ARP ทำงานยังไง?
ARP คืออะไร?
ARP ย่อมาจาก Address Resolution Protocol โดยมันเป็นโพรโตคอลที่ทำงานอยู่ในระบบ Network และมีหน้าที่การทำงานหลักๆอยู่บน Layer 2 และ 3 ของ TCP/IP Model (หรือ OSI Model)
ARP มีไว้ทำไม?
คำถามว่า ARP มีไว้ทำไมให้ลองนึกภาพเครือข่ายหนึ่ง ปกติการบ่งบอก Indentity ของเครื่องแต่ละเครื่องจะมีทั้ง IP Address และ MAC Address
IP Address เป็น Address ที่อยู่บน Layer 3 ซึ่งใช้บ่งบอกที่อยู่ของมันบนเครือข่าย Network
MAC Address เป็น Address ที่อยู่บน Layer 2 ซึ่งบ่งบอกถึงเครื่องนั้นจริง ๆ
ถ้าจะให้เปรียบเทียบคร่าวๆ (แต่ไม่สมบูรณ์ 100%) จะได้ว่า IP Address เปรียบเสมือนที่อยู่บ้าน และ MAC Address เปรียบเสมือนชื่อ หรือรหัสบัตรประชาชนของบุคคลนั้น
การจะส่งข้อมูลจากเครื่องหนึ่งไปหาเครื่องหนึ่ง บางสถาณการณ์เราจะทราบ IP Address ของเครื่องที่ต้องการส่ง แต่เราไม่ทราบ MAC Address ของเครื่องที่จะต้องการส่งถึง
เปรียบเสมือนรู้ที่อยู่บ้าน แต่ไม่ทราบว่าต้องการส่งไปให้ใคร
หรือก็คือหน้าที่ของ ARP คือการแปลง IP Address ไปเป็น MAC Address
ARP ทำงานยังไง?
ยกตัวอย่างสถานการณ์ต้องการส่งข้อมูลจากเครื่อง A ไปหาเครื่อง B โดยที่เครื่อง A รู้ IP ของเครื่อง B อยู่แล้ว
เครื่อง A จะเริ่มต้นที่การเช็คในฐานข้อมูลที่เรียกว่า ARP Cache ก่อน ว่ามีข้อมูล MAC Address ของเครื่องที่มี IP ตรงกับเครื่อง B อยู่ก่อนแล้วหรือไม่
ซึ่งในกรณีนี้เราจะสมมติก่อนว่าไม่มี
เมื่อไม่พบใน ARP Cache เครื่อง A จะส่งข้อมูลไปหาทุกเครื่องในเครือข่าย (Broadcast) โดยถามหาถึง Mac Address ของเครื่องที่มี IP ที่ต้องการ
เครื่องที่มี IP ตรงกับที่เครื่อง A ต้องการจะตอบกลับไปพร้อมกับ Mac Address ของตนเอง แต่เครื่องที่ไม่ตรงจะ drop Packet นั้นทิ้งไป
จากนั้นการสื่อสารระหว่างเครื่อง A <—> B ก็จะเริ่มต้นขึ้น
ต่อไปเราจะมาพูดกันถึง ARP Cache หน้าที่ของมันคือเป็น Cache ที่ใช้เก็บ Record ของ mapping ระหว่าง IP และ MAC Address
แน่นอนว่าเมื่อเครื่อง A, B ติดต่อกันได้ MAC ของเครื่อง B ก็จะถูกนำมาเก็บที่ ARP Cache
โดย ARP Cache ก็จะมีการเก็บได้ 2 ประเภท
- Dynamic คือประเภทที่จะเกิดขึ้นอัตโนมัติเมื่อมีการใช้ขั้นตอนที่กล่าวมาข้างต้น ซึ่งจะมีการลบออกเรื่อยๆเพื่อไม่ให้เปลืองทรัพยากรเครื่อง
- Static คือประเภทที่จำเป็นที่จะต้องใช้คำสั่งในการเพิ่ม มักจะถูกเพิ่มโดยผู้ดูแลระบบ เพื่อไม่ให้มี congestion ในเครือข่ายมากเกินไป และไม่ได้ถูกลบโดยอัตโนมัติ (เนื่องจาก ARP ต้องพึ่ง Broadcast ซึ่งเปลืองทรัพยากรมาก ๆ)