-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zum Optimieren des Leitens (bzw. Routing) von Anforderungen in einem
Netz, im Besonderen, jedoch nicht ausschließlich, zum Optimieren von Anforderungen
in einem Paketvermittlungskommunikationsnetz, wie z. B. einem MPLS
(Multi Protocol Label Switching-)-Paketvermittlungskommunikationsnetz.
-
MPLS
wird in Kommunikationsnetzen, im Besonderen in ATM- und IP-Netzen (=
Asynchronous Transfer Mode and Internet Protocol networks = Asynchronübermittlungs-
und Internetprotokoll-Netzen) verwendet, um zusätzliche Merkmale, z. B. exakte
Steuerung des Leitens, bereitzustellen, was verbesserte Kundendienste
ermöglicht.
MPLS wurde ursprünglich
entwickelt, um Leistung und Netzskalierbarkeit zu verbessern. Eine Arbeitsgruppe
innerhalb der IETF (Internet Engineering Task Force = Internet-Arbeitsgruppe)
ist für
Standardisierungsaufgaben auf diesem Gebiet zuständig, was in „Kommentaranforderungen" (RFCs = Requests
for Comment) dokumentiert ist.
-
Wie
weithin bekannt ist, werden in einem Paketvermittlungsnetz Datenpakete über eine
Mehrzahl von Verknüpfungen
bzw. Verbindungen von einem Startpunkt zu einem Zielpunkt geleitet.
Die Verknüpfungen
sind durch Router gekoppelt, die die Pakete erhalten und entscheiden,
auf welcher Verknüpfung
abhängig
von unterschiedlichen Faktoren, wie z. B. natürlich dem Zielpunkt des Pakets,
das Paket versendet werden soll. Der Router kann jedoch auch basierend
auf dem Verkehr auf den Verknüpfungen
und, in manchen Fällen,
auf der Priorität
des bestimmten Datenpakets entscheiden, wie das bestimmte Paket
geleitet werden soll. Andererseits wird in einem MPLS-Netz einem
bestimmten ankommenden Paket durch einen Etikettkantenrouter (LER
= Label Edge Router) am Anfang der Route des Pakets durch das Netz
oder durch eine bestimmte Region des Netzes ein „Etikett" zugewiesen. Das dem Paket zugewiesene
Etikett liefert Informationen bezüglich einer bestimmten Route,
die das Paket durch das Netz nehmen soll. Somit werden Pakete entlang
eines Etikettvermittlungswegs (LSP = Label Switched Path), von einem
Etikettvermittlungsrouter (LSR = Label Switching Router) zum nächsten weitergeleitet,
wobei jeder LSR Weiterleitentscheidungen ausschließlich aufgrund
des Inhalts des Etiketts trifft. Bei jedem „Sprung" streift der LSR das bestehende Etikett
ab und bringt ein neues Etikett an, das dem nächsten LSR angibt, wie das
Paket weitergeleitet werden soll.
-
Da
der Verkehr, der entlang des Etikettvermittlungswegs fließt, durch
das an dem Eingangsknoten des LSPs angebrachte Etikett definiert
ist, können
diese Wege als Tunnel behandelt werden, die unter die normalen IP-Leit-
und- Filtermechanismen
tunneln. Wird ein LSP auf diese Weise verwendet, wird es als ein LSP-Tunnel
bezeichnet.
-
LSP-Tunnel
erlauben die Implementierung einer Vielfalt von auf Netzleistungsoptimierung
bezogenen Taktiken. Zum Beispiel können LSP-Tunnel automatisch
oder manuell von Ausfällen, Überlastungen
und Engpässen
im Netz weggeleitet werden. Ferner kann eine Mehrzahl paralleler
LSP-Tunnel zwischen zwei Knoten eingerichtet werden, und der Verkehr
zwischen zwei Knoten kann gemäß der lokalen
Taktik auf die LSP-Tunnel abgebildet werden.
-
Zur
effizienten Verwendung verfügbarer
Netzressourcen wird Verkehrstechnik benötigt. Um dies zu erreichen
muss jedoch ein Verständnis
der Verkehrsmuster auf dem Netz und jeglicher Probleme, die vorhanden sein
können,
wie z. B. Ausfälle, Überlastungen
und Engpässe
des Netzes, erlangt werden. Eine mögliche Herangehensweise ist
das Überwachen
der Verknüpfungen
in dem MPLS-Netz. Dies stellt sicher, dass vordefinierte Dienstgüte (QoS
= Quality of Service)-Grade und Dienstgradvereinbarungen (SLAs =
Service Level Agreements) erfüllt
sind.
-
Eine
Anforderung stellt in der Regel eine Forderung nach einem gewissen
Betrag an Bandbreite zwischen einem Eingangsknoten und einem Ausgangsknoten,
oft mit einer zugehörigen
Verkehrsklasse, oder eine QoS-Forderung dar. Anforderungen entstehen
aus Vielzahl von Quellen. Eine Aufforderung zur Bereitstellung einer
Videoverknüpfung
mit hoher Bandbreite kann als eine Anforderung betrachtet werden.
Eine andere Quelle von Anforderungen sind angehäufte „Mikroflüssen" mit einer gemeinsamen Verkehrsklasse,
die ein Kernnetz von einem Eingang zu einem Ausgang kreuzen, d.
h. eine Anforderung kann einen einzigen Fluss mit hoher Bandbreite
tragen oder aus vielen kleineren Flüssen gebildet sein. Eine Verkehrsklasse
beschränkt die
annehmbaren Routen, die verwendet werden können, um die Anforderung zu
bedienen, und verwendet dabei Parameter wie z. B. Maximalverzögerung oder
Maximalkosten. In manchen Fällen
ist eine Anforderung nach Bandbreite, mit einer bestimmten QoS,
im Zeitverlauf ausreichend vorhersagbar, sodass den MPLS-Wegen ein
Verkehr zugewiesen werden kann, und dann die besten Routen für diese
Wege bestimmt werden können,
was Überlastung
minimiert. Solange die Veränderlichkeit
bei Bandbreitenforderungen nicht überhand nimmt, kann eine prozessentkoppelte
(Offline-) Wegplatzierung, gekoppelt mit der Verwendung einer direkt prozessgekoppelten
(Online-) Feinabstimmung, um die Belegungen bzw. Reservierungen
während
der „Laufzeit" einzustellen, eine
nützliche
Netzoptimierungsstrategie ergeben, wie dies z. B. in dem Weißbuch „Auto-bandwidth
allocator for MPLS traffic engineering", Cisco. 2003 erörtert ist. Offline- und Online-Anforderungsoptimierung
findet in der Regel aus unterschiedlichen Gründen und in unterschiedlichen
Zeitmaßen
statt, wobei jeweils unterschiedliche Mechanismen verwendet werden.
-
ATM-Netze
wurden früher
in Netzkernen verwendet, und es waren Offline-Werkzeuge entwickelt
worden, um das Leiten von Wegen durch ATM-Netz-„Wolken" zu optimieren. Diese Werkzeuge wurden
schnell angepasst, um die Offline-Optimierung von LSPs mit garantierter
Bandbreite durch MPLS-Wolken zu unterstützen. In Anbetracht der kleinen
Größe typischer
Kernnetze war diese Optimierungsproblematik angemessen lenkbar.
Die Hauptbeschränkung
bestand darin, dass Anforderungen nicht geteilt werden dürfen. Sie
stellen eine Sammlung angehäufter
Flüsse
dar, und es ist schwierig, dieselben über eine Mehrzahl von Wegen
zu teilen, ohne dass dies eine unnötige Neuordnung der Pakete
innerhalb der einzelnen Flüsse
mit sich bringt.
-
Die
Notwendigkeit eines Dienstgefälles
zwischen Flüssen
ist in der letzten Zeit immer wichtiger geworden, da die Betreiber
darum kämpfen,
profitable Einnahmeströme
zu finden. Es gibt jedoch eine Begrenzung dessen, wie viel Dienstgefälle erzielt
werden kann. Ein Verfahren ist die Verwendung von MPLS, um eine
Mehrzahl von Wegen über
dem Netz bereitzustellen und anschließend Wegen Flüsse basierend
auf ihrer Verkehrsklasse zuzuweisen. Dies kann jedoch zusätzliche
Komplexität
in einen Teil des Netzes, der bereits stark beansprucht ist, einfließen lassen.
-
In
letzter Zeit hat sich der MPLS-Bereich allmählich aus dem Kern in den Zugangsabschnitt
von Netzen, die als Zugangsnetze bekannt sind, herausbewegt. Dies
macht es möglich,
dass Pakete klassifiziert und den LSPs zugewiesen werden, bevor
Sie den Kern erreichen, und zwar unter Verwendung des Tunnelns,
um den gewünschten
Weg über
den Kern auszuwählen
und durch Minimieren der Signalisierung und des Zustands, die durch
die Kernrouter unterstützt
werden müssen.
In komplexeren Szenarien erlaubt dies dem Betreiber, verschiedene
Wege auch über
die Zugangsnetze auszuwählen.
-
Dieser
Trend hat etliche Folgen für
jede Offline-Optimierung.
Die Größe der MPLS-Wolke
ist nicht länger
auf die Größe des Kernnetzes
beschränkt.
Dies führt
zu einem ernstzunehmenden Skalierungsproblem für jedes Optimierungswerkzeug
(Optimierer), was die Entwicklung von Techniken erfordert, die die
Problematik in etwas leichter Handzuhabendes zerlegen. Der in den
Zugangsschichten entstehende Verkehr ist in der Regel weniger angehäuft als
der im Kern und weist daher größere Fluktuationen
auf. Dies macht es schwierig, LSPs zu identifizieren, die ausreichend
beständig
und stabil sind, um für
das Offline-Leiten verwendet werden zu können.
-
Derartige
Systeme sind in den folgenden Weißbüchern erläutert: „Traffic optimizer product
overview", Cplane
2003; und „IP/MPLSView:
Integrated network planning, configuration management & performance management", WANDL 2002; und
ermöglichen
es einem Betreiber, MPLS-Anforderungen über dem Kern eines Netzes zu
optimieren. Sie gehen von einer vordefinierten Partition des Netzes
in Zugangs- und Kernrouter aus, so dass die zu optimierenden Anforderungen
anschließend
auf den Kern beschränkt
werden. Andere Anforderungen können
in dem Zugangsnetz ihren Ursprung haben, wie z. B. diejenigen in
einem Voice-Over-IP (VoIP-Netz). Es gibt etliche Gründe, weshalb
die „Zugangsnetz"-Optimierungsproblematik anders als die
entsprechende Kernproblematik behandelt werden sollte.
-
Ein
Grund ist, dass die globale Optimierung einer großen Anzahl
von Anforderungen, die sich über
viele Router erstrecken, rechentechnisch sehr kostenintensiv ist.
Diese Kosten erhöhen
sich rapide mit der Erhöhung
der Anzahl von Anforderungen und/oder Routern. Ein Zerlegen des
Problems in eine Sammlung einfacher Probleme ist wesentlich, wenn
realistische Optimierungszeiten erzielt werden sollen.
-
Ein
zweiter Grund ist, dass in vielen Organisationen verschiedene Personengruppen
für die
Verwaltung der Kern- und Zugangsnetze verantwortlich sind. Selbst
wenn die Anforderungen über
die gesamte Wolke geleitet werden könnten, verhindern unter Umständen diese
administrativen Teilungen einen Einsatz einer derartigen Lösung. Ein
besserer Ansatz könnte
es sein, die Zugangsanforderungen zu verwenden, um einen Satz von
Forderungen für
Kernanforderungen herzustellen, die nötig sind, um diesen Verkehr
zu unterstützen.
Diese Forderungen könnten
anschließend
an die die Optimierung des Kerns des Netzes handhabende Gruppe (die
Kerngruppe), die die Platzierung dieser Anforderungen unter Verwendung
herkömmlicher
oder neuer Optimierungstechniken optimieren kann, übergeben
werden. Die die Optimierung des Zugangsabschnitts des Netzes handhabende
Gruppe (die Zugangsgruppe) würde
die Lösungen
dieser Forderungen verwenden, um LSPs zu bauen, um die ursprünglichen
Anforderungen zu unterstützen.
Die von einem Satz von Zugangsanforderungen auf den Kern projizierten
Forderungen können
sich in ihrem Charakter von einem herkömmlichen Satz von Kernanforderungen
ziemlich unterscheiden, und erfordern damit eventuell andere Kernoptimierungswerkzeuge.
-
Ein
weiterer Grund basiert auf der Tatsache, dass ein sprungweises Bereitstellen
eines LSPs über
die gesamte Route zwischen Eingang und Ausgang uneffizient sein
kann. Jeder Router entlang des Wegs muss den Signalisierungsverkehr,
der nötig
ist, um den LSP aufrechtzuerhalten und um einen Zustand innerhalb
des Routers zu reservieren, verarbeiten. Es ist möglicherweise
effizienter, einen Satz von LSPs über den Kern zu definieren
und diese dann als Tunnels für
die dauerhaften LSPs, die in dem Zugangsnetz ihren Ursprung haben,
zu verwenden. Es würden
dann nur die Zugangsrouter einen Zustand, der für die Zugangs-LSPs spezifisch
ist, speichern.
-
Eine
Optimierung der Platzierung von Anforderungen über ein Netz ist rechentechnisch
kostenintensiv. Es gibt zwei Hauptansätze, um diese Problematik anzugehen,
die im Fachgebiet als Mehrgüterflussproblematik
bekannt ist, und zwar eine Strategie auf der Basis einer Kante und
eine Strategie auf der Basis eines Wegs, die beide ebenfalls im
Fachgebiet bekannt sind.
-
Bei
einer Strategie auf der Basis einer Kante versucht ein lineares
Programm, den Betrag jeder Anforderung, die durch jede Verknüpfung in
dem Netz getragen wird, zu berechnen. Im schlimmsten Fall, also
bei einem Netz voll von Anforderungen, und einem hochgradig verbundenen
Netzgraphen, gibt es 0(n2) Anforderungen
und 0(n2) Kanten. Die Abhandlung „MPLS traffic
engineering in OSPF networks – a
combined approach",
von Köhler,
S. und Binzenhöfer,
A., veröffentlicht
in Tech. Rep. 304, Institut für
Informatik, Universität von
Würzburg,
Februar 2003 enthält
fünf Beispieltopologien
ansteigender Größe. Es kann
auch gezeigt werden, dass sich Rechenzeiten mit einem Ansteigen
der Netzgröße schnell
erhöhen.
Eine Strategie auf der Basis einer Kante weist einen weiteren Nachteil
auf, wenn die Anforderungen mit zusätzlichen QoS-Beschränkungen versehen
sind. Die durch den Optimierer gefundenen Wege können möglicherweise die Beschränkungen,
wie z. B. einer Verzögerung
oder Sprunglänge,
nicht erfüllen,
was zu einer ungültigen
Lösung
führt.
Versuche, diese Beschränkungen
während
des Optimierungsprozesses durchzusetzen, führen schnell zu schwer zu bewältigenden
Modellen, selbst bei kleinen Netzen. Ein Ansatz auf der Basis einer
Kante eignet sich deshalb am besten für Anforderungen mit liberalen
QoS-Beschränkungen,
wie z. B. Bestversuchsverkehr.
-
Ein
anderer Ansatz kann sein, zuerst einen Satz von möglichen
Wegen für
jede Anforderung zu identifizieren, von denen jeder die QoS-Beschränkungen
erfüllt.
Anschließend
kann ein lineares Programm verwendet werden, um zu berechnen, wie
viel jeder Anforderung von jedem Weg getragen werden soll. Wenn
nur eine kleine Anzahl von Wegen für eine Anforderung verwendet
wird, kann die Größe des Optimierungsproblems
auf ein lenkbares Maß reduziert
werden. Die Kehrseite ist, dass die Lösung nur so gut wie die Auswahl der
Wege ist. Wird die Anzahl der Wege erhöht, um die Möglichkeit
zu erhöhen,
dass eine optimale Lösung gefunden
wird, steigen die Optimierungszeiten sehr schnell an, vor allem
bei hochgradig verbunden Netzgraphen.
-
Bei
Anforderungen mit strikten QoS-Eigenschaften ist es möglicherweise
die beste Strategie, einen Ansatz auf der Basis eines Wegs zu verwenden
und zu hoffen, dass die Anzahl der gültigen Wege für jede Anforderung
möglichst
klein ist. Steigt jedoch die Netzgröße an, ist schnell das Stadium
erreicht, in dem die Optimierungszeiten ein nicht mehr lenkbares
Maß erreicht
haben. Der Fall, bei dem eine Mehrzahl von Wegen durch das Zugangsnetz
vorliegt, schafft ebenso Schwierigkeiten für den Ansatz auf der Basis
eines Wegs. Bei der Verwendung etwa eines A*Prunes, wie es in „A*prune:
An algorithm for finding k shortest paths subject to multiple constraints,
Liu, C. und Ramakrishnan, K. C. 2001, in INFOCOM. 743-749" offenbart ist, kann
möglicherweise
festgestellt werden, dass sich die meisten Wege einen gemeinsamen
Teilweg über
den Kern teilen. In vielen Fällen
ist mehr Variabilität
bei den Wegen erforderlich, um eine gute Lösung für die Optimierungsproblematik
zu finden.
-
In
einem typischen Backbone-Netz bzw. Hauptnetz können möglicherweise hundert oder mehr
Knoten vorliegen. Selbst eine einzige Verkehrsklasse, mit Anforderungen
zwischen jedem Paar von Vorrichtungen, erzeugt ein Problem, das
direkt zu optimieren sehr teuer wäre. Es scheint offensichtlich,
dass ein Bedarf besteht, eine Vorrichtung und ein oder mehrere Verfahren
zur Vereinfachung der Anforderungsplatzierungsproblematik zu finden,
sodass Probleme dieser Größenordnung
oder größere angemessen
angegangen werden können.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Optimieren
des Leitens von Anforderungen in einem Netz mit verbesserten Charakteristika
bereitzustellen, das die Nachteile des Stands der Technik überwindet
oder zumindest abschwächt.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 8 gelöst.
-
Folglich
liefert die Erfindung ein Verfahren zum Optimieren des Leitens von
Anforderungen in einem Netz, das durch Verknüpfungen verbundene Knoten aufweist,
wobei jede Anforderung einen Quellenknoten, einen Zielknoten und
mindestens eine Anforderungsparameterforderung aufweist, wobei das
Verfahren folgende Schritte aufweist:
- a) Partitionieren
von Knoten und Verknüpfungen
eines Netzes in einen Satz von Clustern von Verknüpfungen
und Knoten;
- b) Auferlegen einer hierarchischen Baumstruktur auf den Satz
von Clustern, derart, dass jedes beliebige Paar von Clustern einen
eindeutigen Weg zwischen denselben über den nächstliegenden gemeinsamen Vorgänger aufweist.
- c) Bestimmen von optimalen Wegen für alle Anforderungen, derart,
dass die Wege mindestens eine Anforderungsparameterforderung erfüllen, durch
Verarbeiten der Anforderungen in jedem Cluster erst nach dem Verarbeiten
aller sich tiefer auf der gleichen Verzweigung der hierarchischen
Baumstruktur befindenden Cluster, wobei das Verarbeiten jedes Clusters
folgende Merkmale aufweist:
- i. Teilen jeder Anforderung in eine Intra-Cluster-Anforderung, bei
der sich der Quellen- und der Zielknoten in dem gleichen Cluster
befinden, und, falls geeignet, eine Inter-Cluster-Anforderung, bei
der sich der Quellen- und der Zielknoten in unterschiedlichen Clustern
befinden.
- ii. Bestimmen des optimalen Wegs für alle Intra-Cluster-Anforderungen,
um das mindestens eine Anforderungsparameterforderung zu erfüllen; und
- iii. Aufwärts-Übergeben
aller Inter-Cluster-Anforderungen
zu dem nächsten
Cluster in der hierarchischen Baumstruktur, um in demselben als
eine Anforderung verarbeitet zu werden.
-
Bei
einem Ausführungsbeispiel
umfasst das Verfahren ferner ein Übergeben von Informationen
bezüglich
der Netzkosten der Wege, die bereits zu dem nächsten Cluster in der hierarchischen
Baumstruktur aufwärtsoptimiert
worden sind, so dass die bereits aufgewendeten Netzkosten bei der
Bestimmung des optimalen Wegs für
Intra-Cluster-Anforderungen, die noch optimiert werden müssen, verwendet
werden können.
-
Die
Netzkosten können
Kosten aufweisen, die im Hinblick auf eine bestimmte Anforderungsparameterforderung,
wie z. B. eine Verkehrsklassenforderung, z. B. eine Maximalverzögerungsforderung,
anfallen.
-
Die
Bestimmung von optimalen Wegen für
alle Anforderungen kann ein Bestimmen optimaler Wege basierend auf
mindestens einer Netzparameterforderung, wie z. B. einer Verkehrsdichteforderung,
umfassen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
schematisches Diagramm einer Vorrichtung zum Optimieren des Leitens
von Anforderungen in einem Netz gemäß einem ersten Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 ein
Flussdiagramm, das ein Verfahren zum Betreiben eines Netzstrukturanalysators,
der in die in 1 gezeigte Vorrichtung eingegliedert
ist, beschreibt;
-
3 ein
schematisches Diagramm eines Netzes;
-
4 ein
Diagramm, das die Ergebnisse einer Zweifach-Verbundene-Komponenten-Analyse, wie
sie auf dem in 3 gezeigten Netz durchgeführt wird,
veranschaulicht;
-
5 ein
Diagramm, das die Ergebnisse eines Anwendens vom Baumzusammenführregeln
auf die Ergebnisse der 4 veranschaulicht;
-
6 ein
Diagramm, das die Ergebnisse eines Auferlegens einer hierarchischen
Baumstruktur auf die Ergebnisse der 5 veranschaulicht;
-
7 ein
Diagramm, das ein einfaches Anforderungsersetzungs- und -Optimierungsbeispiel
gemäß einem
ersten Ausführungsbeispiel
der vorliegenden Erfindung veranschaulicht;
-
8 den
Anforderungsteilungsprozess für
einen Eingangscluster, gemäß einem
ersten Ausführungsbeispiel
der vorliegenden Erfindung; und
-
9 ein
Flussdiagramm einer Anforderungsersetzungs- und -Optimierungsoperation der Vorrichtung der 1.
-
Somit
ist es, wie im Vorhergehenden erläutert, erwünscht, das Leiten von Anforderungen
einem Telekommunikationsnetz optimieren zu können, um die Kapazität des Netzes
zu erhöhen.
Die vorliegende Erfindung liefert in einem ersten Ausführungsbeispiel
ein Verfahren und eine Vorrichtung zum Ausführen einer derartigen Optimierung
durch Analysieren des Netzes und virtuelles Organisieren der Router
oder Knoten in Cluster, wobei die Cluster anschließend hierarchisch
organisiert werden, wobei sich der „zentrale Kern" des Netzes an der
Wurzel dieser Hierarchie befindet.
-
Somit
ist 1 ein schematisches Diagramm, das die Architektur
eines Anforderungsoptimierers gemäß einem ersten Ausführungsbeispiel
der vorliegenden Erfindung zeigt. Der Anforderungsoptimierer 51 umfasst
eine Eingangshandhabungseinrichtung 53, die, über eine
Eingangsverknüpfung 52,
Details der zu optimierenden Netzstruktur und Anforderungen erhält. Die
Eingangshandhabungseinrichtung 53 übergibt die Netzstrukturdetails
und die Anforderung über
eine Verknüpfung 54 an
einen Speicher 59. Ein Netzstrukturanalysator 55 ist über eine
Zweiwegeverknüpfung 63 mit
dem Speicher 59 gekoppelt und führt eine Analyse der Netzstruktur,
wie es nachfolgend weiter beschrieben wird, durch. Eine Anforderungsverwaltungseinrichtung 57 ist über eine
Zweiwegeverknüpfung 60 ebenfalls
mit dem Speicher 59 und über eine Verknüpfung 56 mit
dem Netzstrukturanalysator 55 gekoppelt. Eine Ausgangshandhabungseinrichtung 61 ist über eine
Verknüpfung 58 mit
dem Speicher 59 gekoppelt und ermöglicht externen Zugang zu den
Ergebnissen über
eine Ausgangsverknüpfung 62.
Die Ausgangshandhabungseinrichtung 61 kann die Ergebnisse
z. B. auf einer GUI (Graphical User Interface = graphische Benutzeroberfläche) bereitstellen.
Der Anforderungsoptimierer 51 könnte auf einer Unix-Maschine
implementiert sein, einem Fachmann ist jedoch bewusst, dass er auch
in einer beliebigen anderen geeigneten Art und Weise implementiert
sein kann. Die Eingangshandhabungseinrichtung 53 kann auch
Benutzerkonfigurationseingaben aufnehmen, die nachfolgend erläutert werden.
-
2 zeigt
ein schematisches Flussdiagramm, das die allgemeine Betriebsweise
des in den Anforderungsoptimierer der 1 eingegliederten
Netzstrukturanalysators beginnend bei Punkt „S" und endend bei Punkt „F" beschreibt.
-
Somit
wird im Allgemeinen zuerst die Netzstruktur analysiert, um die Knoten
in Cluster zu partitionieren (siehe Element C1), woraufhin in Element
C2 eine Baumhierarchie auf die Cluster auferlegt wird. Es ist offensichtlich,
wie es nachfolgend noch genauer beschrieben sein wird, dass in einer
hierarchischen Baumstruktur etliche Verzweigungen vorliegen, wobei
jeder Cluster auf einer Verzweigung in der Richtung des Kerns mit
einem einzigen „Stamm"-Cluster verbunden
ist, wobei dieser „Stamm"-Cluster wiederum
in der Richtung des Kerns mit einem weiteren „Grundstamm"-Cluster (falls erforderlich)
verbunden ist, zurück
bis zu dem Kern (oder „Wurzel")-Cluster selbst.
Um alle Cluster zu optimieren, verläuft die Optimierung von den
Nachfolgerclustern zu den Vorgängerclustern.
Ein „Nachfolger"-Cluster wird als
der Cluster angenommen, der in einem beliebigen Baum am weitesten
von dem Kerncluster entfernt ist. Somit wird der jüngste nicht
optimierte Cluster als erstes bestimmt (siehe Element C3) und optimiert,
und anschließend
wird ein anderer jüngster
nicht optimierter Cluster bestimmt und optimiert. Auf diese Art
wird kein Cluster optimiert bevor nicht alle seine „Nachfolger"-Cluster optimiert
worden sind.
-
Eine
Optimierung eines Clusters bringt ein Teilen irgendwelcher Inter-Cluster-Anforderungen,
die entweder einen Startpunkt oder einen Zielpunkt in diesem Cluster
aufweisen, in ein Paar von Anforderungen, von denen eine eine Intra-Cluster-Anforderung
(bei der beide Endpunkte in diesem Cluster liegen) ist, und die
andere eine Inter-Cluster-Anforderung
(siehe Element C5) ist, mit sich. Die Intra-Cluster-Anforderungen
werden optimiert und die Inter-Cluster-Anforderungen
werden in der Baumhierarchie zu dem Stammcluster des bestimmten
Clusters aufwärtsgereicht,
wo sie als Anforderungen in diesem Cluster behandelt werden. Anschließend wird
in Element C6 eine Bestimmung getroffen, ob alle Cluster optimiert
worden sind. Ist dies der Fall, endet der Prozess an Punkt „F". Ist dies nicht
der Fall, bewegt sich der Prozess zurück zu Element C3, wo ein ande rer
jüngster
nicht optimierter Cluster auf einer Verzweigung gefunden wird. Somit
optimiert der Prozess alle Cluster von der Peripherie der hierarchischen
Baumstruktur aus zum Kerncluster, bis alle Cluster optimiert sind.
-
Somit
muss das Netz analysiert werden, um das Netz zu zerlegen, um die
Knoten in Cluster zu partitionieren. Im Allgemeinen ist ein Cluster
eine Gruppe von eng verbundenen Knoten und Verknüpfungen zwischen denselben,
wobei der Cluster selbst mit einem anderen Cluster eng verbundener
Knoten lose verbunden ist. Jeder Cluster ist mit einem oder mehreren
Verbindungsknoten verbunden bzw. zusammengefügt, die diesen Cluster mit
einem anderen Cluster verbinden, so dass ein Verbindungsknoten als
Teil beider Cluster betrachtet werden kann. In manchen Fällen kann
ein Cluster natürlich
nur einen oder mehrere Verbindungsknoten aufweisen.
-
Um
das Element C1 der 2 besser zu beschreiben, zeigt 3 ein
schematisches Diagramm eines einfachen Netzes mit einer Mehrzahl
von Knoten n1, n2,
n3, ..., n26. Die
Knoten n1, ..., n26 sind
durch Verknüpfungen 13 auf
verschiedene Arten zu einem Netz verbunden. Wie im Vorhergehenden
erwähnt,
wird zuerst das Netz analysiert, um die Knoten in Cluster von Knoten
zu partitionieren. Ein beliebiger Typ einer geeigneten Clusteranalyse
kann verwendet werden. Ein bekannter Typ einer Analyse, die verwendet
werden kann, ist z. B. die Zweifach-Verbundene-Komponenten-Analyse. Einem Fachmann
ist jedoch bewusst, dass eine beliebige geeignete Clusteranalysetechnik,
wie z. B. Principal Components (Hauptkomponenten) stattdessen verwendet
werden kann. 4 zeigt die Ergebnisse einer
Zweifach-Verbundene-Komponenten-Analyse,
wie sie auf dem Netz aus 3 durchgeführt wurde.
-
Um
die Zweifach-Verbundene-Komponenten-Analyse durchzuführen, müssen die
folgenden Regeln angewendet werden.
- • ein Knoten
n in einem verbundenen Netz ist ein Verbindungsknoten, wenn die
Löschung
des Knotens n aus dem Netz, zusammen mit der Löschung sämtlicher Verknüpfungen
zu Konten n, das Netz in zwei oder mehr nicht-leere Abschnitte abtrennt;
- • ein
Netz (-Abschnitt) ist zweifach verbunden, wenn, und nur dann wenn,
es keine Verbindungsknoten enthält;
- • ein
Netzabschnitt ist maximal zweifach verbunden, wenn, und nur dann
wenn, das Netz keinen weiteren zweifach verbundenen Abschnitt, der
alle Knoten und Verknüpfungen
des maximal zweifach verbundenen Netzabschnitts enthält, aufweist.
Ein maximal zweifach verbundener Netzabschnitt ist ein zweifach
verbundener Cluster;
- • zwei
zweifach verbundene Cluster können
höchstens
einen gemeinsamen Knoten aufweisen, und dieser Knoten ist ein Verbindungsknoten;
und
- • Knoten
mit Verknüpfungen
von mehr als einem Cluster sind Verbindungsknoten.
-
Nach
dem Durchführen
der Zweifach-Verbundene-Komponenten-Analyse wird das Netz in sich daraus ergebene
Cluster mit den Nummern C0, C1, C2, ..., C12, die durch in
4 gezeigte
Verbindungsknoten verbunden sind, partitioniert. Somit enthält, wie
es in Tabelle 1 gezeigt ist, jeder der Cluster einige der Knoten
von dem Netz aus
3, die keine Verbindungsknoten
sind, sowie auch die Verbindungsknoten, die einen Teil jedes der
Cluster bilden, die sie verbinden (die Verbindungsknoten sind teilweise
außerhalb
jedes der Cluster, die sie verbinden, gezeigt, um die Sichtbarkeit
zu erleichtern), wie folgt:
Tabelle
1 Ergebnisse der Zweifach-Verbundene-Komponenten-Analyse
-
Zum
Beispiel enthält
Cluster C0 die ursprünglichen
Knoten n5, n6, n7, n8, n9,
n10 und n11, während die Cluster
C4 und C5 lediglich die Verbindungsknoten n10,
n15 und n21 bzw.
n4 und n5 aufweisen.
Alle Knoten aus dem Netz der 3 liegen
folglich entweder vollständig
innerhalb eines Clusters oder sie sind ein Verbindungsknoten.
-
Obwohl
es nicht erforderlich ist, ist es bevorzugt, diese Clusterstruktur
durch ein Finden von Clustern, die zusammengeführt werden können, zu
vereinfachen. Es ist offensichtlich, dass Knoten in einer Baumstruktur
leicht handzuhaben sind, da es einen eindeutigen Weg zwischen beliebigen
zwei Knoten in einem Baum gibt. Somit wäre ein Platzieren von Anforderungen
gehaltlos, da es keine Wahl gibt. Da eine gewöhnliche Zweifach-Verbundene-Komponenten-Analyse
Bäume in
eine Hierarchie von Clustern teilt, ist es nicht immer effizient,
diesen in eine große
Anzahl kleiner Cluster zu teilen. Auch wenn es nicht erforderlich
ist, mag es daher nützlich
(effizient) sein, diese Ergebnisse weiter zu verarbeiten, um nach
Clustern zu suchen, die aus Baumteil strukturen erzeugt wurden, und
dieselben zu größeren Strukturen
zusammenzuführen.
Alternativ können auch
die anderen Clustertechniken verwendet werden, die keinen derartigen
weiteren Verarbeitungsschritt erforderlich machen. Zum Beispiel
kann die Zweifach-Verbundene-Komponenten-Analyse dahingehend verändert werden,
dass sie ein derartiges Zusammenführen in ihrem Verlauf durchführt. Die
erste Baumclusterzusammenführregel
kann wiederholt verwendet werden, um Geschwisterkomponenten zusammenzuführen.
-
5 zeigt
ein Diagramm, das die Ergebnisse des Anwendens der Baumzusammenführregeln
auf die vorhergehenden Ergebnisse veranschaulicht. Bei dieser Figur
wurde die Notierung „x ∪ y" verwendet, um den Cluster,
der die Vereinigung der Cluster „x" und „y" enthält, zu bezeichnen. Zum Beispiel
veranschaulicht C7 ∪ C8
die Vereinigung der Cluster „C7" und „C8".
-
Das
in 5 gezeigte Clusterdiagramm liefert eine gewisse
Vereinfachung hinsichtlich des Knotennetzes der 3,
jedoch muss nach wie vor der Kerncluster, d. h. der Kern des Netzes
identifiziert werden (dies bezieht sich auf Schritt C2 der 2).
Der Kerncluster kann auf viele verschiedene Arten bestimmt werden.
Z. B. erscheint es einleuchtend, den größten Cluster einschließlich seiner
Verbindungsknoten auszuwählen,
außer
dass es bei einem sehr großen
Netz mehrere große
Knoten statt dem „echten" Kern geben kann. Ähnlich scheint
eine Wahl des Clusters mit der kleinsten maximalen Weglänge zu den
anderen Clustern einleuchtend, da dies die Möglichkeit erhöht, die
Cluster im „Zentrum" des Baums zu finden.
Jedoch besteht bei einem Netz mit vielen Sprüngen die Gefahr, dass ein solcher
Ansatz entgleist, da ein Cluster in der Nähe des Endes einer derartigen
Kette von Clustern potentiell eher unrichtigerweise als der Kerncluster
identifiziert wird.
-
Eine
sicherere Lösung
ist es, den Cluster zu wählen,
dessen durchschnittliche Weglänge
zu allen anderen Clustern mini miert ist. Die durchschnittlichen
Weglängen
für das
bezüglich
der 5 dargestellte Beispiel sind in der Tabelle 2
dargestellt.
-
Tabelle
2 Durchschnittliche Weglängen
von jeder Komponente
-
In
Tabelle 2 wurden die Sprünge
von jedem Cluster zu dem nächsten
Cluster gezählt,
d. h., Verbindungsknoten wurden ignoriert. Ein Verwenden der Durchschnittslänge als
das Maß würde dazu
führen,
dass entweder Cluster C0 oder Cluster C4 als die Wurzel gewählt wird.
Da beide Cluster eine identische durchschnittliche Weglänge aufweisen,
ist es unerheblich, welcher gewählt
wird, und zum Zweck der folgenden Erörterung wird Cluster C0 als
der Wurzel- oder Kerncluster gewählt.
Ausgehend von dieser Wahl des Wurzelclusters können die Baumverknüpfungen
geordnet werden werden, um das Konzept der Bewegung zu und weg von
dem Kern einzubringen, wie es in 6 veranschaulicht
ist, um eine hierarchische Baumstruktur bereitzustellen.
-
Wie
es in 6 gezeigt ist, ist der Netzkern als über Verbindungsknoten
mit den anderen Clustern verbundener Cluster C0 gezeigt. Wie bereits
erläutert,
gibt es nach wie vor die Möglichkeit,
dass bei Verwendung dieses Verfahrens die „falsche" Wurzel ausgewählt werden könnte. Deshalb
hebt der Anforderungsoptimierer den oder die Router hervor, von
denen er „glaubt", dass sie den Kerncluster
C0 bilden. Sollte dies inkorrekt sein, stellt der Anforderungsoptimierer
einen Mechanismus bereit, mit dem der Benutzer einen alternativen Router
auswählen
kann. Der diesen Router umfassenden Cluster könnte dann als der Kerncluster
behandelt werden.
-
Nachdem
dem Netz nun eine hierarchische Baumstruktur auferlegt wurde (in
einem virtuellen Sinn, da das tatsächliche Netz offensichtlich
nicht beeinflusst wurde) kann nun der Anforderungsoptimierungsprozess stattfinden.
Einfach ausgedrückt
ist die Strategie, Anforderungen, die sich über mehr als ein Cluster in
dem Netz mit einer Mehrzahl von anderen, die sich jeweils über ein
einziges Cluster erstrecken, zu zerlegen. Ferner sollte die Lösung mit
der Situation umgehen können,
dass eine Mehrzahl von Clustern durchlaufen werden muss, bevor der
Kern erreicht ist. Es sollte für
jeden dieser Cluster eine Optimierung durchgeführt werden, da es nun eine
Mehrzahl von Wegen über
diese Cluster (einige dieser Cluster) gibt. Vor der ausführlichen
Erläuterung
dieses Optimierungsprozesses sei auf folgendes hingewiesen:
- • Alle
verwurzelten (d. h. hierarchischen) Bäume haben ein Cluster im Kern
(Wurzel) und Cluster an den Blättern,
wobei benachbarte Cluster durch Verbindungsknoten voneinander getrennt
sind;
- • Es
gibt für
jede Anforderung einen eindeutigen Weg über den Clusterbaum von dem
Eingang zu dem Ausgang;
- • eine
einzelne Anforderung hat identische Eingangs- und Ausgangsknoten
in dem Clusterbaum;
- • eine
Anforderung ist lokal, wenn der Weg für die Anforderung die Länge 1 hat,
sonst ist er nicht-lokal.
Die Länge darf 0 sein für den degenerierten
Fall einer einzelnen Anforderung an einem Verbindungsknoten;
- • der
Eingangscluster einer Anforderung ist der erste Cluster auf dem
Weg;
- • der
Ausgangscluster ist der letzte Cluster auf diesem Weg;
- • eine
Anforderung durchläuft
ein Cluster C, wenn der Cluster der Weg für die Anforderung ist und weder der
Eingangs- noch der Ausgangscluster ist;
- • jedem
Cluster C ist ein Satz von Anforderungen zugehörig, dessen Weg den Cluster
C mit einschließt. Ebenso
weist jeder Cluster einen Satz von Tochterclustern auf, die möglicherweise
leer sind. Diese sind die Nachfolger des Clusters C in dem über einen
einzigen Verbindungsknoten mit dem Cluster C verbundenen Baum.
-
Wenn
es offensichtlich ist, dass alle einem Cluster zugehörigen Anforderungen örtlich begrenzt
auf den Cluster sind, kann das Leiten dieser Anforderungen leicht über den
Cluster optimiert werden, und zwar durch den Anforderungsoptimierer,
ohne dass irgendwelche anderen Cluster berücksichtigt werden müssen. Werden
Anforderungen vorgefunden, die nicht lokal sind, ist die Strategie
folgende, diese in zwei Anforderungen zu zerlegen, von denen die
eine lokal ist und die andere höher
in dem hierarchischen Clusterbaum beginnt oder endet. Durch wiederholtes
Anwenden dieses Prozesses sind sämtliche
Anforderungen schließlich
lokale Anforderungen irgendeines Clusters. Genauer gesagt, eine
nicht-lokale Anforderung wird zu dem niedrigsten gemeinsamen Vorgänger der
Eingangs- und Ausgangscluster in dem hierarchischen Clusterbaum „angehoben".
-
Der
diesen Prozess komplizierende Faktor sind die QoS-Beschränkungen,
mit der jede Anforderung versehen ist.
-
Diese
definieren die annehmbaren Wege für die Anforderung. Wird eine
Anforderung in eine solche zerlegt, die höher in dem Baum beginnt oder
endet, müssen
neue QoS-Beschränkungen
berechnet werden, die die Kosten zum Erreichen des neuen Endpunktes
von dem ursprünglichen
in Betracht ziehen. Sind alle Knoten innerhalb eines Clusters baumartig
miteinander verknüpft,
könnte
dies in einem einzigen Schritt erfolgen, da die Wege durch derartige
Cluster eindeutig sind, und so wäre
es überflüssig, die
Kosten des Durchlaufens dieser Wege zu berechnen. In einem allgemeineren
Fall kann jedoch eine Mehrzahl von Wegen durch jeden Cluster vorliegen,
und dies führt
zu der Frage, welche Kosten verwendet werden sollten.
-
Ein
Beispiel ist in 7 veranschaulicht, in der der
niedrigste gemeinsame Vorgänger
einer Anforderung d, mit einem Eingangsknoten ni und
einem Ausgangsknoten ne, der Cluster 33 (Ca) ist. Wie ersichtlich ist, gibt es somit
eine eindeutige Sequenz von Clustern, die durch die Anforderung
von dem Eingangsknoten ni in Cluster 33 durchlaufen
werden muss, um Cluster ein 31 (Ca)
zu erreichen. Es gibt natürlich
eine weitere Sequenz von Clustern, die durchlaufen werden muss,
um von dem Cluster 31 (Ca) den
Eingangsknoten ni in Cluster 32 zu
erreichen. Ferner tritt der Weg von dem Knoten ni zu
dem Cluster 31 (Ca) über einen
bestimmten Verbindungsknoten 36 (APe)
in den Cluster 31 (Ca) ein und über einen
anderen Verbindungsknoten 37 (APj) aus
dem Cluster 31 (Ca) aus. Offensichtlich müssen diese
beiden Verbindungsknoten 36 und 37 unterschiedlich
sein, denn wären
sie identisch, wäre
der Cluster, der die linke Tochter des Clusters 36 bildet,
der niedrigste gemeinsame Vorgänger,
und nicht der Cluster 31 selbst. Eine ursprüngliche
Anforderung 30 (d) ist zwischen den Clustern 33 und 32 gezeigt.
-
Um
die Anforderung 30 zu optimieren, ist sie somit in Cluster 33 berücksichtigt
und in eine lokale (Intra-Cluster-)
Anforderung und eine Inter-Cluster-Anforderung geteilt. Der Prozess
des Teilens von Anforderungen ist ferner in Bezug auf 8 beschrieben,
die den Anforderungsteilungsprozess eines Eingangsclusters zeigt.
Obwohl die Anforderungen an beiden oder entweder dem Eingangs- oder dem Ausgangscluster
geteilt werden können,
ist der Prozess im Weiteren nur bezüglich des Eingangsclusters
beschrieben.
-
Somit
kann die von dem Eingangsknoten ni in Cluster 33 stammende
Anforderung d in zwei Teilanforderungen geteilt werden, und zwar
in eine lokale Anforderung dI und der Rest
in eine Inter-Cluster-Anforderung dr. Anschließend kann
die lokale Anforderung dI zusammen mit allen
anderen Intra-Cluster-Anforderungen
in Cluster 33 optimiert werden, und die Inter-Cluster-Anforderung
dr wird aufwärts an den nächsten Cluster 34 in den
Baum übergeben.
Natürlich
ist die ursprüngliche
Anforderung d mit einer QoS-Beschränkung versehen. Diese kann
möglicherweise
die erlaubbare Gesamtverzögerung
entlang jedes beliebigen Weges, der verwendet wird, um den Verkehr
für die
Anforderung d zu tragen, beschränken.
Selbstverständlich
muss eine derartige Begrenzung zwischen der Teilanforderung dr und der Teilanforderung dI aufgeteilt
werden. Je mehr Freiheit dem Leiten über die Anforderung dI gewährt
wird, um so weniger wäre
für das
Leiten der Teilanforderung dr verfügbar und
umgekehrt. Gibt es einen eindeutigen Weg von dem Eingangsknoten
ni in Cluster 33 zu dem Verbindungsknoten 35 zwischen
dem Cluster 33 und dem Cluster 34, dann gibt es
keine Wahl. Die Kosten für die
ursprüngliche
Anforderung d sind durch diesen Weg festgelegt, und können somit
einfach von den ursprünglichen
Kosten abgezogen werden, um die QoS-Beschränkung, die für die Anforderung
dr verwendet werden soll, zu bestimmen.
In einem allgemeineren Fall gibt es jedoch viele Wege, die QoS-Beschränkungen zu
teilen. Die durch den Anforderungsersetzungs- und -Optimierungsprozess
verfolgte Strategie kann sein, zunächst ein Optimierungsproblem
für den
den Eingangsknoten ni enthaltenden Cluster 33 zu
lösen.
Möglicherweise
wird Anforderungen, wie z. B. der Teilanforderung dI bevorzugte
Behandlung gewährt,
um die Wahrscheinlichkeit zu erhöhen,
dass diesen die kürzest
möglichen
Routen durch den Cluster 33 zugewiesen werden. Sobald der
Teilanforderung dI ein Weg zugewiesen worden
ist, kann dieser verwendet werden, um die verbleibenden QoS-Quoten
für die
Teilanforderung dr zu berechnen. Eine ähnliche
Strategie kann verfolgt werden, wenn die Richtungen umgekehrt sind
und der Ausgangscluster für
die ursprüngliche
Anforderung d verarbeitet wird. Nachdem die für die Teilanforderung dr benötigte
QoS-Beschränkung
bestimmt wurde, kann ihre Platzierung an den Stammcluster 33 delegiert
werden. Sobald der gesamte Baum optimiert worden ist, können die
für die
Teilanforderung dI und die Teilanforderung
dr gewählten
Wege verwendet werden, um den für
die ursprüngliche
Anforderung d zu verwendenden Weg zu bestimmen.
-
Es
ist daher ersichtlich, dass einer Anforderung d entweder, in dem
Fall einer lokalen Anforderung, ein Satz von Wegen zugewiesen wird,
oder aber ein Paar von Teilanforderungen (dI,
dr). Der Zweck des Anforderungsersetzungs-
und -optimierungsprozesses ist es, die lokalen Anforderungen oder
Teilanforderungen auf eine Art zu setzen bzw. einzustellen, die
die QoS-Beschränkungen
der Anforderungen erfüllt.
Dies wird mit Bezug auf 9 noch ausführlicher beschrieben. Es sei
jedoch darauf hingewiesen, dass es unter Umständen nicht ausreichend ist,
einer Anforderung lediglich einen Satz von Wegen zuzuweisen; es
muss auch bekannt sein, wie viel der Bandbreite jedem der Wege zugeordnet
sein soll. Zur Erleichterung der Darlegung wird dieses Detail jedoch
im Folgenden ignoriert.
-
9 zeigt
ein Flussdiagramm, das die Elemente des Anforderungsersetzungs-
und -optimierungsprozesses beschreibt. Der Zweck des Anforderungsersetzungs-
und -optimierungsprozesses ist es, Wege für alle Anforderungen in dem
System zu definieren. Während
der Optimierung eines Clusters werden einer lokalen Anforderung
ein oder mehrere Wege zugeordnet. Im Fall einer nicht-lokalen Anforderung
ist die Zuweisung ist die Zuweisung von Wegen implizit durch die
Teilanforderungen dI, dr definiert.
Anfänglich
sind sämtliche
Anforderungen unverarbeitet. Daher wird jeder Cluster verarbeitet,
bis die Warteschlange leer ist. Anders ausgedrückt, ist eine Anforderung nicht
lokal, muss sie ein Cluster über
den eindeutigen Stammverbindungsknoten für diesen Cluster verlassen
oder betreten.
-
Der
Anforderungsersetzungs- und -Optimierungsprozess wird durch die
folgenden Elemente, Bezug nehmend auf 9, bewerkstelligt,
beginnend bei Element S:
- B1: Bilde Warteschlange.
Bilde Warteschlange Q sämtlicher
zu verarbeitender Cluster durch Ausführen eines Nach-Ordnung-Durchlaufs
des Clusterbaums, wobei die Verbindungsknoten übersprungen werden. Der Nach-Ordnung-Durchlauf ist ein
Algorithmus zum Erforschen einer Baumstruktur, der jeden Cluster
in dem Baum aufsucht, nachdem er dessen Töchter aufgesucht hat.
- B2: Definiere Satz. Bilde Satz U, der der Satz sämtlicher
unverarbeiteter Anforderungen sein soll.
- B3: Ist Q leer? Die Warteschlange wird überprüft, um festzustellen, ob sie
unverarbeitete Cluster aufweist. Ist Q nicht leer, fahre zu B4 fort.
Ist sie leer, dann fahre zu B14 fort.
- B4: Nimm ersten Cluster in Warteschlange. Der erste Cluster
in der Warteschlange wird zum Verarbeiten genommen, und der Prozess
geht zu B5.
- B5: Sind alle Anforderungen lokal? Sind alle Anforderungen in
dem Cluster, der verarbeitet wird, lokal? Falls ja, gehe zu B11.
Falls nein, muss es einen Stammverbindungsknoten für den Cluster
geben, und gehe zu Schritt B6.
- B6: Nimm Erste Nicht-Lokale Anforderung. Die erste nicht-lokale Anforderung
wird zum Verarbeiten genommen und der Prozess geht zu B7.
- B7: Ist Cluster Ausgang? Der Cluster, der verarbeitet wird,
ist entweder ein Eingangscluster oder ein Ausgangscluster für die in
Betracht gezogene nicht-lokale Anforderung. Ist er ein Eingangscluster,
geht der Prozess zu B8; falls nicht, zu B9.
- B8: Erzeuge Lokale Teilanforderung. Ist er ein Eingangscluster,
dann wird eine neue lokale Teilanforderung dI von
dem Eingangsknoten ni zu dem Stammverbindungsknoten
erzeugt, und der Prozess geht zu B10.
- B9: Erzeuge Entfernte Teilanforderung. Ist er kein Eingangscluster,
wird eine neue Entfernte Teilanforderung dr von
dem Stammverbindungsknoten zu dem Ausgangsknoten ne erzeugt,
und der Prozess geht zu B10. Es erfolgt ein Eintrag in die Abbildung
der neuen Teilanforderungen. Beim Zufügen eines neuen Eintrags in
eine Abbildung ist es wichtig, einen bereits bestehenden Eintrag
von der Abbildung mit dem gleichen Schlüssel zu entfernen.
- B10: Aktualisiere Satz. Der Satz U der zu verarbeitenden Anforderungen
wird durch die Löschung
der Anforderung, die soeben in zwei geteilt wurde, aktualisiert,
und die neue Entfernte Teilanforderung, d. h. die Inter-Cluster-Teilanforderung,
wird dem Satz hinzugefügt.
Der Prozess kehrt dann zu B5 zurück,
um zu überprüfen, ob
es noch weitere nicht-lokale Anforderungen gibt, die verarbeitet
werden müssen.
- B11: Berechne Satz von Wegen. An diesem Punkt sind alle Anforderungen
in dem Cluster, das verarbeitet wird, lokal, so dass für jede von
denselben ein Satz von Wegen berechnet werden kann. Im allgemeinen Fall
muss ein Optimierungsproblem gelöst
werden. Die Kosten des Leitens der lokalen Anforderungen müssen minimiert
werden, um den entsprechenden fortfahrenden Teilanforderungen die
maximale Leitfreiheit zu gewähren.
Eine Optimierungsstrategie auf der Basis eines Wegs wird nun verwendet
und dadurch begonnen, dass der kürzeste „Gewichtungs"-Weg (oder -Wege)
den lokalen Anforderungen zugewiesen wird, und ein vollständigerer
Satz von Wegen den verbleibenden Anforderungen. Wenn ein einzelnes
Attribut in Betracht gezogen wird, wie z. B. der Sprungzählwert,
bedeutet dies, dass die Wege in Bezug auf die kürzeste Weglänge angewendet werden. Wäre die Gewichtung
Kosten, würden
die Wege nach den geringsten Kosten angewendet werden. Wenn nicht
alle Anforderungen erfüllt
werden können,
muss der Satz von Wegen erweitert werden und der Anforderungsersetzungs- und -optimierungsprozess
wird wiederholt. Wenn es der Anforderungsersetzungs- und -optimierungsprozess
erlaubt, dass einer Anforderung eine Mehrzahl von Wegen zugewiesen
wird, ist die Flexibilität
auf die nicht-lokalen
Anforderungen beschränkt.
Kann eine Anforderung nicht erfüllt
werden, z. B. weil die QoS-Metrik zu restriktiv ist, dann ist der
Satz von Wegen leer.
- B12: Aktualisiere Entfernte Teilanforderungen. Die entfernten
(nicht-lokalen) Teilanforderungen, die in B9 erzeugt wurden, werden
nun mit den gleichen Eigenschaften wie die ursprüngliche Anforderung aktualisiert,
außer
dass die QoS-Beschränkung
um die Gewichtung des der entsprechenden lokalen Teilanforderung
dI zugeordneten Wegs reduziert ist. Der
Prozess geht dann zurück
zu B3, um zu überprüfen, ob
es noch weitere unverarbeitete Cluster gibt.
- B13: Wegbildung. Wenn alle Cluster verarbeitet wurden, d. h.
wenn die Warteschlange leer ist, geht der Prozess zu B13. Da jetzt
sämtliche
Anforderungen opti miert worden sind, können Wege für alle Anforderungen durch
alle Cluster gebildet werden.
-
Es
sei darauf hingewiesen, dass der Anforderungsersetzungs- und -optimierungsprozess,
wie er im Vorhergehenden beschrieben ist, möglicherweise sequentieller
ist als er sein muss. Statt einer Warteschlange, könnte ein
Cluster parallel mit anderen Clustern in dem Clusterbaum verarbeitet
werden.
-
Im
idealen Fall sollten Anforderungen gemeinsame Eigenschaften hinzugefügt werden,
wenn sich der Anforderungsersetzungs- und -optimierungsprozess in
dem Clusterbaum aufwärts
bewegt. Wenn z. B. eine Anforderung zu dem Stammcluster hinzugeführt wird,
kann es bereits eine Anforderung mit einer kompatiblen Verkehrsklasse
geben, die sich zu demselben Ziel bewegt (oder die von demselben
Ursprung kommt). In diesem Fall muss die Bandbreitenforderung der
bestehenden Anforderung unter Umständen nur erhöht werden, anstatt
die zweite Anforderung hinzuzufügen.
Die Reihenfolge, in der die Cluster verarbeitet werden, kann ebenfalls
eine Auswirkung auf das Potential für eine derartige Anhäufung haben.
Es wird angenommen, dass Durchlaufreihenfolgen, die versuchen, die
Tunnelerzeugung zu optimieren, gleichzeitig die Wahrscheinlichkeit von
Anforderungsanhäufung
erhöhen
können.
-
Viele
Netzbetreiber teilen die Verwaltung des Netzes über eine Mehrzahl organisatorischer
Bereiche. Es ist wichtig, die Cluster nach jeder Organisation auszurichten,
so dass der Anforderungsersetzungs- und -optimierungsprozess nicht
versucht, eine Sammlung von Routern, die einer Mehrzahl von organisatorischen Gruppen
unterstellt sind, zu optimieren. Es muss beachtet werden, dass dies
nicht impliziert, dass nur so viele Cluster hergestellt werden sollten,
wie es organisatorische Einheiten gibt, sondern dass sichergestellt
werden muss, dass keine Cluster über
derartigen Einheiten geteilt werden.
-
Clusterzusammenführung wurde
schon in früheren
Abschnitten erörtert,
und Clusterteilung wurde soeben erörtert. In Anbetracht eines
vordefinierten Gruppierens von Routern wird es erforderlich sein,
das Zusammenführen
und Teilen von durch die Zweifach-Verbundene-Cluster-Analyse identifizierten
Clustern zu automatisieren, so dass die sich ergebenden Cluster
dieses Gruppieren beachten. Der Anforderungsersetzungs- und -Optimierungsalgorithmus
des im Vorhergehenden beschriebenen Ausführungsbeispiels versucht, sämtliche
Anforderungen zu platzieren. Ist das Netz jedoch entlang administrativer
Bereiche partitioniert, kann es nötig sein, diesen Ansatz zu
verbessern. Es kann z. B. angenommen werden, dass das Zugangsnetz
durch eine Zugangsgruppe verwaltet wird. Die Zugangsgruppe würde den
Anforderungsersetzungs- und -optimierungsprozess ausführen, bis
die Anforderungen zu dem Kerncluster oder den Kernclustern angehoben
worden wären.
Die resultierenden Anforderungen würden der Kerngruppe als ein
Satz von Forderungen präsentiert werden.
Diese würden
schließlich
durch einen Satz von LSPs erfüllt
werden, die anschließend
zurück
in den Anforderungsersetzungs- und -optimierungsprozess gespeist
werden würden,
der dann die Bereitstellung oder Platzierung der Zugangs-LSPs vollenden
würde.
In einigen Szenarien, wie z. B. im Fall des VoIP-Gateways bzw. -netzübergangs,
kann es annehmbar sein, dass diese Kernanforderungsforderungen durch
eine Sammlung von LSPs erfüllt
werden, um die Belastung zu verteilen.
-
Somit
können,
wie im Vorhergehenden erklärt,
verschiedene Algorithmen verwendet werden, um die Netztopologien
auf eine Art zu zerlegen, die die Optimierung der Anforderungsplatzierung
vereinfacht. Zugangsbäume
sind leicht zu kennzeichnen und mögen in manchen Fällen ausreichen,
um ein lenkbares Problem zu ergeben. Ein Ansatz, der auf der Identifikation
von zweifach verbundenen Clustern basiert, wurde für jene Beispiele
entwickelt, bei denen die Zugangselemente des Netzes komplexer aufgebaut
sind. Der Optimie rungsprozess ist in diesem Fall komplizierter,
erlaubt es jedoch, eine weitaus reichhaltigere Sammlung von Netzen
anzugehen. Um die Cluster nach den administrativen Bereichen auszurichten,
und um individuelle Komponenten zu teilen, die noch immer zu groß sind,
um als Ganzes optimiert zu werden, wurden virtuelle Verbindungsknoten
eingeführt.
Natürlich
kann es auch immer Netze geben, bei denen keine dieser Techniken ausreichend
ist.
-
Die
im Vorhergehenden beschriebene Optimierungsstrategie basiert auf
der Ausnutzung von Engpassknoten, die entweder auf natürliche Weise
in dem Netz vorkommen, oder künstlich
erzeugt wurden, um den Zerlegungsprozess zu unterstützen. Dies
stellt zu einem offensichtlichen Konflikt dar, da Engpässe aus Sicht
des Wegschutzes unerwünscht
sind. Es kann passieren, dass eine Mehrzahl von Knoten in Gruppen
und Verknüpfungen
in virtuelle Knoten gruppiert werden müssen, was Redundanz auf physikalischer
Ebene erlauben und gleichzeitig dem Anforderungsoptimierungs- und- ersetzungsprozess
als ein einzelnes Objekt erscheinen muss. Die hierarchische Struktur
kann unter Umständen
dafür verwendet
werden, um auch die Wegwiederherstellungsproblematik zu vereinfachen.
-
Während es
die Einführung
von virtuellen Netzknoten erlauben kann, dass ein Mehrfachzugangsnetz von
dem Netzkern entkoppelt wird, verkompliziert dies stets die Nachoptimierungsverarbeitung,
z. B., wenn eine Anforderung, die in dem Mehrfachzugangsnetz ihren
Ursprung hat, durch eine Anforderung ersetzt wird, die an dem Netzknoten
ihren Ursprung hat. Weist das Mehrfachzugangsnetz eine Mehrzahl
von Eintrittspunkten in den Kern auf, wird dies dazu führen, dass
der Netzknoten am Ende während
des Optimierungsprozesses als Teil des Kerns behandelt wird. Der
Anforderungsersetzungs- und -Optimierungsprozess berechnet einen oder
mehrere Wege, um die Anforderung zu tragen, die ihren Ursprung an
dem Netzknoten hat. Dieser Knoten existiert jedoch in Realität nicht,
so dass diese Wege nicht einfach auf die LSPs abgebildet werden
können. Der
erste Sprung in jedem dieser Wege wird zu einem tatsächlichen
Router innerhalb des Kerns führen,
und so kann dieser Router als der Ausgang für den dem Weg zugewiesenen
LSP verwendet werden. Die ursprünglichen
Anforderungen würden
durch diese LSPs tunneln, genau wie in dem Punkt-zu-Punkt-Fall.
-
Das
im Vorhergehenden beschriebene Ausführungsbeispiel stellt eine
Lösung
der Problematik des Optimierens von Anforderungen, im Besonderen
bei komplexen Zugangsnetzen, bereit. Die Vorrichtung und das Verfahren
des Ausführungsbeispiels
sind in der Lage, von diesen Anforderungen einen Satz von Forderungen
für LSPs
herzuleiten, die den Kern kreuzen. Nachdem die Kern-LSPs optimiert
worden sind, können diese
verwendet werden, die Zugangs-LSPs zu leiten.
-
Es
sei darauf hingewiesen, dass, obwohl ein bestimmtes Ausführungsbeispiel
der Erfindung ausführlich
beschrieben wurde, verschiedene Modifizierungen und Verbesserungen
durch einen Fachmann vorgenommen werden können, ohne dass der Schutzbereich
der vorliegenden Erfindung verlassen wird.