linux – skbuff frags和frag_list之间的区别
发布时间:2020-12-14 01:11:06 所属栏目:Linux 来源:网络整理
导读:sk_buff有两个地方可以存储下一个碎片数据: skb_shinfo(head)-frag_list skb_shinfo(head)-frags[] 请有人解释这两种处理碎片的方法之间的差异. 谢谢,最诚挚的问候! 解决方法 两者都用于不同的情况. 断支[] 当您的设备支持分散 – 聚集I / O,并且您希望它
sk_buff有两个地方可以存储下一个碎片数据:
skb_shinfo(head)->frag_list skb_shinfo(head)->frags[] 请有人解释这两种处理碎片的方法之间的差异. 谢谢,最诚挚的问候! 解决方法
两者都用于不同的情况.
断支[] 当您的设备支持分散 – 聚集I / O,并且您希望它进行数据组合等时,您可以填充frags []结构,从第2个片段开始直到第n个片段.第一个片段总是由数据和尾指针指定.其余的片段填充在frags []结构中.如果不使用分散集合,则此变量为空. frag_list 这是IP片段列表.这将在ip_push_pending_frames期间填充. sk_buff0->next = sk_buff1 sk_buff1->next = sk_buff2 ... sk_buffn-1->next = sk_buffn 调用ip_push_pending_frames之后 sk_buff0->frag_list = sk_buff1 sk_buff1->next = sk_buff2 ... sk_buffn-1->next = sk_buffn 简单的说 > frags []用于分散 – 聚集I / O缓冲区> frag_list用于ip片段 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |