首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux下如何设置最大TCP最大分段大小?

Linux下如何设置最大TCP最大分段大小?
EN

Stack Overflow用户
提问于 2010-10-05 02:04:50
回答 5查看 38.3K关注 0票数 9

在Linux中,如何设置TCP连接允许的最大数据段大小?我需要为一个不是我编写的应用程序设置它(所以我不能使用setsockopt来设置)。我需要在网络堆栈中将其设置为高于mtu。

我有两个流共享相同的网络连接。一种是定期发送小数据包,这需要绝对最小的延迟。另一个发送大量数据--我使用SCP来模拟该链路。

我已将流量控制(tc)设置为最小延迟流量的高优先级。然而,我遇到的问题是,从SCP传来的TCP数据包最终的大小高达64K字节。是的,这些根据mtu被分解成更小的数据包,但不幸的是,这发生在tc对数据包进行优先排序之后。因此,我的低延迟数据包滞留在高达64K字节的SCP流量之后。

This article表示您可以在Windows上设置此值。

在Linux上有什么我可以设置的吗?我尝试过ip route和iptables,但它们在网络堆栈中的应用太少。我需要在tc之前限制TCP数据包的大小,以便它可以适当地确定高优先级数据包的优先级。

EN

回答 5

Stack Overflow用户

发布于 2012-11-01 02:42:08

您是否正在使用tcp分段将负载转移到nic?(您可以使用"ethtool -k $your_network_device“查看卸载设置。)据我所知,这是您将看到64k tcp数据包和设备MTU为1500的唯一方法。这并不能回答这个问题,但它可能有助于避免误诊。

票数 8
EN

Stack Overflow用户

发布于 2018-03-20 02:32:07

带有选项advmssip route命令有助于设置MSS值。

代码语言:javascript
复制
ip route add 192.168.1.0/24 dev eth0 advmss 1500
票数 6
EN

Stack Overflow用户

发布于 2010-10-05 09:46:02

通告的TCP MSS的上界是第一跳路由的MTU。如果你看到64k的数据段,那就说明第一跳路由的MTU太大了--你是在使用环回还是别的什么进行测试?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3857892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档