当前位置: 技术问答>linux和unix
sk_buff是一个双链表,我想问关于这个双链表的问题
来源: 互联网 发布时间:2016-04-18
本文导语: 1、为什么要将skb搞成双链表的形式,为什么要这样管理? 2、是否有些skb组成链,有些还是单个的? 3、如果2为是,那么什么情况下要组链,什么情况下不组链,能否举例说一下,或者通俗的讲解一下。 ...
1、为什么要将skb搞成双链表的形式,为什么要这样管理?
2、是否有些skb组成链,有些还是单个的?
3、如果2为是,那么什么情况下要组链,什么情况下不组链,能否举例说一下,或者通俗的讲解一下。
2、是否有些skb组成链,有些还是单个的?
3、如果2为是,那么什么情况下要组链,什么情况下不组链,能否举例说一下,或者通俗的讲解一下。
|
1.双向链表方便遍历。你要考虑到二层收到的数据帧放入sk_buf组成的链表中,然后链表会传递到IP层。发送数据也类似,上层的数据装入sk_buf后传递到下层。这样同样的一个链表会被多层处理,这就涉及到添加、去除头部的操作,就会有向前和向后的遍历操作,自然需要涉及成双向链表的了。
2,3. 帧大的,如果一个sk_buf放不下,当然需要多个sk_buf; 如果帧小的足够一个sk_buffangixa,那当然只用一个sk_buf。这是看实际情况而定,这个问题问得没意义。
2,3. 帧大的,如果一个sk_buf放不下,当然需要多个sk_buf; 如果帧小的足够一个sk_buffangixa,那当然只用一个sk_buf。这是看实际情况而定,这个问题问得没意义。