mTCP DOS Logo

Performance Notes


One of the design goals of mTCP is to get very good performance without using a tremendous amount of memory for buffers or code.

I measure the performance of mTCP using two different methods. The first method is to use the mTCP FTP client which is a good real world test. FTP involves disk I/O so the results will vary greatly from machine to machine depending on the disk setup. Use these numbers to get an idea of what to expect on your hardware.

The second method is to use a test program that sends and receives data over a TCP/IP socket. The target of the test is a much faster machine that is also used to time the entire test. No disk I/O is done during the test and no processing is done on the data. This makes it a pure test of the TCP/IP code - the numbers from this test show the maximum that one can expect for performance.

All tests are conducted on a private network with minimal other traffic. All code is compiled the same way that you get it when you download mTCP.

Here are some FTP transfer rates that I have measured or have been reported to me:

Machine Adapter Hard Drive Send Rate
(KB/sec)
Recv Rate
(KB/sec)
Code Date OS and BUFFERS Notes
IBM PC XT (8088@4.77Mhz) 3Com 3C503 Original 10MB MFM hard drive 34.9 29.0 2011-05-30 PC DOS 3.3, BUFFERS=30 2MB file, standard buffer sizes (TCP 8KB, File 8KB)
IBM PC XT (8088@4.77Mhz) 3Com 3C503 Original 10MB MFM hard drive 35.1 29.9 2011-05-30 PC DOS 3.3, BUFFERS=30 2MB file, max buffer sizes (TCP 16KB, File 32KB)
IBM PS/2 Model 25 (8086@8Mhz) 3Com 3C503 20MB hard drive (standard) 52.3 47.9 2011-05-30 PC DOS 6.1, BUFFERS=30 8MB file, standard buffer sizes (TCP 8KB, File 8KB)
IBM PS/2 Model 25 (8086@8Mhz) 3Com 3C503 20MB hard drive (standard) 61.0 53.8 2011-05-30 PC DOS 6.1, BUFFERS=30 8MB file, max buffer sizes (TCP 16KB, File 32KB)
Wang AT Clone (80286@16Mhz) 3C509B-TPO IDE 353 388     (much older code; probably faster now)
AMD 80386@40Mhz, 128K L2 NE2000 IDE 383 546 2011-05-30 PC DOS 5.02, BUFFERS=30 32MB file, standard buffer sizes (TCP 8KB, File 8KB)
AMD 80386@40Mhz, 128K L2 NE2000 IDE 402 585 2011-05-30 PC DOS 5.02, BUFFERS=30 32MB file, max buffer sizes (TCP 16KB, File 32KB)
Pentium 133 Linksys 100 (PCI) Narrow SCSI on Adaptec 2940 1917 2122 2011-05-30 PC DOS 6.3, BUFFERS=30 12MB file, standard buffer sizes (TCP 8KB, File 8KB)
Pentium 133 Linksys 100 (PCI) Narrow SCSI on Adaptec 2940 2714 2411 2011-05-30 PC DOS 6.3, BUFFERS=30 12MB file, max buffer sizes (TCP 16KB, File 32KB)

Remember, FTP performance is highly dependent on your disk subsystem.

Here are the raw TCP/IP socket performance numbers:

Speedtest results
Machine Adapter Send Rate
(KB/sec)
Recv Rate
(KB/sec)
Code Date OS Notes
IBM PCjr (NEC V20@4.77Mhz) Xircom PE3-10BT 42.0 34.5 2011-05-30 PC DOS 3.3 4MB transfer, bi-directional parallel port, no hardware IRQ
IBM PCjr (NEC V20@4.77Mhz) Xircom PE3-10BT 41.3 39.0 2011-05-30 PC DOS 3.3 4MB transfer, bi-directional parallel port, IRQ 7
PCjr (4.77 NEC V20) WD8003 108.7 110.8 2011-05-30 PC DOS 3.3 4MB transfer, ISA card running on a ISA bus adapter
PCjr (4.77 NEC V20) NE1000 62.8 61.7      (not tested recently)
PCjr (4.77 NEC V20) 3Com 3C503 71.7 56.1      (not tested recently)
IBM PC XT (4.77 8088) Xircom PE3-10BT 40.0 22.9 2011-05-30 PC DOS 3.3 2MB transfer, parallel port set to standard (nibble) mode, IRQ 7
IBM PC XT (4.77 8088) NE1000 57.0 61.5 2011-05-30 PC DOS 5.02 2MB transfer
IBM PC XT (4.77 8088) 3Com 3C503 90.5 92.0 2011-05-30 PC DOS 3.3 2MB transfer
IBM PS/2 Model 25 (8086@8Mhz) Xircom PE3-10BT 91.0 53.5 2011-05-30 PC DOS 6.1 8MB transfer, parallel port set to standard (nibble) mode
IBM PS/2 Model 25 (8086@8Mhz) 3Com 3C503 153 157 2011-05-30 PC DOS 6.1 8MB transfer
IBM L40SX (80386SX) Xircom PE3-10BT 219 120 2011-05-30 PC DOS 6.3 8MB transfer
AMD 80386@40Mhz, 128K L2 NE2000 683 984 2011-05-30 PC DOS 5.02 32MB transfer
Pentium 133 LinkSys LNE100 4900 5913 2011-05-30 PC DOS 6.3 32MB transfer

Some fun observations:




Created August 29th, 2009, Last updated July 29th, 2011

(C)opyright Michael B. Brutman, mbbrutman at gmail.com