加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux内核分析 - 网络[十二]:UDP模块 - socket

发布时间:2016-01-23 17:23:49 所属栏目:Linux 来源:网络整理
导读:内核版本:2.6.34 这部分内容在于说明socket创建后如何被内核协议栈访问到,只关注两个问题:sock何时插入内核 表的,sock如何被内核访问的。对于核心的sock的

inetsw是在inet_init()时被注册的,有三种:tcp, udp, raw,由于我们创建的是udp socket,所以查到的 是第二项,udp_prot。

static struct inet_protosw inetsw_array[] = 

    
{
 {
  .type =       SOCK_STREAM,
  .protocol =   IPPROTO_TCP,     
  .prot =       &tcp_prot,     
  .ops =        &inet_stream_ops,     
  .no_check =   0,     
  .flags =      INET_PROTOSW_PERMANENT |     
         INET_PROTOSW_ICSK,     
 },     
         
 {     
  .type =       SOCK_DGRAM,     
  .protocol =   IPPROTO_UDP,     
  .prot =       &udp_prot,     
  .ops =        &inet_dgram_ops,     
  .no_check =   UDP_CSUM_DEFAULT,     
  .flags =      INET_PROTOSW_PERMANENT,     
       },     

       {     
        .type =       SOCK_RAW,     
        .protocol =   IPPROTO_IP, /* wild card */ 
        .prot =       &raw_prot,     
        .ops =        &inet_sockraw_ops,     
        .no_check =   UDP_CSUM_DEFAULT,     
        .flags =      INET_PROTOSW_REUSE,     
       }     
};

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读