2016-04-12 17 views
0

Ich bemerkte, dass Wireshark für die Übertragung von Ein-Paket-Datei von Remote-FTP-Site zu Localhost unter Linux immer die Pakete in der richtigen Reihenfolge, aber nicht in tcpdump/libpcap oder einfache recvfrom auf RAW_PACKET mit Promiscuous-Modus auf erfassen kann.Unterschiedliche Reihenfolge der Pakete in Wireshark vs tcpdump/libpcap?

In der ersten, die "Transfer abgeschlossen" -Antwort ist immer vor dem einzelnen Datenpaket (in verschiedenen Verbindungen also keine TCP-Neuordnung), aber in letzterem immer das Datenpaket immer zuerst - was eindeutig ist falsch nach dem Protokoll und die Implementierung von FTP-Servern seit "Übertragung abgeschlossen" gesendet wird nach die Daten gesendet werden - und wenn der Client es vor Daten erhalten hat, würde es aufhören auf Datenverbindung zu warten, die nicht passiert, da ich die sehen kann Daten klar. Also fängt die libpcap/tcpdump Pakete in falscher Reihenfolge auf, aber kein solches Problem in Wireshark?

Wie ist das möglich ?? Wireshark verwendet auch libpcap ...

+0

Ich fand, dass, wenn rohe Pakete von "ETH_P_IP" (nur IP-Paket) erfasst werden, die Reihenfolge von Paketen aus verschiedenen Verbindungen korrekt wäre (wie in Wireshark), aber nicht von "ETH_P_ALL", die alles erfasst! Aber ETH_P_ALL ist der Standard in tcpdump, also ist es eigentlich kaputt ?? – AqD

+0

Sowohl Wireshark als auch tcpdump verwenden libpcap, um Datenverkehr zu erfassen, und libpcap *** ALWAYS *** verwendet 'ETH_P_ALL'. –

Antwort

1

Für FTP-Protokoll Payload wird in separaten TCP-Verbindung übertragen, gibt es keine Versprechen über die Reihenfolge der Pakete in parallelen TCP-Verbindung (tatsächlich gibt es keine Versprechen in der Reihenfolge der Pakete auch in der gleichen TCP-Verbindung, Ihr Gastgeber sollte sie bestellen).

  1. Server hat zwei offene Sockets.
  2. es schreibt Datei in den Datensockel
  3. unmittelbar danach schreibt es "Übertragung abgeschlossen" zu Steuerbuchsen. Der Unterschied zwischen 2 & 3 ist einige Mikrosekunden.
  4. Pakete laufen durch das Internet, sie könnten sogar verschiedene Wege wählen
  5. Sie kamen zu Ihrer Maschine in zufälliger Reihenfolge.

p.s. Auch die tcpdump-Datei enthält die Anzahl der Pakete und Zeitstempel. Pakete werden nicht unbedingt nach Zeitstempeln sortiert. Wireshark könnte sie beim Anzeigen bestellen, schauen Sie sich das Auftragsfeld an.

+0

Die Zeitstempel sind nicht inkorrekt, aber die Reihenfolge ist einfach unmöglich - wie oben dargestellt, wenn die reale Reihenfolge, in der die Pakete empfangen werden, falsch ist, hätte es Probleme mit FTP-Clients gegeben - also die richtige Reihenfolge ist richtig, aber die Reihenfolge sie 're * captured * ist falsch. – AqD

+0

Bitte tcpdumps irgendwo hochladen und hier verlinken. –