[vbox-dev] NAT/slirp low outbound speed from guest's to remote hosts

Mattias Lindblad matlin at gmail.com
Mon Mar 17 23:23:27 GMT 2008

I am also a bit frustrated by this issue.

I have done some testing on my Linux host with Windows XP and Solaris 10 as
guest systems. From Windows, my results are similar to Jakob's. Somewhere around
100 kbps to an external host on the same LAN. However, from Solaris I get at
least 3 Mbps, which isn't good, but perhaps acceptable (from the host OS to the
same remote host I get 12 Mbps).

I tried to monitor the outgoing network traffic and made an interesting
observation: When doing my bandwidth tests from the windows guest, there are
several occurences of five second pauses in the communication. A tcpdump excerpt
could look like

23:46:06.053519 IP > P 15965:17413(1448) ack 1
win 46 <nop,nop,timestamp 3006721 297376310>
23:46:06.053520 IP > P 17413:17869(456) ack 1
win 46 <nop,nop,timestamp 3006721 297376311>
23:46:06.053529 IP > . ack 17413 win 317
<nop,nop,timestamp 297376311 3006721>
23:46:06.053533 IP > . ack 17869 win 340
<nop,nop,timestamp 297376311 3006721>
23:46:11.037485 IP > P 17869:18933(1064) ack 1
win 46 <nop,nop,timestamp 3007969 297376311>
23:46:11.037581 IP > . ack 18933 win 362
<nop,nop,timestamp 297376810 3007969>

( is the host computer and is the remote host)

I did also observe that if I attached an strace to the VirtualBox process, I
sometimes, but not always, got a lot better outgoing bandwith. When monitoring
the  process with strace, I also noticed that when the communication resumed
after the pauses, the send() system calls were issued by a different thread than
before the pause. 
Without looking at the source or doing any advanced debugging, my guess would be
 that this is some kind of threading/locking issue. 


More information about the vbox-dev mailing list