Frage

Erstens, ich bin relativ neu Programmierung zu vernetzen. Ich möchte abfangen und HTTP-Datenverkehr zu verzögern, bevor es an die Server-Anwendung erhält. Ich habe in libnetfilter_queue vertieft, die mir alle Informationen gibt, gebe ich müssen in geeigneter Weise verzögern, aber bei einer zu niedrigen Niveau. Ich kann den Verkehr dort verzögern, aber wenn ich die IP-Datagramme fast sofort übernehmen (so sie auf den Stapel zu senden, wenn ich sie verzögern will), werden sie erneut gesendet bekommen (wenn kein ACK ankommt), das nicht das, was ich will.

ich will oder nicht brauchen, mit TCP, nur die Nutzlasten liefert sie beschäftigen zu müssen. Also meine Frage ist, wie kann ich abfangen Verkehr auf einem bestimmten Port, bevor sie ihr Ziel erreicht, aber nach dem TCP hat bestätigt und überprüft das?

Danke

Edit: Ich hoffe es ist offensichtlich, aus dem Tag und libnetfilter_queue - das ist für Linux ist

War es hilfreich?

Lösung

Hijack die Verbindungen über einen HTTP-Proxy. Google ist ein guter Weg, dies zu tun, wenn Sie nicht nur HTTP_PROXY auf dem Client festlegen können, oder richten Sie Ihre Filter mit der IP und Port-Nummer des aktuellen Servers ausgeführt wird, den realen Server auf einem anderen IP zu bewegen.

So die tatsächlichen TCP-Verbindungen zwischen dem Client und Sie, von Ihnen dann an den Server. Dann müssen Sie nicht mit ACKs beschäftigen, weil TCP immer stet erreicht.

edit: Ich sehe die Kommentare auf dem Original bereits mit dieser Idee iptables kam zu leiten den Datenverkehr über Ihre transparenten Proxy-Prozess auf der gleichen Maschine mit

.

Andere Tipps

Nun, ich habe getan, was ich in meinem Kommentar vorgeschlagen, und es funktioniert, auch wenn es einen langwierigen Weg, es zu tun fühlen.

(oder a) Problem ist, dass der Web-Server jetzt verständlicherweise denkt, dass jede Anfrage von localhost kommt. Wirklich würde ich diese Verzögerung wie transparent sowohl auf Client und Server zu sein (außer in der Zeit natürlich!). Gibt es etwas, was ich dagegen tun kann?

Wenn nicht, was sind die Folgen? Jede HTTP-Sitzung geschieht durch einen anderen Port - ist, dass genug für sie völlig getrennt werden, wie sie sein sollte? Vermutlich so bedenkt, dass es, wenn hinter einem NAT arbeitet, wo die Adresse für viele Sitzungen ist das gleiche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top