Verzögern Sie einen TCP-Stream

399
Antonio Caruso

Ich muss zwei verschiedene Datenströme synchronisieren. Ich werde sie im Folgenden Strem A und B nennen. Zum Zeitpunkt Null beginnen beide Streams beim Sender. Stream A erleidet jedoch eine Verzögerung zu Beginn der Übertragung (im Bereich von 1s bis 10 Sekunden) in Bezug auf Stream B. Beim Empfänger muss ich die Streams synchronisieren. Was ich brauche, ist (Python, C, C ++, Java) ), ein Programm, das den Socket öffnet, um B (an einen bestimmten IP: Port) zu empfangen, puffert die Daten (beispielsweise 10 Sekunden) und beginnt dann mit: 1) Lesen Sie die Daten von B und kopieren Sie sie in eine Warteschlange. 2) Lesen Sie Daten von der Vorderseite der Warteschlange und senden Sie sie an einen anderen IP-Port. Auf diese Weise kann ich sie im letzteren Port lesen, synchronisiert mit A. Ich weiß nicht, ob netcat oder andere Tools dies mit einigen Optionen tun können oder ob bereits Programme (unter Windows 10) verwendet werden können um dies zu tun. Irgendwann kann ich den Code schreiben, aber ich würde gerne einige Richtungen für eine Lösung wissen. Vielen Dank.

0

1 Antwort auf die Frage

1
dirkt

Sie können TCP-Streams nicht "verzögern", insbesondere wenn sich viele Middleboxen mit bufferbloat im Pfad befinden. Jeder Versuch, dies zu tun, wird früher oder später in einem instabilen Zustand enden.

Wenn Sie Netzwerkströme benötigen, die synchronisiert werden müssen, schauen Sie sich die entsprechenden Protokolle an, z . B. RTP .

Dies sieht auch sehr nach einer XY-Frage aus : Sie denken, Sie müssen "TCP-Streams verzögern" (das Y), aber Sie haben uns nicht mitgeteilt, welche Art von Daten Sie übertragen, in welcher Weise sie synchronisiert werden müssen, usw (das X)