簡介
本檔案介紹TCP MSS調整的概念和組態,並討論最大傳輸單元(MTU)的概念,以及對於封包大小較大的網站,如何防止封包舍棄。
作者:Richika Jain,思科TAC工程師。
必要條件
需求
思科建議您瞭解乙太網路上的點對點通訊協定(PPPoE)。
採用元件
本文檔中的資訊基於通用裝置。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
設定
MTU是一個情況下協定可以傳輸的最大資料長度。例如,預設情況下,乙太網介面的MTU大小為1500位元組,這不包括乙太網幀頭和幀尾,這意味著該介面不能承載任何大於1500位元組的幀。此圖直觀地顯示了此概念:
如果檢視幀內部,您會看到20位元組的IP報頭+ 20位元組的TCP報頭,剩下的1460位元組是可以在一個幀中傳輸的負載。這稱為TCP MSS。
如果在傳輸路由器上沒有執行其他封裝,來源裝置可能會使用最大負載長度1460位元組,而沒有任何封包分段/捨棄的潛在風險。這是在來源主機和目的地主機之間的TCP三次握手階段協商的。但是,當傳輸中的路由器執行額外的封裝時,它會新增額外的標籤報頭,這最終會增加退出傳輸路由器的幀的大小。介面的最大MTU將取決於硬體平台,但IEEE 802.3標準要求的最小MTU為1500位元組。
PPPoE需要額外8位元組,並將乙太網路MTU中繼為1492,如果主機上的有效MTU未變更,主機和伺服器之間的路由器可以終止TCP作業階段。建議在PPPoE配置中使用此命令IP TCP ADJUST-MSS 1452。
如果來源裝置建立一個TCP MSS為1460位元組的完整大小封包,則轉送路由器可能會捨棄/分段該封包。這不利於我們的網路效能,例如您瀏覽網站時出現的問題。因此,為了容納具有較大資料包大小的網站,您可以從源裝置縮小可能的最大TCP MSS大小(如1452位元組)。如果路由器在TCP握手時沒有向源和目的地發出訊號,則最佳TCP MSS可能會產生丟棄/分段問題。
當您瀏覽所有網站時可能不存在此問題,但可以通過某些網站看到此問題。T其原因在於,它建立的到達它們的資料包大小(取決於介於兩者之間的硬體)。 對於將建立較大資料包大小的網站,如果不使用ip tcp adjust-mss命令,則會丟棄任何較大的資料包。
若要排解瀏覽某些網站時發現的問題,應在指向LAN介面的介面上設定命令IP TCP ADJUST-MSS 1452。
1.啟用
2.配置終端
3.介面型別編號
4. Ip tcp adjust-mss max-segment-size //調整通過路由器的TCP SYN資料包的MSS值。max-segment-size引數是最大段大小(以位元組為單位)。範圍為500到1460。
5. IP mtu bytes //設定介面上傳送的IP資料包的MTU大小(以位元組為單位)。
6.結束
驗證
使用本節內容,確認您的組態是否正常運作。
步驟1.
驗證TCP MSS調整的配置。
interface ethernet1/1
ip address 10.0.0.1 255.0.0.0
ip tcp adjust-mss 1452
duplex half
步驟2.
從路由器A Telnet到路由器B。
telnet 10.0.1.2
Trying 10.0.1.2...
TCP: sending SYN, seq 886170752, ack 0
TCP0: Connection to 1.0.1.2:23, advertising MSS 536
tcp0: O CLOSED 1.0.1.2:23 4.0.0.1:11008 seq 886170752
OPTS 4 SYN WIN 4128
步驟3.
觀察路由器B上的調試輸出。
tcp0: I LISTEN 4.0.0.1:11008 1.0.1.3:23 seq 886170752
OPTS 4 SYN WIN 4128
TCP0: state was LISTEN -> SYNRCVD [23 -> 4.0.0.1(11008)]
TCP0: Connection to 4.0.0.1:11008, received MSS 1452, MSS is 1452
TCP MSS值將調整為設定值1452。
疑難排解
目前尚無適用於此組態的具體疑難排解資訊。