Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol)   
เป็น Protocols อีกตัวหนึ่งของระบบ Network  หน้าที่ของมันคือการหา Mac Address ของคอมพิวเตอร์ที่มันจะติดต่อด้วย โดยอ้างอิงจาก IP Address  คอมพิวเตอร์ปลายทางที่จะติดต่อแสดงว่าตอนนี้ คอมพิวเตอร์ที่ต้องการจะติดต่อกับคอมพิวเตอร์อีกตัว รู้ Ip Address ของคอมพิวเตอร์เครื่องนั้นแล้ว  แล้วแต่ยังไม่ทราบ Mac Address ของคอมพิวเตอร์ที่จะติดต่อด้วย Arp เลยเข้ามาช่วยในขั้นตอนนี้ เพื่อให้รู้จักและเชื่อมต่อกันได้  (ไม่ใช่เฉพาะคอมพิวเตอร์ อุปกรณ์ในเครือข่ายจะใช้แบบเดียวกัน แต่ หากยกตัวอย่างอ้างอิงเป็นคอมพิวเตอร์น่าจะเข้าใจง่ายกว่า )

Arp มันจะอยู่ใน Layer 2 ของ Tcp/ip (หรือไม่อาจจะเจอคำอธิบายบางทีเจอ ว่าอยู่ใต้ Layer 3 ก็มี แต่ให้เป็นอันเข้าใจว่ามันจะทำงานอยู่ในระหว่าง 2 Layer นั้น) เหตุผลที่กำหนดให้มีการมันจับคู่กันระหว่าง Mac Address กับ Ip Address เพราะว่า ในระบบอุปกรณ์ทุกชนิดหรือทุก Host มันจะมีหมายเลข Address แต่ปัญหามันเกิดขึ้นตรง การ์ดแลน หรือ NICs ในคอมพิวเตอร์ จะไม่มีหมายเลข Ip Address  แต่มันจะมี Mac Address แทน  ซึ่งเป็นค่าที่กำหนดมาจากโรงงาน ดังนั้น มันจึงต้องมี ARP ซึ่งเป็น Protocol เพื่อใช้ในการเชื่อมโยงระหว่าง Ip และ Mac  ให้ทำงานคู่กันได้

เพื่อให้เห็นชัด ให้ดูจากภาพด้านล่างจะเห็นว่า 

  • Ip Address จะอยู่ใน Layer 3  การรับส่งข้อมูลจะอยู่ในรูปแบบ Packets
  • Mac Address จะอยู่ใน Layer 2 การรับส่งข้อมูลจะอยู่ในรูปแบบ Frames
  • การเชื่อมต่อทางกายภาพ เช่น สายแลน หรือระบบไร้สาย จะอยู่ล่างสุดคือ Layer 1

ข้อมูลภาพจาก  https://microchipdeveloper.com/

อุปกรณ์ในเครือข่ายนั้น มันจะติดต่อกันด้วย Mac Address คู่กับ Ip Addres  แต่มันจะเริ่มติดต่อกันได้ ต่อเมื่อมันทราบ Mac Address ของคอมพิวเตอร์หรืออุปกรณ์ในเครือข่าย ที่มันจะติดต่อด้วยแล้ว  มันก็จะเริ่มติดต่อส่งข้อมูลข่าวสาร กัน

ปกติแล้วคอมพิวเตอร์จะเก็บค่า arp cache  เอาไว้เพื่อใช้ในการติดต่อกัน ไม่ต้องค่อยถามว่า เครื่องที่ต้องการติดต่อหมายเลข Address มีหมายเลขอะไรทุกครั้ง 

คือเมื่อดำเนินการหา Mac Address ของคอมพิวเตอร์ที่ติดต่อกันได้แล้ว ก็จะเอาค่าดังกล่าว มาเก็บไว้ ใน cache  ลองดูตามนี้นะครับ

  1. เปิด command prompt ขึ้นมา
  2. พิมพ์  arp -a
C:\Users\Green>arp -a

Interface: 192.168.10.14 --- 0xf
  Internet Address      Physical Address      Type
  192.168.10.1          08-55-31-a3-aa-94     dynamic
  192.168.10.17         b4-fb-e4-f6-b6-35     dynamic
  192.168.10.255        ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

