TCP報文的最大負載和報文的最小長度
轉載:
https://www.cnblogs.com/zhuzhu2016/p/5797534.html
- MTU:最大傳輸單元,乙太網的MTU為1500Bytes
- MSS:最大分解大小,為每次TCP資料包每次傳輸的最大資料的分段大小,由傳送端通知接收端,傳送大於MTU就會被分片。
- MSS預設最小為536B,最小的MTU576B,MSS = MTU - IP頭(20B)- TCP頭(20B)
TCP最小資料長度為1460Bytes
乙太網的最大資料幀是1518Bytes
乙太網的幀頭148Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B
幀尾校驗4Bytes
資料域只剩:1518-14-4 = 1500Bytes
TCP資料包大小 1500 - IP頭(20B)- TCP頭(20B) = 1460B 這也是最大的MSS
(UDP資料包 1500 - IP頭(20B) - UDP頭(8B) = 1472B)
TCP最大負載65535-40B
TCP報文段的最大負載為65495位元組,因為每個資料段必須適合IP的載荷能力,不能超過65535位元組,IP頭20B,TCP包頭20B,
故最大負載為65535- 20-20=65495B
ack欄位大小為84B
前導碼 8 + 目的MAC 6 + 源MAC 6 + 型別 2 + IP首部 20 + TCP首部 20 + 使用者資料 0 + 填充字元 6 + CRC 4 + 分組間隙 12 = 84B
TCP:64B
乙太網幀首部 14B:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B
乙太網幀尾部 4B
IP 20B
TCP 20B (UDP 8B)
填充 6B (UDP填充 18B)
一共58B,不夠64B ,填充6B。
TCP最小長度
是預設的MSS產生536B,還是ACK的長度84B,還是TCP總長(加IP,MAC)的64B
相關文章
- TCP報文傳送工具TCP
- C#ModBus Tcp 報文解析C#TCP
- Qt中使用TCP接收報文QTTCP
- 理解 TCP(二):報文結構TCP
- 通過nginx進行udp報文負載均衡NginxUDP負載
- 3.5 ICMPv6 報文和報文型別型別
- 0227-TCP 請求報文TCP
- 一篇非常好的TCP報文傳送講解TCP
- SuperSocket 1.6 建立一個簡易的報文長度在頭部的Socket伺服器伺服器
- 【圖文並茂】一文講透Dubbo負載均衡之最小活躍數演算法負載演算法
- HTTP 報文結構和內容HTTP
- 計算機網路 之 TCP協議報文結構計算機網路TCP協議
- RTP協議的報文結構協議
- 一文讀懂“負載均衡”負載
- HTTP報文 概覽HTTP
- HTTP報文結構HTTP
- HTTP請求報文HTTP
- HART報文詳解
- JSON報文展示JSON
- 英語碩士論文的開題報告模板範文
- 解析帶有反斜槓的json報文報錯JSON
- 二叉樹的最小高度,最大高度(深度)和寬度二叉樹
- HTTP/1.1報文詳解HTTP
- tcpdump擷取MySQL報文TCPMySql
- CanOpen報文詳細分析
- JavaScript解析SECS GEM報文JavaScript
- HDLC報文簡單分析
- Nginx 的 TCP 負載均衡介紹NginxTCP負載
- MQTT-釋出與訂閱的報文MQQT
- C# 使用特性的方式封裝報文C#封裝
- Tengine TCP 負載均衡TCP負載
- 幀、報文、報文段、分組、包、資料包的概念區別
- IP報文頭部圖解圖解
- dubbo請求報文例項
- 網路報文初步認識
- UDP報文觀測作業UDP
- DNS 請求報文詳解DNS
- DNS 響應報文詳解DNS