我找到了答案。 由于在Linux内核中监视tcp连接,我们无法复制tcp状态。
使用Mininet重现您的设置后,我无法重现该问题。
我用了 ovs-appctl ofproto/trace 跟踪Open vSwitch在接收TCP数据包时的行为:
ovs-appctl ofproto/trace
ovs-appctl ofproto/trace s1 in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02,tcp,nw_src=10.0.0.1,nw_dst=10.0.0.2
输出不包括任何序列号修改。
我使用Wireshark比较了端口2和3上的数据包。在我的情况下,它们具有完全相同的ACK号。
这三点让我相信你的问题不是来自Open vSwitch。 ACK编号修改是否来自其他软件?您是在Mininet还是在物理主机上运行实验?