TCP-MSS文档,问题及实验
TCP-MSS介绍
MSS(Maximum Segment Size,最大报文段大小)的概念是指TCP层所能够接收的最大段大小,该值只包括TCP段的数据部分,不包括选项部分,MSS的概念只存在于TCP中
2.MSS与MTU之间的转化
MSS = MTU - 40(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)
3.影响MSS的因素
MSS的值受两个值的约束:
1.TCP三次握手时会在数据报文的option字段携带MSS的值(默认为本地网段的MTU-40),两端会对MSS的值进行协商,取其中较小一方的值作为使用的MSS的值。
2.该值和整个传输路径的最小 MTU 减去40 的小者,而最小MTU 由 PMTU 确定。
4.PMTU
PMTU简单的讲就是一种MTU的协商机制,用于避免报文分片。PMTU设置后,数据包将不能分片,PMTU会根据发送的数据动态的进行MTU大小的调整。
具体机制如下:当一个数据包大小大于路径MTU时,PMTU机制会将它丢弃,在重传时进行MTU的调整。
5.需要对MSS进行修改的几种假设场景
1.受到TCP攻击,在不改变MTU的情况下对数据包进行拦截。
2.配合其他服务的使用,适当调整MSS。
3.其他场景
6.Linux下修改MSS的几种方法
1.使用Iptables对TCP-MSS进行修改以及针对MSS安全策略的部署
2.通过修改路由,达到修改MSS的目的
7.问题
1.实际操作中,仅修改s