Ich verwende Scapy, um einige gedumpte Pakete wiederzugeben, in denen ich den TTL-Wert ändere. Ich habe sogar mit TTL = 1 sehr merkwürdige Ergebnisse bekommen.nicht alle ICMP-Zeitüberschreitungsnachrichten erhalten: Warum?
Wenn ich meine Teststunden voneinander getrennt habe, kann ich von ungefähr 40% bis 95% der beantworteten Pakete mit einer ICMP-Zeitüberschreitungsnachricht erhalten. Dann kann ich nicht beantwortete Pakete rekursiv wiederholen und jedes Mal mehr oder weniger den gleichen Prozentsatz an beantworteten Paketen erhalten wie zuvor.
Warum ist das?
Ich habe Pakete mit einem Intervall von 0,1 Sekunden zwischen einander gesendet. Das sollte in Ordnung sein, oder? Mein Timeout-Wert ist 10s, was sehr konservativ sein sollte.
Was ist hier falsch?
ICMP Rate-Limiting war auch meine Vermutung, aber dann habe ich heute versucht, alles wieder mit einem Inter-Paketintervall von nur 5 Sekunden zu senden, und ich habe immer noch keine Antwort für mindestens 6-7 Pakete aus erhalten meine 50 (kleiner Test). Ich benutze die 'sr' Funktion in Scapy. Also dachte ich, ich würde es packen und dann für eine Sekunde pausieren. Nun, diesmal wird jedes * einzelne Paket beantwortet. Ich denke, es ist ein Problem mit der Implementierung von 'sr'. –
Ich habe ähnliche Probleme mit "scapy" gesehen, es ist langsam zum Senden/Empfangen von Verkehr; Bei einem Projekt habe ich tatsächlich 'tcpdump' als Hintergrundprozess verwendet, der in eine '.pcap'-Datei geschrieben hat, und dann die Datei in' scapy' geparst, um zu sehen, ob ich die richtige Antwort bekommen habe. –
Ich verstehe. Kennen Sie Alternativen zu Scapys 'sr'-Funktion? Ich muss nur Pakete mit einem modifizierten TTL-Wert senden und sie mit der entsprechenden ICMP-Nachricht paaren. Es sah in Scapy so einfach aus, aber der Aufruf von 'sr' für jedes Paket dauert Ewigkeiten. –