奇亿娱乐动态

sk_buff内存空间结构情景与闭联垄断(二)

Writer: admin Time:2023-08-01 Browse:179

  lroom中用户数据块地域:skb_put用于点窜指向数据区末端的指针tail:

  可能看到tail指针的移动是蔓延数据地区,即数据区向下伸展len字节,并刷新数据区长度len。

  增加headroom地区的协议头:skb_push函数用于转变data指针,填补头部契约,与skb_reserve()相像,也并没有确实向数据缓存区中填充数据,而可是变更数据缓存区的头指针data。数据由其他们函数复制到数据缓存区中。函数如下:

  如下两张图阔别是由传输层、搜集层,数据包向下传递时data指针改观,举办头部和议的封装。

  可能看到在数据包封装的经过中,每一层改观data指针进行数据报头的封装。

  数据报文解封装,打消协议头:skb_pull经历将data指针向下移动,举办数据报文的解封装,函数如下所示:

  如下图所示,在收包历程上,向上层和议,如下汇集层向传输层传送的时刻,挪用skb_pull举办数据包的解封装。

  以上便是struct sk_buff的四大指针的关连驾御,始末相识可得:

  data指针在数据包头部封装息争封装的过程中改观,指向各层的同意头,skb_push函数将data的指向,向低地址迁移(进步),完工协议头空间的攻下,skb_pull函数将data的指向,向高地点转移(向下),完工同意头的解封装。

  tail指针在增加使用层用户缓冲数据时蜕变,skb_put函数将该指针向高地方搬动(向上),竣工用户数据空间的霸占。

奇亿娱乐动态

CONTACT US

电话:400-123-4567

Email: admin@baidu.com

传真:+86-123-4567

手机:13888888888