Библиотека сайта rus-linux.net
Linux System Administrator's Survival Guide lsg28.htm
- Network Terminology
- What Is TCP/IP?
- IP Addresses
- The Domain Name System
- Network Basics
TCP/IP and Networks
Whenever you deal with networking for Linux or any UNIX product, you inevitably deal with TCP/IP. The term TCP/IP has become a catch-all phrase for many things, most of which don't really apply to the network protocol. Understanding what TCP/IP is isn't strictly necessary to install TCP/IP networking on your Linux machine, but it does help. This chapter begins with a look at network terminology. Then it defines what TCP/IP is and does and what IP addressees and Domain Names are. It ends with a look at the basics of networking.
Unfortunately, it's difficult to talk about networking unless the terms used are well understood, because a lot of terms in common usage can mean different things depending on the context. To avoid confusion, it's better to begin with the basic definitions. Each term has a formal, rigorous definition, usually in some standard document. Standards are not written in easily understood language usually, so we've tried to simplify the terms a little and use generalizations where possible.
A server is any machine that can provide files, resources, or services for you. Any machine that you request a file from is a server. In fact, that's the essence of client/server systems, where one machine (the client) requests something from another (the server). One machine may be both client and server many times.
The more common definition for server is directly related to local area networks, where the server is a powerful machine that holds all the files and large applications. The other machines on the network connect to the server to access their files. In this type of network, a single machine usually acts as the server (and all the others are clients).
Large server-based networks may have special servers for specific purposes. For example, one server may handle files for the network (the file server), another may handle all print requests (the print server), yet another may handle connections to the outside world through modems (the communications server), and so on. One or more of these functions may be on any individual machine on the network, or you may have several machines on a large network acting as a specific kind of server. You may have two file servers, for example.
For our purposes in this section, we will need to use both the central and client/server definitions of server, depending on the type of LAN and network services we are dealing with. Simply put, the server is the machine that your machine requests something from.
As you may have figured out from the definition of server, a client is any machine that requests something from a server. In the more common definition of a client, the server supplies files and sometimes processing power to the smaller machines connected to it. Each machine is a client. Thus, a typical ten PC local area network may have one large server with all the major files and databases on it, and all the other machines connect as clients.
In the client/server sense of the word, a client is the machine that initiates a request to the server. This type of terminology is common with TCP/IP networks, where no single machine is necessarily the central repository.
Small networks that comprise a server and a number of PC or Macintosh machines connected to the server are common. Each PC or Macintosh on the network is called a node. A node essentially means any device that is attached to the network (regardless of the size of the network). Since each machine has a unique name or number (so the rest of the network can identify it), you will hear the term node name or node number quite often. It is more proper to describe each machine as a client, although the term node is in common use. On larger networks involving thousands of workstations and printers, each device is still called a node. If the device has an address on the network, it is a node.
Local and Remote Resources
A local resource is any device that is attached to your machine, such as a printer, modem, scanner, or hard disk. Since the machine doesn't have to go out to the network to get to the device, it is called a local device or local resource.
Following the same logic, any device that must be reached through the network is a remote resource. Any devices attached to a server, for example, are remote resources. A high-speed color laser printer that may be part of the network is also a remote resource.
Network Operating System
A network operating system≈often called a NOS≈controls the interactions between all the machines on the network. The NOS is responsible for controlling the way information is sent over the network medium (a coaxial or twisted pair cable, for example). It handles the way in which data from a machine is packaged and sent to others, as well as what happens when two or more machines try to send information at the same time. The NOS can also handle shared peripherals, such as a laser printer, scanner, or CD-ROM drive that is on one machine but is accessible by other machines on the network.
With local area networks that have a single server and many clients hanging off it, the NOS resides on the server. This is the way Novell's NetWare works. The main part of the NOS sits on the server, while smaller client software packages are loaded onto each client.
With larger networks that don't use a single server, such as a Linux network running TCP/IP, the NOS may be part of each machine's software. Linux, for example, has the networking code for TCP/IP built into the operating system kernel so it is always available. A PC that wants to connect to the TCP/IP network must have a software package installed that handles the TCP/IP protocol.
Networks such as Microsoft Windows for Workgroups and Artisoft's LANtastic do not use a single primary server (although they can). Instead, each machine acts as its own server, containing all the NOS that is needed to talk to any other machine on the network.
The network protocol is the name of the communications system by which machines on the network interact. On a UNIX system, for example, TCP/IP (Transmission Control Protocol/Internet Protocol) is the most common. TCP/IP is the network protocol. (Actually, TCP/IP is a whole family of protocols, but we'll deal with that later.) Novell NetWare usually uses a network protocol called IPX (InterPacket Exchange).
The different protocols mostly use the same approach to communications: they assemble information into blocks of data called a packet, and send that across the network. However, the way the packet is made up, and the type of information attached to control its routing, differs with each NOS.
Network Interface Card
The network interface card (NIC) is an adapter that usually sits in a slot inside your PC. Some NICs now plug into parallel or SCSI ports on the back of your system. These are very useful for portable machines, although they are still rare for desktops.
The network interface card handles the connection to the network itself through one or more connectors on the backplane of the card. The most common network connectors are similar to telephone jacks, with coaxial cable (like cable TV) a close second. You must make sure that the network interface card you are using in your machine works with the network operating system.
Bridges, Routers, and Brouters
You may hear the terms bridge and router often. They are simply machines that connect two or more networks together. The difference between a bridge and a router is that a bridge simply connects two local area networks running the same network operating system (it acts as a bridge between two LANs primarily to reduce traffic on the larger network), while a router connects LANs that may be running different operating systems. The router can have special software that converts one NOS' packets to the other's.
A router is more complicated than a bridge, in that it can make decisions about where and how to send packets of information (routing it, hence the name) to its destination. A brouter is a relatively new device that combines the capabilities of both bridges and routers (hence its name).
In common usage terms, a gateway is a machine that acts as an interface between a small network and a much larger one, such as a local area network connecting to the Internet. Gateways are also used in large corporations, for example, to connect small, office-based LANs to the larger corporate mainframe network. Usually, the gateway connects to a high-speed network cable or medium called the backbone. More formally, a gateway can perform protocol translations between two networks.
What Is TCP/IP?
Put in simple terms, TCP/IP is the name of a networking protocol family. Protocols are sets of rules that all companies and software products must adhere to in order to make their products compatible with each other. A protocol defines how software will communicate with each other. A protocol also defines how each part of the overall package manages the transfer of information.
In essence, a protocol is a written set of guidelines that defines how two applications or machines can communicate with each other, each conforming to the same standards. TCP/IP is not restricted to the Internet. It is the most widely used networking software protocol in the world, used for large, multi-site, corporate local area networks as well as small, three- or four-PC LANs.
TCP/IP stands for Transmission Control Protocol/Internet Protocol, which are really two separate protocols. Despite what many people think, the term TCP/IP refers to a whole family of related protocols, all designed to transfer information across a network. TCP/IP is designed to be the software component of a network. The parts of the TCP/IP protocol family all have dedicated tasks, such as sending electronic mail, transferring files, providing remote logon services, routing messages, or handling network crashes.
The different services involved with TCP/IP and their functions can be grouped according to purpose. Transport protocols control the movement of data between two machines and include the following:
- TCP (Transmission Control Protocol) A connection-based service, meaning that the sending and receiving machines are connected and communicating with each other at all times.
- UDP (User Datagram Protocol) A connectionless service, meaning that the data is sent without the sending and receiving machines being in contact with each other. It's like sending snail-mail (regular postal service) with an address but with no way of knowing whether the mail will ever be delivered.
Routing protocols handle the addressing of the data and determine the best means of getting to the destination. They can also handle the way large messages are broken up and reassembled at the destination:
- IP (Internet Protocol) Handles the actual transmission of data.
- ICMP (Internet Control Message Protocol) Handles status messages for IP, such as error and changes in network hardware that affect routing.
- RIP (Routing Information Protocol) One of several protocols that determine the best routing method to deliver a message.
- OSPF (Open Shortest Path First) An alternate protocol for determining routing.
Network Address protocols handle the way machines are addressed, both by a unique number and a name:
- ARP (Address Resolution Protocol) Determines the unique numeric addresses of machines on the network.
- DNS (Domain Name System) Determines numeric addresses from machine names.
- RARP (Reverse Address Resolution Protocol) Determines addresses of machines on the network, but in a backwards manner from ARP.
User Services are applications a user (or a machine) can use:
- BOOTP (Boot Protocol) Starts up a network machine by reading the boot information from a server.
- FTP (File Transfer Protocol) Transfers files from one machine to another.
- TELNET Allows remote logins, which means a user on one machine can connect to another and behave as through he or she were sitting at the remote machine's keyboard.
Gateway Protocols help the network communicate routing and status information, as well as handle data for local networks:
- EGP (Exterior Gateway Protocol) Transfers routing information for external networks.
- GGP (Gateway-to-Gateway Protocol) Transfers routing information between gateways.
- IGP (Interior Gateway Protocol) Transfers routing information for internal networks.
The following protocols don't fall into the categories mentioned previously, but they provide important services over a network:
- NFS (Network File System) Allows directories on one machine to be mounted on another and accessed by a user as though they were on the local machine.
- NIS (Network Information Service) Maintains user accounts across networks, simplifying logins and password maintenance.
- RPC (Remote Procedure Call) Enables remote applications to communicate with each other in a simple, efficient manner.
- SMTP (Simple Mail Transfer Protocol) A dedicated protocol that transfers electronic mail between machines.
- SNMP (Simple Network Management Protocol) An administrator's service that sends status messages about the network and devices attached to it.
The different protocols within TCP/IP are maintained by a governing standards body that is part of the Internet organization. Changes to the protocols occur when new features or better methods of performing older ones are developed, but this is a rare occurrence and usually results in backward compatibility.
TCP/IP, the Internet, and Layered Architecture
The Internet is not a single network but rather a collection of many networks communicating through TCP/IP. TCP/IP and the Internet are so closely interwoven that TCP/IP's architecture is often called the Internet architecture. Almost from the start of the Internet as the ARPAnet, it became obvious that existing protocols couldn't handle the sheer volume of traffic that the network had to carry, so a project was undertaken to develop new communications protocols.
The TCP/IP protocols were first proposed in 1973 and led to a standardized version in 1982. One of the research sites for networking software was the University of California at Berkeley. UCB was the center of development for the UNIX operating system for many years; the research done there also helped refine TCP/IP. In 1983, UCB released a version of UNIX that incorporated TCP/IP as an integral part of the operating system. TCP/IP became very popular because UNIX was widely used, especially as more sites connected to the growing ARPAnet.
When TCP/IP was designed, all of the services that had to be provided were considered. The best approach to implement all the services was to divide the different services into categories, such as end-user services (file transfer and remote logon), transport services (the way data is sent back and forth, invisible to the user), and network (how the data is packaged for transfer). A layered architecture was developed that isolates each set of services from the other.
A layered approach to designing the software requires more work initially, but has several important benefits. First, since each layer is independent of the others, changes to one service won't cause problems with other services. As new services are developed, they can be added without changing any other parts of the software system. Most importantly, layering makes it possible for a set of small, efficient programs to be developed for specific tasks, each of which can be independent of the others.
One condition needed to allow layered architecture to work properly is that each layer must know what is coming from the layer above or below. The layer may not care about the actual contents of the message, but it must know what to do with it. For example, if you are sending an e-mail message, you write the message and instruct the application layer to transmit it to the destination. The application layer sends the message down the layers until another layer sends it out across the network cable. Each layer handles the e-mail message but has no interest in the actual contents of the message.
To simplify this task, each layer adds a block of data at the front and the back of the message that indicates which layer is involved as well as all the other bits of information the other layers and the receiving machine needs to handle the message properly. The data within the message is ignored. This is called "encapsulation," as each layer adds a capsule of information around the original data. Each layer performs its own encapsulation, adding header and trailer blocks to the message from the layer above. This results in several sets of headers and trailers by the time a message makes it to the network.
Every machine that is connected to a TCP/IP-based network has to be uniquely identified somehow. Without a unique identifier, the network wouldn't know how to get messages to your machine. If there were more than one machine with the same identifier, the network wouldn't know which one to send the message. To understand IP addresses, which uniquely identify each machine, it is useful to relate to the Internet's problem of identifying not only each machine on the huge Internet, but also each organization.
The Internet identifies networks by assigning an "Internet address" or, more properly, an "IP address" to each company or organization on the net. IP addresses are all 32 bits in length, and are broken into four 8-bit parts. This allows each part to have numbers ranging from 0 to 255. The four parts are combined in a notation called "dotted quad," which means each 8-bit value is separated by a period. For example, "255.255.255.255" and "22.214.171.124" are both dotted quad IP addresses. When someone asks you for your network address, they usually mean your IP address.
Assigning IP addresses is not a simple matter of starting with the number 1 and counting upwards. Each machine (called a host) that can be attached to the Internet needs to be numbered. Even the dotted-quad 32-bit numbering scheme couldn't handle all the machines just by counting them. Instead, IP addresses work by identifying a network, then a machine on that network.
The IP address really consists of two parts: the network number and the host number within that network. By using two parts to the IP address, machines on different networks can have the same host number, but because the network number is different, the machines are uniquely identified. Without this type of scheme, the numbering would become unwieldy very quickly.
IP addresses are assigned on the basis of the size of the company or organization. If the company is small, there is no need for many machine identifiers within the network. On the other hand, a large corporation may have thousands of hosts. To provide for the maximum flexibility, IP addresses are assigned according to the size of the user, called "Class A," "Class B," or "Class C." "Class D" and "Class E" have special purposes and are not used as part of the IP address numbering.
The three classes allow the IP address numbers to be assigned on the basis of company size. Since 32 bits is the total size allowable, the classes break the four 8-bit parts into the network and host identifiers depending on the class. One or more bits is reserved at the start of the 32-bit IP address to identify the type of class (hence, how other machines that analyze the IP address should decode the numbers). The three classes have the following breakdowns:
- Class A: network 7 bits; host 24 bits
- Class B: network 14 bits; host 16 bits
- Class C: network 21 bits; host 8 bits
A Class A address has only a 7-bit address for the network address but 24 bits for the host address. This allows over 16 million different host addresses, enough for the very largest organization. Of course, there can only be 128 of these Class A addresses, maximum.
Class B networks have 14 bits for the network and 16 bits for the host, allowing more Class B networks but fewer hosts. Still, 16 bits allow over 65,000 hosts. Finally, Class C IP addresses can have a maximum of 254 hosts (because the numbers 0 and 255 are reserved for each of the parts of the IP address) but have a lot of network IDs. The majority of networks are Class B and Class C.
It is possible to tell the type of class a company belongs to by the first number of the IP address. The rules for the first 8-bit number are:
- Class A addresses are between 0 and 127
- Class B addresses are between 128 and 191
- Class C addresses are between 192 and 223
So, if your host machine's IP address is 126.96.36.199, you know that your machine is on a Class B network, the network identifier is 147.14, and your host's unique number in that network is 87.23. If the IP address is 188.8.131.52, the machine is on a Class C network with a network identifier of 221.132.3, and a host number of 123.
Whenever a message is sent to a host anywhere on the Internet, the IP address is used to indicate its destination and the host that sent it. Luckily, because of another TCP/IP service called the Domain Name System, you don't have to keep track of all these IP addresses yourself.
The Domain Name System
When a company or organization wants to use the Internet, they must decide whether they want to do it by directly attaching to the Internet system or whether they will use another company to supply the connection. Many companies choose to use another company, called a service provider, because it reduces the amount of equipment, administration, and costs involved.
If the company or organization wants to directly connect (and sometimes when they are using a service provider), they may want to have a unique identification for themselves. For example, ABC Corporation may want to have electronic mail through the Internet addressed to them as "abc.com." The name helps identify the company or organization to the sender.
To obtain one of these unique identifiers called a "domain name", the company or organization sends a request to the body that controls access to the Internet: the Network Information Center, or NIC. If the NIC approves the company's name, it is added to the Internet database. Domain names must be unique, to prevent confusion.
The part of the name that comes last (such as ".com") is the domain identifier. These are the seven domain names established by the NIC:
|.arpa||an ARPAnet-Internet identification|
|.gov||any governmental body|
|.net||network service providers|
|.org||anything that doesn't fall into one of the other categories|
The NIC also allows special letters to identify the country of the company or organization. Designators exist for all countries in the world, such as ".ca" for Canada and ".uk" for the United Kingdom.
Not all companies that are outside the U.S. have country identifiers. To some extent, the date of registration may affect the use of the country identifier, as companies that joined the Internet when it was still relatively uncrowded would have been given a standard identifier. Also, some non-U.S. corporations use a U.S.-based company to register for them, giving them a choice of using a country designator or not.
The Domain Name System (DNS) is a service provided by the TCP/IP family of protocols that helps in the addressing of messages. When you address mail to bozo@clowns_r_us.com, the DNS system translates this symbolic name into an IP address by looking up the domain name in a database. DNS lets you forget about those IP addresses, allowing much simpler names: the domain name. The usual syntax for sending a message to a user on the Internet is username@domain_name, as the "bozo" example shows. (DNS doesn't have to run on top of TCP/IP, but it usually will on Linux systems.)
If a company decides not to get their own domain name but will use an on-line service (such as CompuServe or America Online), a unique domain name is not needed. Instead, the domain name of the service provider is part of the address. A user is then identified by a name or number of the service provider, such as email@example.com.
In practice, when you send a symbolic name to DNS, it doesn't check the user's actual host, otherwise there would be millions of IP addresses in the database. Instead, DNS is concerned with only the network part of the address, which it translates to the network IP address and sends out over the network. When the receiving network's Internet machine receives the message, it uses an internal database of its own to look up the user's host and takes care of that part of the trip.
A network topology is the way the cabling is laid out. This doesn't mean the physical layout (how it loops through walls and floors) but rather how the logical layout looks when viewed in a simplified diagram. You may hear many different names for the type of network you have: ring, bus, star, and so on. They all refer to the shape of the network schematic.
One of the most widely used network topologies (and the one most often used in medium to large Local Area Networks) is the bus network. A bus network uses a cable to which are attached all the network devices, either directly or through a junction box of some sort. Each device uses a transceiver to connect to the backbone. The manner of attachment depends on the type of bus network, the protocol in use, and the speed of the network. The main cable that is used to connect all the devices is called the backbone. Each end of the backbone (also called a bus) is terminated with a block of resistors or similar electrical device. Most large TCP/IP networks used by Linux are bus topologies.
A popular variation of the bus network topology is found in many small LANs. This consists of a length of cable that snakes from machine to machine. Unlike with the bus network, there are no transceivers along the network. Instead, each device is connected into the bus directly using a T-shaped connector on the network interface card, often using a connector called a BNC. The connector connects the machine to the two neighbors through two cables, one to each neighbor. At the ends of the network, a simple resistor is added to one side of the T-connector to terminate the network electrically.
This machine-to-machine network is not capable of sustaining the higher speeds of the backbone-based bus network, primarily because of the medium of the network cable. A backbone network can use fiber optics, for example, with small coaxial or twisted pair cables from a junction box to the device. A machine-to-machine network is usually built using twisted pair or coaxial cable. (With Ethernet, these cables are called 10Base-T and 10Base-2 respectively.) Until recently, these networks were limited to a throughput of about 10 megabits per second (Mbps). A recent development of two slightly different protocols called 100VG AnyLAN and Fast Ethernet allows 100mbps on this type of network, though. Most small Linux networks use this topology, because it is inexpensive, easy to wire and control, and relatively simple to administer.
The problem with the type of bus network that involves T-shaped connectors between the backbone cable and the PC is that if one connector is taken off the network cable or the network interface card malfunctions, the backbone is broken and must be tied together again with a jumper of some sort. This can cause erratic behavior of the network or a complete failure of all network traffic. To help avoid this problem, an alternate method of connection to the network can be used. This method employs boxes with a number of connectors (usually similar to telephone jacks, but wider) that connect between the box and the PC network card. Disconnecting a cord from a PC to the box doesn't compromise the integrity of the network as the box is still handling the backbone properly. The 10Base-T Ethernet system uses this approach.
Another network topology is the ring network. Although most people think the network cable is made into a physical loop joining into a large circle, that's not the case in the most common form of ring network called Token Ring. The ring name comes from the design of the central network device, which has a loop inside it to which are attached juntions for cables of all the devices on the network.
With a Token Ring network, the central control unit is called a Media Access Unit, or MAU. Inside the MAU is the cable ring to which all devices are attached, and which is similar to the backbone in a bus network. IBM's Token Ring is the most commonly encountered network system that uses a ring topology. Linux networks can be set up to use Token Ring, but few are.
A star network is arranged in a structure that looks like a central star with branches radiating from it. As you will see shortly, this is a common layout with twisted-pair peer-to-peer networks. The central point of the star structure is called a concentrator, into which plug all the cables from individual machines. One machine on the network usually acts as the central controller or network server. A star network has one major advantage over the bus and ring networks: when a machine is disconnected from the concentrator, the rest of the network continues functioning unaffected. True star networks are very seldom used for Linux, although a single Linux server in the center of a number of terminals or PC clients is, in a sense, a star network. In some networks, such as 10Base-T (twisted pair), that use a box with cables snaking off to each device, the box and cables make up a small star network, albeit in a larger bus topology.
The last type of topology that concerns us is called the hub network. It is similar to the bus network in that it uses a backbone cable that has a set of connectors on it. The cable is called a backplane in a hub network. Each connector leads to a hub device, which leads off to network devices. This allows a very high speed backplane to be used, which can be as long and complex as needed. Hub networks are commonly found in large organizations that must support many network devices and need high speeds.
The hubs that lead off the backplane can support many devices, depending on the type of connector. They can, for example, support hundreds of PC or Macintosh machines each, so a hub network can be used for very large (tens of thousands of network devices) networks. The cost of a hub network is high, though.
The type of cabling used in a network is called the network medium. Today, networks use many types of cables, although only a few types are in common usage. Some of the more exotic types of cables are very expensive. The type of cabling can have an influence on the speed of the network, although for most small- to medium-sized local area networks this is not a major issue.
Twisted pair cabling is one of the most commonly used network mediums because it is cheap and easy to work with. Unshielded twisted pair cables≈often called UTP≈look just like the cable that attaches your household telephone to the wall jack. Twisted pair cables have, as its name suggests, a pair of wires twisted around each other to reduce interference. There can be two, four, or even more sets of twisted pairs in a network cable.
Twisted pair cables usually attach to network devices with a jack that looks like a telephone modular jack but is a little wider (supporting up to eight wires). The most commonly used jacks are called RJ-11 and RJ-45, depending on the size of the connector (and the number of wires inside). The RJ-11 connector is the same as the modular jack on household telephones, holding four wires. The RJ-45 jack is wider than an RJ-11 and holds eight wires.
A variation on unshielded twisted pair cables is shielded twisted pair, often called STP. The shielded twisted pair cable has the same basic construction as its unshielded cousin, but the entire cable is wrapped with a layer of insulation for protection from interference, much like a cable for connecting speakers to your stereo system. The same types of connectors are used with both forms of twisted pair cables.
Twisted pair cables have one major limitation. They only support one channel of data. This is called baseband or single channel cabling. Other types of cables can support many channels of data, although sometimes only one channel is used. This is called broadband or multiple channel cabling. You can use twisted pair cabling for a small Linux network without any problem, but a much easier and more economical (in the long run) system is to use coaxial cable.
Coax cable is designed with two conductors, one (usually a number of strands intertwined) in the center surrounded by a layer of inner insulation, and the second a mesh or foil conductor surrounding the insulation. Outside the mesh is a layer of outer insulation. Because of its reduced electrical impedance, coaxial is capable of faster transmissions than twisted pair cables. Coax is also broadband, supporting several network channels on the same cable.
Coaxial cables come in two varieties: thick and thin. Thick coax is a heavy, usually yellow, cable that is used as a network backbone for bus networks. This cable is formally known as Ethernet PVC coax, but is usually called 10Base5. Because thick coax is so heavy and stiff, it is difficult to work with and is quite expensive. Linux systems that are attaching to a large commercial network may have to use thick coax, but this is very seldom encountered.
Thin coax is the most common type used in Ethernet networks used by Linux. It goes by several names, including thin Ethernet, thinnet, 10Base2, and somewhat derogatorily as cheapernet. Formally, thin coax is called RG-58. Thin coax is the same as your television cable. The inner connector can be made of a single, solid copper wire or fashioned out of thin strands of wire braided together. Thin coax is also used in other networks like ARCnet, although the specification is known as RG-62.
Thin coax is quite flexible and has a low impedance so it is capable of fast throughput rates. It is not difficult to lay out, because it is quite flexible, and it is easy to construct cables with the proper connectors at each end. Thin coax is broadband, although most networks use only a single channel.
Establishing a Linux TCP/IP network requires two components of hardware: the network interface card (NIC) and the network medium. As with most things in life, you can opt to go for an inexpensive card and medium or spend lots more money for full-featured items. As the amount you spend increases, you get more functionality and benefits, although usually with diminishing returns for your dollar.
Before deciding on the type of network interface cards to use (unless you already have some), you should decide on the type of cabling the network will use so the connectors on the network interface card can match. 10Base2 and 10Base-T are really the only two cables that you'll want to consider. The alternatives are much more expensive or require special hardware.
The most common choice is 10Base2 (Thin Ethernet). A 10Base2 network interface card has a male plug jutting out from the back to which is attached a T-shaped connector. Both ends of the T are attached to coaxial cables running to the two neighboring machines. If the machine happens to be at the end of the chain, a terminating resistor plug is attached instead (to electrically terminate the cable).
Once you've decided on the type of cabling, you can choose network interface cards with the proper connectors. (You can use RJ-45 connectors with a 10Base2 network, and vice versa, although you have to purchase special adapters which cost more than a new network interface card.) Don't forget to check the bus architecture (local machine, not network architecture) the card is designed for, because the same manufacturer may have ISA, EISA, and MCA versions in the same packaging. It is a good idea to check the hardware compatibility lists provided with each release of Linux to make sure that the network cards you are considering purchasing have been tested and found to work properly with Linux.
Many network interface cards provide more than one connector on the back plane of the card. It is not unusual to have both a 10Base2 BNC and 10Base5 AUI (thick Ethernet, used for much larger networks) connector on a single card, with either available for use. The same applies to RJ-45 and 10Base5 AUI connectors. A few cards provide 10Base2 BNC and 10Base-T RJ-45 connectors in addition to the 10Base5 AUI connector. These provide the ultimate in flexibility for the user and allow you to change your network from one format to the other as your network grows or shrinks.
You can find network interface cards on the market from many different manufacturers, including brand name vendors such as Novell, Artisoft, Intel, SMC, and Hewlett-Packard; original equipment manufacturers (OEM); and some lesser-known brands, which are usually cheaper. Most network interface cards are clearly labeled with the type of connector (RJ-45 or BNC) and the network systems it supports.
Some network interface cards require you to manually select the card's parameters, such as interrupt (IRQ) and interface address, by changing jumpers on the card. This can be daunting for novices, as well as difficult if you are not sure whether a setting will conflict with another card in your system. Watch the boot messages from Linux to see what the potential conflicts might be, use a DOS-based utility, or simply experiment! It doesn't hurt Linux to change settings, although you may end up with a frozen machine that requires rebooting and cleaning.
More recently, auto-configuring cards have been appearing (such as the Intel EtherExpress series) which use DOS- or Windows-based software to set the parameters. You can use these features on a Linux system by booting into DOS (from a DOS boot disk or a DOS partition) to set the parameters, and then moving back to Linux and use the set parameters. Linux will recognize the card at those settings, as the hardware responds to its requests.
This chapter has covered a lot of ground, ranging from TCP/IP to network cabling. However, now that the basics are out of the way, the next few chapters can focus on networking with Linux and connecting to the Internet.