Linux network stack
To end users who only interact with the network through applications and only configure network access through a graphical user interface, the network stack of their operating system looks like a single abstraction. However, for administrators, it is important to understand its structure because different parts of the stack are implemented by different software and administered by different tools.
This contrasts Linux distributions with many proprietary operating systems where most network functions are built-in and cannot be replaced individually. In a Linux distribution, performance-critical functionality is implemented by the Linux kernel itself, but many other functions, such as the dynamic configuration of IP addresses and routes through Dynamic Host Configuration Protocol (DHCP), are done by third-party tools, and there can be multiple competing implementations.
There are also different tools for managing the network functionality of the Linux kernel...