我正在研究在寡妇上运行的软件(客户端)的问题,该软件将数据上传到在linux上运行的控制器(服务器)。软件一次上传1024
个字节,并等待应用程序层ACK
(send 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)