linux socket pf inet,PF_PACKET AF_INET raw socket 区别

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 接口 一直存在

阅读(5627) | 评论(0) | 转发(2) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值