Linux host 2.6.17.13 at 128.1.9.9, Windows XP SP2 client at 128.1.90.6 under vmware server 1.0.1 in same machine with bridged network.
root@LS09:~# ip route ls cache|grep 128.1.90.6
128.1.90.6 from 128.1.9.9 dev eth0
local 128.1.9.9 from 128.1.90.6 dev lo src 128.1.9.9
The Linux server realizes that the XP client can be reached via the loopback interface, hence it tries to send packets with higher than 1500 mtu. Those packets are lost and after a timeout it retries with standard MTU. This recurrs frequently, killing TCP performance.
Here's a brief snippet of the cited activity from tcpdump -i eth0:
10:51:06.591903 IP 128.1.9.9.139 > 128.1.90.6.1034: . 52760:55680(2920) ack 917 win 65535 NBT Session Packet: Session Message
10:51:07.075657 IP 128.1.9.9.139 > 128.1.90.6.1034: . 52760:54220(1460) ack 917 win 65535 NBT Session Packet: Session Message
10:51:07.264188 IP 128.1.90.6.1034 > 128.1.9.9.139: . ack 54220 win 64240
I've tried disabling TSO at the client, with no apparent effect.
Any suggestions?
Here's the vmx file, in case there's any clue in there:
#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "4"
scsi0.present = "TRUE"
memsize = "256"
ide0:0.present = "TRUE"
ide0:0.fileName = "Windows XP Professional 2.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "/usr/lib/vmware/isoimages/windows.iso"
ide1:0.deviceType = "cdrom-image"
floppy0.fileName = "/dev/fd0"
Ethernet0.present = "TRUE"
displayName = "Windows XP Professional 2"
guestOS = "winxppro"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
powerType.powerOff = "soft"
powerType.powerOn = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
usb.present = "FALSE"
floppy0.startConnected = "FALSE"
ide0:0.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d ae ba 24 b8 b8 f1-b8 55 31 0b 47 2b 07 18"
uuid.bios = "56 4d ae ba 24 b8 b8 f1-b8 55 31 0b 47 2b 07 18"
checkpoint.vmState = ""
ethernet0.generatedAddress = "00:0c:29:2b:07:18"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "FALSE"
workingDir = "."
ide1:0.startConnected = "FALSE"
autostart = "poweron"
autostop = "softpoweroff"