回覆列表
  • 1 # pzyyo24296

    RP(Address Resolution Protocol)地址解析協議用於將計算機的網路地址(IP地址32位)轉化為物理地址(MAC地址48位)[RFC826]。ARP協議是屬於鏈路層的協議,在乙太網中的資料幀從一個主機到達網內的另一臺主機是根據48位的乙太網地址(硬體地址)來確定介面的,而不是根據32位的IP地址。核心(如驅動)必須知道目的端的硬體地址才能傳送資料。當然,點對點的連線是不需要地址解析協議的。ARP協議的資料結構以下是引用片段:typedefstructarphdr { unsignedshortarp_hrd;/*硬體型別*/ unsignedshortarp_pro;/*協議型別*/ unsignedchararp_hln;/*硬體地址長度*/ unsignedchararp_pln;/*協議地址長度*/ unsignedshortarp_op;/*ARP操作型別*/ unsignedchararp_sha[6];/*傳送者的硬體地址*/ unsignedlongarp_spa;/*傳送者的協議地址*/ unsignedchararp_tha[6];/*目標的硬體地址*/ unsignedlongarp_tpa;/*目標的協議地址*/ }ARPHDR,*PARPHDR;為了解釋地址解析協議的作用,就必須理解資料在網路上的傳輸過程。這裡舉一個簡單的PING例子。假設我們的計算機IP地址是192.168.1.1,要執行這個命令:ping192.168.1.2。該命令會透過ICMP協議傳送ICMP資料包。該過程需要經過下面的步驟:1、應用程式構造資料包,該示例是產生ICMP包,被提交給核心(網路驅動程式);2、核心檢查是否能夠轉化該IP地址為MAC地址,也就是在本地的ARP快取中檢視IP-MAC對應表;3、如果存在該IP-MAC對應關係,那麼跳到步驟9;如果不存在該IP-MAC對應關係,那麼接續下面的步驟;4、核心進行ARP廣播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令型別為REQUEST(1),其中包含有自己的MAC地址;5、當192.168.1.2主機接收到該ARP請求後,就傳送一個ARP的REPLY(2)命令,其中包含自己的MAC地址;6、本地獲得192.168.1.2主機的IP-MAC地址對應關係,並儲存到ARP快取中;7、核心將把IP轉化為MAC地址,然後封裝在乙太網頭結構中,再把資料傳送出去;使用arp-a命令就可以檢視本地的ARP快取內容,所以,執行一個本地的PING命令後,ARP快取就會存在一個目的IP的記錄了。當然,如果你的資料包是傳送到不同網段的目的地,那麼就一定存在一條閘道器的IP-MAC地址對應的記錄。知道了ARP協議的作用,就能夠很清楚地知道,資料包的向外傳輸很依靠ARP協議,當然,也就是依賴ARP快取。要知道,ARP協議的所有操作都是核心自動完成的,同其他的應用程式沒有任何關係。同時需要注意的是,地址解析協議只使用於本網路。

  • 2 # pzyyo24296

    RP(Address Resolution Protocol)地址解析協議用於將計算機的網路地址(IP地址32位)轉化為物理地址(MAC地址48位)[RFC826]。ARP協議是屬於鏈路層的協議,在乙太網中的資料幀從一個主機到達網內的另一臺主機是根據48位的乙太網地址(硬體地址)來確定介面的,而不是根據32位的IP地址。核心(如驅動)必須知道目的端的硬體地址才能傳送資料。當然,點對點的連線是不需要地址解析協議的。ARP協議的資料結構以下是引用片段:typedefstructarphdr { unsignedshortarp_hrd;/*硬體型別*/ unsignedshortarp_pro;/*協議型別*/ unsignedchararp_hln;/*硬體地址長度*/ unsignedchararp_pln;/*協議地址長度*/ unsignedshortarp_op;/*ARP操作型別*/ unsignedchararp_sha[6];/*傳送者的硬體地址*/ unsignedlongarp_spa;/*傳送者的協議地址*/ unsignedchararp_tha[6];/*目標的硬體地址*/ unsignedlongarp_tpa;/*目標的協議地址*/ }ARPHDR,*PARPHDR;為了解釋地址解析協議的作用,就必須理解資料在網路上的傳輸過程。這裡舉一個簡單的PING例子。假設我們的計算機IP地址是192.168.1.1,要執行這個命令:ping192.168.1.2。該命令會透過ICMP協議傳送ICMP資料包。該過程需要經過下面的步驟:1、應用程式構造資料包,該示例是產生ICMP包,被提交給核心(網路驅動程式);2、核心檢查是否能夠轉化該IP地址為MAC地址,也就是在本地的ARP快取中檢視IP-MAC對應表;3、如果存在該IP-MAC對應關係,那麼跳到步驟9;如果不存在該IP-MAC對應關係,那麼接續下面的步驟;4、核心進行ARP廣播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令型別為REQUEST(1),其中包含有自己的MAC地址;5、當192.168.1.2主機接收到該ARP請求後,就傳送一個ARP的REPLY(2)命令,其中包含自己的MAC地址;6、本地獲得192.168.1.2主機的IP-MAC地址對應關係,並儲存到ARP快取中;7、核心將把IP轉化為MAC地址,然後封裝在乙太網頭結構中,再把資料傳送出去;使用arp-a命令就可以檢視本地的ARP快取內容,所以,執行一個本地的PING命令後,ARP快取就會存在一個目的IP的記錄了。當然,如果你的資料包是傳送到不同網段的目的地,那麼就一定存在一條閘道器的IP-MAC地址對應的記錄。知道了ARP協議的作用,就能夠很清楚地知道,資料包的向外傳輸很依靠ARP協議,當然,也就是依賴ARP快取。要知道,ARP協議的所有操作都是核心自動完成的,同其他的應用程式沒有任何關係。同時需要注意的是,地址解析協議只使用於本網路。

  • 中秋節和大豐收的關聯?
  • 求助ps4電視,音響,如何連線?