Chapter 5. Network Devices

   


Each (tele)communication over a network normally requires a physical medium, which is accessed over a network adapter (network interface). Together, the network adapter and the medium eventually allow bridging of the spatial distance, so that data can be exchanged between two or more communication systems. If we use the ISO/OSI reference model introduced in Section 3.1.1, then the tasks of a network adapter extend over layers 1 and 2a: They include all tasks dealing with data signal data conversion (and media access in the case of shared media). All higher-order protocol functions are handled by the protocol instances of the respective operating system.[1] This interface is characterized by the following properties:

[1] This view is limited to software-based communication systems on PC basis. More instances are normally implemented in hardware for dedicated systems.

  • interfacing between specialized hardware in the network adapters and software-based protocols;

  • asynchronous input and output point of the protocol stack in the operating system kernel.

In the network architecture of the Linux operating systems, this interface between software-based protocols and network adapters is implemented by the concept of network devices. A network-device interface primarily should meet the following requirements:

  • Abstract from the technical properties of a network adapter: Network adapters might implement different layer-1 and layer-2 protocols and are manufactured by different vendors. This means that their configurations are individual and specific to each network adapter. For this reason, we need a piece of software for each adapter to communicate with the hardware: the driver of a network adapter (which is, by the way, also a protocol).

  • Provide a uniform interface for access by protocol instances: In a system like Linux, there are several protocol instances using the services of network adapters. To be consistent with the principle of layered communication systems (see Section 3.1), these instances should be implemented independently of a specific type of adapter. This means that network adapters should have a uniform interface to the higher layers.

In the Linux kernel, these two tasks are handled by the concept of network devices and are often seen as one single unit. However, it makes sense to distinguish between the two views of network devices and discuss them separately. For this reason, the following section introduces the network-device interface visible from the "top," which offers a uniform interface to the higher protocol instances for physical transmission of data. Later on, Section 5.3 will discuss the "lower" half: the adapter-specific functions that are the actual network driver. Subsequently, Chapter 6 will introduce an example describing how a packet is sent and received on the level of network devices interfacing to the higher protocols.

Not every network device in the Linux kernel represents a physical network adapter. There are network devices, such as the loopback network device, that offer a logical network functionality. The interface of network devices is also often used to bind protocols, such as the point-to-point protocol (PPP).

Figure 5-1. The structure of a network device interface.

graphics/05fig01.gif



       


    Linux Network Architecture
    Linux Network Architecture
    ISBN: 131777203
    EAN: N/A
    Year: 2004
    Pages: 187

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net