网络编程-004-Raw-socket

本文探讨了Raw-socket与标准socket的区别,强调Raw-socket能直接使用IP协议并实现自定义IP包发送、ICMP包发送及网络嗅探等功能。介绍了Raw-socket的编程模型,包括创建过程如使用WSASocket和设置socket选项如ioctlsocket。通过设置不同的协议类型,如IPPROTO_ICMP,可以捕获特定协议的数据包,并详细阐述了如何创建和使用Raw-socket。

Raw-socket 与 标准 socket 的区别

  • Raw-socket (原始套接字) 置于操作系统的网络核心
  • 标准 socket 在 TCP 和 UDP 协议外围
  • Raw-socket 直接使用 IP 协议, 无连接

Raw-socket 实现的功能

  • 发送自定义的 IP 包
  • 发送 ICMP 包
  • 进行网络嗅探, 捕获网络数据包
  • 分析所有经过网络的数据报
  • 伪装本地的IP地址

Raw-socket 编程模型

Raw-socket 编程模型
虚线部分可选

创建 Raw-socket

  • SOCKET sock=socket (AF_INET, SOCK_RAW, IPPROTO_ICMP);
  • 协议类型可指定
    • IPPROTO_ICMP
    • IPPROTO_IGMP
    • IPPROTO_TCP
    • IPPROTO_UDP
    • IPPROTO_IP
    • IPPROTO_RAW
  • 协议类型指明所要接收的协议包
    • 如果是 IPPROTO_TCP 这种协议, 当操作系统内核碰到 IP 头中 protocol 域和创建 socket 所使用参数 protocol 相同的IP包, 就会交给这个 raw socket 来处理, 因此, 要
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值