我正在调查在寡妇上运行的软件(客户端)的问题,该软件(客户端)将数据上传到在 Linux 上运行的控制器(服务器)。软件一次上传1024
字节,并等待应用层ACK
(send and wait
)。但是,一些客户在通过调制解调器上传文件时遇到了一些问题,因为TCP packets
会出现碎片。我试图在没有调制解调器的情况下重现相同的行为。我尝试MTU
使用以下方法将控制器的设置为 500:
ifconfig eth0 mtu 500 up
但这并没有强制数据包碎片化(在wireshark中观察到)。当我MTU
使用设置 in windows时也会发生同样的情况
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)