Linux Kernel Architecture

(Jacob Rumans) #1

Chapter 12: Networks


12.12 Summary


Linux is often used to operate network servers, and consequently, its networking implementation is
powerful, comprehensive, and complex. This chapter discussed the general layered structure of the net-
working subsystem that allows for accommodating a large number of different protocols, and provides a
rich set of services.

After introducing the idea of sockets that establish the link between networking layer and userland, we
have discussed socket buffers, the fundamental in-kernel data structure for representation, and process-
ing of packets obtained and sent via networks. We then discussed how network devices are operated and
also explained how NAPI helps to ensure that they reach their full possible speed.

You have then seen how an IP packet travels through the network layer and how the transport layer
processes TCP and UDP packets. Ultimately, the packets end up or originate from the application layer,
and we have also explored the mechanisms behind this.

The chapter closed with a discussion of how networking can be initiated from within the kernel and
how the netlink mechanism allows for installing a high-speed communication link between kernel and
userland.
Free download pdf