TCP/IP: The Interface Layer
This chapter starts our discussion of Net/3 at the bottom of the protocol stack with the interface layer, which includes the hardware and software that sends and receives packets on locally attached networks.
We use the term device driver to refer to the software that communicates with the hardware and network interface (or just interface) for the hardware and device driver for a particular network.
The Net/3 interface layer attempts to provide a hardware-independent programming interface between the network protocols and the drivers for the network devices connected to a system. The interface layer provides for all devices:
a well-defined set of interface functions,
a standard set of statistics and control flags,
a device-independent method of storing protocol addresses, and
a standard queueing method for outgoing packets.
There is no requirement that the interface layer provide reliable delivery of packets, only a best-effort service is required. Higher protocol layers must compensate for this lack of reliability. This chapter describes the generic data structures maintained for all network interfaces. To illustrate the relevant data structures and algorithms, we refer to three particular network interfaces from Net/3:
An AMD 7990 LANCE Ethernet interface: an example of a broadcast-capable local area network.
A Serial Line IP (SLIP) interface: an example of a point-to-point network running over asynchronous serial lines.
A loopback interface: a logical network that returns all outgoing packets as input packets.