Skip to content

AddrMiner/smap

Repository files navigation

SMap

为科研人员和专职工作者设计的大规模网络测量框架

详细文档请参见SMap文档 请查看我们的主页AddrMiner

概述

SMap 是为大规模网络测量设计的 高性能编程框架,其基础功能与 ZMap 类似,但在 可扩展性工程化规范定制化能力 上进行了深度优化。SMap 基于现代编程语言RUST进行开发,具有高性能高稳定性代码清晰易维护等优势。与传统网络测量工具相比,SMap 的核心差异体现在:

框架化设计

  • 模块解耦:将探测模块、目标生成算法、结果处理等组件完全分离,用户可通过组合模块快速构建定制化工具。
  • 模式(Mode)机制:提供 cycle_v4file_reader 等基础模式作为模板,支持通过 ​≤100行代码 实现新探测逻辑。

网络测量工具对比

功能 SMap ZMap ZMapv6
自定义探测逻辑 ✅ 支持快速开发完全自定义的探测逻辑,提供宏和模块接口 ❌ 需修改核心代码 ❌ 需修改核心代码
IPv4/IPv6 双栈 ✅ 原生支持 ❌ 仅支持IPv4 ⚠️支持IPv4和IPv6,但部分核心功能缺失
可维护性 ✅ 基于RUST的无成本抽象技术,各核心组件完全独立,模块接口严格规范 ❌基于C编写,各部分没有独立封装 ❌基于C编写,各部分没有独立封装
自定义探测模块 ✅ 提供探测模块开发的统一规范,并支持自定义探测模块接口以用于活跃探测、拓扑探测等不同目的 ⚠️仅支持自定义活跃探测模块,且设计规范较为模糊 ⚠️仅支持自定义活跃探测模块,且设计规范较为模糊
探测算法热插拔 ✅ 支持嵌入任何类型的大规模网络测量算法 ❌ 仅能用于基础的网络测量任务 ❌ 仅能用于基础的网络测量任务
底层算法优化 ✅ 对核心底层算法进行深度优化,如优化后的乘法循环群迭代器算法等 ⚠️未优化的算法设计 ❌ 对IPv6等探测场景仅编写了能进行探测的最基础模块,黑名单等机制实际上无效

科研友好特性

  • 算法即插即用:内置 AddrMiner-S(IPv6 地址生成)、IPv6 Aliased Prefixes Checker(IPv6别名检测)、Pmap(活跃端口探测)等算法模块。
  • 全面的基础探测模式:内置各类基础探测模式,适用于各种大规模网络测量的常见任务。
  • 与大型探测系统快速集成:借助Rust的无成本抽象技术,SMap提供统一的输入和输出接口,外部工具可以通过构造统一的指令结构体进行控制。

📌 ​典型应用场景

  • 互联网普查(IPv6 地址空间测绘)
  • 关键基础设施拓扑发现
  • 新型网络协议部署监测

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages