On 9/18/2008 01:04 PM, cctech-request at
classiccmp.org wrote:
Date: Wed, 17 Sep 2008 11:21:02 -0400
From: Paul Koning <Paul_Koning at Dell.com>
Subject: Re: OS/2 Warp, was Re: PCjr Telnet Server Test - Done!
To: cctalk at
classiccmp.org
Message-ID: <18641.8286.275784.301355 at gargle.gargle.HOWL>
Content-Type: text/plain; charset=us-ascii
>>>> "Ethan" == Ethan Dicks
<ethan.dicks at usap.gov> writes:
Ethan> Back when NIC weren't $10 each, I remember the easiest to work
Ethan> with (in terms of compatibility) were the NE2000 and clones
Ethan> (NE1000 for 8-bit machines), the WD (later SMC) 8013, and the
Ethan> 3C501, later displaced by the 3C509. ...
Something to keep in mind is that the 3C501 is an extremely bad
design. It is completely incapable of dealing with back to back
packets -- even just two of them. And of course that's a perfectly
normal situation in any plausible network.
I remember working on DECnet when these toys came around, and the
request came in to have a "go slow" feature in DECnet to support this
single buffered design. The answer, of course, was "NFW". (Slowing
down at the source wouldn't have helped because the network could
easily cause clumping anyway...)
paul
The problem with the 3C501 (and the InterLAN and Ungermann-Bass, and
other I've forgotten about) Ethernet cards of this era where that
they only had one packet of memory on them.
Once a packet was received, you had to wait until software retrieved
the packet and re-enabled the card, before you could get the
next. Likewise if you wanted to transmit - you had to disable
reception, copy the transmit packet into the card, and then send
it. In PCs of that era that was a substantial chunk of time
relative to the potential arrival rate of 10Mbs Ethernet.
I have a presentation I have given at DECUS, where I analyzed (on
paper) what the likely best possible rates for an XT or PC-AT would
be. I should scan that in. (highly unlikely I have a machine
readably copy! wonder what I prepped that in?)
NetWare and NetBEUI driven networks hardly noticed this problem for
two reasons: 1) they were Request/Response protocols. They normally
did not expect additional packets until they responded, and 2) they
were talking to other PCs. Which simply couldn't generate traffic fast enough.
With respect to DECnet, the problem came up quickly when we started
having PCs make requests from PDP-11 or VAX file servers, using
either FAL or the PathWorks server. When pushing data the mini
computer could quickly over run the slow PC with a dumb Ethernet
card. The rest of the world noticed when TCP/IP implementations got
good enough to encounter similar problems with FTP pulls, and PC file
servers finally got enough aggregate clients.
The workaround in DECnet-DOS was a careful tuning of the buffer pool,
and the transport (NSP) credit flow control window algorithms. The
delayed-ack mechanism was optionally tweaked to send an ACK
immediately upon receiving a packet ahead of the expected next. This
typically indicated a lost packet, and usually generated an immediate
retransmit.
The VAXmate and PCs using the DEPCA card would run rings around these
other cards. Because they used the AMD LANCE Ethernet chip with
multiple packet buffers in a mapped memory buffer. The DECnet-DOS
kernel optimized this by using it directly for it's buffer pool and
removing the need for another memory to memory packet copy.
With all due respect Paul, I've never asked another DECnet
implementation to "slow down", certainly not DECnet-RSTS. But don't
get me started on the VMS implementation of async DDCMP.
Dave (Mr. DECnet-DOS)