sk_buff结构体成员
时间: 2023-07-14 12:57:19 浏览: 199
[linux]sk_buff结构体详解
5星 · 资源好评率100%
sk_buff是Linux网络协议栈中一个非常重要的数据结构,它用于管理网络数据包。sk_buff结构体的成员包括:
1. struct sk_buff *next:下一个sk_buff结构体的指针,用于形成链表。
2. struct sk_buff *prev:上一个sk_buff结构体的指针,用于形成链表。
3. struct sock *sk:指向关联的套接字的指针。
4. struct sk_buff_head *list:指向该sk_buff结构体所在的链表的指针。
5. unsigned char *head:数据包的头指针。
6. unsigned char *data:数据包的数据指针。
7. unsigned char *tail:数据包的尾指针。
8. unsigned char *end:数据包的结束指针。
9. struct net_device *dev:指向发送或接收该数据包的网络设备的指针。
10. unsigned int len:数据包的长度。
11. unsigned int data_len:数据包实际包含的数据长度。
12. unsigned int truesize:该sk_buff结构体占用的内存空间大小。
13. unsigned int protocol:数据包的协议类型。
14. __u16 vlan_proto:VLAN标签协议类型。
15. __u16 vlan_tci:VLAN标签的TCI值。
16. unsigned char vlan_present:表示该数据包是否带有VLAN标签。
17. unsigned char mac_header:MAC头部在skb->data中的偏移量。
18. unsigned char transport_header:传输层头部在skb->data中的偏移量。
19. unsigned char network_header:网络层头部在skb->data中的偏移量。
20. unsigned char inner_transport_header:内层传输层头部在skb->data中的偏移量。
21. unsigned char inner_network_header:内层网络层头部在skb->data中的偏移量。
22. unsigned char transport_header_was:表示skb->transport_header字段是否已被修改。
23. unsigned char network_header_was:表示skb->network_header字段是否已被修改。
24. unsigned char mac_header_was:表示skb->mac_header字段是否已被修改。
25. unsigned char cb[48]:可用于存储协议栈的私有数据。
26. sk_buff_data_t skb_mstamp:数据包的时间戳。
27. sk_buff_data_t skb_iif:数据包的输入接口索引。
28. unsigned int priority:数据包的优先级。
阅读全文