1. TCP中的MSS和窗口怎麼理解
1、TCP提供的是一種面向連接的,可靠的位元組流服務,TCP提供可靠性的一種重要的方式就是最大報文段長度(MSS)。
通過MSS,應用數據被版分割成TCP認為最適合發送的數據塊,由TCP傳遞給IP的信息單位稱為報文段或段(segment)。代表一個TCP socket的結構體struct tcp_sock中有多個成員用於確定應用數據被分割成最大為多大的數據塊較為合適。
2、窗口:微機知系統中一種新的操作環境。把微機的顯示屏幕劃分成許多的框,即為道窗口。
每個窗口負責顯示和處理某一類信息。用戶可隨意在任一窗口上工作,並在各窗口間交換信息。計算機中有專門的窗口管理軟體來管理窗口操作。
窗口大小,即為微機的顯示屏幕劃分成許多的框的大小。

(1)網路編程設置tcpmss擴展閱讀:
TCP建立連接過程中,MSS協商之後得到MSS最大值的作用:
1、MSS(Max Segment Size) 是TCP數據包每次能夠傳輸的最大數據分段,其中並不包括TCP首部。而且MSS只出現在來syn報文段中。
一般來說,MSS的值在不分段的情況會越大越好,比如一個外出介面的MSS值是MTU減去IP和TCP首部長度。
2、窗自口大小是個動態的值,因為TCP是用的滑zd動窗口協議,傳輸數據的速率都是根據窗口大小來調整的。可以把窗口理解為一個緩存,而且窗口大小跟MSS是沒有任何關系的。
3、窗口是為了控制傳輸過程中的速度。而MSS只是控制TCP報文段大小。
2. TCP里的MSS和窗口怎麼理解
兩邊匹配 取最小後,MSS 512 窗口1024 ,根據這個收發。。。。。
這個是設置最大分段長度參數的,一般不需要設置,如果想設置可以設置為1460。如果是PPPOE鏈路建議改為1452.
4. TCP的擁塞控制
TCP連接開始建立時,傳統情況下,初始的擁塞窗口CongWindow一般設置為1個MSS(maximum segment size,最大分段大小),而慢啟動閾值ssthresh可以設置為一個較高的值,如接收窗口大小。在慢啟動時, 每收到一個確認ACK ,就把擁塞窗口加一個MSS:
當擁塞窗口超過慢啟動閾值ssthresh時,就必須進入擁塞避免階段。
在擁塞避免階段,不是每收到一個ACK就把擁塞窗口增加1個MSS,而是每個RTT時間把擁塞窗口增加1個MSS,這樣擁塞窗口隨時間緩慢地呈線性增長,直至出現擁塞。RTT是動態變化的,在TCP的實現中經常採用一種變通的方法,即每收到一個不重復的ACK時,擁塞窗口按照如下公式增加:
不管是在慢啟動階段還是在擁塞避免階段,如果TCP檢測到擁塞,也就是說TCP報文段超時需要重傳,慢啟動閾值ssthresh就縮減為擁塞窗口的一半,並且擁塞窗口恢復到原來的初始窗口大小,即為1個MSS,然後進入慢啟動過程,重新探測目前網路的狀況。也就是:
如果TCP在超過一段時間(重傳超時時間)沒有收到TCP報文段,就在重新開始傳輸數據時進入慢啟動過程,也就是說擁塞窗口為1個MSS。
5. 如何"設置"TCP傳送中的最大包長度
通過查資料了解到在Linux 環境下,可以通過setsockopt設置IPPRO_TCP層的
TCP_MAXSEG對象來改變TCP最大數據段的大小MSS.通過設置,可以用戶定義的MSS傳送數據.
但是MSDN中明確指出TCP_MAXSEG設置是不支持的.也就是說在Windows環境下不能通過這種方式來實現MSS的設置.
大家都知道,一般而言MSS的值是在TCP連接建立時由雙方協商確定的,一般無須人為設定.可能Windows因為考慮到這個問題,因此沒有支持TCP_MAXSEG.
6. 為什麼GRE隧道的TCP MSS也要設置1436
由於GRE是將一個數據包封裝到另一個數據包中,因此你可能會遇到GRE的數據
報大於網路介面所設定的數據包最大尺寸的情況。接近這種問題的方法是在隧道介面上配置ip tcp adjust-mss 1436。
另外,雖然GRE並不支持加密,但是你可以通過tunnel key命令在隧道的兩頭各設置一個密鑰。這個密鑰其實就是一個明文的密碼。
由於GRE隧道沒有狀態控制,可能隧道的一端已經關閉,而另一端仍然開啟。這一問題的解決方案就是在隧道兩端開啟keepalive數據包。它可以讓隧道一端定時向另一端發送keepalive數據,確認埠保持開啟狀態。如果隧道的某一端沒有按時收到keepalive數據,那麼這一側的隧道埠也會關閉。
7. 在乙太網中,TCP的MSS值為多少
MSS=MTU-20-20 註:第1個20是IP首部長度;第1個20是TCP首部長度
例:乙太網的MTU為1500位元組,則主機在建立TCP連接時通報的MSS是1460位元組;
1500-20-20=1460
8. MSS的TCP選項
選項位於報文段的最後,並且長度必須為位元組的整數倍。選項欄位是一個選項的列表,可包含多個選項,每個選項可出現在任何位元組的邊界上。列表中的選項包括兩種格式:一種是單位元組選項;另一種是可變長的選項。單位元組選項由一個位元組的選項類型(Option Kind)構成。變長選項則包含了1位元組的選項類型,1位元組的選項長度(Option Length)和一個可變長的選項數據(Option data)。TCP協議定義的選項主要包括:
(1)選項類型0,單位元組選項,表示選項列表的結束。
(2) 選項類型1,單位元組選項,無操作,該選項可用在兩個選項之間,用於選項結構的對齊。
(3)選項類型2,最大報文段長度(MSS,Maximum Segment Size)選項。
(4)選項類型3,窗口擴大因子選項。
(5)選項類型8,時間戳選項。
除此之外,選項類型為4、5、6、7的用於ACK選擇和回顯。其中回顯選項已經被時間戳選項所替代。類型11、12、13的選項用於TCP事物(T/TCP)。

