- 2
- 0
- 约1.53万字
- 约 19页
- 2017-05-28 发布于贵州
- 举报
linux tcpip协议栈研究
sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在include/linux/skbuff.h中定义,并包含很多成员变量供网络代码中的各子系统使用。
这个结构在linux内核的发展过程中改动过很多次,或者是增加新的选项,或者是重新组织已存在的成员变量以使得成员变量的布局更加清晰。它的成员变量可以大致分为以下几类:
Layout 布局
General 通用
Feature-specific功能相关
Management functions管理函数
这个结构被不同的网络层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。L4向L3传递前会添加一个L4的头部,同样,L3向L2传递前,会添加一个L3的头部。添加头部比在不同层之间拷贝数据的效率更高。由于在缓冲区的头部添加数据意味着要修改指向缓冲区的指针,这是个复杂的操作,所以内核提供了一个函数skb_reserve(在后面的章节中描述)来完成这个功能。协议栈中的每一层在往下一层传递缓冲区前,第一件事就是调用skb_reserve在缓冲区的头部给协议头预留一定的空间。
skb_reserve同样被设备驱动使用来对齐接收到包的包头。如果缓冲区向上层协议传递,旧的协议层的头部信息就没什么用了。例如,L2的头部只有在网络
您可能关注的文档
- 7.平板点餐解决案例.doc
- 74系列集成电路地分类及区别 电平分类.doc
- 74系列芯片简介——功能及描述.doc
- 74系列芯片引脚图和逻辑功能表.doc
- 600年地养生秘诀.pdf
- 7.常见运动损伤及处理.ppt
- 76810机芯电路分析及检修.doc
- 75t/h煤矸石低倍率循环流化床锅炉地研究.doc
- 756例眩晕证病例分析和证治规律探讨_冼绍祥.pdf
- 7上1.12《有理数地乘法(一)》课案(教师用).doc
- 2026年山东省滨州市惠民县中考化学一模试卷(含答案).pdf
- 2026年山东省济南市历城区中考化学二模试卷(含答案).pdf
- 2026年山东省烟台市福山区中考化学模拟试卷(含答案).pdf
- 2026年山东省临沂市郯城县中考化学一模(含答案).pdf
- 2026年四川省德阳市中江县中考化学二诊试卷(含答案).pdf
- 2026年四川省绵阳市梓潼县中考化学二模试卷(含答案).pdf
- 2026年新疆乌鲁木齐市沙依巴克区中考化学适应性试卷(含答案).pdf
- 2026年重庆市永川区中考化学质检试卷(含答案).pdf
- 2026年重庆市第一中学校中考化学全真模拟试卷(二)(含答案).pdf
- 安徽池州市第二中学等校2025-2026学年高一下学期期中物理试卷A(含答案).pdf
原创力文档

文档评论(0)