Какой модуль ядра linux управляет ip протоколом?
Интересно как отправляются данные по сети внутри linux, то есть где формируется пакет, к которому прикрепляются заголовки, ip адрес и кто дальше это отправляет на сетевую карту чтобы по проводам побежали данные.
Ответы (1 шт):
Книга 2003-го года: Linux Networking Architecture
Презентация 2013-го года: The TCP/IP Stack in the Linux Kernel
Исходные тексты 2021 года: https://github.com/torvalds/linux/tree/master/net
Собственно реализация стека TCP/IP:
- Для IPv4 https://github.com/torvalds/linux/tree/master/net/ipv4
- Для IPv6: https://github.com/torvalds/linux/tree/master/net/ipv6
Помимо TCP/IP ядро линукса поддерживает много других протоколов. Их реализации лежат в каталогах внутри /net.
Краткое описание того, как формируется пакет, вы найдёте в презентации. Код, который строит пакеты и отправляет их в сетевой интерфейс, найдёте по ссылкам.