【計算機網絡】第七章:[網絡層]網絡協議(Part1.網絡層首部)

傳輸文件時,爲了方便傳輸會把一個打得文件分成功好幾段,每段首部會加一個傳輸層首部。傳輸層首部裏很多字段定義和實現了傳輸層功能,網絡層同理,也由首部添加的字段來完成某些功能。所以首部又可以視作協議的代指。每一次都有每一層的協議,是因爲每一層都有固定的格式,首部都有不同功能的字段。
在這裏插入圖片描述
從傳輸層到網絡層到數據鏈路層,每一層都會增加首部。這整個過程我們稱爲封裝。因此我們如果想要了解計算機原理,就必須明白每層協議/首部字段代表的意義。
在這裏插入圖片描述
上圖中,網絡層協議裏。ARP爲IP協議提供服務,IP爲ICMP&IGMP協議提供服務。其中IP協議是所有動態路由協議的統稱(RIP,ISIS,OSPF等)。

網絡層首部

在這裏插入圖片描述
網絡層首部,固定部分20字節,這20字節是必須有的。我們先來說這固定部分。

固定部分:總計20字節,上圖中分成了5行,也就說每行4個字節(byte),換言之每行32bit。可以根據上圖的標識符看出,8/16/24就是分割四個字節的分界點。
也就說說:

組成部分 所佔字節
版本 4bit
首部長度 4bit
區分服務 1Byte
總長度 1Byte
標識 2Byte
標誌 3bit
片偏移 13bit
生存時間 1Byte
協議 1Byte
首部檢驗和 2Byte
源IP地址 4Byte
目標IP地址 4Byte
可選字段 -
填充字段 -
數據部分 實際不是隻有數據部分,還有上層協議(首部),只不過對於網絡層而言都是數據部分。

版本/首部長度

通過抓包工具來了解首部。版本,顧名思義,志表示第幾版。現在的網絡層協議中,只有IPv4和IPv6兩種。
首先,網絡層協議我們應該關注的是Internet Protocol這一項。
在這裏插入圖片描述

如圖,IPv6和v4的版本部分。
在這裏插入圖片描述
在這裏插入圖片描述

其中,關於首部長度:它的單位是4字節。也就說是4x該部分表示的數量的字節數,纔是首部的真正長度。4位二進制最大值是11112(1510)。所以一個網絡層首部的最大長度是15x4=60byte。其中20byte是必須有的,剩餘40byte是可以有也可以沒有的,根據填充部分和可變部分的需求增加。換言之,除去固有部分最多有40字節可以裝其他內容。
在這裏插入圖片描述
上圖捕獲的信息中,首部版本號和首部長度合計1字節用兩位十六進制表示,其中4和5就是416和516。版本號用4表示IPv4,而長度是計算出來的:5x4byte(基本單位)=20byte。

區分服務

在這裏插入圖片描述
區分服務:優先保障某一種網絡流量轉發,通過路由器緩存中的多個優先級隊列中的來保證某些服務流量。從而在網絡資源不富足的情況下保證某些網絡訪問通暢。

舉個例子:

虛擬 現實
視頻通話,如果家庭局域網內使用網絡的設備比較多,帶寬分配不均,而此時視頻通話就可能出現卡頓的情況,一旦網絡卡頓,就會出現對面聽不清你說什麼,自己聽不請對面說什麼,爲了規避這種現象,可以給視頻通話的流量增加一個Qos標記,帶有這個標記的流量進入優先隊列,配置路由器,路由器優先轉發帶這個標記的流量,從而保證視頻暢通。 排隊買票,退伍軍人/人大代表/老人等綠色通道代表着不同的優先級。在人大召開期間,人大代表有最高購票優先級,如果車站人非常多,且車站售票口不足的情況下,仍然優先售票給人數較少的人大代表。然後是退伍軍人,而普通人只能排長隊。這種措施保證了在人大召開期間,人大代表出行通暢,不會耽誤行程。

Qos配置需要至少在兩處進行配置。
1:發送端設備。設備爲這種流量添加Qos標記,來讓路由器優先轉發這種流量
2:路由器。路由器必須配置識別這種標記,然後纔會對其進行優先級隊列處理。如果只配置設備不配置路由,就好像你用一張紙條寫上10萬存款證明然後你去銀行取錢一樣,銀行根本不認;然而你從一張只差寫金額的支票上寫就是另一回事了。
3.(可選):接收端:如果只配置發送端這邊的組策略,那麼保證的是流量去向通暢,但是並不能保證來也通暢。如果剛好對面流量來這邊也堵了,那麼仍然會導致質量差。但是一般而言,流量更多是用於訪問web服務器等,服務器不可能單獨爲某個用戶啓用Qos而且一般的服務器性能及策略足夠好以至於很難出現線路擁堵情況。

下面我們通過配置組策略來實驗並通過抓包來觀察這1個字節。這裏實驗採用訪問網站時,優先轉發。
在這裏插入圖片描述
新建一個accessWeb的Qos的策略。

