The answer to this question depends heavily on exactly what you intend on doing with your net connection, and how much traffic it will see.
If you only expect a single user to be doing the occasional ftp session or WWW connection, then even an old 8 bit ISA card will probably keep you happy.
If you intend to set up a server, and you require the CPU overhead of Rx'ing and Tx'ing network data to be kept to a minimum, you probably want to look at one of the PCI cards that uses a chip with bus-mastering capapbility, such as the DEC tulip (21xxx) chip, or the AMD PCnet-PCI chip.
If you fall somewhere in the middle of the above, then any one of the low cost PCI or 16 bit ISA cards with stable drivers will do the job for you.
Of the 16 bit ISA cards, the following drivers are very mature, and you shouldn't have any problems if you buy a card that uses these drivers.
SMC-Ultra/EtherEZ, SMC-Elite (WD80x3), 3c509, Lance, NE2000.
This is not to say that all the other drivers are unstable. It just happens that the above are the oldest and most used of all the linux drivers, making them the safest choice.
Note that some el-cheapo motherboards can have trouble with the bus-mastering that the ISA Lance cards do, and some el-cheapo NE2000 clones can have trouble getting detected at boot.
The most commonly used linux PCI drivers are probably the 3Com Vortex/Boomerang (3c59x/3c9xx), the DEC tulip (21xxx), and the Intel EtherExpressPro 100. The various PCI-NE2000 clone cards are also extremely common, but purchasing a PCI-NE2000 clone card is not recommended unless the lowest possible price is more important than having a modern high-performace design card.
You probably can't buy a new 8 bit ISA ethercard anymore, but you will find lots of them turning up at computer swap meets and the like for the next few years, at very low prices. This will make them popular for ``home-ethernet'' systems. The above holds true for 16 bit ISA cards now as well, since PCI cards are now very common.
Some 8 bit cards that will provide adequate performance for light to average use are the wd8003, the 3c503 and the ne1000. The 3c501 provides poor performance, and these poor 12 year old relics of the XT days should be avoided. (Send them to Alan, he collects them...)
The 8 bit data path doesn't hurt performance that much, as you can still expect to get about 500 to 800kB/s ftp download speed to an 8 bit wd8003 card (on a fast ISA bus) from a fast host. And if most of your net-traffic is going to remote sites, then the bottleneck in the path will be elsewhere, and the only speed difference you will notice is during net activity on your local subnet.
Note that a 10Mbs network typically doesn't justify requiring a 32 bit interface. See Programmed I/O vs. ... as to why having a 10Mbps ethercard on an 8MHz ISA bus is really not a bottleneck. Even though having the ethercard on a fast bus won't necessarily mean faster transfers, it will usually mean reduced CPU overhead, which is good for multi-user systems.
Of course for 100Mbps networks, which are now commonplace, the 32 bit interface is a must to make use of the full bandwidth. AMD has the 32 bit PCnet-VLB and PCnet-PCI chips. See AMD PCnet-32 for info on the 32 bit versions of the LANCE / PCnet-ISA chip.
The DEC 21xxx PCI `tulip' chip is another option (see DEC 21040) for power-users. Many manufacturers produce cards that use this chip, and the prices of such no-name cards is usually quite cheap.
3Com's `Vortex' and `Boomerang' PCI cards are also another option, and the price is quite cheap if you can get one under their evaluation deal while it lasts. (see 3c590/3c595)
Intel's EtherExpress Pro 10/100 PCI cards have also been reported to work well with linux. (see EtherExpress)
Various clone manufacturers have started making PCI NE2000
clones based on a RealTek or Winbond chip. These cards are
also supported by the linux ne2000 driver for v2.0.31
and newer kernels.
However you only benefit from the faster bus interface, as
the card is still using the age-old ne2000 driver interface.
As of v2.0.34 (and above) a separate PCI-specific driver for
these cards ne2k-pci.c
is also available, which will
be sightly more efficient than the ISA ne.c
driver.
The present list of supported 100Mbs hardware is as follows: cards with the DEC 21140 chip; the 3c595/3c90x Vortex cards; the EtherExpressPro10/100B; the PCnet-FAST; the SMC 83c170 (epic100) and the HP 100VG ANY-LAN.
Have a look at the vendor specific information for each that is in this document. You may also want to check out some of the following:
Dan Kegel's Fast Ethernet Page
100BaseT is much more prominent than 100VG, and the
following blurb from an older one of Donald's informative
comp.os.linux
postings summarizes the situation quite well:
``For those not in the know, there are two competing 100Mbs ethernet standards, 100VG (aka 100baseVG and 100VG-AnyLAN) and 100baseT (with 100baseTx, 100baseT4 and 100baseFx cable types).
100VG was on the market first, and I feel that it is better engineered than 100baseTx. I was rooting for it to win, but it clearly isn't going to. HP et al. made several bad choices:
1) Delaying the standard so that they could accommodate IBM and support token ring frames. It `seemed like a good idea at the time', since it would enable token ring shops to upgrade without the managers having to admit they made a very expensive mistake committing to the wrong technology. But there was nothing to be gained, as the two frame types couldn't coexist on a network, token ring is a morass of complexity, and IBM went with 100baseT anyway.
2) Producing only ISA and EISA cards. (A PCI model was only recently announced.) The ISA bus is too slow for 100mbs, and relatively few EISA machines exist. At the time VLB was common, fast, and cheap with PCI a viable choice. But "old-timer" wisdom held that servers would stay with the more expensive EISA bus.
3) Not sending me a databook. Yes, this action was the real reason for the 100VGs downfall :-). I called all over for programming info, and all I could get was a few page color glossy brochure from AT&T describing how wonderful the Regatta chipset was.''
If you are setting up a small ``personal'' network, you will probably want to use thinnet or thin ethernet cable. This is the style with the standard BNC connectors. The thinnet, or thin ethernet cabling, (RG-58 coaxial cable) with the BNC (metal push and turn-to-lock) connectors is technically called 10Base2.
Most ethercards also come in a `Combo' version for only $10-$20 more. These have both twisted pair and thinnet transceiver built-in, allowing you to change your mind later.
The twisted pair cables, with the RJ-45 (giant phone jack) connectors is technically called 10BaseT. You may also hear it called UTP (Unsheilded Twisted Pair).
The older thick ethernet (10mm coaxial cable) which is only found in older installations is called 10Base5. The 15 pin D-shaped plug found on some ethernet cards (the AUI connector) is used to connect to thick ethernet and external transcievers.
Large corporate installations will most likely use 10BaseT instead of 10Base2. 10Base2 does not offer any upgrade path to 100Base-whatever.
See Cables, Coax... for other concerns with different types of ethernet cable.