sk_buff 剖析
?
基于内核版本2.6.37
本文主要剖析:sk_buff结构体、sk_buff操作函数、各协议层对其处理
?
主要源文件:linux-2.6.37/ include/ linux/ skbuff.h
linux-2.6.37/ include/ linux/ skbuff.c
?
==================================================================================================
一些相关数据结构
?
?
传输层调用tcp_v4_do_rcv()处理传输层头报文。如果连接已建立,并且TCP报文中有数据,
就调用skb_copy_datagram_iovec()将从skb->data偏移tcp_header_len开始的数据复制给
用户应用程序。如果由于某些原因不能复制数据给用户应用程序,就将sk_buff的data指针
向前移动tcp_header_len,再将其发往套接字的接受队列排队。