ARP通信過程

ARPAddress Resolution Protocol 地址解析協議。

RARPReverse Address Resolution Protocol 逆向地址解析協議。

  不同的網絡,如以太網,令牌網...,在數據鏈路層都有不同的尋址機制。

  在以太網的局域網中,一臺主機和另外一臺主機通信發包,是根據48bit的以太網地址來確定目的接口的,設備驅動程序從不檢查IP數據報中的目的IP地址。

  地址解析協議(ARP)爲這兩種不同的地址形式提供映射:32bit的IP地址和數據鏈路層48bit地址的轉換。RFC 826[Plummer1982]是ARP規範描述文檔。

  ARP爲IP地址到對應的硬件地址之間提供動態映射。RARP是被那些沒有磁盤驅動器的系統使用(一般是無盤工作站或X終端),它需要系統管理員進行手工設置。(這裏不做深究,詳細可以查看《TCP/IP-協議》第五章)。

  ARP通信過程解析:

  (1).比如在一個局域網上,一臺主機A(192.168.0.12)要訪問機器B(192.168.0.11)。他會發送一份稱作ARP請求的以太網數據幀給以太網上的每個主機(廣播包)。ARP請求數據幀中包含目的主機的IP地址,意思就是:“如果你是這個IP地址的擁有者,請回答你的硬件地址。”

  (2).目的主機收到這份廣播報文後,識別出這是發送端在尋問它的IP地址,於是發送一個ARP應答。這個ARP應答包含IP地址及對應的硬件地址。(非廣播)

  (3).收到ARP應答後,系統的ARP緩存便會記錄MAC-IP的對應信息(ARP攻擊點),在CMD裏打arp -a便可查詢現在機器的ARP緩存情況。現在IP數據報現在就可以傳送了。

  在ARP背後有一個基本概念,那就是網絡接口有一個硬件地址(一個48bit的值,標識不同的以太網或令牌環網絡接口)。在硬件層次上進行的數據幀交換必須有正確的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。知道主機的IP地址並不能讓內核發送一幀數據給主機。內核(如以太網驅動程序)必須知道目的端的硬件地址才能發送數據。ARP的功能是在32bit的IP地址和採用不同網絡技術的硬件地址之間提供動態映射。

  值得注意:arp協議是不可靠和無連接的,通常即使主機沒有發出arp請求,也會接受發給它的 arp迴應,並將迴應的mac和ip對應關係放入自己的arp緩存中。此外,內核爲2.4.x的linux系統在arp實現中,考慮到了arp欺騙,不會接受未經請求的arp迴應,因此直接向這種系統發送arp reply也是無效的,不過,有意思的是雖然它不會接受未經請求的arp reply,但是隻要接收到arp的request,它就會更新自己的arp緩存。

 

本文轉載:https://www.cnblogs.com/hyddd/archive/2009/01/04/1368079.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章