9. 華三路由器tcpmss值設置多少
MTU改為1492以下。
因為1492再加上報頭什麼的就達到1500以上了,而大於1500以上的報文是會被路由器丟棄的。TCPMSS是H3C路由器裡面有的。它主要是針對網頁的TCP連接的。一般在網路設置或者是WAN介面設置裡面有。
10. 你好問一下MTU改多少好啊 還有那個TCPMSS在哪裡設置啊
在本機打開dos窗口,執行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是網關IP地址,1472是數據包的長度。請注意,上面的參數是「-l」(小寫的L),而不是「-1」。 如果能ping通,表示數據包不需要拆包,可以通過網關發送出去。 如果出現: Packet needs to be fragmented but DF set. 表示數據包需要拆開來發送。此時,減少數據包長度,再執行上面的ping命令。從1400到1472之間多試幾次,就能找到合適的數據包長度了。把數據包長度加上數據包頭28位元組,就得到MTU的值。 如果檢測到網關的MTU值是1500,不需要修改。 如果網關有防火牆ping不通,可以試試直接把MTU設為1400。 4、如何修改本機的MTU? 修改方法如下: (1)、運行regedit (2)、瀏覽到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 如圖2 (3)、Interfaces下有多個子項,每個子項對應一個網卡。請按如下方法選擇網卡: (a)確定本機用來連接Internet的網卡或撥號連接的IP,如192.168.0.19; (b)用滑鼠點擊Interfaces上的子項,查看鍵值列表中的IPAddress項; (c)如果IPAddress的鍵值與(a)中的IP相同,即192.168.0.19,則該子項就是要找的網卡。 (4)、進入該子項,在右邊的窗口裡按滑鼠右鍵,選擇「新建」->「雙位元組值」,輸入名稱「MTU」,按回車。再用滑鼠雙擊「MTU」,彈出修改窗口: 如圖3: 填入MTU的值。填寫前請先把基數設為十進制。 設置好後,需要重啟機器才能生效。
