VOGONS


First post, by ltning

User metadata
Rank Member
Rank
Member

Hi,

my first post around here, so do forgive me if I'm asking the obvious or in the wrong place.
Since last summer I've been building a few retro-rigs here, partially from components I've found at my dad's house, partially from ebay and such:

  • One P4-based machine with GUS PnP, SB AWE64 Gold and onboard Intel NICs
  • One Pentium 233 MMX with GUS Classic, SB Pro 2 and 3Com 3c905 NIC
  • One dual Pentium 200 MMX with GUS Extreme, SB AWE64 Gold and 3c905 NIC

All of them use PATA/SATA-to-SD adapters, and disk I/O is decent (on a level that would have given me wet dreams when I was playing with this kind of hardware last time). I'm running some DOS, some OS/2, and some FreeBSD on these.

Common to all of them - and particularly the 3Com NICs - is that network speed under DOS is absolutely abysmal. I cannot seem to get past around 15-30KByte/s. This is puzzling since I'm getting significantly higher speeds in other OSes - pretty near wire speed, in fact - and I have confirmed that the negotiated speed is 100Mbit/s. I'm connected to a gigabit switch (and yes, I've tried other switches - but since it's working fine from e.g. OS/2 this is unlikely to be relevant).

Tools used to test include ncftp and rsync. I'm using packet driver only, with mTCP DHCP.EXE run on startup.
Packet driver used on the 3Com-equippet machines is 3C90XPD.COM version 5.2.6, 45.824 bytes. I've tried various combinations of options (disable ParalleTasking, disable flow control, PCI latency)

Anyone have any ideas what's holding it back? Are there other file transfer tools (using mTCP) I could/should use that works better?

Thanks all, for a wonderful forum packed with useful information!
/Eirik

Reply 1 of 13, by mbbrutman

User metadata
Rank Member
Rank
Member

There is a previous thread here you should read where the machine was suffering from packet drops due to a misconfiguration.

You should read the debugging section of the mTCP PDF, generate a trace, and send me to me. Most of the time it's a problem with the machine or the network.

Reply 2 of 13, by ltning

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2021-03-15, 21:23:

There is a previous thread here you should read where the machine was suffering from packet drops due to a misconfiguration.

Do you have a link, or some keywords I could search for beyond 'network', 'nic' and 'packet'? I've been trying to search, but the topic-title-only search doesn't work and .. well.. I am clearly unable to narrow my search well 😒

mbbrutman wrote on 2021-03-15, 21:23:

You should read the debugging section of the mTCP PDF, generate a trace, and send me to me. Most of the time it's a problem with the machine or the network.

You want a trace without full packet capture, I presume? So DEBUGGING=0x7F should do?
I'll do some testing with SPDTEST before I bother you with a trace; that should help rule out problems with the other programs I'm using. I wasn't aware of this tool before, sorry.

Oh and any chance your ftp client has or can grow recursive fetch/upload? 😀

Thanks for your help and pointers,
/Eirik

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 3 of 13, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

I also experienced poor performance with some 3C905, but I never bothered to investigate - simply assumed poor quality of the packet driver.
If you care about using TCP/IP in DOS on a PCI machine, try some RTL8139 card - I recall them working just fine.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 4 of 13, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2021-03-16, 00:27:

I also experienced poor performance with some 3C905, but I never bothered to investigate - simply assumed poor quality of the packet driver.
If you care about using TCP/IP in DOS on a PCI machine, try some RTL8139 card - I recall them working just fine.

my 3c905 will only link at 10Mbps when using the packet driver, in Win9x it links up at 100 no problem

Reply 5 of 13, by mbbrutman

User metadata
Rank Member
Rank
Member

Even just starting with DEBUGGING=1 is a good start - that captures just warnings and errors. Going to DEBUGGING=0x7F (or 127 for us humans) is if I need to debug things at a deeper level. Email me when you are ready.

I'm not going to add recursive gets or puts anytime soon - it's too much of a pain on small, memory constrained systems. (It could be done, but I need to get to other features first.)

Reply 6 of 13, by ltning

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2021-03-16, 22:49:

