一、模块初始化流程对比
1. IPv4 (AF_INET)
在 inet_init
函数中,IPv4 协议栈的初始化过程体现了分层网络模型的思想:
-
协议分层注册
通过proto_register
依次注册 TCP、UDP、RAW 等传输层协议,通过inet_add_protocol
添加 ICMP、IGMP 等网络层协议。 -
Socket 框架集成
调用sock_register(&inet_family_ops)
将 IPv4 协议族挂载到内核的 socket 子系统,使得socket(AF_INET, ...)
能够被用户空间调用。 -
模块联动初始化
按顺序初始化 ARP(arp_init
)、IP 路由(ip_init
)、TCP 滑动窗口(tcp_init
)等核心模块,形成完整的协议栈。
2. AF_PACKET
packet_i