Heim > häufiges Problem > Was ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?

Was ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?

青灯夜游
Freigeben: 2023-01-13 00:28:18
Original
41732 Leute haben es durchsucht

Hauptunterschied: Die Flusskontrolle löst das Problem der Rateninkongruenz zwischen Sender und Empfänger; die Überlastungskontrolle löst das Problem der Vermeidung einer Erschöpfung der Netzwerkressourcen. Die Flusskontrolle wird durch Schiebefenster implementiert; die Überlastungskontrolle wird durch Überlastungsfenster implementiert.

Was ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.

Verwandte Empfehlungen: „Programmierunterricht

Der Unterschied zwischen Flusskontrolle und Überlastungskontrolle

TCP-Flusskontrolle und Überlastungskontrolle scheinen zwei relativ ähnliche Konzepte zu sein, die leicht zu Verwirrung führen können. Tatsächlich unterscheiden sie sich jedoch in ihren angestrebten Zielen und Methoden völlig.

Die Flusskontrolle löst das Problem der Rateninkongruenz zwischen Sender und Empfänger. Wenn der Sender zu schnell sendet, hat der Empfänger keine Zeit zum Empfangen und Verarbeiten. Der verwendete Mechanismus ist ein Schiebefenstermechanismus, der die Anzahl der Pakete steuert, die gesendet, aber nicht bestätigt werden.

Die Überlastungskontrolle löst das Problem, die Erschöpfung der Netzwerkressourcen zu verhindern. Durch selbstdisziplinierte Vermeidungsmaßnahmen kann jeder die Erschöpfung begrenzter Netzwerkressourcen verhindern. Wenn ein Paketverlust auftritt, wird die Senderate gesteuert, um die Netzwerklast zu reduzieren.

Flusskontrolle

  • Die Flusskontrolle wird durch Schiebefenster erreicht. Das Schiebefenster ist in ein Senderfenster und ein Empfängerfenster unterteilt.
  • Das Fenster hat eine Größenbeschränkung. Die Fenstergröße wird vom empfangenden Ende verwendet, um dem sendenden Ende die maximale Anzahl von Bytes mitzuteilen, die das empfangende Ende derzeit empfangen kann.
  • Die Größe des Fensters befindet sich im TCP-Protokoll-Header und beträgt 16 Bit. Allerdings können Sie in den TCP-Protokolloptionen auch den Fensterskalierungsfaktor definieren, sodass die tatsächliche Fenstergröße 64 KB überschreiten kann. Die Bedeutung des Fensters ist eigentlich die Größe des Empfangspuffers.
  • Das Sendefenster verwaltet die vom sendenden Ende gesendete und vom empfangenden Ende bestätigte Sequenznummer sowie die maximal gesendete Sequenznummer, sodass Sie wissen, wie viele neue Daten gesendet werden können.
  • Das Empfangsfenster verwaltet die ACK-Sequenznummer und die Sequenznummer aller empfangenen Pakete.
  • Die Fenstergröße bleibt während eines bestimmten Verbindungskommunikationsprozesses unverändert. Das Schiebefenster ist ein Mechanismus, der die Größe der Daten darstellt, die auf der Sendeseite gesendet werden können, und die Größe der Daten, die auf der Empfangsseite empfangen werden können.

Überlastungskontrolle

  • Die Überlastungskontrolle wird durch Überlastungsfenster erreicht. Das Überlastungsfenster bezeichnet die maximale Anzahl an Datenpaketen, die der Absender innerhalb einer RTT versenden kann.
  • Die Staukontrolle umfasst im Allgemeinen zwei Phasen: langsames Anfahren und Stauvermeidung.
  • Die langsame Startphase ist der Prozess des exponentiellen Wachstums von 1 auf eine begrenzte Größe.
  • Der Prozess der linearen Erhöhung nach Überschreiten der Grenzgröße während der Überlastungsvermeidungsphase und der Prozess der Änderung des Überlastungsfensters auf 1 und der Halbierung der Grenzgröße nach Feststellung eines Paketverlusts.