Even just starting with DEBUGGING=1 is a good start - that captures just warnings and errors. Going to DEBUGGING=0x7F (or 127 for us humans) is if I need to debug things at a deeper level. Email me when you are ready.

This won't work if the application is not actually using mTCP I presume. Since the applications I'm using are using WATTCP .. Not a lot anyone can do about that I guess 😀

I'll post the results of my performance tests tomorrow; they're very encouraging (for mTCP).

mbbrutman wrote on 2021-03-16, 22:49:

I'm not going to add recursive gets or puts anytime soon - it's too much of a pain on small, memory constrained systems. (It could be done, but I need to get to other features first.)

Roger that. Had to ask.

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 8 of 13, by ltning

User metadata
Rank Member
Rank
Member
mbbrutman wrote on 2021-03-15, 21:23:

You should read the debugging section of the mTCP PDF, generate a trace, and send me to me. Most of the time it's a problem with the machine or the network.

So I used the speedtest utility, and I can reliably reach ~10MByte/s (11.3MiB/s recv, 11.1 send) in both directions.
No special options given to the packet driver, and tested with both explicit media settings (100baseTX half-duplex) and autodetect (100baseTX full duplex).

So - conclusion is that the applications I'm using (rsync and ncftp) are using WATTCP and are simply hideously slow - whether it's WATTCP or something else I cannot tell.

Any other suggestions for tools to transfer recursively to/from a DOS box - without using NDIS/NetBEUI/TCPBEUI stuff? The XFS filesystem kinda works, but corrupts the stack (I think) when mounting something, with the drive letter not existing but both A: and C: both suddenly containing random files and directories from elsewhere on the system..

Thanks for your suggestions and help.

/Eirik

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 9 of 13, by mbbrutman

User metadata
Rank Member
Rank
Member

My P133 with a 100Mb/sec PCI card is hitting around 10.4MBytes/sec, which is similar to what your machines are getting. You are getting with 15% of wire speed and there is TCP/IP packet overhead too, so it is not going to get much faster.

Keep in mind that real programs do useful things ... SPDTEST is just confirming that your hardware is capable of pushing the bits if asked. FTP transfer rates are going to be quite a bit lower because of the disk I/O involved.

I'm going to guess that you are not using the mTCP FTP client or server because of the lack of recursive get/put support? If you do use them you will find the speeds are in the 300 to 500KB/sec range depending on your storage device.

Reply 10 of 13, by ltning

User metadata
Rank Member
Rank
Member

Storage device can handle ~10MByte/s here (fast SD card on SD-to-PATA adapter), so that's not the real limiting factor. And what I'm seeing is - at the very most - 40-50KByte/s, so that's clearly a problem in the software - not the hardware.

But I think I'll be able to combine ncftpls with your ftp client to walk a directory tree (if I'm willing to lean on 4DOS..).

/Eirik

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 12 of 13, by ltning

User metadata
Rank Member
Rank
Member
maxtherabbit wrote on 2021-03-17, 20:26:

I use mTCP FTP server in my retro builds and use an FTP client with recursive support on my modern PCs to connect to it. Works a treat.

Yeah, I'd do that too but I have this sick need to be able to do everything from the DOS box - possibly one day having the "other end" be remote or locked in a cabinet somewhere 😀

I'll be testing that though, it might be very useful for semi-automatic first-time setups of new machines. Trying to build a sort of config management system for my retro boxen..

Thanks all for your input.

/Eirik

The Floppy Museum - on a floppy, on a 286: http://floppy.museum
286-24/4MB/ET4kW32/GUS+SBPro2
386DX-40/20MB/CL5434 ISA/GUSExtreme
486BL-100/32MB/ET4kW32p VLB/GUSPnP/AWELegacy

~ love over gold ~

Reply 13 of 13, by Am386DX-40

User metadata
Rank Member
Rank
Member
maxtherabbit wrote on 2021-03-16, 03:17:
Grzyb wrote on 2021-03-16, 00:27:

I also experienced poor performance with some 3C905, but I never bothered to investigate - simply assumed poor quality of the packet driver.
If you care about using TCP/IP in DOS on a PCI machine, try some RTL8139 card - I recall them working just fine.

my 3c905 will only link at 10Mbps when using the packet driver, in Win9x it links up at 100 no problem

Same here