cq9电子·(中国)官方网站

技術服務
24小時提供高效率、高質量的技術支持

什麽是ARP協議?ARP協議詳解

时间:2019-12-31 11:15:22來源:本站原創

  當我們需要給其他設備發送數據的時候,我們必須要知道另一台設備的IP地址,但是我們僅僅只知道IP地址是遠遠不夠的,我們還要將IP數據報文封裝成幀才可以通過數據鏈路進行數據的發送。而這裏面,數據幀又必須要有MAC地址,所以我們還要獲取另一台設備的MAC地址。通過IP地址來獲取MAC地址的這個過程是要依靠ARP協議來實現的。

  ARP協議是TCP/IP協議簇中的重要組成部分,ARP能夠通過目的IP地址發現目標設備的MAC地址,從而實現數據鏈路層的可達性。

  ARP的工作過程

  ARP之簡單請求應答


  PC1依據OSI模型

  1、依次從上至下對數據進行封裝,包括对ICMP Date加IP包头的封装,但是到了封装MAC地址的时候;

  2、PC1首先查詢自己的ARP緩存表,發現沒有IP2和他的MAC地址的映射,這個時候MAC數據幀封裝失敗。我們使用ping命令的時候,是指定PC2的IP2的,計算機是知道目的主機的IP地址,能夠完成網絡層的數據封裝,因爲設備通信還需要對方的MAC地址,但是PC1的緩存表裏沒有,所以在MAC封裝的時候填入不了目的MAC地址。

  3、那麽PC1爲了獲取PC2的MAC地址,PC1要發送詢問信息,詢問PC2的MAC地址,詢問信息包括PC1的IP和MAC地址、PC2的IP地址,這裏我們想到一個問題,即使是詢問信息,也是需要進行MAC數據幀的封裝,那這個詢問信息的目的MAC地址填什麽呢,規定當目的MAC地址爲ff-ff-ff-ff-ff-ff時,就代表這是一個詢問信息,也即使後面我要說的廣播。PC2收到這個詢問信息後,將這裏面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP緩存表中;

  4、PC2發送應答信息,對數據進行IP和MAC的封裝,發送給PC2,因爲緩存表裏已經有PC1的IP和MAC的映射了呢。這個應答信息包含PC2的IP2和MAC2。PC1收到這個應答信息,理所應當的就獲取了PC2的MAC地址,並添加到自己的緩存表中。

  經過這樣交互式的一問一答,PC1和PC2都獲得了對方的MAC地址,值得注意的是,目的主機先完成ARP緩存,然後才是源主機完成ARP緩存。之後PC1和PC2就可以真正交流了。

  ARP之廣播請求單播回應

  上圖面的圖解是不完全的ARP協議,因爲在局域網裏邊不會只有兩台主機,這裏就要考慮如何在局域網衆多主機裏獲得目的主機的MAC。


  和上面的一樣,剛開始PC1並不知道PC2的MAC地址,同樣需要發送ARP請求,但是這個局域網裏主機很多的時候,PC1是這麽做的:

  1、首先PC1廣播發送詢問信息(信息和上一張圖介紹的一樣),在這個普通交換機上連接的設備都會受到這個PC1發送的詢問信息。

  2、所有在這個交換機上的設備需要判斷此詢問信息,如果各自的IP和要詢問的IP不一致,則丟棄,如圖PC3、Route均丟棄該詢問信息,而對于PC2判斷該詢問信息發現滿足一致的要求,則接受,同樣的寫入PC1的IP和MAC到自己的ARP映射表中。

  3、PC2單播發送應答信息給PC1,告訴PC1自己的IP和MAC地址。

  ARP代理


  1、如果两台主机在同一个网段,则直接发送ARP Request报文就好。

  2、如果在不同網段,(1)主機A設置了網關,ARP協議可以正常使用。

  (2)主機A沒有設置網關,這種情況下,我們要開啓ARP代理,路由器來重新封裝,轉發報文

  免費ARP


  主机A将ARP Request 广播报文中的目的IP地址字段设置为自己的IP地址,该网络中的所有主机都会接受到此报文。当目的IP地址已经被某一个主机或网关私有时,该主机或网关就会回应ARP reply 报文,通过这种方式主机A就能探测到IP地址冲突了。

  ARP協議總結:

  1.网络设备在什么情况下会发送ARP request?

  发送设备在进行数据发送之前,会首先查看自身的ARP缓存,查找自身的ARP缓存里是否存在目的设备的IP地址和MAC地址的映射。如果存在则直接使用,如果不存在则会发送ARP request。

  2.网络设备什么时候会产生免費ARP?

  当网络上的一个设备被分配了IP地址或者IP地址发生变化后,可以通过免費ARP来检查IP地址是否冲突。

计讯物联——物联网産品与行业解决方案提供商 申請樣機
All Rights Reserved 廈門cq9电子官方网站物聯科技有限公司版權所有 閩ICP備15001895號 闽公网安备 35021102001331号
【网站地图】【sitemap】