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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/565—Sequence integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, 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 - 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 Netzwerkprozessor100 mehr Bestandteile als die in1 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 Empfangselement102 , um Pakete von einem Netzwerk zu empfangen. Die empfangenen Pakete können Teil einer Abfolge von Paketen sein. Der Netzwerkprozessor100 beinhaltet ein oder mehrere Verarbeitungsmodule104 . 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 Neuanordnung106 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 Sendeelement108 gesendet oder zur Sendung gereiht. Wenn dies nicht der Fall ist, bestimmt das Element zur Neuanordnung106 , ob das Paket in einen lokalen Pufferspeicher110 passt. Wenn dies der Fall ist, wird das Paket im lokalen Pufferspeicher110 gespeichert. Andernfalls wird das Paket in einem nicht lokalen Speicher112 gespeichert. In einer Ausführungsform ist der nicht lokale Speicher112 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 Sendeelement108 gesendet. Während das Ele ment zur Neuanordnung106 Pakete aus dem lokalen Pufferspeicher110 abruft, damit sie gesendet werden, kopiert das Element zur Neuanordnung106 Pakete, die im nicht lokalen Speicher112 gespeichert sind, in den lokalen Pufferspeicher110 . - 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 Verarbeitungsmodul104 verarbeitet wurden, werden die Pakete durch das Element zur Neuanordnung106 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 Neuanordnung106 ruft Pakete aus dem Datenfeld der Reihe nach ab, und das Sendeelement108 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.
-
- 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. Bei200 wird ein Paket, das Teil einer Abfolge von Paketen ist, an einem Element zur Neuanordnung empfangen. Bei202 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 bei204 gesendet. Wenn dies nicht der Fall ist, wird bei206 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 bei208 im lokalen Pufferspeicher gespeichert. Wenn das Paket nicht in den lokalen Pufferspeicher passt, wird das Paket bei210 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 Computersystem300 ausgeführt werden, das Bestandteile302 bis312 aufweist, die einen Prozessor302 , einen Speicher304 , eine Ein-/Ausgangsvorrichtung306 , einen Datenspeicher312 und eine Netzwerkschnittstelle310 beinhalten, die über einen Bus308 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 Computersystems300 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 System300 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 Netzwerkprozessor100 zu kommunizieren. Zum Beispiel kann der Netzwerkprozessor100 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)
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. - Vorrichtung nach Anspruch 8, wobei der nicht lokale Speicher (
112 ) ein statischer Direktzugriffsspeicher ist. - 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. - Vorrichtung nach Anspruch 8, ferner umfassend ein Empfangselement (
102 ), das mit dem Verarbeitungsmodul (104 ) gekoppelt ist, um Pakete vom Netzwerk zu empfangen. - 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. - 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.
- 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.
- System nach Anspruch 14, wobei der Netzwerkprozessor ferner einen dynamischen Direktzugriffsspeicher umfasst, der mit dem Verarbeitungsmodul gekoppelt ist, um Daten zu speichern.
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)
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)
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 |
-
2003
- 2003-05-28 US US10/447,492 patent/US20040240472A1/en not_active Abandoned
-
2004
- 2004-04-28 CN CNB2004100381029A patent/CN1306773C/zh not_active Expired - Fee Related
- 2004-05-12 DE DE602004008911T patent/DE602004008911T2/de active Active
- 2004-05-12 EP EP04751905A patent/EP1629644B1/de not_active Not-in-force
- 2004-05-12 WO PCT/US2004/014739 patent/WO2004107684A1/en active IP Right Grant
- 2004-05-12 AT AT04751905T patent/ATE373369T1/de not_active IP Right Cessation
- 2004-05-17 TW TW093113835A patent/TWI269163B/zh not_active IP Right Cessation
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 |