Chinaunix首页 | 论坛 | 博客
  • 博客访问: 665641
  • 博文数量: 156
  • 博客积分: 4833
  • 博客等级: 上校
  • 技术积分: 1554
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-21 19:36
文章分类

全部博文(156)

文章存档

2016年(2)

2013年(1)

2012年(13)

2011年(30)

2010年(46)

2009年(29)

2008年(23)

2007年(12)

分类: LINUX

2010-05-05 18:08:25



socket PF_PACKET sock_raw:->packet_create->dev_add_pack Modify ptype_base|ptype_all:二层协议
接收过程:netif_rx->process_backlog->netif_receive_skb:ptype_base|ptype_all
    

socket AF_INET  sock_raw:->inet_create (list_for_each_entry_rcu(answer, &inetsw[sock->type], list) find SOCK_RAW )->hash(raw_hash_sk) Modify raw_v4_hashinfo:IP上层协议   
接收过程: ip_rcv->ip_rcv_finish->ip_route_input->ip_local_deliver->ip_local_deliver_finish
->raw_local_deliver:raw_v4_hashinfo
   
    inet_init->inet_register_protosw:注册inetsw_array
   
    inetsw_array[]包含
  {
           .type =       SOCK_RAW,
           .protocol =   IPPROTO_IP,    /* wild card */
           .prot =       &raw_prot,
           .ops =        &inet_sockraw_ops,
           .no_check =   UDP_CSUM_DEFAULT,
           .flags =      INET_PROTOSW_REUSE,
   }
   AF_INET RAW socket 接口 一直存在
       
阅读(6679) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~