DE602004008911T2 - Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten - Google Patents

Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten Download PDF

Info

Publication number
DE602004008911T2
DE602004008911T2 DE602004008911T DE602004008911T DE602004008911T2 DE 602004008911 T2 DE602004008911 T2 DE 602004008911T2 DE 602004008911 T DE602004008911 T DE 602004008911T DE 602004008911 T DE602004008911 T DE 602004008911T DE 602004008911 T2 DE602004008911 T2 DE 602004008911T2
Authority
DE
Germany
Prior art keywords
packet
local
memory
data field
package
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.)
Active
Application number
DE602004008911T
Other languages
English (en)
Other versions
DE602004008911D1 (de
Inventor
Alok Santa Clara KUMAR
Raj Hillsboro YAVATKAR
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE602004008911D1 publication Critical patent/DE602004008911D1/de
Application granted granted Critical
Publication of DE602004008911T2 publication Critical patent/DE602004008911T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/565Sequence integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections

Description

  • 1. Technisches Gebiet
  • Ausführungsformen der Erfindung betreffen das Gebiet der Paketanordnung und genauer die Gewährleistung der Reihenfolge von Paketen unter Verwendung einer Pufferung.
  • 2. Hintergrundinformationen und Beschreibung des Stands der Technik
  • In einigen Systemen erfordern die Paketanordnungskriterien, dass die Pakete eines Flusses das System in der gleichen Reihenfolge verlassen, in der sie im System ankommen. Eine mögliche Lösung ist, ein Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme (Asynchronous Insert, Synchronous Remove, AISR) zu verwenden. Jedem Paket wird eine Abfolgenummer zugeteilt, wenn es empfangen wird. Die Abfolgenummer kann für alle Pakete, die im System ankommen, global geführt werden, oder kann für jeden Anschluss oder Fluss gesondert geführt werden.
  • Das unterhaltene AISR-Datenfeld ist ein geteilter Speicher (z.B. ein SRAM) und wird durch die Paketabfolgenummer indiziert. Für jeden Fluss gibt es ein gesondertes AISR-Datenfeld. Wenn die Paketverarbeitungspipeline die Verarbeitung an einem bestimmten Paket abgeschlossen hat, gibt sie das Paket zur nächsten Stufe oder zum Neuanordnungsblock weiter. Der Neuanordnungsblock verwendet das AISR-Datenfeld, um Pakete außerhalb der Reihenfolge zu speichern und Pakete in der Reihenfolge der zugeteilten Abfolgenummer zu wählen.
  • Ein Problem bei diesem Ansatz ist, dass das System mit dem Abfragen der AISR-Liste fortfahren muss, wenn das nächste Paket im Fluss noch nicht zur Verarbeitung bereit ist. Es besteht auch eine Wartezeit bei den Speicherzugriffen, die benötigt werden, um die Pakete im Fluss, die bereit sind und darauf warten, in der erforderlichen Reihenfolge verarbeitet zu werden, abzurufen. EP 1,296,485 (Broadcom Corporation) offenbart ein System und ein Verfahren zur hardwarebasierten Wiederzusammensetzung eines fragmentierten Pakets. Das Verfahren beinhaltet das Speichern der empfangenen Fragmente in einem externen Speicher, bis alle Fragmente einer bestimmten Sitzung empfangen wurden. Sobald eine letzte Markierung angibt, dass alle Fragmente empfangen wurden, setzt ein Wiederzusammensetzungsprozessor die Fragmente wieder zusammen, indem die richtig in die Abfolge gebrachten Fragmente verkettet werden.
  • WO 03/0432722 (Transwitch Corporation) offenbart ein Verfahren zur Pufferung von Paketen in einem Paketvermittlungsnetzwerk, in dem Pakete, die vom Netzwerk empfangen werden, in mehrere Paketdateneinheiten (Packet Data Units, PDUs) geteilt werden, einige davon über mehrere Speicherbänke gestreift werden, diese PDUs von den Speicherbänken abgerufen werden, und die abgerufenen PDUs zumindest zeitweilig in der Abfolge, in der sie gesendet werden sollen, gespeichert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann durch Bezugnahme auf die folgende Beschreibung und die beiliegenden Zeichnungen, die verwendet werden, um Ausführungsformen der Erfindung zu veranschaulichen, am besten verstanden werden. In den Zeichnungen
  • ist 1 ein Blockdiagramm, das eine verallgemeinerte Ausführungsform eines Systems veranschaulicht, das die Erfindung enthält.
  • 2 ist ein Ablaufdiagramm, das ein Verfahren nach einer Ausführungsform der Erfindung veranschaulicht.
  • 3 ist ein Blockdiagramm, das eine geeignete Rechenumgebung veranschaulicht, in der bestimmte Gesichtspunkte der veranschaulichten Erfindung ausgeführt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden Ausführungsformen eines Systems und eines Verfahrens zur Gewährleistung der Reihenfolge von Paketen unter Verwendung einer Pufferung beschrieben. In der folgenden Beschreibung sind zahlreiche bestimmte Einzelheiten dargelegt. Es versteht sich jedoch, dass Ausführungsformen der Erfindung ohne diese bestimmten Einzelheiten ausgeführt werden können. In anderen Fällen wurden wohlbekannte Schaltungen, Aufbauten und Techniken nicht ausführlich gezeigt, um das Verständnis dieser Beschreibung nicht unklar zu machen.
  • Eine Bezugnahme über diese Beschreibung hinweg auf „eine Ausführungsform" bedeutet, dass ein bestimmtes Merkmal, ein bestimmter Aufbau, oder eine bestimmte Eigenschaft, das, der bzw. die in Verbindung mit der Ausführungsform beschrieben ist, in zumindest einer Ausführungsform der Erfindung beinhaltet ist. Daher bezieht sich das Auftreten des Ausdrucks „in einer Ausführungsform" an verschiedenen Stellen über diese Beschreibung hinweg nicht notwendigerweise immer auf die gleiche Ausführungsform. Darüber hinaus können die bestimmten Merkmale, Aufbauten oder Eigenschaften in einer oder mehreren Ausführungsformen auf jede beliebige geeignete Weise kombiniert werden.
  • Unter Bezugnahme auf 1 veranschaulicht ein Blockdiagramm einen Netzwerkprozessor nach einer Ausführungsform der Erfindung. Durchschnittsfachleute werden verstehen, dass der Netzwerkprozessor 100 mehr Bestandteile als die in 1 gezeigten beinhalten kann. Es ist jedoch nicht nötig, dass alle diese im Allgemeinen herkömmlichen Bestandteile gezeigt werden, um eine erläuternde Ausführungs form zur Ausführung der Erfindung zu offenbaren. In einer Ausführungsform ist der Netzwerkprozessor über eine Switch Fabric-Schnittstelle mit einer Switch Fabric gekoppelt.
  • Der Netzwerkprozessor 100 beinhaltet ein Empfangselement 102, um Pakete von einem Netzwerk zu empfangen. Die empfangenen Pakete können Teil einer Abfolge von Paketen sein. Der Netzwerkprozessor 100 beinhaltet ein oder mehrere Verarbeitungsmodule 104. Die Verarbeitungsmodule verarbeiten die empfangenen Pakete. Einige Verarbeitungsmodule können die Pakete einer Abfolge in der richtigen Reihenfolge verarbeiten, während andere Verarbeitungsmodule die Pakete außerhalb der Reihenfolge verarbeiten können.
  • Nachdem die Pakete verarbeitet wurden, sortiert ein Element zur Neuanordnung 106 die Pakete, die zu einer Abfolge gehören, in der richtigen Reihenfolge. Wenn das Element zur Neuanordnung 106 ein Paket von einem Verarbeitungsmodul erhält, bestimmt es, ob das erhaltene Paket das nächste Paket in der Abfolge ist, das gesendet werden soll. Wenn dies der Fall ist, wird das Paket durch ein Sendeelement 108 gesendet oder zur Sendung gereiht. Wenn dies nicht der Fall ist, bestimmt das Element zur Neuanordnung 106, ob das Paket in einen lokalen Pufferspeicher 110 passt. Wenn dies der Fall ist, wird das Paket im lokalen Pufferspeicher 110 gespeichert. Andernfalls wird das Paket in einem nicht lokalen Speicher 112 gespeichert. In einer Ausführungsform ist der nicht lokale Speicher 112 ein statischer Direktzugriffsspeicher (SRAM). In einer Ausführungsform beinhaltet der Netzwerkprozessor einen dynamischen Direktzugriffsspeicher (DRAM), der mit den Verarbeitungsmodulen gekoppelt ist, um Daten zu speichern.
  • Wenn das gespeicherte Paket das nächste Paket in der Abfolge ist, das gesendet werden soll, wird das Paket durch das Element zur Neuanordnung 106 aus dem Speicher abgerufen und durch das Sendeelement 108 gesendet. Während das Ele ment zur Neuanordnung 106 Pakete aus dem lokalen Pufferspeicher 110 abruft, damit sie gesendet werden, kopiert das Element zur Neuanordnung 106 Pakete, die im nicht lokalen Speicher 112 gespeichert sind, in den lokalen Pufferspeicher 110.
  • In einer Ausführungsform wird jedem Paket, das zu einer Abfolge gehört, eine Abfolgenummer gegeben, wenn es das Empfangselement 102 betritt, damit das Paket für die Neuanordnung „etikettiert" wird. Nachdem die Pakete durch das Verarbeitungsmodul 104 verarbeitet wurden, werden die Pakete durch das Element zur Neuanordnung 106 in ein Datenfeld eingefügt. In einer Ausführungsform ist das Datenfeld ein Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme (AISR). Die Position, an der das Paket in das Datenfeld eingefügt wird, beruht auf der Paketabfolgenummer. Zum Beispiel wird das erste Paket in der Abfolge an der ersten Position im Datenfeld eingefügt, wird das zweite Paket in der Abfolge an der zweiten Position im Datenfeld eingefügt, und so weiter. Das Element zur Neuanordnung 106 ruft Pakete aus dem Datenfeld der Reihe nach ab, und das Sendeelement 108 sendet die Pakete zum nächsten Netzwerkbestimmungsort.
  • In einer Ausführungsform nimmt die Ausführung der Paketanordnung an, dass das AISR-Datenfeld im Speicher groß genug ist, dass die Abfolgenummern einander gewöhnlich nicht umschlingen sollten und das neue Paket dadurch kein altes, aber gültiges Paket überschreiben sollte. Doch wenn eine derartige Situation auftritt, sollte das Element zur Neuanordnung nicht unendlich lang warten. Daher tragen Pakete in einer Ausführungsform Abfolgenummern, die mehr Bits aufweisen, als verwendet werden, um die höchste Abfolgenummer im Speicher (max_seq_num) darzustellen. Dies wird die Identifikation eines jeglichen Umschlingens im AISR-Datenfeld gestatten. Wenn ein Paket so ankommt, dass seine Abfolgenummer größer als oder gleich (expected_seq_num + max_seq_num) ist, hört das Element zur Neuanordnung damit auf, jegliche neuen Pakete anzunehmen. Inzwischen wird das Paket mit expected_seq_num (der erwarteten Abfolgenummer), wenn es verfügbar ist, verarbeitet werden oder als verworfen angenommen werden und expected_seq_num erhöht werden. Dies wird andauern, bis das Paket, das angekommen ist, in das AISR-Datenfeld passt. Danach wird das Element zur Neuanordnung damit beginnen, neue Pakete anzunehmen. Es sollte bemerkt werden, dass dieser Zustand nicht praktisch ausgeführt werden sollte und die höchste Abfolgenummer im Speicher groß genug sein sollte, um nicht zu gestatten, dass dieser Zustand ausgeführt wird.
  • In einer Ausführungsform wird eine Benachrichtigung zum Element zur Neuanordnung gesendet, wenn während der Paketverarbeitung ein Paket verworfen wird. Diese Benachrichtigung kann ein Stumpf des Pakets sein. In einer Ausführungsform kann, wenn während der Paketverarbeitung ein neues Paket erzeugt wird, das neue Paket markiert werden, um dem Element zur Neuanordnung anzuzeigen, dass das neue Paket nicht geordnet werden muss. In einer Ausführungsform benutzt das neue Paket, wenn während der Paketverarbeitung ein neues Paket erzeugt wird, die gleiche Abfolgenummer wie das Paket, aus dem es erzeugt wurde. Die Pakete werden einen gemeinsam benutzten Datenaufbau aufweisen, um die Anzahl der Kopien der Abfolgenummer anzuzeigen. Das Element zur Neuanordnung wird annehmen, dass ein Paket mit einer Abfolgenummer, die mehr als eine Kopie aufweist, nur angekommen ist, wenn alle ihre Kopien angekommen sind.
  • Zu Erläuterungszwecken ist das Folgende ein beispielhafter Pseudo-Code für das Element zur Neuanordnung: Funktion: Erhalte_Paket ()
    Figure 00060001
    Figure 00070001
  • Die Funktion „ Erhalte Paket" erhält ein Paket von einem Paketverarbeitungsmodul und verarbeitet das Paket, wenn das Paket das nächste Paket in der Abfolge ist, das gesendet werden soll. Andernfalls wird das Paket an der richtigen Position in das AISR-Datenfeld im lokalen Speicher einge fügt, wenn das Paket in das AISR-Datenfeld im lokalen Speicher passt. Wenn das Paket nicht in das AISR-Datenfeld im lokalen Speicher passt, wird das Paket im AISR-Datenfeld im SRAM gespeichert.
  • Die Funktion „Suche nach Kopf" sucht nach dem Paket am Kopf des AISR-Datenfelds im lokalen Speicher. Wenn das Paket dort ist, wird das Paket verarbeitet und gesendet.
  • Die Funktion „Lies aus SRAM" liest ein Paket aus dem AISR-Datenfeld im SRAM. Das Paket kann dann in den lokalen Speicher kopiert werden, wenn ein Paket vom AISR-Datenfeld im lokalen Speicher verarbeitet wird.
  • 2 veranschaulicht ein Verfahren nach einer Ausführungsform der Erfindung. Bei 200 wird ein Paket, das Teil einer Abfolge von Paketen ist, an einem Element zur Neuanordnung empfangen. Bei 202 wird eine Bestimmung vorgenommen, ob das empfangene Paket das nächste Paket in der Abfolge ist, das gesendet werden soll. Wenn dies der Fall ist, wird das Paket bei 204 gesendet. Wenn dies nicht der Fall ist, wird bei 206 eine Bestimmung vorgenommen, ob das Paket in den lokalen Pufferspeicher passt. In einer Ausführungsform wird eine Bestimmung vorgenommen, ob das Paket in ein AISR-Datenfeld in einem lokalen Pufferspeicher passt. Wenn das Paket in den lokalen Pufferspeicher passt, wird das Paket bei 208 im lokalen Pufferspeicher gespeichert. Wenn das Paket nicht in den lokalen Pufferspeicher passt, wird das Paket bei 210 in einem nicht lokalen Pufferspeicher gespeichert. In einer Ausführungsform wird das empfangene Paket in einem SRAM gespeichert, wenn das empfangene Paket nicht in den lokalen Pufferspeicher passt. In einer Ausführungsform wird das gespeicherte Paket abgerufen und gesendet, wenn bestimmt wird, dass das gespeicherte Paket das nächste Paket in der Abfolge ist, das gesendet werden soll.
  • In einer Ausführungsform wird das Paket in einem AISR-Datenfeld im lokalen Pufferspeicher gespeichert. Wenn das Paket den Kopf des AISR-Datenfelds erreicht, wird das Paket abgerufen und gesendet. Dann kann das Paket am Kopf des AISR-Datenfelds im nicht lokalen Speicher in das AISR-Datenfeld im lokalen Pufferspeicher kopiert werden.
  • 3 ist ein Blockdiagramm, das eine geeignete Rechenumgebung veranschaulicht, in der bestimmte Gesichtspunkte der veranschaulichten Erfindung ausgeführt werden können. In einer Ausführungsform kann das oben beschriebene Verfahren an einem Computersystem 300 ausgeführt werden, das Bestandteile 302 bis 312 aufweist, die einen Prozessor 302, einen Speicher 304, eine Ein-/Ausgangsvorrichtung 306, einen Datenspeicher 312 und eine Netzwerkschnittstelle 310 beinhalten, die über einen Bus 308 miteinander gekoppelt sind. Die Bestandteile führen ihre in der Technik bekannten herkömmlichen Funktionen durch und stellen die Mittel zur Ausführung der vorliegenden Erfindung bereit. Zusammen stellen diese Bestandteile eine breite Kategorie von Hardwaresystemen dar, die, jedoch ohne Beschränkung darauf, Allzweckcomputersysteme und spezialisierte Paketübermittlungsvorrichtungen beinhalten. Es versteht sich, dass verschiedenste Bestandteile des Computersystems 300 umgeordnet werden können, und dass bestimmte Ausführungen der vorliegenden Erfindung möglicherweise nicht alle der obigen Bestandteile benötigen oder beinhalten können. Darüber hinaus können im System 300 zusätzliche Bestandteile wie etwa zusätzliche Prozessoren (z.B. ein digitaler Signalprozessor), Speichervorrichtungen, Speicher, und Netzwerk- oder Kommunikationsschnittstellen beinhaltet sein.
  • Wie Fachleute verstehen werden, kann der Inhalt zur Ausführung einer Ausführungsform des Verfahrens der Erfindung, zum Beispiel Computerprogrammbefehle, durch jedes beliebige maschinenlesbare Medium bereitgestellt werden, das als Teil des Speichers oder zusätzlich zum Speicher Daten speichern kann, die für ein System, das die Erfindung enthält, zugänglich sind, einschließlich, jedoch ohne Beschränkung darauf, Kassetten, magnetischen Kassetten, Flash-Speicherkarten, digitalen Videoplatten, Direktzugriffsspeichern (RAMs), Nurlesespeichern (ROMs), und dergleichen. In dieser Hinsicht ist das System dazu ausgerüstet, mit derartigen maschinenlesbaren Medien auf eine Weise, die in der Technik wohlbekannt ist, zu kommunizieren.
  • Fachleute werden ferner verstehen, dass der Inhalt zur Ausführung einer Ausführungsform des Verfahrens der Erfindung dem Netzwerkprozessor 100 von jeder beliebigen externen Vorrichtung bereitgestellt werden kann, die fähig ist, den Inhalt zu speichern und den Inhalt zum Netzwerkprozessor 100 zu kommunizieren. Zum Beispiel kann der Netzwerkprozessor 100 in einer Ausführungsform der Erfindung mit einem Netzwerk verbunden sein, und kann der Inhalt an jeder beliebigen Vorrichtung im Netzwerk gespeichert sein.

Claims (15)

  1. Verfahren, umfassend: Empfangen (200), an einem Element zur Neuanordnung, eines Pakets, das Teil einer Abfolge von Paketen ist, die der Reihe nach zu einem nächsten Netzwerkbestimmungsort gesendet werden sollen; gekennzeichnet durch Bestimmen (202), ob das empfangene Paket ein nächstes Paket in der Abfolge ist, das gesendet werden soll, und wenn dies der Fall ist, Senden (204) des empfangenen Pakets, und wenn dies nicht der Fall ist, Bestimmen (206), ob das empfangene Paket in einen lokalen Pufferspeicher passt; Speichern (208) des empfangenen Pakets im lokalen Pufferspeicher, wenn das empfangene Paket in den lokalen Pufferspeicher passt; und Speichern (210) des empfangenen Pakets in einem nicht lokalen Speicher, wenn das empfangene Paket nicht in den lokalen Pufferspeicher passt.
  2. Verfahren nach Anspruch 1, ferner umfassend das Abrufen und Senden des gespeicherten Pakets, wenn das gespeicherte Paket das nächste Paket in der Abfolge ist, das gesendet werden soll.
  3. Verfahren nach Anspruch 1, wobei das Speichern des Pakets im lokalen Pufferspeicher, wenn das Paket in den lokalen Pufferspeicher passt, das Speichern des Pakets in einem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher umfasst, wenn das Paket in das Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher passt.
  4. Verfahren nach Anspruch 3, wobei das Speichern des Pakets in einem nicht lokalen Speicher, wenn das Paket nicht in den lokalen Pufferspeicher passt, das Speichern des Pakets in einem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme in einem nicht lokalen Speicher umfasst, wenn das Paket nicht in das Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher passt.
  5. Verfahren nach Anspruch 4, wobei das Speichern des Pakets in einem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme in einem nicht lokalen Speicher das Speichern des Pakets in einem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme in einem statischen Direktzugriffsspeicher umfasst, wenn das Paket nicht in das Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher passt.
  6. Verfahren nach Anspruch 4, ferner umfassend das Abrufen des Pakets am Kopf des Datenfelds zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher aus dem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher und das Senden des Pakets zum nächsten Netzwerkbestimmungsort.
  7. Verfahren nach Anspruch 6, ferner umfassend das Kopieren des Pakets am Kopf des Datenfelds zur asynchronen Einfügung und zur synchronen Entnahme im nicht lokalen Speicher aus dem Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im nicht lokalen Speicher in das Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher, nachdem das Paket am Kopf des Datenfelds zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher vom Datenfeld zur asynchronen Einfügung und zur synchronen Entnahme im lokalen Pufferspeicher zum nächsten Netzwerkbestimmungsort gesendet wurde.
  8. Vorrichtung, umfassend: ein Verarbeitungsmodul (104), um Pakete einer Abfolge, die von einem Netzwerk empfangen werden, zu verarbeiten; ein Element zur Neuanordnung (106), das mit dem Verarbeitungsmodul (104) gekoppelt ist, um Pakete der Abfolge vor der Sendung zu einem nächsten Netzwerkbestimmungsort neu anzuordnen; einen lokalen Pufferspeicher (110), der mit dem Element zur Neuanordnung (106) gekoppelt ist, um einen oder mehrere Datenfelder zum Neuanordnen von Paketen zu speichern; und einen nicht lokalen Speicher (112), der mit dem Element zur Neuanordnung (106) gekoppelt ist, um einen oder mehrere Datenfelder zum Neuanordnen von Paketen zu speichern, wenn der lokale Pufferspeicher (110) voll ist; dadurch gekennzeichnet, dass das Element zur Neuanordnung (106) dazu geeignet ist, zu bestimmen, ob ein empfangenes Paket ein nächstes Paket in der Abfolge ist, das gesendet werden soll, und wenn dies der Fall ist, zu veranlassen, dass die Vorrichtung das Paket sendet, und wenn dies nicht der Fall ist, zu veranlassen, dass die Vorrichtung bestimmt, ob das Paket in den lokalen Pufferspeicher (110) passt.
  9. Vorrichtung nach Anspruch 8, wobei der nicht lokale Speicher (112) ein statischer Direktzugriffsspeicher ist.
  10. Vorrichtung nach Anspruch 8, wobei der lokale Speicher (110) und der nicht lokale Speicher (112) zur Speicherung eines oder mehrerer Datenfelder zur Neuanordnung von Paketen umfassen, dass der lokale Speicher (110) und der nicht lokale Speicher (112) ein oder mehrere Datenfelder zur asynchronen Einfügung und zur synchronen Entnahme, um Pakete neu anzuordnen, speichert.
  11. Vorrichtung nach Anspruch 8, ferner umfassend ein Empfangselement (102), das mit dem Verarbeitungsmodul (104) gekoppelt ist, um Pakete vom Netzwerk zu empfangen.
  12. Vorrichtung nach Anspruch 8, ferner umfassend ein Sendeelement (108), das mit dem Element zur Neuanordnung (106) gekoppelt ist, um die neu angeordneten Pakete zum nächsten Netzwerkbestimmungsort zu senden.
  13. Herstellungsgegenstand, umfassend: ein maschinenzugängliches Medium, das einen Inhalt umfasst, der bei einem Zugriff durch eine Maschine verursacht, dass die Maschine alle Schritte des Verfahrens nach einem der Ansprüche 1, 2, 3, 4, 6 und 7 durchführt.
  14. System, umfassend: eine Switch Fabric; einen Netzwerkprozessor nach der Vorrichtung eines der Ansprüche 9, 11 oder 12, der über eine Switch Fabric-Schnittstelle mit der Switch Fabric gekoppelt ist.
  15. System nach Anspruch 14, wobei der Netzwerkprozessor ferner einen dynamischen Direktzugriffsspeicher umfasst, der mit dem Verarbeitungsmodul gekoppelt ist, um Daten zu speichern.
DE602004008911T 2003-05-28 2004-05-12 Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten Active DE602004008911T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US447492 1982-12-06
US10/447,492 US20040240472A1 (en) 2003-05-28 2003-05-28 Method and system for maintenance of packet order using caching
PCT/US2004/014739 WO2004107684A1 (en) 2003-05-28 2004-05-12 Method and system for maintenance of packet order using caching

Publications (2)

Publication Number Publication Date
DE602004008911D1 DE602004008911D1 (de) 2007-10-25
DE602004008911T2 true DE602004008911T2 (de) 2008-06-19

Family

ID=33451244

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004008911T Active DE602004008911T2 (de) 2003-05-28 2004-05-12 Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten

Country Status (7)

Country Link
US (1) US20040240472A1 (de)
EP (1) EP1629644B1 (de)
CN (1) CN1306773C (de)
AT (1) ATE373369T1 (de)
DE (1) DE602004008911T2 (de)
TW (1) TWI269163B (de)
WO (1) WO2004107684A1 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US7984268B2 (en) 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US7246205B2 (en) 2004-12-22 2007-07-17 Intel Corporation Software controlled dynamic push cache
GB2427048A (en) 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
US20070014240A1 (en) * 2005-07-12 2007-01-18 Alok Kumar Using locks to coordinate processing of packets in a flow
CN100459575C (zh) * 2005-11-10 2009-02-04 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
US9729513B2 (en) 2007-11-08 2017-08-08 Glasswall (Ip) Limited Using multiple layers of policy management to manage risk
GB2444514A (en) 2006-12-04 2008-06-11 Glasswall Electronic file re-generation
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
GB2518880A (en) 2013-10-04 2015-04-08 Glasswall Ip Ltd Anti-Malware mobile content data management apparatus and method
US10193831B2 (en) * 2014-01-30 2019-01-29 Marvell Israel (M.I.S.L) Ltd. Device and method for packet processing with memories having different latencies
CN105227451B (zh) * 2014-06-25 2019-06-21 华为技术有限公司 一种报文处理方法及装置
US9330264B1 (en) 2014-11-26 2016-05-03 Glasswall (Ip) Limited Statistical analytic method for the determination of the risk posed by file based content

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05130141A (ja) * 1991-11-05 1993-05-25 Nec Corp パケツト伝送装置
US5619497A (en) * 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
CN1125548C (zh) * 2000-01-07 2003-10-22 威盛电子股份有限公司 依序转发包的输出排队方法
US6934280B1 (en) * 2000-05-04 2005-08-23 Nokia, Inc. Multiple services emulation over a single network service
US6862282B1 (en) * 2000-08-29 2005-03-01 Nortel Networks Limited Method and apparatus for packet ordering in a data processing system
US6781992B1 (en) * 2000-11-30 2004-08-24 Netrake Corporation Queue engine for reassembling and reordering data packets in a network
US6751704B2 (en) * 2000-12-07 2004-06-15 International Business Machines Corporation Dual-L2 processor subsystem architecture for networking system
US7327759B2 (en) * 2001-07-25 2008-02-05 International Business Machines Corporation Sequence-preserving deep-packet processing in a multiprocessor system
US7293100B2 (en) * 2001-08-31 2007-11-06 Adaptec, Inc. Methods and apparatus for partially reordering data packets
US6779050B2 (en) * 2001-09-24 2004-08-17 Broadcom Corporation System and method for hardware based reassembly of a fragmented packet
US7248593B2 (en) * 2001-09-25 2007-07-24 Intel Corporation Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues
EP1454460A1 (de) * 2001-11-13 2004-09-08 Transwitch Corporation Überwindung von zugriffslatenz ineffizienz in speichern für paketvermittelte netzwerke
US7248586B1 (en) * 2001-12-27 2007-07-24 Cisco Technology, Inc. Packet forwarding throughput with partial packet ordering
US20030214949A1 (en) * 2002-05-16 2003-11-20 Nadim Shaikli System for reordering sequenced based packets in a switching network
US6735647B2 (en) * 2002-09-05 2004-05-11 International Business Machines Corporation Data reordering mechanism for high performance networks
US7796602B2 (en) * 2002-11-25 2010-09-14 Intel Corporation In sequence packet delivery without retransmission
US7289508B1 (en) * 2003-03-12 2007-10-30 Juniper Networks, Inc. Systems and methods for processing any-to-any transmissions

Also Published As

Publication number Publication date
WO2004107684A1 (en) 2004-12-09
CN1306773C (zh) 2007-03-21
CN1574785A (zh) 2005-02-02
TW200500858A (en) 2005-01-01
DE602004008911D1 (de) 2007-10-25
ATE373369T1 (de) 2007-09-15
EP1629644B1 (de) 2007-09-12
US20040240472A1 (en) 2004-12-02
TWI269163B (en) 2006-12-21
EP1629644A1 (de) 2006-03-01

Similar Documents

Publication Publication Date Title
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
DE60307241T2 (de) Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben
DE60214670T2 (de) Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
EP0743595B1 (de) Kommunikationssystem mit Mitteln zum Austausch von Software
DE3908459C2 (de) Netzwerkserver
DE69819303T2 (de) Verfahren und vorrichtung zur übertragung von mehrfachkopien durch vervielfältigung von datenidentifikatoren
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE102018212253A1 (de) Drosselung für bandbreitenunausgewogene datenübertragungen
DE19822776A1 (de) Datenverarbeitungsvorrichtung
DE1815234A1 (de) Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher
DE10196135B4 (de) Port-Paket-Warteschlangenbildung
DE4207158A1 (de) Speicher-zugriffssteuerung
EP0651536A2 (de) Verfahren zur Wiederherstellung einer vorgegebenen Reihenfolge für ATM-Zellen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
DE69817672T2 (de) Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung
DE2233193C3 (de) Stapel-Speichersystem
DE3016452A1 (de) Steuereinrichtung, insbesondere fuer fernsprechvermittlungsanlagen
DE60203785T2 (de) Netzschnittstelle
DE102016003679A1 (de) Paketspeichersystem, -verfahren und -vorrichtung zur Verhinderung eines Unterlaufs

Legal Events

Date Code Title Description
8364 No opposition during term of opposition