Routes and neighbor tables
To be able to communicate with other hosts over the network, it’s not enough for a host to have an address. It also needs to know how to reach other hosts. Modern networks use layered protocol stacks, and the Linux kernel is responsible for the Data Link and Network layers according to the OSI model.
At the data link layer, there are protocols such as Ethernet and Wi-Fi — both are multiple-access broadcast networks and require dynamic discovery of neighbors in the same network segment. At the data link layer, hosts are identified by their MAC addresses. Direct communication at the data link layer is only possible within the same segment. If a network layer protocol packet encapsulated in a data link layer protocol frame must travel further, it’s extracted from the original frame and encapsulated in a new one.
Above the data link layer are network layer protocols—IPv4 and IPv6. IP packets can be sent either to hosts in the...