Werden Pausenframes an den Host weitergegeben?

Werden Pausenframes an den Host weitergegeben?

Ich habe kürzlich in einem Debian-Forum gelesen, dass Pausenframes von der MAC-Schicht verworfen werden sollten und dass der Treiber sie andernfalls verwerfen sollte. Stimmt das? Wie drosselt ein Host tatsächlich den Datenverkehr, wenn er einen Pausenframe von einem Switch erhalten hat?

Ich versuche, die Ethernet-Flusskontrolle besser zu verstehen. Wenn die obige Aussage wahr ist, was bedeutet dann „an den Host weitergegeben“ wirklich?

Antwort1

Für die Flusssteuerung stehen Ihnen drei Möglichkeiten zur Verfügung:

  1. Bei Überlastung fallen Daten auf den Boden.
  2. Wenn Sie eine Anforderung aus einer höheren Ebene nicht bearbeiten können (normalerweise weil Ihre lokale Warteschlange voll ist), geben Sie einen Fehler an die höhere Ebene zurück.
  3. Sie benachrichtigen höhere Ebenen proaktiv, dass sie langsamer werden müssen.

Auf der Ethernet-Ebene wird Methode 3 durch Pausenrahmen unterstützt. Höhere Ebenen unterstützen Methode 3 oft nicht, sondern Methode 2. Wenn eine Ebene eine Ebene darunter hat, die Methode 3 unterstützt, die Ebene darüber jedoch nur Methode 2, kann sie die Datenübertragung an niedrigere Ebenen vorübergehend unterbrechen, sodass Methode 2 auf höhere Ebenen angewendet wird.

Oder, um es konkreter auszudrücken: Wenn Sie einen Pausenrahmen erhalten, stoppen Sie Ihre Sende-Engine und stellen einen Timer ein, um die Sende-Engine zum entsprechenden Zeitpunkt neu zu starten. Während die Sende-Engine gestoppt ist, füllen sich Ihre lokalen Warteschlangen mit Daten aus höheren Schichten. Wenn sie voll sind, geben Sie „Beschäftigt“-Fehler an die höheren Schichten zurück und diese behandeln das auf eine geeignete Weise.

Antwort2

Die Ethernet-Flusskontrolle war bisher ein gescheitertes Experiment, da sie häufig dazu führt,Head-of-Line-BlockierungProbleme. Switches sollten keine Pausenframes an Hosts senden. Ich glaube, Cisco-Switches können nicht so konfiguriert werden, dass sie Pausenframes senden. Wenn man die Ethernet-Flusskontrolle auf einem Cisco-Switch aktiviert, beachtet dieser lediglich die empfangenen Pausenframes. Hosts sollten empfangene Pausenframes ignorieren.

Wenn der Switch die Übertragung nicht verarbeiten kann, sollte er den Frame löschen. Höhere Schichten, insbesondere TCP, verwenden gelöschte Frames, um zu erkennen, wann eine Überlastung aufgetreten ist und wann sie sich zurückziehen müssen. Wenn Frames nicht gelöscht werden, schlägt die TCP-Überlastungskontrolle fehl, was in der Regel zu Folgendem führt:Pufferbloat.

verwandte Informationen