Three bugs in the slirp code have an enormous adverse effect on networking performance. 1. The maximum TCP segment size for data flowing from the VM to the host is unnecessarily limited to 512 bytes. 1460 bytes is the appropriate value for Ethernet. 2. TCP acknowledgements are being delayed unnecessarily, in violation of the TCP Congestion Control RFC (2581). There is no reason to delay TCP acknowledgements (and certainly no reason to give special treatment to packets consisting of a single ESC character, as the code does now!). 3. qemu sleeps soundly while packets back up in slirp's buffers. slirp socket fds should be added to the main qemu select() loop to avoid unnecessary delays. As Ken Duda mentioned in an earlier thread, measurements with a simple Python script indicate that the attached patch accelerates TCP throughput from about 2 megabytes/sec to 9 megabytes/sec, in both directions. I'm sure many folks would benefit from this improvement; please let me know if there is anything I can do to help nudge it into CVS. --Ed