首先我們必須明白一點的是,ip位址只在網路及其以上的層有用,在鏈路層及以下的層是沒有用的。tcp/ip協議棧從上層到下層的封裝過程中,第三層封裝需要知道目的ip,第二層封裝需要知道目的mac(實體地址)。在實際網路的鏈路上傳送資料幀時,最終還必須是硬體位址。說到底ip位址是虛的,兩台主機的通訊歸根結底是要落實到實物上的,所以說,兩台主機之間通訊光有ip位址是不夠的,還需要有實體地址。
首先,我們知道,一台主機可以通過dns服務知道另一台它想要通訊主機的ip,這一步稱為網域名稱到ip位址的轉換;而arp所做的事就是通過ip位址得到對應的實體地址,這一步叫做ip位址到實體地址的轉換。通過這兩部便得到了目的主機的ip位址和實體地址。
其次,每台主機上都會有乙個apr快取記憶體,裡面有所在區域網上的各主機和路由器的ip位址到硬體位址的對映表。當主機 a 欲向本區域網上的某個主機 b 傳送 ip 資料報時,就先在其 arp 快取記憶體中檢視有無主機 b 的 ip 位址。如有,就可查出其對應的硬體位址,再將此硬體位址寫入 mac 幀,然後通過區域網將該 mac 幀發往此硬體位址。
下面所示的這張圖有兩個區域網lan1和lan2,它們的閘道器分別是路由器1和路由器2,下面闡述兩種通訊情形。
第一種情況:區域網內的主機通訊
主機1-2想和主機1-3通訊,通過dns服務知道了主機1-3的ip位址。主機1-2用子網掩碼和主機1-3的ip位址相與後得到的值和自己的網路號相比較,若相同則為同一區域網中的主機。如圖所示,主機1-2和主機1-3在同一區域網內。然後主機1-2檢視自己的arp快取記憶體中的對映表是否有與該ip位址相匹配的mac位址,這裡我們假設沒有,所以主機1-2便在區域網內以廣播的方式傳送arp請求,該請求的內容可以這麼表示:
我是 222.1.3.3,硬體位址是 m1-2,我想知道主機 222.1.3.4的硬體位址
我是 222.1.3.4,硬體位址是 m1-3這樣乙個arp請求便完成了。
第二種情況:跨區域網的主機通訊
首先要明白arp是解決同乙個區域網上的主機或路由器的 ip 位址和硬體位址的對映問題,如果所要通訊的目的主機和源主機不在同乙個區域網中該如何獲得實體地址呢?那麼就要通過 arp 找到乙個位於本區域網上的某個路由器的硬體位址,然後把分組傳送給這個路由器,讓這個路由器把分組**給下乙個網路。剩下的工作就由下乙個網路來做。
如圖中所示的主機2-1若要與主機1-3通訊,發現不在同乙個區域網上,則主機2-1線得到路由器2的實體地址,通過交換機,將資料幀傳給路由器2,然後接下來又是乙個怎樣的過程呢?我們先簡化一下主機2-1和主機1-3的連線圖。
看圖中的三條資料幀,第一條是主機2-1通過交換機1傳送給路由器2的資料幀,第二條是路由器2傳送給路由器1 的資料幀,第三條是路由器1通過交換機3傳送給主機1-3的資料幀。前面三部分是不變的,改變的是源實體地址和目標實體地址。
以下總結三條:
另外,從路由器2到路由器1的路徑選擇屬於路由器選擇的內容,本篇就不多做展開了。
1、傳送方是主機,要把ip資料報傳送到本網路上的另乙個主機。這時用 arp 找到目的主機的硬體位址。
2、傳送方是主機,要把 ip 資料報傳送到另乙個網路上的乙個主機。這時用 arp 找到本網路上的乙個路由器的硬體位址。剩下的工作由這個路由器來完成。
3、傳送方是路由器,要把 ip 資料報**到本網路上的乙個主機。這時用 arp 找到目的主機的硬體位址。
4、傳送方是路由器,要把 ip 資料報**到另乙個網路上的乙個主機。這時用 arp 找到本網路上的乙個路由器的硬體位址。剩下的工作由這個路由器來完成。
由於全世界存在著各式各樣的網路,它們使用不同的硬體位址。要使這些異構網路能夠互相通訊就必須進行非常複雜的硬體位址轉換工作,因此幾乎是不可能的事。比如說乙個電腦產商生產一台電腦,這台電腦有全世界唯一的實體地址,但是產商不知的是,他賣出的這台電腦最終是到非洲還是到亞洲,這是控制不了的,若真想控制,實在是乙個龐大的工作。
之前說過了arp是解決同乙個區域網上的主機或路由器的 ip 位址和硬體位址的對映問題,為什麼不能作用於廣域網?試想想,大部分的通訊其實是跨區域網的,若每台主機向廣域網發arp那豈不是占用了許多資源,還有乙個就是安全問題,網路攻擊者可以傳送大量的請求,那麼全球的網路都會陷入癱瘓。什麼是arp欺騙呢,放個傳送門:arp欺騙。
arp和rarp請求是廣播方式,應答都是單播方式。
網路協議 ARP RARP詳解
arp,全稱address resolution protocol,中文名為位址解析協議,它工作在資料鏈路層,在本層和硬體介面聯絡,同時對上層提供服務。ip資料報常通過乙太網傳送,乙太網裝置並不識別32位ip位址,它們是以48位乙太網位址傳輸乙太網資料報。因此,必須把ip目的位址轉換成乙太網目的位址...
計算機網路 網際層協議 ARP RARP
tcp ip的四層結構分別是 網路介面層 網際層 傳輸層 應用層。本文分享關於網際層的兩個基本協議 arp,rarp。1.為什麼需要位址解析協議?通常a主機向b主機進行傳送資料,a主機一般是知道b主機的ip位址,光有乙個ip位址就可以傳送資料嗎?不是的,在網路介面層,位於區域網內部的主機都是通過ma...
網路協議第四 五章 ARP RARP
網路協議第 四 五章 arp rarp 網路協議第三章 ip網際協議 引言當一台主機將乙太網資料幀傳送到同乙個區域網上的另一台主機時,是根據48bit的乙太網位址來確定目的介面的,裝置驅動程式從不檢查ip資料報中的ip位址。arp為ip位址和硬體位址之間提供動態對映,說是動態的,因為這個過程是自動完...