DCSP:我們給他寫的標記隨意即可(但是不可大於64)
在這裏插入圖片描述
應用程序選擇:如果是所有應用程序則滿足條件都加這個標記;我們也可以指定比如谷歌瀏覽器,360瀏覽器等某應用程序的某些流量質量保護。我添加的是36。這個數值除以4就是對應在十六進制裏的數字。這個不能隨便給,必須給4的倍數。
在這裏插入圖片描述
還可以限定IP的源和目的地來選擇定向質量保護。這裏選任意,因爲要測試WEB。
在這裏插入圖片描述
訪問網站通過的是TCP協議的80端口。
在這裏插入圖片描述
這樣配置完後,應該所有訪問web服務器的出口流量都加上了標記,但是回來的數據包是沒有標記的,因爲遠程網站沒有配置這個標記。
在這裏插入圖片描述

總長度

在這裏插入圖片描述
受限於數據鏈路層的幀長度,一個網絡層數據包需要被分片處理,被分割的小段會分別在加上網絡層首部進行傳輸。被分割的數據片段在接收端會重組,爲了明確哪些數據段是屬於哪個數據包的,需要對數據包進行標識。
在這裏插入圖片描述
雖說一個數據包最大可以承載65535字節,但是因爲裝成這麼大的數據包還得拆分,增加開銷,所以一般網絡層封裝時不會封裝出這麼大的包,一般不會超過最大傳輸單元的1500字節。

標識&標誌

在這裏插入圖片描述
標識:標識是一個編號,一個數據包分割出來的多個片段都有相同的編號,接收端收到數據包後根據標識來確認哪些片段是原本一個整體。
在這裏插入圖片描述
在這裏插入圖片描述
傳輸通暢時,根據數據包到來的先後,他們的標識也存在遞增+1的關係。


標誌:核心就是000三位,其中第一位是保留的沒用。第二位是0則表示允許分片,1則標識不可分片。第三位是0表示這是多個分片的最後一片,有了它就能夠組裝一個完整的數據包;第三位是1說明這是分片中的一片,不是最後一片。
實驗需要的命令:

ping -l 4000 允許拆分ping4000字節
ping -f  不允許分片
ping -f -l 4000 不允許拆分ping4000字節

ping -l 4000:
在這裏插入圖片描述
在這裏插入圖片描述
ping -f
在這裏插入圖片描述
ping -f -l 4000
在這裏插入圖片描述
設置了不可分片,但是又需要分片,此時矛盾,這種數據包不會從網卡發出,抓包工具也抓不到。

片偏移

在這裏插入圖片描述
片偏移量:用來記錄這是被分割的數據包的第多少位,從而知道分片的組裝順序。
在這裏插入圖片描述
用這個命令來發大數據包。觀察分段
在這裏插入圖片描述
在這裏插入圖片描述
片偏移量是370,370*8=2960,他是被分割的第2960字節開始的數據段。

生存時間TTL

佔8位二進制,也就說最大數值255.這個數值代表網絡中能經過多少路由器,沒經過一個路由器,這個數值就會-1.當數值爲0,路由器就會丟掉這個數據包並返回一個ICMP的錯誤報告。
在這裏插入圖片描述
一般來說很少會轉發數據包過20個路由器,哪怕訪問國外也不用這麼多。
在這裏插入圖片描述
如圖,我的系統是win系統所以默認TTL128,訪問內網直接通不過路由所以TTL不變,訪問谷歌8.8.8.8返回了TTL115說明過了128-115個路由器。而訪問其他內網因爲沒有權限是訪問不到的,訪問百度返回了TTL48,說明使用的linux系統。(因爲上面說了基本不會出現轉發20個路由的情況,所以是和這個值比較近的linux,現在主流系統是linux和win)
在這裏插入圖片描述
路由追蹤:ping -i可以設定TTL值,1就是TTL值只有1。換句話說過1個路由,那個路由器就會返回給你錯誤信息,因爲TTL先-1後轉發,所以這個數據包在第一個路由器就會被丟掉。那麼TTL不斷的增加,就可以知道過得這些路由端口分別是什麼了。中間可以看到i7請求超時而i8是TTL耗盡,這是因爲路由器可以手動設置禁止返回ICMP包,如果這樣設置的話,則無法用這種方法追蹤路由,但是下一個路由器沒有這樣設置,所以可以知道下一個的路由端口。
在這裏插入圖片描述
在這裏插入圖片描述
TTL的主要作用就是限制環路和默認路由導致數據包死循環永不消失的情況。在數據包裏,TTL協作Time to Live
在這裏插入圖片描述

協議/首部校驗和

協議字段表明了協議的類型,TCP/UDP/ICMP……
在這裏插入圖片描述
在這裏插入圖片描述
首部校驗和只校驗首部有無變化, 不校驗數據部分。網絡層首部的總長度、標誌、片偏移、生存時間等會隨着數據包分片而變化,首部校驗和的功能就是用來檢驗首部傳輸過程中有無錯誤。

在這裏插入圖片描述
最後就是目標和源IP,要求每個4byte。32bit。意義很明確不再贅述。要求這張圖表的每一部分能夠明確並反饋到數據包分析中。
在這裏插入圖片描述

組成部分 內容
版本 IPv4
首部長度 20 byte
區分服務 0
總長度 40 byte
標識 0x4639=17977
標誌 010
片偏移 0
生存時間 52
協議 TCP
首部檢驗和 0x9686
源IP地址 223.203.200.43
目標IP地址 192.168.1.113

網絡層的協議是由網路層首部不同字段來代表的意思。網絡層設備都可以看懂這些字段然後進行相應的處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章