-
Gebiet der Erfindung
-
Diese
Erfindung bezieht sich auf Inhalts-Verteil-Netzwerke und insbesondere
auf Techniken zum dynamischen Routen unter Verwendung angereicherter
Routing-Tabellen eines Inhalts-Verteil-Netzwerks.
-
Hintergrund der Erfindung
-
Konventionell
wird ein Netzwerk in höhere Ebenen
der Abstraktion abstrahiert, um die Komplexitäten des unterliegenden physischen
Netzes zu vereinfachen. Die Abstraktion wird gewöhnlich als eine Überlagerung
auf dem physikalischen Netzwerk betrachtet. Außerdem wird auf die Abstraktion
häufig als
eine Topologie oder logische Abbildung des Netzwerkes verwiesen.
Die Abbildung enthält
Knoten, die physikalische (z.B. Server) oder logische (z.B. Anwendungen)
Ressourcen des Netzwerkes darstellen. Die Abbildung enthält auch
Verknüpfungen,
die physikalische (z.B. Medienkanäle) oder logische (z.B. Protokolle)
Kommunikationen zwischen den Knoten darstellen. Ein Pfad von einem
Eingangs- oder Zugangsknoten zu einem oder mehrere Ausgangs- oder
Ausstiegsknoten kann innerhalb der Abbildung durch Verbinden von
Knoten und Verknüpfungen
auf eine geordnete Art und Weise definiert werden. Die Knoten und
Verknüpfungen
können
auch Kosten enthalten, die durch Regeln für das Netz bestimmt sind. Somit
kann ein Pfad von einem Zugangsknoten zu einem Ausstiegsknoten zugehörige Kosten
haben. Die Regeln können
eine Vielfalt von Metriken oder Attributen für jede der Verknüpfungen
und/oder Knoten enthalten, wie etwa verfügbare Bandbreite, geografische
Distanz, Medienübertragungskanal
und dergleichen.
-
Sobald
die Knoten, Verknüpfungen
und Regeln bekannt sind, können
Umspannungsbaumalgorithmen (engl. spanning tree algorithms) verwendet werden,
um Bäume
mit der Topologie zu generieren. Die Ergebnisse dieser Algorithmen
erzeugen Pfade innerhalb des Netzwerks zum Routen von Daten. Diese
Pfade können
innerhalb von Routing-Tabellen angezeigt werden, welche durch Netzwerk-Routing-Vorrichtungen
und- Anwendungen
verbraucht werden, wenn die Daten durch das Netzwerk geroutet werden,
da Daten, welche eine vernünftige
Alternative heraussuchen müssen,
erfasst werden.
-
Typische
Routing-Tabellen enthalten einen einzelnen Pfad durch ein Netzwerk
zum Routen von Daten, und sollte ein Fehler auftreten, werden alternative
Pfade dynamisch durch die Hardware und Software, welche mit einer
Netzwerkvorrichtung oder einer Anwendung in Zusammenhang stehen,
dynamisch generiert, welche unzureichend versucht ein Datenpaket über eine
fehlerhafte Verbindung oder einen Knoten zu routen. Ein dynamisches
Bestimmen eines alternativen Pfades innerhalb einer Routing-Tabelle
steckt voller Probleme, weil es unter anderen Gründen übermäßig die Routing-Verbindungen
und Knoten des Netzwerkes belastet.
-
G.
Ash, "Traffic Engineering
and QoS Messages for IP-, ATM, and TDM-based Multiservice Networks", Network Working
Group Internet Draft, Oktober 2001 (2001-10) XP015003551 beschreibt
Verkehrsentwicklungs- und Dienstqualität (QoS)-Techniken. Die Techniken sind für eine Vielzahl
von unterschiedlichen Netzwerkaufbauten beschrieben. Eine Routing-Tabelle
enthält
einen oder mehrere Pfade von einem Ursprungsknoten (ON) durch eine
Vielzahl von weiteren Knoten (VN) zu einem Zielknoten (DN). Der
Prozessfluss zur Regelverwendung mit Bezug auf ein Routen ist beschrieben.
Es ist daher klar, dass es der DN ist, welcher die Routing-Tabelle und den Anfangspfad
erlangt. VNs modifizieren nicht die Routing-Tabelle wenn ein Paket
empfangen wird. Ferner, sogar wenn die VNs eine Richtlinie zum Auswählen eines
unterschiedlichen Pfades, welcher innerhalb der durch den DN erzeugten
Routing-Tabelle enthalten ist, verwenden, ändern die VNs immer noch nicht die
Pfade, erzeugen neue Pfade oder modifizieren die Routing-Tabelle
auf jegliche Weise.
-
D-S.
Lee, et al., "Performance
Analysis of a Thresholdbased Dynamic Routing Algorithm". Fundamental Role
of Teletraffic in the Evolution of Telecommunications Networks.
Proceedings of the 14th International Teletraffic
Congress – ITC14, Juan-Les-Pins,
6.-10. Juni 1994, Teletraffic Science and Engineering, Elsevier,
Amsterdam NL, vol. 1B, 6. Juni 1994, Seiten 1475-1484, beschreibt
einen Schwellwert basierten Routing-Algorithmus, welcher Routing-Tabellen
Aktualisierungen triggert, wenn bestimmte Puffer-Schwellwerte gekreuzt
werden. Dies erstellt den Algorithmus unterschiedlich von herkömmlichen
Routing-Algorithmen,
in welchen Aktualisierungen periodisch durchgeführt werden. Ein Schwellwert
basiertes Schema triggert Aktualisierungen, wenn sie am meisten
benötigt
werden, d. h., wenn ein bestimmter Teil des Netzwerks höchstwahrscheinlich
verstopft wird, und reduziert die Anzahl von Aktualisierungen pro
Zeiteinheit. Jedoch ist dies lediglich ein Verkehrslast-Mitbenutzungsalgorithmus, basierend
lediglich auf den Füllgrad
von Puffern an jedem Knoten, und nicht auf irgendeiner Untersuchung
von Regeln im Zusammenhang mit jeder Verbindung der derzeit zur
Verfügung
stehenden Pfade.
-
Die
US-2003/0039212 (Lloyd
et al) beschreibt ein Erfassen, Analysieren und Ausstrahlen von
Metriken im Zusammenhang mit einem Paket, welches durch ein Netzwerk
läuft,
und ein Verfahren zum Optimieren eines Netzwerkverkehrs basierend auf
einer Leistungsmetrik. Es können
Flüsse
aufgeteilt werden, wenn ein vorgegebener Schwellwert in solchen
Metriken (wie beispielsweise Kosten oder zur Verfügung stehende
Bandbreite) erfasst wird. Die Ergebnisse einer Untersuchung der
Metriken können bei
einem Knoten bewirken, einen unterschiedlichen vorbestehenden Pfad
in der Routing-Tabelle
für ein vorgegebenes
Paket auszuwählen.
Die Metriken werden dazu verwendet, um einen Pfad auszuwählen, wobei
ein Routen geändert
werden kann, indem ein unterschiedlicher Pfad ausgewählt wird,
wobei der Pfad in der Routing-Tabelle vorbestimmt ist und die Routing-Tabelle
durch den Ursprungsknoten erzeugt wird.
-
Jedoch
wurden jüngst
vorteilhafte Verbesserungen auf diese herkömmlichen Annäherungen
gemacht, so dass, wenn eine Routing-Tabelle anfangs für ein Netzwerk
generiert wird, die Routing-Tabelle bereits einen gewünschten
Pfad und einen oder mehrere alternative Pfade zur Verwendung enthält, wenn ein
Knoten- oder Verbindungs-Fehler auftritt, während Datenpakete durch das
Netzwerk geroutet werden. Eine solche vorteilhafte Verbesserung
ist im Europäischen
Patent No. 1,416,685B mit dem Titel "Enriched Tree for a Content Distribution
Network" beschrieben.
-
Durch
die Lehren der
EP 1,416,685
B kann ein selektives und optimales dynamisches Routen
innerhalb einer Routing-Tabelle
wirksamer implementiert werden. Anstelle dass typische Techniken
verwendet werden, um dynamisch von Grund auf alternative Pfade beim
Ereignis eines Fehlers zu generieren, liegen die alternativen Pfade
in den Routing-Tabellen
der "Enriched Tree
for a Content Distribution Network" Erfindung bereits vor.
-
Dennoch
kann es in einigen Fällen,
basierend auf derzeitigen Verarbeitungsbedingungen der Verbindungen
und Knoten, welche mit einem Pfad in Zusammenhang stehen, vorteilhaft
sein, Datenpakete an einige vorbestimmte alternative Pfade auf einer lokalen
Basis dynamisch zu ändern
oder neu zu richten, um das Netzwerk optimal zu verwenden. Beispielsweise
können
einige Verbindungen oder Knoten zu irgendeinem bestimmten Zeitpunkt überbenutzt
oder unterbenutzt sein, wenn ein Datenpaket geroutet wird. In diesen
Fällen
ist es wünschenswert, das
Datenpaket an eine alternative lokale Verbindung oder einen Knoten,
welcher derzeit unterbenutzt sein kann, selektiv neu zu richten.
Durch Verbesserungen, welche durch die "Enriched Tree for a Content Distribution
Network" Erfindung
gemacht worden sind, kann ein solcher Umstand zum selektiven und
dynamischen Routen von Datenpaketen durch ein Netzwerk realisiert
werden.
-
Somit
gibt es eine Notwendigkeit zur Bereitstellung eines selektiven dynamischen
Routens von Datenpaketen durch angereicherte Routing-Tabellen für ein Netzwerk.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung stellt ein Verfahren, ein System und eine
Datenstruktur zum dynamischen Routen eines Datenpakets durch ein
Inhalts-Verteil-Netzwerk (CDN) gemäß den folgenden Ansprüchen bereit.
Eine Routing-Tabelle stellt das CDN dar und enthält einen gewünschten
Pfad und einen oder mehrere alternative Pfade durch das CDN. Jeder
Pfad enthält
Verbindungen, welche Paare von einem Eingangsknoten, Zwischenknoten
und einem Zielknoten verbinden. Jede Verbindung enthält Regeln,
welche durch den Eingangsknoten und die Zwischenknoten verarbeitet
werden, um eine Nummer der Zwischenknoten innerhalb der Routing-Tabelle neu zu ordnen.
-
Genauer
gesagt, wird ein Verfahren zum dynamischen Routen eines Datenpakets
durch ein CDN beschrieben. Es wird eine Routing-Tabelle für ein CDN
und ein Datenpaket empfangen. Die Routing-Tabelle repräsentiert
einen gewünschten
Pfad und alternative Pfade durch das CDN. Zusätzlich repräsentiert jeder Pfad Verbindungen
zwischen einem Eingangsknoten, Zwischenknoten und einem Zielknoten.
Es werden Regeln, welche derzeit verfügbaren Verbindungen für derzeit
verfügbare
Pfade zugeordnet sind, am Eingangsknoten oder an einem der Zwischenknoten
untersucht, wenn das Datenpaket empfangen wird. Als Nächstes werden
derzeit verfügbare
Zwischenknoten innerhalb der Routing-Tabelle neu geordnet, wenn
die Regeln durch derzeitige Bedingungen der derzeit verfügbaren Zwischenknoten
getriggert werden. Schließlich
wird das Datenpaket an einen nächsten
verfügbaren
Zwischenknoten der Routing-Tabelle geroutet. Der nächste verfügbare Zwischenknoten
ist aus einem der derzeit verfügbaren
Zwischenknoten ausgewählt.
-
In
einer weiteren Ausführungsform
der Erfindung wird ein weiteres Verfahren zum dynamischen Routen
eines Datenpakets durch ein Inhalts-Verteil-Netzwerk (CDN) bereitgestellt.
Es werden Regeln einer Routing-Tabelle zugeordnet, und die Routing-Tabelle
enthält
einen gewünschten
Pfad und einen oder mehrere alternative Pfade. Jeder Pfad enthält Verbindungen
zwischen einem Eingangsknoten, Zwischenknoten und einem Zielknoten.
Ein Empfangsknoten ordnet ebenfalls dynamisch nächste verfügbare Zwischenknoten innerhalb
der Routing-Tabelle neu, wenn die Regeln getriggert werden.
-
In
einer weiteren Ausführungsform
der Erfindung wird ein System zum dynamischen Routen eines Datenpakets
durch ein Inhalts-Verteil-Netzwerk gelehrt. Das System enthält eine
Routing-Tabelle, Regeln und ein Routing-Modul. Die Routing-Tabelle enthält einen
gewünschten
Pfad und einen oder mehrere alternative Pfade. Jeder Pfad enthält Verbindungen
von einem Eingangsknoten durch Zwischenknoten zu einem Zielknoten.
Es werden Regeln den Verbindungen von den Pfaden zugeordnet, und
jede Verbindung wird zwei Verbindungsknoten zugeordnet. Das Routing-Modul
untersucht die Regeln, welche derzeit verfügbaren Verbindungen der Pfade
zugeordnet sind, wenn ein Datenpaket empfangen wird und durch eine
der derzeit verfügbaren
Verbindungen zu Routen ist. Darüber
hinaus ordnet das Routing-Modul dynamisch derzeit verfügbare Zwischenknoten,
welche den derzeit verfügbaren
Verbindungen zugeordnet sind, innerhalb der Routing-Tabelle, wenn
die Regeln getriggert werden, neu.
-
In
einer weiteren Ausführungsform
der Erfindung ist eine CDN-Routing-Datenstruktur, implementiert
in einem computerlesbaren Medium, zum dynamischen Routen eines Datenpakets
durch ein Inhalts-Verteil-Netzwerk bereitgestellt. Die CDN-Routing-Datenstruktur
enthält
eine Routing-Tabelle und Regeln. Die Routing-Tabelle ist einem gewünschten Pfad
oder einem oder mehreren alternativen Pfaden zugeordnet. Jeder Pfad
enthält
Verbindungen, und jede Verbindung repräsentiert Verbindungen zwischen
Paaren von einem Eingangsknoten, Zwischenknoten und einem Zielknoten.
Die Regeln sind jeder Verbindung der Pfade zugeordnet. Ferner werden
die Regeln durch den Eingangsknoten und die Zwischenknoten verarbeitet,
um die Zwischenknoten der Routing-Tabelle dynamisch umzusortieren,
während
das Datenpaket durch das CDN geroutet wird.
-
Kurze Beschreibung der Zeichnungen
-
1A ist
ein Diagramm einer Beispielstopologie eines CDN gemäß einer
Ausführungsform der
Erfindung;
-
1B ist
ein Diagramm einer Beispielstopologie, welches eine Anreicherung
von 1A darstellt, gemäß einer Ausführungsform
der Erfindung;
-
2 ist
ein Flussdiagramm, welches ein Verfahren zum dynamischen Routen
eines Datenpakets durch ein CDN gemäß einer Ausführungsform der
Erfindung darstellt;
-
3 ist
ein Flussdiagramm, welches ein weiteres Verfahren zum dynamischen
Routen eines Datenpakets durch ein CDN gemäß einer Ausführungsform
der Erfindung darstellt;
-
4 ist
ein Diagramm eines Systems zum dynamischen Routen eines Datenpakets
durch ein CDN gemäß einer
Ausführungsform
der Erfindung; und
-
5 ist
ein Diagramm einer CDN-Routing-Datenstruktur zum dynamischen Routen
eines Datenpakets durch das CDN gemäß einer Ausführungsform
der Erfindung.
-
Genaue Beschreibung der Erfindung
-
In
der folgenden Beschreibung wird auf die begleitenden Zeichnungen
Bezug genommen, die einen Teil von ihr bilden, und in denen als
Veranschaulichung spezifische Ausführungsformen gezeigt werden,
in denen die Erfindung praktiziert werden kann. Diese Ausführungsformen
werden ausreichend detailliert beschrieben, um einem Durchschnittsfachmann
zu ermöglichen,
die Erfindung zu praktizieren, und es ist zu verstehen, dass andere
Ausführungsformen
genutzt werden können,
und dass strukturelle, logische, optische und elektrische Änderungen durchgeführt werden
können,
ohne von dem Umfang der Erfindung abzuweichen. Die folgende Beschreibung
ist deshalb nicht in einer begrenzten Bedeutung aufzunehmen, und
der Bereich der vorliegenden Erfindung wird durch die angefügten Ansprüche definiert.
-
In
verschiedenen Ausführungsformen
der vorliegenden Erfindung wird ein Inhalts-Verteil-Netzwerk (CDN)
in eine Topologie abstrahiert, die die Besonderheiten darstellt
und vereinfacht, die mit dem tatsächlichen physischen Netz in
Verbindung stehen. Es werden viele Router, Vermittler, Hubs und
dergleichen verwendet, um das physikalische Netzwerk zu bewirken,
das die Topologie abstrahiert. CDN-Administratoren betrachten die
Topologie, um einen Job zu erstellen, der den Inhalt/die Daten beschreibt, der/die
durch das CDN zu bewegen ist/sind. Außerdem verwendet das CDN die
Topologie um zu planen, wann der Job verarbeitet wird und wo der
Inhalt/die Daten innerhalb des CDN auszugeben ist/sind. Die Topologie
kennzeichnet das CDN und kann mit Visualisierungsanwendungen gekoppelt sein,
um das CDN den Administratoren visuell zu präsentieren.
-
Entsprechend
verwenden Administratoren die Topologie, um das Netzwerk als einen
oder mehrere Bäume
zu visualisieren, wobei jeder Baum einen Zugangsknoten (Eingangsknoten),
keinen oder mehrere Zwischenknoten und einen oder mehrere Ausstiegsknoten
(Zielknoten) hat. Die Knoten repräsentieren physikalische Einrichtungen
des CDN (z.B. Server, Berechnungseinrichtungen, Geräte und andere)
und logische Einrichtungen des CDN (z.B. Anwendungen, Server-Farmen und andere).
Die Knoten des Baums sind über
Verbindungen verbunden. Die Verbindungen repräsentieren physikalische Verbindungen
zwischen den Knoten (z.B. Medienkanäle, Übertragungsleitungstypen und
andere) und logische Verbindungen zwischen den Knoten (z.B. verwendete
Kommunikationsprotokolle, verwendete Sicherheitsanwendungen und
andere).
-
Darüber hinaus,
in Abhängigkeit
von einer bestimmten Knoten-Mitgliedschaft innerhalb eines Umspannungsbaums
zu einem vorgegebenen Zeitpunkt, bei welchem ein Datenpaket geroutet
wird, können
ein Eingangsknoten und ein Zielknoten als Zwischenknoten charakterisiert
werden. Beispielsweise kann ein Zielknoten als ein Zwischenknoten
innerhalb eines Pfades zu einem unterschiedlichen Zielknoten verwendet
werden. Zusätzlich
kann ein Eingangsknoten als ein Zwischenknoten verwendet werden,
wenn ein Datenpaket von einem weiteren Eingangsknoten empfangen
wird. Somit kann sich die Charakterisierung von Eingangsknoten und
Zielknoten basierend auf irgendeiner bestimmten derzeitigen Mitgliedschaft
eines Verarbeitungsknotens innerhalb eines Umspannungsbaums während einer Datenpaket-Übertragung
durch ein CDN ändern.
-
Die
Topologie gestattet, dass Attribute oder Charakteristika verschiedener
Bäume leicht
wahrgenommen werden. Beispielsweise kann ein Zugangsknoten (z.B.
ein Wurzelknoten des einzelnen Baums) als ein Achteck dargestellt
werden, ein Zielknoten kann als ein Kreis mit zwei Dreiecken unten
rechts von dem Kreis dargestellt werden, und dergleichen. Außerdem kann
die angezeigte Länge
einer Verknüpfung
verwendet werden, um die physikalische Distanz einer Kommunikationsverbindung
zwischen zwei Knoten zu bestimmen, oder optional die Qualität und Geschwindigkeit
der Kommunikationsverbindung. Somit kann eine Verknüpfung einer
längeren Länge mit
einer weniger wünschenswerten
Kommunikationsverbindung als eine Verknüpfung mit einer kürzeren Länge in Verbindung
gebracht. Auch können
Verknüpfungen
als unterbrochene Linien mit gerichteten Pfeilen dargestellt werden,
um einen geplanten Pfad eines Datenpakets durch einen beliebigen
bestimmten Baum von dem Eingangsknoten zu einem oder mehreren Zielknoten
anzuzeigen.
-
CDN-Topologien
sind einem Durchschnittsfachmann gut bekannt, und werden CDN-Administratoren
einfach zur Verfügung
gestellt. Außerdem
kann eine Vielfalt von visuellen Hinweisen (z.B. Farben, Texturen,
Schriftarten und dergleichen) über
das hinaus verwendet werden, was präsentiert wurde, um verschiedene
Attribute und Charakteristika von Knoten, Verknüpfungen und Pfaden innerhalb
des Baums oder der Topologie des CDN zu identifizieren. Somit werden
die oben erörterten
visuellen Hinweise nur für
veranschaulichende Zwecke präsentiert,
um bei der Beschreibung einiger Ausführungsformen der vorliegenden
Erfindung zu helfen, und sollten nicht als eine Begrenzung der vorliegenden
Erfindung betrachtet werden.
-
Ein
Zugangsknoten ist ein Punkt in der Topologie, wo ein Datenpaket
in das CDN eingeführt
wird. Ein einzelner Baum, der innerhalb der CDN-Topologie dargestellt
wird, enthält
einen einzelnen Zugangsknoten. Es ist nicht wünschenswert, den Inhalt, sobald
an einem Zugangsknoten empfangen, an alle Knoten des CDN zu bewegen,
da dies eine ineffiziente Verwendung ist, die zu redundanten Datentransfers
innerhalb des CDN führt.
Ein Zielknoten ist ein Austrittspunkt für das Datenpaket (z.B. eine
Einrichtung oder ein Gerät,
wo der Inhalt/die Daten verbraucht wird/werden), und ist daher ein
bekannter Verbraucher des Inhalts/der Daten.
-
Des
Weiteren können
Anfangsbäume,
die innerhalb der CDN-Topologie
für die
Erfindung dargestellt werden, unter Verwendung eines beliebigen konventionellen
Algorithmus generiert werden, wie etwa der Steiner Umspannungsbaumalgorithmus.
Es können
auch ad hoc oder angepasste Baumgenerierungsalgorithmen verwendet
werden, wie etwa, wenn bestimmte Charakteristika des CDN eine derartige Option
für eine
Verwendung praktisch machen. Auch können Pfade innerhalb des Baums
oder der Topologie generiert werden, unter Verwendung beliebiger konventioneller,
ad hoc, oder angepasster Pfadgenerierungsalgorithmen. Wie ein Durchschnittsfachmann leicht
erkennt, nehmen Pfadgenerierungsalgorithmen Eingangsparameter (z.B.
einen Zeiger zu der Wurzel eines Baums, Kostencharakteristika, Regeln, Attribute
von Knoten und Verknüpfungen,
Ausstiegsknoten und dergleichen), um einen oder mehrere geplante
Pfade innerhalb einer Topologie zu erzeugen, damit das Datenpaket
seinen Weg am effizientesten nimmt.
-
Die
Ausführungsformen
der Erfindung verwenden die Lehre der "Enriched Tree for a Content Distribution
Network" Erfindung
derart, dass ein gewünschter
Pfad und alternative Pfade vorbestimmt werden, bevor ein Datenpaket
durch das CDN geroutet wird. Diese Pfade sind in einer Routing-Tabelle-Datenstruktur
dargestellt. Zusätzlich
zur Routing-Tabelle-Datenstruktur
werden, mit den Lehren dieser Erfindung, Regeln den Verbindungen
zwischen Knoten der Pfade zugeordnet. Diese Regeln werden durch
Eingangsknoten oder Zwischenknoten verarbeitet, wenn ein Datenpaket
empfangen wird, und an einen weiteren Zwischenknoten oder einen Zielknoten
weiter zu Routen ist. Wenn ein Knoten die Regeln verarbeitet, kann
ein dynamisches Umsortieren der Routing-Tabelle-Knoten auf einer
lokalen Basis auftreten. Mit anderen Worten, kann irgendein bestimmter
Verarbeitungsknoten das Routen eines Datenpakets entlang eines geplanten
Pfades (beispielsweise Verbindung und Knoten) zu einem alternativen Pfad
(beispielsweise alternative Verbindung und Knoten) ändern, wenn
eine verarbeitete Regel eine solche Änderung basierend auf Bedingungen,
welche nächsten
verfügbaren
Verbindungen und Knoten zugeordnet sind, welche unmittelbar auf
dem Verarbeitungsknoten zugreifbar sind, vorschreibt.
-
Ferner
ist die Erfindung in einer Ausführungsform
innerhalb von CDN-Produktangeboten implementiert, welche durch Novell,
Inc. verbreitet werden. Es ist jedoch zu verstehen, dass die Lehren
der Erfindung in weiteren vorliegenden Produkten (beispielsweise
bestehende Router, Vermittler, Hubs, Cache-Beschleuniger, kundenorientierte
Anwendungen und dergleichen) und/oder unabhängigen Produkten implementiert
werden können.
Alle solche Modifikationen auf bestehende Produkte oder auf kundenerzeugte
Produkte, welche die Lehren dieser Offenbarung verwenden, sind dazu
gedacht, innerhalb des Umfangs der Erfindung zu fallen.
-
1A veranschaulicht
ein Diagramm einer Beispielstopologie 100 eines CDN. Die
Beispielstopologie 100 ist in einem computerlesbaren Medium ausgeführt und
repräsentiert
CDN-Knoten 0-9. Nur für
den Zweck der Veranschaulichung werden Eingangsknoten 4 und 5 als
Achtecke dargestellt, während
die Zielknoten 9, 0, 7 und 2 als Kreise mit zwei Dreiecken unten
rechts von den Kreisen dargestellt werden. Die Topologie enthält auch
Kreise ohne Dreiecke, die Zwischenknoten 3, 8, 6 und 1 anzeigen,
die weder Eingangsknoten noch Zielknoten innerhalb des CDN sind.
Außerdem
kann die Länge
der Linien, die die Knoten verbinden, als Kosten gesehen werden,
die mit einer Verwendung einer bestimmten Kommunikation zwischen
zwei Knoten in Verbindung stehen. Insgesamt sind Kosten, Bandbreite,
Metriken und dergleichen angesammelt, und somit ist eine Verknüpfung kürzerer Länge wünschenswerter
als eine Verknüpfung
längerer
Länge.
-
Jeder
Eingangsknoten 4 und 5 kann als eine Wurzel eines Baums mit Knoten
innerhalb der Topologie 100 gesehen werden. Wie ein Durchschnittsfachmann
leicht erkennt, können
Bäume unter
Verwendung eines beliebigen Umspannungsbaumalgorithmus hergeleitet
und generiert werden, wie etwa der Steiner Umspannungsbaumalgorithmus
und andere. Nur für
den Zweck der Veranschaulichung, legt das in 1A und 1B erörterte vorliegende
Beispiel den Schwerpunkt auf einen einzelnen Baum T mit einem Wurzelknoten,
der als ein Eingangsknoten 5 innerhalb der Topologie 100 dargestellt
ist. Die Anwendung eines Umspannungsbaumalgorithmus führt zu einem
Baum, welcher Knoten 5, 6, 9, 7, 2 und 0 enthält.
-
Zusätzlich zum
Generieren eines Anfangsbaums T können beliebige konventionelle,
angepasste oder ad hoc Pfadgenerierungsalgorithmen verwendet werden,
um Pfade von dem Wurzelknoten 5 des Baums T zu den entsprechenden
Zielknoten 9, 0, 7 und 2 zu generieren. Beispielsweise ist der Pfad zum
Zielknoten 9 durch Durchlaufen des Baums T in der folgenden Reihenfolge
5→6→9 definiert.
Gleichermaßen
ist der Pfad zum Zielknoten 0 durch 5→6→7→0 definiert. Der Pfad zum Zielknoten
7 ist 5→6→7, und der
Pfad zum Zielknoten 2 ist 5→6→7→2. Pfadgenerierungsalgorithmen
sind basierend auf Kosten (z.B. Charakteristika von Knoten und/oder
Verknüpfungen, und/oder
Regeln des CDN), welche Pfade für
das CDN als ein ganzes optimal sind, bestimmt. Somit ist es in dem
vorliegenden Beispiel weniger aufwendig, ein Datenpaket, welches
in das CDN am Eingangsknoten 5 eingeführt wird, an Knoten 6 zu bewegen, bevor
mit beliebigen der Zielknoten 9, 0, 7 oder 2 fortgefahren wird.
-
Sobald
der Baum T und die anfänglichen
geplanten Pfade aus der Topologie 100 für das CDN abgeleitet sind,
wird der Baum angereichert, um einen oder mehrere alternierende
Pfade innerhalb des Baums T zu enthalten, um den Inhalt/die Daten
in dem potenziellen Ereignis von Ausfällen eines Knotens oder einer
Verknüpfung
zu bewegen. 1B stellt eine derartige stufenweise
Anreicherung dar. Obwohl 1B Zielknoten
7 als innerhalb der Topologie 110 isoliert darstellt, ist
zu verstehen, dass dies nicht der Fall ist, da die Anwendung zur
weiteren stufenweisen Anreicherung weitere Verbindungen zum Zielknoten
7 erzeugen wird. Dies ist zum Zweck der Veranschaulichung geschehen,
um ein Beispiel einer Anreicherung zu isolieren. In der Tat existieren
alle Pfade, die ursprünglich
in 1A dargestellt werden, auch in 1B,
jedoch enthält 1B alternierende oder
angereicherte Pfade, die die existierenden Pfade von Baum T in 1A erweitern.
-
Demgemäß veranschaulicht 1B ein
Diagramm einer Beispielstopologie 110, die eine Anreicherung
von Baum T in 1A gemäß einer Ausführungsform
der Erfindung darstellt. Eine Anreicherung von Bäumen in der Erfindung kann
basierend auf konfigurierbaren Optionen geschehen, die durch einen
CDN-Administrator geliefert werden. Der Baum T kann basierend auf
einem bestimmten Knoten angereichert werden, der nicht in der Lage
ist, mit einem seiner entsprechenden Elternknoten zu kommunizieren
(Skip Parent enrichment type). Alternativ kann Baum T basierend
auf einem bestimmten Knoten angereichert werden, der nicht in der
Lage ist, mit einer seiner Verknüpfungen
zu kommunizieren (Join enrichment type). Außerdem kann ein Merkmal "optionale Anreicherung" mit einem der zwei
Typen von Anreicherung verwendet werden. Eine optionale Anreicherung
organisiert die alternativen Pfade, die durch Anreicherung generiert
werden, von geringsten Kosten (z.B. kürzester Pfad) zu höchsten Kosten
(z.B. längster
Pfad). Ursprüngliche
geplante Pfade für Baum
T und beliebige alternative angereicherte Pfade für Baum T
werden als Routing-Tabellen zum Bewegen eines Datenpakets durch
das CDN verfügbar gemacht.
Auch kann jeder Anreicherungstyp isoliert oder in Kombination mit
dem verbleibenden Anreicherungstyp, mit oder ohne das optionale
Anreicherungsmerkmal, verwendet werden.
-
Sobald
ein gewünschter
Pfad (beispielsweise 1A: 5→6→7→2) und ein oder mehrere alternative
Pfade (beispielsweise 1B: 5→3→2) unter Verwendung oben beschriebener
Techniken und vollständiger
in der "Enriched
Tree for a Content Distribution Network" Erfindung beschrieben, bestimmt sind,
kann ein angereicherter Baum T in einer Datenstruktur angezeigt
werden, welche leicht durch Netzwerk-Routing-Vorrichtungen und -Anwendungen
verbraucht werden kann. Diese Datenstruktur ist als Routing-Tabelle 111 in 1B angezeigt.
Beispielsweise ist ein Zielknoten 2 lediglich vom Knoten 7 oder 3 über Verbindung
7→2 oder
3→2 erreichbar.
-
Jeder
in der Routing-Tabelle 111 dargestellten Verbindung wird
ebenfalls eine oder mehrere Regelmetriken zugeordnet. Diese Zuordnung
kann durch einen Referenz-Zeiger von jeder Verbindung zu einer Regel-Datenstruktur
erreicht werden, oder in einigen Ausführungsformen können die
Regeln innerhalb der Routing-Tabelle 111 eingebettet sein.
-
In
alternativen Ausführungsformen
sind die Regeln gänzlich
von der Routing-Tabelle 111 getrennt, so dass die Routing-Tabelle 111 irgendeine herkömmliche
Routing-Tabelle ist, welche durch Netzwerk-Routing-Vorrichtungen
und- Anwendungen
verbraucht wird. In diesen Ausführungsformen werden
Regel-Verarbeitungs-Anwendungen und Regel-Datenstrukturen als Schnittstelle der
herkömmlichen
Routing-Tabelle zu den Regeln verwendet.
-
Beispielsweise,
wenn der Eingangsknoten 5 von 1B ein
Datenpaket zum Routen an den Zielknoten 2 empfängt, wird der gewünschte Pfad
von der Routine-Tabelle 111 als Pfad 5→6→7→2 erlangt, und ein alternativer
Pfad wird als 5→3→2 erlangt.
Somit kann Knoten 5 das Datenpaket zum Knoten 6 oder 3 routen, die
Verbindung 5→6
und 5→3
kann in einer Regel-Datenstruktur und einem Routing-Modul, welches
eine Schnittstelle zu einer herkömmlichen Routing-Anwendungen verbrauchenden
Routing-Tabelle 111 bildet. Somit, bevor ein Datenpaket
an Knoten 6 oder 3 von Knoten 5 geroutet wird, wird das Routing-Modul
verarbeitet. Das Routing-Modul fragt dann die Regel-Datenstruktur
nach Regel-Metriken ab, welche mit Verbindungen 5→6 und 5→3 in Zusammenhang
stehen, und führt
diese Regel-Metriken aus. Wenn während
der Ausführung
von einer der Regel-Metriken das Routing-Modul bestimmt, dass es
basierend auf derzeitigen Bedingungen von lokal zugreifbaren Knoten
3 und 6 optimaler ist, das Datenpaket über Verbindung 5→3, im Gegensatz
zu Verbindung 5→6,
zu routen, dann wird das Routing-Modul dynamisch die Routing-Tabelle 111 Einträge derart umsortieren,
dass Zielknoten 2 zu "2
: 3,7" wird. Dies zeigt
an, dass es, um Zielknoten 2 zu erreichen, nun weiter wünschenswert
ist, zunächst
durch Knoten 3 zu gehen, wohingegen der Routing-Tabelle 111 Eintrag
für 1B anfangs
angezeigt hat, dass 7 mehr geeignet war, (beispielsweise "2 : 7,3"). Die umsortierte
Routing-Tabelle wird dann den Netzwerk-Routing-Vorrichtungen und- Anwendungen dargelegt, welche
auf Knoten 5 arbeiten, wobei das Datenpaket an Knoten 3 über Verbindung
5→3 geroutet
wird. Diese umsortierte Routing-Tabelle bleibt dann in Wirkung,
bis ein weiteres Regelereignis eine weitere Umsortierung bewirkt.
-
Demgemäß kann mit
den Lehren dieser Erfindung jegliche Routing-Tabelle 111 in
Kombination mit Regel-Datenstrukturen
und Weiterleitungs-Modulen verwendet werden. Daher brauchen keine Änderungen
auf herkömmliche
Routing-Vorrichtungen und -Anwendungen vorgenommen zu werden, um
die vorteilhaften Verbesserungen von der Erfindung zu realisieren.
-
Regeln
in Zusammenhang mit Verbindungen der Routing-Tabelle können eine
Vielzahl von Formen annehmen, wie beispielsweise Bits, welche derzeit
durch einen Knoten oder eine Verbindung empfangen werden, Bits,
welche derzeit durch einen Knoten oder eine Verbindung übertragen
werden, derzeitige Anwendungen, welche auf einem Knoten verarbeitet
werden, derzeitige Prioritäts-Zuweisungen
für einen
Netzwerkverkehr auf einem Knoten oder eine Verbindung, und weiteres.
Die Regeln sind ausführbare
oder interpretierbare Angaben, welche durch ein Routing-Modul verarbeitet
werden, um Regel-Metriken zu einem vorgegebenen Zeitpunkt von einer Verbindung
oder von einem Knoten zu erlangen. Dies wird einfach erreicht, da
das dynamische Routen dieser Erfindung basierend lediglich auf lokale
Knoten selektiv ist, welche unmittelbar auf einen Knoten zugreifbar
sind, welcher die Regeln verarbeitet.
-
2 ist
ein Flussdiagramm, welches ein Verfahren 200 zum dynamischen
Routen eines Datenpakets durch ein CDN darstellt. Die Verarbeitung des
Verfahrens 200 ist in einem computerlesbaren Medium implementiert,
und ist in einer Ausführungsform
als ein Routing-Modul implementiert. Das Routing-Modul arbeitet
auf Knoten von dem CDN.
-
Bei 210 empfängt ein
Verarbeitungsknoten oder ein anfänglicher
Verarbeitungsknoten (Eingangsknoten) eine Routing-Tabelle und ein
Datenpaket zum Routen durch ein CDN. Bei Situationen, bei welchen
der Verarbeitungsknoten die Routing-Tabelle und das Datenpaket empfängt, wird
diese Information von einem vorherigen Verarbeitungsknoten empfangen,
welcher das Datenpaket routet. Bei Situationen, bei welchen der
Anfangsknoten die Information empfängt, wird sie von einer Anwendung
empfangen, welche ursprünglich
den Routing-Prozess durch das CDN beginnt. Zusätzlich brauchen die Routing-Tabelle
und das Datenpaket nicht zusammen durch einen Verarbeitungsknoten
empfangen zu werden. Somit, obwohl ein Verarbeitungsknoten sowohl
die Routing-Tabelle als auch das Datenpaket empfängt, können diese Elemente separat
durch den Verarbeitungsknoten empfangen werden, und es gibt keine Anforderung,
dass sie zusammen empfangen werden.
-
Die
Routing-Tabelle stelle eine elektronische Datenstruktur dar, welche
durch Netzwerkvorrichtungen und -anwendungen zum Erlangen eines
gewünschten
Pfades und eines oder mehrerer alternativer Pfade für das Datenpaket
durch das CDN verwendet werden kann. Wie zuvor diskutiert wurde, enthalten
die Pfade Verbindungen von einem Eingangsknoten durch einen oder
mehrere Zwischenknoten an einen oder mehrere Zielknoten, und jede Verbindung
verbindet zwei Knoten miteinander. Somit wird die Routing-Tabelle
auf die Art und Weise angereichert, welche in der "Enriched Tree for
a Content Distribution Network" Erfindung
diskutiert wird.
-
Jede
Verbindung in der Routing-Tabelle kann Regeln enthalten, wobei diese
Regeln durch einen Verarbeitungsknoten verarbeitet werden, welcher derzeit
das Datenpaket enthält
und es wünscht,
das Datenpaket entlang einer lokalen Verbindung zu einem nächsten derzeit
verfügbaren
Zwischenknoten zu routen. Somit werden bei 220 Regeln für lokal
zugreifbare Verbindungen, welche einem Verarbeitungsknoten verfügbar sind,
welcher das Datenpaket enthält,
verarbeitet, um Regel-Metriken zu untersuchen, welche durch die
verarbeiteten Regeln bestimmt sind. In einigen Fällen können einige Verbindungen keine
zugeordneten Regeln enthalten, und in diesen Situationen besteht
eine NULL-Regel mit solchen Verbindungen in Zusammenhang.
-
Derzeitige
Regel-Metrikwerte werden von derzeitigen Bedingungen erlangt, welche
mit den derzeit verfügbaren
Verbindungen (lokal zugreifbar) und Knoten in Zusammenhang stehen,
welche in der Routing-Tabelle identifiziert sind. Einige Metriken
enthalten eine derzeit verfügbare
Verbindung oder eine Knoten-Verarbeitungslast, Bandbreiten-Verwendung und Datenverkehr-Prioritätszuordnungen.
Der Verarbeitungsknoten vergleicht dann die resultierenden Metrik-Werte
der derzeit verfügbaren
Verbindungen und Knoten mit den entsprechenden Regel-Metrik Schwellwerten,
welche durch die geeigneten Regeln bei 230 bestimmt sind.
-
Wenn
bei 230 kein Schwellwert erfasst wird, dann wird bei 231 keine
Aktion auf die Routing-Tabelle vorgenommen, und bei 260 routet
der Verarbeitungsknoten das Datenpaket über eine bevorzugte Verbindung
zu einem bevorzugten Knoten, welcher in der Routing-Tabelle auf
eine normale und erwartete Weise identifiziert ist. Wenn jedoch
irgendeinem bestimmten Schwellwert begegnet wird, dann wird eine
Aktion in Zusammenhang mit der geeigneten Regel vorgenommen.
-
In
einer Ausführungsform
wird vor einem Verarbeiten von irgendeiner Aktion in Zusammenhang
mit einem erreichten Schwellwert eine zusätzliche Überprüfung bei 232 vorgenommen,
um zu bestimmten, ob die benötigte
Aktion einen zuvor zurückgestuften
Knoten innerhalb der Routing-Tabelle unterstützen wird.
In einem solchen Fall kann es wünschenswert
sein, einen zuvor zurückgestuften Knoten nicht
zu unterstützen
und daher mit 231 fortzufahren, wobei keine Aktion auf
die Routing-Tabelle vorgenommen wird, und das Datenpaket bei 260 an eine
bevorzugte Verbindung und einen in der Routing-Tabelle bestimmten
Knoten zu routen.
-
Ein
unterstützter
Knoten ist ein Knoten in einer Routing-Tabelle, welcher vor weiteren Knoten
in der Routing-Tabelle bewegt wurde, wodurch er bevorzugter als
die Knoten erstellt wurde, über
welche er unterstützt
wurde. Im Gegensatz dazu, ist ein zurückgestufter Knoten ein Knoten
in einer Routing-Tabelle, welcher hinter weiteren Knoten in der
Routing-Tabelle bewegt wurde, wodurch er zu einem weniger bevorzugten
Knoten über
jenen vor ihm erstellt wird.
-
Zusätzlich kann
dann bei 240 in einigen Ausführungsformen, wenn eine erforderliche
Verarbeitungsaktion eine Verbindung oder einen Knoten innerhalb
der Routing-Tabelle zurückstuft,
eine formale Bezeichnung verwendet werden, um eine solche Verbindung
oder Knoten eindeutig zu identifizieren. Diese Bezeichnung kann
innerhalb einer Regel-Datenstruktur, der Routing-Tabelle oder innerhalb
einer separaten Datenstruktur in Zusammenhang mit der Datenstruktur
aufgezeichnet werden, so dass, wenn ein nächster Verarbeitungsknoten
das Datenpaket empfängt,
diese Situation erfasst werden kann, und, wenn gewünscht, der
zurückgestufte
Knoten nicht nachfolgend innerhalb der Routing-Tabelle durch den nächsten Verarbeitungsknoten
unterstützt
wird.
-
Bei 250,
wenn eine Aktion in Zusammenhang mit einem Erreichen eines Schwellwertes
erreicht ist, und weitere Bedingungen, wie oben diskutiert, angezeigt
sind, dann wird bei 250 die Routing-Tabelle dynamisch umsortiert,
um Verbindungen und Knoten widerzuspiegeln, welche basierend auf der
vorgenommenen Aktion unterstützt
oder zurückgestuft sind.
Als Nächstes
wird bei 260 das Datenpaket über eine neue bevorzugte Verbindung
oder einen Knoten geroutet.
-
Die
Verarbeitung des Verfahrens 200 ist iterativ und wird durch
jeden Eingangsknoten oder Zwischenknoten verarbeitet, welcher das
Datenpaket beginnend bei 220 empfängt. Darüber hinaus, kann in einigen
Ausführungsformen
die gesamte anfangs angereicherte Routing-Tabelle an alle Knoten
des CDN verteilt werden, bevor das Datenpaket durch das CDN geroutet
wird. Alternativ ist die Routing-Tabelle in einigen Ausführungsformen
an das Datenpaket angeschlossen, und somit kann die Verarbeitung des
Verfahrens 200 beginnend bei 210 wiederholt werden.
Jedoch, braucht in keinen der zwei obigen alternativen Ausführungsformen
irgendeine dynamisch umsortierte Routing-Tabelle an nachfolgende Verarbeitungsknoten
kommuniziert zu werden, da es durch die Lehren der Erfindung die
derzeit verfügbaren
Verbindungen und Knoten (lokal zugreifbare Verbindungen und Knoten)
sind, welche durch irgendeinen bestimmten Verarbeitungsknoten umsortiert
werden. Somit wird die umsortierte Routing-Tabelle nicht durch nachfolgende
Verarbeitungsknoten benötigt. Alternativ
kann es in einigen Ausführungsformen
vorteilhaft sein, zumindest irgendeine umsortierte Routing-Tabelle
dem derzeit verfügbaren
Knoten zu melden, welcher das Datenpaket von einem Verarbeitungsknoten
empfängt,
welcher die Routing-Tabelle umsortiert hat, so dass verhindert wird,
dass zuvor zurückgestufte
Knoten nachfolgend durch nachfolgende Verarbeitungsknoten unterstützt werden.
-
Zusätzlich können die
Regeln in einigen Ausführungsformen
derart bedingt sein, so dass, wenn eine bestimmte Verbindung oder
ein Knoten durch die Routing-Tabelle unterstützt oder zurückgestuft wird,
jegliche nachfolgende Verarbeitungsknoten diese Information zur
Verarbeitung von alternativen Regeln verwenden können. Unter diesen Umständen können eine
Rückhaltung
und ein Routen von umsortieren Routing-Tabellen den Verarbeitungsknoten
einen Vorteil bereitstellen.
-
3 ist
ein Flussdiagramm, welches ein weiteres Verfahren 300 zum
dynamischen Routen eines Datenpakets durch ein CDN darstellt. Die
Verarbeitung des Verfahrens 300 ist in einem computerlesbaren
Medium implementiert, und ist in einer Ausführungsform als ein Routing-Modul
zum Routen eines Datenpakets durch ein CDN implementiert.
-
Anfangs
werden bei 310 Regeln einer Routing-Tabelle zugeordnet.
Die Routing-Tabelle ist eine elektronische Datenstruktur, welche
zum Herleiten eines gewünschten
Pfades und eines oder mehrerer alternativer Pfade für ein Datenpaket
verwendet wird, welches durch ein CDN zu routen ist. Ein Pfad enthält eine
oder mehrere Verbindungen von einem Eingangsknoten durch einen oder
mehrere Zwischenknoten an einen oder mehrere Zielknoten, und jede Verbindung
ist ein Paar von Knoten, welche miteinander in Zusammenhang stehen.
-
Regeln
sind ausführbare
oder interpretierbare Anordnungen, welche durch Empfangsknoten im CDN
verarbeitet werden. Diese Regeln enthalten Metriken, welche mit
Schwellwerten für
verschiedene Verarbeitungsbedingungen von lokal zugreifbaren (derzeitig
verfügbaren)
Verbindungen und Knoten in Relation zum empfangenen (verarbeitenden
Knoten) in Zusammenhang stehen. Regeln können der Routing-Tabelle auf
einer Vielzahl von Arten zugeordnet werden, wie beispielsweise durch
ein Bereitstellen einer Verbindung innerhalb der Routing-Tabelle
zu einer Regel-Datenstruktur, welche die Regeln und Metriken hat,
oder durch ein Verwenden eines Routing-Moduls in Kombination mit
der Regel-Datenstruktur, welche die Routing-Tabelle verbraucht und ändern kann,
bevor die Routing-Tabelle an eine Netzwerk-Routing-Vorrichtung oder
-Anwendung weitergereicht wird.
-
In
einer Ausführungsform,
stehen die Regeln bei 311 in Zusammenhang mit Verbindungen,
welcher in der Routing-Tabelle
bestimmt sind. Somit wird irgendeine bestimmte Regel durch einen
Empfangsknoten für
alle derzeit verfügbaren
Verbindungen und Knoten ausgeführt,
welche auf den Empfangsknoten zugreifbar sind.
-
Ein
Empfangsknoten untersucht bei 330 die geeigneten Regeln
durch ein Ausführen
von Regel-Anordnungen, welche bei der Abfrage derzeitig verfügbare Zwischenknoten
für Regel-Metriken sind, welche
in den Regeln bestimmt sind. Einige dieser Metriken enthalten eine
Bandbreitenverwendung, Verarbeitungslast und Verkehrsprioritäts-Zuweisungen.
Die derzeitig verfügbaren
Zwischenknoten antworten mit den Ergebnissen der Abfrageverarbeitung,
und diese Ergebnisse werden mit Schwellwert-Metrikwerten verglichen,
welche in den Regeln bestimmt sind. Wenn ein Schwellwert erreicht
oder nicht erreicht wird, dann wird eine Aktion in Zusammenhang
mit der geeigneten Regel zur Verarbeitung auf dem Empfangsknoten
getriggert.
-
Wenn
eine solche Verarbeitungsaktion bestimmt, dass die derzeit verfügbaren Verbindungen und
Zwischenknoten innerhalb der Routing-Tabelle umsortiert werden müssen, dann
wird die Routing-Tabelle bei 340 dynamisch umsortiert,
um jegliche Unterstützung
oder Herabstufung von derzeit erhältlichen Zwischenknoten und
Verbindungen widerzuspiegeln.
-
Bei
einigen Situationen, wie beispielsweise jene, welche oben mit 2 diskutiert
sind, kann es wünschenswert
sein, den derzeit verfügbaren
Knoten oder allen verbleibenden Knoten des CDN zu melden, dass eine
Umsortierung der Routing-Tabelle stattgefunden hat. Somit sendet
der Empfangsknoten bei 341 die aktualisierte Routing-Tabelle
oder zumindest eine Meldung über
die Änderungen
der derzeitig verfügbaren
Knoten oder aller verbleibenden Knoten. Dies kann hilfreich sein,
wenn irgendein nachfolgender Empfangsknoten diese Information aus
Zwecken einer Nicht-Unterstützung
zuvor herabgestufter Knoten oder aus Zwecken einer bedingten Verwendung
alternativer Regeln für
Verbindungen basierend auf irgendeiner Umsortierung, welche in der
Routing-Tabelle auftritt, verwendet.
-
Bei 350 routet
der Empfangsknoten das Datenpaket an einen nächsten derzeit verfügbaren Knoten,
welcher innerhalb der Routing-Tabelle als ein bevorzugter Knoten
und eine Verbindung zur Datenübertragung
dargestellt ist.
-
Die
Ausführungsformen
von 3 demonstrieren, wie ein selektives Routen eines
Datenpakets durch ein CDN auftritt. In den Ausführungsformen greifen Empfangsknoten,
welche derzeit das Datenpaket enthalten, die Regeln, welche mit
derzeit verfügbaren
Verbindungen und Knoten in Zusammenhang stehen, und verarbeiten
diese. Ein Ausführen der
Regeln führt
zu Werten für
derzeitige Bedingungen auf den derzeit verfügbaren Verbindungen und Knoten.
Diese Werte werden mit Regel-Metrik Schwellwerten verglichen, um
Regel-Aktionen zu triggern. Regel-Aktionen können zu einer dynamischen Umsortierung
der Routing-Tabelle für
bevorzugte derzeit verfügbare
Verbindungen und Knoten führen.
Die Routing-Tabelle
wird dann den Netzwerk-Routing-Vorrichtungen oder- Anwendungen bereitgestellt,
und das Datenpaket wird über
die bevorzugte Verbindung an den bevorzugten Knoten gesendet, welcher
in der Routing-Tabelle identifiziert ist.
-
4 ist
ein Blockdiagramm von einem System 400 zum dynamischen
Routen eines Datenpakets durch ein CDN. Das System 400 ist
in einem computerlesbaren Medium implementiert und kann durch jeden
Knoten 440 eines CDN- Netzwerks 401 verarbeitet
werden. 4 zeigt einen einzelnen Knoten 440 an,
welcher dazu dient, einen Verarbeitungsknoten des CDN 401 widerzuspiegeln
und ist aus Gründen
der Darstellung dargestellt, da eine Mehrzahl von Knoten 440 innerhalb
eines vorgegebenen CDN 401 vorliegt.
-
Das
System 400 enthält
eine Routing-Tabelle 410, Regeln 420 und ein Routing-Modul 430.
Die Routing-Tabelle 410 ist eine elektronische Datenstruktur,
welche durch Netzwerk-Routing-Vorrichtungen
und -Anwendungen verbraucht wird, wenn ein Datenpaket durch das
CDN 401 geroutet wird. Die Routing-Tabelle 410 stellt eine Technik
für die
Netzwerk-Routing-Vorrichtungen
und -Anwendungen bereit, um einen gewünschten Pfad und einen oder mehrere
alternative Pfade zu erlangen. Somit stellt die Routing-Tabelle 401 einen
angereicherten Baum für
ein CDN 401 dar.
-
Ein
Pfad enthält
eine Route für
ein durch das CDN 401 zu routendes Datenpaket, beginnend
bei einem Eingangsknoten, und welches durch eine oder mehrere Kommunikationsverbindungen
an einen oder mehrere Zwischenknoten und letztendlich an einen oder
mehrere Zielknoten durchläuft.
Der Pfad enthält
Kommunikationsverbindungen, und jede Verbindung ist einem Paar von
Knoten zugeordnet.
-
Regeln 420 enthalten
Regel-Schwellwert-Metriken und ausführbare oder interpretierbare Anordnungen
zur Verwendung durch einen Verarbeitungsknoten 440, um
Verarbeitungsbedingungen auf derzeit verfügbaren Verbindungen und Knoten
(lokal zugreifbare Verbindungen und Knoten) zu erlangen. Die Regeln
sind jeder Verbindung zugeordnet; eine einzelne Verbindung kann
eine oder mehrere Regeln haben. Das Ziel eines Verarbeitungsknotens 440 tritt auf,
wenn irgendein bestimmter Knoten das Datenpaket enthält, welches
durch das CDN 401 geroutet wird.
-
Das
Routing-Modul 430 verbraucht die Routing-Tabelle 410 und
die Regeln 420. Darüber
hinaus, verarbeitet das Routing-Modul 430 auf jedem der Knoten,
sobald irgendein bestimmter Knoten als der Verarbeitungsknoten 440 bestimmt
wird. Das Routing-Modul 430 leitet ein, wenn ein Verarbeitungsknoten 440 das
Datenpaket zum Routen empfängt.
Als Nächstes
erlangt das Routing-Modul 430 die Regeln 420,
welche mit derzeit verfügbaren
Verbindungen und Knoten in Zusammenhang stehen, welche in der Routing-Tabelle 410 bestimmt
sind. Diese Regeln werden für
jede der derzeit verfügbaren
Verbindungen und Knoten verarbeitet, und es werden Verarbeitungs-Bedingungswerte
von jedem der derzeit verfügbaren
Knoten zurückgegeben.
Diese Werte werden mit Regel-Metriken verglichen, um zu bestimmen,
ob zugeordnete Regel-Aktionen ebenfalls durch das Routing-Modul 430 verarbeitet
werden müssen.
Regeln können
dazu verwendet werden, um Werte von derzeit verfügbaren Verbindungen und Knoten
in Zusammenhang mit einer derzeitigen Verarbeitungslast, einer derzeitigen
Anzahl von Bits, welche pro Sekunde empfangen werden, einer derzeitigen
Anzahl von Bits, welche pro Sekunde gesendet werden, derzeitigen
Prioritäts-Zuordnungen
für einen
derzeitigen Datenverkehr, und weitere, zu erlangen.
-
Wenn
eine Regel-Aktion getriggert ist, kann das Routing-Modul 430 dann
dynamisch die bevorzugte Sortierung von derzeit verfügbaren Verbindungen
und Knoten innerhalb der Routing-Tabelle 410 umsortieren.
In dieser Situation erlangt eine Netzwerk-Routing-Vorrichtung und
-Anwendung die aktualisierte Routing-Tabelle 410 und routet
das Datenpaket durch die neue bevorzugte Verbindung an den neuen
bevorzugten Knoten.
-
In
weiteren Ausführungsformen
können komplexere
Routing-Operationen
durch System 400 erzielt werden. Beispielsweise kann die
Routing-Tabelle 410 eine formale Bezeichnung enthalten,
welche Verbindungen und Knoten identifiziert, welche zuvor unterstützt oder
zurückgestuft
worden sind. Jegliches Routing-Modul 430 eines nachfolgenden Verarbeitungsknotens
kann diese Information zur Auswahl alternativer Regeln 420 verwenden,
um eine Aktion, welche basierend auf einer getriggerten Regel 420 stattfindet,
zu verarbeiten oder zu verhindern.
-
5 ist
ein Blockdiagramm einer CDN-Routing-Datenstruktur 500 zum dynamischen Routen
eines Datenpaketes durch das CDN. Die CDN-Routing-Datenstruktur 500 ist
in einem computerlesbaren Medium 510 implementiert. Die CDN-Routing-Datenstruktur 500 wird
beispielsweise von einem Routing-Modul 420 verarbeitet.
Jedes Beispiel des Routing-Moduls 420 kann
auf Verarbeitungsknoten 430 des CDN arbeiten.
-
Die
CDN-Routing-Datenstruktur 500 enthält eine Routing-Tabelle 501,
Regeln 502 und eine optionale formale Bezeichnung 503.
Die Routing-Tabelle 501 stellt einen angereicherten Baum
für das
CDN dar. Somit stellt die Routing-Tabelle 501 einen gewünschten
Pfad und einen oder mehrere alternative Pfade zum Durchlaufen durch
das CDN dar. Jeder Pfad stellt Verbindungen von einem Paar von Knoten dar,
und jeder Knoten kann ein Eingangsknoten, ein Zwischenknoten oder
ein Zielknoten sein. Die Bestimmung eines Knotens als ein Eingangsknoten, Zwischenknoten
oder Zielknoten kann basierend auf einer bestimmten derzeitigen
Mitgliedschaft des Knotens innerhalb eines Umspannungsbaums während des
Routens des Datenpakets geändert
werden. Demgemäß kann ein
Eingangsknoten in einigen Situationen als ein Zwischenknoten bestimmt
werden, und in einigen Situationen kann ein Zielknoten als ein Zwischenknoten
bestimmt werden.
-
Die
Regeln 502 enthalten ausführbare Anordnungen, welche
beispielsweise durch das Routing-Modul 502 verarbeitet
werden können,
Regel-Metriken und Regel-Aktionen. Das Routing-Modul 520 verarbeitet
regelausführbare
Anordnungen, wenn ein Verarbeitungsknoten bestimmt, welche derzeit
verfügbare
Verbindung und welcher Knoten das Datenpaket routet. Jede Regel 502,
welche mit derzeit verfügbaren
Verbindungen und Knoten in Zusammenhang steht, wird durch das Routing-Modul 520 verarbeitet,
um die derzeit verfügbaren
Verarbeitungsknoten nach Werten, welche mit derzeitigen Verarbeitungsbedingungen
in Zusammenhang stehen, der derzeit verfügbaren Verbindungen und Knoten
abzufragen. Wenn diese Werte zurückgegeben werden,
vergleicht das Routing-Modul 520 sie mit Schwellwert-Regel-Metriken, um zu bestimmen,
welche Regel-Aktion, wenn irgendeine vorliegt, ferner auszuführen ist.
-
Einige
Regel-Aktionen, welche getriggert werden, führen zu einer bevorzugten Umsortierung der
derzeit verfügbaren
Verbindungen und Knoten, welche innerhalb der Routing-Tabelle 501 zu ändern oder
dynamisch umzusortieren sind. Dies kann für eine Vielzahl von gewünschten
Gründen
auftreten, wie beispielsweise wenn die zuvor bevorzugte Verbindung
und der Knoten, welcher in der Routing-Tabelle 501 enthalten war,
zu stark mit einer Verarbeitung oder einem Übertragen von weiteren Daten
belastet ist, um das neue Datenpaket adäquat zu behandeln, welches
der Verarbeitungsknoten 530 zu routen wünscht. Alternativ kann ein
Umsortieren auftreten, wenn ein Wunsch vorliegt, einen wirksamen Lastausgleich
durchzuführen
oder eine Daten-Bandbreite über das
CDN hinweg zu verwenden. In weiteren Umständen kann ein Umsortieren basierend
auf Prioritäts-Zuordnungen auftreten,
welche einem derzeitigen Netzwerkverkehr auf den derzeit verfügbaren Verbindungen
und Knoten zugeordnet sind.
-
In
einer Ausführungsform,
wenn ein Umsortieren entweder zum Unterstützen oder zum Zurückstufen
eines Knotens innerhalb der Routing-Tabelle 501 auftritt,
kann die Umsortierung innerhalb der CDN-Routing-Datenstruktur 500 unter Verwendung irgendeiner
formalen Bezeichnung 503 erfasst und einbehalten werden.
Daher kann irgendein nachfolgender Verarbeitungsknoten 530 die
formale Bezeichnung erfassen und diese dazu verwenden, um Regeln 502 selektiv
zu verarbeiten, um zu verhindern, dass bestimmte Regel-Aktionen stattfinden, wie
beispielsweise eine Neuunterstützung
eines zuvor zurückgestuften
Knotens. Die formale Bezeichnung 503 kann den Regeln 502 oder
der Routing-Tabelle 501 zugeordnet werden.
-
Obwohl
hier spezifische Ausführungsformen dargestellt
und beschrieben wurden, wird der Fachmann anerkennen, dass jegliche
Anordnung, welche dazu ausgelegt ist, um den gleichen Zweck zu erreichen,
die gezeigten spezifischen Ausführungsformen ersetzen
kann. Diese Offenbarung dient dazu, um jegliche Adaptionen oder
Veränderungen
auf verschiedene Ausführungsformen
der Erfindung abzudecken. Es ist zu verstehen, dass die obige Beschreibung
lediglich aus Gründen
der Darstellung gemacht wurde. Kombinationen der obigen Ausführungsformen
und weiterer Ausführungsformen,
welche hier nicht speziell beschrieben sind, werden dem Fachmann
bei der Bewertung der obigen Beschreibung deutlich. Der Umfang von
verschiedenen Ausführungsformen
der Erfindung enthält
jegliche weitere Anwendungen, in welchen die obigen Strukturen und Verfahren
verwendet werden. Daher sollte der Umfang von verschiedenen Ausführungen
der Erfindung mit Bezug auf die anliegenden Ansprüche, zusammen
mit dem vollen Bereich von Äquivalenten,
auf welche die Ansprüche
berechtigt sind, bestimmt werden.