IP協議 ARP協議 RARP協議

2021-07-08 14:14:57 字數 2379 閱讀 6730

ip資料報

ip是tcp/ip協議族中最核心的協議,所有的tcp、udp、icmp、igmp資料都以ip資料報的格式傳輸。ip僅提供盡力而為的傳輸服務,如果發生某種錯誤,ip會丟失該資料,然後傳送icmp訊息給信源端。另外,ip資料報可以不按傳送順序接受。

ip資料報的格式如下:

前20位元組和緊接其後的選項部分是ip資料報的首部,前20個位元組是固定的,選項可有可無。首部的每一行是乙個32位字的單位,最高位在左邊,為0bit,最低位在右邊,為31bit。4位元組的32bit值按照以下次序傳輸:首先0-7bit,其次8-15位元,然後16-23bit,最後是24-31bit,這種傳輸次序稱為big endian位元組序(我們在c語言寫位操作的演算法時常用到該詞)。tcp/ip首部中的所有二進位制整數在網路中傳輸時都要求以這種次序,因此它又稱作網路位元組序,其他形式儲存的二進位制資料,如little endian格式,則必須在傳輸資料之前把首部轉化成網路位元組序。

首部長度是指首部佔32bit字的數目,因為4位的最大值為15,因此首部最長為60位元組,也即是說選項部分的最大值為40位元組,不夠4的倍數,要用0填充,使資料部分的起始位址為4的倍數。

總長度指整個ip資料報的長度,包括首部和資料部分,16bit,最長可達65535位元組。儘管理論上可以傳送乙個長達65535的ip資料報,但實際上還要考慮網路的最大承載能力等因素,標準的tcp/ip分組大小為576位元組,減去ip首部的20個位元組,tcp首部的20個位元組,路由協議頭的24個位元組,為512位元組,因此主機接受的資料報的資料部分一般不超過512個位元組。(ps:這點看的也不是太懂,網上很多人也有此疑問,謝希仁的計算機網路中寫的一次ip資料報最少576位元組,尼瑪這裡翻譯的是不超過576位元組,先往後看吧,說不定看到後面就豁然開朗了)。

這兩天差不多算是搞明白了,很多基於udp協議的應用之所以要求udp的資料部分不超過512個位元組(576-20-20),主要是考慮整個傳輸路徑上的效率,因為鏈路層為x2.5的網路的mtu為576個位元組,這基本也是各種鏈路層網路的最小mtu,大於這個值就不會產生分片,之所以建議不超過這個值應該是考慮到網路承載能力和傳輸效率、每台主機的接受能力等很多因素的權衡。當然書上也說,576只是建議值,實際上大於它也是可以的,只是這樣在遇到x2.5網路時可能產生分片。暫時是這麼理解的,不知道看到後面會不會有新的收穫。

第十一章中又有說:現在許多但不是所有的廣域網都可以處理大於512位元組的分組。

3個標誌位主要用來標識分片的ip資料報,片位移為分片的資料報的首個位元組偏離整個原始資料報的位置。

ip路由選擇

主機通過路由器和目的主機連線。主機通過ip資料報連線目的主機時,按照如下步驟搜尋(同一網路中的搜尋要經過arp協議將目的主機的ip位址解析為mac位址):

搜尋路由表,優先搜尋匹配主機,如果能找到和ip位址完全一致的目標主機,則將該包發向目標主機

搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需要子網掩碼的協助。如果找到路由器,則將該包發向路由器。

搜尋路由表,如果匹配同子網路由器失敗,則匹配同網號路由器,如果找到路由器,則將該包發向路由器。

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

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

子網掩碼

主機號再分成乙個子網號和主機號,便將乙個網路又劃分成了若干子網,子網掩碼與該子網中的ip位址相與,便得到該子網,另外,子網對於子網內部的路由器是不透明的,也就是說ip資料報傳到該網路的閘道器時,閘道器再將該資料報傳送到子網的預設路由器上,最後通過該路由器再交付給該主機。

arp協議和rarp協議

前面已經說過,arp協議只用在區域網中,它用來將ip位址解析為mac位址。區域網中的每個主機都有乙個arp快取,它儲存了最近發起的ip位址到mac位址的對映記錄,當該主機要向區域網中的某一主機傳送資料時,它會先從自己的快取中查詢,看是否存在目標ip位址,如果找到,就通過對映找到它的mac位址,從而傳送過去,如果沒有找到該目的ip位址,它就向該區域網內傳送乙個廣播,廣播中包含自己的ip位址、mac位址和目的主機的ip位址,區域網內的所有主機都會收到該廣播,但只有目的ip位址的主機會做出回應,並把自己的mac位址傳送給源主機,源主機收到後,在自己的arp快取中增加上該對映,並根據發來的mac位址將資料傳送給目的主機。

arp快取記憶體中的表項一般都要設定超時值,如果一段時間內沒有與某主機通訊,就將該主機對應的ip與mac之間的對映關係去掉,下次在需要通訊時,依然傳送廣播。

如果arp請求是從乙個網路的主機到另乙個網路的主機,那麼連線這兩個網路的路由器就可以回答該請求,這個過程成為arp**。

rarp協議則剛好相反,它將mac位址解析成為對應的ip位址,通常在dhcp中有整合,現在已很少單獨使用。

IP協議 ARP協議 RARP協議

主機通過路由器和目的主機連線。主機通過ip資料報連線目的主機時,按照如下步驟搜尋 同一網路中的搜尋要經過arp協議將目的主機的ip位址解析為mac位址 搜尋路由表,優先搜尋匹配主機,如果能找到和ip位址完全一致的目標主機,則將該包發向目標主機 搜尋路由表,如果匹配主機失敗,則匹配同子網的路由器,這需...

網路協議 IP協議 ARP協議 RARP協議

ip資料報 ip是tcp ip協議族中最核心的協議,所有的tcp udp icmp igmp資料都以ip資料報的格式傳輸。ip僅提供盡力而為的傳輸服務,如果發生某種錯誤,ip會丟失該資料,然後傳送icmp訊息給信源端。另外,ip資料報可以不按傳送順序接受。ip資料報的格式如下 前20位元組和緊接其後...

ARP協議以及RARP協議

我們都知道ip位址是不能直接用來通訊的。這是因為ip位址只是主機在抽象網路層中的位址。若要將網路層中的資料傳送給目的主機,則還需要傳到資料鏈路層變成mac幀後才能發到目的網路上。因此,不管網路層使用的是什麼協議,在實際網路的鏈路上傳輸時,最終還是必須使用硬體位址。由於ip位址只有32位,而 硬體位址...