Erweiterte Informationen

Flusskontrolle ist eine End-to-End-Kontrolle. Wenn A beispielsweise Daten zu schnell an B sendet, kann B diese nicht empfangen (B-Pufferfenster). ist zu klein oder die Verarbeitung ist zu langsam) ), die Steuerung ist zu diesem Zeitpunkt die Flusskontrolle, und das Prinzip wird durch Ändern der Größe des Schiebefensters erreicht.

Überlastungskontrolle liegt vor, wenn das Netzwerk zwischen A und B blockiert ist, was zu einer langsamen Übertragung oder einem Paketverlust führt und keine Zeit für die Übertragung bleibt. Indem verhindert wird, dass zu viele Daten in das Netzwerk eingespeist werden, wird verhindert, dass Router oder Verbindungen im Netzwerk überlastet werden. Die Überlastungskontrolle ist ein globaler Prozess, der alle Hosts, Router und alle Faktoren betrifft, die mit der Verringerung der Netzwerkleistung zusammenhängen.

Flusskontrollmechanismus:

Angenommen, Host A sendet Daten an Host B. Der von beiden Parteien festgelegte Fensterwert beträgt 400. Angenommen, jedes Nachrichtensegment ist 100 Byte lang, der Anfangswert der Sequenznummer ist seq = 1, ACK in Großbuchstaben gibt an, dass der Header als ACK betrachtet wird, und ACK in Kleinbuchstaben gibt den Wert an des Bestätigungsfeldes.

Der Host B des Empfängers führte dreimal eine Flusskontrolle durch. Beim ersten Mal wird das Fenster auf rwind=300 gesetzt, beim zweiten Mal wird es auf rwind=100 reduziert und schließlich wird es auf rwind=0 reduziert, d. h. der Absender darf keine weiteren Daten mehr senden. Dieser Zustand, der dazu führt, dass der Absender das Senden anhält, bleibt bestehen, bis Host B erneut einen neuen Fensterwert sendet.

Angenommen, kurz nachdem B ein Null-Fenster-Nachrichtensegment an A gesendet hat, verfügt der Empfangspuffer von B über etwas Speicherplatz. Also schickte B ein Nachrichtensegment mit rwind=400 an A. Dieses Nachrichtensegment ging jedoch während der Übertragung verloren. A hat auf den Empfang der von B gesendeten Nicht-Null-Fensterbenachrichtigung gewartet, und B hat auf die von A gesendeten Daten gewartet. Dadurch entsteht ein Deadlock. Um diese Deadlock-Situation zu lösen, verfügt TCP über einen kontinuierlichen Timer für jede Verbindung. Solange eine Partei der TCP-Verbindung die Null-Fenster-Benachrichtigung von der anderen Partei erhält, startet sie den kontinuierlichen Timer. Wenn die durch den kontinuierlichen Timer festgelegte Zeit abläuft, sendet sie ein Null-Fenster-Erkennungsnachrichtensegment (das nur 1 Byte Daten trägt). ) und die andere Partei Der aktuelle Fensterwert wird bei der Bestätigung dieses Erkennungssegments angegeben.

Überlastungskontrollmechanismus:

Langsamer Start und Stauvermeidung

Die Bestimmung der Rate der gesendeten Nachrichtensegmente muss nicht nur auf der Empfangsfähigkeit des Empfängers basieren, sondern auch die Gesamtsituation berücksichtigen, die keine Überlastung im Netzwerk verursacht. Dies wird durch die beiden Statusgrößen bestimmt Empfangsfenster und das Überlastungsfenster. Das Empfängerfenster (Reciver Window), auch bekannt als Advertised Window, ist der neueste vom Empfänger versprochene Fensterwert basierend auf der aktuellen Empfangspuffergröße und eine Flusssteuerung vom Empfänger. Das Überlastungsfenster cwnd (Überlastungsfenster) ist ein Fensterwert, der vom sendenden Ende basierend auf seinem geschätzten Netzwerküberlastungsgrad festgelegt wird. Es handelt sich um eine Flusskontrolle vom sendenden Ende.

