ZMap为什么能在一个小时内就扫描整个互联网?

发表于:2017-2-13 11:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:仲晨    来源:51Testing软件测试网采编

  传统上的TCP/IP需要“三次握手”报文交互,在此期间需要维持记录着与对方交互的状态。
  这种状态记录量是巨大的,占用内存和CPU资源很大。
  而ZMap索性就不进行三次握手,只进行第一个SYN,然后等待对方回复SYN-ACK,之后即RST取消连接。这样肯定会因网络原因丢失一定比例的数据,根据其实验,这个比例在2%左右。
  以上策略,在nmap中也有实现,即其TCP SYN扫描方式。
  关键性的问题出现在对回复的SYN-ACK进行seq number的校验。传统上就需要记录状态。
  而ZMap是将对方receiver ip地址进行hash,将其处理保存到了sender port和seq number两个字段中,当SYN-ACK回来的时候,就可以根据sender ip、receiver port、ack number这些字段进行校验。
  因此避免了状态存储,接近了网络带宽极限。
  性能方面:
  单台服务器,扫描整个IPv4地址空间,耗时45分钟,将所接1Gb的带宽占用了97%。
  不仅速度上比Nmap(TCP SYN模式)高不少,而且其设计的无状态机制,让其搜索成功的覆盖率也增加了。
  与Nmap等已有系统对比:
  NMap是一个通用网络监测工具,可以适用于不同协议、不同范围的测试
  而ZMap专做单端口、大范围的网络监测。
  这也让ZMap能在这单一领域做很多优化。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号