当前位置: 首页 > news >正文

一文读懂:原始套接字的前世今生

原始套接字该套接字允许对较低层协议如 IP 或 ICMP进行直接访问常用于网络协议分析检验新的网络协议实现也可用于测试新配置或安装的网络设备。这类套接字可用来接受 ICMP 报文并解析出相应字段。ICMP 是 Internet Control Message Protocol(Internet控制消息协议) 的缩写。ICMP 协议是一种面向无连接的协议用于传输出错报告控制信息。它是 TCP/IP 协议族的一个子协议用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据但是对于用户数据的传递起着重要的作用。当程序出现了错误它就可以向你提供一份错误报告让你得知错误的原因。就好比是公司里的某位员工哪天有事不去上班他就要向领导请假写好“请假条”告知自己的请假原因如果无故旷工领导肯定是会找麻烦的。ICMP 报文内容是放在 IP 数据包的数据部分里来互相交流的。也就是从 ICMP 的报文格式来说ICMP 是 IP 的上层协议。一个 ICMP 报文包括 IP 报头至少 20 字节、ICMP 报头至少 8 字节和 ICMP 报文属于 ICMP 报文的数据部分。当 IP 报头中的协议类型字段值为 1 时就说明这是一个 ICMP 报文。ICMP 报头如下图解析 ICMP 报文可以使用 Python 中 struct 模块的 upack() 函数来实现。其参数fmtstr: 格式化字符串packet: 需要解析的字符数组该函数的返回值可以是多个根据格式串中指定的类型返回到相应变量中。例如a,b,c,dstruct.unpack(5s6sif,bytes)则从 bytes 这个数组中解析出a5 个字符的字符串5sb6 个字符的字符串(6s)c整型(i)d浮点型数据(f)。对于 Ping 命令的 ICMP 报文我们需从 IP 包中取出 ICMP 报头位于 20 到 28 字节从中可以取出报文类型 type,代码 code校验和 checksum报文 ID 及报文序号字段对于类型为 1 的报文且其 ID 为需要接收的报文从 28 字节后面开始解析发送的数据为发送时间数据类型及长度根据发送的数据来确定。
http://www.rkmt.cn/news/1300770.html

相关文章:

  • 认识Python网络套接字编程客户端代码实现
  • 从零打造可穿戴发光鳞甲:3D打印与CircuitPython灯光编程实战
  • 深入解析User-Agent:从字符串到结构化数据的标准化实践
  • MCP-Commander:让AI助手操作本地文件与命令行的智能接口
  • Linux内核升级C11标准:从C89到现代C语言的演进与实战解析
  • QQ截图独立版终极指南:免费高效的屏幕捕获与OCR文字提取工具
  • 个人开源项目工程化实践:从代码组织到自动化维护
  • 多智能体系统架构设计:从核心原理到AgentOrg工程实践
  • C++ DTL库实战:程序化生成地牢与迷宫地图的核心算法与应用
  • 【Midjourney玩具相机风格终极指南】:20年AI影像专家亲授5大参数调优公式+3类胶片噪点模拟秘技
  • Raptor:基于Rust的毫秒级大型代码库索引搜索引擎原理与实践
  • 免费开源的原神工具箱:Snap.Hutao如何彻底改变你的游戏体验
  • RAG知识库实战:LangChain+Chroma搭建本地问答系统,解决幻觉与知识更新
  • 基于MCP协议的SQL工具链:AI智能体与数据库交互的标准化实践
  • 构建高效配置管理体系:从配置即代码到GitOps实践
  • 3个技巧让SD-PPP插件提升Photoshop设计效率300%
  • 系统管理员如何用AI助手提升运维效率:Claude-Code实践指南
  • 2026年AI新趋势:智能代理崛起
  • Arm CCI缓存一致性互联组件原理与应用解析
  • 规则引擎实践:从配置文件到核心决策系统的工程化演进
  • 智能编码代理Kode-Agent:从AI代码补全到自主任务执行的范式演进
  • UnderTheSea:越南语NLP工具箱实战指南与项目应用
  • 基于AI智能体的Odoo ERP自动化:架构、实现与实战指南
  • 基于MCP协议构建AI工具服务器:从原理到开发实践
  • QLC闪存可靠性提升:系统级优化与轻量级健康管理方案
  • Takeoff Community:开源大模型推理引擎部署与优化实战
  • 嵌入式开发实战:ADC、I2C与触摸传感从原理到应用
  • Godot游戏引擎与强化学习结合:从零构建AI智能体的实战指南
  • 基于CircuitPython与NeoPixel的智能运动鞋灯光系统设计与实现
  • 第2讲:数组(Array)