<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 最大傳輸單元(Maximum Transmission Unit, MTU) 數據鏈路層傳輸的幀大小是有限制的,不能把一個太大的包直接塞給鏈路層,這個限制被稱為「最大傳輸單元(Maximum Transmission Unit, MTU)」 下圖是以太網的幀格式,以太網的幀最小的幀是 64 字節,除去 14 字節頭部和 4 字節 CRC 字段,有效荷載最小為 46 字節。最大的幀是 1518 字節,除去 14 字節頭部和 4 字節 CRC,有效荷載最大為 1500,這個值就是以太網的 MTU。因此如果傳輸 100KB 的數據,至少需要 (100 \* 1024 / 1500) = 69 個以太網幀。 ![](https://img.kancloud.cn/90/1f/901f503035fe8600bdd6bbdf81ca8e67_1734x438.png) 不同的數據鏈路層的 MTU 是不同的。通過`netstat -i`可以查看網卡的 mtu ## IP 分段 Pv4 數據報的最大大小為 65535 字節,這已經遠遠超過了以太網的 MTU,而且有些網絡還會開啟巨幀(Jumbo Frame)能達到 9000 字節。 當一個 IP 數據包大于 MTU 時,IP 會把數據報文進行切割為多個小的片段(小于 MTU),使得這些小的報文可以通過鏈路層進行傳輸 IP 頭部中有一個表示分片偏移量的字段,用來表示該分段在原始數據報文中的位置,如下圖所示 ![](https://img.kancloud.cn/69/0e/690ed6eb423451f1226cbe72fb9431d2_1844x526.png) ## 網絡中的木桶效應:路徑 MTU 一個包從發送端傳輸到接收端,中間要跨越很多個網絡,每條鏈路的 MTU 都可能不一樣,這個通信過程中最小的 MTU 稱為「路徑 MTU(Path MTU)」。 路徑 MTU 就跟木桶效應是一個道理,木桶的盛水量由最短的那條短板決定,路徑 MTU 也是由通信鏈條中最小的 MTU 決定。 ## TCP 最大段大小(Max Segment Size,MSS) TCP 為了避免被發送方分片,會主動把數據分割成小段再交給網絡層,最大的分段大小稱之為 MSS(Max Segment Size)。 MSS = MTU - IP header頭大小 - TCP 頭大小 在以太網中 TCP 的 MSS = 1500(MTU) - 20(IP 頭大小) - 20(TCP 頭大小)= 1460 當三次握手建立一個 TCP 連接時,通信的雙方會在 SYN 報文里說明自己允許的最大段大小。 **TSO(TCP Segment Offload)特性了,TSO 特性**是指由網卡代替 CPU 實現 packet 的分段和合并,節省系統資源,因此 TCP 可以抓到超過 MTU 的包,但是不是真正傳輸的單個包會超過鏈路的 MTU。 ## TCP 套接字選項 TCP_MAXSEG TCP 有一個 socket 選項 TCP_MAXSEG,可以用來設置此次連接的 MSS,如果設置了這個選項,則 MSS 不能超過這個值。 ### TCP_MAXSEG 的下界是 88 因為 TCP 頭包含了 20 字節的固定長度和 40 字節的可選參數,所以 TCP 頭的最大長度是 60,IP 頭最大長度也是 60。 為了保證在 TCP 頭占滿 60 字節、IP 頭占滿 60 字節的情況下,至少還能發 8 字節的數據,MSS 至少要等于 (MAX_IP_HDR + MAX_TCP_HDR + MIN_IP_FRAG) - (MIN_IP_HDR + MIN_TCP_HDR) = (60+60+8) - (20+20) = 88 字節。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看