首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么使MSS减少了42?

是什么使MSS减少了42?
EN

Server Fault用户
提问于 2021-09-02 18:35:51
回答 1查看 399关注 0票数 2

我正在Azure运行多个am。VMs在NSG子网中运行。NIC不使用NSG,我们不使用加速网络。

我注意到,当VM使用TCP与同一子网的另一个VM对话时,SYN数据包中的MSS值将减少42。这意味着,如果我向同一网络的另一个VM发送带有MSS=876的TCP,则另一个VM将捕获具有MSS=834的TCP:

客户端:

代码语言:javascript
复制
18:49:27.526527 IP 10.56.142.25.49614 > 10.56.142.108.ssh: Flags [S], seq 3092614737, win 17520, options [mss 876,sackOK,TS val 2936204423 ecr 0,nop,wscale 7], length 0
18:49:27.528398 IP 10.56.142.108.ssh > 10.56.142.25.49614: Flags [S.], seq 1710658781, ack 3092614738, win 28960, options [mss 1418,sackOK,TS val 390195731 ecr 2936204423,nop,wscale 7], length 0
18:49:27.528430 IP 10.56.142.25.49614 > 10.56.142.108.ssh: Flags [.], ack 1, win 137, options [nop,nop,TS val 2936204425 ecr 390195731], length 0

服务器:

代码语言:javascript
复制
18:49:27.527362 IP 10.56.142.25.49614 > 10.56.142.108.ssh: Flags [S], seq 3092614737, win 17520, options [mss 834,sackOK,TS val 2936204423 ecr 0,nop,wscale 7], length 0
18:49:27.527682 IP 10.56.142.108.ssh > 10.56.142.25.49614: Flags [S.], seq 1710658781, ack 3092614738, win 28960, options [mss 1460,sackOK,TS val 390195731 ecr 2936204423,nop,wscale 7], length 0
18:49:27.529167 IP 10.56.142.25.49614 > 10.56.142.108.ssh: Flags [.], ack 1, win 137, options [nop,nop,TS val 2936204425 ecr 390195731], length 0

我们使用多个NVA,我们的SYN数据包通过多个跳传送,我们实际上看到MSS被多次减少,我们最初测量到减少了84次,在某些情况下我们还测量到了138次(实际上不是42倍),这意味着我们降低了10%以上的网络效率。

我花了一些时间研究各种网络设备是如何与MSS一起玩的。在大多数情况下,通过将MSS固定为静态值或路径MTU,将MSS设置为固定数量。PaloAlto将使用相对于网络接口的MTU的“调整”,这是一个固定的值。Arista将允许您在入口或出口流量上设置上限值,也就是绝对值。一些防火墙供应商,如PaloAlto,将在DoS攻击和SYN被激活时减少MSS,但MSS将是这种情况下的8种可能值之一。

我认为这种MSS -= 42机制破坏了TCP:如果客户端支持大帧并发送MSS为8860,则Azure中的服务器将收到8876,它本身也会回复1330,但客户机会同意数据包应该有1246字节的有效负载,而服务器将发送1330字节的有效负载。

最大的问题是,我们有“偶然”的交通情况。在快速路一侧没有正确地进行夹紧,但是由于这-42,MSS实际上被简化为一个“适合”的值,直到数据包被路由的方式发生了一些微小的变化,您突然发现在某个地方出现了一个错误配置。

知道怎么解释这个减价吗?我相信这种行为在任何地方都没有记录。

编辑

只是读RFC879

MSS可以在数据流的各个方向上完全独立地使用。结果可能是两个方向上的最大尺寸有很大的不同。

所以按照RFC的说法它看起来是合法的。不过,一种奇怪的行为。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-09-03 10:59:57

与物理网络不同,SDN网络为封装头(GRE)消耗额外的“字节”。可见的in是CA(客户地址),但也有PA(提供者地址)需要在云提供商中路由。因此,您将看到更少的MSS可用,因为云提供商将额外的TCP夹紧在下面,以实现后端路由。

CA-PA解释(超V)

https://docs.microsoft.com/en-us/windows-server/networking/sdn/technologies/hyper-v-network-virtualization/hyperv-network-virtualization-technical-details-windows-server

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

https://serverfault.com/questions/1076459

复制
相关文章

相似问题

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