3.2 Protocol/Standard stacks

Device drivers abstract different hardware components to hardware independent interfaces. However, device drivers are fairly useless by themselves. From the perspectives of a network interface card (NIC) device driver, all it does is to receive and transmit bit patterns. Similarly, from the perspectives of a mass storage device driver, a hard disk is nothing more than a huge amount of binary digits (bits).

In order for a NIC to be useful, it must be able to communicate with another computer. This means that the bits sent by a computer must make sense when it is received by another computer. The sender and recipient must understand the same standard to communicate effectively. In other words, they must speak the same language, so to speak.

This is why there are protocols and standards. In the case of networking, TCP/IP (Transmission Control Protocol/Internet Protocol) is one of the most widely used protocol. The TCP/IP stack relies on the device driver of a NIC to actually control a NIC to transmit or receive bits.

The TCP/IP protocol implementation is called a “stack” because it has multiple layers by itself. The same applies to Bluetooth protocols and USB (Universal Serial Bus) standards.

It is interesting to note that Bluetooth and USB are two interesting stacks. By themselves, Bluetooth and USB are not very useful. They are both standards that permit the communication between a host computer and a variety of categories of devices.

In the case of USB, it can be used to interface many devices. For example, a thumb drive is a mass storage device, while a USB mouse is a HID (human interface device). A USB protocol stack provides multiple “classes”. The UMS (USB mass storage) device class provides an interface for thumb drives and portable hard disk drives. The HID (human interface device) class provide an interface for devices like keyboards and mice. The device class is a published standard.