關於網路傳輸中最大傳輸報文MTU的思考

2021-08-20 04:44:40 字數 729 閱讀 5468

一般tcp的書都會說在網路傳輸中最大傳輸報文mtu一般為1500位元組,但是在一次區域網的測試卻發現了如下問題:

首先從後兩張我們可以確定c/s兩端都是相互確認了mss為1460個位元組的,但是為啥第一張圖卻出了乙個2962位元組的包了呢,這明顯這是跟書上觀點相違背的。

經過一段痛苦的查究下,發現原來網絡卡存在乙個叫tso(tcp segment offload)的技術,該項技術是將部分的封包解包的處理工作交給了網絡卡,從而讓cpu減少部分包處理的工作。下面會說明網絡卡是否支援tso技術的區別:

不支援tso技術:

當上層tcp傳送的資料超過mss的時候,就會將上層tcp的資料分成若干個ip包然後向下**。

支援tso技術:

網絡卡支援tso技術時,tcp層會逐漸的加大mss(包大小超過mss位元組),當下層接收到這個大包時不會做分包而是直接下發給下一層,當到達網絡卡後網絡卡會將這個大的ip包拆分為n個包(小於等於mtu位元組的包)傳送出去,而接收端也是這樣處理,這樣就相當於把部分包的組裝工作給網絡卡去做(硬體的處理速度會比軟體快很多)。

TCP傳輸的單個報文最大位元組(MSS和MTU)

1448位元組是實際場景下,單個tcp包的實際運載能力。也就是說,實際場景下,上層呼叫send 1000kb 下層會把這1000kb封裝成多個tcp包進行傳送。單個tcp包每次打包1448位元組的資料進行傳送。詳細的tcp在傳輸情景wireshark截圖如圖1 圖1每個tcp包在理論上應該能打包更多...

網路傳輸(最大重疊次數)

網路上的資料傳輸是共用資料線的,當一台主機傳送傳輸請求時網路上有其他主機在傳送資料,就不能成功傳送只能等待。如果網路經常處於占用情況,平均等待時間過長,可能說明網路負載過重 拓撲結構不好或延時演算法有問題。為了檢測是否有這些問題,可以在伺服器之間傳送一些資料檢視響應時間。不過現在,我們姑且簡化問題,...

網路 傳輸層 TCP報文格式解析

1 為了提供可靠的資料傳輸,tcp報文首部欄位有較多的字段,tcp報文格式如下圖 圖2 tcp報文格式 16位源和目標埠 16位 用於多路復用 多路分解來自或送至上層應用的資料,可以這樣理解,埠用來標識同一臺計算機的不同程序。16位源埠號 source port 16 位的源埠字段包含初始化通訊的埠...