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

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

文章分类

全部博文(186)

文章存档

2024年(2)

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-01 19:27:11

第七章 监听连接请求
7.1 内核的监听函数
        struct listen_sock {    //专用于监听的结构. 记录监听队列信息
            ......
        };
        struct request_sock {    //连接请求
        };
        struct {...} icsk_ack;    //连接过程中的"应答"目的. 
        sys_socketcall()-->sys_listen()-->inet_listen()-->inet_csk_listen_start()-->reqsk_quene_alloc()
                                                                                                                       -->inet_csk_delack_init()
        reqsk_quene_alloc()为接收队列分配对应连接国数量的监听结构
        inet_csk_delack_init()调用memset()将icsk_ack结构内容清零.

7.2 内核的监听队列
        sys_socketcall()-->sys_listen()-->inet_listen()-->inet_csk_listen_start()-->inet_hash()-->__inet_hash()-->__inet_hash_nolisten()-->__sk_add_node()
                                                                                                                                                                        -->inet_listen_wlock()

        __inet_hash_nolisten()将sock结构链入确定连接的哈希桶中.
        __inet_hash()处理一个struct sock结构数据. 将sock结构链入到TCP的绑定哈希结构tcp_hashinfo中. 
        __sk_add_node()将服务器的sock结构链入到监听队列
阅读(435) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~