tcp/ip的四層結構分別是:網路介面層、網際層、傳輸層、應用層。本文分享關於網際層的兩個基本協議:arp,rarp。
1.為什麼需要位址解析協議?
通常a主機向b主機進行傳送資料,a主機一般是知道b主機的ip位址,光有乙個ip位址就可以傳送資料嗎?不是的,在網路介面層,位於區域網內部的主機都是通過mac位址進行通訊的,所以我們就應該能把給定的ip位址轉為mac位址,位址解析協議就是來解決這個問題的。
2.如何通過位址解析協議根據對方主機的ip位址獲取對方主機的mac位址?
其實位址解析協議arp就是為網路介面層進行服務的,因為網路介面層進行資料傳輸的時候才需要對方的mac位址。然而,我們必須在網路層完成位址解析協議,因為ip位址只對網路層以及以上的層是可見的,對網路層以下的層均是透明的。
arp資料報的格式:
有人說,乙太網首部的源位址、目的位址和arp位址應答中的源位址、目的位址是否有重複?答案是否。如果鏈路層不是乙太網,首部還是需要的。
a主機向b主機傳送資料,a主機的ip位址為ip1,硬體位址(mac位址)是m1,b主機的ip位址是ip2,硬體位址為m2(
未知)。通過b主機的ip位址得到b主機的硬體位址。
arp請求的資料報格式為:
目的主機收到arp請求之後,就會發出arp應答,應答的資料報情況是:
這個時候,兩台主機就可以進行通訊了。那麼問題又來了,下次a主機還要和b主機進行通訊(或者其他主機要給b主機進行傳送資料)的時候,還是需要進行arp協議獲取b主機的mac位址。所以,在網路層,就會存在乙個快取記憶體,用來儲存主機的ip位址到硬體位址的對映關係,所以,下次需要和b主機進行通訊的時候,只需要在arp快取記憶體中查詢b的硬體位址即可。但是,b的硬體位址也是一直都不變的嗎?如果有一次b的網路介面卡突然壞了,b馬上換了乙個,這時,b的硬體位址就改變了,所以arp快取中的資料就是無效資料,所以,arp快取中的資料也是需要不斷更新的。
可以通過arp -a命令來檢視當前的arp快取;也可以通過ifconfig命令檢視當前機子的ip位址和硬體位址。
注意:arp解決的是同乙個區域網內部ip位址和硬體位址的對映問題。如果源主機和目的主機不是在同乙個區域網內部,就無法進行位址的轉換(在arp請求的時候,只有區域網內部的所有主機才可以收到請求,所以此時的目的主機就無法收到arp請求),解決辦法:
路由器:是工作在網路層的裝置,具有交換機的功能。假設源主機和目的主機之間只需要乙個路由器r就可以。源主機傳送給目的主機的資料報通過路由器r來**,源主機需要將路由器的ip位址解析為硬體位址,然後把ip資料報發給路由器r,此時路由器r將目的主機的的ip位址解析為硬體位址,這樣也就實現了位址的轉換。
使用arp的幾種典型情況:
(1)傳送方是主機,接收方是同乙個區域網內部的其他乙個主機,此時傳送方的主機以廣播的形式在傳送方所屬的區域網內部發出arp請求,直接找到目的主機的硬體位址;
(2)傳送方是主機,接收方是不同網路中的其他主機,這時,傳送方主機通過路由器進行轉換;
(3)傳送方是路由器(r1),接收方是與該路由器r1直接相連的乙個網路中的主機,這時r1通過arp請求分組,找到接收方主機;
(4)傳送方是路由器r1,接受方是在不與r1直接相連的網路中,這時r1傳送請求,依次通過到達接收方主機的所有路由器,找到硬體位址。
反位址解析協議rarp:將mac位址轉換為ip位址,這個實現起來就沒有arp那麼複雜了,直接給已知硬體位址目的主機傳送資訊,直接可以獲取其ip位址。
如果我們將arp比喻為:問身份證號為******的同學的姓名(所有收到資訊的同學都看自己的身份證號是否和那個身份證號匹配,不匹配就不管了,匹配的同學說出自己的姓名);那麼rarp就是,問某某同學的身份證號(直接交到某同學,同學說出自己的身份證號),所以,後者實現起來比較容易。
計算機網路 網際層簡介
網際協議ip是tcp ip體系中兩個最主要的協議之一。也是最重要的網際網路標準協議之一。沒有一種單一的網路能夠適應所有使用者的需求。從一般的概念上來講,將網路互相連線起來要使用一些中間裝置。根據中間裝置所在的層次,可以有四種中間裝置 1 物理層使用的 器 2 資料鏈路層使用的網橋或橋接器 3 網路層...
計算機網路 網路層 ICMP網際控制協議
icmp報文主要是進行差錯報告和詢問報文 icmp差錯報告主要分四種 終點不可達 時間超過,ip資料報生存時間為0 引數問題 收到的資料報首部有字段不正確 改變路由 重定向 有更好的路由 路徑 icmp詢問報文有兩種 回送請求和回答,向乙個特定的主機傳送詢問,用於了解目的是否可到達,及其有關狀態。目...
計算機網路 計算機網路7層協議
人與人交流需要協議,例如使用同一語言,或者對方能明白的其他肢體語言 人與機器交流也需要協議,例如需要通過滑鼠或者鍵盤輸入,機器給予特定的輸出,例如列印執行某個程式 機器與機器交流更需要協議,計算機網路是由一系列的協議構成的,osi open system interconection 是開放型系統互...