Понимание внутреннего устройства сетевого стека в ядре поможет разобраться в работе инструментов BPF, описанных далее в главе. Самое главное: пакеты проходят через ядро с использованием структуры sk_buff (socket buffer — буфер сокета). Сокеты определяются структурой sock, входящей в состав вариантов для разных протоколов, таких как tcp_sock. Сетевые протоколы присоединяются к сокетам с помощью структуры proto, например tcp_prot, udp_prot и т.д. Эта структура определяет функции обратного вызова для работы с протоколом, в том числе connect, sendmsg и recvmsg.