Heim  >  Artikel  >  Wie kann das Problem der Sticky-TCP-Pakete gelöst werden?

Wie kann das Problem der Sticky-TCP-Pakete gelöst werden?

coldplay.xixi
coldplay.xixiOriginal
2020-06-28 13:02:557395Durchsuche

Methoden zur Lösung des TCP-Sticky-Packet-Problems: 1. Sendemethode mit fester Länge, das sendende Ende verwendet LEN als Länge zum Paketieren beim Senden von Daten. 2. Tail-Mark-Sequenzmethode für alle zu sendenden Daten Legen Sie am Ende des Pakets eine spezielle Byte-Sequenz fest. 3. Schritt-für-Schritt-Anleitung zur Header-Markierung, Definition eines Benutzer-Headers und Angabe der Größe jedes gesendeten Datenpakets im Header.

Wie kann das Problem der Sticky-TCP-Pakete gelöst werden?

Methoden zum Umgang mit dem TCP-Sticky-Packet-Problem:

1. Designplan 1: Behoben- Beim Senden von Daten wird beim Senden von Daten ein Design mit fester Länge verwendet, d wird hier als LEN aufgezeichnet), d. h. beim Senden von Daten verwendet das Ende LEN als Länge für die Paketierung. Auf diese Weise empfängt der Empfänger mit einer festen LEN, sodass Senden und Empfangen eins zu eins entsprechen können. Beim Unterpacken wird es möglicherweise nicht vollständig in mehrere vollständige LEN-Pakete aufgeteilt. Das letzte Paket ist im Allgemeinen kleiner als LEN. Zu diesem Zeitpunkt kann das letzte Paket den fehlenden Teil mit leeren Bytes füllen.

Natürlich hat dieser Ansatz Mängel.

1. Die unzureichende Länge des letzten Pakets ist mit leeren Teilen gefüllt, was eine ungültige Bytereihenfolge darstellt. Dann kann es für den Empfänger schwierig sein, diesen ungültigen Teil zu identifizieren. Er dient nur zum Ausfüllen und hat keine tatsächliche Bedeutung. Dies bereitet dem Empfänger Schwierigkeiten, die Bedeutung zu verarbeiten. Natürlich gibt es Lösungen, die durch das Hinzufügen von Flag-Bits kompensiert werden können, d. h. durch das Hinzufügen eines Headers fester Länge am Anfang jedes Datenpakets und das anschließende gemeinsame Senden der Endmarkierung des Datenpakets. Anhand dieser Markierung bestätigt der Empfänger die ungültige Bytefolge und erreicht so den vollständigen Empfang der Daten.

2. Wenn die Länge der gesendeten Pakete zufällig verteilt ist, wird Bandbreite verschwendet. Beispielsweise kann die Sendelänge 1.100, 1.000, 4.000 Byte usw. betragen, und alle müssen entsprechend der maximalen festen Länge gesendet werden, die 4.000 beträgt. Andere Pakete mit Datenpaketen, die kleiner als 4.000 Byte sind, werden ebenfalls aufgefüllt 4000, was zu einer ineffektiven Verschwendung von Netzwerklast führt.

Zusammenfassend lässt sich sagen, dass diese Lösung für Situationen geeignet ist, in denen die Länge des gesendeten Datenpakets relativ stabil ist (zu einem bestimmten festen Wert tendiert) und bessere Ergebnisse liefert.

Verwandte Lernempfehlungen:

PHP Programmieren vom Anfänger bis zum Experten

2. Designplan 2: Endmarkierungssequenz

Setzen Sie eine am Ende jedes zu sendenden Datenpakets Eine spezielle Byte-Sequenz. Diese Sequenz hat eine besondere Bedeutung und wird durch das Endzeichen der Zeichenfolge identifiziert.

Vorteile: Es vermeidet die Komplexität des Programmdesigns, seine Wirksamkeit ist leicht zu überprüfen und es ist einfacher, die Stabilitätsanforderungen des Softwaredesigns zu erfüllen. Zusammenfassend lässt sich sagen, dass Plan drei die beste Strategie ist!

Das obige ist der detaillierte Inhalt vonWie kann das Problem der Sticky-TCP-Pakete gelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn