DE602004012210T2 - Verfahren and System für eine beschleunigte Paketverarbeitung - Google Patents

Verfahren and System für eine beschleunigte Paketverarbeitung Download PDF

Info

Publication number
DE602004012210T2
DE602004012210T2 DE602004012210T DE602004012210T DE602004012210T2 DE 602004012210 T2 DE602004012210 T2 DE 602004012210T2 DE 602004012210 T DE602004012210 T DE 602004012210T DE 602004012210 T DE602004012210 T DE 602004012210T DE 602004012210 T2 DE602004012210 T2 DE 602004012210T2
Authority
DE
Germany
Prior art keywords
header
cache
extension
packet
headers
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
DE602004012210T
Other languages
English (en)
Other versions
DE602004012210D1 (de
Inventor
David James K0A 1L0 WILSON
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
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 Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of DE602004012210D1 publication Critical patent/DE602004012210D1/de
Application granted granted Critical
Publication of DE602004012210T2 publication Critical patent/DE602004012210T2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft Kommunikationssysteme und konkret ein Paketverarbeitungskonzept, bei dem ein Cache-Speicher verwendet wird für den schnellen Zugriff der Header der oberen Schicht im Paketfluss.
  • Hintergrund der Erfindung
  • In der folgenden Beschreibung wird konkret auf das Internet-Protokoll Version 6 (IPv6) und auf die Mehrfeld-Klassifizierung („Multi-Field Classification", MFC) verwiesen. Dabei sollte jedoch klar sein, dass das Prinzip der vorliegenden Erfindung nicht auf IPv6 und MFC begrenzt ist, sondern dass die beschriebene Implementierung lediglich als Beispiel zu verstehen ist.
  • IPv6 stellt eine Weiterentwicklung dar, um bestimmte Einschränkungen von IPv4 zu überwinden. Insbesondere die Einschränkungen hinsichtlich der Weiterleitung und Adressierung bei IPv4 stellen eine reale Begrenzung der Adresskonfigurationen dar, die mit einer Feldbegrenzung von 32 Bit erzielt werden können. Bei IPv6 wurde das Adressfeld auf 128 Bit erweitert. Dadurch werden mehr Stufen einer Adressierungshierarchie sowie eine höhere Anzahl adressierbarer Knoten unterstützt. Darüber hinaus wurden einige IPv4 Header-Felder gelöscht, um die Paketverarbeitungskosten zu senken und die Kosten für die Bandbreite bei IPv6-Kopfdaten („Header") zu begrenzen. IPv6 wurde um eine neue Möglichkeit erweitert, die die Beschriftung von Paketen ermöglicht, die zu einem bestimmten Datenverkehrsablauf gehören, für den der Absender eine spezielle Verarbeitung anfordert auf der Basis der Dienstgüte oder der Echtzeitverarbeitung. Darüber hinaus wurde der Mechanismus zum Hinzu fügen optionaler Informationen zu einem Paket auf der Internet-Schicht geändert. In IPv4 wird dies über das Optionsfeld, das Teil des IPv4-Headers ist, erreicht. Das IHL-Feld ("Internet Header Length", Internet-Kopfdatenlänge) in den IPv4-Kopfdaten gibt die Länge dieser zusätzlichen Felder sowie des Basis-Headers an. Wegen der Länge des IHL-Felds kann einem Paket jedoch nur eine begrenzte Anzahl von Optionen hinzugefügt werden. In IPv6 werden Informationen auf der Internet-Schicht über die Erweiterungs-Header hinzugefügt. Diese Header werden einem IPv6-Paket zwischen dem IPv6-Header und den Headern der oberen Schicht hinzugefügt. Jeder Erweiterungs-Header umfasst ein Feld, das den Typ des nächsten Headers angibt, und statt ein Feld wie IHL in IPv4 zu verwenden, gibt IPv6 die Länge des nächsten Erweiterungs-Headers direkt in den Erweiterungs-Headern an. Dies ermöglicht das Hinzufügen einer unbegrenzten Anzahl von Erweiterungs-Headern zu einem IPv6-Paket.
  • 1 zeigt das Format der IPv6-Header einschließlich des Felds „Flow Label" (Ablaufbeschriftung).
  • Die reguläre Paketverarbeitung erfordert normalerweise Felder aus Headern der oberen Schicht. Die Mehrfeldklassifizierung („Multi-Field Classification", MFC), eines der vielen Beispiele zur Verarbeitung solcher Daten, klassifiziert normalerweise Pakete auf der Basis der 5 Tupel (<Quellen-IP, Ziel-IP, Quellen-Port, Ziel-Port, Protokoll>. Wenn Optionen oder Erweiterungs-Header verwendet werden, kann es schwierig und kostenintensiv sein, den Header der oberen Schicht zu erreichen, um die für die Paketverarbeitung erforderlichen Daten abzurufen.
  • Für IPv4 ist die Verarbeitung von Paketen einfach, da das zuvor erwähnte IHL-Feld zum Überspringen des gesamten IPv4-Headers einschließlich aller daran angehängten Optionen verwendet werden kann, um den Header der oberen Schicht zu erreichen.
  • Für IPv6 ist das Erreichen des Headers der oberen Schicht erheblich schwieriger bei Paketen, die Erweiterungs-Header enthalten, da der IPv6-Header kein Feld wie IHL in IPv4 umfasst, über das der Header der oberen Schicht direkt erreicht werden könnte. Eine Lösung gemäß dem Stand der Technik ist das serielle Durchlaufen der Erweiterungs-Header. Da die Länge der einzelnen Erweiterungs-Header direkt im Erweiterungs-Header gespeichert wird, erscheint dies die offensichtlichste Lösung. Die IPv6-Paketverarbeitung wird dadurch kostenintensiv, wenn eine Reihe von Erweiterungs-Headern durchlaufen werden muss, bevor der Header der oberen Schicht erreicht und eine reguläre Paketverarbeitung durchgeführt werden kann. Diese Kosten erscheinen um so unnötiger, als die Präsenz von IPv6-Erweiterungs-Headern nicht notwendigerweise bedeutet, dass der Knoten eine spezielle Verarbeitung durchführen muss. Einige Erweiterungs-Header umfassen Informationen, die nur für den Zielknoten relevant sind und die von allen anderen Knoten auf dem Weg bis zum Ziel ignoriert werden können. Tatsächlich sind nur die Hop-für-Hop- und die Router-Erweiterungs-Header für alle Knoten relevant, und Letzterer ist nur relevant, wenn das ankommende Paket für den Knoten bestimmt ist. Glücklicherweise gibt RFC2460 an, dass Hop-für-Hop-Erweiterungs-Header die ersten Erweiterungs-Header nach dem IPv6-Header sind. Somit kann ein Knoten schnell feststellen, ob das Paket eine spezielle Verarbeitung erfordert, indem er einfach die Zieladresse und das Feld „hext Header" des IPv6-Headers prüft.
  • Eine Alternative zum vorigen Ansatz ist es, einfach die in einer Paketklassifizierung verwendeten Felder auf diejenigen aus dem IP-Header zu begrenzen, so dass der Header der oberen Schicht nicht untersucht zu werden braucht. Für MFC reduziert dies die Standard 5-Tupel-Klassifizierung auf eine 3-Tupel-Klassifizierung. Dies ist keine sehr gängige Option, da das Begrenzen der im MFC-Schlüssel für IPv6 verwendeten Felder bedeutet, dass die Kontrolle über die Sicherheit des Knotens geändert werden muss. Somit muss ein neues Set von Regeln für IPv6 entwickelt werden, da es manchmal sehr aufwändig ist, alle Felder aus dem Header der oberen Schicht zu lesen. Die Begrenzung der in einer Paketklassifizierung verwendeten Felder wird daher nicht als eine aussichtsreiche Lösung betrachtet.
  • XP001054898, Huang N-F et al: „Design of multi-field IPv6 packet classifiers using ternary cams" („Konzeption von Mehrfeld-IPv6-Paketklassifizierungen mithilfe ternärer CAM-Speicher), Globecom '01, 2001 IEEE Global Telecommunications Conference, San Antonio, TX, 25.–29. Nov 2001, Seite 1877–1881, ISBN 0-7803-7206-9, beschreibt, wie diese High-End-Router ein Paket klassifizieren, indem sie nach mehreren Feldern der IP/TCP-Headers suchen und erkennen, zu welchem Ablauf das Paket gehört. Verschiedene Paketklassifizierungs-Algorithmen zur Beschleunigung der Paketverarbeitung und zur Reduzierung der Speicheranforderung wurden bereits vorgeschlagen. Es ist nicht einfach, diese Algorithmen in der Hardware zu implementieren, um diese vielen Felder gleichzeitig zu durchsuchen. XP001054898 neigt zur Konzeption eines neuen Paketklassifizierungssystems, das ein gleichzeitiges Durchsuchen mehrerer Felder ermöglicht, insbesondere für die IPv6-Pakete mit längeren Adressen. Zum Klassifizieren der IPv6-Pakete mit Kabelgeschwindigkeit wird die CAM-ähnliche speicherorientierte Hardwarearchitektur in Betracht gezogen, und fünf Felder werden als Suchschlüssel festgelegt.
  • XP002317313, A. Conta et al: „A proposal for the IPv6 flow label, draft-conta-ipvo-flow-label-02.txt" (Ein Vorschlag zur IPv6-Ablaufbeschriftung), Internet Draft, 1. Juli 2001, IETF, IPNG Working Group, beschreibt eine Analyse der IPv6-Definition der Ablaufbeschriftung, die Regeln zu ihrer Verwendung und ihre Auswirkungen. XP002317313 macht anschließend einen Vorschlag zum Hinzufügen/Ändern dieser Regeln, die die Nutzbarkeit der IPv6-Ablaufbeschriftung verbessern, insbesondere mit Diffserv und seiner Annahme als Standardmechanismus.
  • XP010636142, Van Lunteren J et al.: „Dynamic multi-field packet classification" ("Dynamische Mehrfeld-Paketklassifizierung"), Globecom '02, 2002 – IEEE Global Telecommunications Conference, Tapei, Taiwan, 17.–21. Nov. 2002, Seite 2215–2219, ISBN 0-7803-7632-3, untersucht die Mechanismen, die die Leistung der Mehrfeld-Klassifizierungsverfahren gemäß dem Stand der Technik bestimmen, und schlägt ein neues Konzept unter dem Namen P2C für die Paketklassifizierung bei OC-192- und OC-768-Geschwindigkeiten vor. P2C verbindet die Stärken des integrierten Speichers und der ternären CAM-Technologien und erzielt damit eine sehr hohe Speichereffizienz unter Beibehaltung schneller inkrementeller Aktualisierungen.
  • Zusammenfassung der Erfindung
  • Vereinfacht gesagt, betrifft die vorliegende Erfindung das Caching von Informationen zur Länge der innerhalb eines Paketablaufs verwendeten Erweiterungs-Header, um die Verarbeitung der folgenden Pakete in dem Ablauf zu beschleunigen. In einer exemplarischen Ausführungsform umfasst der Paketablauf IPv6-Pakete.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird daher ein Verfahren bereitgestellt für den Zugriff auf Header der oberen Schicht in einem Paketablauf, das die fol genden Schritte umfasst: als Reaktion auf ein Paket, das Erweiterungs-Header umfasst, den Aufbau eines Cache-Schlüssels auf der Basis der Felder in dem Header und die Durchführung einer Cache-Suche nach einem Cache-Eintrag; und als Reaktion auf das Finden eines entsprechenden Cache-Eintrags das parallele Lesen der Erweiterungs-Header mithilfe des Cache-Eintrags, um die Felder in dem Header der oberen Schicht zu erreichen und zu lesen.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein System bereitgestellt zur Durchführung der MFC für die Filterung eines Paketablaufs, die Folgendes umfasst: Mittel als Reaktion auf ein IPv6-Paket, das Erweiterungs-Header umfasst, zum Aufbau eines Cache-Schlüssels auf der Basis der Felder in dem Header und Durchführung einer Cache-Suche nach einem Cache-Eintrag; und Mittel als Reaktion auf das Finden eines entsprechenden Cache-Eintrags zum parallelen Lesen der Erweiterungs-Header mithilfe des Cache-Eintrags, um die Felder in dem Header der oberen Schicht zu erreichen und zu lesen.
  • Kurzbeschreibung der Zeichnungen
  • Die Erfindung ist nachfolgend ausführlich beschrieben mit Bezug auf die beigefügten Zeichnungen, wobei gilt:
  • 1 zeigt das IPv6-Header-Format;
  • 2 zeigt die Folge der erforderlichen Operationen zum Erreichen des Headers der oberen Schicht eines IPv6-Pakets;
  • die 3A und 3B zeigen einen Vergleich der Speicherzugriffe mit serieller und pluraler Verarbeitung, und
  • die 4A bis 4G zeigen die Zeitlinien der Suchvorgänge bei Erweiterungs-Headern mithilfe von Optionen.
  • Ausführliche Beschreibung der Erfindung
  • Wenn ein Knoten ein Paket empfängt, wird der IPv6-Header untersucht. Pakete, die keine Erweiterungs-Header enthalten, werden mit den normalen Techniken der Paketverarbeitung verarbeitet. Das bedeutet, dass die einzigen zusätzlichen Kosten für die Verarbeitung dieser Pakete durch die Prüfung der Erweiterungs-Header entstehen. Für Pakete mit dem Hop-für-Hop Erweiterungs-Header oder Pakete, die für den Knoten bestimmt sind und Weiterleitungs-Header enthalten, kann an dieser Stelle die spezielle durch den Header vorgegebene Verarbeitung eingeleitet werden.
  • Für Pakete mit Erweiterungs-Headern verwendet der Knoten die im IPv6-Header enthaltenen Informationen zum Aufbau eines Schlüssels für die Durchführung einer Cache-Suche. Das Format dieses Schlüssels kann für alle Pakete gleich sein, oder es könnte auf der Präsenz oder dem Wert der Felder im IPv6-Header basieren. Für Pakete mit Ablaufbeschriftungen ungleich Null könnte das Tupel <IPv6.srcIP, IPv6.flowLabel> oder <IPv6.srcIP, IPv6.flowLabel, IPv6.nextHeader> verwendet werden. Für Pakete mit Ablaufbeschriftungen gleich Null könnte das Tupel <IPv6.srcIP, IPv6.dstIP> oder <IPv6.srcIP, IPv6.dstIP, IPvG.nextHeader> verwendet werden.
  • Während der Ausführung der Cache-Suche können die Informationen aus dem Header zum Lesen des ersten Erweiterungs-Headers in der Liste verwendet werden. Wenn kein Eintrag im Cache gefunden wird, fährt der Knoten mit dem seriellen Durchlaufen der Liste von Erweiterungs-Headern fort unter Verwendung der Felder für die Erweiterungs-Header-Länge und den nächsten Header. Nach einem seriellen Durchlaufen werden die zum Durchlaufen der Erweiterungs-Header verwendeten Daten im Cache platziert in Erwartung weiterer Pakete im gleichen Ablauf mit ähnlichen Erweiterungs-Headern. Wird jedoch ein Cache-Eintrag gefunden, so verwendet der Knoten die Informationen aus dem ersten Erweiterungs-Header und die Cache-Daten zum parallelen Lesen der einzelnen verbleibenden Erweiterungs-Header. Auf diese Weise kann der Knoten die Erweiterungs-Header schnell durchlaufen, und er kommt entweder beim Header der oberen Schicht an oder fährt mit dem seriellen Durchlaufen der letzten Erweiterungs-Header fort, falls nicht genügend Daten im Cache abgelegt wurden. Wenn an irgend einer Stelle beim Durchlaufen der Erweiterungs-Header die Cache-Daten als falsch erkannt werden, muss der Knoten die verbleibenden Erweiterungs-Header seriell durchlaufen ab der Stelle, an der die Daten fehlerhaft waren. In diesem Fall wird der Cache aktualisiert, so dass er die Erweiterungs-Header im aktuellen Paket widerspiegelt in Erwartung zusätzlicher Pakete im gleichen Ablauf mit einem ähnlichen Format.
  • In 2 ist der oben beschriebene Algorithmus zusammengefasst. Es ist zu beachten, dass keine Cache-Suche durchgeführt wird, falls sich nach dem Lesen des IPv6-Headers bekanntermaßen keine Erweiterungs-Header im Paket befinden. In diesen Fällen, in denen keine Pakete mit Erweiterungs-Headern vorliegen, ergibt sich – wenn überhaupt – nur ein sehr kleiner Nachteil durch die Implementierung dieser Optimierungen.
  • 3 zeigt den Unterschied bei den Speicherzugriffen zwischen dem Durchlaufen der verknüpften Liste der Erweiterungs-Header und dem Verwenden des beschleunigten Algorithmus. In dem gezeigten Fall wird die Latenz der Paketverarbeitung um einen Speicherzugriff reduziert. 3A zeigt die bei einem seriellen Durchlaufen der Header verwendeten Speicherzugriffe.
  • Wie in 3B gezeigt, umfasst die parallele Verarbeitung in Schritt 23 eine Untersuchung des Cache parallel zur Überprüfung des ersten Erweiterungs-Headers.
  • Es gibt verschiedene alternative Ausführungsformen der Erfindung. Die erste Ausführungsform ist die Möglichkeit zum Kennzeichnen „unvorhersehbarer" Abläufe und der Reaktion darauf. Diese Ausführungsform wird verwendet zum Erkennen von Abläufen, bei denen sich die Erweiterungs-Header ständig ändern. Wenn ein solcher Ablauf erkannt wird, ist klar, dass die Cache-Daten wahrscheinlich nicht korrekt sind und dass es effizienter wäre, die Erweiterungs-Header seriell zu durchlaufen statt des Versuchs eines parallelen Durchlaufens. Darüber hinaus wäre bei einem solchen Ablauf das Aktualisieren des Cache, um das Format des aktuellen Pakets widerzuspiegeln, nicht notwendig. Das Kennzeichnen eines Ablaufs als „nicht vorhersehbar" könnte das Ergebnis einer manuellen Konfiguration sein oder dynamisch ermittelt werden auf der Basis der Beobachtung des Ablaufs.
  • Die zweite Ausführungsform bietet die Möglichkeit, einen Cache-Eintrag als „klebrig" zu kennzeichnen. Dies wäre ein Hinweis darauf, dass die Mehrzahl der Pakete in einem Ablauf mit den Cache-Daten korrekt interpretiert werden sollten, und dass in dem Fall, dass die Cache-Daten nicht mit dem Paket übereinstimmen, der Cache-Speicher nicht aktualisiert werden soll. Dadurch wird verhindert, dass ein einzelnes Paket die gesamten Cache-Daten verändert. Wie bei der vorherigen Erweiterung kann dieses Merkmal manuell oder als Ergebnis der Ablaufbeobachtung aktiviert werden. Diese Erweiterung kann verbessert werden durch die Angabe, dass bei Cache-Fehlern die Daten im Cache erst nach einer bestimmten Anzahl von Fehlern aktualisiert werden sollen.
  • Bei einer dritten Ausführungsform wird ebenfalls ein Teil der Header-Informationen der oberen Schicht im Cache-Speicher abgelegt, beispielsweise das Protokoll und die Quellen- und Ziel-Ports. Beim Empfang der Cache-Informationen können die Protokollinformationen in Verbindung mit den im IPv6-Header enthaltenen Informationen verwendet werden, um unverzüglich mit der Paket-Klassifizierung, beispielsweise über MFC, zu beginnen. Während die Klassifizierung abgeschlossen wird, können die verbleibenden Cache-Informationen für ein schnelles Durchlaufen der Erweiterungs-Header verwendet werden und zum Verifizieren, dass die Cache-Protokollinformationen den Informationen im Paket entsprechen. Wenn die beiden Informations-Sets übereinstimmen, ist die Klassifizierung gültig. Sind jedoch die Informationen aus dem Cache-Speicher falsch, muss die Klassifizierung mit den richtigen Informationen aus dem Header der oberen Schicht wiederholt werden. Im schiechtesten Fall entstehen Kosten für eine zusätzliche Klassifizierung, im besten Fall erlaubt dieses Verfahren jedoch die Durchführung einer Paketklassifizierung parallel mit dem Durchlaufen der Erweiterungs-Header, und es kann die Gesamtlatenz der Paketverarbeitung um die für die Paketklassifizierung erforderliche Latenz reduzieren.
  • Eine weitere Ausführungsform ist die Möglichkeit, die Ergebnisse anderer Klassifizierungen und Suchen, die im Verlauf der regulären Paketverarbeitung durchgeführt wurden, im Cache abzulegen. Das Ergebnis der MFC und die vorausschauenden Suchen könnten beispielsweise dem Cache hinzugefügt werden. Mit dieser Ausführungsform muss nur das erste Paket in einem Ablauf vollständig klassifiziert werden, da die Folgepakete im Ablauf die Ergebnisse dieser Klassifizierung aus dem Cache verwenden können.
  • Die vorliegende Erfindung bietet Vorteile gegenüber zuvor beschriebenen Lösungen gemäß dem Stand der Technik. Da ein großer Teil der Erweiterungs-Header bei den meisten Knoten keine spezielle Verarbeitung erfordern, reduziert die vorliegende Erfindung die Kosten für die Verarbeitung von IPv6-Paketen, die Erweiterungs-Header enthalten. Dadurch werden die Header der oberen Schicht schnell erreicht, so dass die Paketverarbeitung fortgesetzt werden kann.
  • Mit Blick auf die Verwendung der vorhandenen MFC-Tupel können die bei der Paketklassifizierung verwendeten Felder gegenüber den für IPv4 verwendeten Feldern unverändert bleiben, da der Header der oberen Schicht schnell erreicht werden kann. Das bedeutet, dass die vorhandenen Sicherheitsrichtlinien auf IPv6 in der gleichen Weise angewendet werden können wie zuvor auf IPv4.
  • Die Kosten des parallelen Ladens von Erweiterungs-Header-Informationen können in einer geringfügigen Zunahme der Gesamt-Speicherbandbreite bestehen, da die Daten aus dem Cache-Speicher gelesen werden müssen, aber diese Zunahme tritt nur bei Paketen auf, die Erweiterungs-Header umfassen.
  • 4 zeigt die Zeitlinien für das parallele Laden von bis zu sechs Erweiterungs-Headern. Die durchgezogenen Balken kennzeichnen das Durchlaufen der Erweiterungs-Header im günstigsten Fall. Die gestrichelten Balken kennzeichnen das Durchlaufen der Erweiterungs-Header in dem absolut schlechtesten Fall, dass die Cache-Informationen falsch sind. Aus den 4A bis 4G ist zu erkennen, dass der günstigste Fall beim Durchlaufen der Erweiterungs-Header eine erhebliche Zeitersparnis bringt gegenüber dem Prozess mit seriellen Header-Suchen, wie mit den gestrichelten Linien gezeigt.
  • Der Cache-Speicher kann auf beliebig viele Arten implementiert werden. Mögliche Implementierungen umfassen die Verwendung eines inhaltsadressierbaren Speichers („Context Addressable Memory", CAM) oder die Verwendung von Hash-Tabellen. Das möglicherweise offensichtlichste Verfahren ist die Verwendung eines vorhandenen CAM-Speichers. Die Verwendung des CAM als Cache-Speicher hat Vor- und Nachteile. Der Hauptvorteil liegt darin, dass mit einem CAM die meisten, wenn nicht alle Bits aus dem Schlüssel zur Durchführung einer Suche verwendet werden können, die – je nach der genauen Implementierung – nur ein sehr geringes oder kein Risiko birgt, dass bei einer Übereinstimmung mit dem Schlüssel eine Kollision auftritt. Das bedeutet, dass es nur sehr wenige Fehler bei der Übereinstimmung aufgrund des Abrufs falscher Informationen aus dem CAM geben wird. Der Nachteil bei einer CAM-Implementierung, neben der Tatsache, dass CAMs teuer und durch den Platz begrenzt sind, liegt darin, dass die CAM-Suche zwei Speicherzugriffe für die Durchführung einer Cache-Suche erfordern kann. Der erste Zugriff, ein Schreibzugriff, liefert dem CAM den Schlüssel und die Anleitungen zur Durchführung einer Suche. Der zweite Zugriff, ein Lesezugriff, ruft das Ergebnis aus dem CAM-Speicher ab.
  • Als eine Alternative zur Verwendung des CAM-Speichers kann eine Hash-Tabelle verwendet werden, um den Cache-Speicher zu implementieren. Diese Implementierung bietet bestimmte Vorteile, da sie keinen kostbaren und teuren CAM-Platz belegt. Wegen der Geschwindigkeit, mit der eine Hash-Suche durchgeführt werden kann, ist diese Implementierung wahrscheinlich mindestens so schnell und mit Sicherheit weniger teuer als die CAM-Implementierung. Der Nachteil bei der Hash-Implementierung liegt in der gegenüber der CAM-Implementierung höheren Wahrscheinlichkeit einer Kollision bei einer Übereinstimmung des Schlüssels.
  • Je nachdem, wie der Cache genau implementiert wird, kann bei einer Übereinstimmung des Schlüssels eine Kollision auftreten. Dies ist möglich, weil nicht alle Bits des Schlüssels als Index für den Cache verwendet werden. Dadurch ist eventuell eine weitere Verarbeitung erforderlich, um diese Kollision zu beheben. Es kann sein, dass die Kosten für die Behebung dieser Kollision durch falsche Cache-Informationen bei bestimmten Implementierungen höher sind als die Kosten für ein serielles Durchlaufen der Erweiterungs-Header. In diesen Fällen wäre es von Vorteil, einfach anzunehmen, dass keine Kollisionen auftreten. Das Endergebnis wäre eine Zunahme bei der Häufigkeit der Nichtübereinstimmung von Cache- und Paketdaten, aber insgesamt eine Reduzierung bei der Verarbeitungszeit. Bei Hash-Implementierungen hat dies den zusätzlichen Vorteil der Reduzierung der Größe der Hash-Tabelleneinträge, da die zur Behebung der Kollisionen erforderlichen Informationen nicht mehr benötigt würden. Die Reduzierung bei der Größe der Hash-Tabelleneinträge vergrößert effektiv die Anzahl der Einträge in der Tabelle oder erlaubt eine Einsparung von Speicherplatz.
  • Wie weiter oben erläutert, verwendet das Caching-Verfahren Felder aus dem Header, um einen Schlüssel zum Indexieren des Cache aufzubauen. Die im Cache gespeicherten Informationen sind eine Duplizierung der Informationen, die sich mutmaßlich im Paket befinden. Wegen dieser Duplizierung muss sorgfältig sichergestellt werden, dass die Cache-Daten mit den Daten im Paket übereinstimmen. Hierzu muss mindestens die Lange der Erweiterungs-Header im Cache abgelegt werden, damit die Erweiterungs-Header geladen werden können, um zu bestätigen, dass sie mit den Cache-Daten übereinstimmen. Würde diese Überprüfung nicht durchgeführt, so könnte ein bösartiger Host einen gültigen Ablauf einrichten, aber Folgepakete in dem Ablauf verändern, um einen Sicherheitsmechanismus zu umgehen. Als Beispiel lässt sich eine Implementierung annehmen, die einfach die gesamte Länge aller Erweiterungs-Header im Cache ablegt. Wenn das erste Paket, das zahlreiche Erweiterungs-Header umfasst, im Ablauf ankommt, werden die Erweiterungs-Header seriell durchlaufen, und dem Cache wird ein Eintrag hinzugefügt. MFC wird mit dem Paket durchgeführt, und das Paket wird akzeptiert. Ein weiteres Paket kommt im Ablauf an, und die Cache-Daten werden gelesen. Der gesamte Versatz der Erweiterungs-Header wird verwendet, um das zu lesen, was für den Header der oberen Schicht gehalten wird, wobei es sich in Wirklichkeit aber um einen gefälschten Header handelt, der mit dem des ersten Pakets identisch ist. MFC wird durchgeführt, und das Paket wird akzeptiert. Wären die Erweiterungs-Header seriell gelesen worden, so wäre klar gewesen, dass dieses zweite Paket weniger Erweiterungs-Header als das erste Paket hat und dass sich der echte Header der oberen Schicht weiter vorn im Paket befand als der, auf den die Cache-Daten verwiesen hatten.
  • Auch wenn bestimmte Ausführungsformen der Erfindung beschrieben und dargestellt werden können, so ist doch für den Fachmann klar, dass zahlreiche Änderungen daran vorgenommen werden können, ohne vom Grundkonzept der Erfindung abzuweichen. Es sollte jedoch klar sein, dass solche Änderungen innerhalb des Anwendungsbereichs der Erfindung gemäß der Definition in den beigefügten Patentansprüchen liegen.

Claims (23)

  1. Verfahren zum Zugriff auf den Transport-Header von Paketen, die kein Feld für die Länge des Internet-Headers umfassen, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: a) Ablegen von Erweiterungs-Headern, die die Länge des Internet-Headers von Paketen angeben, im Cache-Speicher; b) als Reaktion auf einen Paket-Header, der Erweiterungs-Header umfasst, den Aufbau eines Cache-Schlüssels zu diesem Paket und die Durchführung einer Cache-Suche nach einem Cache-Eintrag zu diesem Cache-Schlüssel; und c) als Reaktion auf das Finden eines entsprechenden Cache-Eintrags das parallele Lesen dieser Erweiterungs-Header, um die Felder im Header der oberen Schicht zu erreichen und zu lesen.
  2. Verfahren gemäß Anspruch 1, wobei es sich bei dem Paketfluss um ein IPv6-Paket handelt.
  3. Verfahren gemäß Anspruch 1, wobei dieser Cache-Schlüssel mithilfe von zwei Feldern des Internet-Headers dieser Pakete berechnet wird.
  4. Verfahren gemäß Anspruch 3, wobei die beiden Felder zur Berechnung dieses Cache-Speichers die IP-Ausgangsadresse und eine Ablaufbeschriftung für Pakete mit einer Ablaufbeschriftung und die IP-Ausgangs- und Zieladresse für Pakete ohne Ablaufbeschriftung sind.
  5. Verfahren gemäß Anspruch 3, wobei die beiden Felder die Ausgangsadresse, die Ablaufbeschriftung und der nächste Header oder die Quell- und Zieladresse und der nächste Header sind.
  6. Verfahren gemäß Anspruch 1, wobei die Cache-Suche mithilfe einer Tabelle durchgeführt wird, die die Länge der Erweiterungs-Header umfasst.
  7. Verfahren gemäß Anspruch 1, wobei Schritt d) das Lesen des ersten Erweiterungs-Headers dieses Folgepakets umfasst, während die Cache-Suche mit den verbleibenden Erweiterungs-Headern durchgeführt wird.
  8. Verfahren gemäß Anspruch 1, das des Weiteren Folgendes umfasst, wenn kein Cache-Eintrag zu diesem Cache-Schlüssel gefunden wird: i) Ablegen der durch serielles Durchlaufen aller Erweiterungs-Header dieses Pakets empfangenen Erweiterungs-Header-Daten im Cache-Speicher, und Zuordnen dieses Cache-Schlüssels zu einem Cache-Eintrag, der diesen Erweiterungs-Header-Daten entspricht; ii) Reagieren auf ein Folgepaket, das den gleichen Cache-Schlüssel hat; und iii) Durchführen von Schritt c) für dieses Folgepaket.
  9. Verfahren gemäß Anspruch 7, das des Weiteren den folgenden Schritt umfasst, wenn dieses Folgepaket den gleichen Cache-Schlüssel aufweist, aber zusätzliche Options-Header umfasst neben den für diesen Eintrag im Cache abgelegten Options-Headern: iv) Aktualisieren dieser optionalen Header-Daten durch Caching zusätzlicher Erweiterungs-Header-Daten, die durch serielles Durchlaufen aller zusätzlichen Erweiterungs-Header des Folgepakets erhalten wurden.
  10. Verfahren gemäß Anspruch 1 einschließlich des Schritts zum Erkennen von Paketen mit Hop-für-Hop- und Weiterleitungs-Erweiterungs-Headern und zum Ermitteln, ob die Durchführung der Schritte b) und c) für solche Pakete erforderlich ist.
  11. Verfahren gemäß Anspruch 7, wobei Schritt iv) nicht durchgeführt wird, wenn dieses Folgepaket den gleichen Cache-Schlüssel hat, aber die optionalen Header-Daten zu diesem Cache-Schlüssel nicht den optionalen Headern dieses Pakets entsprechen.
  12. Verfahren gemäß Anspruch 11, wobei die Erkennung, dass der Cache dem Paket nicht entspricht, manuell aktiviert wird.
  13. Verfahren gemäß Anspruch 11, wobei die Erkennung, dass der Cache dem Paket nicht entspricht, auf der Basis von Ablaufbeobachtungen aktiviert wird.
  14. Verfahren gemäß Anspruch 1, wobei Informationen aus dem Header der oberen Schicht im Cache-Speicher abgelegt werden.
  15. Verfahren gemäß Anspruch 14, wobei die im Cache-Speicher abgelegten Informationen das Protokoll sowie die Identifikation des Quellen- und des Ziel-Ports umfassen.
  16. Verfahren gemäß Anspruch 1, wobei die Ergebnisse der Klassifizierung und der durchgeführten Suchen im Rahmen der regulären Paketverarbeitung im Cache-Speicher abgelegt werden.
  17. System für den Zugriff auf den Transport-Header von Paketen, die kein Feld für die Länge des Internet-Headers umfassen, dadurch gekennzeichnet, dass es Folgendes umfasst: Mittel zum Caching von Header-Daten, die die Länge der Erweiterungs-Header der Pakete angeben; Mittel als Reaktion auf einen Paket-Header mit Erweiterungs-Headern zum Aufbau eines Cache-Schlüssels für dieses Paket und zur Durchführung einer Cache-Suche für einen Cache-Eintrag entsprechend diesem Cache-Schlüssel; und Mittel, als Reaktion auf das Finden eines entsprechenden Cache-Eintrags, zum parallelen Lesen dieser Erweiterungs-Header, um die Felder des Headers der oberen Schicht zu erreichen und zu lesen.
  18. System gemäß Anspruch 17, wobei das Paket ein IPv6-Paket ist.
  19. System gemäß Anspruch 18, wobei die Mittel zur Durchführung einer Cache-Suche parallel Informationen aus dem Header untersucht, die zum Lesen eines ersten Erweiterungs-Headers verwendet werden.
  20. System gemäß Anspruch 19, wobei Mittel zum Lesen der Erweiterungs-Header die Header seriell durchlaufen, wenn kein Cache-Eintrag gefunden wird.
  21. System gemäß Anspruch 17, das Mittel umfasst zur Angabe, dass in bestimmten Situationen Daten im Cache-Speicher nicht zum Beschleunigen der Paketverarbeitung verwendet werden sollen.
  22. System gemäß Anspruch 17, das des Weiteren Mittel umfasst zum Ablegen der Informationen aus dem Header der oberen Schicht im Cache-Speicher.
  23. System gemäß Anspruch 22, wobei die Informationen im Header der oberen Schicht Informationen zum Protokoll sowie zu Ausgangs- und Ziel-Ports umfassen.
