29 Frames und Framing-Techniken

29.1 Einführung

Nachdem wir uns im vorherigen Kapitel mit der Bitübertragungsschicht (Layer 1) beschäftigt haben, bewegen wir uns nun eine Ebene höher im OSI-Referenzmodell zur Sicherungsschicht (Data Link Layer, Layer 2). Diese Schicht ist dafür verantwortlich, die rohen Bitströme der physikalischen Schicht in strukturierte Dateneinheiten zu organisieren und eine zuverlässige Übertragung zwischen direkt verbundenen Netzwerkknoten zu gewährleisten.

Im Zentrum der Sicherungsschicht steht das Konzept des “Frames” – der grundlegenden Datenübertragungseinheit auf dieser Ebene. Frames sind strukturierte Container, die Nutzdaten kapseln und mit zusätzlichen Informationen versehen, um eine geordnete und fehlerfreie Übertragung zu ermöglichen. Die Art und Weise, wie Frames strukturiert, erkannt und verarbeitet werden, wird durch verschiedene Framing-Techniken definiert.

In diesem Kapitel werden wir uns eingehend mit der Struktur von Frames, unterschiedlichen Framing-Techniken und deren praktischer Bedeutung befassen. Wir betrachten, wie Frames die Grundlage für die Kommunikation zwischen direkt verbundenen Netzwerkgeräten bilden und wie verschiedene Standards unterschiedliche Framing-Methoden implementieren.

29.2 Grundkonzepte des Framing

29.2.1 Definition und Funktion von Frames

Ein Frame (zu Deutsch: Rahmen) ist eine strukturierte Einheit von Daten, die auf der Sicherungsschicht (Layer 2) verarbeitet wird. Frames erfüllen mehrere wichtige Funktionen:

  1. Strukturierung der Daten: Sie organisieren den kontinuierlichen Bitstrom von Layer 1 in diskrete, handhabbare Einheiten.
  2. Adressierung: Sie enthalten Informationen darüber, wer der Absender und wer der Empfänger ist.
  3. Fehlerprüfung: Sie beinhalten Mechanismen zur Erkennung von Übertragungsfehlern.
  4. Steuerung: Sie können Steuerinformationen für den Datenaustausch enthalten.
  5. Protokollidentifikation: Sie können Informationen darüber enthalten, welches Protokoll der höheren Schicht für die Daten im Frame zuständig ist.

Ein Frame besteht typischerweise aus folgenden Komponenten:

29.2.2 Herausforderungen beim Framing

Die Hauptherausforderung beim Framing besteht darin, den Anfang und das Ende eines Frames innerhalb eines kontinuierlichen Bitstroms eindeutig zu identifizieren. Eine Übertragung enthält keine natürlichen Trennzeichen zwischen Frames, weshalb spezielle Techniken erforderlich sind, um die Grenzen zu markieren.

Weitere Herausforderungen sind:

Die verschiedenen Framing-Techniken wurden entwickelt, um diese Herausforderungen zu bewältigen.

29.3 Grundlegende Framing-Techniken

Im Laufe der Entwicklung der Netzwerktechnologie wurden verschiedene Framing-Techniken entwickelt. Die wichtigsten dieser Techniken werden im Folgenden vorgestellt.

29.3.1 Zeichenbasiertes Framing

Beim zeichenbasierten Framing werden spezielle Kontrollzeichen verwendet, um den Anfang und das Ende eines Frames zu kennzeichnen.

29.3.1.1 Byte-Stuffing (Zeichenfüllung)

Eine klassische Methode des zeichenbasierten Framings ist das Byte-Stuffing, auch bekannt als Zeichenfüllung:

  1. Start- und Ende-Markierung: Spezielle Zeichen (z.B. STX für Start of Text und ETX für End of Text) markieren Anfang und Ende des Frames.
  2. Escape-Mechanismus: Wenn das spezielle Markierungszeichen in den Nutzdaten vorkommt, wird ein Escape-Zeichen (z.B. ESC) davor eingefügt.
  3. Doppelter Escape: Wenn das Escape-Zeichen selbst in den Daten vorkommt, wird es ebenfalls durch ein vorausgehendes Escape-Zeichen geschützt.

Beispiel: - Zu übertragene Daten: A B STX C D - Frame mit Byte-Stuffing: STX A B ESC STX C D ETX

Das Byte-Stuffing wurde in älteren Protokollen wie PPP (Point-to-Point Protocol) eingesetzt.

