PatentDe  


Dokumentenidentifikation DE10119754B4 29.11.2007
Titel Verfahren und Vorrichtung zum Speichern von Datenpaketen
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Nie, Xiaoning, Dr., 81543 München, DE
Vertreter Patent- und Rechtsanwälte Kraus & Weisert, 80539 München
DE-Anmeldedatum 23.04.2001
DE-Aktenzeichen 10119754
Offenlegungstag 31.10.2002
Veröffentlichungstag der Patenterteilung 29.11.2007
Veröffentlichungstag im Patentblatt 29.11.2007
IPC-Hauptklasse G06F 12/02(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

Die vorliegende Erfindung betrifft ein Verfahren sowie eine entsprechend ausgestaltete Vorrichtung zum Speichern von Nachrichten- oder Datenpaketen, welche in einem bestimmten Datenübertragungsformat vorliegen und in einem Kommunikationsnetz von einem Sender an einen gewünschten Empfänger zu übertragen bzw. zu vermitteln sind.

Zur Übertragung bzw. Vermittlung von Nachrichten werden in modernen Telekommunikationsnetzen die Nachrichten in mehrere Einheiten bzw. Datenpakete zerlegt. Jedes dieser Datenpakete ist dabei üblicherweise mit einem Kopffeld ("Header") und einem Informationsfeld, welches die eigentliche Nachrichten- oder Nutzinformation ("Payload") enthält, versehen. Zudem kann ein Endfeld ("Trailer") als Abschluss des jeweiligen Datenpakets vorgesehen sein.

Die für die Vermittlung ("Routing") eines Datenpakets erforderliche Information ist in der Regel in dem Kopffeld des jeweiligen Datenpakets enthalten. Ein beispielsweise in einem MAC-Frame ("Medium Access Control") übertragenes Ethernet-Datenpaket (welches nachfolgend der Einfachheit halber als eMAC-Datenpaket bezeichnet wird) weist z. B. im Kopffeld die Ursprungsadresse ("Source Address") und die Zieladresse ("Destination Address") der zu übermittelnden Nachricht auf. Die Zieladresse des Datenpakets wird in jedem Knotenpunkt des entsprechenden Kommunikationsnetzes ausgewertet, um davon abhängig den bestmöglichen Vermittlungspfad zu dem gewünschten Empfänger zu ermitteln.

Ein eMAC-Datenpaket umfasst zudem ein IP-Paket ("Internet Protocol"), wobei ein derartiges IP-Paket bis zu 60.000 Bytes umfassen kann. In Vermittlungsknoten eines Kommunikationsnetzes kann das Problem auftreten, dass ein in einem bestimmten Datenpaketformat vorliegendes eingehendes Datenpaket ausgangsseitig auf ein oder mehrere Datenpakete eines anderen Datenpaketformats abgebildet werden muss. Während eine Ethernet-Vermittlung vorzugsweise in lokalen Netzen Anwendung findet, wird beispielsweise in moderneren Breitband-ISDN-Kommunikationsnetzen ("Broadband Integrated Services Digital Network") eine ATM-Vermittlung ("Asynchronous Transfer Mode") verwendet. Bei der ATM-Vermittlung werden die zu übertragenden Nachrichten in Form von Datenpaketen konstanter Länge, sog. ATM-Zellen, übertragen, wobei die Vermittlung der ATM-Zellen anhand von Identifikatoren in den Zellköpfen bzw. Kopffeldern erfolgt. Eine Besonderheit der ATM-Vermittlung ist die Tatsache, dass jede ATM-Zelle stets 53 Bytes umfasst und sich aus einem Kopffeld ("Header") mit 5 Bytes und einem Informationsfeld ("Payload") mit 48 Bytes zusammensetzt. In einem Vermittlungsknoten eines Kommunikationsnetzes, welcher sowohl eine eMAC- oder IP-Schnittstelle als auch eine ATM-Schnittstelle aufweist, besteht somit das Problem, die Daten eines eingehenden IP-Pakets, welche bis zu 60.000 Bytes umfassen können, ausgangsseitig auf die relativ kurzen ATM-Zellen, welche jeweils lediglich 48 Bytes an Nutzinformation umfassen können, abzubilden.

Aus der WO 99/65193 ist ein Switch zur Übertragung von Datenpaketen zwischen einer Vielzahl von lokalen Netzwerken (LAN) bekannt. Zur Zwischenspeicherung der Datenpaketen werden Deskriptoren generiert, welche auf diejenigen Pufferspeicher zeigen, in welchen die Datenpakete gespeichert sind.

Aus der US 6,148,082 ist eine Vorrichtung zum Remultiplexen mehrerer „Transport Streams", welche insbesondere MPEG-2 Transport Streams sein können, offenbart. Auch hier werden zum Zwischenspeichern Deskriptoren verwendet, welche Zeiger auf Speicherorte umfassen.

Aus der EP 0 752 780 ist ein Verfahren und eine Vorrichtung zum Übertragen von Datenpaketen aus einem Computersystem in ein Netzwerk offenbart, welche es ermöglicht, Datenpakete an verschiedenen Speicherorten zu speichern. Die Information, welche Teile eines Datenpakets wo gespeichert sind, werden in Deskriptoren abgelegt.

In Vermittlungsknoten bzw. Vermittlungseinrichtungen, wie z. B. Routern oder Switches, ist es daher erforderlich, die Daten eines eingehenden Datenpakets in einem Pufferspeicher ("Buffer") zwischenzuspeichern. Da für die Vermittlung von Datenpaketen in Kommunikationsnetzen vorwiegend die in den Kopffeldern der einzelnen Datenpakten enthaltene Routinginformation von Bedeutung ist, wird in der Regel das Kopffeld über einen schnellen Datenpfad verarbeitet, während die wesentlich umfangreichere Nutzinformation des Informationsfelds eines eingehenden Datenpakets unter Umständen einer äußerst umfangreichen Datenverarbeitung mit der zuvor erwähnten Zwischenspeicherung unterzogen werden muss, um die Abbildung auf das gewünschte ausgangsseitige Datenübertragungsformat zu ermöglichen.

Dabei besteht grundsätzlich das Bedürfnis nach einem Verfahren bzw. eine entsprechend ausgestaltete Vorrichtung, womit Datenpakete unterschiedlicher Datenübertragungsformate möglichst einfach, d.h. mit möglichst geringem Speicherbedarf und möglichst wenigen Speicherzugriffen, abgespeichert werden können.

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruches 1 bzw. eine Vorrichtung mit den Merkmalen des Anspruchs 18 gelöst. Die Unteransprüche definieren jeweils bevorzugte und vorteilhafte Ausführungsformen der vorliegenden Erfindung.

Die Erfindung stellt ein Verfahren und eine Vorrichtung zum Vermitteln von Datenpaketen bereit, wobei die Daten, insbesondere die Payload-Daten eines in einem ersten Datenübertragungsformat vorliegenden und an einen Empfänger weiterzuleitenden Datenpakets in einem Speicher, der in Speicherblöcke gleicher Größe unterteilt ist, zwischengespeichert werden. Für jedes zu speichernde Datenpaket wird in Abhängigkeit von dem Typ des ersten Datenübertragungsformats ein Deskriptor generiert, welcher ein Datenfeld mit einem Verweis auf die Startadressen derjenigen Speicherblöcke des Speichers, in denen die Daten des Datenpakets zu speichern sind, und ein Datenfeld, welches das erste Datenübertragungsformat des an den Empfänger weiterzuleitenden Datenpakets beschreibt, umfasst. Die Daten des Datenpakets werden unter Verwendung des Deskriptors in dem Speicher zwischengespeichert und anschließend auf mindestens ein Datenpaket mit einem zweiten Datenübertragungsformat umgesetzt und an den Empfänger weitergeleitet.

Der Deskriptor ist vorteilhafterweise bevorzugt aus 32Bit-Datenwörtern/Datenfeldern aufgebaut.

Darüber hinaus kann der Deskriptor ein Datenfeld umfassen, welches Auskunft über die Anzahl der durch das jeweilige Datenpaket belegten Speicherblöcke des Speichers gibt. Diesbezüglich kann ein Iterator verwendet werden, welcher einerseits die Anzahl der insgesamt von dem Datenpaket belegten Speicherblöcke bezeichnet und andererseits eine Laufvariable beinhaltet, die während des Speicherns des jeweiligen Datenpakets mit dem jeweils verwendeten Speicherblock inkrementiert wird.

Während des Speicherns der Daten eines Datenpakets kann jeder Speicherblock beginnend bei seiner Startadresse und/oder endend bei seiner Endadresse beschrieben werden. Darüber hinaus ist es jedoch auch möglich, dass jeder Speicherblock beginnend bei einem bestimmten Adressenoffset bezogen auf seine Startadresse und/oder bis zu einem bestimmten Adressenoffset bezogen auf seine Endadresse beschrieben wird. Zu diesem Zweck kann der beim Speichern der Daten eines Datenpakets verwendete Deskriptor einen Zeiger aufweisen, welcher auf diejenige Adresse eines Speicherblocks verweist, bei der tatsächlich mit dem Speichern begonnen werden soll. Ebenso kann der Deskriptor einen Zeiger aufweisen, welcher auf diejenige Adresse eines Speicherblocks verweist, bis zu welcher tatsächlich die Daten in den jeweiligen Speicherblock geschrieben werden sollen.

Durch Verwendung der erfindungsgemäß vorgeschlagenen Datenstruktur bzw. des erfindungsgemäß vorgeschlagenen Deskriptors kann die Verarbeitung der Daten des zu speichernden Datenpakets von dem physikalischen Speichervorgang entkoppelt werden. Durch die Verwendung eines Speichers mit Speicherblöcken fester bzw. identischer Speicherkapazität wird sichergestellt, dass variabel stets nur diejenige Gesamtspeicherkapazität des Speichers reserviert werden kann, welche tatsächlich zum Speichern des jeweiligen Datenpakets benötigt wird. Somit können problemlos Datenpakete unterschiedlicher Länge bzw. unterschiedlichen Umfangs in ein und demselben Speicher abgelegt werden. Durch die Verwendung eines Pointer Arrays ist eine einfachere Verarbeitung der Daten und eine einfachere Adressierung der benötigten Speicherblöcke möglich. Zudem wird die Freigabe nicht mehr gebrauchter Speicherblöcke einfacher ("Garbage Collection").

Die vorliegende Erfindung eignet sich allgemein zur Verarbeitung bzw. Speicherung von Datenpaketen unterschiedlicher Datenübertragungsformate, wie beispielsweise eMAC-, IP-, MPLS ("Multi Protocol Label Switch")- oder AAL5-Datenpaketen.

Besonders vorteilhaft ist es, wenn die Speicherkapazität der einzelnen Speicherblöcke des zum Speichern der Datenpakete verwendeten Speichers eine Kapazität aufweisen, welche dem Umfang des Informationsfelds ("Payload") einer ATM-Zelle entsprechen und somit 48 Bytes umfassen. In diesem Fall kann die Nutzinformation einer ATM-Zelle bereits in einem einzigen Speicherblock gespeichert werden, wodurch sich der Aufbau des benötigten Deskriptors deutlich vereinfacht.

Die Erfindung eignet sich allgemein zum Einsatz in allen Anwendungsbereichen, wo Datenpakete, insbesondere Datenpakete mit unterschiedlichen Datenübertragungsformaten, zu speichern sind, wobei die vorliegende Erfindung insbesondere in Telekommunikationsvermittlungseinrichtungen, wie z. B. in Form von Netzwerkprozessoren auf sog. Linecards für Switches oder Router zum Einsatz kommen kann. Insbesondere ist die vorliegende Erfindung zum Einsatz in Telekommunikationsvermittlungseinrichtungen geeignet, welche über Schnittstellen für unterschiedliche Datenübertragungsformate, wie beispielsweise über eine Ethernet-, IP-, MPLS- oder ATM-Schnittstelle, verfügen, um die Daten eines mit einem bestimmten Datenübertragungsformat empfangenen Datenpakets auf mindestens ein Datenpaket mit einem anderen Datenübertragungsformat abzubilden, welches an den gewünschten Empfänger weiter vermittelt werden soll.

Die vorliegende Erfindung wird nachfolgend näher unter Bezugnahme auf die Zeichnung anhand bevorzugter Ausführungsbeispiele beschrieben.

1 zeigt ein vereinfachtes Blockschaltbild einer Telekommunikationsvermittlungseinrichtung mit einer erfindungsgemäßen Vorrichtung zum Speichern der Daten von Datenpakten unterschiedlicher Datenübertragungsformate,

2 zeigt einen möglichen Aufbau eines zum Speichern eines eMAC-Datenpakets erfindungsgemäß verwendeten Deskriptors,

3 zeigt eine Darstellung zur Erläuterung des Aufbaus eines zum Speichern einer ATM-Zelle erfindungsgemäß verwendeten Deskriptors,

4 zeigt eine Darstellung zur Erläuterung des Aufbaus eines zum Speichern eines AAL5-Datenpakets erfindungsgemäß verwendeten Deskriptors, und

5 zeigt eine Darstellung zur Erläuterung des Aufbaus eines zum Speichern eines MPLS-Datenpakets erfindungsgemäß verwendeten Deskriptors.

In 1 ist in Form eines stark vereinfachten Blockschaltbilds der Aufbau einer erfindungsgemäßen Vorrichtung dargestellt, wie sie beispielsweise in einem Router oder Switch eines Telekommunikationsnetzes zum Einsatz kommen kann. Ein wesentlicher Bestandteil ist ein Pufferspeicher 1, in dem die Daten eines über eine Anschlusseinheit 3 oder 4 empfangenen Datenpakets zwischengespeichert werden. Bei dem dargestellten Ausführungsbeispiel wird davon ausgegangen, dass die Anschlusseinheit 3 eine Schnittstelle zu einem Ethernet-Kommunikationsnetz, insbesondere zu einem MAC-Frame-Ethernet-Kommunikationsnetz (eMAC-Kommunikationsnetz), definiert, während die Anschlusseinheit 4 eine Schnittstelle zu einem ATM-Kommunikationssystem definiert, d.h. über die Anschlusseinheit 3 werden Datenpakete gemäß dem eMAC-Datenübertragungsformat und über die Anschlusseinheit 4 Datenpakete gemäß dem ATM-Datenübertragungsformat empfangen bzw. gesendet.

Der Speicherzugriff auf den Speicher 1 wird von einer Steuereinheit 2 gesteuert, wobei die Steuereinheit 2 insbesondere dafür verantwortlich ist, die Daten eines eingehenden Datenpakets in dem Speicher 2 zwischenzuspeichern und anschließend in das Datenübertragungsformat eines ausgehenden Datenpakets zu transferieren. Zu diesem Zweck kommuniziert die Steuereinheit 2 mit den Anschlusseinheiten 3 und 4 über bidirektionale Datenpfade 5. Darüber hinaus ist zwischen den Anschlusseinheiten 3, 4 und dem Speicher 1 ein schneller bidirektionaler Datenpfad 6 vorgesehen, welcher zur beschleunigten und bevorzugten Verarbeitung der im Kopffeld ("Header") eines empfangenen Datenpakets enthaltenen Informationen dient. Wie bereits erläutert worden ist, dienen die im Kopffeld eines Datenpakets enthaltenen Informationen vorwiegend der Vermittlung ("Routing") des jeweiligen Datenpakets zu dem gewünschten Empfänger, so dass diese Informationen von übergeordneter Bedeutung sind und demzufolge bevorzugt verarbeitet werden müssen, um die geeigneten Vermittlungspfade bestimmen zu können. Die in dem Informationsfeld des jeweiligen Datenpakets enthalten Nutzinformation ("Payload") wird durch die Steuereinheit 2 mittels Zugriff über die Datenpfade 5 im Wesentlichen unverändert in dem Speicher 1 zwischengespeichert, während die in dem Kopffeld des Datenpakets enthaltene Information über den schnelleren Datenpfad 6 und den Speicher 1 nach einer entsprechenden Datenverarbeitung durch die Steuereinheit 2 weitergeleitet wird.

Beim Zwischenspeichern der Daten eines empfangenen Datenpakets, insbesondere der Payload-Daten eines empfangenen Datenpakets, wird von der Steuereinheit 2 eine spezielle Datenstruktur in Form eines Deskriptors verwendet, wobei der Grundaufbau des Deskriptors im wesentlichen für die unterschiedlichen Datenübertragungsformate einheitlich ist. Dennoch kann der Deskriptor geringfügig Abweichungen in Abhängigkeit von dem Datenübertragungsformat des zu speichernden Datenpakets, d.h. in Abhängigkeit von dem Typ des zu speichernden Datenpakets, aufweisen.

Bei Empfang eines zu speichernden Datenpakets wird in Abhängigkeit von dem Typ dieses Datenpakets eine spezielle Funktion der Steuereinheit 2 aktiviert, durch welche ein zur Beschreibung dieses Datenpakets geeigneter Deskriptor generiert und die in dem Deskriptor enthaltenen Parameter entsprechend gesetzt werden. Durch Verwendung des somit generierten Deskriptors werden anschließend die Daten des entsprechenden Datenpakets von der Steuereinheit 2 in dem Speicher 1 zwischengespeichert. Nach der Verarbeitung eines empfangenen Datenpakets auf zuvor beschriebene Art und Weise kann ein Update des Deskriptors zur Verarbeitung eines weiteren Datenpaketes desselben Typs vorgenommen werden. Liegt kein Datenpaket desselben Typs zur Verarbeitung an, wird der Deskriptor vorzugsweise gelöscht, um Speicherplatz, welcher zum Speichern der Deskriptoren benötigt wird, frei zu geben. Die Deskriptoren können beispielsweise auch in dem Speicher 1 oder direkt in der Steuereinheit 2 gespeichert werden.

Nachfolgend werden unter Bezugnahme auf 25 bevorzugte Ausführungsbeispiele für die Struktur von Deskriptoren zur Beschreibung unterschiedlicher Datenpakettypen erläutert.

Wie in 2 gezeigt ist, ist der Speicher 1, welcher zum Zwischenspeichern der Daten eines Datenpakets vorgesehen ist, in eine Vielzahl von gleichgroßen Speicherblöcken 7 unterteilt. Ebenso ist in 2 eine mögliche Struktur für einen Deskriptor 8 zur Beschreibung eines eMAC-Datenpakets dargestellt. Mit Hilfe des Deskriptors wird die Verbindung bzw. Zuordnung zwischen den Daten des zu speichernden Datenpakets und den zum Speichern dieser Daten benötigten Speicherblöcken 7 des Speichers 1 hergestellt.

Der in 2 gezeigte Deskriptor 8 umfasst ein Datenfeld bzw. Datenwort 9, welches den Typ des jeweiligen Datenpakets, im vorliegenden Fall den Typ "eMAC", bezeichnet. Das Datenwort 9 kann darüber hinaus auch eine Information beinhalten, welches Auskunft über den Umfang der zu speichernden Daten bzw. die Datenpaketgröße gibt, wobei beispielsweise zwischen zwei unterschiedlichen Datenpaketgrößen unterschieden werden kann. Diese Information kann für die blockweise Reservierung bzw. Freigabe des Speichers 1 hilfreich sein.

Ein weiteres Datenwort 10 des Deskriptors 8 kann optional in Abhängigkeit von dem Typ des jeweiligen Datenpakets belegt bzw. verwendet werden (beispielsweise zum Speichern von Kopffeldinformationen). Im Falle eines eMAC-Datenpakets ist das Datenwort 10 im vorliegenden Fall mit keiner Information belegt.

Darüber hinaus umfasst der Deskriptor 8 ein Datenwort 11, welches einen Iterator mit einem Parameter L und einer Laufvariable K umfasst. Der Parameter L bezeichnet die Anzahl der Speicherblöcke 7, welche insgesamt zum Speichern der Daten des jeweiligen Datenpakets benötigt werden. Die Laufvariable K bezeichnet hingegen den jeweils augenblicklich zum Speichern verwendeten Speicherblock 7, d.h. die Laufvariable K wird bei jedem Speicherblockwechsel 7 verändert bzw. inkrementiert. In Abhängigkeit von dem Wert des Parameters L wird die benötigte Anzahl an Speicherblöcken 7 reserviert.

Ein wesentlicher Bestandteil des vorzugsweise 32Bit-weise organisierten Deskriptors 8 ist ein Datenfeld 14, in dem ein Pointer Array mit Pointern bzw. Zeigern auf die Startadressen der L benötigten Speicherblöcke 7 abgelegt ist. In dem Datenfeld 14 befindet sich somit eine Liste von Pointern, die auf die Startadressen derjenigen Speicherblöcke 7 verweisen, die zum Speichern des jeweiligen Datenpakets benötigt werden. Das Datenfeld 14 umfasst entsprechend dem Wert des im Datenfeld 11 enthaltenen Parameters L somit L unterschiedliche Pointer.

Beim Speichern der Daten eines Datenpakets können diese unter Verwendung des dargestellten Deskriptors 8 sukzessiv beginnend bei der Startadresse des ersten Speicherblocks 7 in die einzelnen Speicherblöcke 7 geschrieben werden, wobei die Speicherblöcke 7 jeweils vollständig beschrieben werden. Statt dessen ist es jedoch auch möglich, die Daten beginnend mit einem gewissen Adressenoffset OFF1 bezogen auf die Startadresse des ersten Speicherblocks 7 bis zu einem gewissen Adressenoffset OFF2 bezogen auf die Endadresse des letzten Speicherblocks 7 einzuschreiben. Zu diese Zweck umfasst der in 2 dargestellte Deskriptor 8 ein Datenfeld 12 mit einem Verweis auf diejenige Adresse des ersten Speicherblocks 7, bei welcher tatsächlich mit dem Einschreiben der Daten begonnen werden soll, so dass die in dem Datenfeld 12 enthaltene Information auch als Start-Pointer oder S-Pointer bezeichnet werden kann. Entsprechend umfasst der Deskriptor 8 bei dem in 2 dargestellten Ausführungsbeispiel ein Datenfeld 13 mit einem Verweis auf diejenige Adresse des letzten Speicherblocks 7, bis zu welcher die Daten tatsächlich in den Speicher 1 geschrieben werden sollen, so dass die in dem Datenfeld 13 enthaltene Information auch als Trail-Pointer oder T-Pointer bezeichnet werden kann. Der durch das Datenfeld 12 beschriebene S-Pointer definiert somit den Adressenoffset OFF1, während der durch das Datenfeld 13 beschriebene T-Pointer den Adressenoffset OFF2 definiert. Selbstverständlich ist auch denkbar, dass der S-Pointer und der T-Pointer nicht auf den ersten und letzten Speicherblock 7 des Speichers 1 bezogen sind, sondern sich gemeinsam auf ein und denselben Speicherblock 7 beziehen, so dass beim Speichern der Daten eines Datenpakets die Daten in die einzelnen Speicherblöcke 7 stets mit einem Offset OFF1 bzw. einem Offset OFF2 geschrieben werden.

Die in 2 gezeigte Struktur des Deskriptors 8 eignet sich beispielsweise auch zum Speichern eines Ethernet-CPCS ("Common Part Convergence Sublayer")-Datenpakets. Dabei handelt es sich um ein Zwischenformat, welches beispielsweise zur ATM-Segmentierung verwendet wird.

Die Größe der einzelnen Speicherblöcke 7 des zur Zwischenspeicherung der Daten verwendeten Speichers 1 ist prinzipiell nicht festgelegt. Insbesondere ist auch denkbar, dass jeder Speicherblock 7 wiederum mehreren Speicherelementen geringerer Größe zugeordnet ist. Besonders vorteilhaft ist es jedoch, wenn die Speicherblöcke 7 eine Speicherkapazität aufweisen, welche zum Speichern des kleinstmöglichen Datenpakettyps ausreicht. So kann die Speicherkapazität der Speicherblöcke 7 beispielsweise derart gewählt sein, dass jeder Speicherblock 7 vollständig die Daten einer ATM-Zelle (53 Bytes) oder zumindest die Payload-Daten einer ATM-Zelle (48 Bytes) speichern kann, da ATM-Zellen die kürzesten Datenpakete sind, welche darüber hinaus stets denselben Aufbau aufweisen.

Wird die Speicherkapazität der einzelnen Speicherblöcke 7 zu 48 Bytes gewählt, kann zur Beschreibung einer ATM-Zelle bzw. eines ATM-Datenpakets ein Deskriptor 8 mit einer besonders einfachen Struktur verwendet werden, wie es in 3 dargestellt ist. Der in 3 gezeigte Deskriptor 8 umfasst wiederum ein Datenwort 9 (welches beispielsweise analog zu den anderen beschriebenen Ausführungsbeispielen 32 Bits umfassen kann), um den Typ des jeweiligen Datenpakets zu beschreiben. Darüber hinaus ist das Datenfeld 14, welches gemäß 2 mit einem Pointer Array belegt ist, auf lediglich einen einzigen Pointer reduziert, welcher auf die Startadresse des zum Speichern der entsprechenden ATM-Zelle benötigten Speicherblock 7 verweist, da aufgrund der gewählten Größe der Speicherblöcke 7 bereits ein Speicherblock zum Speichern der Payload-Daten einer ganzen ATM-Zelle ausreicht. Darüber hinaus ist gemäß 3 das Datenfeld 10 des Deskriptors 8 mit der im Kopffeld ("Header") der jeweiligen ATM-Zelle enthaltenen Information belegt. Die separate Speicherung der Kopffeldinformation der ATM-Zelle in den Deskriptor 8 ist sinnvoll, da diese Information – wie bereits zuvor beschrieben worden ist – für die Vermittlung der ATM-Zelle von primärer Bedeutung ist. Selbstverständlich kann das in 3 dargestellte Ausführungsbeispiel jedoch auch derart abgewandelt werden, dass der Speicherblock 7 53 Bytes umfasst, so dass in dem Speicherblock 7 sowohl die Header-Daten als auch die Payload-Daten einer einzigen ATM-Zelle gespeichert werden können, wobei in diesem Fall das Datenfeld 10 unbenutzt bleiben kann. Die Erkennung des richtigen Formats des Deskriptors erfolgt über das Datenfeld 9, welches den Typ bezeichnet.

In einem ATM-basierten Kommunikationsnetz erfolgen Übertragung und Vermittlung der ATM-Zellen grundsätzlich unabhängig von der jeweiligen Anwendung. Die erforderliche Flexibilität von ATM-Kommunikationsnetzen bezüglich unterschiedlicher Kommunikationsprozesse, wie beispielsweise Audio-, Video- oder Datenkommunikation, ergibt sich aus der Funktionalität einer speziellen ATM-Anpassungsschicht, welche als AAL-Schicht bezeichnet wird. Die Funktionen der AAL-Schicht sind bezüglich der Bitrate (konstant oder variabel), der Kommunikationsart (verbindungsorientiert oder verbindungslos) etc. anwendungsabhängig. Unabhängig von der Funktion der AAL-Schicht wird zwischen unterschiedlichen Dienstklassen bzw. AAL-Typen unterschieden. Die Dienstklasse AAL5 unterstützt beispielsweise den für Datenkommunikation typischen VBR-Datenverkehr ("Variable Bitrate"), wobei sowohl verbindungslose als auch verbindungsorientierte Kommunikation möglich ist.

In der Praxis kommt eine AAL5-Datenübertragung beispielsweise für den verbindungslosen Fall bei einer ATM-Kommunikation zwischen lokalen Netzen ("Local Area Network", LAN) zur Anwendung, wobei die AAL5-Dienstklasse bzw. der AAL5-Diensttyp insbesondere für die Aufteilung der Daten eines IP-Pakets auf mehrere ATM-Zellen geeignet ist. Bei diesem Anwendungsfall ist typisch, dass die einem IP-Paket zugeordneten ATM-Zellen allesamt dasselbe Kopffeld ("Header") aufweisen, wobei lediglich die letzte ATM-Zelle ein davon abweichendes Kopffeld besitzt. Demzufolge eignet sich für dieses Szenario beispielsweise ein Deskriptor 8 mit dem in 4 dargestellten Aufbau, wobei das Datenwort 9 den Typ "AAL5" beschreibt. Das gemäß 2 optional verwendete Datenfeld 10 ist bei dem in 4 gezeigten Ausführungsbeispiel aufgeteilt und beschreibt einerseits das Kopffeld der letzten ATM-Zelle (Header 2) sowie andererseits das Kopffeld aller übrigen ATM-Zellen (Header 1). Die Datenfelder bzw. Datenwörter 11-14 sind analog zu 2 belegt. Vorteilhaft ist, dass lediglich ein Deskriptor 8 für alle ATM-Zellen, die einem AAL5-Frame bzw. einem AAL5-CPCS-Frame zugeordnet sind, verwendet werden kann.

In 5 ist ein möglicher Aufbau des Deskriptors 8 zur Beschreibung eines MPLS-Datenpakets ("Multi Protocol Lable Switching") dargestellt. MPLS integriert IP und ATM durch Zusammenfügen von Schicht2-Funktionalität (ATM-Switching) mit Schicht3-Funktionalität (IP-Routing). Zu diesem Zweck umfasst ein MPLS-Datenpaket ein IP-Datenpaket, welches mit einem speziellen 32Bit-Kopffeld, das als "Shim Header" bezeichnet wird, versehen ist. Dieser "Shim Header" umfasst ein 20Bit-Label, welches zur Vermittlung ("Routing"/"Switching") des entsprechenden Datenpakets dient (im Gegensatz hierzu wird bei einer reinen IP-Vermittlung ausschließlich die Zieladresse ("Destination Address") ausgewertet. Weitere Bits des "Shim Header" bezeichnen beispielsweise die Dienstgüte ("Quality of Service"), d.h. es ist beispielsweise angegeben, ob wichtige Videodaten oder weniger wichtige Audiodaten übertragen werden etc.

Das in einem MPLS-Datenpaket enthaltene IP-Paket ist gemäß dem normalen IP-Protokoll aufgebaut.

Zur Beschreibung eines derartigen MPLS-Datenpakets umfasst der in 5 gezeigte Deskriptor 8 wiederum ein Datenfeld bzw. Datenwort 9, welches den Typ des Datenpakets bezeichnet. Das Datenfeld 10 ist bei dem dargestellten Ausführungsbeispiel mit den Informationen des zuvor beschriebenen Kopffelds ("Shim Header") belegt. Die Datenfelder 11-14 sind analog zu den in 2 und 4 dargestellten Ausführungsbeispielen belegt, so dass diesbezüglich auf die vorhergehenden Erläuterungen verwiesen werden kann.


Anspruch[de]
Verfahren zum Vermitteln von Datenpaketen,

wobei die Daten eines in einem ersten Datenübertragungsformat vorliegenden und an einen Empfänger weiterzuleitenden Datenpakets in einem Speicher (1), der in Speicherblöcke (7) gleicher Größe unterteilt ist, zwischengespeichert werden,

wobei dem weiterzuleitenden Datenpaket ein Deskriptor (8) zugeordnet wird, welcher in Abhängigkeit von dem Typ des ersten Datenübertragungsformats generiert wird und ein Datenfeld (14) mit einem Verweis auf die Startadressen derjenigen Speicherblöcke (7) des Speichers (1), in denen die Daten des Datenpakets zu speichern sind, und ein Datenfeld (9), welches das erste Datenübertragungsformat des an den Empfänger weiterzuleitenden Datenpakets beschreibt, umfasst,

wobei die Daten des Datenpakets unter Verwendung des Deskriptors (8) in dem Speicher (1) zwischengespeichert und anschließend auf mindestens ein Datenpaket mit einem zweiten Datenübertragungsformat umgesetzt und an den Empfänger weitergeleitet werden.
Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Deskriptor (8) ein Datenfeld (12) umfasst, welches einen Adressenoffset (OFF1) bezüglich der Startadresse eines Speicherblocks (7), in dem die Daten des Datenpakets gespeichert werden sollen, beschreibt, wobei die Daten des Datenpakets beginnend bei diesem Adressenoffset (OFF1) in den entsprechenden Speicherblock (7) geschrieben werden. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Deskriptor (8) ein Datenfeld (13) umfasst, welches einen Adressenoffset (OFF2) bezüglich der Endadresse eines Speicherblocks (7), in den die Daten des Datenpakets geschrieben werden sollen, beschreibt, wobei die Daten des Datenpakets in den entsprechenden Speicherblock (7) bis zu diesem Adressenoffset (OFF2) geschrieben werden. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Deskriptor (8) ein Datenfeld (11) umfasst, welches einerseits die Anzahl (L) der zum Speichern der Daten des Datenpakets benötigten Speicherblöcke (7) des Speichers (1) beschreibt und andererseits eine Laufvariable (K) aufweist, die während des Speicherns der Daten mit jedem Speicherblock (7) des Speichers (1) verändert wird und somit jeweils den augenblicklich beschriebenen Speicherblock (7) des Speichers (1) bezeichnet. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das weiterzuleitende Datenpaket ein Kopffeld und ein Informationsfeld, welches Nutzdaten aufweist, umfasst, wobei mit Hilfe des Deskriptors die in dem Informationsfeld enthaltenen Nutzdaten in dem Speicher (1) gespeichert werden. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Datenübertragungsformat ein Ethernet-Datenübertragungsformat ist. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Datenübertragungsformat ein Ethernet-CPCS-Datenübertragungsformat ist. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Datenübertragungsformat ein ATM-Datenübertragungsformat ist. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speicherblöcke (7) des Speichers (1) jeweils eine Speicherkapazität aufweisen, welche zum Speichern der Daten eines in einem ATM-Datenübertragungsformat vorliegenden Datenpakets ausreicht. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Speicherblöcke (7) des Speichers (1) jeweils eine Speicherkapazität von 48 Bytes aufweisen, um jeweils die in einem Informationsfeld des in dem ATM-Datenübertragungsformat vorliegenden Datenpakets enthaltenen Nutzdaten vollständig speichern zu können. Verfahren nach Anspruch 8 und Anspruch 9 oder 10, dadurch gekennzeichnet, dass das auf die Startadressen der benötigen Speicherblöcke (7) des Speichers (1) verweisende Datenfeld (14) des Deskriptors (8) für das in dem ATM-Datenübertragungsformat vorliegende Datenpaket lediglich einen Verweis auf die Startadresse eines einzigen bestimmten Speicherblocks (7) des Speichers (1) aufweist. Verfahren nach den Ansprüchen 10 und 11,

dadurch gekennzeichnet,

dass unter Verwendung des auf die Startadresse des bestimmten Speicherblocks (7) verweisenden Datenfelds (14) des Deskriptors (8) die in dem Informationsfeld des in dem ATM-Datenübertragungsformat vorliegenden Datenpakets enthaltenen Nutzdaten in dem bestimmten Speicherblock (7) gespeichert werden, und

dass der Deskriptor (8) für das in dem ATM-Datenübertragungsformat vorliegende Datenpaket ein Datenfeld (10) zur Bezeichnung der in dem Kopffeld des Datenpakets enthaltenen Daten umfasst.
Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Datenübertragungsformat ein AAL5-Datenübertragungsformat ist. Verfahren nach Anspruch 13,

dadurch gekennzeichnet,

dass die Daten eines in einem IP-Datenübertragungsformat vorliegenden Datenpakets auf mehrere in einem ATM-Datenübertragungsformat vorliegende Datenpakete unter Verwendung des AAL5-Datenübertragungsformats abgebildet werden, wobei jedes in dem ATM-Datenübertragungsformat vorliegende Datenpaket ein Kopffeld und ein Nutzdaten aufweisendes Informationsfeld umfasst, und

dass der Deskriptor (8) für das AAL5-Datenübertragungsformat ein Datenfeld (10) zur Bezeichnung des Kopffelds des zeitlich letzten Datenpakets, welches in dem ATM-Datenübertragungsformat vorliegt, sowie des Kopffelds aller anderen Datenpakete, welche in dem ATM-Datenübertragungsformat vorliegen, umfasst.
Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste Datenübertragungsformat ein MPLS-Datenübertragungsformat ist. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das an den Empfänger weiterzuleitende Datenpaket ein Kopffeld und ein Informationsfeld mit Nutzdaten aufweist, und dass die in dem Informationsfeld enthaltenen Nutzdaten in dem Speicher (1) unter Verwendung des Deskriptors (8) gespeichert werden, wobei der Deskriptor (8) ein Datenfeld (10) zur Beschreibung des Kopffelds des jeweiligen Datenpakets umfasst. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das zweite Datenübertragungsformat unterschiedlich zu dem ersten Datenübertragungsformat ist. Vorrichtung zum Vermitteln von Datenpaketen,

wobei ein an einen Empfänger weiterzuleitendes Datenpaket in einem ersten Datenübertragungsformat vorliegt,

mit einem Speicher (1), welcher in eine Vielzahl von Speicherblöcken (7) gleicher Größe unterteilt ist, und

mit einer Steuereinrichtung (2) zur Erzeugung eines Deskriptors (8), welcher dem weiterzuleitenden Datenpaket zugeordnet ist, in Abhängigkeit von dem Typ des ersten Datenübertragungsformats, wobei der Deskriptor (8) ein Datenfeld (14) aufweist, welches auf die Startadressen der zum Speichern der Daten des Datenpakets benötigten Speicherblöcke (7) des Speichers (1) verweist, und wobei der Deskriptor (8) ein Datenfeld (9) umfasst, welches das erste Datenübertragungsformat des an den Empfänger weiterzuleitenden Datenpakets beschreibt,

wobei die Steuereinrichtung (2) zum Zwischenspeichern der Daten des Datenpakets unter Verwendung des Deskriptors (8) in dem Speicher (1) und zur anschließenden Umsetzung der zwischengespeicherten Daten auf mindestens ein Datenpaket mit einem zweiten Datenübertragungsformat ausgestaltet ist, um das mindestens eine Datenpaket mit dem zweiten Datenübertragungsformat an den Empfänger weiterzuleiten.
Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass die Vorrichtung Bestandteil einer Telekommunikationsvermittlungseinrichtung ist. Vorrichtung nach Anspruch 18 oder 19, dadurch gekennzeichnet, dass die Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1-17 ausgestaltet ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com