DE602004012210T 2003-10-24 2004-10-22 Verfahren and System für eine beschleunigte Paketverarbeitung Active DE602004012210T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US691515 2003-10-24
US10/691,515 US7571242B2 (en) 2003-10-24 2003-10-24 Method for accelerated packet processing

Publications (2)

Publication Number Publication Date
DE602004012210D1 DE602004012210D1 (de) 2008-04-17
DE602004012210T2 true DE602004012210T2 (de) 2009-03-12

Family

ID=34394547

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004012210T Active DE602004012210T2 (de) 2003-10-24 2004-10-22 Verfahren and System für eine beschleunigte Paketverarbeitung

Country Status (6)

Country Link
US (1) US7571242B2 (de)
EP (1) EP1526699B1 (de)
JP (1) JP2005130502A (de)
CN (1) CN1610338B (de)
AT (1) ATE388567T1 (de)
DE (1) DE602004012210T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512085B2 (en) * 2004-06-24 2009-03-31 International Business Machines Corporation Method for multicast tunneling for mobile devices
US8447898B2 (en) 2005-10-28 2013-05-21 Microsoft Corporation Task offload to a peripheral device
US7664088B2 (en) 2005-12-08 2010-02-16 Electronics And Telecommunications Research Institute Method for providing QoS using flow label in providing multimedia service in IPv6 network and system applying the same
US7552275B1 (en) * 2006-04-03 2009-06-23 Extreme Networks, Inc. Method of performing table lookup operation with table index that exceeds CAM key size
CN100576822C (zh) * 2006-08-23 2009-12-30 上海贝尔阿尔卡特股份有限公司 无线通信网络中的数据传输及解析方法及其装置
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
US20120047573A1 (en) * 2010-08-17 2012-02-23 Richard Jeremy Duncan Methods and apparatus for detecting invalid ipv6 packets
WO2012167477A1 (zh) * 2011-07-13 2012-12-13 华为技术有限公司 一种IPv6报文处理方法及装置
WO2013056447A1 (zh) * 2011-10-20 2013-04-25 华为技术有限公司 用于发送和接收IPv6数据包的方法和装置
US9531847B2 (en) * 2014-05-22 2016-12-27 International Business Machines Corporation Skipping and parsing internet protocol version 6 (IPv6) extension headers to reach upper layer headers
TW201919370A (zh) * 2017-11-03 2019-05-16 財團法人資訊工業策進會 網路品質控管系統及網路品質控管方法
CN109150584B (zh) * 2018-07-04 2022-02-25 北京中创腾锐技术有限公司 一种基于simd指令的为网络分组分类提供加速支持的方法
DK3618355T3 (da) 2018-08-27 2020-11-16 Ovh Systemer og fremgangsmåder til at drive en netværksindretning
PL3618389T3 (pl) 2018-08-27 2021-04-06 Ovh Systemy i sposoby obsługiwania urządzenia sieciowego
US10979542B2 (en) * 2018-08-28 2021-04-13 Vmware, Inc. Flow cache support for crypto operations and offload

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842040A (en) * 1996-06-18 1998-11-24 Storage Technology Corporation Policy caching method and apparatus for use in a communication device based on contents of one data unit in a subset of related data units
US6173364B1 (en) * 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US6084855A (en) * 1997-02-18 2000-07-04 Nokia Telecommunications, Oy Method and apparatus for providing fair traffic scheduling among aggregated internet protocol flows
US6356951B1 (en) * 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6483804B1 (en) * 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface
US6453360B1 (en) * 1999-03-01 2002-09-17 Sun Microsystems, Inc. High performance network interface
JP2002077262A (ja) * 2000-09-01 2002-03-15 Hitachi Ltd 情報中継装置
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
CN1150731C (zh) * 2002-02-01 2004-05-19 清华大学 基于内容可寻址存储器的高速路由查找系统
JP3952860B2 (ja) * 2002-05-30 2007-08-01 株式会社日立製作所 プロトコル変換装置

