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

网络
全球互联网包含数十亿个不重复地址,扫描整个互联网是一项劳动密集型工作,需要耗费几周甚至几个月。现在,密歇根大学研究人员发布了一个工具ZMap,用一台普通的服务器耗时44分钟就能扫描全部互联网地址。

全球互联网包含数十亿个不重复地址,扫描整个互联网是一项劳动密集型工作,需要耗费几周甚至几个月。现在,密歇根大学研究人员发布了一个工具ZMap,用一台普通的服务器耗时44分钟就能扫描全部互联网地址。扫描工具如Nmap使用的方法是发送请求然后监听回应,虽然请求可以同步进行,但为了记录每一个未回应请求需要大量开销,导致速度下降。而ZMap使用了不同的方法,它发生的是无状态请求,发送之后就忽略了,它不需要记录未回应请求的名单,而是在发送的数据包中编码身份信息去识别回应,从而降低开销。ZMap发送数据包的速度是Nmap的上千倍。Nmap需要数周时间扫描全部网址,而ZMap只要几十分钟。密歇根研究人员利用ZMap发现,100万***网站内HTTPS使用率一年内增加了23%。

传统上的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能在这单一领域做很多优化。

 

责任编辑:林琳 来源: 知乎每日精华
相关推荐

2013-08-21 15:42:25

2015-04-02 11:17:20

2013-08-20 15:03:35

2018-01-31 09:25:39

2021-12-30 09:40:33

CentOS家庭实验室Linux

2019-12-03 09:20:50

前端前端工程师互联网

2015-07-22 13:10:34

互联网行业前端工程师

2014-11-06 10:13:14

互联网扫描扫描工具ZMap

2016-11-14 16:37:44

2015-11-16 14:08:39

医疗行业互联网

2022-01-23 16:13:06

比特币加密货币暴跌

2021-10-18 16:49:27

工业互联网安全

2013-03-04 16:45:49

2018-03-22 07:06:20

互联网互联网++互联网

2012-05-11 10:24:05

SQL数据库SQLitl

2019-10-08 15:08:23

互联网数据技术

2019-09-09 09:29:27

互联网程序员职业

2021-09-23 22:34:03

区块链互联网技术

2019-07-01 15:39:33

互联网

2021-10-25 15:02:34

物联网人工智能IoT
点赞
收藏

51CTO技术栈公众号