TCP IP詳解之IP協議ARP協議和RARP協議

2021-06-18 00:59:43 字數 3622 閱讀 9450

把這三個協議放到一起學習是因為這三個協議處於同一層,

arp協議用來找到目標主機的

ethernet

網絡卡mac

位址,ip

則承載要傳送的訊息。資料鏈路層可以從

arp得到資料的傳送資訊,而從

ip得到要傳輸的資料資訊。

1.ip協議

ip協議是

tcp/ip

協議的核心,所有的

tcp,

udp,

imcp

,igcp

的資料都以

ip資料格式傳輸。要注意的是,

ip不是可靠的協議,這是說,

ip協議沒有提供一種資料未傳達以後的處理機制

--這被認為是上層協議

--tcp

或udp

要做的事情。所以這也就出現了

tcp是乙個可靠的協議,而

udp就沒有那麼可靠的區別。這是後話,暫且不提

1.1.ip

協議頭

如圖所示

挨個解釋它是教科書的活計,我感興趣的只是那八位的

ttl欄位,還記得這個欄位是做什麼的麼

?這個字段規定該資料報在穿過多少個路由之後才會被拋棄

(這裡就體現出來

ip協議包的不可靠性,它不保證資料被送達

),某個

ip資料報每穿過乙個路由器,該資料報的

ttl數值就會減少

1,當該資料報的

ttl成為零,它就會被自動拋棄。這個欄位的最大值也就是

255,也就是說乙個協議包也就在路由器裡面穿行

255次就會被拋棄了,根據系統的不同,這個數字也不一樣,一般是

32或者是64,

tracerouter

這個工具就是用這個原理工作的,

tranceroute的-m

選項要求最大值是

255,也就是因為這個

ttl在

ip協議裡面只有

8bit。

現在的ip

版本號是

4,所以也稱作

ipv4

。現在還有

ipv6

,而且運用也越來越廣泛了。

1.2.ip

路由選擇

當乙個ip資料報準備好了的時候,

ip資料報

(或者說是路由器

)是如何將資料報送到目的地的呢

?它是怎麼選擇乙個合適的路徑來"送貨

"的呢?

最特殊的情況是目的主機和主機直連,那麼主機根本不用尋找路由,直接把資料傳遞過去就可以了。至於是怎麼直接傳遞的,這就要靠

arp協議了,後面會講到。

稍微一般一點的情況是,主機通過若干個路由器

(router)

和目的主機連線。那麼路由器就要通過

ip包的資訊來為

ip包尋找到乙個合適的目標來進行傳遞,比如合適的主機,或者合適的路由。路由器或者主機將會用如下的方式來處理某乙個

ip資料報 如果

ip資料報的

ttl(

生命週期

)以到,則該

ip資料報就被拋棄。

搜尋路由表,優先搜尋匹配主機,如果能找到和

ip位址完全一致的目標主機,則將該包發向目標主機

搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要

「子網掩碼

(1.3.)」

的協助。如果找到路由器,則將該包發向路由器。

搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號

(第一章有講解

)路由器,如果找到路由器,則將該包發向路由器。

搜尋陸游表,如果以上都失敗了,就搜尋預設路由,如果預設路由存在,則發包

如果都失敗了,就丟掉這個包。

這再一次證明了,

ip包是不可靠的。因為它不保證送達。

1.3.

子網定址 ip

位址的定義是網路號

+主機號。但是現在所有的主機都要求子網編址,也就是說,把主機號在細分成子網號

+主機號。最終乙個

ip位址就成為

網路號碼

+子網號

+主機號。例如乙個

b210.30.109.134

。一般情況下,這個

ip位址的紅色部分就是網路號,而藍色部分就是子網號,綠色部分就是主機號。至於有多少位代表子網號這個問題上,這沒有乙個硬性的規定,取而代之的則是子網掩碼,校園網相信大多數人都用過,在校園網的設定裡面有乙個

255.255.255.0

的東西,這就是子網掩碼。子網掩碼是由

32bit

的二進位制數字序列

,形式為是一連串的

1和一連串的

0,例如:

255.255.255.0(

二進位制就是

11111111.11111111.11111111.00000000)

對於剛才的那個

b類位址,因為

210.30

是網路號,那麼後面的

109.134

就是子網號和主機號的組合,又因為子網掩碼只有後八

bit為

0,所以主機號就是

ip位址的後八個

bit,就是

134,而剩下的就是子網號碼

--109。

2. arp協議

還記得資料鏈路層的乙太網的協議中,每乙個資料報都有乙個

mac位址頭麼

?我們知道每一塊乙太網卡都有乙個

mac位址,這個位址是唯一的,那麼

ip包是如何知道這個

mac位址的

?這就是

arp協議的工作。

arp(

位址解析

)協議是一種解析協議,本來主機是完全不知道這個

ip對應的是哪個主機的哪個介面,當主機要傳送乙個

ip包的時候,會首先查一下自己的

arp快取記憶體

(就是乙個

ip-mac

位址對應表快取

),如果查詢的

ip-mac

值對不存在,那麼主機就向網路傳送乙個

arp協議廣播包,這個廣播包裡面就有待查詢的

ip位址,而直接收到這份廣播的包的所有主機都會查詢自己的

ip位址,如果收到廣播包的某乙個主機發現自己符合條件,那麼就準備好乙個包含自己的

mac位址的

arp包傳送給傳送

arp廣播的主機,而廣播主機拿到

arp包後會更新自己的

arp快取

(就是存放

ip-mac

對應表的地方

)。傳送廣播的主機就會用新的

arp快取資料準備好資料鏈路層的的資料報傳送工作。

乙個典型的

arp快取資訊如下,在任意乙個系統裡面用

「arp -a」命令:

inte***ce: 192.168.11.3 --- 0x2

internet address physical address type

192.168.11.1 00-0d-0b-43-a0-2e dynamic

192.168.11.2 00-01-4a-03-5b-ed dynamic

都會得到這樣的結果。

這樣的快取記憶體是有時限的,一般是

20分鐘

(伯克利系統的衍生系統)。

TCP IP詳解之IP協議ARP協議和RARP協議

tcp ip 詳解之ip 協議arp 協議和rarp協議 把這三個協議放到一起學習是因為這三個協議處於同一層,arp協議用來找到目標主機的 ethernet 網絡卡mac 位址,ip 則承載要傳送的訊息。資料鏈路層可以從 arp得到資料的傳送資訊,而從 ip得到要傳輸的資料資訊。1.ip協議 ip協...

TCP IP協議 ARP詳解

本文主要講述了arp的作用 arp分組格式 arp快取記憶體 免費arp和 arp。應用接受使用者提交的資料,觸發tcp建立連線,tcp的第乙個syn報文通過connect函式到達ip層,ip層通過查詢路由表 如果目的ip和自己在同乙個網段 當ip層的arp快取記憶體表中存在目的ip對應的mac位址...

TCP IP詳解之 ARP協議 和 RARP協議

arp功能 從邏輯internet位址 ip位址 到對應的物理硬體位址 乙太網位址 之間的轉換 arp工作原理 1 首先每個主機都會在自己的arp緩衝區中建立乙個arp列表,以表示ip和mac間的對應關係 2 當源主機要發資料時,先檢查arp列表中是否有對應ip位址的目的主機的mac位址。若有則直接...