Vorteile: - Einfach zu implementieren - Gut für zeichenorientierte Übertragungen geeignet

Nachteile: - Overhead durch eingefügte Escape-Zeichen - Geringere Effizienz bei binären Daten mit vielen Kontrollzeichen

29.3.2 Bitbasiertes Framing

Beim bitbasierten Framing werden spezielle Bitmuster zur Frame-Abgrenzung verwendet.

29.3.2.1 Bit-Stuffing (Bitfüllung)

Bit-Stuffing arbeitet auf der Bit-Ebene und nicht auf der Byte-Ebene:

  1. Spezielle Begrenzungssequenz: Ein spezielles Bitmuster (typischerweise sechs aufeinanderfolgende 1-Bits: 01111110) markiert den Anfang und das Ende eines Frames.
  2. Bitfüllung: Wenn in den Daten fünf aufeinanderfolgende 1-Bits auftreten, wird automatisch eine 0 eingefügt, um die Begrenzungssequenz nicht versehentlich in den Daten zu erzeugen.
  3. Entfernung der Füllbits: Der Empfänger entfernt automatisch jede 0, die nach fünf aufeinanderfolgenden 1-Bits kommt.

Beispiel: - Zu übertragene Bitfolge: 110111111011 - Nach Bit-Stuffing: 11011111001011 (Eine 0 wurde nach fünf aufeinanderfolgenden 1-Bits eingefügt)

Bit-Stuffing wird in HDLC (High-Level Data Link Control) und verwandten Protokollen wie PPP verwendet.

Vorteile: - Geringerer Overhead als Byte-Stuffing bei bestimmten Datenarten - Effizient für synchrone Übertragungen

Nachteile: - Komplexere Implementation auf Bitebene - Auswirkungen auf die Timing-Eigenschaften der Übertragung

29.3.3 Längenfeldbasiertes Framing

Beim längenfeldbasierten Framing wird die Länge des Frames explizit im Header angegeben:

  1. Längenfeldangabe: Der Header enthält ein Feld, das die genaue Länge der Nutzdaten angibt.
  2. Keine Escape-Mechanismen: Da die Länge bekannt ist, sind keine speziellen Markierungszeichen oder Stuffing-Mechanismen erforderlich.

Beispiel: - Längenfeld: 5 Byte - Nutzdaten: 5 Byte folgen auf das Längenfeld

Längenfeldbasiertes Framing wird bei Ethernet (IEEE 802.3) verwendet. In diesem Fall gibt das Längenfeld die Anzahl der Bytes im Datenfeld an.

Vorteile: - Keine Notwendigkeit für Escape-Sequenzen oder Stuffing - Effiziente Verarbeitung und Extraktion der Daten

Nachteile: - Bei Beschädigung des Längenfeldes kann der gesamte Frame nicht korrekt interpretiert werden - Erfordert präzise Zählung der Bytes

29.3.4 Kombinierte Verfahren

In der Praxis werden oft kombinierte Verfahren eingesetzt:

Längenfeld mit Begrenzern: - Ein Rahmenstart-Muster signalisiert den Anfang des Frames - Ein Längenfeld gibt die Größe der Daten an - Optional kann ein Rahmenende-Muster das Ende bestätigen

Dieses Verfahren bietet doppelte Sicherheit: Wenn ein Begrenzer nicht erkannt wird, kann die Längeninformation zur korrekten Extraktion des Frames verwendet werden.

29.4 Spezifische Framing-Formate

29.4.1 Ethernet-Framing

Ethernet ist heute der dominierende Standard für lokale Netzwerke. Ethernet-Frames verwenden eine Kombination aus Begrenzermuster und Längenfeldern. Es gibt zwei Hauptvarianten des Ethernet-Framings:

29.4.1.1 IEEE 802.3 (Standard Ethernet)

Ein IEEE 802.3 Ethernet-Frame hat folgende Struktur:

  1. Präambel (7 Bytes): Alternierende 1 und 0 Bits (10101010...) zur Synchronisation.
  2. Start Frame Delimiter (SFD) (1 Byte): Das Bitmuster 10101011 markiert den tatsächlichen Beginn des Frames.
  3. Zieladresse (6 Bytes): Die MAC-Adresse des Empfängers.
  4. Quelladresse (6 Bytes): Die MAC-Adresse des Absenders.
  5. Längenfeld (2 Bytes): Gibt die Länge des Datenfeldes in Bytes an (0-1500).
  6. Daten und Auffüllung (46-1500 Bytes): Die Nutzdaten mit eventueller Auffüllung, um die Mindestframegröße zu erreichen.
  7. Frame Check Sequence (FCS) (4 Bytes): Eine 32-Bit CRC für die Fehlererkennung.

29.4.1.2 Ethernet II (DIX Ethernet)

Die Ethernet II Variante, auch als DIX (DEC, Intel, Xerox) Ethernet bekannt, unterscheidet sich vom IEEE 802.3 Standard in einem wichtigen Punkt:

Ethernet II ist heute die gebräuchlichere Variante und wird für die meisten Ethernet-Netzwerke verwendet.

Besonderheiten des Ethernet-Framings: - Minimale Frame-Größe: 64 Bytes (ohne Präambel und SFD) - Maximale Frame-Größe: 1518 Bytes (ohne Präambel und SFD) - Bei zu kurzen Daten erfolgt Auffüllung (Padding) auf mindestens 46 Bytes - Jumbo Frames: Erweiterte Frames mit bis zu 9000 Bytes Nutzdaten (nicht standardisiert)

HDLC ist ein von der ISO standardisiertes, bitorientieres Protokoll, das für synchrone Übertragungen verwendet wird.

Ein HDLC-Frame hat folgende Struktur:

  1. Flag (1 Byte): Das Bitmuster 01111110 markiert Anfang und Ende des Frames.
  2. Adressfeld (1 oder mehrere Bytes): Identifiziert die Zielstation.
  3. Kontrollfeld (1 oder 2 Bytes): Definiert den Frame-Typ und Steuerfunktionen.
  4. Informationsfeld (variabel): Die eigentlichen Nutzdaten (optional).
  5. FCS (2 oder 4 Bytes): Prüfsumme zur Fehlererkennung.
  6. Flag (1 Byte): Das abschließende Bitmuster 01111110.

HDLC verwendet Bit-Stuffing, um zu verhindern, dass die Flag-Sequenz in den Daten erscheint.

HDLC-Derivate: - PPP (Point-to-Point Protocol): Basiert auf HDLC, verwendet aber Byte-Stuffing. - SDLC (Synchronous Data Link Control): IBM-Variante von HDLC. - LAPB (Link Access Procedure, Balanced): Für X.25-Netzwerke verwendet.

29.4.3 PPP-Framing (Point-to-Point Protocol)

PPP ist ein Protokoll für Punkt-zu-Punkt-Verbindungen, das häufig für Internet-Einwahlverbindungen und WAN-Links verwendet wurde.

Ein PPP-Frame hat folgende Struktur:

  1. Flag (1 Byte): Das Byte 0x7E markiert Anfang und Ende des Frames.
  2. Adresse (1 Byte): Standardmäßig 0xFF (Broadcast).
  3. Kontroll (1 Byte): Standardmäßig 0x03 (unnummerierte Informationen).
  4. Protokoll (1 oder 2 Bytes): Identifiziert das Protokoll der eingekapselten Daten.
  5. Daten (variabel): Die Nutzdaten.
  6. FCS (2 oder 4 Bytes): Prüfsumme.
  7. Flag (1 Byte): Das abschließende Byte 0x7E.

PPP verwendet Byte-Stuffing (ACCM - Asynchronous Control Character Map) für Zeichen wie das Flag (0x7E) und das Escape-Zeichen (0x7D).

29.5 Weitere Framing-Techniken und Spezialfälle

29.5.1 ATM-Zellen (Asynchronous Transfer Mode)

ATM verwendet einen grundlegend anderen Ansatz als die bisher diskutierten Framing-Techniken:

ATM war besonders in Backbone-Netzwerken verbreitet, hat aber an Bedeutung verloren.

29.5.2 Token Ring und FDDI

Diese Ring-basierten Netzwerktechnologien verwenden spezielle Framing-Strukturen:

Token Ring (IEEE 802.5): - Start Delimiter und End Delimiter markieren Anfang und Ende eines Frames. - Spezielle Token-Frames kontrollieren den Zugriff auf das Medium. - Verwendet AC (Access Control) und FC (Frame Control) Felder zur Steuerung.

FDDI (Fiber Distributed Data Interface): - Ähnlich wie Token Ring, aber für Glasfaser optimiert. - Verwendung von Symbol-Encoding für die Erkennung von Frame-Grenzen.

Beide Technologien sind heute weitgehend historisch, haben aber wichtige Konzepte zum Framing beigetragen.

29.5.3 SONET/SDH-Framing

