1. socket结构体:
include/linux/net.h文件中。
特别注意结构体中的sk字段:
struct sock * sk; // 代表具体协议内容的sock结构指针
sock结构体根据使用的协议而挂入socket,每一种协议都有此结构变量。
socket是通用的套接字结构体,定义内容相对很少。
sock与具体使用的协议相关,定义内容相对庞大。
2. sock结构体:
公用部分:socket结构体。
通用部分:sock结构体。
专用部分:具体协议族使用的结构体,比如:inet_sock结构体。
重要的几个sk_buff结构体字段:
struct sk_buff * sk_send_head; // 发送数据包的队列头
3. sk_buff结构体:
sk_buff是一个数据包结构体。
每个协议都是用该结构体进行封装、载运数据包,每一个数据包都要用一个sk_buff数据结构来表示。
4. tcp_sock结构体:
定义非常大,其内容与tcp协议紧密相关。