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

2021-06-29 08:59:53 字數 2377 閱讀 2705

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中有整合,現在已很少單獨使用。

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

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

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

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

IP協議 ARP協議 RARP協議

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