Chinaunix首页 | 论坛 | 博客
  • 博客访问: 657986
  • 博文数量: 185
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2107
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(185)

文章存档

2024年(1)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2015-08-16 17:16:05

第十二章 建立连接的过程
        分析服务器, 如何为数据块建立数据包, 并从底层向上层传递到服务程序的过程.
12.1 驱动程序接收并建立数据包
12.3 接收或转发IP数据包
        ......上一章

12.4 TCP数据包的处理
        struct net_protocol {
            ......
        };
        do_softirq()-->net_rx_action()-->process_backlog()-->netif_receive_skb()-->deliver_skb()-->ip_rcv()-->ip_rcv_finish()-->dst_input()-->ip_local_deliver()-->ip_local_deliver_finish()-->tcp_v4_rcv()-->...
        tcp_v4_rcv()-->pskb_may_pull()
                            -->__inet_lookup()-->__inet_lookup_established()
                                                         -->__inet_lookup_listener()
                            -->tcp_prequeue()
        ip_local_deliver_finish()将数据包(直接收到的或重组后的)交给传输层处理.
        tcp_v4_rcv()传输层tcp函数表的处理函数
        pskb_may_pull()检查调整数据饭T险CP头部
        
__inet_lookup()查找用来接收数据包的sock
        __inet_lookup_established()查找已经处于连接状态的sock结构
        __inet_lookup_listener()查找处于监听状态的sock结构
        tcp_prequeue()将数据包链入tcp_sock结构的预处理队列

12.5 3次握手过程
阅读(603) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~