首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一分钟了解原始套接字是什么

一分钟了解原始套接字是什么

原创
作者头像
编程菜鸟
发布2026-04-04 14:16:36
发布2026-04-04 14:16:36
1210
举报

原始套接字(Raw Socket)是什么?

你可以把普通网络通信想象成:

你要寄快递 → 交给快递员 → 快递员帮你打包、贴地址、装车、运输 → 对方收到。

不用管怎么打包、怎么运输,只管发内容。

这就是我们平时写程序用的普通套接字(TCP/UDP)


原始套接字就是:

不让快递员插手,你自己亲手打包、自己写地址、自己贴邮票、自己装车,甚至自己伪造一个包裹。

特点一句话:

可以自己构造、自己发送、自己接收最底层的网络数据包。


外行能理解的三个关键点

1. 普通套接字:只负责 “内容”

你发消息,系统自动帮你:

  • 加 IP 头
  • 加 TCP/UDP 头
  • 校验、分片、重传

你只管发数据,底层全不管。

2. 原始套接字:你可以 “亲手造包”

你可以:

  • 自己写 IP 地址
  • 自己写源 MAC 地址
  • 自己构造 TCP 头
  • 自己发 ICMP(ping)包
  • 甚至伪造一个不存在的 IP 地址发包

3. 它能干什么?(外行版用途)

  • 抓包、嗅探网络流量
  • 做端口扫描、ping 工具
  • 做防火墙、入侵检测
  • 做网络攻防、漏洞利用
  • 做自定义协议

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原始套接字(Raw Socket)是什么?
  • 外行能理解的三个关键点
    • 1. 普通套接字:只负责 “内容”
    • 2. 原始套接字:你可以 “亲手造包”
    • 3. 它能干什么?(外行版用途)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档