[go: up one dir, main page]

DE69332390T2 - Paketrahmenerzeugung - Google Patents

Paketrahmenerzeugung

Info

Publication number
DE69332390T2
DE69332390T2 DE1993632390 DE69332390T DE69332390T2 DE 69332390 T2 DE69332390 T2 DE 69332390T2 DE 1993632390 DE1993632390 DE 1993632390 DE 69332390 T DE69332390 T DE 69332390T DE 69332390 T2 DE69332390 T2 DE 69332390T2
Authority
DE
Germany
Prior art keywords
ordered set
bits
frame
length
error detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1993632390
Other languages
English (en)
Other versions
DE69332390D1 (de
Inventor
Kalmanek, Jr.
William Todd Marshall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of DE69332390D1 publication Critical patent/DE69332390D1/de
Application granted granted Critical
Publication of DE69332390T2 publication Critical patent/DE69332390T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Description

    Hintergrund der Erfindung Technisches Gebiet
  • Die Erfindung betrifft allgemein Kommunikationssysteme und insbesondere Verfahren und Vorrichtungen zur Fehlerkontrolle in Kommunikationssystemen, die virtuelle Leitungstechnologie verwenden.
  • Allgemeiner Stand der Technik
  • Ein Kommunikationssystem gestattet es Benutzern, über eine große Distanz zu kommunizieren, und umfaßt in der Regel mehrere Einrichtungen und Informationskanäle zur Ermöglichung der Kommunikation. Das vertrauteste und allgegenwärtigste aller Kommunikationssysteme ist vielleicht das Telefonsystem. Dazu gehören zum Beispiel die Orts- und Ferngesprächsnetze, private Netze und die privaten Nebenstellen, mit denen Unternehmen und Instituten spezielle Dienste bereitgestellt werden. Wahrend das Telefonsystem Informationen sowohl in Sprach- als auch in Datenform fuhrt, fuhren ähnliche Computernetze Daten zwischen Computern.
  • Fig. 1 zeigt ein beispielhaftes Kommunikationssystem, das ein Kommunikationsnetz 109 umfaßt, das zwei Benutzer Alice 101 und Bob 103 verbindet. Wenn Alice Informationen zu Bob senden mochte, gibt sie ihrer Systemstation 105 die Informationen. Die Systemstation kann eine beliebige Einrichtung sein (z. B. ein Telefon, eine Faxmaschine oder ein Computer), die die Informationen, die ein Benutzer angibt, in eine Form transformieren kann, die das Kommunikationssystem verarbeiten kann, und umgekehrt. Wenn die Systemstation ein analoges Telefon ist, transformiert die Systemstation die akustischen Vibrationen der Stimme von Alice zu einer geordneten Menge von Signalen, die analoge Großen ("Analogsignale") darstellen und über das Kommunikationssystem übertragen werden können. Wenn die Systemstation ein digitales Telefon, eine Faxmaschine oder ein Computer ist, transformiert die Systemstation in der Regel die Informationen zu einer geordneten Menge von Signalen oder "Paketen", die eine Menge von digitalen Großen ("digitale Signale") darstellen.
  • Nachdem die Systemstation 105 die Menge von Signalen erzeugt hat, sendet die Systemstation die Signale über ein Kommunikationsnetz 109 zu der Systemstation 107 von Bob, und die Systemstation von Bob transformiert dort das Signal in eine Form, die sich dafür eignet, Bob ausgegeben zu werden.
  • Ein typisches Paketvermittlungssystem ist aus dem US- Patent Nr. Re. 31,319 von A. G. Fräser, wieder ausgegeben am 19.7.1983, bekannt und ermöglichte es Kommunikationssystemen, Pakete zu fuhren. Solche paketvermittelten Kommunikationssysteme sind im Stand der Technik wohlbekannt, fuhren sowohl Sprach- als auch Nicht-Sprach-Daten und sind im allgemeinen wirtschaftlicher und nützlicher als ihre analogen Gegenstücke.
  • Ein paketvermitteltes Kommunikationssystem kann ein Paket zerstören, indem es dieses entweder verfälscht (d. h. die Signale darin verändert) oder alle oder einige der Signale darin verliert. Ein Paket behalt seine "Integrität", wenn es ohne veränderte oder verlorene Signale abgeliefert wird. Wenn jedoch ein Paket wahrend der Übertragung zerstört wird, wird es unmöglich, die Integrität des Pakets zu bestimmen.
  • Obwohl es problematisch ist, lediglich zu bestimmen, ob ein Paket zerstört worden ist, besteht, nachdem bestimmt wurde, daß das Paket zerstört worden ist, die allgemein akzeptierte Prozedur darin, das Paket zu verwerfen und eine Neuübertragung durch den Sender anzufordern. Diese Praxis wird von der TCP/IP- Protokollsuite und anderen solchen wohlbekannten Kommunikationsprotokollen wie etwa LAP/LAPB/LAPD, X.25/X.75 und Q.921/Q.931 befolgt.
  • Um zu bestimmen, ob ein Paket zerstört worden ist, ist es notwendig, bestimmte Annahmen darüber zu treffen, wie das Paket zerstört werden kann. Vorausgesetzt, daß die Signale in einem Paket verändert werden können, aber niemals verloren gehen, bestimmt eine CRC-Prüfung, ob die Integrität des Pakets zerstört worden ist oder nicht. Diese sind die Annahmen und die Losung für viele Datennetze (z. B. X.25, Ethernet, FDDI und Bisync).
  • Vorausgesetzt, daß die Signale in dem Paket verloren gehen können, aber nicht verändert werden können, bestimmen ein Paketlängenanzeiger und eine Paketsequenzkennung, ob die Integrität des Pakets zerstört worden ist oder nicht. Dies ist die Annahme und die Losung, die in den von AT&T vermarkteten Datakit-Netzen verwendet wird, die in dem Universal Receiver Protocol implementiert werden, das aus Fräser et al., US-Patent Nr. 4,852,127, ausgegeben am 25.7.1989/ bekannt ist.
  • Paketvermittlungsnetze, die Technologie der "virtuellen Leitungen" verwenden, teilen Netzbetriebsmittel so zu, daß alle über das Netzwerk gesendeten Informationen sukzessive in der Reihenfolge gesendet werden, in der die Informationen in das Netzwerk eingegeben werden. Solche Paketvermittlungsnetze mit virtuellen Leitungen sind im Stand der Technik wohlbekannt, fuhren im allgemeinen Nicht-Sprach-Daten und sind nützlicher als ihre Datagramm-Gegenstücke.
  • Paketvermittlungsnetze mit virtuellen Leitungen können sowohl Signale in einem Paket verlieren als auch den Rest verfälschen. Deshalb ist es nicht ratsam, irgendwelche der oben für Netzwerke getroffenen Vereinfachungsannahmen zu treffen. Es ist also bisher problematisch gewesen, einen Mechanismus zu konzipieren, der bestimmt, ob die Integrität eines Pakets in virtuellen Leitungen zerstört worden ist oder nicht. Ein einfaches Kombinieren der Mechanismen des CRC, eines Paketlängenanzeigers und einer Paketsequenzkennung reicht nicht aus.
  • Aus EP-A-0 381 515 ist eine Paketvermittlungsanordnung für HDLC-Datenpakete variabler Lange und Sprach-/Videopakete fester Lange bekannt. Diese beiden verschiedenen Arten von Paketen werden in Zellen zerlegt. Für jede der Zellen wird eine Zellenkennung erzeugt, um ihren Typ zu identifizieren. Ein Rahmen- Sync-Code wird von einem Ende eines Übertragungskanals gesendet und die Zellenkennung und jede der Zellen werden zu einem Feld zusammengestellt und mehrere Felder werden zur Übertragung zu einem Rahmen zusammengestellt.
  • Kurze Darstellung der Erfindung
  • Verfahren und Vorrichtungen gemäß der Erfindung werden in den unabhängigen Ansprüchen 1, 4, 6 und 9 dargelegt. Bevorzugte Formen werden in den abhängigen Ansprüchen dargelegt.
  • Die vorliegende Erfindung vermeidet die Unzulänglichkeiten des Stands der Technik und stellt gleichzeitig einen Mechanismus zur Erkennung sowohl der Zerstörung als auch der Verfälschung einer geordneten Menge von Signalen, die über einen verlustbehafteten Kommunikationskanal übertragen werden, bereit. Diese Ergebnisse erhält man in einem Ausführungsbeispiel der vorliegenden Erfindung, das als Eingabe eine geordnete Menge von zu übermittelnden Signalen empfangt und die Menge von Signalen mit Fehlererkennungs- und anderen Steuersignalen ergänzt. Alle diese Signale werden dann zu mindestens einer Menge von Ausgangssignalen segmentiert, so daß die Fehlererkennungssignale und die Buchführungssignale in einer einzigen Menge von Ausgangssignalen enthalten sind. Ausführungsformen der vorliegenden Erfindung sind effizienter (d. h. weisen weniger Overhead auf) als Lösungen im Stand der Technik und können leichter implementiert werden.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 zeigt eine Abbildung eines beispielhaften Kommunikationsnetzes, das Kommunikationseinrichtungen zwischen zwei Teilnehmern bereitstellt.
  • Fig. 2 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung, das Fehlererkennung in einem Kommunikationssystem bereitstellt.
  • Fig. 3 zeigt das Format eines beispielhaften Rahmens mit Benutzerdaten und anderen Buchführungsinformationen.
  • Fig. 4 zeigt die von dem in Fig. 2 gezeigten Paketverkapslermodul bereitgestellte Funktionalität.
  • Fig. 5 zeigt die von dem in Fig. 2 gezeigten Rahmensegmentierermodul bereitgestellte Funktionalität.
  • Fig. 6 zeigt die von dem in Fig. 2 gezeigten Nachspann- Validierermodul bereitgestellte Funktionalität.
  • Fig. 7 zeigt die von dem in Fig. 2 gezeigten Paketvalidierermodul bereitgestellte Funktionalität.
  • Fig. 8 zeigt die von dem in Fig. 7 gezeigten alternativen Packvalidierermodul bereitgestellte Funktionalität.
  • Ausführliche Beschreibung 1. Einführung
  • Aus pädagogischen Gründen werden Ausführungsbeispiele der vorliegenden Erfindung in dem Kontext vorgestellt, daß ein Benutzer (Alice) wünscht, über ein Kommunikationssystem, das die Technologie der virtuellen Leitungen verwendet, zuverlässig eine Sprach- oder eine Nicht-Sprach-Datennachricht zu einem zweiten Benutzer (Bob) zu senden. Wenngleich die virtuelle Leitung versucht, die Validität des Pakets sicherzustellen, kann das Paket tatsächlich entweder verfälscht oder überhaupt nicht abgeliefert werden.
  • Es ist jedoch zu beachten, daß eine auffallende Eigenschaft der Technologie der virtuellen Leitungen dann besteht, daß die virtuelle Leitung zwar das Paket entweder verfälschen kann, nur Teile des Pakets abliefern oder es überhaupt nicht abliefern kann, diese Teile jedoch in der gesendeten Reihenfolge geliefert werden. Der Grund dafür ist, daß in der Regel für alle Signale in dem Paket derselbe physische (oder logische) Weg verwendet wird. Ein Merkmal des Ausführungsbeispiels liefert vorteilhafterweise einen Mechanismus zur Erkennung der Verfälschung oder Löschung des Pakets oder von Teilen des Pakets. Fehlerkorrektur gewöhnlich in Form von Anforderungen einer Paketneuübertragung werden von der Ausführungsform vorteilhafterweise nicht behandelt, sondern Bob überlassen (das heißt, die Ausführungsform der vorliegenden Erfindung wird in Verbindung mit standardmäßigen Fehlerkorrekturtechniken verwendet, um eine hochgenaue Datenkommunikation voll zu erreichen).
  • Beigefügt als Anhang 1 und 2 sind Auflistungen beispielhafter Computerprogramme, die entsprechend den nachfolgend beschriebenen Funktionen in der wohlbekannten Sprache C geschrieben wurden. Wenn sie auf einem beliebigen einer großen Klasse von Vielzweckcomputern ausgeführt werden, realisieren diese Programme Hardwareausführungsformen der vorliegenden Erfindung. Anhang 3 und 4 sind Tabellen von Daten, die von den in Anhang 1 und 2 auf gelisteten Computerprogrammen verwendet werden. Anhang 5 ist eine Auflistung eines Computerprogramms, das die Tabellen in Anhang 3 und 4 erzeugt hat.
  • Im folgenden bezieht sich jede Bezugnahme auf ein "Byte" auf ein 8-Bit-Byte. Für Durchschnittsfachleute auf dem 'Gebiet der Datenkommunikation ist klar, wie die Ausführungsbeispiele modifiziert werden können, um mit anderen als 8-Bit-Byte zu arbeiten.
  • 2. Vorrichtung zur Paketrahmenerzeugung
  • Wie bei 205 in Fig. 2 gezeigt, umfaßt ein Ausführungsbeispiel der vorliegenden Erfindung vorteilhafterweise 3 Module: (1) einen Paketverkapsler 211 zum Verkapseln des Pakets, um einen "Rahmen" zu bilden, (2) einen Rahmensegmentierer 213 zum Segmentieren des Rahmens zu einer oder mehreren "Zellen" und (3) einen Zellensender 215 zum Senden der Zelle oder Zellen über die virtuelle Leitung 225 zu Bob. Aus pädagogischen Gründen wird jedes Modul nachfolgend im Hinblick auf die von ihm bereitgestellte Funktionalität beschrieben. Für Durchschnittsfachleute auf dem Gebiet der Datenkommunikation ist klar, wie jedes Modul entweder mit spezieller Hardware oder mit geeignet programmierter Vielzweckhardware hergestellt werden kann. Es wird bevorzugt, das Ausführungsbeispiel entweder mit elektrischer, optischer oder elektrooptischer Technologie zu konstruieren. Für Durchschnittsfachleute wird klar sein, wie diese Technologien vorteilhafterweise zur Ausübung der vorliegenden Erfindung oder soviel davon, wie nützlich ist, verwendet werden können. Insbesondere zeigt sich für Fachleute, daß Systeme des in dem oben erwähnten US-Patent Nr. Re. 31,319 beschriebenen Typs ohne weiteres an Ausführungsformen der vorliegenden Erfindung anpaßbar sind.
  • Die Ausführungsform in Fig. 2 empfängt als Eingabe von Alice 201 eine geordnete Menge von Signalen, die als ein "Paket" bezeichnet wird. Das Paket ist die Benutzereingabe für die Ausführungsform und kann als das Datennutzsignal betrachtet werden. Es bestehen keine Einschränkungen bezüglich des Inhalts oder der Struktur der Daten in dem Paket und es kann vorteilhafterweise eine beliebige Länge aufweisen (obwohl für diese konkrete Ausführungsform Längen zwischen Null und 65 535 (2¹&sup6;-1) Byte bevorzugt werden).
  • Das erste Modul 211 in der Ausführungsform verkapselt das Paket, um eine ergänzte Menge geordneter Signale zu erzeugen, die als ein "Rahmen" bekannt ist. Wie in Fig. 3 gezeigt, ist ein Rahmen eine Menge von Signalen variabler Länge, die vorteilhafterweise der Reihe nach die folgenden sechs Felder umfaßt: (1) ein "Benutzerdaten"-Feld, (2) ein "Stopf"-Feld, (3) ein "CRC-Daten"-Feld, (4) ein "Sequenzkennungs"-Feld, (5) ein "Benutzerdatenlängen"-Feld und (6) ein "CRC- Nachspann"-Feld.
  • Wie in Fig. 4 bei 411 gezeigt, führt das Modul zum Verkapseln des Pakets vorteilhafterweise mindestens sechs Schritte durch: (1) Stopfen des Stopffelds, (2) Erzeugen der CRC-Prüfsumme für das CRC-Datenfeld, (3) Entwickeln einer Sequenzkennung für das Sequenzkennungsfeld, (4) Entwickeln der Länge des Benutzerdatenfelds, die in dem Benutzerdatenlängenfeld gespeichert werden soll, (5) Erzeugen der CRC-Prüfsumme für das CRC-Nachspannfeld und (6) Verketten des Benutzerdatenfelds, des Stopffelds, des CRC-Datenfelds, des Frequenzkennungsfelds, des Benutzerdatenlängenfelds und des CRC-Nachspannfelds der Reihe nach, um den Rahmen zu erzeugen. Es versteht sich, daß die Reihenfolge der Felder in einem Rahmen nicht kritisch ist und die beschriebene Ausführungsform ohne weiteres modifiziert werden kann, um Variationen der Reihenfolge der Felder in dem Rahmen zu berücksichtigen.
  • Das Benutzerdatenfeld enthält vorteilhafterweise das Paket (d. h. die Nachricht, die Alice zu Bob übermitteln mochte). Die Informationen in dem Paket werden vorteilhafterweise ohne Übersetzung, Modifikation oder Einstellung in dem Benutzerdatenfeld abgelegt und es besteht deshalb eine eindeutige Entsprechung zwischen den Informationen in dem Paket und den Informationen in dem Benutzerdatenfeld. Da das Paket eine beliebige Lange von bis zu 65,535 Byte aufweisen kann, gilt das gleiche für das Benutzerdatenfeld.
  • Das Stopffeld wird mit von null bis sieben Byte beliebiger Daten "gestopft" oder ausgefüllt, damit die Gesamtlänge des Rahmens zwingend ein Vielfaches von 8 Byte ist. Daß die bevorzugte Rahmenlänge als ein Vielfaches von 8 Byte gewählt wird, rührt von folgendem her: (1) dem Umstand, daß bei dieser Ausführungsform der "Nachspann" (d. h. das Sequenzkennungsfeld, das Benutzerdatenlängenfeld und das CRC-Nachspannfeld) insgesamt 8 Byte lang ist, und (2) der allgemeinen Anforderung, daß der Rahmen so segmentiert wird, daß der Nachspann in einer einzigen Zelle enthalten ist, wie nachfolgend ausführlicher beschrieben werden wird. Wenn die Lange einer Zelle und die Lange des Rahmens beide Vielfache der Lange des Nachspanns sind, ist deshalb sichergestellt, daß der Rahmen immer ordnungsgemäß segmentiert wird. Es sollte für Fachleute auf dem Gebiet der Datenkommunikation klar sein, wie der Bereich von Byte in dem Stopffeld modifiziert werden kann, um gewünschte Modifikationen der Ausführungsform zu berücksichtigen.
  • Bei dieser Ausführungsform ist die Lange des Stopffeldes (d. h. die Anzahl beliebiger Datenbyte, die in das Stopffeld gestopft werden) vorteilhafterweise eine Funktion der Lange der Benutzerdaten n und kann folgendermaßen bestimmt werden:
  • Lange des Stopffelds = (65.540-n) mod 8
  • Wobei "(65.540-n) mod 8" den Rest bedeutet, wenn die Große (65540-n) durch 8 dividiert wird. Wenn zum Beispiel die Benutzerdaten 14 386 Byte lang sind, sollte das Stopffeld 2 Byte lang sein.
  • Das CRC-Datenfeld ist vorteilhafterweise vier Byte lang und enthält eine Fehlererkennungskette, die die Erkennung von Übertragungsfehlern in dem Benutzerdatenfeld und in Stopffeldern ermöglicht. Genauer gesagt sind die Daten in dem CRC-Datenfeld vorteilhafterweise die erzeugte CRC-Prüfsumme, die sich ergibt, wenn das folgende Generatorpolynom:
  • g(x) = x³² + x³¹ + x&sup4; + x³ + x + 1
  • auf die Daten sowohl in dem Benutzerdaten- als auch in dem Stopffeld angewandt wird. Obwohl der CRC-Kode der bevorzugte Fehlererkennungsmechanismus ist, wird Fachleuten klar sein, wie ein anderer Fehlererkennungsmechanismus den CRC-Mechanismus ersetzen kann.
  • Das Sequenzkennungsfeld ist in der Regel drei Byte lang und enthält eine Kennung der Eingangssequenz bzw. des Eingangspakets. Die Sequenzkennung dient zur Identifizierung jedes zwischen einem gegebenen Sender (z. B. Alice) und einem gegebenen Empfänger (z. B. Bob) übertragenen Rahmens. Somit muß jeder Sender (Empfänger) eine "synchronisierte" Aufzeichnung (d. h. die Aufzeichnungen sowohl des Senders als auch des Empfängers sollten dieselben sein) der Sequenzkennung fuhren, die zuletzt zu (von) einem gegebenen Empfänger (Sender) gesendet (empfangen) wurde. Anders ausgedruckt müssen, wenn Alice Pakete zu Bob, Carol und David sendet, Alice und Bob eine synchronisierte Sequenzkennung fuhren, Alice und Carol eine zweite synchronisierte Sequenzkennung und Alice und David eine dritte synchronisierte Sequenzkennung.
  • Wenn ein Sender zuvor keinen Rahmen zu einem gegebenen Empfänger gesendet hat, wird die Sequenzkennung für das Sender/Empfänger-Paar vorteilhafterweise auf null initialisiert. Später wird die Sequenzkennung für das Sender/Empfänger-Paar für jeden Rahmen, der vom Sender zum Empfänger gesendet wird, um eins (mod 2²&sup4;) erhöht. Die Sequenzkennung für einen Rahmen wird nicht wiederverwendet, wenn der Rahmen neu gesendet wird; stattdessen wird die nächste reguläre Sequenzkennung verwendet.
  • Das Benutzerdatenlängenfeld ist vorteilhafterweise zwei Byte lang und stellt die Lange des Benutzerdatenfeldes in Byte dar. Das CRC-Nachspannfeld ist vorteilhafterweise drei Byte lang und enthält eine Fehlererkennungskette, durch die Bob Übertragungsfehler in dem Nachspann erkennen kann. Genauer gesagt werden die Daten in dem CRC-Nachspannfeld vorteilhafterweise durch die folgenden Schritte bestimmt: (1) Erzeugen einer CRC-Prüfsumme ("CRC"), die sich aus Anwendung des folgenden Generatorpolynoms:
  • g(x) = x²³ + x²² + x² + 1
  • auf die Daten sowohl in dem Sequenzkennungsfeld als auch in den Benutzerdatenlängenfeldern ergibt, (2) Multiplizieren der CRC mit zwei und (3) bitweise Exkiusiv-OR-Verknüpfung des Produkts mit C00005 (hexadezimal). Die Modifikation der CRC in den Schritten (2) und (3) stellt sicher, daß die Prüfsumme 24 Bit (drei Byte) lang ist und immer einen von Null verschiedenen Wert aufweist. Die Schritte (2) und (3) können als Alternative durch die Anweisung (CRC< < 1)^0 · C00005 dargestellt werden. Obwohl dies der bevorzugte Fehlererkennungsmechanismus ist, wird Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation klar sein, wie der CRC-Mechanismus durch einen anderen Fehlererkennungsmechanismus ersetzt werden kann.
  • Das zweite Modul 213 in Fig. 2 segmentiert den Rahmen zu einer oder mehreren Zellen. Bei dieser Ausführungsform sind alle Zellen z. B. 48 Byte lang. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie die Ausführungsform modifiziert werden kann, um andere konkrete Zellenlängen, die für andere Anwendungen nützlich sind, zu berücksichtigen.
  • Wie in Fig. 5 bei 513 gezeigt, führt das zweite Modul 213 von Fig. 2 in der Ausführungsform vorteilhafterweise bei der Segmentierung des Rahmens zu einer oder mehreren Zellen mindestens die folgenden drei Schritte durch: (1) Füllen des Rahmens, wenn notwendig, (2) Unterteilen des Rahmens in Zellen und (3) Markieren jeder Zelle entweder als eine "Benutzerdatenzelle" oder als eine "Nachspannzelle".
  • Wenn die Rahmenlänge kein Vielfaches von 48 Byte ist, muß der Rahmen eines oder mehrere an ihn angehängte "Füllbyte" aufweisen, damit die Gesamtlänge des Rahmens ein Vielfaches von 48 wird. Die Füllbyte weisen einen Nullwert auf (d. h. werden in der Regel mit Nur-Nullen gefüllt.
  • Die Schritte des Unterteilens des Rahmens in eine oder mehrere Zellen beginnen mit der Numerierung der Byte in dem Rahmen von 1 bis n, beginnend mit dem ersten Byte in dem Benutzerdatenfeld und endend mit dem letzten Füllbyte. Die ersten 48 Byte werden der ersten Zelle zugewiesen. Die nächsten 48 Byte werden der zweiten Zelle zugewiesen usw., bis der gesamte Rahmen in eine oder mehrere Zellen unterteilt worden ist.
  • Bei dem letzten Schritt bei der Segmentierung des Rahmens wird jede Zelle markiert, um anzuzeigen, ob es eine "Benutzerdatenzelle" oder eine "Nachspannzelle" ist. Jede Zeile, die den Nachspann nicht enthält, wird als eine Benutzerdatenzelle markiert, während die letzte Zelle eines Rahmens (die den Nachspann enthält) als die "Nachspannzelle" markiert wird.
  • Das letzte Modul 215 in der Ausführungsform sendet die markierten Zellen der Reihe nach über die virtuelle Leitung.
  • 3. Eine Vorrichtung zum Wiederbeanspruchen eines Pakets
  • Wie in Fig. 2 bei 207 gezeigt, umfaßt ein Empfänger- oder Paketwiederbeanspruchungssystem gemäß einem Ausführungsbeispiel der vorliegenden Erfindung vorteilhafterweise drei Module: (1) einen Zellenempfänger 217 zum Empfangen einer oder mehrerer Zellen aus der virtuellen Leitung 225, um einen "Kandidaten-Rahmen" zu erzeugen, (2) einen Nachspannvalidierer 219 zum Validieren der Integrität des Nachspanns und (3) einen Paketvalidierer 221 zum Validieren der Integrität des Pakets. Aus pädagogischen Gründen wird jedes Modul nachfolgend im Hinblick auf die von ihm bereitgestellte Funktionalität beschrieben. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie jedes Modul entweder mit spezieller Hardware oder mit geeignet programmierter Vielzweckhardware hergestellt werden kann. Es wird bevorzugt, daß das Ausführungsbeispiel entweder mit elektrischer, optischer oder elektrooptischer Technologie konstruiert wird. Für Durchschnittsfachleute wird klar sein, wie die vorliegende Erfindung oder soviel davon, wie nützlich ist, ausgeübt werden kann.
  • Das erste Modul 217 in der Ausführungsform empfängt und akkumuliert vorteilhafterweise eine oder mehrere Zellen aus der virtuellen Leitung, bis eine Nachspannzelle empfangen wird. Wenn eine Nachspannzelle empfangen wird, werden die Nachspannzelle und alle (etwaigen) Benutzerdatenzellen, die seit dem Empfang der letzten Nachspannzelle akkumuliert wurden, in der Empfangsreihenfolge zu einem "Kandidaten-Rahmen" zusammengestellt.
  • Das zweite Modul 219 in Fig. 2 in der Ausführungsform validiert vorteilhafterweise die Integrität des Nachspanns. Wie in Fig. 6 bei 619 gezeigt, umfaßt das Validieren der Integrität des Nachspanns vorteilhafterweise drei Operationen: (1) Finden des Nachspanns in dem Kandidaten-Rahmen, (2) Prüfen des Nachspanns auf Übertragungsfehler und (3) Analysieren des Nachspanns.
  • Das zweite Modul findet den Nachspann in der Kandidatenzelle vorteilhafterweise durch Scannen der Nachspannzelle in Acht-Byte-Schritten, beginnend vom Ende der Zelle vorwärts zum Anfang der Zelle, bis ein von Null verschiedenes Byte gefunden wird. Da das letzte Datenbyte in dem CRC-Nachspann vorteilhafterweise während des Rahmenerzeugungsprozesses so modifiziert wurde, daß es immer von Null verschieden ist, dient dieses von Null verschiedene Byte als eine Abgrenzung zum Finden des Endes des Nachspanns.
  • Wenn innerhalb der letzten 41 Byte der Zelle kein von Null verschiedenes Byte gefunden wird, ist ein Übertragungsfehler aufgetreten. In einem solchen Fall wird der Kandidaten-Rahmen verworfen, der Prozeß des Wiederbeanspruchens des Pakets wird beendet und es wird eine Nachricht zu Bob gesendet, die anzeigt, daß bei der Übertragung eines Pakets von Alice ein Fehler aufgetreten ist.
  • Wenn der Nachspann gefunden wird, prüft das zweite Modul den Nachspann auf Übertragungsfehler durch Einspeisen der Signale in dem Nachspann (d. h. der Felder Benutzerdatenlänge, Sequenzkennung und CRC- Nachspann) in einen CRC-Mechanismus mit demselben Generatorpolynom, das zur Erzeugung der Daten in dem CRC-Nachspannfeld verwendet wurde.
  • Wenn das Ergebnis der CRC-Prüfung anzeigt, daß die Daten in dem Nachspann verfälscht sind, wird der Kandidaten-Rahmen verworfen, der Prozeß des Wiederbeanspruchens des Pakets beendet und eine Nachricht zu Bob gesendet, die anzeigt, daß ein Fehler auf getreten ist.
  • Wenn die Integrität des Nachspanns validiert wird, analysiert das zweite Modul den Nachspann. Der Nachspann ist vorteilhafterweise acht Byte lang und wird folgendermaßen analysiert: die ersten drei Byte des Nachspanns enthalten die Sequenzkennung und die nächsten beiden Byte das Benutzerdatenlängenfeld.
  • Das dritte Modul 221 in der Ausführungsform validiert die Integrität des Pakets (d. h. der Benutzerdaten in dem Benutzerdatenfeld). Wie in Fig. 7 bei 721 gezeigt, umfaßt die Operation des Prüfens der Integrität der Benutzerdaten vorteilhafterweise vier Schritte: (1) Prüfen der Stimmigkeit der Benutzerdatenlänge und der Anzahl von Datenzellen in dem Kandidaten-Rahmen; (2) Verifizieren der Sequenzkenung, (3) Verifizieren der Benutzerdatenlänge und (4) Prüfen der Integrität der Benutzerdaten.
  • Wenn der Wert des Benutzerdatenlängenfelds 36 oder weniger beträgt (so daß der Kandidaten-Rahmen in eine Zelle paßt), werden die Datenzellen in dem Kandidaten- Rahmen verworfen und der Kandidaten-Rahmen wird von dem Punkt in dem Wiederbeanspruchungsprozeß an als nur die Nachspannzelle enthaltend betrachtet.
  • Das dritte Modul in der Ausführungsform vergleicht vorteilhafterweise die Sequenzkennung des Kandidaten- Rahmens mit Bobs Aufzeichnung der Sequenzkennung des vorherigen Rahmens, um sicherzustellen, daß die Sequenzkennung des Kandidaten-Rahmens um eins größer (mod 2²&sup4;) ist als die des vorherigen Rahmens. Ungeachtet des Ergebnisses wird Bobs Aufzeichnung der Sequenzkennung des vorherigen Rahmens mit der Sequenzkennung des Kandidaten-Rahmens aktualisiert. Wenn jedoch die Sequenznummer des Kandidaten-Rahmens aus der Sequenz fällt und die Benutzerdatenlänge 37 oder mehr beträgt, wird der Kandidaten-Rahmen verworfen, der Prozeß des Wiederbeanspruchens des Pakets beendet und eine Nachricht zu Bob gesendet, die anzeigt, daß ein Fehler aufgetreten ist.
  • Als nächstes wird die Benutzerdatenlänge geprüft, um sicherzustellen, daß sie kleiner oder gleich der Gesamtzahl von Byte in dem Benutzerdaten- und Stopffeld des Kandidaten-Rahmens ist. Wenn die Bedingung nicht erfüllt ist, wird der Kandidaten-Rahmen verworfen, der Prozeß des Wiederbeanspruchens des Pakets beendet und eine Nachricht zu Bob gesendet, die anzeigt, daß ein Fehler auf getreten ist. Andernfalls wird die Benutzerdatenlänge zum Analysieren der Benutzerdaten aus der Stopfung verwendet.
  • Die Benutzerdaten werden auf Übertragungsfehler geprüft, indem die Benutzerdaten und die Stopfsignale und die CRC-Daten in einen CRC-Mechanismus eingespeist werden, wobei das Generatorpolynom zur Erzeugung der Daten in dem CRC-Datenfeld verwendet wird. Wenn das Ergebnis des CRC-Mechanismus anzeigt, daß die Benutzerdaten und die Stopfung verfälscht wurden, wird der Kandidaten-Rahmen verworfen, der Prozeß des Wiederbeanspruchens des Pakets beendet und eine Nachricht zu Bob gesendet, die anzeigt, daß ein Fehler aufgetreten ist. Andernfalls wurden die Benutzerdaten empfangen, sind vollständig und unverfälscht und werden danach als das ursprüngliche Paket betrachtet, das zu Bob 203 gesendet wird.
  • 4. Eine alternative Vorrichtung zum Wiederbeanspruchen eines Pakets
  • Dieser Abschnitt zeigt eine Vorrichtung zum Wiederbeanspruchen eines Pakets, wobei die Vorrichtung eine Alternative für die im Abschnitt 3 vorgestellte ist. Diese Vorrichtung verwendet die in der Programmauflistung im Anhang I offengelegte Prozedur.
  • Wie in Fig. 2 bei 207 gezeigt, umfaßt ein Empfänger- oder Paketwiederbeanspruchungssystem gemäß einem Ausführungsbeispiel der vorliegenden Erfindung vorteilhafterweise drei Module: (1) einen Zellenempfänger 217 zum Empfangen einer oder mehrerer Zellen aus der virtuellen Leitung 225, um einen "Kandidaten-Rahmen" zu erzeugen, (2) einen Nachspannvalidierer 219 zum Validieren der Integrität des Nachspanns und (3) einen Paketvalidierer 221 zum Validieren der Integrität des Pakets. Aus pädagogischen Gründen wird jedes Modul im folgenden im Hinblick auf die von ihm bereitgestellte Funktionalität beschrieben. Durchschnittsfachleuten auf dem Gebiet der Datenkommunikation wird klar sein, wie jedes Modul entweder mit spezieller Hardware oder mit geeignet programmierter Vielzweckhardware hergestellt werden kann. Es wird bevorzugt, daß das Ausführungsbeispiel entweder mit elektrischer, optischer oder elektrooptischer Technologie konstruiert wird. Für Durchschnittsfachleute wird klar sein, wie die vorliegende Erfindung oder soviel davon, wie nützlich ist, ausgeübt werden kann.
  • Das erste Modul 217 in der Ausführungsform empfangt und akkumuliert vorteilhafterweise eine oder mehrere Zellen aus der virtuellen Leitung, bis eine Nachspannzelle empfangen wird. Wenn eine Nachspannzelle empfangen wird, werden die Nachspannzelle und alle (etwaigen) Benutzerdatenzellen, die seit dem Empfang der letzten Nachspannzelle akkumuliert wurden, in der Empfangsreihenfolge zu einem "Kandidaten-Rahmen" zusammengestellt. Das erste Modul reicht den Kandidaten-Rahmen an das zweite Modul 219 weiter.
  • Das zweite Modul 219 in Fig. 2 in der Ausführungsform validiert vorteilhafterweise die Integrität des Nachspanns. Wie in Fig. 6 bei 619 gezeigt, umfaßt das Validieren der Integrität des Nachspanns vorteilhafterweise drei Operationen: (1) Finden des Nachspanns in dem Kandidaten-Rahmen, (2) Prüfen des Nachspanns auf Übertragungsfehler und (3) Analysieren des Nachspanns.
  • Das zweite Modul 619 findet vorteilhafterweise den Nachspann in dem Kandidaten-Rahmen durch Scannen der Nachspannzelle in Acht-Byte-Schritten, beginnend von dem Ende der Nachspannzelle vorwärts zum Anfang der Nachspannzelle, bis ein von Null verschiedenes Byte gefunden wird. Siehe die Beispiele für das Nachspannzellenformat in den Abschnitten 5.1 und 5.2 unten. Da vorteilhafterweise das letzte Datenbyte in dem CRC-Nachspann während des Rahmenerzeugungsprozesses so modifiziert wurde, daß es immer von Null verschieden ist, dient dieses von Null verschiedene Byte als eine Abgrenzung zum Finden des Endes des Nachspanns innerhalb der Nachspannzelle.
  • Wenn innerhalb der letzten 41 Byte der Zelle kein von Null verschiedenes Byte gefunden wird, wird angenommen, daß ein Übertragungsfehler aufgetreten ist. Die Zahl 41 wird aus der Länge der Zelle (48) in Byte minus der Länge des Nachspanns (8) in Byte, plus 1 abgeleitet. Durchschnittsfachleuten wird klar sein, wie diese Prüfung modifiziert werden kann, um Variationen der Länge der Zelle und/oder des Nachspanns zu berücksichtigen. Wenn angenommen wird, daß ein Übertragungsfehler aufgetreten ist, verwirft das zweite Modul 619 den Kandidaten-Rahmen, bricht die Wiederbeanspruchung des Pakets ab und sendet eine Nachricht zu Bob, die anzeigt, daß bei der Übertragung eines oder mehrerer Pakete von Alice ein Fehler aufgetreten ist.
  • Nachdem der Nachspann gefunden wurde, prüft das zweite Modul 619 den Nachspann auf Übertragungsfehler durch Einspeisen der Signale in dem Nachspann (d. h. der Felder Benutzerdatenlänge, Sequenzkennung und CRC- Nachspann) in einen CRC-Mechanismus mit demselben Generatorpolynom, das zur Erzeugung der Daten in dem CRC-Nachspannfeld verwendet wurde.
  • Wenn das Ergebnis der CRC-Prüfung anzeigt, daß die Daten in dem Nachspann verfälscht sind, verwirft das zweite Modul 619 den Kandidaten-Rahmen, bricht die Wiederbeanspruchung des Pakets ab und sendet eine Nachricht zu Bob, die anzeigt, daß bei der Übertragung eines oder mehrerer Pakete von Alice ein Fehler aufgetreten ist.
  • Wenn das Ergebnis der CRC-Prüfung anzeigt, daß die Daten in dem Nachspann nicht verfälscht sind, analysiert das zweite Modul 619 den Nachspann zu (1) der Sequenzkennung, (2) der Benutzerdatenlänge und (3) dem CRC-Nachspann. Wie im Abschnitt 2 erwähnt, ist der Nachspann vorteilhafterweise acht Byte lang. Der Nachspann wird folgendermaßen analysiert: Die ersten drei Byte des Nachspanns stellen die Sequenzkennung dar, die nächsten zwei Byte das Benutzerdatenlängenfeld und die letzten drei Byte den CRC-Nachspann. Das zweite Modul 619 leitet den Kandidaten-Rahmen, die Sequenzkennung und die Benutzerdatenlänge an ein drittes Modul 221 weiter.
  • Das dritte Modul 221 validiert die Integrität des Pakets (d. h. der Benutzerdaten in dem Benutzerdatenfeld). Wie in Fig. 8 bei 821 gezeigt, beginnt die Operation des Prüfens der Integrität der Benutzerdaten vorteilhafterweise mit der Prüfung, ob der ganzzahlige Wert in dem Sequenzkennungsfeld um eins größer (mod 2²&sup4;) als die letzte von Alice gesendete Sequenzkennung ist. Dadurch kann Bob bestimmen, ob seit dem Empfang der letzten Nachspannzelle von Alice etwaige Nachspannzellen verloren gegangen sind.
  • Wenn wie in Fig. 8 bei 801 und 803 gezeigt das dritte Modul 221 bestimmt, daß die Sequenzkennung die erwartete ist (und deshalb in der Zwischenzeit keine Pakete verloren gegangen sind), führt das dritte Modul 221 folgendes durch: (1) Aufzeichnung der vorliegenden Sequenzkennung (und somit Ersetzen der Aufzeichnung der letzten empfangenen Sequenzkennung) und (2) Überprüfen, daß die Benutzerdatenlänge kleiner oder gleich der Anzahl von Byte in dem Benutzerdaten- und dem Stopffeld des Kandidaten-Rahmens ist. Wenn diese Prüfung eine negative Antwort ergibt (also ein Teil oder alle der der vorliegenden Nachspannzelle zugeordneten Datenzellen verloren gegangen sind), wird der Kandidaten-Rahmen als verfälscht angesehen und verworfen, der Prozeß des Wiederbeanspruchens des Pakets wird beendet und es wird eine Nachricht zu Bob gesendet, die anzeigt, daß ein Übertragungsfehler auf getreten ist. Wenn die Prüfung, die die Benutzerdatenlänge mit der Anzahl von Byte in dem Benutzerdaten- und dem Stopffeld vergleicht, eine bestätigende Antwort ergibt (also scheinbar alle der der vorliegenden Nachspannzelle zugeordneten Datenzellen empfangen wurden), verwendet das dritte Modul 221 bei 811 in Fig. 8 die Benutzerdatenlänge zum Analysieren der Benutzerdaten aus der Stopfung und leitet beides zu der CRC-Datenprüfoperation bei 813 weiter.
  • Wenn das dritte Modul 221 wie bei 801 und 803 in Fig. 8 gezeigt bestimmt, daß die Sequenzkennung nicht aufeinanderfolgend oder um eins größer (mod 2²&sup4;) als erwartet ist (also seit dem Empfang der letzten Nachspannzelle eine oder mehrere Nachspannzellen verloren gegangen sind), verzeichnet das dritte Modul 221 die vorliegende Sequenzkennung (und ersetzt somit die Aufzeichnung der letzten empfangenen Sequenzkennung) trotz der Unstetigkeit, da diese Aufzeichnung den Effekt hat, die jeweiligen Sequenzkennungsaufzeichnungen von Alice und Bob neu zu synchronisieren.
  • Nach der Erkennung der Unstetigkeit der Sequenzkennung versucht das dritte Modul 221 bei 805, unter bestimmten Umständen die der vorliegenden Nachspannzelle zugeordneten Benutzerdaten zu retten, trotz der Hinweise, daß an einem bestimmten Punkt seit dem Empfang des letzten gültigen Pakets eine oder mehrere Zellen bei der Übertragung verloren gegangen sind. Wenn die dem vorliegenden Nachspann zugeordneten Benutzerdaten vollständig in der vorliegenden Nachspannzelle enthalten sind, kann es möglich sein, die Benutzerdaten zu retten.
  • Zu diesem Zweck prüft das dritte Modul 221 bei 805, ob die Benutzerdatenlänge kleiner als 37 ist (d. h. ob die dem vorliegenden Nachspann zugeordneten Benutzerdaten in den nicht von dem Nachspann eingenommenen Rest der Zelle passen konnten). Die Zahl 37 wird aus der Lange einer Zelle (48) in Byte minus der Lange des Nachspanns (8) in Byte minus der Lange des CRC-Datenfelds (2) in Byte plus 1 abgeleitet. Für Durchschnittsfachleute wird klar sein, wie diese Prüfung modifiziert werden kann, um Varianten der Zellenlänge, der Nachspannlänge oder der Lange des CRC-Datenfelds zu berücksichtigen. Wenn diese Prüfung eine negative Antwort ergibt (also bestimmte oder alle der der vorliegenden Nachspannzelle zugeordneten Datenzellen verloren gegangen sind), wird der Kandidaten-Rahmen als verfälscht angesehen und verworfen, der Prozeß des Wiederbeanspruchens des Pakets beendet und eine Nachricht zu Bob gesendet, die anzeigt, daß ein Übertragungsfehler aufgetreten ist.
  • Wenn die Prüfung, die die Benutzerdatenlänge mit 37 vergleicht, eine bestätigende Antwort ergibt (also die Benutzerdaten vollständig in der Nachspannzelle enthalten sind), verwendet das dritte Modul bei 811 die Benutzerdatenlänge zum Analysieren der Benutzerdaten aus der Stopfung und leitet beides zu der CRC- Datenprüfoperation bei 813 weiter.
  • Die Benutzerdaten werden auf Übertragungsfehler geprüft, indem die Benutzerdaten und die Stopfsignale und die CRC-Daten in einen CRC-Mechanismus mit dem Generatorpolynom, das zur Erzeugung der Daten in dem CRC-Datenfeld verwendet wurde, eingespeist werden. Wenn das Ergebnis des CRC-Mechanismus anzeigt, daß die Benutzerdaten und die Stopfung verfälscht sind, wird der Kandidaten-Rahmen als verfälscht angesehen und verworfen, der Prozeß des Wiederbeanspruchens des Pakets wird beendet und es wird eine Nachricht zu Bob gesendet, die anzeigt daß ein Übertragungsfehler aufgetreten ist. Andernfalls werden die Benutzerdaten als empfangen, vollständig und unverfälscht angesehen und zu Bob 203 gesendet.
  • 5. Beispiele 5.1 Ein Paket, das in eine einzige Zelle paßt
  • Ein Proberahmen mit dem Paket "Hello world< CR> < LF> " (13 Byte) erscheint in Tabelle 1. Tabelle 1
  • 5.2. Ein Paket, das mehrere Zellen erfordert
  • Ein Proberahmen mit dem Paket "The fault, dear Brutus, is not in our stars, < CR> < LF> But in ourselves... < CR> < LF> " (67 Byte) erscheint in Tabelle 2. Tabelle 2
  • Anhang I C-Implementierung von Empfängerprozeduren
  • Es folgt ein C-Programm, das, wenn es auf einem Vielzweckcomputer ausgeführt wird, eine Vorrichtung zur Rahmenerzeugung für ein Paket implementiert. Es wird erwartet, daß diese Routine jedesmal dann aufgerufen wird, wenn eine Steuerzelle (Typ = 2) empfangen wird, und daß sie die Gültigkeit des Rahmens bestimmt. Sie gibt die Länge gültiger empfangener Benutzerdaten zurück, oder -1, wenn der Rahmen einen Fehler enthält.
  • frame_check(seqptr, buf, len)
  • register char *buf;
  • register int len;
  • register int *seqptr;
  • {
  • register int i;
  • register char *cp;
  • register long crc;
  • long seqno, expseq;
  • int userlen, padding;
  • if ((len&03)! = 0) return (-1); /* Rahmen muß ein Vielfaches von 8 Byte lang sein */
  • /*
  • *1. Nachspann finden. Abhängig davon, daß Bit 0 des crc von Null verschieden ist
  • */
  • cp = &buf[len];
  • while (cp[-1] = = 0 && len> 0) { cp - = 4;
  • len - = 4;
  • }
  • cp - = 8;
  • if (len < 8) return (-1); /* Rahmen zu klein */ len - = 8;
  • /*
  • * 2. CRC im Nachspann prüfen
  • */
  • crc = 0;
  • for (i = 0; i< 8; i++) {
  • crc = crc_trail [((crc> > (SIZE_CRCTRAIL- 8))^P(cp[i])) & 0xff] ^((crc< < ) &MASK_CRCTRAIL);
  • }
  • if (crc! = 0) return (-1); /* Bitverfälschungsfehler im Nachspann */
  • /*
  • * 3. Sequenznummer dieses Rahmens prüfen, möglicherweise Puffer einstellen, wenn seq falsch und userdatalength < = 36 ist, dadurch wird der Fall einer fallengelassenen Steuerzelle, gefolgt durch eine kurze Nachricht, abgedeckt
  • */
  • seqno = ((cp [0] &0xff)< < 16) + ((cp [1] &0xff)< < 8) + (cp[2]&0xff;
  • expseq = (*seqptr+1)&0xffffff;
  • userlen = ((cp[3]&0xff)< < ) + (cp[4]&0xff);
  • if (seqno! = expseq) {
  • if (userlen > 36) (
  • *seqptr = seqno;
  • return (-1); /*Fehlender vollständiger Rahmen, nicht behebbar
  • }
  • len = (len % 48); /* nur letzte Zelle behalten */
  • cp - = len; /* auf Beginn der letzten Zelle zeigen */
  • for (i = 0; i< len; i++) buf[i] = *cp++;
  • }
  • *seqptr = seqno ';
  • /*
  • * 4. Länge des Rahmens prüfen
  • */
  • if (len! = ((userlen+11) & 0xfffffff8)) return (-1); /* falsche Rahmenlänge */
  • /*
  • * 5. CRC über Daten prüfen
  • */
  • crc = 0;
  • cp = buf;
  • for (i = 0; i< len; i++) { crc = crc_data[((crc> > (SIZE_CRCDATA-8))^(*cp++)) & 0xff]
  • ^((crc< < 8) &MASK_CRCDATA);
  • }
  • if (crc! = 0);
  • return (-1); /* CRC über Daten falsch */
  • /* alles OK
  • *
  • */
  • return (userlen);
  • }
  • Anhang II C-Implementierung von Senderprozeduren
  • Es folgt ein C-Programm, das, wenn es auf einem Vielzweckcomputer ausgeführt wird, eine Vorrichtung zum Wiederbeanspruchen eines Pakets implementiert. Diese Routine erwartet, aufgerufen zu werden, bevor jeder Rahmen gesendet wird, und hängt die richtigen Steuerinformationen an das Ende des Puffers an. Die Länge der resultierenden Nachricht wird zurückgegeben.
  • frame_gen (seqptr, buf, len)
  • register char *buf;
  • int *seqptr;
  • {
  • register char *cp;
  • register long i, crc;
  • *seqptr++;
  • cp = buf; crc = 0;
  • /*
  • * 1. Benutzerdaten
  • */
  • for (i = len; i> 0; i--) { crc = crc data[((crc> > (SIZE_CRCDATA-8))^*cp++) & 0xff] ^((crc< < 8)&MASK_CRCDATA);
  • }
  • /*
  • * 2. Stopfung für Synchronisation
  • */
  • for (i = (8-((len+4)&7))&7; i> 0; i--) { crc = crc data[((crc»(SIZE CRCDATA-8))) & 0xff]
  • ^((crc< < 8) & MASK_CRCDATA);
  • *cp++ = 0;
  • /* 3. CRC-Abdeckdaten
  • *
  • */
  • *cp++ = (crc> > 24) &0xff;
  • *cp++ = (crc> > 16) &0xff;
  • *cp++ = (crc> > 8) &0xff;
  • *cp++ = crc&0xff;
  • /*
  • * 4. Sequenznummer
  • */
  • crc = 0;
  • crc = crc_trail[((crc> > (SIZE_CRCTRAIL-8))^(infoptr- > xseq> > 16)) & 0xff] ^((crc< < 8)&MASK_CRCTRAIL);
  • *cp++ = (infoptr-> xseq> > 16) & 0xff;
  • crc = crc_trail[((crc> > (SIZE_CRCTRAIL-8))^(infoptr- > xseq> > 8)) & 0xff] ^((crc< < 8) &MASK_CRCTRAIL);
  • *cp++ = (infoptr-> xseq> > 8) & 0xff;
  • crc = crc_trail [((crc> > (SIZE_CRCTRAIL-8))^(infoptr- > xseq)) & 0xff] ^((crc< < 8) &MASK_CRCTRAIL);
  • *cp++ = (infoptr-> xseq) & 0xff;
  • /*
  • * 5. Benutzerdatenlänge
  • */
  • crc = crc_trail[((crc> > (SIZE_CRCTRAIL-8))^(len> > 8)) & 0xff] ^((crc< < 8)&MASK_CRCTRAIL);
  • *cp++ = (len> > 8) & 0xff;
  • crc = crc_trail[((crc> > (SIZE_CRCTRAIL-8))^(len)) & 0xff] ^((crc< < 8)&MASK_CRCTRAIL);
  • *cp++ = (len) & 0xff;
  • /*
  • * 6. CRC-Abdecksteuerinfo
  • */
  • crc = ((crc< < 1)^(crc_trail[1] 0x800000)) & 0xffffff;
  • *cp++ = (crc> > 16) &0xff;
  • *cp++ = (crc> > 8)&0xff;
  • *cp++ = crc&0xff;
  • len = ((len+11)&0xfffffff8) + 8;
  • return (len);
  • }
  • Anhang III CRC-Tabellen für die Softwareerzeugung von CRC-DATA
  • Die folgenden Tabellen werden von den in Anhang I und II erscheinenden Programmen zur Berechnung des Werts von CRC-DATA benutzt.
  • Anhang IV CRC-Tabellen für die Softwareerzeugung von CRC-TRAILER
  • Die folgenden Tabellen werden von den in Anhang I und II erscheinenden Programmen zur Berechnung des Werts von CRC-TRAILER verwendet.
  • Anhang V Erzeugung von CRC-Tabellen
  • Das folgende Programm wurde zur Berechnung der in den beiden vorherigen Anhängen erscheinenden Tabellen verwendet.

Claims (10)

1. Vorrichtung (205) zur Erzeugung mindestens einer Ausgangszelle auf der Basis eines Eingangspakets, mit einem Mittel zum Bilden eines Rahmens, dadurch gekennzeichnet, daß
das Mittel zum Bilden eines Rahmens ein Mittel (211) zum Einkapseln eines Eingangspakets in einen Rahmen enthält, das für jedes Eingangspaket folgendes bildet:
(1) eine geordnete Menge von Datenbit, die das Eingangspaket darstellen;
(2) eine erste geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Datenbit basieren;
(3) eine geordnete Menge von Sequenzkennungsbit, die die Ausgangszelle identifizieren;
(4) eine geordnete Menge von Längenbit, die auf einer Länge der Ausgangszelle basieren; und
(5) eine zweite geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Sequenzkennungsbit und der geordneten Menge von Längenbit basieren; und dadurch, daß die Vorrichtung weiterhin ein Mittel (213) zum Segmentieren des Rahmens und zum Erzeugen der Ausgangszelle, dergestalt, daß die geordnete Menge von Sequenzkennungsbit, die geordnete Menge von Längenbit und die zweite geordnete Menge von Fehlererkennungsbit in einer einzigen Ausgangszelle enthalten sind, umfaßt.
2. Vorrichtung nach Anspruch 1, wobei das Mittel zum Einkapseln eines Eingangspakets in einen Rahmen durch Bilden weiterhin folgendes umfaßt:
ein Mittel (411) zum Entwickeln der ersten geordneten Menge von Fehlererkennungsbit;
ein Mittel (411) zum Entwickeln der geordneten Menge von Längenbit; und
ein Mittel (411) zum Entwickeln der zweiten geordneten Menge von Fehlererkennungsbit.
3. Vorrichtung nach Anspruch 2, wobei
das Mittel zum Entwickeln der ersten geordneten Menge von Fehlererkennungsbit weiterhin ein Mittel zum Entwickeln eines CRC-Codes umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x³² + x³¹ + x&sup4; + x³ + x + 1; und
das Mittel zum Entwickeln der zweiten geordneten Menge von Fehlererkennungsbit weiterhin ein Mittel zum Entwickeln eines CRC-Codes umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x²³ + x²² + x² + 1.
4. Vorrichtung (207) zur Erzeugung eines Ausgangspakets auf der Basis mindestens einer Eingangszelle, mit einem Mittel zum Bilden eines Rahmens, dadurch gekennzeichnet, daß
das Mittel zum Bilden eines Rahmens ein Mittel (217) zum Bilden eines Kandidaten-Rahmens aus mindestens einer Eingangszelle umfaßt, so daß eine einzige Eingangszelle eine geordnete Menge von Sequenzkennungsbit, eine geordnete Menge von Längenbit und eine erste geordnete Menge von Fehlererkennungsbit enthält; und daß
die Vorrichtung weiterhin ein Mittel (219) zum Analysieren des Kandidaten-Rahmens umfaßt, wobei die Eingangszelle folgendes umfaßt:
(1) eine geordnete Menge von Datenbit, die das Ausgangspaket darstellen;
(2) eine zweite geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Datenbit basieren;
(3) wobei die geordnete Menge von Sequenzkennungsbit die geordnete Menge von Kandidaten-Bit identifiziert;
(4) wobei die geordnete Menge von Längenbit auf einer Länge des Ausgangspakets basiert; und
(5) die erste geordnete Menge von Fehlererkennungsbit auf der geordneten Menge von Sequenzkennungsbit und der geordneten Menge von Längenbit basiert.
5. Vorrichtung nach Anspruch 4, wobei
das Mittel zum Analysieren weiterhin ein Mittel zum Prüfen der geordneten Menge von Datenbit mit einem CRC-Code umfaßt, der durch ein Generatorpolynom gleich g(x) = x³² + x³¹ + x&sup4; + x³ + x + 1 definiert ist; und
das Mittel zum Analysieren weiterhin ein Mittel zum Prüfen der geordneten Menge von Sequenzbit und der geordneten Menge von Längenbit mit einem CRC- Code umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x²³ + x²² + x² + 1.
6. Verfahren zur Erzeugung mindestens einer Ausgangszelle auf der Basis eines Eingangspakets, bei dem ein Rahmen gebildet wird, dadurch gekennzeichnet, daß
der Schritt des Bildens eines Rahmens das Bilden eines Rahmens aus dem Eingangspaket umfaßt, wobei der Rahmen folgendes umfaßt:
(1) eine geordnete Menge von Datenbit, die das Eingangspaket darstellen;
(2) eine erste geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Datenbit basieren;
(3) eine geordnete Menge von Sequenzkennungsbit, die den Rahmen identifizieren;
(4) eine geordnete Menge von Längenbit, die auf einer Länge der geordneten Menge von Datenbit basieren; und
(5) eine zweite geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Sequenzkennungsbit und der geordneten Menge von Längenbit basieren; und dadurch, daß
das Verfahren weiterhin das Segmentieren des Rahmens und das Erzeugen der Ausgangszelle oder -zellen auf der Basis des Rahmens umfaßt, dergestalt, daß die geordnete Menge von Sequenzkennungssignalen, die geordnete Menge von Längensignalen und die zweite geordnete Menge von Fehlererkennungssignalen in einer einzigen Ausgangszelle enthalten sind.
7. Verfahren nach Anspruch 6, wobei der Schritt des Bildens weiterhin die folgenden Schritte umfaßt:
Entwickeln der ersten geordneten Menge von Fehlererkennungsbit;
Entwickeln der geordneten Menge von Längenbit; und
Entwickeln der zweiten geordneten Menge von Fehlererkennungsbit.
8. Verfahren nach Anspruch 7, wobei
der Schritt des Entwickelns der ersten geordneten Menge von Fehlererkennungsbit weiterhin den Schritt des Entwickelns eines CRC-Codes umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x³² + x³¹ + x&sup4; + x³ + x + 1; und
der Schritt des Entwickelns der zweiten geordneten Menge von Fehlererkennungsbit weiterhin den Schritt des Entwickelns eines CRC-Codes umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x²³ + x²² + x² + 1.
9. Verfahren zur Erzeugung eines Ausgangspakets auf der Basis mindestens einer Eingangszelle, gekennzeichnet durch die folgenden Schritte:
Bilden eines Kandidaten-Rahmens aus mindestens einer Eingangszelle, so daß eine einzige Eingangszelle eine geordnete Menge von Sequenzkennungsbit, eine geordnete Menge von Längenbit und eine erste geordnete Menge von Fehlererkennungsbit enthält; und
Analysieren des Kandidaten-Rahmens, wobei die Eingangszelle folgendes umfaßt:
(1) eine geordnete Menge von Datenbit, die das Ausgangspaket darstellen;
(2) eine zweite geordnete Menge von Fehlererkennungsbit, die auf der geordneten Menge von Datenbit basieren;
(3) wobei die geordnete Menge von Sequenzkennungsbit den Kandidaten-Rahmen identifiziert;
(4) wobei die geordnete Menge von Längenbit auf einer Länge des Ausgangspakets basiert; und
(5) die erste geordnete Menge von Fehlererkennungsbit auf der geordneten Menge von Sequenzkennungsbit und der geordneten Menge von Längenbit basiert.
10. Verfahren nach Anspruch 9, wobei
der Schritt des Analysierens weiterhin den Schritt des Prüfens der geordneten Menge von Datenbit mit einem CRC-Code umfaßt, der durch ein Generatorpolynom gleich g(x) = x³² + x³¹ + x&sup4; + x³ + x + 1 definiert ist; und
der Schritt des Analysierens weiterhin den Schritt des Prüfens der geordneten Menge von Sequenzbit und der geordneten Menge von Längenbit mit einem CRC-Code umfaßt, der definiert ist durch ein Generatorpolynom gleich g(x) = x²³ + x²² + x² + 1.
DE1993632390 1992-02-14 1993-02-04 Paketrahmenerzeugung Expired - Fee Related DE69332390T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83603092A 1992-02-14 1992-02-14
US88087892A 1992-05-11 1992-05-11

Publications (2)

Publication Number Publication Date
DE69332390D1 DE69332390D1 (de) 2002-11-21
DE69332390T2 true DE69332390T2 (de) 2003-06-12

Family

ID=27125839

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1993632390 Expired - Fee Related DE69332390T2 (de) 1992-02-14 1993-02-04 Paketrahmenerzeugung

Country Status (4)

Country Link
EP (1) EP0555998B1 (de)
JP (1) JP3053709B2 (de)
CA (1) CA2081505C (de)
DE (1) DE69332390T2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2785743A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
JP3293593B2 (ja) * 1999-06-16 2002-06-17 日本電気株式会社 伝送方式、それに用いる端局及び中継器並びにその伝送方法
US6662339B1 (en) * 1999-12-15 2003-12-09 Agere Systems Inc. Error screening based on code and control information consistency in a communication system
KR100657253B1 (ko) * 2000-03-29 2006-12-14 삼성전자주식회사 무선 패킷 송수신 장치 및 그 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58165445A (ja) * 1982-03-26 1983-09-30 Hitachi Ltd フレ−ム通信方式
US4577313A (en) * 1984-06-04 1986-03-18 Sy Kian Bon K Routing mechanism with encapsulated FCS for a multi-ring local area network
US4852127A (en) * 1985-03-22 1989-07-25 American Telephone And Telegraph Company, At&T Bell Laboratories Universal protocol data receiver
JPS6316744A (ja) * 1986-07-09 1988-01-23 Nec Corp パケツト交換方式
US4970714A (en) * 1989-01-05 1990-11-13 International Business Machines Corp. Adaptive data link protocol
JPH0813057B2 (ja) * 1989-02-03 1996-02-07 日本電気株式会社 Hdlc可変長パケットと非hdlc固定長パケットとの混在転送方法

Also Published As

Publication number Publication date
EP0555998A3 (en) 1995-12-27
EP0555998A2 (de) 1993-08-18
DE69332390D1 (de) 2002-11-21
JP3053709B2 (ja) 2000-06-19
JPH0685788A (ja) 1994-03-25
CA2081505C (en) 1998-09-01
EP0555998B1 (de) 2002-10-16
CA2081505A1 (en) 1993-08-15

Similar Documents

Publication Publication Date Title
DE2849718C2 (de) Einrichtung zur Prüfung und Sicherstellung der Unversehrtheit von über Datenübertragungsleitungen übertragenen Nachrichten
DE69319682T2 (de) Verfahren und Einrichtung zur Datenkompression und -dekompression für Synchronsendegerät
DE69634401T2 (de) System und verfahren zur kurzzellenmultiplex-atm-übertragung
DE60124164T2 (de) Kodierung für in Paketen geordnete, serielle Daten
DE60214144T2 (de) Verfahren und Vorrichtung zur bereitstellung von unterschiedlichen Dienstqualitätsstufen in einer Funkpaketdatendienstverbindung
DE69917871T2 (de) Flusskontrole von rahmenbasierten Daten in einem synchronen digitalen Netz
DE112019007655B4 (de) Verfahren zum bereitstellen von pfadsignal-overhead im 64b/66b-zeichenstrom eines itu-t-metro-transportnetzwerks unter verwendung von mikropaketen
DE112019007412T5 (de) Verfahren zum bereitstellen von pfadsignal-overhead im 64b/66b-zeichenstrom eines itu-t-metro-transportnetzwerks
DE69013308T2 (de) Datenkommunikationssystem.
DE202008018451U1 (de) Erneute Übertragung in Datenübertragungssystemen
EP0382680B1 (de) Verfahren zum kryptographischen Behandeln von Daten und kryptographisches System
DE60221178T2 (de) Verfahren und Gerät zur Einbindung von Fast Ethernet Paketen in SONET-Container über ein Funksystem
DE69633970T2 (de) Verfahren und Vorrichtung zur Synchronisationsrückgewinnung in einem Datenübertragungssystem
DE69530665T2 (de) Verfahren und gerät zur sprachübertragung in einem mobilen kommunikationssystem
EP0388495B1 (de) Verfahren zur Qualitätsüberwachung wenigstens zweier Übertragungsabschnitte einer Digitalsignal-Übertragungsstrecke und Vorrichtung zur Durchführung des Verfahrens
DE69217533T2 (de) Anordnung zur Auswertung von Sonetanzeigern
DE69613383T2 (de) Verfahren und einrichtung zur schnellenerzeugung und übertragung einer zeichensequenz mittels sprachfrequenzen
DE69324208T2 (de) Geteiltkanaldatenübertragung
DE69332390T2 (de) Paketrahmenerzeugung
DE19913148A1 (de) Verfahren und Vorrichtung zum Komprimieren von Daten in einem Telekommunikationssystem
EP0998078A1 (de) Konfigurationsverfahren einer Nachrichtenverbindung für eine Datenübertragung
DE10027456A1 (de) Vorrichtung und Verfahren zum Verbessern der Leistung in Master- und Slave-Kommunikationssystemen
WO2003010929A1 (de) Verfahren und anordnung zur übermittlung von daten aus einem ersten datennetz in ein zweites datennetz
DE60205452T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Information aus einem Telekommunikationsnetz
DE602005003728T2 (de) Korrektur von durch Scrambling bedingter Fehlerfortpflanzung mit anschliessender Vorwärtsfehlerkorrektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee