zmap / zmap

ZMap is a fast single packet network scanner designed for Internet-wide network surveys.
https://zmap.io
Apache License 2.0
5.43k stars 907 forks source link

Using `--probes` > 1 gives inaccurate hit-rate #841

Closed phillip-stephens closed 5 months ago

phillip-stephens commented 5 months ago

Describe the bug --probes are used to account for packet drop, so a hit on even a single probe to a target should count as a hit for all probes sent to that target. However, the --dedup-method is excluding duplicate probes received, which lowers the overall hit-rate. In short, hit-rate should be calculated by targets hit successfully, not probes hit successfully.

Example

Using 1 Probe

~/zmap-dev on  main! ⌚ 18:14:15
$ sudo ./src/zmap 1.1.1.1/32 --probes=1 -p 80 -c 2
...
 0:00 0%; send: 0 0 p/s (0 p/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
1.1.1.1
 0:01 51%; send: 1 done (37 p/s avg); recv: 1 1 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 100.00%
 0:02 100%; send: 1 done (37 p/s avg); recv: 1 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 100.00%
 0:03 100%; send: 1 done (37 p/s avg); recv: 1 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 100.00%
Mar 25 18:14:24.398 [INFO] zmap: completed

Using 10 Probes

$ sudo ./src/zmap 1.1.1.1/32 --probes=10 -p 80 -c 2
...
 0:00 0%; send: 0 0 p/s (0 p/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
1.1.1.1
 0:01 51%; send: 10 done (291 p/s avg); recv: 1 1 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 10.00%
 0:02 100%; send: 10 done (291 p/s avg); recv: 1 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 10.00%
 0:03 100%; send: 10 done (291 p/s avg); recv: 1 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 10.00%

Environment: