計算機網路各層主要協議報文格式詳解

2021-09-25 01:55:58 字數 3364 閱讀 3212

首先我們可以看到在應用層,根據當前的需求和動作,結合應用層的協議,有我們確定傳送的資料內容,我們把這些資料放到乙個緩衝區內,然後形成了應用層的報文data。

主要協議如下:

這些資料通過傳輸層傳送,比如tcp協議。所以它們會被送到傳輸層處理,在這裡報文打上了傳輸頭的包頭,主要包含埠號,以及tcp的各種制資訊,這些資訊是直接得到的,因為介面中需要指定埠。這樣就組成了tcp的資料傳送單位segment。tcp是一種端到端的協議,利用這些資訊,比如tcp首部中的序號確認序號,根據這些數字,傳送的一方不斷的進行傳送等待確認,傳送乙個資料段後,會開啟乙個計數器,只有當收到確認後才會傳送下乙個,如果超過計數時間仍未收到確認則進行重發,在接受端如果收到錯誤資料,則將其丟棄,這將導致傳送端超時重發。通過tcp協議,控制了資料報的傳送序列的產生,不斷的調整傳送序列,實現流控和資料完整。

主要有協議如下:

然後待傳送的資料段送到網路層,在網路層被打包,這樣封裝上了網路層的包頭,包頭內部含有源及目的的ip位址,該層資料傳送單位被稱為packet。網路層開始負責將這樣的資料報在網路上傳輸,如何穿過路由器,最終到達目的位址。在這裡,根據目的ip位址,就需要查詢下一跳路由的位址。首先在本機,要查詢本機的路由表,在windows上執行route print就可以看到當前路由表內容,有如下幾項:

active routes default route persistent route.

整個查詢過程是這樣的:

(1) 根據目的位址,得到目的網路號,如果處在同乙個內網,則可以直接傳送。

(2) 如果不是,則查詢路由表,找到乙個路由。

(3) 如果找不到明確的路由,此時在路由表中還會有預設閘道器,也可稱為預設閘道器,ip用預設的閘道器位址將乙個資料傳送給下乙個指定的路由器,所以閘道器也可能是路由器,也可能只是內網向特定路由器傳輸資料的閘道器。

(4) 路由器收到資料後,它再次為遠端主機或網路查詢路由,若還未找到路由,該資料報將傳送到該路由器的預設閘道器位址。而資料報中包含乙個最大路由跳數,如果超過這個跳數,就會丟棄資料報,這樣可以防止無限傳遞。路由器收到資料報後,只會檢視網路層的包裹資料,目的ip。所以說它是工作在網路層,傳輸層的資料對它來說則是透明的。

如果上面這些步驟都沒有成功,那麼該資料報就不能被傳送。如果不能傳送的資料報來自本機,那麼一般會向生成資料報的應用程式返回乙個「主機不可達」或 「網路不可達」的錯誤。

以windows下主機的路由表為例,看路由的查詢過程

active routes:

network destination netmask gateway inte***ce metric

0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10

192.168.1.101 255.255.255.255 127.0.0.1 127.0.0.1 10

192.168.1.255 255.255.255.255 192.168.1.101 192.168.1.101 10

224.0.0.0 240.0.0.0 192.168.1.101 192.168.1.101 10

255.255.255.255 255.255.255.255 192.168.1.101 192.168.1.101 1

default gateway: 192.168.1.2

network destination 目的網段

netmask 子網掩碼

gateway 下一跳路由器入口的ip,路由器通過inte***ce和gateway定義一調到下乙個路由器的鏈路,通常情況下,inte***ce和gateway是同一網段的。

inte***ce 到達該目的地的本路由器的出口ip(對於我們的個人pc來說,通常由機算機a的網絡卡,用該網絡卡的ip位址標識,當然乙個pc也可以有多個網絡卡)。

預設閘道器,當乙個資料報的目的網段不在你的路由記錄中,那麼,你的路由器該把那個資料報傳送到**!預設路由的閘道器是由你的連線上的default gateway決定的,也就是我們通常在網路連線裡配置的那個值。

