第二章 mbuf存储器缓存

一、mbuf分为四类:以m_flag类型为区分

1. 为0:单个mbuf,m_data指向缓存的任意位置

2. 为M_PKTHDR:说明是一个mbuf链表的第一个头mbuf,后面还有更多的mbuf,m_data指向后面缓存的任意位置

3. 为M_EXT:说明该mbuf使用了外部缓存(1024字节能节省存储器容量,2048能提升以太网性能)。m_data和m_ext.ext_buf共同指向外部缓存的地址,前者可以指向任何位置,后者只能指向地址的首部

4.     为M_EXT和M_PKTHDR:表明这是一个mbuf链的头mbuf,同时该mbuf也使用了外部缓存

二、mbuf中还有m_pkthdr.len和m_pkthdr.rcvif两个字段,这两个字段在mbuf承载输入分组的时候存在,负责指向一个接收接口的指针

三、在mbuf链中,如果承载的是一个完整的数据包,mbuf链中的第一个mbuf会单独承载数据包的首部(以太网、IP和TCP/UDP首部)

四、以接收以太网帧为例,讲述m_devget函数和m_pullup函数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值