Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
675 Beiträge
 
FreePascal / Lazarus
 
#7

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 15:14
Was ich genau machen möchte?

Fragmentierten Netzwerktraffic zusammenstückeln

Ähnlich wie Wiresharks "Follow stream", nur viel schlichter, möchte ich beispielsweise allen HTTP-Verkehr überwachen. Dazu nutze ich WinPcap, und bekomme Pakete, wie sie WinPcap liefert.

Dann gehe ich hin (ich hänge meinen Code einfach mal an), und erkenne (PCAPHandler) am Header dieser Pakete etwa, daß es sich um ein IPv4-Paket handelt. Diesen untersuche ich (ProcessIPv4Packet), und verarbeite TCP-Pakete weiter (ProcessTCPPacket). Alles was auf Port 80 funkt oder mit "GET " oder "POST " anfängt (ich weiß, "HEAD " bräuchte ich z.B. auch noch), sammle ich dann (ProcessHTTPPacket) und verarbeite es weiter (ReportStream).

Und da bin ich nun. Ich habe HTTP-Anfragen und Antworten, zwischen denen ich stumpf anhand eines Wechsels des Ports unterscheide. Nur - die Kommunikation kann ich so nicht wiederherstellen, da die Reihenfolge nicht immer korrekt ist.

Anders beschrieben: ich habe beispielsweise alle Netzwerkpakete einer über HTTP übermittelten Datei, und muss sie jetzt in die richtige Reihenfolge bringen.

Das Endpaket wird vermutlich durch PSH im TCP-Header (ControlFlags) markiert?
Angehängte Dateien
Dateityp: pas snlAPIWinPCAP.pas (32,9 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat