我可以使用 netcat 强制使用更高的 TCP 段大小吗?

网络工程 ipv4 通讯协议 linux 碎片化
2021-08-04 09:17:09

我正在使用 netcat 将随机数据从 A 发送到 B,两台 Linux 机器都在以太网网络上,中间有一个路由器。出于教学目的,我想在路由器(Cisco 1811,基本映像)上强制进行 IP 分段。我首先将出站路由器接口上的 MTU 降低到 500(而不是原来的 1500),但随后路由器发送 ICMPfragmentation needed消息,A 相应地降低了 TCP 段大小。然后我直接在 B 上设置了较低的 MTU,但随后 B 通告了较低的最大段大小并且 A 接受了它,从而导致没有碎片。

我可以让 A 在协商中忽略 B 的 MSS 并使用 1500 定制的段大小吗?或者您是否看到了另一种在路由器上强制 IP 分段的方法?

出于实际原因,我无法重新编译内核或在机器上安装任意软件,我必须使用那里的东西(我希望是合理的标准网络工具集)。

1个回答

我使用了以下配置:

  • A 和 B 上的标准 MTU;
  • 路由器(B端)的MTU降低到500;
  • /proc/sys/net/ipv4/ip_no_pmtu_disc 在发送方 (A) 上设置为 1。

然后发送方坚持 1500 字节段,路由器分段。