-
Die
vorliegende Erfindung bezieht sich auf ein Netzanalyseverfahren
zur Verwendung hinsichtlich eines Netzes des Typs, der eine Mehrzahl
von Unternetzen aufweist, wobei jedes derselben eine Mehrzahl von
Knoten aufweist.
-
Das
Netzanalyseverfahren der Erfindung findet insbesondere bei Netzen
Anwendung, bei denen die Bestandteils-Unternetze Logiksegmente sind,
die durch Brücken
verbunden sind, die auf der Ebene 2 des 7-Schicht-OSI-Referenzmodells
arbeiten. Das Netzanalyseverfahren jedoch kann in geeigneten Umständen auch
mit anderen Netzen, wie z. B. Internet-Netzen, mit „IP"-Unternetzen verwendet
werden, die durch Router bzw. Leitwegeinrichtungen oder Gateways
verbunden sind, die auf der Ebene 3 des OSI-Referenzmodells arbeiten.
-
Da
Netzüberwachungssysteme
immer hochentwickelter und umfassender werden, hat der Netzbediener
ein wachsendes Problem beim Identifizieren signifikanter Daten unter
den Datenvolumen bei einem Netzbetrieb, der durch derartige Überwachungssysteme
geliefert wird. Dies ist insbesondere der Fall, wenn das betroffene
Netz mehrere Unternetze aufweist, wobei bestimmte Knoten als globale
Server über
alle Unternetze wirken, da es in derartigen Fällen schwierig ist, ein wahres
Bild dessen zu erhalten, was tatsächlich in jedem Unternetz geschieht.
-
Das
Dokument „Some
graph partitioning problems and algorithms related to routing in
large computer networks" (Einige
Graphpartitionierungsprobleme und Algorithmen in Bezug auf eine
Führung
in großen
Computernetzen) von A. Bouloutas u. a., präsentiert in der International
Conference of Distributed Computing Systems 1989, stellt den nächsten Stand der
Technik für
das Netzpartitionierungsproblem dar.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, ein Netzanalyseverfahren
zu schaffen, das eine Einschätzung
eines Betriebs des Netzes auf einer Unternetzebene erleichtert.
-
Zusammenfassung
der Erfindung
-
Gemäß der vorliegenden
Erfindung wird ein Netzanalyseverfahren zur Verwendung in bezug
auf ein Netz des Typs bereitgestellt, das eine Mehrzahl von Teilnetzen
aufweist, wobei jedes derselben eine Mehrzahl von Knoten aufweist,
wobei das Verfahren die folgenden Schritte aufweist:
- 1) Überwachen
des Netzes, um Verkehrsdaten zu sammeln und zu speichern, die das
Verbindungsmaß zwischen
Knoten anzeigen, wie dieses durch einen Verkehr zwischen denselben
beurteilt wird;
- 2) Verarbeiten der Verkehrsdaten, um Knoten zu identifizieren,
die als lokale Server dienen, das heißt Server, deren Verbindungsmaß zu einem der
Teilnetze gleich oder größer als
ein vorbestimmter Teil des Gesamtverbindungsmaß dieses Servers ist; und
- 3) Bestimmen für
zumindest einen der lokalen Server, der in Schritt 2) identifiziert
wird, des optimalen Teilnetzes für
diesen lokalen Server, wobei diese Bestimmung ein angenommenes Lokalisieren
des lokalen Servers, der bei jedem Teilnetz betroffen ist, der Reihe
nach und ein Bewerten, für jeden
derartigen Ort des lokalen Servers, einer vorbestimmten Optimaler-Ort-Funktion beinhaltet, die
ein Maß des
Verkehrs zwischen Teilnetzen liefert, die einem lokalen Server an
seinem gegenwärtigen
angenommenen Ort zugeordnet wären, wobei
diese Bestimmung ferner ein Identifizieren des Teilnetzes, für das eine
Bewertung der Funktion ein Minimum für den Verkehr zwischen Teilnetzen
anzeigt, als das optimale Teilnetz umfasst.
-
Die
Aufgabe der Erfindung wird durch das Verfahren der Ansprüche 1 bis
8 ausgeführt.
-
Kurze Beschreibung
der Zeichnungen
-
Ein
Netzanalyseverfahren gemäß der Erfindung
wird nun mittels eines nichteinschränkenden Beispiels Bezug nehmend
auf die beigefügten
schematischen Zeichnungen beschrieben, in denen:
-
1 ein
Knoten-Cluster-Diagramm ist, das ein exemplarisches Netz mit vier
Unternetzen darstellt;
-
2 ein
Diagramm ist, das dem aus 1 ähnelt, jedoch
einen exemplarischen Gesamtverkehr zwischen Knoten des Netzes aus 1 für einen
bestimmten Überwachungszeitraum
zeigt;
-
3 ein
Diagramm ist, das die Hauptprogrammgegenstände und Datenstrukturen darstellt, die
bei dem Netzanalyseverfahren verwendet werden;
-
4A eine
erste Form einer Verkehrselementdatenstruktur zeigt;
-
4B eine
zweite Form einer Verkehrselementdatenstruktur zeigt;
-
5 ein
Flussdiagramm eines Extrahieren-von-Servern-Programms ist, das in 3 gezeigt
ist;
-
6 ein
Diagramm ist, das dem aus 2 ähnelt, jedoch
nur diese Komponente des Gesamtverkehrs zeigt, die einen Knoten
N1 beinhaltet;
-
7 ein
Diagramm ist, das dem aus 2 ähnelt, jedoch
nur die Komponenten des Gesamtverkehrs zeigt, die nach einer Entfernung
eines Verkehrs verbleiben, der globalen Servern zugeordnet ist,
wie durch das Extrahieren-von-Servern-Programm aus 5 identifiziert
ist;
-
8 ein
Diagramm ist, das dem aus 2 ähnelt, jedoch
nur einen Teil des Netzes und nur die Komponente des Gesamtverkehrs
zeigt, die einem Lokalserverknoten N5 zugeordnet ist, wie durch
das Extrahieren-von-Servern-Programm aus 5 identifiziert
ist;
-
9 ein
Flussdiagramm eines Bewegungsvorschläge-Programms ist, das in 3 gezeigt
ist;
-
10 ein
Flussdiagramm eines Platzieren-von-Server-Programm-Gegenstandes ist, der durch
das Bewegungsvorschläge-Programm
aus 9 verwendet wird;
-
11 ein
Flussdiagramm eines Platzieren-von-Client-Programm-Gegenstandes ist, der durch
das Bewegungsvorschläge-Programm
aus 9 verwendet wird;
-
12 ein
Diagramm ist, das dem aus 2 ähnelt, jedoch
nur ein Unternetz und nur die Komponenten des Gesamtverkehrs zeigt,
die lokal auf dem Unternetz sind und lokalen Servern zugeordnet
sind, wie durch das Extrahieren-von-Server-Programm aus 5 identifiziert
ist;
-
13 ein
Flussdiagramm eines Aufteilungsvorschläge-Programms ist, das in 3 gezeigt
ist;
-
14 ein
Flussdiagramm eines Abschneiden-von-Arbeitsgruppen-Programm-Gegenstandes ist,
der durch das Aufteilungsvorschläge-Programm aus 13 verwendet
wird;
-
15 ein
Flussdiagramm eines Zusammenführen-von-Arbeitsgruppen-Programm-Gegenstandes
ist, der durch das Aufteilungsvorschläge-Programm aus 13 verwendet
wird; und
-
16 ein
Flussdiagramm eines Aufteilungsentscheidung-Programm-Gegenstandes ist, der durch
das Aufteilungsvorschläge-Programm
aus 13 verwendet wird.
-
Beste Ausführungsform
der Erfindung
-
1 stellt
ein exemplarisches Netz dar, das vier Logiksegmente (Unternetze)
X1, X2, X3 und X4 aufweist, wobei jedes derselben eine Mehrzahl
von Knoten N aufweist, wobei die Knoten, die einem bestimmten Logiksegment
zugeordnet sind, zusammen gruppiert sind. Die Logiksegmente sind
durch aufspannende Vorrichtungen in der Form von Brücken miteinander
verbunden, die auf der Ebene 2 des 7-Schicht-OSI-Referenzmodells arbeiten. Jede Brücke erscheint
in dem Cluster-Diagramm aus 1 in der
Form eines entsprechenden Knotens in jedem der beiden Logiksegmente,
die sie verbindet. Die Struktur der Verbindung der Logiksegmente
durch die Brücken
ist für
die Zwecke der vorliegenden Beschreibung nicht von Bedeutung. Das
exemplarische Netz aus 1 kann durch überbrückte Ethernetze gebildet
sein, wobei jeder Knoten durch eine Ethernet-Adresse identifiziert
ist, die über
alle Logiksegmente des Netzes gültig
ist. Die Knoten N sind Quelle und Senke für Verkehr zueinander bzw. voneinander, wobei
dieser Verkehr in der Form diskreter Nachrichtenpakete vorliegt,
die sowohl Quellen- als auch Zielknotenadressen sowie die Daten
tragen, die übertragen
werden sollen.
-
Das
Netz aus 1 wird als die Basis für exemplarische
Verkehrverteilungsdiagramme verwendet, die im Folgenden verwendet
werden, um die Beschreibung der Netzanalyseverfahren der Erfindung zu
erleichtern. Zu Zwecken der folgenden Beschreibung wird angenommen,
dass die Topologie des Netzes hinsichtlich dessen, welche Knoten
welchen Logiksegmenten zugeordnet sind, bereits bekannt ist.
-
2 stellt
den Verkehr über
das Netz aus 1 über einen bestimmten Zeitraum
dar, wobei der Verlauf von Nachrichtenpaketen zwischen zwei Knoten
durch eine zwischen denselben gezogene Linie dargestellt ist, wobei
die Dicke der Linie eine grobe Anzeige der Verkehrsmenge liefert.
Bei dem vorliegenden Beispiel sind die Verkehrsflüsse durch
eine Untersuchung der Schicht-2-Quellen- und Zieladressen hergeleitet,
die jedem Paket zugeordnet sind. Da die Schicht-2-Adressen über das
gesamte Netz gültig sind,
ergibt ein Untersuchen der Schicht-2-Adressen die wahren Quellen-
und Zielknoten eines Paketes unabhängig von dem Weg, der durch
das Nachrichtenpaket über
das Netz genommen wird.
-
Trotz
des Mangels einer Klarheit in 2, was aus
dem Zusammendrängen
der Verkehrslinien resultiert, ist es möglich zu sehen, dass bestimmte Knoten
sehr stark mit den anderen Knoten des Netzes kommunizieren. Die
Knoten N1 und N2 auf dem Logiksegment X1 z. B. scheinen mit eigentlich
allen anderen Knoten des Netzes zu kommunizieren, woraus sinnvoll
schlussgefolgert werden kann, dass diese Knoten eine bestimmte Gesamtrolle
beim Überwachen
oder Steuern des Netzes haben.
-
Während Diagramme
der Form aus 2 einem Netzbediener einen allgemeinen
Eindruck hinsichtlich dessen geben, was in dem Netz passiert, erlauben
dieselben keine detaillierte Untersuchung des Verhaltens des Netzes
und können
leicht missverstanden werden.
-
Die
Netzanalyseverfahren, die im Folgenden beschrieben sind, analysieren
Verkehrsdaten, die ähnlich
sind wie die, die verwendet werden, um Diagramme der Form aus 2 im
Hinblick auf ein Liefern hilfreicher Informationen über den
Charakter des Netzes und hinsichtlich dessen, wie die Leistung desselben
verbessert werden kann, zu erzeugen.
-
Die
allgemeine Philosophie hinter den Netzanalyseverfahren, die noch
beschrieben werden, ist die, dass starke Verbesserungen an der Leistung
des Netzes allgemein nicht von einem Neupositionieren von Knoten
herrühren,
die eine globale Struktur von Kommunikationen aufweisen (d. h. ihre
Kommunikation ist nicht hauptsächlich
mit einem Logiksegment), sondern von einem Modifizieren des Netzes
hinsichtlich Knoten, die hauptsächlich
mit einem Logiksegment kommunizieren (wenn auch nicht notwendigerweise
dem Segment, auf dem sich der Knoten selbst befindet).
-
Eine
wichtige Analyseaufgabe besteht deshalb darin, die Knoten, die hauptsächlich auf
einer globalen Basis („globale
Server") kommunizieren, aus
den Knoten ausfindig zu machen, die hauptsächlich mit nur einem Segment
kommunizieren und Hauptkommunikatoren hinsichtlich dieses Segmentes
sind („lokale
Server"). Es ist
zu erkennen, dass, während
es viele Knoten geben kann, die hauptsächlich mit nur einem Segment
kommunizieren, nur einige dieser Knoten eine serverartige Rolle
haben. Daraufhin, dass die lokalen Server identifiziert sind, werden
die hierin beschriebenen Netzanalyseverfahren dann verwendet, um
Vorschläge
hinsichtlich dessen zu machen, ob einer dieser lokalen Server zu
einem anderen Logiksegment bewegt werden sollte, und hinsichtlich
dessen, ob sich ein Aufteilen eines Segmentes zwischen zwei zugeordneten
lokalen Servern lohnt.
-
3 zeigt
die Hauptprogrammgegenstände
und Hauptdatenstrukturen, die bei der im Folgenden beschriebenen
Implementierung der vorliegenden Erfindung verwendet werden. Insbesondere
sind drei Hauptprogrammkomponenten vorgesehen, wobei diese ein Extrahieren-von-Servern-Programm 10, ein
Bewegungsvorschläge-Programm 1 und
ein Aufteilungsvorschläge-Programm 12 sind.
-
Für das Extrahieren-von-Servern-Programm 10 sind
sowohl Verkehrsdaten als auch Daten über die logische Anordnung
des Netzes verfügbar.
Die Verkehrsdaten sind in der Form eines Satzes von Verkehrselementen 22,
die einen Knoten-zu-Knoten-Verkehr
auf dem Netz über
einen bestimmten Zeitraum charakterisieren. Die Daten über die
logische Anordnung des Netzes sind in der Form einer Liste von Segmenten 20 und
einer Liste von Knoten 21, wobei jede Liste Zuordnungsinformationen
zwischen Segmenten und Knoten umfasst. Das Extrahieren-von-Servern-Programm 10 analysiert
die Verkehrsdaten, die in Verkehrselementen 22 dargelegt sind,
um eine Globalserverliste 23 und eine Lokalserverliste 24 zu
erzeugen.
-
Das
Bewegungsvorschläge-Programm 11 umfasst
Programmgegenstände
Platzieren-von-Server 13 und Platzieren-von-Client 14.
Das Bewegungsvorschläge-Programm 11 wiederum
schaut sich jeden lokalen Server an, der durch das Programm 10 identifiziert
wird, um zu entscheiden, ob es von Vorteil wäre, den lokalen Server zu einem
anderen Segment zu bewegen, und, falls dies der Fall ist, ob es
auch einen Vorteil bei einem Bewegen eines seiner Clientenknoten
(d. h. Knoten, mit denen derselbe kommuniziert) zu dem gleichen
Segment gibt. Auf der Basis dieser Analyse erzeugt das Programm 11 eine
Liste mit Bewegungsvorschlägen
(Knotenbewegungsliste 25). Das Programm 11 erzeugt
außerdem
eine Liste mit Arbeitsgruppen (Arbeitsgruppenliste 26),
wobei jede Arbeitsgruppe einen lokalen Server und seine eng verbundenen
Clientenknoten, falls vorhanden, aufweist.
-
Das
Aufteilungsvorschläge-Programm 12 umfasst
Programmelemente Abschneiden-von-Arbeitsgruppe 15, Zusammenführen-von-Arbeitsgruppe 16 und
Aufteilungsentscheidung 17. Das Programm 12 sieht
sich jedes logische Element des Netzes an und gruppiert alle Knoten
unter Verwendung der Arbeitsgruppen, die in der Arbeitsgruppenliste 26 aufgelistet
sind, als einer Basis in zwei Arbeitsgruppen. Das Programm 12 führt dann
eine Entscheidung durch, ob es sich lohnt, das Segment zwischen
zwei Arbeitsgruppen aufzuteilen, und wenn es entscheidet, dass es
einen Vorteil hieraus gäbe,
gibt es einen Aufteilungsvorschlag in eine Segmentaufteilungsliste 27 ein.
-
Wie
im Folgenden klar werden wird, hängt die
Ebene der Ausgereiftheit der Programme 10, 11 und 12 (und
insbesondere des Programms 10 beim Identifizieren von globalen
und lokalen Servern) von der Detailtiefe ab, die durch die Verkehrsdaten
geliefert wird (Elemente 22). So können die Verkehrsdaten einfach
auf Ebene-2-Paketinformationen basieren, das heißt, auf den Quellen- und Zielknotenadressen
von Meldungspaketen, die über
das Netz geleitet werden, wobei kein Versuch unternommen wird, auf eine
Strukturierung auf höherer
Ebene zu schauen, die in dem Datenteil der Pakete enthalten ist.
Alternativ können
die Verkehrsdaten eine derartige Strukturierung auf höherer Ebene
mit einer Betrachtung eines Bereitstellens einer Anzeige berücksichtigen,
ob Pakete, die zu und von einem bestimmten Knoten geleitet werden,
dies so tun, dass der Knoten in einer Serverrolle oder in einer
Clientenrolle agiert. In Abwesenheit dieser detaillierteren Form
von Verkehrsdaten muss das Extrahieren-von-Servern-Programm 10 seine
Beurteilung darüber,
welche Knoten Server sind, einfach auf der Basis von Verkehrsverbindungsmaßgrößen treffen.
-
Geeignete
Netzüberwachungssysteme
sind Fachleuten auf diesem Gebiet ersichtlich, welche Ebene von
Verkehrsdaten auch immer erforderlich ist. Ein derartiges System
ist z. B. in unserer Europäischen
Patentspezifizierung EP-A-0 480 555 beschrieben, die auf einem zufälligen Abtasten
von Paketen basiert (es ist ersichtlich, dass bestimmte Details
hinsichtlich dessen, wie viele Daten auf jedem abgetasteten Paket
erfasst sind, u. U. von denen, die in dieser Spezifi zierung beschrieben
sind, verändert werden
müssen,
wobei eine derartige Veränderung jedoch
für Fachleute
auf diesem Gebiet eine Routineangelegenheit ist). Andere Überwachungssysteme, einschließlich derer,
die jedes an den Überwachungspunkten
empfangene Paket aufzeichnen, können
ebenfalls verwendet werden.
-
Für eine Klarheit
der Erklärung
wird zuerst die Operation der Programme 10, 11 und 12 ohne eine
Zuflucht zu einer Untersuchung einer Strukturierung auf höherer Ebene
der Paketdaten für
den Fall beschrieben, in dem die Verkehrsdaten auf den Ebene-2-Paketinformationen
basieren. Die Weiterentwicklungen, die mit Strukturierungsinformationen
auf höherer
Ebene möglich
sind, werden dann besprochen.
-
Wie
bereits angezeigt wurde, weisen die Verkehrsdaten, die durch die
Programme 10, 11, 12 analysiert werden,
einen Satz von Verkehrselementen 22 auf. 4A zeigt
die Struktur eines Verkehrselementes 22 für den Fall,
bei dem die Verkehrsdaten nur auf Ebene-2-Paketinformationen basieren.
Wie dies ersichtlich ist, weist jedes Verkehrselement vier Felder auf,
nämlich
ein Knoten-1-Identität-Feld,
ein Knoten-2-Identität-Feld,
ein Gesamtverkehr-Feld und ein „Aktivieren"-Flag-Feld. Wenn
Verkehrselemente 22 die Form aus 4A aufweisen,
gibt es ein jeweiliges Verkehrselement 22 für jedes
Paar kommunizierender Knoten in dem Netz, wobei die Identität der betroffenen
Knoten in dem Knoten-1- und
dem Knoten-2-Identitätsfeld
aufgezeichnet ist. Jedes derartige Verkehrselement 22 wird
verwendet, um den Gesamtverkehr (z. B. angesichts der Anzahl von
Paketen und/oder der Anzahl von Bytes) aufzuzeichnen, der zwischen
den betroffenen Knoten in beiden Richtungen weitergeleitet wird.
-
Das
Aktivieren-Flag-Feld jedes Verkehrselementes 22 aus 4A ermöglicht es,
dass Elemente zum Einschluss oder Ausschluss aus den Verkehrsdaten
markiert werden, die zu einer bestimmten Zeit durch die Programme 10, 11, 12 betrachtet
werden. Nach einer Übereinkunft
ist, wenn ein Ele ment 22 sein Aktivieren-Flag gesetzt hat,
dasselbe in den gegenwärtig
relevanten Verkehrsdaten enthalten, während, wenn das Flag rückgesetzt
ist, das Element ausgeschlossen ist. Zu Beginn (zu Beginn des Programms 10)
sind die Aktivieren-Flags aller Verkehrselemente, die die Verkehrsdaten
bilden, in einem Setz-Zustand.
-
Hinsichtlich
der Betrachtung des Extrahieren-von-Servern-Programms 10 ist dieses Programm in
Flussdiagrammform in 5 gezeigt und weist Schritte 30 bis 39 auf.
Zu Beginn untersucht das Programm 10 die Verkehrsdaten,
die durch die Verkehrselemente 22 dargestellt werden, und
erzeugt eine Liste aller aktiver Knoten (Schritt 30), d.
h. Knoten, die Verkehr senden oder empfangen. Wenn es tatsächlich keine
aktiven Knoten gibt (in Schritt 31 getestet), endet das
Programm 10 unmittelbar. Wenn jedoch, wie dies allgemein
der Fall sein wird, die Verkehrsdaten zeigen, dass es aktive Knoten
gibt, fährt das
Programm 10 mit Schritt 32 fort, bei dem dasselbe
nach dem Vorliegen von Knoten in der Liste aktiver Knoten sieht,
die als globale Server agieren.
-
In
diesem Zusammenhang ist mit „globaler Server" ein Knoten gemeint,
dessen Verkehrsverbindungsmaß mit
einem der Logiksegmente X1 bis X4 des Netzes kleiner als ein vorbestimmter
Anteil des Gesamtverbindungsmaßes
dieses Knotens mit allen Segmenten ist. Allgemein ist dieser vorbestimmte Anteil 50 oder
ein ähnlicher
Prozentsatz. Anders ausgedrückt
ist ein globaler Server ein Knoten mit keinem vorherrschenden Verbindungsmaß zu einem bestimmten
Logiksegment des Netzes. Das Maß des Verkehrsverbindungsmaßes, das
beim Durchführen der
Einschätzung
hinsichtlich dessen verwendet wird, ob ein Knoten ein globaler Server
ist, ist vorzugsweise einfach ein Zählwert der Anzahl von Partnerknoten,
d. h. die Zahl von Knoten, mit denen der Knoten von Interesse kommuniziert.
Es wäre
jedoch auf möglich,
die Messung auf dem Verkehrsvolumen hinsichtlich Paketen, Rahmen
oder Bytes zu basieren, die mit jedem Logiksegment ausgetauscht
werden, vorausgesetzt, das Gesamtverkehrfeld jedes Verkehrselementes 22 zeichnet
die geeigneten Informationen auf.
-
6 stellt
den Netzverkehr aufgrund eines Globalserverknotens N1 in dem Logiksegment
X1 dar. Wie dies ersichtlich ist, kommuniziert der Knoten N1 mit
im wesentlichen allen anderen Knoten mit dem Ergebnis, dass seine
Kommunikation mit jedem anderen der Logiksegmente X1 bis X4 kleiner
als 50% seiner gesamten Kommunikation mit allen Segmenten ist.
-
Unter
der Annahme, dass zumindest ein globaler Server in der Aktivknotenliste
in Schritt 32 gefunden wird, führt das Programm 10 als
nächstes Schritt 33 aus,
bei dem dasselbe den globalen Server in der Aktivknotenliste identifiziert,
der das höchste Gesamtverkehrsverbindungsmaß aufweist
(wieder vorzugsweise hinsichtlich eines Partnerknotenzählwertes
gemessen, wobei, wenn zwei globale Server den gleichen Partnerknotenzählwert aufweisen,
dann darauf zurückgegriffen
werden kann, dass die Gesamtverkehrsvolumina betrachtet werden).
Sobald Schritt 33 den aktivsten globalen Server identifiziert hat,
wird die Identität
dieses Servers zu der Globalserverliste 23 hinzugefügt (Schritt 34).
-
Das
Programm 10 fährt
als nächstes
mit Schritt 35 fort, bei dem der gerade identifizierte
Server aus der Aktivknotenliste entfernt wird und seine zugeordneten
Verkehrselemente durch ein Rücksetzen
des Aktivieren-Flags in jedem dieser Elemente deaktiviert werden.
-
Das
Programm kehrt nun zu Schritt 32 zurück und führt einen Test auf der Basis
der modifizierten Verkehrsdaten (d. h. der Verkehrsdaten, wobei bestimmte
der Elemente 22 deaktiviert sind) durch, um zu sehen, ob
es globale Server gibt, die in der Aktivknotenliste vorhanden sind;
falls dies der Fall ist, werden die Schritt 33 bis 35 wiederholt.
Dieser Prozess fährt
fort, bis keine globalen Server mehr in der Aktivknotenliste durch
den Test aus Schritt 32 identifiziert werden. Für den exemplarischen
Verkehr aus 2 treten drei Iterationen der
Schritt 33 bis 35 auf, bevor kein weiterer globaler
Server mehr gefunden wird. Die erste Iteration identifiziert den
Knoten N1 als einen globalen Server, die zweite Iteration identifiziert
den Knoten N2 als einen globalen Server und die dritte Iteration
identifiziert N3 als einen globalen Server. Wenn die Verkehrselemente
dieser globalen Server deaktiviert sind, stellen die verbleibenden
Elemente eine Verkehrsverteilung dar, die in 7 gezeigt
ist.
-
Wenn
Schritt 32 keinen globalen Server identifizieren kann,
wird Schritt 36 ausgeführt,
um auf das Vorliegen eines lokalen Servers in der Aktivknotenliste
hin zu testen. In diesem Zusammenhang ist ein „lokaler Server" ein Knoten, dessen
Verkehrsverbindungsmaß mit
dem Logiksegment, mit dem derselbe am stärksten verbunden ist, größer als
ein vorbestimmter Anteil (allgemein 50% oder dergleichen) seines
Gesamtverbindungsmaßes
mit allen Segmenten ist. So agieren z. B. die Knoten N4, N5, N6
und N7 aus 7 als lokale Server für den Verkehr,
der betrachtet wird (tatsächlich
gibt es eine Anzahl anderer Knoten, die in 7 als lokale
Server agieren, auf diese wird jedoch zur Klarheit nicht verwiesen).
Es ist ersichtlich, dass das Maß des
Verkehrsverbindungsmaßes,
das beim Testen nach einem lokalen Server verwendet wird, wie bei
dem Globalservertest, einfach ein Zählwert von Partnerknoten sein
kann oder ein Maß des
tatsächlichen
Verkehrsvolumens sein kann. Es ist außerdem ersichtlich, dass die
Verkehrsverbindungsmaß-Maße auf der
Basis der Verkehrsdaten ausgeführt
werden, wie dieselben durch das Deaktivieren von Verkehrselementen
durch Schritt 35 modifiziert sind.
-
Unter
der Annahme, dass zumindest ein lokaler Server in der Aktivknotenliste
identifiziert wird, fährt
das Programm 10 dann mit Schritt 37 fort, bei dem
dasselbe den lokalen Server mit dem höchsten Verkehrsverbindungsmaß identifiziert
(vorzugsweise als ein Zählwert
der Gesamtanzahl von Partnerknoten gemessen, wobei ein Gleichstand
durch eine Refe renz auf Verkehrsvolumen gelöst wird). Sobald der lokale
Server mit dem höchsten
Verkehrsverbindungsmaß identifiziert
wurde, wird die Identität
dieses Servers zu der Lokalserverliste 24 hinzugefügt (Schritt 38).
Schritt 35 wird dann ausgeführt, um den identifizierten
Server von der Aktivknotenliste zu entfernen und seine zugeordneten
Verkehrselemente 22 zu deaktivieren.
-
Danach
kehrt das Programm 10 in einer Schleife zurück zu Schritt 32,
um wieder nach dem Vorliegen von globalen Servern in der Aktivknotenliste
zu testen (es ist ersichtlich, dass die Deaktivierung der Verkehrselemente,
die dem gerade identifizierten lokalen Server zugeordnet sind, zu
dem Auftreten eines neuen globalen Servers in der Aktivknotenliste geführt haben
kann, obwohl dies für
den vorliegenden exemplarischen Verkehr nicht der Fall ist).
-
Die
Identifizierung von globalen und lokalen Servern fährt auf
diese Weise mit der bevorzugten Identifizierung von globalen Servern
fort, bis keine weiteren globalen oder lokalen Server mehr gefunden
werden. Dies führt
dazu, dass das Programm von Schritt 36 zu Schritt 39 austritt,
bei dem dasselbe alle Verkehrselemente 22 reaktiviert,
die während des
Laufens des Programms 10 deaktiviert wurden. Das Programm 10 endet
dann.
-
Sobald
das Extrahieren-von-Servern-Programm 10 die lokalen Server
identifiziert hat, kann das Bewegungsvorschläge-Programm 11 ausgeführt werden,
um das optimale Logiksegment X1 bis X4 für jeden Server sicherzustellen
und vorzuschlagen, ob als eine Konsequenz ein lokaler Serverknoten
gemeinsam mit einem seiner Clientenknoten bewegt werden soll. Eine
typische Situation, in der ein lokaler Server nützlich bewegt werden könnte, ist
in 8 dargestellt, die die Logiksegmente X3 und X4
und die Komponente des Verkehrs, der in 7 dargestellt ist,
zeigt, der einem Lokalserverknoten N5 zugeordnet ist. Aus 8 ist
es ersichtlich, dass der Knoten N5 hauptsächlich mit dem Logiksegment
X4 kommu niziert, obwohl der Lokalserverknoten N5 auf dem Logiksegment
X3 angeordnet ist. Es wäre
natürlich
von Vorteil, wenn der Lokalserverknoten N5 von dem Logiksegment
X3 zu dem Logiksegment X4 bewegt werden würde. Diesen Typ Situation soll
das Bewegungsvorschläge-Programm 11 identifizieren.
-
9 ist
ein Flussdiagramm des Bewegungsvorschläge-Programms 11. Dieses
Programm soll auf die gesammelten Verkehrsdaten wirken, von denen
die Verkehrselemente 22, die den identifizierten globalen
Servern zugeordnet sind, entfernt wurden. Folglich soll der erste
Schritt 40 des Programms 11 die Verkehrselemente
deaktivieren, die den globalen Servern zugeordnet sind. Danach betritt
das Programm 11 eine Schleifenstruktur, bei der jeder lokale Server
der Reihe nach in einer Partnerzählwertgrößenreihenfolge
betrachtet wird (Schritt 41), wobei der Austrittstest aus
dieser Schleifenstruktur in Schritt 42 ist, der einen Test
durchführt,
um zu sehen, ob ein lokaler Server übrig ist, der verarbeitet werden
soll.
-
Jeder
lokale Server wird Verarbeitungsschritten 44 bis 48 unterzogen,
um zu bestimmen, ob derselbe zu einem unterschiedlichen Logiksegment
bewegt werden sollte, oder ob einer seiner Clientenknoten bewegt
werden sollte.
-
Insbesondere
wird in Schritt 44 der Platzieren-von-Server-Programm-Gegenstand 30 ausgeführt, um
zu bestimmen, ob der betrachtete lokale Server (der gegenwärtige „Ziel"-Server) bewegt werden
sollte, wobei Bewegungsvorschläge
in der Knotenbewegungsliste 25 platziert werden. Der Platzieren-von-Server-Programm-Gegenstand 13 implementiert
angenommenermaßen
außerdem
eine vorgeschlagene Bewegung für
den Zielserver, um es zu ermöglichen,
dass der nachfolgende Schritt 46 prüft, ob einer der Clientenknoten
des Zielservers ebenfalls bewegt werden sollte.
-
In
Schritt 45 wird eine neue Arbeitsgruppendatenstruktur (im
Folgenden einfach als „Arbeitsgruppe" bezeichnet) für den Zielserver
erzeugt, wenn derselbe vorher noch nicht eingeschlossen wurde, und
zwar als ein Clientenknoten in einer Arbeitsgruppe, die bei einer
früheren
Iteration der Schritte 44 bis 48 hinsichtlich
eines lokalen Servers mit einem höheren Clientenknotenzählwert erzeugt
wurde. Die Arbeitsgruppen sind in einer Arbeitsgruppenliste 26 verbunden.
Jede Arbeitsgruppe wird betrachtet, um dem Logiksegment zugeordnet
zu sein, auf dem der lokale Server, der die Erzeugung verursacht,
angeordnet ist.
-
Als
nächstes
wird in Schritt 46 der Platzieren-von-Client-Programm-Gegenstand 46 ausgeführt, um
sicherzustellen, ob einer der Clientenknoten des Zielservers zu
dem Logiksegment des Servers bewegt werden sollte (dies ist das
Segment, auf dem sich der Server nach einer Implementierung eines
Bewegungsvorschlags befindet, der durch Schritt 44 bereitgestellt
wird). Jeder Clientenbewegungsvorschlag, der durch das Platzieren-von-Client-Programm
erzeugt wird, ist in der Knotenbewegungsliste 25 gespeichert,
wobei jeder Vorschlag zeitweilig implementiert ist. Ferner ist jeder
Clientenknoten, der gut mit dem Zielserver verbunden ist (d. h.
im wesentlichen zumindest die Hälfte
des Gesamtverbindungsmaßes
des Clienten liegt bei dem Zielserver), in der gleichen Arbeitsgruppe
wie der Zielserver platziert.
-
Es
ist ersichtlich, dass ein Einschätzen,
ob ein Clientenknoten gut mit seinem zugeordneten lokalen Server
verbunden ist, durch ein Betrachten der Verkehrsvolumenmaße und nicht
der Knotenzählwerte
ausgeführt
wird.
-
Nachdem
alle Clientenknoten des Zielservers geprüft wurden, um zu sehen, ob
dieselben vorzugsweise bewegt werden könnten, wird eine angenommene
Bewegung des Zielservers und seiner Clienten von ihren ursprünglichen
Segmenten durch eine geeignete Aktion in dem relevanten Segment und
Knotendatenstrukturen 20 und 21 umgekehrt (Schritt 47 und 48).
-
Sobald
alle lokalen Server, die in der Lokalserverliste 24 aufgezeichnet
sind, einer Verarbeitung in den Schritten 44 bis 48 unterzogen
wurden, wird die Schleifenstruktur des Bewegungsvorschläge-Programm-Gegenstandes 11 bei
Schritt 42 verlassen und alle Globalserververkehrselemente
werden wieder aktiviert (Schritt 49), bevor der Programmgegenstand 11 beendet
wird.
-
Es
wird angemerkt, dass der Grund, warum die lokalen Server durch den
Programmgegenstand 11 in der Reihenfolge ihrer Clientenzählwertgröße verarbeitet
werden, darin besteht, die Zuordnung der Knoten in Arbeitsgruppen
in Schritt 45 so weit wie möglich zu maximieren. Insbesondere
ist es durch ein späteres
Verarbeiten der weniger verbundenen lokalen Server möglich, dass
dieselben bereits in die Arbeitsgruppe eines stärker verbundenen lokalen Servers
eingeschlossen wurden. In diesem Fall ist nicht nur der weniger
verbundene lokale Server in der gleichen Arbeitsgruppe wie der stärker verbundene lokale
Server eingeschlossen, sondern auch Clientenknoten des weniger verbundenen
lokalen Servers, die gut mit dem weniger verbundenen lokalen Server
verbunden sind, werden in die Arbeitsgruppe des stärker verbundenen
lokalen Servers eingeschlossen.
-
10 ist
ein Flussdiagramm des Platzieren-von-Server-Programm-Gegenstandes 13, der
in Schritt 44 des Bewegungsvorschläge-Programms 11 ausgeführt wird.
Das Platzieren-von-Server-Programm 13 erhält die Identität eines
bestimmten Zielservers und fährt
dann fort, um zu testen, ob sich ein Bewegen des Servers zu einem
unterschiedlichen Segment lohnt. Als ein vorbereitender Schritt
jedoch führt
das Programm 13 zuerst einen Test durch, um zu sehen, ob
der Server tatsächlich
eine aufspannende Vorrichtung (Brücke/Router/Gateway) ist, die
nicht ohne weiteres bewegt werden kann, und zu Zwecken des Programms 13 als
fest behandelt werden sollte (siehe Schritt 50). Tatsächlich kann
Schritt 50 in eine Prüfung
einer Liste von Knoten verallge meinert werden, die aus einem bestimmten
Grund als unbewegbar spezifiziert sind.
-
Das
Platzieren-von-Server-Programm 13 fährt als nächstes mit Schritt 51 fort,
an dem das optimale Segment für
den betrachteten Server sichergestellt wird. Bei dem vorliegenden
Beispiel wird dies durch ein Suchen nach dem minimalen Gesamtsprungzählwert zwischen
dem Server und seinen Clientenknoten durchgeführt, was auf der Basis funktioniert,
dass ein Client auf dem gleichen Segment wie der Server einen „Null"-Sprungzählwert hat,
wohingegen ein Client auf einem unterschiedlichen Segment einen „Eins"-Sprungzählwert hat
(unabhängig davon,
durch wie viele Segmente tatsächlich
auf dem physischen Netz gesprungen werden muss, um eine Meldung
von dem Server an diesen Clienten weiterzuleiten). So ist der Server
angenommenermaßen wiederum
auf jedem Logiksegment angeordnet und der entsprechende Sprungzählwert wird
berechnet. Der Segmentort, der den minimalen Sprungzählwert erzeugt,
wird dann als das optimale Segment für den betrachteten Server identifiziert.
-
Es
ist zu erkennen, dass andere Maße
als die einfache Sprungzählwertmessung,
die oben beschrieben wurde, zum Bestimmen des optimalen Segmentes
verwendet werden können.
Geeignete Maße
sind die, die für
jeden Ort des Servers empfindlich gegenüber der Zwischensegmentkomponente des
Verkehrs zwischen dem Zielserver und seinen Clienten sind. So wäre z. B.
ein weiteres geeignetes Maß das
Zwischensegmentverkehrsvolumen in Paketen/Rahmen/Bytes, die für jede Position
des Servers erzeugt werden.
-
Sobald
der optimale Segmentort für
den Zielserver bestimmt wurde, wird eine Prüfung in Schritt 52 hinsichtlich
dessen durchgeführt,
ob sich dieses Segment von dem gegenwärtigen Segment des Zielsegmentes
unterscheidet. Wenn diese Segmente die gleichen sind, endet das
Programm 13. Unter der Annahme jedoch, dass das optimale
Segment sich von dem gegenwärtigen
Segment für
den Server unterscheidet, wird Schritt 53 ausgeführt, bei
dem eine Prüfung
hinsichtlich dessen durchgeführt
wird, ob der Zielserver bereits fest als ein Clientenknoten in einer Arbeitsgruppe
ist, die hinsichtlich eines früher
betrachteten Servers erzeugt wurde. Wie bereits oben erklärt wurde,
ist es möglich,
dass ein Server als ein Client gut mit einem besser verbundenen
Server verbunden ist und deshalb fest in der Arbeitsgruppe letzteren
ist. In diesem Fall wird der weniger gut verbundene Server als unbewegbar
betrachtet, wobei das Programm 13 beendet wird, ohne dass
ein Bewegungsvorschlag für
den Server gemacht wird.
-
Vorausgesetzt,
dass der Zielserver nicht fest als ein Client in der Arbeitsgruppe
eines anderen Servers ist, wird Schritt 54 des Platzieren-von-Server-Programms 13 ausgeführt, um
einen Bewegungsvorschlag zu der Knotenbewegungsliste 25 hinzuzufügen. Dieser
Vorschlag identifiziert den betroffenen Server, sein gegenwärtiges Segment
und das vorgeschlagene neue Segment. Die vorgeschlagene Bewegung
wird zeitweilig auch angenommenermaßen durch eine geeignete Modifizierung
des Servers und Segmentdatenstrukturen ausgeführt, um anzuzeigen, dass der
Server sich nun auf dem gerade identifizierten optimalen Segment
befindet. Danach endet das Programm 13.
-
11 ist
ein Flussdiagramm eines Platzieren-von-Client-Programm-Gegenstandes 14, der
in Schritt 46 des Bewegungsvorschläge-Programms 11 ausgeführt wird.
Das Programm 14 wird für
jeden Clientenknoten des Zielservers ausgeführt, der während einer gegenwärtigen Iteration
des Bewegungsvorschläge-Programms 11 betrachtet
wird.
-
Die
ersten beiden Schritte 60 und 61 des Programms 14 prüfen, ob
der betrachtete Clientenknoten bereits fest in einer Arbeitsgruppe
ist, bzw. ob er eine Vorrichtung ist (oder andernfalls allgemeiner unbewegbar),
wobei in beiden Fällen
der Clientenknoten als unbewegbar betrachtet und das Programm 14 beendet
wird.
-
Vorausgesetzt
jedoch, dass der betrachtete Clientenknoten nicht unbewegbar ist,
wird ein Test als nächstes
in Schritt 62 ausgeführt,
um zu sehen, ob der Clientenknoten gut mit dem betroffenen Server
verbunden ist. In diesem Zusammenhang bedeutet „gut verbunden", dass das Verbindungsmaß des Clientenknotens
mit dem Server mehr als 50% des Gesamtverbindungsmaßes des
Knotens dieses Clienten ist (durch Verkehrsvolumina gemessen). Es
ist ersichtlich, dass eine bestimmte Abweichung der 50%-Zahl insbesondere
in einer Aufwärtsrichtung möglich ist.
Wenn der Clientenknoten nicht gut mit seinem Server verbunden ist,
wird es für
den Clientenknoten nicht als geeignet betrachtet, zu dem gleichen
Segment wie der Server bewegt zu werden, wobei das Programm 14 endet.
Wenn jedoch der Clientenknoten gut mit dem betrachteten Server verbunden
ist, wird der Clientenknoten zu der Arbeitsgruppe des Servers hinzugefügt und die
Identität
des Ziels wird in die Datenstruktur des Clientenknotens eingegeben,
was den Server als den primären
Server für den
Clientenknoten identifiziert (Schritt 63). Danach wird
in Schritt 64 eine Prüfung
hinsichtlich dessen durchgeführt,
ob sich das Segment des Clienten von dem Segment des Servers unterscheidet,
wobei, falls dies der Fall ist, Schritt 65 ausgeführt wird,
um einen Bewegungsvorschlag in die Knotenbewegungsliste 25 hinzuzufügen, der
vorschlägt,
dass der Clientenknoten zu dem Segment des Servers bewegt wird. Eine
Ausführung
von Schritt 65 beinhaltet auch ein zeitweiliges Bewegen
des Clientenknotens zu dem Segment des Servers durch ein Aktualisieren
des betroffenen Clientenknotens und der betroffenen Segmentdatenstrukturen.
-
Nach
der Beschreibung der Operation des Bewegungsvorschlägeprogramms 11 und
seiner zugeordneten Programmgegenstände 13 und 14 wird nun
der Aufteilungsvorschlag-Programm-Gegenstand 12 mit seinen zugeordneten
Programmgegenständen 15, 16 und 17 betrachtet.
-
Das
Aufteilungsvorschläge-Programm 12 betrachtet
wiederum jedes Logiksegment, um zu entscheiden, ob es von Vorteil
wäre, eines
der Segmente in zwei aufzuteilen. 12 stellt
eine Situation dar, die aus den exemplarischen Verkehrsdaten genommen
ist, wobei ein Logiksegment, in diesem Fall das Segment X2, in zwei
Segmente aufgeteilt wird (hier entsprechend Gruppierungen basierend
um Lokalserverknoten N6 und N7).
-
Das
Aufteilungsvorschlag-Programm 12 startet von der Basis
der Knotengruppierungen, die in der Arbeitsgruppenliste 26 durch
das Bewegungsvorschläge-Programm 11 gebildet
wurden. Die Arbeitsgruppen jedoch, die in der Liste 26 aufgezeichnet sind,
sind nicht unmittelbar verwendbar, um eine Entscheidung hinsichtlich
einer Segmentaufteilung durchzuführen,
da jede derartige Arbeitsgruppe Knoten von mehr als einem Segment
enthalten kann und zusätzlich
nicht alle Netzknoten in den Arbeitsgruppen enthalten sind (nur
die Knoten, die gut mit Serverknoten verbunden sind, wurden durch
das Programm 11 eingeschlossen).
-
Bezugnehmend
auf 13 beinhaltet der erste Schritt 70 des
Aufteilungsvorschlag-Programms 12 ein Prüfen dessen,
ob es Arbeitsgruppen in der Arbeitsgruppenliste 26 gibt.
Wenn keine derartige Arbeitsgruppen existieren, wird das Programm 12 beendet,
ohne dass Segmentaufteilungsvorschläge gemacht wurden. Allgemein
gibt es jedoch mehrere Arbeitsgruppen in der Arbeitsgruppenliste 26,
wobei in diesem Fall das Programm 12 mit Schritt 71 fortfährt, in
dem der Abschneiden-von-Arbeitsgruppe-Programm-Gegenstand 15 ausgeführt wird.
Der Zweck des Abschneiden-von-Arbeitsgruppe-Programms 15 besteht darin,
jede Arbeitsgruppe so abzuschneiden, dass sie auf nur ein Segment
bezogen ist und nur Knoten auf diesem Segment umfasst, deren Verbindungsmaß durch
Knoten auf dem Segment zu dem Server, hinsichtlich dessen die Arbeitsgruppe
in Schritt 45 aus Programm 11 erzeugt wurde, zurückverfolgt
werden kann. Insbesondere entfernt das Programm 15 jeden
Knoten aus der Arbeitsgruppe, der nicht auf dem gleichen Logiksegment
wie die Arbeitsgruppe ist, und außerdem jeden Knoten, dessen
Einschluss in die Arbeitsgruppe entweder direkt oder indirekt ein
Ergebnis der ursprünglichen
Einschließung
eines Knotens ist, der nicht auf dem Logiksegment der Arbeitsgruppe
ist.
-
Sobald
die Arbeitsgruppen abgeschnitten wurden, wird in eine Schleifenstruktur,
die einen Schleifenmechanismus basierend auf den Schritten 72 und 73 aufweist,
zum Aufgreifen jedes Segmentes und Ausführen von Verarbeitungsschritten 74 bis 77 eingetreten.
Insbesondere wird in Schritt 72 das erste oder nächste Segment
in der Liste von Segmenten anvisiert, wobei Schritt 73 prüft, ob das
Ende der Liste noch nicht erreicht wurde (falls dies doch der Fall ist,
endet das Programm 12).
-
Für jedes
Logiksegment werden die Schritte 74 bis 77 ausgeführt. In
Schritt 74 wird eine Sammlung „WGCLTN" aus allen Arbeitsgruppen in der Liste 26 gebildet,
die relevant für
das gegenwärtige
Zielsegment sind. Schritt 75 prüft, ob es mehr als eine Arbeitsgruppe
in der Sammlung WGCLTN gibt. Falls dies nicht der Fall ist, wird
angenommen, dass es sich nicht lohnt, das Logiksegment aufzuteilen,
wobei die Verarbeitung zu dem Beginn der Schleife zurückkehrt,
um das nächste
Segment aufzunehmen. Unter der Annahme jedoch, dass es zumindest
zwei Arbeitsgruppen in WGCLTN gibt, fährt das Programm 12 mit
Schritt 76 fort, in dem der Zusammenführen-von-Arbeitsgruppen-Programm-Gegenstand 16 ausgeführt wird,
was dazu führt,
dass alle Knoten auf dem betrachteten Logiksegment Arbeitsgruppen
zugeordnet werden und die Anzahl der Arbeitsgruppen auf nur zwei
reduziert wird.
-
Danach
führt Schritt 77 den
Aufteilungsentscheidung-Programm-Gegenstand 17 aus, um
zu entscheiden, ob es sich lohnt, das betrachtete Logiksegment entsprechend
der endgültigen
beiden Arbeitsgruppen, die durch Schritt 76 erzeugt wurden, aufzuteilen.
Ein positiver Aufteilungsvorschlag wird in die Segmentaufteilungsliste 27 eingegeben, wobei jeder
Eintrag das betroffene Segment und die beiden Gruppierungen von
Knoten identifiziert, in die eine Unterteilung des Segments vorgeschlagen
wird.
-
14 ist
ein Flussdiagramm des Abschneiden-von-Arbeitsgruppen-Programm-Gegenstandes 15.
Dieses Programm 15 weist grundlegend eine Doppelschleifenstruktur
auf, durch die Verarbeitungsschritte 85 bis 87 auf
jeden Bestandteilsknoten jeder Arbeitsgruppe in Arbeitsgruppenliste 26 angewendet
werden. Insbesondere sind die Schritte 80 und 81 Schleifensteuerungsschritte,
die bewirken, dass das Programm 15 jede Arbeitsgruppe in
der Liste 26 der Reihe nach untersucht, bis alle Arbeitsgruppen
untersucht wurden. Für
jede neue untersuchte Arbeitsgruppe wird eine Liste „entfernt" in Schritt 82 initialisiert.
Danach wird in eine innere Schleifenstruktur eingetreten, bei der
jeder Knoten der gegenwärtigen
Arbeitsgruppe der Reihe nach betrachtet wird. Ein Fortschreiten
nach unten durch die Bestandteilsknoten einer Arbeitsgruppe hängt jedoch davon
ab, ob ein Verarbeitungsschritt 86 hinsichtlich eines Knotens
ausgeführt
wird oder nicht, wobei, falls dies der Fall ist, dieser Knoten aus
der Arbeitsgruppe entfernt und in die Entfernt-Liste gegeben wird
und die Verarbeitung der Arbeitsgruppenknoten wieder bei Null beginnt.
Im Gegensatz dazu geht, wenn Schritt 86 nicht hinsichtlich
eines bestimmten Knotens ausgeführt
wird, ein Fortschreiten nach unten entlang der Knoten der betrachteten
Arbeitsgruppe weiter.
-
Insbesondere
nimmt, nachdem die Liste Entfernt in Schritt 82 initialisiert
wurde, Schritt 83 den ersten Bestandteilsknoten der Zielarbeitsgruppe,
wobei Schritt 84 prüft,
ob es einen derartigen Knoten gibt (falls dies nicht der Fall ist,
zeigt dies an, dass alle Knoten in einer Arbeitsgruppe verarbeitet
wurden, wobei eine Verarbeitung zu Schritt 80 zurückkehrt,
um eine neue Arbeitsgruppe aufzugreifen). Schritt 85 wird
dann hinsichtlich des ersten Knotens ausgeführt, wobei dieser Schritt einfach
ein Test hinsichtlich dessen ist, ob der betroffenen Knoten auf dem
gleichen Seg ment ist wie die Arbeitsgruppe. Wenn der Zielknoten
nicht auf dem gleichen Segment wie eine Arbeitsgruppe ist, wird
Schritt 86 ausgeführt,
um den Zielknoten aus der Arbeitsgruppe zu entfernen und denselben
in die Entfernt-Liste zu geben. Danach kehrt die Verarbeitung zu
Schritt 85 zurück,
d. h. die gleiche Arbeitsgruppe wird wieder aufgegriffen und ihr
erster neuer Knoten gefunden. Andererseits wird, wenn in Schritt 85 herausgefunden wird,
dass sich der Zielknoten auf dem gleichen Segment wie die Arbeitsgruppe
befindet, Schritt 87 ausgeführt, um sicherzustellen, ob
der Primärserver
des Zielknotens in der Entfernt-Liste ist, wobei dies natürlich Bezug
nehmend auf den ersten Knoten, der für eine Arbeitsgruppe untersucht
wird, nicht der Fall ist. Ein negatives Ergebnis in Schritt 87 führt zu einer Ausführung von
Schritt 88, um den Zielknoten zu dem nächsten Knoten in der Arbeitsgruppe
fortzubewegen und die Verarbeitung zu Schritt 84 zurückkehren
zu lassen. Die Verarbeitung fährt
auf diese Weise fort, wobei Knoten aus der gegenwärtigen Arbeitsgruppe
in Schritt 86 abgeschnitten werden, wenn sie sich entweder
nicht auf dem gleichen Segment wie die Arbeitsgruppe befinden (in
Schritt 85 getestet) oder der Primärserver des betroffenen Knotens
in der Entfernt-Liste
ist (in Schritt 87 getestet). Wenn ein Knoten abgeschnitten
wird, wird eine Verarbeitung der Knoten der Arbeitsgruppe reinitialisiert.
-
15 ist
ein Flussdiagramm des Zusammenführen-von-Arbeitsgruppen-Programm-Gegenstandes 16,
der in Schritt 26 des Aufteilungsvorschläge-Programms 12 ausgeführt wird.
Beim Start dieses Programmgegenstandes können unter Umständen viele
der Knoten des betroffenen Segmentes noch nicht den für das Segment
relevanten Arbeitsgruppen zugeteilt sein. Der erste Schritt 90 des
Programms 16 dient deshalb dazu, einen Satz „AUN" aller aktiver, nicht
zugeteilter Knoten auf dem Segment von Interesse zu erzeugen, d.
h. Knoten mit zugeordnetem Verkehr, die sich noch nicht in einer
Arbeitsgruppe des Segmentes befinden.
-
Sobald
die Liste AUN erzeugt wurde, fährt das
Programm 16 mit Schritt 91 fort, bei dem dasselbe
eine jeweilige neue Arbeitsgruppe für jeden Knoten in AUN erzeugt,
wobei jede derartige Arbeitsgruppe in der Sammlung WGCLTN von Arbeitsgruppen für das betroffene
Segment protokolliert wird.
-
Ein
iterativer Prozess wird dann ausgeführt, um die Anzahl von Arbeitsgruppen
in der Sammlung WGCLTN auf zwei zu reduzieren, wobei Schritt 92 ein
Test für
diesen Zustand ist. Der Prozess des Reduzierens der Anzahl von Arbeitsgruppen
auf zwei wird durch ein Zusammenführen von Arbeitsgruppen bewirkt.
So wird in Schritt 93 die kleinste Arbeitsgruppe in WGCLTN
entweder hinsichtlich der Anzahl von betroffenen Knoten oder des
Verkehrsvolumens, das zwischen diesen Knoten fließt, identifiziert.
Sobald diese kleinste Arbeitsgruppe identifiziert ist, wird dieselbe
aus der Sammlung WGCLTN entfernt und in die Arbeitsgruppe in WGCLTN
hinzugefügt,
mit der dieselbe das größte Verbindungsmaß aufweist
(angesichts Knoten oder Verkehrsvolumen), wobei diese Hinzufügung in
Schritt 94 ausgeführt
wird.
-
Sobald
die Anzahl von Arbeitsgruppe in WGCLTN auf zwei reduziert wurde,
wird das Zusammenführen-von-Arbeitgruppen-Programm 16 beendet.
-
16 ist
ein Flussdiagramm des Aufteilungsentscheidung-Programm-Gegenstandes 17, der
in Schritt 77 des Aufteilungsvorschläge-Programms 12 ausgeführt wird.
Das Programm 17 trifft eine Entscheidung hinsichtlich dessen,
ob ein Logikelement in zwei derartige Segmente entsprechend den
beiden verbleibenden Arbeitsgruppen in der WGCLTN-Liste für das betroffene
Segment aufgeteilt werden sollte. Diese Entscheidung wird auf der
Basis von Verkehrsflüssen
in und zwischen den beiden Arbeitsgruppen durchgeführt (zur
Bequemlichkeit werden diese Arbeitsgruppen als WG1 und WG2 bezeichnet).
In dem Flussdiagramm aus 16 wird angenommen,
dass der Verkehrsfluss in Bytes ausgewertet wird, wobei dies natürlich von
der Verkehrsmaßeinheit
abhängt,
die bei dem Verkehrsmaß verwendet
wird, das in dem Gesamtverkehrsfeld der Verkehrselemente 22 gesammelt
wird.
-
In
Schritt 95 aus Programm 17 wird der interne Verkehr
jeder Arbeitsgruppe WG1 und WG2 bestimmt, wobei dieser interne Verkehr
der Gesamtverkehr zwischen Knoten innerhalb jeder Arbeitsgruppe ist.
Auch in Schritt 95 wird eine Bestimmung des Verbindungsmaßes zwischen
den Arbeitsgruppen WG1 und WG2 durchgeführt. Wie bereits angezeigt
wurde, werden die internen Verkehrsmaße und das Arbeitsgruppenverbindungsmaß in dem
Flussdiagramm aus 16 alle hinsichtlich Bytes bestimmt.
-
Als
nächstes
wird Schritt 96 ausgeführt,
um den gesamten internen Verkehr für das betroffene Segment, wieder
in Bytes, zu bestimmen.
-
Auf
der Basis der vorangegangenen Maße wird dann Schritt 97 ausgeführt, um
zu bestimmen, ob sich das Aufteilen des betroffenen Segmentes in zwei
lohnt. Die für
diese Entscheidung verwendeten Kriterien sind praktisch und können abhängig von den
Umständen
variieren. Im wesentlichen jedoch lohnt sich ein Aufteilen eines
Logiksegmentes nur, wenn das Gesamtverbindungsmaß zwischen den beiden Arbeitsgruppen
WG1 und WG2 nicht zu groß ist.
Es macht auch wenig Sinn, ein Segment aufzuteilen, wenn eine oder
beide der Arbeitsgruppen nur eine kleine Menge des Gesamtverkehrs
für das
Segment darstellen, oder wenn die Anzahl von Knoten in einer der
Arbeitsgruppen klein ist. Schritt 97 gibt Details über das
Vorangegangene, indem drei Tests ausgeführt werden und eine Aufteilung
des Segmentes nur empfohlen wird, wenn alle drei Tests bestanden
sind. Diese drei Tests sind wie folgt:
- – ein Test,
dass der interne Verkehr, in Bytes, für jede der Arbeitsgruppen WG1
und WG2 größer als
ein vorbestimmter Prozentsatz (z. B. 20%) des gesamten internen
Verkehrs des Segmentes ist;
- – ein
Test, dass die Anzahl von Knoten in jeder der Arbeitsgruppen WG1
und WG2 größer als
eine vorbestimmte Schwelle ist (z. B. 4);
- – ein
Test hinsichtlich dessen, ob das Verbindungsmaß zwischen WG1 und WG2 kleiner
als der interne Verkehr für
jede Arbeitsgruppe von WG1 und WG2 ist.
-
Wie
bereits zu Beginn erwähnt
wurde, ist die obige Beschreibung eine Implementierung des Netzanalyseverfahrens
der Erfindung für
den Fall, bei dem die Verkehrsdaten keine Anzeige der Server-/Clientenrolle
eines Knotens enthalten, der Daten sendet/empfängt. Derartige Informationen
können
jedoch verfügbar
sein. So umfasst z. B. für
Meldungen, die unter dem TCP-Protokoll gesandt werden, jede Meldung
eine Quellenknotenportzahl und eine Zielknotenportzahl. Bestimmte
Portzahlen sind für
die häufigeren
Dienste im vorhinein zugewiesen. Portzahlen, die auf diese Weise
im vorhinein zugewiesen sind, sind als „bekannte Ports" bekannt. Eine Maschine
z. B., die einen Hostnamenserverdienst liefert, tut dies bei einem
bekannten Port mit einer Portzahl von 42, wobei ähnlich ein X.400-Maildienst
auf einer bekannten Portanzahl 103 bereitgestellt wird.
-
Allgemein
agiert, wenn ein Knoten einen Endpunkt verwendet, der kein bekannter
Port ist und mit einem bekannten Port eines anderen Knotens kommuniziert,
dieser letztere Knoten als ein Server, während der zuerst erwähnte Knoten
als ein Client agiert. Ein Prüfen
der Portzahlen der Quellen- und Zielknoten ermöglicht es deshalb, dass eine
Einschätzung
hinsichtlich der jeweiligen Rollen durchgeführt wird, die durch die Knoten
durchgeführt
werden.
-
Es
tritt jedoch häufig
auf, dass beide Knoten miteinander durch bekannte Ports kommunizieren.
In diesem Fall kann entweder keine Beurteilung hinsichtlich dessen
durchgeführt
werden, welcher Knoten als ein Server und welcher als ein Client
agiert, oder es muss auf eine bestimmte Priorisie rung bekannter
Portzahlen zurückgegriffen
werden, um eine Beurteilung hinsichtlich der Rollen der betroffenen Knoten
durchzuführen.
Natürlich
hilft, wenn kein Knoten ein bekanntes Port verwendet, ein Betrachten
der Portzahlen nicht beim Bestimmen der Rollen der betroffenen Knoten.
-
4B stellt
eine Form einer Verkehrselementdatenstruktur dar, die geeignet zur
Verwendung in dem Fall ist, bei dem bekannten Portzahlen verwendet
werden, um Knotenrollen zu identifizieren. Die ersten beiden Felder
der Datenstruktur aus 4 enthalten
die Identitäten
des kommunizierenden Knotenpaars. Das vierte und das fünfte Feld
werden verwendet, um zu spezifizieren, welcher der identifizierten
Knoten als ein Client agiert und welcher als ein Server agiert (wenn
derartige Informationen hergeleitet wurden). Das fünfte Feld
identifiziert das betrachtete Protokoll, wobei diesbezüglich die
Verwendung des bekannten Ports nicht auf das TCP-Protokoll beschränkt ist
und identische oder ähnliche
Mechanismen in anderen Protokollen arbeiten. Das sechste Feld der
Datenstruktur aus 4B wird verwendet, um die Portzahl
für einen
Knoten zu halten, der identifiziert wurde, um als ein Server zu
agieren, wobei diese Portzahl natürlich eine bekannte Portzahl
ist. Das siebte und das achte Feld enthalten Verkehrsvolumendaten
in den beiden Richtungen eines Verkehrsflusses zwischen dem Paar
betroffener Knoten. Das letzte Feld ist das Aktiviertes-Flag-Feld, das bereits
oben Bezug nehmend auf die Datenstruktur aus 4A beschrieben
wurde.
-
Es
ist zu erkennen, dass, während
es in dem Fall, in dem keine Rolleninformationen gesammelt werden,
nur notwendig war, ein Verkehrselement für jede Paarung von Knoten zu
liefern, wobei derartige Informationen von dem Verkehr hergeleitet
werden, zumindest drei Verkehrselemente hinsichtlich jeder Knotenpaarung
erforderlich sind, nämlich
ein Element zum Aufzeichnen eines Verkehrs hinsichtlich eines ersten
der Knoten, der als ein Server agiert, ein zweites Element zur Aufzeichnung
eines Verkehrs hinsichtlich eines anderen Knotens, der als ein Server
agiert, und ein drittes Element zur Aufzeichnung eines Verkehrs
hinsichtlich des Knotens, zu dem keine Zuteilung hinsichtlich einer
Rolle gemacht werden konnte. Tatsächlich kann es zweckmäßig sein,
ein jeweiliges Verkehrselement für
jede Kombination eines bekannten Ports an einem Knoten, der mit
einem nichtbekannten Port an dem anderen Knoten kommuniziert, zu
liefern.
-
Die
Knotenrolleninformationen, die auf die obige Weise gesammelt werden,
sind insbesondere beim Identifizieren der globalen und lokalen Server nützlich,
wobei dies die Operation ist, die durch das Extrahieren-von-Server-Programm 10 ausgeführt wird.
Bei der Ausführung
dieses letzteren Programms basieren die Einschätzungen hinsichtlich dessen,
ob ein Knoten ein globaler oder ein lokaler Server ist, auf seinem
Verkehrsverbindungsmaß, wenn
er in einer Serverrolle im Gegensatz zu einer Clientenrolle agiert,
wobei eine derartige Unterscheidung nun durch die Verwendung mehrerer
Verkehrselemente für
jede Knotenpaarung möglich
ist. Insbesondere wird beim Einschätzen, ob ein Knoten als ein Server
agiert, eine Referenz auf die Verkehrselemente gemacht, für die dieser
Knoten als ein Server identifiziert wird. Tatsächlich wird allgemein außerdem eine
Referenz auf die Verkehrselemente gemacht, bei denen die Rolle des
betroffenen Knotens nicht definiert ist (anders ausgedrückt, die
einzigen ignorierten Verkehrselemente sind die, für die der
betroffene Knoten als ein Client identifiziert ist). Der Einschluss
des Verkehrs, für
den ein Server keine identifizierte Rolle aufweist, ist dahingehend
konsistent mit der Beschreibung des Extrahieren-von-Servern-Programms
aus 5, das oben angegeben ist, dass, wenn kein Verkehr
vorhanden ist, der bekannte Port beinhaltet, in beiden Fällen das
gleiche Ergebnis erhalten wird.
-
Es
ist auch ersichtlich, dass, wenn der Verkehr, der einem Server zugeordnet
ist, deaktiviert wird (z. B. in Schritt 35 aus 5),
dies nur ein Deaktivieren der Verkehrselemente beinhaltet, für die der betroffene
Knoten als ein Server identifiziert ist, oder für die keine Identifizierung
gemacht wurde.
-
Ähnliche
Betrachtungen treffen hinsichtlich dessen zu, wie die Rolleninformationen
in Verbindung mit dem Bewegungsvorschläge-Programm 11 und
dem Aufteilungsvorschläge-Programm 12 verwendet
werden.
-
Verschiedene
Modifizierungen an dem oben beschriebenen Netzanalyseverfahren sind
natürlich möglich. So
kann, obwohl das Verfahren hinsichtlich eines Netzes beschrieben
wurde, das aus Unternetzen besteht, die durch Logiksegmente auf
der Ebene 2 des Sieben-Schicht-OSI-Referenzmodells gebildet sind,
das Verfahren auch auf Netze angewendet werden, bei denen die Unternetze
andere Formen annehmen, z. B. Gruppierungen von Knoten, die durch Router/Gateways
getrennt sind, die auf der Ebene 3 des Sieben-Schicht-OSI-Referenzmodells arbeiten.
-
Ferner
können
die drei Hauptanalyseaufgaben, die durch das Extrahieren-von-Servern-Programm 10,
das Bewegungsvorschläge-Programm 11 und
das Aufteilungsvorschläge-Programm 12 dargestellt
werden, unabhängig
betrieben werden, vorausgesetzt, dass geeignete Anfangsinformationen
vorgesehen sind. So kann die Bewegungsvorschläge-Analyseaufgabe unabhängig von
der Extrahieren-von-Servern-Aufgabe ausgeführt werden, vorausgesetzt,
dass die Bewegungsvorschläge-Aufgabe
mit einer Liste lokaler Server und ihrer Clienten und mit geeigneten
Verkehrsdaten versehen ist. Ähnlich
kann die Aufteilungsvorschläge-Aufgabe
auch unabhängig
von der Extrahieren-von-Servern-Aufgabe ausgeführt werden. Tatsächlich könnte die
Aufteilungsvorschläge-Aufgabe
unabhängig
von der Bewegungsvorschlag-Aufgabe ausgeführt werden, vorausgesetzt,
dass entweder gleichwertige Arbeitsgruppen-Informationen von anderer
Stelle verfügbar gemacht
werden oder der Betrieb der Aufteilungsvorschlag-Aufgabe modifiziert
wurde, um Arbeitsgruppen selbst zu bilden. Zu diesem Zweck können Daten über einen
Verkehr im Inneren des betroffenen Unter netzes analysiert werden,
um Knoten auf dem Unternetz durch ein iteratives Verfahren in Arbeitsgruppen zu
klassifizieren, das für
jede Iteration folgende Schritte beinhaltet:
- – Zuteilen
des Knotens mit dem größten Verkehrsverbindungsmaß zu einer
jeweiligen neuen Arbeitsgruppe als einen lokaler Server;
- – weiteres
Zuteilen der Knoten als Clientenknoten zu der gleichen Arbeitsgruppe,
deren Verbindungsmaß zu
dem Lokalserverknoten größer als ein
vorbestimmter Abschnitt (z. B. 50%) des Gesamtverbindungsmaßes des
betroffenen Knotens ist, und
- – Modifizieren
der Verkehrsdaten durch ein Entfernen von Verkehr, der der neuen
Arbeitsgruppe zugeordnet ist.
-
Diese
Arbeitsgruppen können
dann auf eine Weise auf zwei reduziert werden, die bereits beschrieben
wurde, wobei dann eine Entscheidung hinsichtlich dessen durchgeführt werden
kann, ob das Unternetz nützlicherweise
aufgeteilt werden kann.