Linux 内核网络协议栈中 inet_stream_ops 与 tcp_prot 的深度解析
在 Linux 内核网络协议栈中,TCP 协议的实现依赖于多个关键结构体的协作。其中,inet_stream_ops
和 tcp_prot
是两个核心结构体,它们分别属于不同的层次,共同完成从用户态系统调用到底层协议处理的完整链路。本文将从功能定位、协作关系、代码示例及设计哲学等方面,深入分析两者的角色与交互机制。
一、功能定位:分层职责
1. inet_stream_ops
(套接字操作层)
-
类型:
struct proto_ops
,定义套接字的通用操作接口。 -
核心职责:
-
处理用户态系统调用(如
bind
、connect
、accept
),提供与地址族无关的通用逻辑。 -
作为用户空间与内核协议栈的桥梁,隐藏底层协议细节。
-
-
关键函数:
-
.bind = inet_bind
:绑定本地地址。 - <
-