-
BEZUGNAHME AUF VERWANDTE
ANMELDUNGEN
-
Diese
Anmeldung nimmt die Priorität
der vorläufigen
US-Patentanmeldung Nr. 60/090,939 mit dem Titel „Network accelerator subsystem
based on single-chip network processor and interface protocol", eingereicht am
27. Juni 1998, in Anspruch. Diese Anmeldung nimmt ebenfalls die
Priorität
der US-Patentanmeldung Nr. 09/271,061 mit dem Titel „Two-dimensional
queuing/de-queuing methods and systems for implementing the same", eingereicht am
16. März
1999 (Anwaltsakte Nr. 19148-000200US), in Anspruch.
-
HINTERGRUND
DER ERFINDUNG
-
Diese
Erfindung betrifft allgemein Kommunikationssysteme und insbesondere
ein System zum Bereitstellen von Ressourcen und zum Abrechnen der
Verwendung dieser Ressourcen in einem Kommunikationsnetzwerk.
-
Das
Internet und neue Breitbandträgernetzwerke
entwickeln sich rasch zum Medium für große und unterschiedliche Kommunikationen
und für
den Handel. Beispielsweise stellen das Internet und verschiedene Breitbandträger bereits
eine ungeheuere Anzahl an Datenübermittlungen
zur Verfügung,
indem sie das World Wide Web (WWW bzw. das „Netz") unterstützen. Unter Verwendung der
Netzstandards sind Benutzer in der Lage, diskrete Mengen an Informationen
zu erhalten, typischerweise durch ein Zugreifen auf „Webseiten", deren Größe bzgl.
der zum Anzeigen einer Webseite benötigten Daten relativ klein
ist. Ein menschlicher Benutzer jedoch kann innerhalb einer Minute
viele Webseiten auswählen,
so dass sogar kleine Wartezeiten auf die Information jeder Webseite
nicht tolerierbar sein können.
Eine weitere Form des Datenzugriffs über das Internet bezieht sich
auf größere Dateien,
wie etwa Bilddateien, ausführbare
Dateien, etc. Die erhebliche Größe dieser Dateien
bedeutet oft, dass nicht erwartet wird, dass die Übertragung
einer Datei sehr schnell stattfindet. Demzufolge findet die Übertragung
bei einer niedrigen Priorität
statt, oft im „Hintergrund", während der
Benutzer andere Aufgaben verrichtet. Andere Arten von Datenübermittlungen
werden ohne menschliches Eingreifen durch einen Prozessor initiiert.
-
Andere
Arten der Übermittlung
bedingen sehr große
Mengen an Streaming-Daten über
einen ausgedehnten Zeitraum. Beispiele für diese Art von Daten sind
Sprach- und Videoübertragungen.
Es sei bemerkt, dass in diesen Fällen
das Internet für
das Handhaben von Datenverkehr in Anspruch genommen wird, der vorher
durch separate, dafür
bestimmte Infrastruktursysteme unterstützt worden ist, wie etwa das
Telefonnetz, das Funknetz oder Rundsendungs- oder Kabelfernsehnetze.
Es existieren noch weitere Arten von Daten-„Verkehr" in dem heutigen Internet. Ein Bereich
mit hohem Wachstum ist der elektronische Handel bzw. „e-commerce". Dieser benötigt letztendlich
Finanzinformationsübermittelungen
mit hoher Sicherheit und hoher Priorität. Firmen verwenden das Internet,
um Informationen zwischen Zweigbüros
oder voneinander entfernt befindlichen Angestellten, Datenbanken
oder den getrennten internen Netzwerken der Firmen zu übermitteln.
Zusätzlich
zu dem am Menschen ausgerichteten Verkehr gibt es Kopfverkehr beim
Handhaben der Benachrichtigungsprotokolle, automatisierte bzw. Maschine-zu-Maschine-Kommunikationen,
etc.
-
Einige
der oben dargelegten Verkehrsarten benötigen eine niedrige Priorität. Beispielsweise
erwarten die meisten Menschen, dass die Übertragungszeit einer großen Datei
in Abhängigkeit
von dem gesamten Internetverkehr stark variieren kann. Andererseits
würde ein
Kunde, der das Internet für
Echtzeittelefonkommunikationen nutzt, sehr wütend werden, wenn der Dienst
keine hohe Qualität
aufweisen würde
oder ungleichmäßig wäre. Demnach
ist es wünschenswert,
einem Benutzer der Internettelefonie einen bestimmten Dienstgrad
oder eine Bandbreite zu garantieren. Ein weiteres Problem ist die
Datensicherheit. Einige Informationen, wie etwa Finanzübermittlungen,
sensible oder geschützte
Daten, müssen
unter Umständen
unterschiedlich behandelt werden, um Authentizität und Sicherheit sicherzustellen.
Die Kunden, seien es Unternehmen, Bildungseinrichtungen oder Einzelpersonen,
wissen am besten um ihre Bedürfnisse
hinsichtlich der Informationsbandbreite und der Sicherheit.
-
Angesichts
der wachsenden Bedeutung des Internets als Kommunikations- und Handelssystem
ist es erstaunlich, festzustellen, dass das Internet sehr dürftige Mechanismen
zum Sicherstellen von Informationslieferraten bzw. „Bandbreite" für unterschiedliche
Verkehrsarten oder für
unterschiedliche Nachrichtenkommunikationen zur Verfügung stellt.
Geräte
wie etwa Switches (Weichen), Router (Vermittlungsknoten), Hubs (Netzknoten),
Backbones (Basisnetze), Gateways (Netzübergänge) und andere Geräte, die
Informationen über
das Internet leiten oder übermitteln,
können
die Information, die sie senden, kaum zu etwas mehr als einen rudimentären Grad
differenzieren. Zusätzlich
stellt das heutige Internet keinen effizienten Mechanismus zum Überwachen
des Informationsflusses durch Übermittlungsgeräte wie etwa
Router, Switches, Server oder der physischen Verbindungen selbst
zur Verfügung.
Dies bedeutet kurz gesagt, dass das Internet nicht nur keine flexible
oder präzise
Zuweisung von Bandbreiten zur Verfügung stellt, sondern dass es
sogar, auch wenn eine solche Zuweisung erreicht werden könnte, keinen
Weg gibt, auf dem ein Internetdienstanbieter („ISP = Internet Service Provider") oder „Träger" bestellte und maßgeschneiderte
Dienste für
Kunden berücksichtigen
und dadurch berechnen könnte.
-
Während das
Internet und seine zugehörigen
Protokolle allgemein erfolgreich in der Lage waren, mit der gewaltigen
Anzahl von Benutzern, zu deren Handhabung es in Anspruch genommen
wird, und der Menge an Informationen, zu deren Übermittelung es verwendet wird,
zu skalieren, stellt das Internet in verschiedenen Bereichen keine
effizienten und effektiven Handels- und Unternehmensinfrastrukturen
für viele
herkömmliche Handels-
und Kommunikationsansätze
zur Verfügung,
die es ersetzen soll.
-
Internetdienstanbieter
(ISPs) versuchen den Benutzern transparente Dienste zu liefern.
Benutzer möchten
beispielsweise Sprachinformationen übermitteln, im Internet surfen,
Produkte erwerben und andere Informationsbeeinflussungen über eine
einzige physische Verbindung mit einem Hauptinternet-„Backbone" durchführen, die
für den
Benutzer transparent ist. Andere Benutzer können mit anderen Informationsformen wie
etwa Video, großen
Datenbankendownloads, etc. befasst sein. Alle diese Benutzer (es
kann tausende über eine
einzelne Verbindung geben) können
zeitweise Übermittlungen
von Informationen mit hoher und mit niedriger Bandbreite erzeugen
und benötigen.
Ferner machen die Unterschiede in den Datenübermittlungen für jeden
der unterschiedlichen Informationstypen multipliziert mit der großen Anzahl
an Benutzern den Verkehrsfluss durch die physische Verbindung höchst ungleichmäßig und
unvorhersagbar.
-
Angesichts
dieses zerstückelten
Verkehrs ist es für
Diensteanbieter wünschenswert,
in der Lage zu sein, den Verkehr so zu regulieren, dass die Verbindungsbenutzung
maximiert wird und der Verkehr überwacht wird,
so dass er hinsichtlich seines Wertes in Rechnung gestellt werden
kann. Mit anderen Worten möchte
ein Diensteanbieter die maximale Datenrate bzw. Bandbreite, die über die
Verbindung fließen
kann, aufrechterhalten und für
so viele unterschiedliche Dienste wie möglich Rechnung stellen. Versuche,
dies zu bewerkstelligen, waren jedoch weitgehend nicht erfolgreich,
da jedes Überwachen
und Steuern des Netzwerkverkehrs Verzögerungen bei der Übermittlung
der Informationen verursacht. Derartige Verzögerungen können harmlos bis verhängnisvoll
in Abhängigkeit
von der Art der übermittelten
Informationen reichen. Aus diesem Grunde war eine Unterauslastung
von Verbindungen für
Internetverkehr die Regel.
-
Zusätzlich zum
Maximieren des Durchsatzes einer Verbindung sind Diensteanbieter
auch daran interessiert, unterschiedliche Dienstgrade für unterschiedliche
Kunden zur Verfügung
zu stellen. Dieser Wunsch stammt von den herkömmlichen unternehmerischen
Ansätzen.
-
Beispielsweise
ist bei einem herkömmlichen
Telefonsystem eine Telefongesellschaft in der Lage, einem Benutzer
auf Telefonleitungsbasis, auf Anrufbasis, auf Merkmalsbasis (z.B.
Anklopfen), etc. Rechnung zu stellen. Ferner werden Telefonleitungen
mit unterschiedlicher Kapazität
und unterschiedlichen Fähigkeiten zum
Handhaben von Sprach- oder digitalen Datenübermittlungen angeboten. Beispiele
sind POTS-Leitungen („POTS =
Plain Old Telephone System"/herkömmliches
(analoges) Telefonsystem), ISDN („ISDN = Integrated Services
Digital Network"/integrierendes
digitales Fernmeldenetz), T1-, T3- und andere Arten von Leitungen. Dies
stellt eine sehr genaue Weise für
eine Telefongesellschaft dar, einem Kunden einen Dienstgrad zur
Verfügung
zu stellen und entsprechend für
den zur Verfügung
gestellten Dienstgrad Rechnung zu stellen. Dies steht im Gegensatz
zum Internet, in dem jeglicher Kommunikationsverkehr von vielen
Quellen und viele Kommunikationsarten an einem Punkt durch eine
einzelne gemeinsame Verbindung oder wenige Verbindungen passen müssen.
-
Als
Beispiel kann ein großer
Netzwerkbetreiber ein OC-48-SONET-Backbone besitzen. Dieses Backbone
kann Zweiweg-Kommunikationen bei 2,4 Gigabit pro Sekunde in jede
Richtung unterstützen.
Kein einzelner Dienst bzw. keine einzelne Anwendung könnte diese
riesige Bandbreitenleitung ausfüllen.
Der Diensteanbieter jedoch kann Dienste „anhäufen", in dem er die Leitung für mehrere
Dienste zu verschiedenen Preisen zur Verfügung stellt, wie unten in Tabelle
1 gezeigt:
-
-
-
Um
alle Dienste der Tabelle 1 bei den gezeigten variablen Bitraten
zur Verfügung
zu stellen, müssen die
Sitzungen und Benutzer innerhalb des faseroptischen Strangs „versorgt" werden. Vorzugsweise
werden die Benutzer mit unterschiedlichen Dienstqualitäten auf
der Basis von Parametern versorgt, die in Echtzeit variieren. Diese
Parameter sind nur bekannt, wenn der Verkehr streng überwacht
und die Überwachungsergebnisse
an eine Art Rechnungsstellungssystem kommuniziert werden. Wie oben
erläutert,
ist jegliche Überwachung
und/oder Steuerung des Netzwerksverkehrs unerwünscht, insbesondere bei den
Arten von Datenübertragungen,
bei denen Verzögerungen
nicht akzeptierbar sind. Beispielsweise benötigt eine Sprach- und Videodatenübertragung
im Streamingverfahren hochkonstante Datenströme.
-
Idealerweise
sollte das Versorgen bzw. Bereitstellen in mehreren Schichten stattfinden,
die parallel zu der Architektur der heutigen Internets sind. Die
bestehende Architektur des Internets ist diejenige, die von der ISO
(„ISO
= International Standards Organisation"/Internationale Organisation für Standards)
vorgeschlagen wurde, welche die OSI-Netzwerkfolge („OSI =
Open Systems Interconnection"/Verbindung
für offene
Systeme) um 1980 entwickelt hat.
-
OSI-Siebenschichten-Modell
-
Die
ISO entwickelte OSI in den 80er Jahren des vergangenen Jahrhunderts.
Das Netzwerksystem nach dem OSI-Modell ist in Schichten unterteilt.
Innerhalb jeder Schicht implementieren eine oder mehrere Einheiten
deren Funktionalität.
Jede Einheit interagiert auf direkte Weise nur mit der unmittelbar
unter ihr liegenden Schicht und stellt Funktionalitäten zur
Verwendung durch die über
ihr liegende Schicht zur Verfügung.
Protokolle ermöglichen,
dass eine Einheit in einem Host mit einer entsprechenden Einheit
in der gleichen Schicht in einem entfernten Host interagiert. Die
sieben Schichten der OSI-Basisreferenzmodells sind in Tabelle II
gezeigt. Diese sind:
Physische Schicht: Diese Schicht beschreibt
die physikalischen Eigenschaften der verschiedenen Kommunikationsmedien
sowie die elektrischen Eigenschaften und die Interpretation der
ausgetauschten Signale, das heißt,
die Art des Kabels, des Verbinders und/oder des Abschlussverfahrens.
Datenverbindungsschicht:
Diese Schicht beschreibt die logische Organisation von Datenbits,
die auf einem bestimmten Medium übertragen
werden, wie etwa die Rahmen-, Adressierungs- und Prüfpakete.
Netzwerkschicht:
Diese Schicht beschreibt, wie eine Reihe von Austauschoperationen über verschiedene
Datenverbindungen Daten zwischen zwei beliebigen Knoten in einem
Netzwerk befördern
kann, wie etwa die Adressierungs- und Routingstruktur des Internets.
Transportschicht:
Diese Schicht beschreibt die Qualität und die Eigenart der Datenlieferung.
Beispielsweise definiert diese Schicht, ob und wie wiederholte Übertragungen
verwendet werden, um eine Datenlieferung sicherzustellen.
Sitzungsschicht:
Diese Schicht beschreibt die Organisation von Datensequenzen, die
größer als
die von niedrigeren Schichten behandelten Pakete sind. Beispielsweise
beschreibt diese Schicht, wie Anfrage- und Antwortpakete bei einem
entfernten Funktionsaufruf paarweise angeordnet werden.
Präsentationsschicht:
Diese Schicht beschreibt die Syntax der Daten, die übermittelt
werden. Beispielsweise beschreibt diese Schicht, wie Fließkommazahlen
zwischen Hosts mit unterschiedlichen mathematischen Formaten ausgetauscht
werden können.
Anwendungsschicht:
Diese Schicht beschreibt, wie die reale Arbeit tatsächlich gemacht
wird, etwa Dateisystemoperationen.
-
Verkehr,
der diese Backbones durchquert, muss am Rand bzw. Abschluss durch
dieses Modell von Schicht 1 zu Schicht 7 verarbeitet werden. Die
Informationen in diesen Schichten sind extrem detailliert und jeder
Paketkopf enthält
zahlreiche Felder, die die Werte der mit jeder Schicht assoziierten
Information abbilden. Der Großteil
der Vielschichtverarbeitung wird üblicherweise in Software implementiert,
wie in Tabelle II gezeigt.
-
-
-
Es
existieren jedoch Probleme bei den heutigen Versuchen, eine Breitbandvielschichtverarbeitung durchzuführen. Ein
erstes Problem besteht darin, dass die heutigen Systeme keinen Bereitstellungsgrad
zur Verfügung
stellen, der es ausreichend ermöglicht,
dass man sich auf das Internet hinsichtlich vieler Geschäftserfordernisse
oder Arten von Kommunikationsdiensten verlassen könnte. Eine
detaillierte Überwachung
der Verkehrsflusses, einem bestimmten Kunden zuordenbar, sollte
einem Diensteanbieter zur Verfügung
gestellt werden, so dass Paradigmen ähnlich der herkömmlichen
geschäftlichen
Verwertung von Kommunikationsressourcen (z.B. Telefon, Kabelfernsehen,
etc.) aufrecht erhalten werden können.
Ein Bereitstellungssystem sollte neu konfigurierbar sein, um den
veränderlichen
Bedürfnissen
der Kunden und der veränderlichen
Verfügbarkeit
der Ressource Rechnung zu tragen. Versuche im Stand der Technik,
insbesondere softwarebasierte Herangehensweisen, waren weder effizient,
detailliert, zur Rechnungsstellung geeignet noch schnell genug und verhindern
demnach das Maximieren des Internetverkehrs. Ein Bereitstellungssystem,
oder eine Bereitstellungsmaschine, sollte eine „Drahtgeschwindigkeit" und transparente
Bereitstellungs-, Sicherheits-, Überwachungs-
und Steuerfunktionen für
Hunderttausende von gleichzeitigen Benutzerdienstegraden ohne eine
Güteverschlechterung
zur Verfügung
stellen.
-
Die
WO 98/28939 offenbart ein Verfahren zum Einreihen von Verkehr in
eine Warteschlange für
eine Übertragung,
wobei Pakete auf der Basis von QOS-Anforderungen („QOS =
Quality of Service"/Dienstequalität) verteilt
werden, die durch die dem Verkehr zugewiesene Klasse spezifiziert
sind.
-
ABRISS DER
ERFINDUNG
-
Gemäss der vorliegenden
Erfindung gibt es ein Verfahren zum Bereitstellen von Ressourcen
in einem Kommunikationsnetz, wie es in dem zugehörigen unabhängigen Anspruch definiert ist,
auf den nun ebenfalls Bezug genommen werden soll. Ausführungsformen
der vorliegenden Erfindung sind in den zugehörigen abhängigen Ansprüchen definiert,
auf die nun ebenfalls Bezug genommen werden soll.
-
Die
Erfindung beinhaltet die Verwendung einer „Bereitstellungsmaschine", die eine Hochgeschwindigkeitsidentifikation,
-analyse und -verarbeitung von Informationen in einem Netzwerk durchführt. Die
Bereitstellungsmaschine ermöglicht
es, dass Regeln angewendet werden, um Netzwerkressourcen zuzuweisen,
wie etwa Bandbreite, um eine bestimmte Güte zu erreichen. Dies ermöglicht es,
dass die Bereitstellungsmaschine dazu verwendet werden kann, um
Information zu übermitteln,
zu überwachen
und zu steuern, die durch sie fließen, wie etwa Datenpakete.
Bei einer Ausführungsform
ist die Bereitstellungsmaschine mit einem extrem schnellen Mechanismus
zum Handhaben einer Routing- und Datenflussbeeinflussung der Pakete
versehen. Dies ermöglicht
eine schnelle Verarbeitung der Informationseinheiten, wie etwa Pakete,
mit „Drahtgeschwindigkeit" zu bestimmten, garantierten
Flüssen
und virtuellen Schaltkreisen in Echtzeit. Eine bevorzugte Ausführungsform
offenbart eine dedizierte Architektur zum Verarbeiten des Datenverkehrs.
Die dedizierte Architektur verwendet variable Abschnitte von Paketkopfinformationen,
um Verkehrstypen zu identifizieren. Die Typen werden auf eine Dienstklasse
abgebildet, die bereits existiert oder die erzeugt werden kann,
um eine Bandbreitenanforderung eines Verkehrstyps einzuhalten. Dann
werden vordefinierte Regeln basierend auf Kundenbedürfnissen,
Diensteanbieterrichtlinien, Dienstgradübereinkünften („SLA = Service Level Agreement"), Bandbreitenverfügbarkeit,
etc. angewendet. Dies ermöglicht
es, dass die Verwendung von Datenfeldern von Schicht 1 bis Schicht
7 die Basis zum Bereitstellen, zur Sicherheit, zum Überwachen
und zur Steuerung eines Paketflusses bei voller Leitungsgeschwindigkeit
bildet.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Beispiel eines Computersystems, das zur Verwendung mit der vorliegenden
Erfindung geeignet ist;
-
2 zeigt
Untersysteme eines Computersystems;
-
3 zeigt
ein verallgemeinertes Diagramm des Internets;
-
4 veranschaulicht
den Prozess des vorbereitenden Zusammensetzens eines Pakets vor
dem Übermitteln
des Pakets von einer Quelle zu einem Ziel;
-
5 veranschaulicht
den Prozess des Extrahierens von Informationen aus einem Paket;
-
6 veranschaulicht
detaillierter einen Paketkopf und Nutzlast;
-
7 veranschaulicht
das Kopfformat für
Schicht 4;
-
8 veranschaulicht
das Kopfformat für
die Schichten 2 und 3;
-
9 stellt
eine konzeptionelle Veranschaulichung des Bereitstellens eines Breitbandstromes
gemäß der vorliegenden
Erfindung dar;
-
10 zeigt
die Bereitstellungsmaschinenarchitektur; und
-
11 veranschaulicht
weitere Details der Verarbeitung der Bereitstellungsmaschine.
-
BESCHREIBUNG
BESTIMMTER AUSFÜHRUNGSFORMEN
-
Als
erstes wird Hardware beschrieben, die zur Verwendung mit der vorliegenden
Erfindung geeignet ist. Als nächstes
werden einige unternehmerische Vorteile der detaillierten Bereitstellung,
der Überwachung und
der Steuerung erläutert,
wie sie von der vorliegenden Erfindung zur Verfügung gestellt werden. Schließlich werden
Details der Architektur einer bevorzugten Ausführungsform der Bereitstellungsmaschine
offenbart.
-
Hardware-
und Netzwerkbeschreibung
-
1 zeigt
ein Beispiel eines Computersystems, das zur Verwendung mit der vorliegenden
Erfindung geeignet ist. In 1 beinhaltet
ein Computersystem 1 eine Anzeige 3, einen Anzeigeschirm 5,
ein Gehäuse 7,
eine Tastatur 9 und eine Maus 11. Die Maus 11 umfasst
Maustasten 13. Das Gehäuse 7 nimmt
zusätzliche Komponenten
(nicht abgebildet) auf, wie etwa eine CD-ROM (CD-ROM = Compact Disk-Read-Only-Memory/Kompaktdisk-Nurlesespeicher),
eine Festplatte, etc. 1 ist nur ein Beispiel eines
Computers, namentlich eines Personalcomputers, der zur Verwendung
mit der Erfindung geeignet ist.
-
2 zeigt
Untersysteme des Computersystems 1 der 1.
-
In 2 sind
in Block 100 Untersysteme gezeigt, die sich innerhalb des
Gehäuses 7 des
Computersystems der 1 befinden. Die internen Untersysteme
umfassen einen seriellen Anschluss 102, eine Netzwerkschnittstelle 105,
einen I/O-Controller 106, einen Systemspeicher 107,
einen Zentralprozessor 108 und einen Anzeigeadapter 111.
-
Diese
Untersysteme können
miteinander kommunizieren und, am wichtigsten, mit dem Zentralprozessor 108 über den
Bus 115. Demnach kann der Zentralprozessor 108 Informationen
zu und von beispielsweise einer Festplatte 104 übermitteln.
Weitere Geräte
wie etwa ein Anzeigemonitor koppeln schnittstellenmäßig an den
Bus 115 über
den Anzeigeadapter 111. Ein relatives Zeigegerät wie etwa
eine Maus, ein Trackball, etc. können
mit dem Bus 115 über
eine serielle Schnittstelle 102 koppeln. Manche Geräte, wie
etwa eine Tastatur, koppeln schnittstellenmäßig direkt mit dem Bus 115.
-
Es
sei bemerkt, dass, obwohl in den 1 und 2 eine
bestimmte Hardware beschrieben wurde, viele Arten von Hardwarekomponenten
für ein
typisches Computersystem verwendet werden können. Beispielsweise muss ein
Benutzereingabegerät
nicht auf eine Tastatur und eine Maus beschränkt sein, sondern kann einen
Trackball, ein Digitalisiertablett, einen berührungsempfindlichen Bildschirm,
ein Mikrophon, etc. umfassen. Ferner muss ein Computersystem nicht
alle der in den 1 und 2 dargestellten
Komponenten und Subsysteme umfassen. Beispielsweise haben einige
Computer, die keine Benutzereingaben erhalten müssen, keine Benutzereingabegeräte. Oft
ist ein Anzeigegerät
für solche
Computer nicht notwendig, die reine Datenverarbeitungsfunktionen
oder Kommunikationsfunktionen durchführen. Untersysteme wie etwa
ein Graphikbeschleuniger, eine Soundkarte, etc. können enthalten
sein, während
einige der in 2 gezeigten Untersysteme weggelassen
werden können.
Im Allgemeinen kann ein beliebiger Typ eines Verarbeitungssystems oder
Prozessors zur Verwendung mit der vorliegenden Erfindung geeignet
sein.
-
3 zeigt
ein verallgemeinertes Diagramm des Internets.
-
In 3 sind
verschiedene Benutzer mit dem Internet über lokale Server verbunden.
Diese Server können
eine Software ausführen,
eine Routingfunktion zur Verfügung
stellen, die bestimmt, wohin Information gesendet werden sollte,
die an dem Server empfangen wird. Alternativ hierzu können Geräte wie etwa
Router verwendet werden, um diese Funktionen durchzuführen. Demnach
stellen, obwohl die Geräte
der
-
3 als „Server" gekennzeichnet sind,
sie tatsächlich
eine beliebige Art der Verarbeitung und Verbindung, die zur Verwendung
in einem Netzwerk geeignet ist, dar.
-
In 3 sind
verschiedene Benutzer-Computersysteme gezeigt. Diese sind üblicherweise
mit einem lokalen Server oder mit einem anderem Gerät verbunden,
um Informationen zur Verfügung
zu stellen und zum Verwalten der Übermittlung von Informationen über ein
lokales Netzwerk. Der lokale Server oder das lokale Netzwerk sind
an das Internet gekoppelt, das viele andere Server, Router, Netzwerkprozessoren,
Hubs, Switches, etc. umfasst. Die Verbindung von Servern und Benutzercomputern
untereinander, die das Internet umfasst, kann eine beliebige Form
annehmen. Die physischen Verbindungen, die dazu verwendet werden,
derartige Benutzerverbindungen zu implementieren, können beispielsweise Übertragungen über eine
feste Verdrahtung, eine faseroptische Übertragung, eine elektromagnetische Übertragung,
etc. sein. Im Allgemeinen kann eine beliebige Art von Kommunikationstechnologie
verwendet werden, um das Netzwerk zu implementieren, innerhalb dessen
die Verarbeitung der vorliegenden Erfindung abläuft. Das Verarbeiten der vorliegenden
Erfindung – das
unten beschrieben wird – kann
auch an beinahe jedem beliebigen Punkt in dem Netzwerk durchgeführt werden.
Obwohl speziell Bezug genommen wird auf eine Ausführungsform
der Erfindung, die zur Verwendung im Internet geeignet ist, ist
es unmittelbar ersichtlich, dass die Erfindung zur Verwendung mit
einem beliebigen System angepasst werden kann, bei dem es eine Übermittlung
von Informationen gibt. Beispielsweise können ein lokales Netzwerk („LAN =
Local Area Network"),
Speichersysteme wie etwa eine redundante Anordnung preisgünstiger
Platten (RAID), Voice Gateway Residential Access (Sprachschnittstellenzugang
für Zuhause)
oder andere Kommunikationssysteme durch Verwendung der vorliegenden
Erfindung verbessert werden.
-
Im
Allgemeinen kann eine Breitbandkommunikation im Internet von einem
beliebigen Punkt innerhalb des Internets zu einem anderen Punkt
stattfinden, solange die Punkte über
das Internet oder das Trägernetzwerk
kommunizieren. Beispielsweise kann ein Prozessor Informationen zu
einem anderen Prozessor senden. Diese Prozessoren können sich
in einem Computersystem eines Endbenutzers befinden, sie können sich
in einem Servercomputersystem, in einem Speichersystem, einem Gerät der Unterhaltungselektronik
oder einem anderen Gerät
befinden. Der Begriff „Prozessor", wie in dieser Beschreibung
verwendet, umfasst eine beliebige Stelle, an der eine Funktion oder
ein Verarbeiten von oder mit Informationen durchgeführt wird.
Eine derartige Funktion kann eine Datenbankoperation, eine mathematische
Operation, eine Übermittlung,
ein Speichern oder ein Zwischenspeichern in einer Warteschlange
von Informationen, etc. sein. Üblicherweise
benötigt
das Verarbeiten einen Prozessor in der Form eines Computers, eines
Mikrocomputers oder einer andere Schaltung, die arithmetische und/oder
logische Funktionen mit den Daten ausführt. Es kann jedoch eine beliebige Art
von Gerät
oder Schaltung, das/die eine beliebige Funktion oder einen beliebigen
Prozess mit Daten durchführt,
als Prozessor betrachtet werden.
-
Das
Internet übermittelt üblicherweise
Informationen in der Form von „Paketen". Die Protokolle,
die zum Übermitteln
von Paketen verwendet werden, beinhalten das Übertragungssteuerungsprotokoll/Internetprotokoll
(„TCP/IP
= Transmission Control Protocol/Internet Protocol"). Ein Paket ist
lediglich eine vordefinierte Größe oder
Menge an Informationen, die übermittelt
und als eine Einheit in dem Übermittlungsprozess
behandelt wird, der von den Protokollen bestimmt wird. Beispielsweise
kann das Paket 512 Bytes lang sein. Gewöhnlich benötigt ein Objekt, wie etwa ein
Dokument, eine Datei oder eine andere Informationseinheit, mehrere
oder viele Pakete, um die gesamten Informationen zu übermitteln.
Ein Teil der Informationen wird mit jedem Paket über das Internet gesendet.
Es muss nicht jedes Paket bei der Übermittlung dem gleichen Pfad
folgen. Pakete werden während
mehrerer Übermittlungen
unabhängig
behandelt, so dass ein Paket, das vor einem anderen Paket gesendet
wurde, nicht notwendigerweise vor dem später gesendeten Paket empfangen
werden muss. Das Paketübermittlungsprotokoll
behandelt Aspekte der Übermittlung,
wie etwa das Sicherstellen, dass Pakete auf richtige Weise zu den
ursprünglichen
Informationen zusammengesetzt werden, der Fehlererfassung und Wiederherstellung,
etc.
-
Jedes
Paket enthält
im Wesentlichen zwei Datenkomponenten. Die erste Komponente ist
der Paketkopf. Dieser umfasst Informationen zur Routenplanung („Routing") des Pakets an andere
Stellen im Netzwerk, wie etwa zu einem Prozessor. Die zweite Komponente
eines Pakets ist die Paketnutzlast, auch als Dienstdateneinheit
(„SDU
= Service Data Unit")
bezeichnet. Die Nutzlast ist ein Teil der Informationen, die übertragen werden.
-
Eine
Datenquelle ist ein beliebiger Punkt im Netzwerk, der eine Datenübermittlung
an ein Ziel oder einen Endpunkt initiiert. Um von der Datenquelle
zu dem Endpunkt zu kommen, durchlaufen die Informationen in der
Form von Paketen gewöhnlicherweise
Zwischenpunkte, die eine Verarbeitung an den Paketen durchführen. Diese
Systeme umfassen oder sind Prozessoren. Um die Informationen über die
Zwischensysteme hinweg weiterzuleiten, wird der Paketkopf verwendet,
um jedem Prozessor in den Zwischensystemen, die Routen- oder Übermittlungsfunktionen
durchführen,
mitzuteilen, wohin das nächste
Paket zu senden ist. Das ISO-Modell erlaubt es, dass Ent scheidungen
durch den Prozessor basierend auf Schicht-2-Informationen („datalink"-/Datenverbindung) in Unternehmensswitches
oder in einer Schicht-3-(Netzwerk-)-Schicht in WAN-Router-Systemen („WAN =
wide-area network"/Weitverkehrsnetz)
getroffen werden. Das ISO-Modell erlaubt es, dass Zwischenprozessoren
die Paketübermittlung
zu einem gewissen Grad bzgl. eines Paketziels, einer durchlaufenen
Route, einer Priorität,
einer Quelle, etc. kennzeichnen oder steuern.
-
4 veranschaulicht
den Prozess der Zusammensetzung eines Pakets in Vorbereitung einer Übermittlung
des Pakets von einer Quelle zu einem Ziel. In jeder der N-Schichten können Protokollsteuerinformationen
den von der höheren
Schicht empfangenen Informationen angehängt werden. Diese Kombination
aus Kopf und Nutzlast wird als Nutzlastabschnitt in der nächsten Schicht
verwendet, die zusätzlich
Protokollsteuerinformationen anhängen
kann, usw.
-
5 veranschaulicht
den Prozess, der an dem Ziel durchgeführt wird, an dem die ursprünglichen
Informationen (oder PDU) von den verschiedenen PCI-Anhängen abgelöst werden.
Demnach enthält
in den Zwischensystemen, die das Paket von der Quelle zum Ziel übermitteln,
jedes Paket tatsächlich
Protokollsteuerinformationsköpfe,
die den Paketkopf umfassen. Der Rest des Paketes ist die Paketnutzlast.
-
6 veranschaulicht
detaillierter den Kopf und die Nutzlast eines Pakets.
-
In 6 umfasst
der Paketkopf 140 Informationen, die von unterschiedlichen
Schichten angehängt worden
sind. Die Nutzlast 142 ist der Rest des Pakets. Jede Schicht
addiert einige Bytes zu dem Paketkopf, um spezifische Schichtinformationen
zur Verfügung
zu stellen. Dieser Verkettungs- oder Kopffeld-„Verflachungs"-Prozess ergibt einen
64 Byte großen
Kopf, der dazu verwendet wird, das Paket durch ein Netzwerk zu seinem
Ziel zu befördern.
Der Paketkopf kann Informationen von einer beliebigen der Schichten
1–7 bzgl. des
Routings und der Steuerung des Pakets oder andere Informationen
enthalten.
-
7 veranschaulicht
das Kopfformat für
Schicht 4.
-
8 veranschaulicht
das Kopfformat für
die Schichten 2 und 3.
-
Wie
in den 7 und 8 gezeigt, sind in dem Schicht-4-Feld
Informationen betreffend die Quelle/das Ziel, die Portadresse, die
Sequenznummer, die Paketlänge
und den Protokolltyp verfügbar.
Diese Felder sind beim Zuweisen von Portnummern (d.h. Servern)
an spezifische virtuelle Pipes der Benutzerdienstklassen in dem
Netzwerk nützlich,
so dass bestimmte Server eine höhere
Priorität
oder einen Lastausgleich besitzen können. Schicht-3-Daten stellen
Informationen zur Verfügung,
die zur Vorbereitung des Netzwerks für das Routing gehören. Schicht-2-Daten
stellen Informationen zur Verfügung,
die zu der Geräteadresse
und Portnummer in einem Switch gehören. Dies ist bei einer Arbeitsgruppenpriorisierung
und bei der Zuweisung von Bandbreiten nützlich. Die Schicht 5 (nicht
abgebildet) enthält
die HTTP-Netzadresse und -sitzung zu Bereitstellungszwecken. Es
sei bemerkt, dass, obwohl die Erfindung im Hinblick auf ein spezifisches
OSI-7-Schichtenmodell und im Hinblick auf Felder in den Köpfen dieses
Modells erläutert
wird, die Erfindung zur Verwendung in einer beliebigen Netzwerkarchitektur
angepasst werden kann. Die vorliegende Erfindung kann zur Verwendung
mit einer beliebigen Anordnung von Feldern, Werten und anderen Informationen
in einem Kopf, einer Nutzlast, einem Paket oder anderen „Informationseinheiten" in dem Netzwerk
angepasst werden.
-
Unternehmensmodell
für die
Bereitstellungsmaschine
-
Dieser
Abschnitt präsentiert
ein Beispiel, um die Vorteile der Erfindung im Hinblick auf das
Bereitstellen eines Geschäftsmodells
zum Unterstützen
von Netzwerkressourcen zu veranschaulichen. Netzwerkressourcen umfassen
die Bandbreite, die Latenz (d.h. die Zeit, die eine Informationseinheit
wartend bzw. in der Warteschlange gehalten wird, bevor sie übermittelt
wird), den Speicher, Prozessorzyklen, etc. Auch können „Qualitätsparameter", die eine Priorität, einen
Sicherheitsgrad oder andere Aspekte des Behandelns der Informationen
einführen,
als Ressourcen angesehen werden. Im Allgemeinen kann ein beliebiger
Aspekt der Netzwerkübermittlung,
der die Flussgeschwindigkeit von Informationen von einer Quelle
zu einem Ziel in dem Netzwerk beeinflusst, als eine Ressource im
Hinblick auf die vorliegende Erfindung betrachtet werden. Dies beinhaltet Ressourcen
wie etwa die Bandbreitenfähigkeiten
von Verbindungen, Unterverbindungen, virtuellen Verbindungen, Prozessoren,
Bussen oder anderen Geräten,
virtuelle Ressourcen wie etwa virtuelle Kanäle, Speicher, etc. und Kennzeichnungen
wie etwa Prioritäten,
Sicherheitsgerade oder andere Identifikatoren.
-
Die
Einheiten, die solche Ressourcen erzeugen, betreiben, steuern oder „besitzen", werden als Träger („Carriers") bezeichnet. Das
Unternehmensmodell, das durch die vorliegende Erfindung zur Verfügung stellt wird,
bietet den Trägern
eine große
Flexibilität
und Genauigkeit beim Zuweisen ihrer Ressourcen auf eine Weise, die
es ihnen erlaubt, die Ressourcenverwendung zu maximieren und für die Verwendung
der Ressourcen Rechnung zu stellen. In dem Beispiel und während dieser
ganzen Beschreibung wird üblicherweise
auf „Bandbreite" als die zugewiesene
Ressource Bezug genommen. Dies ist jedoch nur eine der vielen Ressourcen
unter der Steuerung eines Trägers,
die gemäß der vorliegenden
Erfindung zugewiesen werden können.
-
In
diesem Beispiel wird angenommen, dass ein Diensteanbieter eine Netzwerkbandbreite
in der Form einer Hochgeschwindigkeitsverbindung zum Internet besitzt.
Eine derartige Verbindung kann beispielsweise ein Internet-Backbone,
Hub, Router, Switch, Server oder ein anderer Mechanismus sein, der
an eine physische Verbindung wie etwa ein faseroptisches Kabel,
einen Funksender, ein fest verdrahtetes Kabel, ein Telefon- oder
Kabelfernsehennetzwerk, etc. gekoppelt ist. Das Ziel des Diensteanbieters
ist es, Kunden die Erlaubnis, die Bandbreitenressource des Diensteanbieters
zum Internet zu verwenden, zu verkaufen, zu verleihen („Leasing") oder auf andere
Weise davon zu profitieren.
-
Zu
diesem Zweck erlaubt es der Diensteanbieter bzw. Träger einem
Kunden, ein Dienstgüteübereinkommen
(„SLA
= Service Level Agreement")
zu spezifizieren. Der untenstehende beispielhafte SLA-Abschnitt spezifiziert
die folgenden Kundenwünsche:
- (1) Der Träger
muss Ethernet-LAN-Verkehr von LA nach NY unterstützen;
- (2) dem Nachrichtenverkehr von Geschäftsverantwortlichen muss Priorität eingeräumt werden;
- (3) einem Sitzungsverkehr zu der Intranet-Webseite des Kunden
und den zugehörigen
Webseiten und Intranets des Kunden muss Priorität eingeräumt werden;
- (4) Übertragung
von Sprachdaten in der Form von „Voice over IP"-Verkehr (Sprache-über-IP-Verkehr)
muss für
bis zu 100 Benutzer unterstützt
werden; und
- (5) erweiterter Speicherbereichsverkehr sollte mit niedrigerer
Priorität
behandelt werden.
-
Unter
Verwendung der Kundenerfordernisse in dem SLA kann der Träger USCs
(„USCs
= User Services Classes"/Benutzerdienstklassen)
auf eine Reihe von Wegen zuweisen. Ein derartiger Weg ist unten
in Tabelle III gezeigt:
-
-
Wie
in Tabelle III gezeigt, werden vier USCs erzeugt und mit 1 bis 4
durchnummeriert. Die USCs 1 bis 3 werden dazu verwendet, die von
dem Kunden bezeichneten Erfordernisse zu implementieren. Die USC
4 wird für
den sonstigen Verkehr verwendet, der nicht unter die von dem Träger festgelegten
Regeln, um die Erfordernisse des Kunden zu implementieren, fällt. Die
USC 2 kann in Abhängigkeit
von der Quelle-Ziel-Adresse oder
der Webseite eine unterschiedliche Priorität haben, d.h. wenn die gewünschte Webseite
eine des Betriebs oder eines zugehörigen Betriebs ist, bekommt
sie eine höhere
Priorität
als sonstiger allgemeiner Netzsurfverkehr gemäß der SLA-Regel 3 oben. Ein
Beispiel für
Regeln zum Maschenverarbeiten zur Implementierung der Prioritäten, die
von dem Träger
aufgestellt worden sind, ist unten in Tabelle IV gezeigt:
USC1
IF<TRAFFIC TYPE> is Sprache (z.B. Byte
47 = 10 H)
Then USC = 1
USC2
IF<Ethernet Verkehr> (z.B. Byte 22 = 1011010xB)
AND
IF<Geschäftsverantwortliche
Management> (z.B.
Bytes 9–12
sind > 01100101H)
AND
IF<zugehörige Webseite
des Kunden> (z.B.
Bytes 28 und 29 = 01XXH)
Then USC = 2
USC3
IF<SAN Extension> Where SAN is when
byte 34 is 0101111B
Then USC = 3
Else USC = 4
-
Wie
aus Tabelle IV ersichtlich ist, wird der gesamte Verkehr des Kunden
in eine Dienstklasse eingeordnet, die durch die USC 1, 2, 3 oder
4 definiert ist. USC 4 ist eine Auffang-Best-Effort-Dienstklasse.
Dies bedeutet, dass Verkehr, der nicht in die USC 1 bis 3 fällt, auf
Konformität
bezüglich
des allgemeinen SLA der USC 4 überprüft wird
(d.h. Verkehr, der eine Datenrate von nicht mehr als 100 Mbps und
einer Latenz von nicht weniger als 10 Millisekunden verkraftet),
die durch den Prozess vorkonfiguriert ist, oder alternativ hierzu
könnte er
einfach die gesamte verbleibende Bandbreite aufbrauchen. Die Maschenlogik
kann in ein FPGA („FPGA
= Field Programmable Gate Array"/frei
programmierbare Gatteranordnung) kompiliert werden und die Ausgabe kann
ein Steuerwort für
jedes Paket erzeugen. Dann wird ein inhaltsadressierbarer Speicher
(„CAM
= Content-addressable memory")
oder eine inhalts-adressierbare
Speicherdatenstruktur in einem Standardspeicher verwendet, um explizite
USC-Nummern für
jedes Paket zu Verfügung
zu stellen. Obwohl die bevorzugte Ausführungsform eine Hash-Funktion
verwendet, benötigen
einige Implementierungen keine Hash-Funktion. Beispielsweise wäre keine
Hash-Funktion für
den einfachen Regelsatz in Tabelle IV notwendig, der nur eine kleine Menge
von Bits in wenigen Feldern in dem Kopf betrachtet.
-
Andererseits
ist eine Hash-Funktion nützlich,
wenn es notwendig ist, die Adress- oder Wortgröße zu reduzieren, die dazu
verwendet wird, als ein Index oder als anderer Parameter zu fungieren,
um eine USC nachzuschlagen. Darüber
hinaus kann die Hash-Funktionalität dazu verwendet werden, Kollisionen
in großen Netzwerktopologien
aufzulösen.
Wenn eine Hash-Funktonalität
gewünscht
ist, kann jede im Stand der Technik bekannte Hash-Funktion angewandt
werden.
-
Sobald
eine USC einem Paket zugewiesen worden ist, wird auf die USC-MIB
(„USC-MIB = USC Management
Information Base"/USC-Verwaltungsinformationsbasis)
zugegriffen. Diese Datenstruktur, die in dem Prozessor selbst gespeichert
ist, enthält
Informationen, die mit den USC-Verkehrsparametern in Verbindung stehen.
Wenn eine USC-MIB nicht für
eine gegebene USC existiert, signalisiert der Prozessor dies dem
Netzwerk, öffnet
eine USC und erzeugt die USC-MIB. Das Paket wird dann für eine Übertragung
gemäß einem Scheduling-
oder Planungssystem, das in der USC-MIB festgelegt ist, in eine Warteschlange
gegeben. Der Planer berücksichtigt
die Priorität,
die dem Paket gemäß dem USC-MIB
zugewiesen ist. Anders ausgedrückt werden
Pakete für
eine Übertragung
gemäß dem Planertyp
und der Intervallge schwindigkeit des Planers in eine Warteschlange
gegeben und priorisiert, und der Planer stellt sicher, dass USCs,
die für
eine minimale Bandbreitengröße gekennzeichnet
sind, diese Bandbreite bekommen. Der Planer hindert Pakete auch
daran, in Verbindung mit einer USC gesendet zu werden, wenn der
virtuelle Kanal dieser USC die maximale Datenrate oder die Bandbreitenzuweisung
für eine
gewisse Zeitintervallseinheit überschritten
hat. In diesem Fall wird das verzögerte Paket in der nächsten Zeitintervalleinheit
gesendet, so dass die zugewiesene Bandbreite nicht durch den Kanal
dieses Pakets (USC) überschritten
wird.
-
Während des
Verarbeitens der Bereitstellungsmaschine können die Pakete in jeder USC
gezählt
werden. Die Paketzahlen werden in der entsprechenden USC-MIB gesammelt
und ausgelesen. Auf diese Weise kann die tatsächlich über die einem Kunden zugewiesene
USC gesendete Menge an Daten verfolgt werden. Dies stellt eine Rechnungsstellungsmöglichkeit
auf einer benutzungsabhängigen
oder paketabhängigen
Basis gemäß der tatsächlichen
Benutzung zur Verfügung.
Die USC-MIB stellt auch Statistiken für Kunden und in gleicher Weise
für den
Träger
zur Verfügung,
um die Kanalverwendung, die Benutzergewohnheiten sowie Überlauf-
und Ausfallbedingungen sowie die Frage, wieviel Bandbreite einem
Kanal zuzuweisen ist, zu analysieren. Detailliertere Statistiken
können
aufgezeichnet werden, insbesondere dort, wo die Bereitstellungsmaschine weitere
Felder als nur die Kopffelder verwendet, um Pakete zur Bereitstellung
oder Statistikerfassung zu unterscheiden. Wenn beispielsweise auf
bestimmte Informationstypen häufig über einen
bestimmten Kanal zugegriffen wird, kann es für den Träger nützlich sein, derartige Informationen
lokal zwischenzuspeichern („Cache") oder einen weiteren
Server dahingehend zu instruieren, die Informationen zwischenzuspeichern.
Es können
Benutzergewohnheiten, wie etwa der Grad, zu dem ein Benutzer über das
Internet einkauft, zu weitergehenden Marketing- oder Demografiezwecken
bestimmt werden. Eine typische Bereitstellungsmaschine handhabt
160.00–256.000
USCs. Leistungsgrade von Hunderttausenden von Megabit pro Sekunde
können
erreicht werden.
-
9 stellt
eine Konzeptveranschaulichung des Bereitstellens eines Breitbandstromes
gemäß der vorliegenden
Erfindung zur Verfügung.
-
In 9 werden
Informationseinheiten wie etwa Pakete auf einer oder mehreren Ebenen
analysiert. Eine beispielhafte Analyse ist in 9 veranschaulicht,
in der die Kopfinformationen der „Transport-IP"- Schicht einschließlich der „TCP-Port"- und „UDP-Port"-Werte verwendet
werden, um das Paket einer Unterverbindung oder einem Kanal innerhalb
einer physischen Verbindung, wie etwa einem faseroptischen Kanal, zuzuweisen.
Eine Vergrößerung der
physischen Verbindung zeigt konzeptionell, dass Unterverbindungen
auf unterschiedliche Weise organisiert werden können, um LAN-, VPN-, SAN- oder
Sprachverkehr zu behandeln. Die Größen- oder die Bandbreitenzuweisung
jeder Unterverbindung wird durch den Träger über die Regeln der Bereitstellungsmaschine
gemäß den Anforderungen
der Kunden gesteuert. Den Kunden wird dementsprechend, wie oben
erläutert,
Rechnung gestellt.
-
Bereitstellungsmaschinenarchitektur
-
10 zeigt
die Bereitstellungsmaschinenarchitektur. Zwei grundlegende Abschnitte
der Bereitstellungsmaschine 200 enthalten ein Zugreifen
auf Pakete des Datenstroms, ein Extrahieren von Kopfinformationen,
ein Anwenden von Regeln auf die Kopfinformationen, um eine Abbildung
auf eine Benutzerdienstklasse zu erzeugen, und schließlich ein Übertragen
der Nutzlast entsprechend des Kopfes über das Netzwerk.
-
In 10 stellt
der Datenstrom 202 den Netzwerkverkehr dar. Der gesamte
oder ein Teil dieses Verkehrs kann zum Verarbeiten auf die Bereitstellungsmaschine
der vorliegenden Erfindung umgeleitet werden. Es können unterschiedliche
Kriterien verwendet werden, um zu bestimmen, welche Pakete der Bereitstellungsmaschine
zugeleitet werden. Beispielsweise kann eine Vorselektion der Pakete
durchgeführt
werden, wobei lediglich Pakete eines vorbestimmen Adressbereichs,
eines Paketsequenzbereichs, etc zu der Bereitstellungsmaschine umgeleitet
werden. Die Pakete können
in die Bereitstellungsmaschine durch Prozesse innerhalb der Bereitstellungsmaschine „gezogen" („Pull") werden. Es können auch
Pakete durch das Hostsystem „geschoben" („Push") oder auf der Basis
eines vordefinierten Adressbereichs durch andere Geräte der Bereitstellungsmaschine
zugeleitet werden. Wenn die Bereitstellungsmaschine mit dem Verarbeiten
eines Pakets beginnt, bewegt sie die Paketnutzlast für eine temporäre Speicherung
in einen lokalen Speicher, während
sie den Bereitstellungsprozess unter Verwendung der durch den Paketkopf
zur Verfügung
gestellte Informationen und eines vordefinierten Regelsatzes durchläuft. Schritt 204 der 10 stellt
einen beliebigen Mechanismus zur Bereitstellung von Paketen an die
Bereitstellungsmaschine dar.
-
Das
Bewegen der Nutzlast des Pakets in den Speicher ist in Schritt 210 angedeutet.
Die Paketnutzlast wird in einem lokalen Bereitstellungsmaschinenspeicher
gespeichert, wie durch die Paketnutzlast 212 angezeigt.
Demnach wird die Nutzlast von dem Kopf zum Zweck einer effizienten
Verarbeitung der Kopfinformationen abgelöst, um das Paket auf eine USC
abzubilden. Es sei bemerkt, dass bei verschiedenen Ausführungsformen
der Erfindung die Informationseinheit, die verarbeitet wird, nicht
in Kopf- und Nutzlast separiert werden muss. Teile der Nutzlast
können
für den
Bereitstellungsprozess verwendet werden. Zusätzliche Informationen, wie
beispielsweise Daten, die speziell für das Bereitstellen zu beispielsweise
Routing-, Überwachungs-,
Sicherheits-, Steuer- oder anderen Zwecken zur Verfügung gestellt
werden, können
in der Informationseinheit enthalten sein, die bereitgestellt wird.
Im Allgemeinen dient Schritt 210 dazu, Informationen, die
nicht Teil des Bereitstellungskriteriums sind, von Informationen
zu trennen, die dazu verwendet werden, auf eine USC abzubilden.
In einem Extremfall wäre
es beispielweise wünschenswert,
dass alle Informationseinheiten bei dem Abbilden verwendet werden,
wodurch für
Schritt 210 dann keine Notwendigkeit mehr besteht.
-
Die
gespeicherte Paketnutzlast wird im Speicher gehalten, bis der Kanal
oder die USC, der/die dem Paket entspricht, bestimmt wurde.
-
Bei
der bevorzugten Ausführungsform
sind Paketköpfe
bis zu 64 Byte lang. In Schritt 214 wird die gewünschte Kopfinformation
durch eine dedizierte Schaltung zum Zwecke weiterer Verarbeitung
identifiziert. Die Anwendung des Regelsatzes findet in Schritt 218 statt,
wobei die Anwendung der vorbestimmten Regeln (der „Regelsatz") auf die Paketkopfinformationen
einen Steuerwortindex ergibt. Der Regelsatz kann mit einem Teilsatz
des 64 Byte großen
Kopfes in Abhängigkeit
von den Grenzen der Funktionalität
arbeiten. Kleinere Feldoperationen ergeben einfachere und möglicherweise
schnellere Maschenlogik- und Hashanforderungen. Der Regelsatz ist
ein Satz kompilierter HDL-Regeln („HDL = High Level Design Language"/Hochdesignsprache), welche
die Maschenlogik auf der Basis vordefinierter Regeln konfiguriert,
die durch den Netzwerkbetreiber, den Benutzer oder den Geräteausrüster aufgestellt
worden sind. Diese Regeln arbeiten auf verschiedenen Ebenen in dem
OSI-Modell und können
Regeln umfassen, die explizit hervorheben, welche Felder auf welchen Schichten
als Parameter zu verwenden sind, um Pakete auf verschiedene Benutzerdienstschaltungen
in dem Faserstrang abzubilden.
-
Wie
oben erläutert,
werden diese Regeln (durch einen Menschen oder eine Maschine) erzeugt,
um die Kundenanforderungen, das Design eines Trägers oder andere Anforderungen
der Ressourcenzuweisung zufrieden zu stellen. Diese Regeln können von
komplexen relationalen Logikregeln bis zu einfachen vergleichenden
Bitoperatoren reichen. Der Designkompromiss liegt in der Tiefe oder
in der Ausdehnung der Kopfsuche gegenüber der Verarbeitungsgeschwindigkeit
der Bereitstellungsmaschine.
-
Bei
einer bevorzugten Ausführungsform
können
die Regeln (und andere, für
die Verarbeitung der Breitstellungsmaschine relevanten Informationen)
durch Laden neuer Informationen und Regeln in die Bereitstellungsmaschine
geändert
werden. Ein derartiges Laden kann beispielsweise über das
Internet, durch eine andere Netzwerkverbindung oder einen dedizierten
Datenport stattfinden. Dies ermöglicht
ein dynamisches Neukonfigurieren der Bereitstellungsmaschine, so
dass die Ressourcenbereitstellung, die Routing-, Überwachungs-
und Steuerfunktionen modifiziert werden können. Dies ermöglicht es
auch, dass Dienstanbieter und Träger
neue Benutzer- und
Dienstklassen hinzufügen
können,
wenn neue Diensttypen eingeführt
werden.
-
Ein
schnelles und dynamisches Laden von Regeln und anderen Konfigurationsinformationen
ermöglicht
nicht nur eine Flexibilität
bei einem Verändern
der Konten (bzw. Accounts) der Kunden, sondern erlaubt auch eine
schnelle Fehlerbehebung. Wenn beispielsweise ein Strang oder eine
physische Verbindung zum Übermitteln
ausfällt,
kann sofort eine an einen anderen Strang gekoppelte Bereitstellungsmaschine
konfiguriert werden, um Verkehr zu übernehmen, der normalerweise
auf dem ausgefallenen Strang behandelt wird.
-
Das
Laden eines Regelsatzes aus einem Speicher, einem Datenport oder
mittels anderer Mittel ist in 208 gezeigt. Die Regeln existieren
dann in der Bereitstellungsmaschine bei 216, wo sie schnell auf
die Maschenüberlagerungsinformationen
(d.h. einen Teilsatz der Kopfinformation) bei 218 angewendet werden
können.
Es sind auch andere Herangehensweisen möglich. Auf die Regeln kann
von einer externen Quelle auf einer Bedarfsbasis zugegriffen werden.
Es kann einen dauerhaften Regelsatz geben, wie etwa einen Default-Regelsatz,
zusammen mit auswählbaren
Regelsätzen.
Regeln können
sogar die zu verarbeitende Informationseinheit begleiten, etwa wenn
die Nutzlast eines Pakets Regeln für das Bereitstellen umfasst.
-
Die
Ausgabe der Verarbeitung der Maschenüberlagerungs-Parsingregeln
ist ein Steuerwort/-index, der den Fluss und die Klasse des Pakets
darstellt, und zwar auf der Basis des Vergleichs des Paketes oder Flusses
durch die Maschenlogik. Beispielsweise kann ein Paket mit einer
begrenzten Maschenverarbeitung ein Steuerwort ausgeben, das nur
den virtuellen LAN-Identifikator oder den Ethernet-MAC-Identifikator
anzeigt, der zum Selektieren einer Benutzerdienstklasse verwendet
werden soll. Bei einem ausgefeilteren Maschenverfahren können bestimmte
MAC-Adressbereiche unterschiedliche Steuerwortwerte ergeben. Bei
einem ausgefeilterem Szenario können
die MAC-Adresse, der MAC-Bereich und die Schicht-4-HTTP-Adresse dazu
verwendet werden, um bestimmte Steuerwörter für diejenigen MAC-Adressen in
einer bestimm ten Gruppe zu erzeugen, die eine bestimmte (oder eine
Gruppe von bestimmten) Webseiten betrachtet.
-
Das
Steuerwort wird dann in einen inhaltsadressierbaren Speicher (CAM)
oder eine CAM-Datenstruktur 220 abgebildet, wo der Status
des Paketflusses identifiziert wird. Wenn in Schritt 228 die
Abbildungstabelle einen „Treffer" erzeugt, d.h., die
Benutzerdienstschaltung ist bereits aktiv, wird die USC einfach
an den Sender weitergeleitet, was es ermöglicht, dass die Paketnutzlast
der USC-Pipe beitritt. Ergibt sich ein Fehlen, richtet der Prozessor
eine neue USC auf der Basis der Latenz-, Bandbreiten- und der Qualitätsparameter
auf der Basis des Dienstgradübereinkommens
oder anderer durch den Träger
oder den Dienstanbieter definierter Kriterien ein. Der Hostprozessor-
oder die Netzwerkintelligenz führt
dann die Netzwerksignalgebung durch, erhält eine USC, baut eine Verbindung
und eine USC-MIB auf und weist schließlich das Paket, welches das „Fehlen" erzeugt hatte, dieser
USC und dieser USC-MIB zu. Alle nachfolgenden Pakete, die die Kriterien
erfüllen,
werden danach einen Treffer erzeugen. Dies kann mit generischen
Signalprotokollen wie etwa ARP („ARP = Address Resolution
Protocol"/Adressauflösungsprotokoll),
LES („LES
= LAN Emulation Server"/LAN-Emulationsserver),
IETF RFC 1477/1583, RSVP, etc. eingerichtet werden. Bei der bevorzugten
Ausführungsform
wird auf die Programmschaltungsregeln 206 durch die Bereitstellungsmaschine
zugegriffen, und sie werden zusammen mit den UPC-MIBs verwendet
(Schaltungsparameter 224), um Steuerwort-/-indexwerte einer
vorkonfigurierten Schaltung zuzuweisen.
-
Es
werden dann Benutzerdienstklassenummern verwendet, um einen USC-spezifischen Kopf
zu erzeugen. Der USC-Kopf kann eine virtuelle Schaltungsnummer in
einem ATM-Netzwerk, ein proprietäres
Paket-„Kennzeichen" („tag"), eine „Marke" („label") in einem MPLS-Netzwerk,
ein modifizierter Abschnitt des Internetprotokollkopfes, wobei die „Diffserv"- oder Servicetypbits
modifiziert sind, oder eine andere Kennzeichnung sein. Dieser Kopf
(oder ein Teil davon) wird mit der gehaltenen Nutzlast zusammengeführt und
in das Netzwerk unter dessen vorgeschriebenen Parametern gesendet.
Vor dem Senden des Pakets verwendet ein Planer die USC, um Pakete
zur Übertragung über eine
physische Verbindung zu priorisieren. Der Planer verwendet effektiv
USC-Kanäle,
um „virtuelle
Kanäle" oder Prioritäten über eine
oder mehrere physische oder virtuelle Verbindungen zu erzeugen.
Die USC-Kanäle
besitzen Ressourcenzuweisungen, wie etwa Bandbreite, die dazu verwendet
werden, um die angefragten Leistungsziele eines Kunden zu erfüllen.
-
Detaillierte Beschreibung
von regelbasierter Maschenverarbeitung
-
11 veranschaulicht
weitere Details der Verarbeitung der Bereitstellungsmaschine. Die
weiteren Details umfassen das Folgende:
-
1. Feldauswahl
-
Um
das Leistungsverhalten zu optimieren und das Maschendesign zu vereinfachen,
kann ein Teilsatz des 64 großen
Paketkopfes verwendet werden. Beispielsweise variieren in vielen
Nur-Schicht-2-Anwendungen lediglich die ersten 32 Bytes, die demzufolge
maschenverarbeitet werden müssen.
Alternativ hierzu kann eine Mischung aus Feldern verwendet werden,
mit der bei bestimmten Anwendungen gearbeitet wird. Die Feldauswahllogik
verwendet einfach Benutzerinformationen und reduziert das Verarbeiten
auf die Felder, die im vollen 64 Byte großen Paketbereich benötigt werden.
-
2. Regelvermaschung
-
Regelvermaschung
nimmt die Mehrfachschichtregeln zum Parsen auf der Basis der benutzerdefinierten
Eingaben oder Netzwerkparameter notwendig sind. Dieses boolsche
Parsen wird dazu verwendet, ein Steuerwort zu erzeugen, das die
Benutzerklasse definiert, zu der das Paket innerhalb des Breitbandfaserstrangs
zugeordnet werden sollte.
-
Diese
Logik, vorzugsweise implementiert in einem FPGA, ASIC oder Speicher-EEPROM, wird aus
einer Hochsprache abgeleitet, die die zu untersuchenden Felder und
die zu unternehmende Aktion auf der Basis ihres Wertes angeben kann,
wie in dem obigen Beispiel dargestellt.
-
3. Felder-Hashfunktionalität
-
Um
einen linearen Adressbereich für
den inhaltsadressierbaren Speicher zu erzeugen und um jegliche Adresslücken zu
eliminieren und den Bereich möglicher
Kombinationen zu reduzieren, wird eine optionale Hashfunktion verwendet.
Die Hashfunktion ist ein einfacher Hardwarehash zur Reduzierung
so vieler wie möglich
der 32 Millionen oder 64 Millionen Felder auf üblicherweise 16.000 bis 64.000 – was gut
innerhalb des Erfassungsbereichs eines CAM liegt. Einfache Maschenalgorithmen
benötigen
die Hashfunktion nicht.
-
4. Abbildungstabelle
-
Die
MT („Mapping
Table") nimmt die
geparsten Steuerwörter
und bildet sie in eine tatsächliche
Benutzerdienstschaltungsnummer ab, die von dem Trägernetzwerk
verstanden wird. In einem ATM-Netzwerk kann dies ein VPI („VPI =
Virtual Path Identifier"/Virtueller
Pfadidentifizierer) oder ein VCI ("VCI = Virtual Circuit Identifier"/Virtueller Schaltungsidentifizierer)
sein. In einem Frame-Relay-Netzwerk könnte dies ein PID („PID = Path
Identifier"/Pfadidentifizierer)
und in einem Paket-über-SONET-
oder einem IP-Netzwerk könnte
dies ein Diffserv-Wert oder ein PPP-Identifizierer sein. Die Abbildungstabelle
wird üblicherweise
als ein Hochgeschwindigkeits-CAM („CAM = Content Addressable
Memory"/inhaltsadressierbarer
Speicher) oder als eine CAM-Datenstruktur im Speicher implementiert.
Wenn das Steuerwort dazu verwendet wird, den CAM zu triggern, stellt der
CAM eine USC-Nummer zur Verfügung.
Wenn der CAM keine Eintragung für
ein bestimmtes Steuerwort aufweist, tritt ein „Fehlen" auf, und eine neue USC muss erzeugt
werden. Dies wird dadurch durchgeführt, dass dem Netzwerk dies
mit einem beliebigen aus der Vielzahl der industriellen Standardprotokolle
(LEARP, ARP, etc) „signalisiert" wird und eine neue
neue USC und eine USC-MIB erzeugt werden.
-
5. Schaltungsverbindung
und Bereitstellung
-
Wenn
man die USC erhalten hat, wird sie dazu verwendet, das Paket mit
einem jetzt bestehenden USC-„Tunnel" oder einer virtuellen
Schaltung innerhalb des Breitbandstranges zu verbinden (oder zu „linken"). Die bestehende
USC stellt Latenz-, Dienstqualitäts-,
Bandbreiten-, Verzögerungsvariations-,
Protokollkonversions-/-kapselung-
und andere Parameter für
unterschiedliche Rechnungssätze
und Dienststufen zur Verfügung.
-
Es
sei bemerkt, dass, obwohl speziell Bezug auf Pakete und Paketübermittlungsprotokolle
genommen worden ist, jede Übertragung
von Informationseinheiten für
eine Verwendung der vorliegenden Erfindung geeignet ist und ein
beliebiges Protokoll oder Verfahren zum Übermitteln der Informationseinheit
an die vorliegende Erfindung anpassbar ist. Beispielsweise können Rahmen,
Gruppen von mehreren Paketen, Bit- oder Byteströme variabler Länge, ganze
Dateien, Dokumente etc. über
das Netzwerk übermittelte
Informationseinheiten sein, die von der vorliegenden Erfindung profitieren
können.
Solange es Daten gibt, die den Informationseinheiten, die übermittelt
werden, zugeordnet sind und die Daten zu Bereitstellungszwecken
ver wendet werden können,
kann ein derartiges Bereitstellen von Daten Gegenstand der hier
beschriebenen Verarbeitung und Verwendung sein. Es sei bemerkt,
dass die Bereitstellungsdaten nicht dem hier erläuterten Paketkopfformat, insbesondere
dem OSI-Modellformat, folgen müssen.
Es können
spezialisierte Bereitstellungsdaten verwendet werden, die darauf
zugeschnitten sind, das Leistungsverhalten zu verbessern oder neue
Merkmale des Übermittelns,
des Routings, des Überwachens,
der Sicherheit und des Steuerns der Daten zur Verfügung stellen.
Die Bereitstellungsdaten können
irgendwo in den Informationseinheiten existieren. Beispielsweise
kann ein „Signatur"-Block oder eine
andere Art von Identifikations- oder Authentifikationsdaten dazu
verwendet werden, um Bereitstellungsfunktionen durchzuführen. Bereitstellungsdaten
können
auch Fehlerkorrektur- und -detektionsdaten, die Größe der Informationseinheit,
Zeitstempel, Routing-Tabellen, Prioritätswerte, Identifikatoren, eine
Anzeige von Computer-, Prozessor- oder Netzwerkressourcen oder sogar
irgendwelche Informationen in den Nutzlastdaten selbst umfassen.
-
Die
vorliegende Erfindung ist auf die Bereitstellung einer beliebigen
Art von Prozessor- oder Netzwerkressource anpassbar. Wenn beispielweise
Speicher in einem Gerät
verwendet wird, kann die Bereitstellungsmaschine bestimmen, welche
Informationseinheiten in einem bestimmten Speicher (zum Beispiel
einem Schnellzugriffsspeicher im Gegensatz zu einer Festplatte oder
einem langsameren Speicher, Zwischenspeicher, etc.) zu speichern
sind. Wo eine Ressource die Verarbeitungszeit ist, wenn etwa Aufgaben
CPU-Takten zugewiesen werden, kann die Bereitstellungsmaschine der
vorliegenden Erfindung dazu verwendet werden, Informationseinheiten
für die
CPU-Verarbeitung zu priorisieren.
-
Obwohl
die vorliegende Erfindung im Hinblick auf bestimmte Ausführungsformen
derselben erläutert wurde,
sollte es klar sein, dass die Ausführungsformen lediglich für bestimmte
Wege des Ausführens
der vorliegenden Erfindung veranschaulichend sind, deren Geltungsbereich
in den beigefügten
Ansprüchen
definiert wird.