Raw-socket 与 标准 socket 的区别
- Raw-socket (原始套接字) 置于操作系统的网络核心
- 标准 socket 在 TCP 和 UDP 协议外围
- Raw-socket 直接使用 IP 协议, 无连接
Raw-socket 实现的功能
- 发送自定义的 IP 包
- 发送 ICMP 包
- 进行网络嗅探, 捕获网络数据包
- 分析所有经过网络的数据报
- 伪装本地的IP地址
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 来处理, 因此, 要

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

被折叠的 条评论
为什么被折叠?



