Zmap的原理(回复包校验机制)

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这些字段进行校验。
因此避免了状态存储,接近了网络带宽极限。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值