SONET (Synchronous Optical Network) und SDH (Synchronous Digital Hierarchy) sind Standards für optische Übertragungstechniken mit hochstrukturiertem Framing:

SONET/SDH wird in Telekommunikations-Backbone-Netzen eingesetzt.

29.6 Bedeutung des Framings für die Netzwerkkommunikation

29.6.1 Auswirkungen auf die Netzwerkleistung

Die Wahl der Framing-Technik und die Frame-Größe haben erhebliche Auswirkungen auf die Netzwerkleistung:

Frame-Größe und Effizienz: - Kleine Frames: Geringere Latenz, aber höherer relativer Overhead - Große Frames: Höhere Effizienz, aber potenziell längere Blockierungszeiten für andere Geräte

Overhead-Betrachtung: - Jeder Frame hat einen gewissen Overhead durch Header und Trailer - Bei kleinen Datenmengen kann der Overhead einen signifikanten Anteil ausmachen - Beispiel: Ein minimaler Ethernet-Frame mit 46 Bytes Nutzdaten hat 18 Bytes Overhead (ohne Präambel und SFD) – ein Overhead von ca. 28%

Collision Domains: Bei Shared-Media-Netzwerken (wie dem ursprünglichen Ethernet) beeinflusst die Frame-Größe die Wahrscheinlichkeit von Kollisionen und damit die erreichbare Netzwerkeffizienz.

29.6.2 Integration mit höheren Protokollschichten

Framing spielt eine wichtige Rolle bei der Integration mit höheren Protokollschichten:

Protokollidentifikation: - Layer-2-Frames müssen die enthaltenen Protokolle der höheren Schichten identifizieren können - Bei Ethernet erfolgt dies über das Typ-Feld (Ethernet II) oder über LLC/SNAP (IEEE 802.3)

MTU und Fragmentierung: - Die maximale Frame-Größe (MTU - Maximum Transmission Unit) beeinflusst, ob höhere Protokollschichten ihre Daten fragmentieren müssen - Unterschiedliche MTUs in verschiedenen Netzwerksegmenten können zu Fragmentierung und Reassemblierung führen

QoS-Unterstützung: - Moderne Framing-Techniken beinhalten oft Felder für Quality-of-Service-Informationen - Diese werden von höheren Schichten genutzt, um Prioritäten und Verkehrsklassen zu implementieren

29.7 Praktische Aspekte des Framings

29.7.1 Implementierung in Netzwerkgeräten

Die Implementierung von Framing-Mechanismen erfolgt in verschiedenen Netzwerkkomponenten:

In Netzwerkkarten (NICs): - Hardware-Unterstützung für das Erkennen von Frame-Grenzen - Generierung und Überprüfung von Prüfsummen - DMA-Übertragung kompletter Frames in den Arbeitsspeicher

In Switches und Routern: - Spezielle ASICs oder NPUs (Network Processing Units) für effizientes Frame-Processing - Frame-Puffer zur Zwischenspeicherung und Weiterleitung - Cut-Through vs. Store-and-Forward Switching basierend auf Frame-Eigenschaften

In Software-Stacks: - Betriebssysteme bieten APIs für den Zugriff auf Frame-Daten - Socket-Interfaces abstrahieren die Details des Framings - Protokolltreiber implementieren die spezifischen Framing-Mechanismen

29.7.2 Debugging und Analyse von Framing-Problemen

Bei Netzwerkproblemen spielt die Analyse auf Frame-Ebene eine wichtige Rolle:

Typische Framing-Probleme: - Fehlerhafte Prüfsummen: Führen zur Verwerfung von Frames - Nicht erkannte Frame-Grenzen: Können zu Frame-Verlust führen - Baby Giants und Runts: Anomal große oder kleine Frames - Alignment Errors: Frames mit fehlerhafter Byte-Ausrichtung

Diagnosetools: - Netzwerk-Analyzers (z.B. Wireshark): Zeigen detaillierte Frame-Strukturen und Anomalien - SNMP-Monitoring: Erfasst Statistiken über fehlerhafte Frames - Specialized Hardware Analyzers: Bieten tiefere Einblicke in Timing- und Signalprobleme

Methodisches Vorgehen: 1. Identifikation von Mustern in fehlerhaften Frames 2. Isolierung der betroffenen Netzwerksegmente 3. Überprüfung physikalischer Verbindungen und Konfigurationen 4. Analyse der Frame-Struktur und Identifikation von Abweichungen