Chinaunix首页 | 论坛 | 博客
  • 博客访问: 828929
  • 博文数量: 157
  • 博客积分: 542
  • 博客等级: 中士
  • 技术积分: 1696
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-21 20:21
文章分类
文章存档

2017年(1)

2016年(2)

2015年(6)

2014年(42)

2013年(77)

2012年(19)

2011年(10)

分类: LINUX

2013-05-08 14:58:14



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 接口 一直存在
       
阅读(1951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~