DE69332390T2 - Paketrahmenerzeugung - Google Patents
PaketrahmenerzeugungInfo
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 24
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- HEFNNWSXXWATRW-UHFFFAOYSA-N Ibuprofen Chemical compound CC(C)CC1=CC=C(C(C)C(O)=O)C=C1 HEFNNWSXXWATRW-UHFFFAOYSA-N 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance 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
- Die Erfindung betrifft allgemein Kommunikationssysteme und insbesondere Verfahren und Vorrichtungen zur Fehlerkontrolle in Kommunikationssystemen, die virtuelle Leitungstechnologie verwenden.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Ein Proberahmen mit dem Paket "Hello world< CR> < LF> " (13 Byte) erscheint in Tabelle 1. Tabelle 1
- 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
- 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);
- }
- 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);
- }
- Die folgenden Tabellen werden von den in Anhang I und II erscheinenden Programmen zur Berechnung des Werts von CRC-DATA benutzt.
- Die folgenden Tabellen werden von den in Anhang I und II erscheinenden Programmen zur Berechnung des Werts von CRC-TRAILER verwendet.
- 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.
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)
| 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)
| 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固定長パケットとの混在転送方法 |
-
1992
- 1992-10-27 CA CA 2081505 patent/CA2081505C/en not_active Expired - Fee Related
-
1993
- 1993-02-04 EP EP93300845A patent/EP0555998B1/de not_active Expired - Lifetime
- 1993-02-04 DE DE1993632390 patent/DE69332390T2/de not_active Expired - Fee Related
- 1993-02-12 JP JP5046027A patent/JP3053709B2/ja not_active Expired - Fee Related
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 |