Slow-Start-Prinzip:

Was ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?

1) Wenn der Host mit dem Senden von Daten beginnt und alle Datenbytes des größeren Sendefensters sofort in das Netzwerk eingespeist werden, kann es aufgrund unklarer Netzwerkbedingungen zu Problemen kommen Netzwerküberlastung

2) Eine bessere Möglichkeit besteht darin, es zu testen, d Überlastungsfenster cwnd auf ein Maximum Der MSS-Wert des Nachrichtensegments. Nach Erhalt jeder Bestätigung eines neuen Segments wird das Überlastungsfenster um bis zu einen MSS-Wert erhöht. Wenn rwind groß genug ist, ist eine weitere Variable erforderlich, um zu verhindern, dass das Überlastungsfenster cwind zu einer Netzwerküberlastung führt Schwelle für langsamen Start. ssthresh

Der spezifische Prozess der Überlastungskontrolle ist:

Was ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?1) TCP-Verbindungsinitialisierung, Überlastungsfenster auf 1 setzen

2) Führen Sie den langsamen Startalgorithmus aus, cwind erhöht sich exponentiell, bis cwind == ssthress beginnt mit der Durchführung des Algorithmus zur Überlastungsvermeidung, cwnd wächst nach einem linearen Gesetz

3) Wenn eine Netzwerküberlastung auftritt, aktualisieren Sie den ssthresh-Wert auf die Hälfte des ssthresh-Werts vor der Überlastung, setzen Sie cwnd auf 1 zurück und befolgen Sie Schritt (2).

Schnelle Neuübertragung und schnelle Wiederherstellung

Eine TCP-Verbindung bleibt manchmal längere Zeit inaktiv, da ein langsamer Start und die Vermeidung von Überlastungen diese Art von Problem nicht gut lösen können. Daher wird eine schnelle Neuübertragung vorgeschlagen -Methoden zur Wiederherstellung der Überlastungskontrolle.

Der schnelle Neuübertragungsalgorithmus bricht den Neuübertragungsmechanismus nicht ab, sondern überträgt das verlorene Nachrichtensegment in einigen Fällen früher erneut (wenn der Absender drei wiederholte Bestätigungs-ACKs erhält, wird daraus geschlossen, dass das Paket verloren gegangen ist, und übertragen Sie verlorene Segmente sofort erneut, ohne auf das zu warten der Neuübertragungstimer läuft ab). Der Slow-Start-Algorithmus wird nur verwendet, wenn TCP eingerichtet ist.

Der schnelle Wiederherstellungsalgorithmus hat die folgenden zwei Schlüsselpunkte:

1) Wenn der Absender drei aufeinanderfolgende doppelte Bestätigungen erhält, führt er den „multiplikativen Reduktionsalgorithmus“ aus und halbiert den Schwellenwert für den langsamen Start. Dies soll eine Überlastung des Netzwerks verhindern.

2) Da der Absender nun davon ausgeht, dass das Netzwerk wahrscheinlich nicht überlastet ist, führt er den Slow-Start-Algorithmus jetzt nicht aus. Stattdessen setzt er den cwnd-Wert auf den Wert, nachdem der Slow-Start-Schwellenwert halbiert wurde, und beginnt dann mit der Ausführung Algorithmus zur Vermeidung von Überlastungen, um das Überlastungsfenster linear zu vergrößern.

Zusammenfassung:

Die ersten beiden Algorithmen werden verwendet, bevor eine Überlastung auftritt, und die letzten beiden Algorithmen werden verwendet, nachdem eine Überlastung auftritt (d. h. drei wiederholte Bestätigungen).

Weitere verwandte Artikel finden Sie auf der

Chinesischen PHP-Website

! !

Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen Flusskontrolle und Überlastungskontrolle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage