Sonstiges

Was ist das Silly Window Syndrom – Erklärung und Vorbeugung

Was ist das Silly Window Syndrom – Erklärung und Vorbeugung

Die Datenübertragung erfolgt über das Netzwerk und das Internet mit dem TCP/IP-Protokoll. Das TCP/IP ist nicht perfekt, aber im Vergleich zu anderen Protokollen, die für die Datenkommunikation theoretisiert werden, einfacher zu implementieren… wie das ISO-OSI-Modell. Wie bei jeder technischen Sache hat auch TCP/IP einige Fehler und Dummes Fenster-Syndrom ist eine Kreation eines dieser Fehler. Um zu verstehen, was Silly Window Syndrom oder SWS ist, müssen Sie zuerst den zugrunde liegenden Mechanismus der Datenkommunikation in TCP/IP verstehen.

Dummes Fenster-Syndrom

Das Fenster und seine Größe verstehen

Wenn zwei Punkte unter TCP/IP kommunizieren, beinhaltet dies einen Bestätigungsmechanismus. Dieser Anerkennungsmechanismus verursacht das Silly Window Syndrom, wie weiter unten erklärt wird. Punkte können sich auf zwei Computer beziehen, Client und Server usw.

SWS wird dadurch verursacht, dass der Empfänger die rechte Fensterkante vorrückt, wenn ihm neuer Pufferplatz zum Empfangen von Daten zur Verfügung steht, und dadurch, dass der Sender ein beliebiges inkrementelles Fenster, egal wie klein, verwendet, um mehr Daten zu senden. Das Ergebnis kann ein stabiles Muster beim Senden winziger Datensegmente sein, obwohl sowohl Sender als auch Empfänger über einen großen Gesamtpufferspeicher für die Verbindung verfügen, sagt MSDN.

Wenn ein Computer, sagen wir A, ein Datenpaket an einen anderen Computer B sendet, muss dieser bestätigen und antworten, dass er das Datenpaket erhalten hat. Zusammen mit der Bestätigung muss es auch die Größe des Puffers senden, der für diesen Kommunikationsthread festgelegt ist. Dies ist im Allgemeinen die Anzahl der für die Kommunikation freigestellten Bytes.

Wenn B also sagt, dass 100B für die nächste Nachricht verfügbar sind, ist die 100B das Fenster im Silly Window Syndrome. Das heißt, es ist die Puffergröße. Mit seinem eigenen Fehler kann der TCP/IP-Mechanismus die Puffergröße für jede Kommunikation/Daten, die von A kommen, reduzieren. Das heißt, wann immer A eine Nachricht sendet, nimmt B an, dass die Puffergröße reduziert wird und sendet eine kleinere Zahl. Dadurch wird die Fenstergröße weiter reduziert und an einem Punkt stoppt die Kommunikation einfach, da B 0B als Fenstergröße sendet.

Wie funktioniert das Silly Window Syndrom

Wenn B gemäß dem obigen Beispiel von A und B 1000B als Fenstergröße sendet, teilt A es in zwei 500B auf und sendet zwei Pakete von 500B. Nach Erhalt des ersten Pakets sendet B eine Bestätigung, dass 500B für das Fenster verfügbar sind, da das zweite Paket noch nicht empfangen werden muss. A geht davon aus, dass 500B die Fenstergröße sind und sendet folglich zwei Pakete von 250B. Während bei B 500B verwendet wird und 500 gerade empfangen wird, wird 0B als verfügbar gesendet. An diesem Punkt geht A davon aus, dass kein Fenster verfügbar ist, obwohl es passieren kann, dass der Puffer leer ist, da der Prozessor die Daten dort verbraucht hat. A sendet immer noch ein kleineres Paket, um zu sehen, ob ein Fenster verfügbar ist. Wenn der Inhalt des Puffers bei B noch nicht entfernt wurde, erhält er immer noch 0 als Antwort/Quittung.

Somit verringert sich die Fenstergröße weiter, da B jedes Mal eine Bestätigung sendet, wenn es ein Paket von A empfängt. Diese Größe ist normalerweise kleiner als die vorherige Bestätigung, da B Datenpakete in Teilen empfängt. Es wäre kein Problem, wenn A ein Paket senden könnte, das groß genug ist, um gleichzeitig die Puffergröße von B abzudecken. Aber das erfordert zusätzliche Mechanismen und damit das Silly Window Syndrom. Die Kommunikation stoppt, nachdem A zwei- oder dreimal 0 empfängt.

So verhindern Sie das Silly Window Syndrom (SWS)

Es gibt einen einfachen Algorithmus, der implementiert werden muss, um SWS loszuwerden. Beim Empfang des ersten Pakets sendet B die Hälfte des wirklich verfügbaren Speicherplatzes als Fenster. Dadurch sendet A kleinere Pakete. Wenn die Pakete zu kleiner werden, sendet B folglich die gesamte Puffergröße, damit A wieder größere Datenbytes senden kann.

Mit anderen Worten, wenn 1000B verfügbar sind, sendet B 500B als Bestätigung. Dementsprechend sendet A 250B x ​​2 Pakete. Dafür erhält A 100B als Bestätigung. Wenn es ein 50B-Paket empfängt, sendet B 1000B - 50B an A. Das macht das gesamte Gespräch wieder funktionsfähig. Dies kann zu einer kleinen Verzögerung bei der Verarbeitung führen, verhindert jedoch das Auftreten des Silly Window Syndroms und das Stoppen des gesamten Gesprächs.

Zusammenfassend lässt sich sagen, dass SWS auf der beim Empfänger verfügbaren Puffergröße und der vom Sender berechneten angenommenen Größe basiert. Um SWS zu verhindern, wird eine Verzögerung eingeführt und eine bewusst kleinere Fenstergröße erwidert, bis die Paketgröße zu klein wird. Dann gibt der Empfänger die tatsächlich verfügbare Fenstergröße bekannt. Der gesamte Vorgang wiederholt sich so lange, bis die Kommunikation abgeschlossen ist.

Obwohl ich die Wörter Fenster und Puffer möglicherweise austauschbar verwendet habe. Ich meine keinen Unterschied zwischen ihnen. In SWS-Studien ist Puffer das Fenster.

Wenn Sie weitere Informationen benötigen, finden Sie hier auf tcpipguide eine detaillierte Erklärung.com.

SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...