通常inte***ce和gateway處在乙個子網內,對於路由器來說,因為可能具有不同的inte***ce,當資料報到達時,根據network destination尋找匹配的條目,如果找到,inte***ce則指明了應當從該路由器的那個介面出去,gateway則代表了那個子網的閘道器位址。

第一條 0.0.0.0 0.0.0.0 192.168.1.2 192.168.1.101 10

0.0.0.0代表了預設路由。該路由記錄的意思是:當我接收到乙個資料報的目的網段不在我的路由記錄中,我會將該資料報通過192.168.1.101這個介面傳送到192.168.1.2這個位址,這個位址是下乙個路由器的乙個介面,這樣這個資料報就可以交付給下乙個路由器處理,與我無關。該路由記錄的線路質量 10。當有多個條目匹配時,會選擇具有較小metric值的那個。

第三條 192.168.1.0 255.255.255.0 192.168.1.101 192.168.1.101 10

直聯網段的路由記錄:當路由器收到發往直聯網段的資料報時該如何處理,這種情況,路由記錄的inte***ce和gateway是同乙個。當我接收到乙個資料報的目的網段是192.168.1.0時,我會將該資料報通過192.168.1.101這個介面直接傳送出去,因為這個埠直接連線著192.168.1.0這個網段,該路由記錄的線路質量 10 (因inte***ce和gateway是同乙個,表示資料報直接傳送給目的位址,不需要再轉給路由器)。

查詢到下一跳ip位址後,還需要知道它的mac位址,這個位址要作為鏈路層資料裝進鏈路層頭部。這時需要arp協議,具體過程是這樣的,查詢arp緩衝,windows下執行arp -a可以檢視當前arp緩衝內容。如果裡面含有對應ip的mac位址,則直接返回。否則需要發生arp請求,該請求包含源的ip和mac位址,還有目的地的ip位址,在網內進行廣播,所有的主機會檢查自己的ip與該請求中的目的ip是否一樣,如果剛好對應則返回自己的mac位址,同時將請求者的ip mac儲存。這樣就得到了目標ip的mac位址。

主要協議如下:

將mac位址及鏈路層控制資訊加到資料報裡,形成frame,frame在鏈路層協議下,完成了相鄰的節點間的資料傳輸,完成連線建立,控制傳輸速度,資料完整。

主要協議如下:

物理線路則只負責該資料以bit為單位從主機傳輸到下乙個目的地。

在上面的過程中,可以看到有乙個路由表查詢過程,而這個路由表的建立則依賴於路由演算法。也就是說路由演算法實際上只是用來路由器之間更新維護路由表,真正的資料傳輸過程並不執行這個演算法,只檢視路由表。這個概念也很重要,需要理解常用的路由演算法。而整個tcp協議比較複雜,跟鏈路層的協議有些相似,其中有很重要的一些機制或者概念需要認真理解,比如編號與確認,流量控制,重發機制,傳送接受視窗。

參考部落格

計算機網路各層協議

網路層次 協議名稱 功能簡介 應用層dhcp dynamic host configuration protocol 動態主機分配協議 使用 udp協議工作。主要用途2個 1.給內部網路或網路服務 商自動分配 ip位址 2.給使用者或者內部網路管理員作為對所有計算機做 管理的手段 實現即插即用聯網 ...

計算機網路 HTTP報文

一 http報文 http 報文是在 http 應用程式之間傳送的資料塊。這些資料塊以文字形式的元資訊 meta information,描述了報文的和含義 開頭,後面跟著可選的資料部分。http 報文在客戶端 和伺服器之間流動。二 報文的流動 1.報文流入源端伺服器 http 使用術語流入 inb...

計算機網路 協議

網路檔案服務 在nfs的應用中,本地nfs的客戶端應用可以透明地讀寫位於遠端nfs伺服器上的檔案,就像訪問本地檔案一樣。snmp network management protocol 簡單網路管理協議 能夠使網路管理員提高網路管理效能,及時發現並解決網路問題以及規劃網路的增長 smtp mail ...