Socket MTU 和 DTLS 隧道

概述

最大传输单元(MTU)定义了无需分片即可传输的最大数据包大小。 MTU 设置有助于确定 Socket 和 PoP 之间的数据包流效率。 虽然以太网接口通常支持 1500 字节的 MTU,但 DTLS 开销会将隧道上的有效 MTU 减少到 1383 字节。 此行为会根据分片设置影响数据包的处理方式。

mtu_diagram.png

在“不分段” (DF) 设置(WAN接口) 的行为

DF 设置

当DF位设置后,Socket通过向发送方返回一个ICMP需要分段消息来处理超大数据包的WAN流量。 此消息包括可接受的 MTU 大小(例如 1383 字节),提示客户端相应地分片数据包。

DF 未设置

如果DF位没有设置,且WAN流量的数据包超过有效MTU,Socket会对数据包进行分段。 然后 PoP 将重新组装这些片段,并将完整数据包发送到目标。 此行为确保了连续性,但可能会对监控工具中的数据包丢失可见性产生影响。

Socket局域网端口和Jumbo框架

Cato不支持Socket局域网端口上的Jumbo框架。 当Socket在局域网端口收到大于1500字节的数据包时,它会检查“不分段” (DF) 位。

  • 如果DF位没有设置,Socket接受该数据包,并将其分段以符合1500字节限制。
  • 如果DF位已经设置,Socket会丢弃该数据包,并向发送方发送一个ICMP需要分段消息。

多个活跃 WAN 链路时的 MTU 行为

对于部署了多个活动 WAN 链路的 Socket 站点:

  • 下游(PoP 到 Socket):PoP 检查每个 WAN 链接可以无分片通过的最大数据包大小。 发现的最低 MTU 会被应用到所有下游隧道。

    例如,如果某个站点有两个 WAN 链接,其发现的 MTU 分别为 1450 字节和 1383 字节,则下游 MTU 将采用 1383 字节以确保所有链接上的一致传输。

  • 上行 (Socket 到 PoP):Socket 计算每条活跃链接的 MTU。 活跃链路中最小的 MTU 成为上行隧道的有效 MTU。

注意: 被动 WAN 链接不影响用于活动隧道的 MTU。

离线 流量

非云隧道(站点到站点)使用单独的 MTU 计算,并考虑 106 字节的开销。 这些隧道会定期自行运行 MTU 发现,与 Socket 到 PoP 的路径无关。

配置特定站点的 MTU

使用 Socket 的 WebUI 为 Socket 站点配置 MTU。 Socket 必须重新连接到 PoP 才能生效,这可能会中断所有流量。

要配置 Socket 站点的 MTU:

  1. 登录到站点的 Socket WebUI (参见 访问 Socket WebUI)。
  2. 转到 网络设置 选项卡并输入每个 WAN 链接的 MTU。

    Socket_MTU.png
  3. 点击 更新。 Socket 重新连接到 PoP 并更新 MTU。

注意事项:

  • PMTUD 数据包可能会触发明显的数据包丢失,特别是在有最小流量的被动链路上。
  • 从 Socket 版本 23.0.19445 开始,PMTUD 数据包不包含在数据包丢失指标中。
  • 可以设置自动应用到所有 Socket 站点的 MTU。 当您使用此自动 MTU 配置时,您不能为特定站点配置 MTU。

    有关为所有 Socket 站点设置 MTU 的更多信息,请联系 支持

这篇文章有帮助吗?

1 人中有 1 人觉得有帮助

0 条评论