เมื่อใช้คำสั่งดังกล่าว คอมพิวเตอร์จะแสดงผลมาให้เรา ตามตัวอย่างข้างบนนั้นแหละ

คือ arp cache หรือความจำที่คอมพิวเตอร์บันทึกไว้ว่า Mac Address ที่เคยติดต่อกันมี Mac address อะไรบ้าง โดยจะจับคู่กับ IP Address

จะลองไล่เรียงให้ดูนะครับ (อันนี้ แค่ตัวอย่างนะครับ เพราะ IP Address จะเปลี่ยนไปได้ตลอด แต่ Mac Address ไม่เปลี่ยน

Ip address ของเราเอง

Interface: 192.168.10.14 --- 0xf

IP Address  ตามตัวอย่างข้างบน คือ IP Address ของคอมพิวเตอร์ที่ใช้อยู่ตอนนี้  (อาจจะเปลี่ยนแปลงได้ในอนาคต เพราะรับค่าจาก DHCP Server ที่อยู่ใน Router

การจับคู่กันระหว่าง IP กับ Mac

Internet Address      Physical Address      Type
192.168.10.1          08-55-31-a3-aa-94     dynamic
192.168.10.17         b4-fb-e4-f6-b6-35     dynamic
192.168.10.255        ff-ff-ff-ff-ff-ff     static

ขออธิบาย แค่ 3 ตัวแรกพอนะครับ เพราะอยู่ในเครือข่ายเดียวกัน ส่วนตัวอื่น มันเกี่ยวเนื่องกับการทำ Broadcast นอกเครือข่าย เดี่ยวจะสับสนและปวดหัวเปล่า  ๆๆ ค่อยว่า กันอีกที โดยอาจจะแยกเป็นบทความใหม่ให้ เมื่ออ่านบทความพื้นฐานในเว็บนี้ เข้าใจดีพอแล้ว

จากด้านบนจะเห็นว่ามีการแบ่งคอลัมภ์ ออกเป็น 3  คอลัมภ์ประกอบด้วย  internet Address  ,physical Address  ,Type

  • internet Address  คือหมายเลข IP ที่ติดต่อด้วย 
  • physical Address  คือ Mac Address ที่ติดต่อด้วย
  • Type  ชนิดแบบคงที่ หรือแบบมีการเปลี่ยน
  • static คือค่าที่มันต้องใช้ทุกครั้ง หรือกรณีที่เราสร้างมันหรือกำหนดขึ้นมาเองครับ  จากตัวอย่าง ให้ดูตรง    192.168.10.255    ff-ff-ff-ff-ff-ff     static  IP Address ตัวสุดท้ายมีค่า x.x.x.255    (Octets ตัวสุดท้าย  เป็น class C มีค่าเท่ากับ 255 เท่ากับว่า มันใช้ Broadcast ในวงเครือข่าย หรือ Network Address =192.168.10.0) ดังนั้นค่านี้ จะคงที่ไม่เปลี่ยนแปลงส่วน Mac Address หากมีหมายเลขชุด ff-ff-ff-ff-ff-ff   เป็น Mac Address  มันก็เป็นค่าตายตัวหรือคงที่เช่นกัน เพื่อใช้สำหรับ Broadcast ในระบบ
  • ส่วน Dyanamic  คือส่วนที่ Arp Protocols สร้างขึ้นมา มันไม่คงที่มันอาจจะเปลี่ยนแปลงได้ เมื่อมีการเปลี่ยนแปลงการเชื่อมต่อกับอุปกรณ์ในเครือข่าย เช่นมีการเปลี่ยนหมายเลข IP Address

หากไม่เข้าใจ แนะนำว่า ให้ไปอ่านเรื่องการทำ Subnet mask ในบทความนี้ครับ

การทำงานของ ARP (Address Resolution Protocol)

ยกตัวอย่างการทำความรู้จักกับ Gateway

จะจำลองเหตุการณ์ เมื่อคอมพิวเตอร์ต้องการติดต่อกับเครือข่ายภายนอก อย่างเช่นการเข้าสู่ระบบอินเตอร์เน็ต เมื่อจะเชื่อมต่อกับเครือข่ายผ่านนอก สิ่งแรกที่คอมพิวเตอร์เครื่องนั้นต้องดำเนินการคือต้องออกผ่านทาง Default Gateway ดังนั้นคอมพิวเตอร์จึงต้องหา Mac Address ของ Defult Gateway ก่อน ยกตัวอย่าง

  1. คอมพิวเตอร์จะร้องขอหมายเลข  Ip address จาก Router  และเมื่อคอมพิวเตอร์ได้รับ IP Address จาก DHPC Server ซึ่งอยู่ใน Router แล้ว ปัญหาต่อมาคือ
  2. คอมพิวเตอร์รู้เฉพาะ IP Address ของ Default Gateway เท่านั้น  (ลองพิมพ์ ipconfig/all ดูนะครับ)  แต่ยังไม่ทราบ Mac Address ของ Default Gateway  ในข้้นตอนถัดจากนี้ แหละ ARP จะเป็นตัวช่วยในการถามหา Mac Address ของ Default Gateway มันคือเราเตอร์นั้นแหละตัวเดียวกัน
  3. เมื่อทราบหมายเลข Mac Address ของ  Default Gateway จะดำเนินการเชื่อมต่อเพื่อออกสู่เครือข่ายภายนอก ต่อไป 

ARP (Address Resolution Protocol) Request

อ้างอิงตามภาพข้างล่างนะครับ ขั้นตอน Arp ร้องขอ Mac Address  

Address Resolution Protocol (ARP) นี่มันจะทำงานในอุปกรณ์ในเครือข่ายทุกชิ้นครับ ไม่ได้หมายถึงคอมพิวเตอร์อย่างเดียว แต่ที่ยกตัวคอมพิวเตอร์ส่วนมาก เพราะมันเข้าใจง่ายครับ  ด้วยเหตุผลที่บอกข้างต้นน้้นแหละครับ เพื่อหาหรือเรียกร้องขอ Mac Address ของอุปกรณ์อื่นๆๆในเครือข่ายที่ต้องการจะติดต่อ   โดยการถามผ่าน IP Address ของคอมพิวเตอร์ที่ต้องการติดต่อด้วย

ขั้นตอนการร้องขอ Mac Address จากอุปกรณ์ที่จะติดต่อด้วย โดยอ้างอิง IP Address

อ้างอิงตามภาพด้านบนนะครับให้ดูจากตัวคอมพิวเตอร์ซ้ายมือก่อน เป้าหมายที่ต้องการติดต่อคือติดต่อไปยัง router หมายเลข IP = 192.168.10.1  และดูความหมายของภาพดังนี้ครับ

  1. Src Mac คือค่าของ Mac Address ต้นทางคือคอมพิวเตอร์เครื่องนี้ จะมีค่าเท่า 14-F6-DB-40-08-7F
  2. Dst Mac =FF-FF-FF-FF-FF-FF  ความหมายคือส่งข่าวสารไปยังทุกเครื่องหรือทุกอุปกรณ์ในเครือข่าย (เรียกว่าเป็นการ Broadcast ด้วย Mac Address)
  3. ข้อความที่ส่งไปคือแจ้งว่า หากคอมพิวเตอร์หรืออุปกรณ์ในเครือข่ายไหนที่มีค่า หมายเลข Ip Address เท่ากับ 192.168.10.1 ให้ช่วยส่งหมายเลข Mac Address กลับมายังคอมพิวเตอร์หมายเลข Ip 192.168.10.14 
  4. ต่อมาใน Layer 2 (Link Layer) ก็จะสร้าง Freme ขึ้นมา และในส่วนหัวของ Frame ได้เพิ่ม 2 ส่วนคือ
    1. หมายเลข Mac Address ต้นทาง (Src MAC) 
    2. อีกตัวคือ MAC Address ปลายทาง ซึ่งยังไม่รู้ ก็เลยใช้วิธีการ broadcast MAC address  เพื่อกระจายข่าว  
    3. การกระจายไปยังคอมพิวเตอร์ทุกเครื่อง หรืออุปกรณ์ทุกชิ้นในเครือข่าย  มันจะส่งทาง Freme มายัง Layer 1 (Phisical Layer) 
  5.  

อ้างอิงตามภาพด้านบนนะครับ

  • เมื่อคอมพิวเตอร์หรืออุปกรณ์ในเครือข่ายได้รับ Frame  และจะดู Mac Address ปลายทาง เพื่อดูว่าน่าสนใจหรือไม่  เมื่อมันเปิดขึ้นมา หากไม่เกี่ยวกับตัวเอง ก็จะปล่อยทิ้งไป โดยไม่ทำอะไร
  • แต่ หาก Router หรือ Default Gateway  เปิดมาดูก็จะเห็นว่า Ip Address นั้นตนเองเป็นเจ้าของอยู่ และทราบว่ามีคอมพิวเตอร์เครื่องหนึ่งร้องขอมา เพื่อทราบ MAc Address ก็จะเริ่มเตรียมการเพื่อตอบสนอง ส่ง MAc Address ไปให้
  • ก็เหมือนเดิมอีกนั้นแหละครับ Arp ใน Router จะสร้าง Frame ขึ้นมาใน Layer 2 (link layer) ส่วนหัวของ Freame ประกอบด้วย Mac Address ของต้นทางคือของ Router กับของปลายทางคือคอมพิวเตอร์ที่ร้องขอ  พร้อมข้อความรายละเอียดของ Mac Address ของมันเอง(ในภาพคือ Router ) ส่งกลับไปให้คอมพิวเตอร์ที่ร้องขอคือคอมพิวเตอร์หมายเลขไอพี 192.168.10.14
  • เมื่อคอมพิวเตอร์ที่ร้องขอได้รับทราบว่า Mac Address ของ Router   จะเริ่มการติดต่อกัน และเพื่อไม่ต้องถามซ้ำอีก ข้อมูลการติดต่อดังกล่าวจะสร้างเป็นตารางเก็บไว้ในคอมพิวเตอร์เรียกว่า  arp table ไว้ 
  • เมื่อจะติดต่อในครั้งต่อๆๆ ไป จะไปอ่านใน Arp Table นั้นแหละ    ติดต่อได้เลยไม่ต้องถามตามขั้นตอนที่ผ่านมา

สรุป

Mac Address    ใช้สำหรับติดต่อระหว่างคอมพิวเตอร์ในเครือข่าย หรืออุปกรณ์ทุกชิ้นในเครือข่าย  หรือกล่าวอีกอย่างหนึ่งว่า Mac Address เป็นตัวระบุตัวตนของอุปกรณ์ในเครือข่าย 

ยกเว้นชิ้นเดียวนะ ในอุปกรณ์ของระบบเครือข่ายที่ไม่มี MAc Address คือ Switch   เมื่อไม่มี Mac Address นั้นก็หมายความว่ามันไม่มี IP Address ด้วย เพราะมันแค่ทางผ่าน นะครับ หรือเป็นตัวจัดกลุ่มให้คอมพิวเตอร์รวมตัวกันเป็นเครือข่าย ไม่มีเป้าหมายและปลายทาง เลยไม่มี Mac Address แต่มีแต่ MAC นะครับ คือตัวจัดการเข้าเข้าถึง

ส่วน IP Address มันคือตัวระบุสถานที่ติดต่อ ไม่ถึงขั้นระบุตัวตัวของอุปกรณ์ แต่ก็ต้องใช้คู่กัน 

หวังว่า คงไม่งง นะครับ   มีอะไร ก็ถามมาได้ตลอดนะครับ เผื่อยังขาดตกพร่องอยู่บ้าง

การเรียนรู้เกี่ยว ARP (Address Resolution Protocol) ต้องเรียนรู้และทำความเข้าใจ เกี่ยวกับเรื่อง Ip Address และ Mac Address รวมทั้งลองพยายามศึกษาเรื่อง Tcp/ip ของแต่ละชั้นว่ามีลักษณะการทำงานอย่างไร มันจะมีประโยชน์ ทำให้เราเข้าใจระบบการทำงาน ขณะเดียวกันในการเลือกซื้ออุปกรณ์ในระบบเน็ตเวิร์ค เราสามารถเลือกซื้อได้อย่างถูกต้องด้วย

เนื้อหาที่เกี่ยวข้องกัน

Tags:  

Leave a Reply

Your email address will not be published. Required fields are marked *