Viene calcolata la frazione di completamento per host ( scan_engine.cc
UltraScanInfo::getCompletionFraction()
) as :
ports_finished * ( maxtries - 1 ) + probes_sent
_______________________________________________
maxtries * numprobes
La percentuale di completamento totale viene calcolata da questo attraverso tutti gli host.
In una scansione TCP ( -sT
) il numero di sonde numprobes
è fissato al numero di porte (
scan_engine.cc UltraScanInfo::numProbesPerHost()
) e non cambia mai dopo l'inizializzazione, quindi maxtries
è il termine interessante del calcolo. ports_finished
e probes_sent
sono contatori incrementali, il precedente funziona a 1.0 quando ports_finished == probes_sent == numprobes
. numprobes
sarà 1000, il numero predefinito di sonde TCP nell'esempio che hai fornito.
Se maxtries
aumenta (a causa del timeout e riprova) la quantità stimata di lavoro da fare aumenta, e quindi la frazione di lavoro completata diminuisce. ( --max-retries
può controllare questo, anche se con -sT
per la connessione TCP dallo stack IP OS connect()
alcuni degli altri parametri timeout / retry che i supporti di nmap sono inefficaci).
Il conteggio di maxtries
non è ingenuo, è il limite massimo di tentativi (+1) per una porta esplorata con successo nella scansione fino a quel momento. Se aggiungi -d
(debug) vedrai il messaggio "Aumento di max_successful_tryno per 1.2.3.4 a 1 (caduta di pacchetti)". Questo non è lo stesso messaggio di "Aumento del ritardo di invio ...". Probabilmente vedrai entrambi i messaggi quando c'è una perdita di pacchetti durante una scansione.
Quello che hai visto allora è un probe TCP riuscito per un host, ma ha richiesto un nuovo tentativo, si è verificato tardi nella scansione ed è riuscito ad aumentare il limite superiore della stima del lavoro. Probabilmente ha corretto il completamento di oltre l'1% e la perdita di pacchetti probabilmente causa un aumento dei timeout, riducendo la velocità di scansione. Sono trascorsi circa 4 minuti tra le due linee di stato, quindi il calo nel completamento non era semplicemente dello 0,01%.
Il tempo di scansione del servizio è un calcolo separato.