Also Published As

Publication number Publication date
CN1610338B (zh) 2011-04-27
ATE388567T1 (de) 2008-03-15
JP2005130502A (ja) 2005-05-19
EP1526699A1 (de) 2005-04-27
EP1526699B1 (de) 2008-03-05
US20050089030A1 (en) 2005-04-28
US7571242B2 (en) 2009-08-04
CN1610338A (zh) 2005-04-27
DE602004012210D1 (de) 2008-04-17

Similar Documents

Publication Publication Date Title
DE602004012210T2 (de) Verfahren and System für eine beschleunigte Paketverarbeitung
DE60222622T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE60300333T2 (de) Verfahren und Vorrichtung für ein flexibles Rahmenverarbeitungs und Klassifikationssystem
DE60202136T2 (de) Cache-eintrag-auswahlverfahren und -vorrichtung
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen &#34;bitmap&#34; datenstrukturen
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE60316696T2 (de) Verfahren zum Routen von Datenpaketen und Routing-Vorrichtung
DE602004011721T2 (de) Zugriffssteurungsmechanismus für Router
DE60109972T2 (de) Prioirtätsauswahlverfahren für ein Datenkommunikationsschalter
DE60026676T2 (de) Paketklassifizierungsautomat
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE60026229T2 (de) Verfahren und Vorrichtung für Klassifizierung von Datenpaketen
DE69937185T2 (de) Verfahren und vorrichtung zum paketbeförderungsnachschlagen mit einer reduzierten anzahl von speicherzugriffen
DE60214670T2 (de) Verfahren und vorrichtung zur leitweglenkungstabellenverwaltung
DE60103789T2 (de) Wiederabbildung von Prioritäten basierend auf einen virtuellen Bündelwert für eine Datenkommunikationsvermittlungsstelle
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE60129643T2 (de) Verfahren und Gerät für die Ermittlung vom längsten Prefixzusammenbringen in einem Kommunikationsnetz
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
EP2882144B1 (de) Verfahren und Filteranordnung zum Filtern von über einen seriellen Datenbus eines Kommunikationsnetzwerks in einem Teilnehmer des Netzwerks eingehenden Nachrichten
DE60018780T2 (de) Verfahren und vorrichtung zur erkennung von datenpaketen in echtzeit in dem anschluss einer netzwerkvermittlungsstelle
DE60311800T2 (de) Verfahren und vorrichtung zur verbesserung der netzwerkleitweglenkung
DE10058443A1 (de) Verfahren zum Klassifizieren von Datenpaketen
DE10012123A1 (de) Speicherzugriff im Ethernet
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE112011103561T5 (de) Netzwerkprozessor und Verfahren zum Beschleunigen der Datenpaket-Syntaxanalyse

Legal Events

Date Code Title Description
8364 No opposition during term of opposition