2017-07-12 3 views
0

Ich spiele von einer .pcap-Datei, die ein einzelnes UDP-Datagramm enthält, das in zwei Frames fragmentiert wurde. Wenn Sie tcpreplay oder scapy verwenden, zeigen beide Programme an, dass sie beide Frames gesendet haben, aber ich empfange nur 1 auf dem direkt verbundenen Gerät. Irgendwelche Ideen warum?Fragmentierter UDP-Frame - nur ein Frame beim Senden mit tcpreplay oder scapy empfangen

Paketerfassung befindet here

Edit: das angeschlossene Gerät ist eine Firewall und ich tcpdump laufen lasse, so würde ich beide Rahmen

EDIT2 erwarten zu sehen: tcpdump auf der Firewall alle Pakete gedruckt werden soll empfängt , selbst wenn es aus irgendeinem Grund fallen würde. Dies ist jedoch die einzige Paket tcpdump druckt:

968.681737 lan in 172.23.0.5.1812 -> 172.16.0.4.37507: udp 1434 (frag 4486:[email protected]+)

+0

Wenn das empfangende Gerät nur die normale Socket-API verwendet, um UDP zu empfangen, funktioniert der IP-Stack auf dem Gerät möglicherweise ordnungsgemäß und stellt diese 2 Pakete wieder zusammen und liefert ein Datagramm an die Anwendung wie es soll. – nos

+0

Ich werde die Beschreibung oben bearbeiten - das empfangende Gerät ist ein Netzwerkgerät (eine Firewall), so würde ich erwarten, beide Frames zu sehen, wenn tcpdump auf der Firewall verwenden, aber ich sehe nur das große Fragment, nicht das letzte Stück. – john

+0

Dann müssen Sie genau beschreiben, wie Sie beobachten/feststellen, dass das Gerät nur ein Paket "sieht". Einige Firewalls würden sicherlich UDP-Pakete wieder zusammensetzen, um Firewall-Regeln richtig anzuwenden. Andere könnten, je nach Konfiguration, eines der Fragmente wegwerfen, Sie müssen eine detaillierte Beschreibung dessen geben, was Sie tun und wie Sie Ihre Firewall konfiguriert haben, damit jeder Hilfe dazu leisten kann. – nos

Antwort

0

Sie erhalten UDP-Datagramme, nicht Fragmente. Wenn beide Fragmente ankommen, kombiniert die IP-Schicht sie, sieht, dass das Paket nun abgeschlossen ist, und leitet es an die UDP-Schicht weiter, die es an den Empfangsprozess weitergibt. Als ein einzelnes wieder zusammengesetztes Datagramm.

+0

Das gilt für socketbasierte Apps, aber nicht für tcpdump, in dem alle Ethernet-Frames angezeigt werden sollen. In diesem Fall wird nur das erste IP-Fragment und nicht das neu zusammengesetzte IP-Paket angezeigt. –

Verwandte Themen