inet_init()初始化分析

本文参看代码版本为2.6.35.8

inet_init 分析

    1,proto_register():分别注册变量tcp_prot,udp_prot,raw_prot。不负责的听说这里是注册到了私有链表,仅用于/proc。
    2,sock_register(inet_family_ops),在全局数组net_family里面注册inet_family_ops。
static const struct net_proto_family inet_family_ops = {
     .family = PF_INET,   
     .create = inet_create,  //创建socket时需要调用的函数
     .owner  = THIS_MODULE,
 };

    3,inet_add_protocol():分别注册变量icmp_protocol udp_protocol tcp_protocol,在全局数组inet_protos里面,填充IPPROTO_ICMP IPPROTO_TCP IPPROTO_UDP对应区域。猜测该数组用于ip层向上送数据时,被查找以确定正确的四层接收函数。tcp_protocol定义如下:
 static const struct net_protocol tcp_protocol = {
     .handler =  tcp_v4_rcv,  //最为重要的传输层接收函数
     .err_handler =  tcp_v4_err,    
     .gso_send_check = tcp_v4_gso
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值