Chinaunix首页 | 论坛 | 博客
  • 博客访问: 658000
  • 博文数量: 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-14 20:17:10

第十二章 建立连接的过程
        分析服务器, 如何为数据块建立数据包, 并从底层向上层传递到服务程序的过程.
12.1 驱动程序接收并建立数据包
        struct softnet_data {
                ......
        };
        struct napi_struct {
                ......
        };
                ......
12.2 查找数据包类型且调用其处理函数
        struct packet_type {
            .....
        };
        do_softirq()-->net_rx_action()-->process_backlog()-->netif_receive_skb()-->deliver_skb()-->ip_rcv()-->skb_share_check()
                                                                                                                                                                     -->pskb_may_pull()
                                                                                                                                                                     -->ip_hdr()
                                                                                                                                                                     -->ip_fast_csum()
                                                                                                                                                                     -->pskb_trim_rcsum()
                                                                                                                                                                     -->ip_rcv_finish()
        
        netif_receive_skb()向上层传递数据, 最终目标是传递给服务器程序.
        deliver_skb()调用数据包类型的处理函数
        ip_rcv()数据包类型(struct packet_type)的处理函数
        skb_share_check()检查是否要克隆一个数据包
        pskb_may_pull()检查是否包含IP头部
        ip_hdr()获取ip头部
        ip_fast_csum()检查ip检验和
        pskb_trim_rcsum()为传输层调整数据包与检验和
        ip_rcv_finish()明确数据包是本地接收还是转发(明确网络设备和出口), 处理ip选项内容

12.3 接收或转发IP数据包
12.4 TCP数据包的处理
12.5 3次握手过程
阅读(464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~