網路協議 ARP 位址解析協議

2021-09-28 22:36:01 字數 2429 閱讀 3610

由於網路層的ip協議呼叫了arp協議,因此通常將 arp 協議歸為網路層協議。

其訊息由資料鏈路層協議封裝,它是在同一區域網內部通訊的,從不跨網路節點路由。

因此,也可以認為 arp 協議是資料鏈路層協議。

建立tcp連線與arp的關係

應用接受使用者提交的資料,觸發tcp建立連線,tcp的第乙個syn報文通過connect函式到達ip層,ip層通過查詢路由表:

當ip層的arp快取記憶體表中不存在預設閘道器對應的mac位址時,則ip層將tcp的syn快取下來,傳送arp廣播請求預設閘道器的mac,收到arp應答之後,

將應答之中的《預設閘道器位址,對應的mac>對快取在本地arp快取記憶體表中,然後完成tcp syn的ip封裝,呼叫網路介面send函式(引數為ip packet和預設閘道器的mac)將資料提交給

網路介面,網路介面完成ethernet header + ip + crc的封裝,並傳送出去。

}arp的位置

osi模型有七層,tcp在第4層傳輸層,ip在第3層網路層,而arp在第2層資料鏈路層。高層對低層是有強依賴的,所以tcp的建立前要進行arp的請求和應答。

arp快取記憶體表在ip層使用。如果每次建立tcp連線都傳送arp請求,會降低效率,因此在主機、交換機、路由器上都會有arp快取表。建立tcp連線時先查詢arp快取表,

如果有效,直接讀取arp表項的內容進行第二層資料報的傳送;只有表失效時才進行arp請求和應答進行mac位址的獲取,以建立tcp連線。

(1)tcp/ip的32bit ip位址。僅知道主機的ip位址不能讓核心傳送資料幀給主機。

(2)網路介面的硬體位址,它是乙個48bit的值,用來標識不同的乙太網或令牌環網路介面。在硬體層次上,進行資料交換必須有正確的介面位址,

核心必須知道目的端的硬體位址才能傳送資料。

簡言之,就是在乙太網中,一台主機要把資料幀傳送到同一區域網上的另一台主機時,裝置驅動程式必須知道乙太網位址才能傳送資料。

而我們只知道ip位址,這時就需要採用arp協議將ip位址對映為乙太網位址。

要注意一點,一般認為arp協議只使適用於區域網。

arp協議是「address resolution protocol」(位址解析協議)

【逆位址解析協議rarp】

arp原理及流程

存在意義:在乙太網環境中,資料的傳輸所依懶的是mac位址而非ip位址,而將已知ip位址轉換為mac位址的工作是由arp協議來完成的。

在區域網中,網路中實際傳輸的是「幀」,幀裡面是有目標主機的mac位址的。在乙太網中,乙個主機和另乙個主機進行直接通訊,必須要知道目標主機的mac位址。

幀是在資料鏈路層傳輸的資料格式

ip&mac對映方式(arp所處的境地)

②動態對映:

}arp表(arp快取記憶體):

arp響應

情況二、z主機a和b不在同乙個區域網 主機a--路由器h--路由器j--主機b

點對點鏈路不使用arp協議。

|硬體型別16         			(例如1表示乙太網,還支援其他鏈路層協議)	   	  |  協議型別16 			(對ip協議這個欄位是0x0800)			 	    |  	32位=4位元組

|硬體長度8bit(用來定義實體地址的長度byte)|協議長度8bit(用來定義邏輯位址的長度)| 操作碼16 arp請求(1),arp響應(2),rarp請求3,應答4 | 32位=4位元組

|源硬體位址(實體地址=mac位址) ?(可變長度,對於乙太網這個欄位的長度是6位元組) | ?

|源邏輯位址(邏輯位址=ip位址) ?(可變長度,例如ipv4是4位元組) | ?

|目的硬體位址(實體地址=mac位址) ?(可變長度,對乙太網來說這個字段位6位元組。對於arp請求報文,這個欄位為全0,因為傳送方並不知道目標的硬體位址。) | ?

|目的邏輯位址(邏輯位址=ip位址) ?(可變長度,例如ipv4是4位元組) | ?

資料鏈路層的幀格式:

當pc1傳送的arp請求報文,以廣播報的形式傳送到區域網後,當pc2檢測到ip位址與自己的ip相同,就會傳送給pc1響應報文。

型別(2byte):802.3中表示資料長度,ethernet ii中表示幀型別。

比如0x0800表示後面的報文是ip協議報文,0x0806表示後面的報文是arp協議報文。

通常小於0x0800表示資料長度。

fcs欄位是為了校驗乙太網幀的正確性。在資料報填充完成後,回去通過演算法計算乙個值放到資料報的fcs欄位中。當接受端收到資料報後,會同樣使用演算法計算乙個值,

然後和crc欄位的值進行對比,檢視是否相同。如果不同則證明資料報被更改,如果相同則證明資料報並未被更改。

(使用wireshark抓包時,抓到的包為60 bytes。比乙太網幀的最小幀長掃了4 bytes,原因是因為wireshark抓包時不能抓到資料報最後的crc欄位。)

ARP協議 位址解析協議

網路層使用的是ip位址,但實際網路的鏈路上傳送資料幀時,最終還是必須使用該網路的硬體位址。arp快取記憶體 ip位址到硬體位址的對映表 那麼一台主機 a 是如何獲知本區域網內其他主機或路由的硬體位址的?主機a廣播arp請求分組 我的ip是 硬體位址是 請告知我ip位址為 主機的硬體位址。本區域網內的...

網路協議系列 一 ARP 位址解析協議

為什麼需要arp協議?我們在internat網路上傳輸資料時使用的是ip位址,但資料在到達目的 ip 位址所在的區域網,需要發給最終的主機時,需要知道目的主機的硬體位址。這時需要完成從ip位址到硬體位址的對映,這就是arp幹的活。arp過程 arp過程非常簡單,舉個列子即可。主機a 假設ip位址為1...

網路基礎 ARP位址解析協議

arp被稱為位址解析協議,它在區域網內部通過ip位址查詢到目標主機的mac位址。即arp協議完成了一次從ip位址到mac位址的轉化。因為在區域網中,如果源主機要和目的主機建立通訊關係,那麼源主機必須要知道目的主機的mac位址 即硬體位址 但是如果目的主機或者源主機是第一次進行通訊的,那麼源主機要怎樣...