網路協議 IP

2021-10-07 15:58:54 字數 3241 閱讀 4467

資料鏈路層的主要作用是在互連同一種資料鏈路的節點之間程序包(幀)傳遞,一旦跨越多種資料鏈路,就需要借助網路層。網路層可以跨越不同的資料鏈路,即使是在不同的資料鏈路上也能實現兩端節點之間的資料報傳輸。

如何抵達目的地,網路層的路由技術,主要實現路徑的選擇與優化

不可靠:丟了就丟了

無連線:不維護狀態,不保證報文到達順序

版本(version)

長度4bit,ip的所有版本號在下面**中:

首部長度(header length)

長度4bit,表示ip首部的大小,單位為4位元組(32位元)。對於沒有可選項的
ip包,該值為5。即當沒有可選項時,ip首部的長度為20位元組(4×5=20)。

區分服務(tos,type of service)

長度8bit,8位中前3bit代表ip優先順序,中間4bit分別**如下含義,4bit中只能設定其中1bit,最後1bit必須置0。

然而幾乎所有的網路都無視這些字段(tos不用,但是ip優先順序是用的)。這不僅僅是因為在符合質量要求的情況下按其要求傳送本身的功能實現起來十分困難,還因為若不符合質量要求就可能會產生不公平的現象。因此,實現tos控制變得極其複雜。

不過已有人提出將tos欄位本身再劃分為dscp和ecn兩個欄位的建議。(ip優先順序只提供8種型別,dscp是它的擴充套件)

差分服務**點,是tos(type of service)的一部分。現在統稱為diffserv,用來進行質量控制。

位數分配如下所示:dscp占用6位,ecn占用2位。

詳細區分如下圖所示:

其中,af為確保**,ef為加速**,be為盡力服務。af11一般為ftp,ef一般為語音服務。

顯式擁塞通告,用來報告網路擁堵情況。

當兩端支援ecn時,它將資料報標為ect(0)或ect(1)。如果分組穿過乙個遇到阻
塞並且相應路由器支援ecn的活動佇列管理(aqm)佇列(例如乙個使用隨機早期檢測, 即red的佇列),可以將**點更改為ce而非丟包。這種行為就是"標記",其目的是通知接收端即將發生擁塞。在接收端,該擁塞指示由上層協議(傳輸層協議)處理, 並且需要將訊號回傳給傳送端,以通知其降低傳輸速率。


因為ce指示只能由支援它的工層協議有效處理,ecn只能配合上層協議使用。例如tcp協議,它支援阻塞控制並且有方法將ce指示回傳給傳送端。

16bit,表示 ip首部和資料部分合起來的總位元組數,所以ip包的最大長度為65535(2^32)位元組。雖然還不存在能夠傳輸最大長度為65535位元組的鏈路,但是ip有分片處理,ip自己都認為可以傳入65535。

16bit,用於分片重組,同乙個分片的標識值相同,不同分片的標識不同。另外,如果id相同,如果目標位址、源ip或者協議不同,也是不同分片。

3bit,表示分片的含義,具體含義如下表所示:

13bit,用來標識被分片的每個分段相對於原始資料的位置,第乙個分片的值為0。由於只有13位,最多可以表示8192(2^13)個相對位置。單位為8位元組,因此最大可以表示原始資料8*8192 = 65535位元組的位置。

8bit,原意是以秒為單位記錄當前包在網路上應該生存的期限。

但是,實際中指可以中轉多少個路由器的意思。沒經過乙個路由器(代表通過了乙個網路),ttl會減1,直到變成0則丟包。

8bit,表示ip首部的下乙個首部隸屬於哪個協議。

各個協議在下面**獲取:

16bit,也叫ip首部校驗和。只校驗資料報的首部,不校驗資料,用來確保ip資料報不被破壞。

校驗過程為:

將16位值為0,然後以16bit為單位劃分ip首部,並用1補數計算所有16位字的和,最後將所得到這個和的1補數賦給首部校驗和字段。

32bit,表示傳送端ip位址

32bit,表示接收端ip位址

長度可變,一般只在進行實驗或診斷使用。包含下面資訊:

在有可選項的情況下,首部長度可能不是32bit的整數倍,所以通過填充0,調整為32bit的整數倍(因為首部長度以4位元組為單位計算的)

存放上層協議資料,將上層協議的首部也作為資料處理。
ping命令提供帶-r選項。當使用該選項時,會使用ip中的記錄路由選項,源端主機生成rr選項(-r 5),中間路由器對rr選項處理,以及把icmp回顯請求中的rr清單複製到icmp回顯應答中。因為ip首部長度欄位為4bit,所以整個ip首部最長只能包含15個4位元組的字(60個位元組),首部固定長度已用去20位元組,rr選項再用去3個位元組,只剩下37個位元組,每個ip位址要用4個位元組儲存,只能放9個ip位址。

記錄路由選項結構如下:

code代表ip選項型別,rr選項為7,len是rr選項總位元組長度,最大為39。ptr為指標字段,存放下乙個ip位址位置,所以雖然現在用了39,但是ptr的值為40,rfc791裡規定該選項記錄出介面的ip。當前請求的len和-r 後指定的引數相關,下圖是引數為5的情況。

源站選路(source routing)指由傳送者指定路由,有以下兩種形式:

網路層協議 IP協議

重點掌握 1.版本 ip協議的版本,通訊雙方使用過的ip協議的版本必須一致,目前使用最廣泛的ip協議版本號為4 ipv4 2.首部長度 單位是 32位 4個位元組 比如首部長度為 24個 位元組,這裡就是 6 3.服務型別 一般不適用,取值為0 4.總長度 指首部加上資料 的總長度,單位為 位元組 ...

網路層 IP協議

定址和路由 傳遞服務 資料報分段和重組 固定部分為20位元組 一行4位元組,5行 可變部分最大為40位元組 則首部最大60位元組。下圖為真實抓包所得結果 version對應版本 佔4bit,指ip協議的版本。如果為ipv6則版本號為6,即0110。header length對應首部長度 佔4bit,...

網路協議之IP

首先我們肯定知道 在windows下我們通過ipconfig命令可以獲知ip資訊 在linux系統下我們通過ifconfig ipp addr命令來或者ip資訊,這兩個命令的而不同主要是因為linux系統自帶的兩個不同的工具導致的 32位的ip位址主要分為以上5類。a b c類被劃分為兩部分 一部分...