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



本文转自 Linux_woniu 51CTO博客,原文链接:http://blog.51cto.com/linuxcgi/1980972

相关文章
|
网络协议 网络性能优化 算法
iptables深入解析-mangle篇
      讲了filter、ct、nat 现在剩下最后一个知名模块mangle,但是自身虽然知道内核支持修改数据包的信息,它主要用在策略路由和qos上.我们就具体分析一下.      mangle表主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(T...
7779 0
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
36743 2
|
消息中间件 自然语言处理 JavaScript
[5.0] How RocketMQ Proxy Startup?
本文分享RocketMQ Proxy是如何启动的,代码基于: https://github.com/apache/rocketmq/tree/release-5.0.0
2743 0
[5.0] How RocketMQ Proxy Startup?
|
Docker 容器 数据格式
Docker 修改镜像源地址
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80417198 我的Docker 版本为 1.
42285 0
|
存储 安全 Linux
谈谈优雅的钩子--bpftrace
bpftrace是一个内核跟踪工具,简单来说就是在函数上挂个钩子,挂上钩子后就可以将函数的入参和返回值取出来再放入程序进行二次编程,最终能让程序按照我们的意图来对函数进行观测。
|
12月前
|
存储 运维 安全
|
网络协议 Linux 网络安全
Iptables 命令完整指南
【8月更文挑战第20天】
4150 0
Iptables 命令完整指南
|
12月前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
660 56
|
编解码 固态存储 数据挖掘
通俗解读人脸检测框架-RetinaFace
通俗解读人脸检测框架-RetinaFace
385 2
|
弹性计算 运维 Kubernetes
为什么客户端发送SYN,服务端回ACK,没有回SYN,ACK
本文介绍了客户端发生SYN报文但是服务端回复ACK报文没有回复SYN,ACK报文的场景,深入分析了内核代码处理机制以及使用复现验证
3750 1