TCP输入 之 tcp_v4_rcv

Posted wanpengcoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP输入 之 tcp_v4_rcv相关的知识,希望对你有一定的参考价值。

tcp_v4_rcv函数为TCP的总入口,数据包从IP层传递上来,进入该函数;其协议操作函数结构如下所示,其中handler即为IP层向TCP传递数据包的回调函数,设置为tcp_v4_rcv;

1 static struct net_protocol tcp_protocol = {
2     .early_demux    =    tcp_v4_early_demux,
3     .early_demux_handler =  tcp_v4_early_demux,
4     .handler    =    tcp_v4_rcv,
5     .err_handler    =    tcp_v4_err,
6     .no_policy    =    1,
7     .netns_ok    =    1,
8     .icmp_strict_tag_validation = 1,
9 };

 

在IP层处理本地数据包时,会获取到上述结构的实例,并且调用实例的handler回调,也就是调用了tcp_v4_rcv;

以上是关于TCP输入 之 tcp_v4_rcv的主要内容,如果未能解决你的问题,请参考以下文章

TCP被动打开 之 第一次握手-接收SYN

Linux2.6内核协议栈系列--TCP协议2.接收

TCP主动打开 之 第一次握手-发送SYN

TCP定时器 之 重传/延迟ACK/保活 定时器初始化

TCP 之 FIN_WAIT_2状态处理流程

小小的 likely 背后却大有玄机!