2021年6月20日 星期日

(不想探究) 沒了它. 我的Server居然連不上Yahoo....

Iptables下TCPMSS使用
 
mtu是網絡傳輸最大報文包。
mss是網絡傳輸數據最大值。
mss加包頭數據就等於mtu.
 
簡單說拿TCP包做例子。報文傳輸1400字節的數據的話,那麼mss就是1400,再加上20字節IP包頭,20字節tcp包頭,那麼mtu就是1400+20+20. 當然傳輸的時候其他的協議還要加些包頭在前面,總之mtu就是總的最後發出去的報文大小。 mss就是你需要發出去的數據大小
 
1.MSS: Maxitum Segment Size 最大分段大小
2.MSS最大傳輸大小的縮寫,是TCP協議裡面的一個概念。
3.MSS就是TCP數據包每次能夠傳輸的最大數據分段。
 
為了達到最佳的傳輸效能TCP協議在建立連接的時候通常要協商雙方的MSS值,這個值TCP協議在實現的時候往往用MTU值代替(需要減去IP數據包包頭的大小20Bytes和TCP數據段的包頭20Bytes)所以往往MSS為1460。通訊雙方會根據雙方提供的MSS值得最小值確定為這次連接的最大MSS值。

--set-mss value #設置特定MSS值
--clamp-mss-to-pmtu #根據MTU自動調整MSS
 
例如:
 
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
這條規則的目的就是改變TCP MSS以適應PMTU(Path MTU)
 
一種是把mss設置為一個固定值:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS --set-mss 1460

沒有留言:

張貼留言

(Centos-7s) 更新: 網卡名稱改回 eth0 的方法

將 CentOS 7 網卡名稱修改, 用回 Eth0 的方法:   1) # vi /etc/sysconfig/grub 內容大概是這樣:   GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release...