Frame Check Sequence
Abkürzung: FCS
Die Frame Check Sequence ist die 32 Bit lange Prüfsumme am Ende jedes Ethernet Frames. Sie erkennt Übertragungsfehler, korrigiert sie aber nicht.
Die Frame Check Sequence (FCS) bildet die letzten vier Byte eines Ethernet Frames. Sie enthält eine zyklische Redundanzprüfung über den gesamten übrigen Frame und ermöglicht dem Empfänger festzustellen, ob der Frame unverändert angekommen ist.
Berechnung
Verwendet wird eine zyklische Redundanzprüfung mit 32 Bit Länge, kurz CRC-32. Der Sender behandelt den Frame als eine sehr große Binärzahl, teilt sie durch ein festgelegtes Generatorpolynom und hängt den Rest der Division als Prüfsumme an.
Der Empfänger führt dieselbe Rechnung über den empfangenen Frame einschließlich der Prüfsumme durch. Bleibt kein Rest, gilt der Frame als fehlerfrei.
Abgedeckt sind alle Felder ab der Zieladresse bis einschließlich der Füllbytes. Nicht abgedeckt sind Präambel und SFD — diese gehören nicht zum Frame — sowie die Prüfsumme selbst.
Erkennungsleistung
Eine CRC-32 erkennt zuverlässig:
- alle Einzelbitfehler
- alle Doppelbitfehler
- alle Fehler mit ungerader Bitanzahl
- alle zusammenhängenden Fehlerbündel bis 32 Bit Länge
Längere Fehlerbündel werden mit sehr hoher, aber nicht vollständiger Wahrscheinlichkeit erkannt. Diese Eigenschaft ist der Grund, warum die Framelänge nicht beliebig wachsen kann: Mit zunehmender Länge sinkt die Aussagekraft der Prüfsumme, weil dieselbe Anzahl von Prüfbits eine größere Datenmenge absichern muss.
Die FCS erkennt Fehler ausschließlich — sie korrigiert nichts. Ein fehlerhafter Frame wird verworfen; für eine erneute Übertragung sorgen gegebenenfalls höhere Schichten.
Umgang mit fehlerhaften Frames
Erkennt ein Empfänger einen Prüfsummenfehler, verwirft er den Frame kommentarlos und erhöht einen Zähler. Es erfolgt keine Rückmeldung an den Sender.
Auf Switch-Ports gehören diese Zähler zu den wichtigsten Diagnosewerten überhaupt. Steigende FCS-Fehler weisen auf ein physikalisches Problem hin: beschädigte Leitungen, unsauber aufgelegte Kontakte, Störeinstreuung, überschrittene Längen oder defekte Schnittstellen.
Zu unterscheiden ist der reine Prüfsummenfehler vom Alignment Error. Letzterer liegt vor, wenn der Frame zusätzlich nicht aus einer ganzen Anzahl von Byte besteht — ein Hinweis auf Taktprobleme statt auf einzelne verfälschte Bits.
Neuberechnung unterwegs
Ein Switch, der einen Frame unverändert weiterleitet, könnte die vorhandene Prüfsumme übernehmen. Sobald er den Frame jedoch verändert — etwa durch Einfügen oder Entfernen eines VLAN-Tags —, muss er sie neu berechnen.
Dasselbe gilt für Router: Da sie Ziel- und Quelladresse ersetzen, entsteht bei jedem Hop ein neuer Frame mit neuer Prüfsumme. Ein Übertragungsfehler, der auf dem vorherigen Abschnitt entstanden und dort nicht erkannt worden wäre, würde damit unter einer gültigen Prüfsumme weiterlaufen.
Prüfsumme und Cut Through
Ein Switch im Cut-Through-Betrieb beginnt zu senden, bevor die Prüfsumme eingetroffen ist. Stellt er anschließend einen Fehler fest, ist der Frame bereits unterwegs.
Manche Geräte schließen die Übertragung in diesem Fall mit einer absichtlich falschen Prüfsumme ab. Der Frame wird dadurch am nächsten Gerät sicher verworfen und ist zugleich als weitergereichter Fehler erkennbar — statt so auszusehen, als sei er auf der letzten Strecke beschädigt worden.
Abgrenzung
Die FCS sichert einen einzelnen Frame auf einem einzelnen Abschnitt. Sie sagt nichts darüber aus, ob Daten vollständig oder in der richtigen Reihenfolge ankommen — das leisten Prüfsummen und Quittungen höherer Schichten.
Eine Ende-zu-Ende-Sicherung ist sie ebenfalls nicht: Bei jedem Router wird sie neu gebildet. Fehler, die innerhalb eines Geräts entstehen, etwa in einem Speicherbaustein, werden dadurch nicht erfasst.