在Linux或Windows中更改MTU无效

时间:2014-11-06 08:09:33

标签: linux windows tcp mtu

我正在研究在寡妇上运行的软件(客户端)的问题,该软件将数据上传到在linux上运行的控制器(服务器)。软件一次上传1024个字节,并等待应用程序层ACKsend and wait)。但是,有些客户在通过调制解调器上传文件时遇到了一些问题,因为TCP packets会变得支离破碎。我试图在没有调制解调器的情况下重现相同的行为。我尝试使用:

将控制器的MTU设置为500
ifconfig eth0 mtu 500 up

但是这并没有强制数据包碎片化(在wireshark中观察到)。当我使用

在Windows中设置MTU时,会发生同样的情况
netsh interface ipv4 set subinterface <my_interface> mtu=500 store=persistent

我非常确定我选择了正确的界面。知道为什么改变MTU没有效果吗?

编辑: 如果我在Windows上运行MTU发现,我会得到:

MTU path scan to 172.20.35.101, ttl=64, limit=48
# 16 processing - best MSS 1472 (estimated MTU 1500) [pPPPPpPppPpppppp]


        #1 MSS IN RANGE     1 <==  1471 ==>  1472
        #2 MSS EXCEEDED  1473 <== 14911 ==> 16384

然而,控制器的ifconfig显示MTU为576!

ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 30:18:CF:00:10:CC
          inet addr:172.20.35.101  Bcast:172.20.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:576  Metric:1
          RX packets:5281739 errors:1 dropped:0 overruns:0 frame:1
          TX packets:184845 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:378840649 (361.2 MiB)  TX bytes:19017453 (18.1 MiB)

0 个答案:

没有答案