TCP/IP - 几个重要数据结构

时间:2021-03-29 10:35:53

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协议紧密相关。