-
Die
vorliegende Erfindung betrifft Computernetze und die Verwaltung
eines Verkehrsflusses in derartigen Netzen.
-
Die
Verwaltung und Steuerung von verteilten Computernetzen, die eine
Information oder Verarbeitung für
Benutzer bereitstellen, stellen signifikante Schwierigkeiten dar.
Sowie mehr verschiedene verteilte Systeme in das Netz eingeführt werden,
nehmen die Netzverwaltung und die Steuerungsaufgaben in der Komplexität zu. Dies
kann durch eine manuelle Rekonfiguration, eine Verbesserung oder
eine Erneuerung von Elementen in dem Netz gelöst werden. Bevor jedoch das
Problem gelöst
werden kann, ist es wahrscheinlich, dass Benutzer eine Zeitspanne mit
schlechter Leistung oder andere Einschränkungen ihrer Aktivitäten erfahren
haben.
-
Diese
Probleme wurden zumindest zu einem gewissen Grad von der Einführung von
Netzverwaltungssystemen vermindert. Diese Systeme weisen eine Netzüberwachungseinrichtung
auf, die ausgebildet ist, die Belastung auf Elementen des Netzes
zu überwachen
und einen Verkehr umzuleiten, um den Verkehr auf eine optimalere
Weise zu verteilen. Ein Beispiel eines derartigen Systems wird in
der PCT-Patentanmeldung
WO 98/35302 offenbart. In dem offenbarten System ist die Netzüberwachungseinrichtung
ausgebildet, die Belastung/Leistung des Netzes (oder Teil des Netzes)
zu überwachen,
und hält
zusätzlich
ein Modell des Netzes aufrecht, das in regulären Intervallen optimiert wird.
Wenn die Leistung des Modells die des tatsächlichen Netzes übertrifft,
ist das System ausgebildet, die Konfiguration des Netzes zu verändern, so
dass es mit dem Modell entspricht.
-
Wenn
zum Beispiel das überwachte
Netz eine verteilte Datenbank ist, kann das System ausgebildet sein,
Daten in dem Netz zu Punkten zu bewegen, an denen für diese
Daten am meisten Bedarf besteht.
-
Wenn
das Netz ein Satz von Spiegel-Servern ist (d.h. eine Gruppe von
Servern, die identische Information oder Anwendungen für einen
Benutzer bereitstellen), kann das System ausgebildet sein, Verkehr
von überlasteten
Servern an Server mit einer übrigen
Verarbeitungskapazität
umzuleiten.
-
Wenn
Verkehr an ein alternatives Ziel umgeleitet wird, kann entstehender
Rückverkehr
in einigen Fällen
eine Anzeige der umgeleiteten Adresse liefern. Einige Anwendungen,
die auf Daten oder Anwendungen über
ein Netz zugreifen, sind empfindlich gegenüber derartigen Änderungen
der Adresse und eine Erfassung einer Änderung kann zu einem Fehlerzustand
führen
und die Anwendung veranlassen, die Kommunikation zu beenden.
-
RFC
2391 „Load
Sharing Using IP Network Address Translation (LSNAT)", August 1998 beschreibt
eine Belastungsteilung unter Verwendung von Netzadressübersetzern,
in der ein Client versucht, auf einen Server zuzugreifen unter Verwendung
der virtuellen Serveradresse (eine global eindeutige IP-Adresse,
die einen physikalischen Server oder eine Gruppe von Servern identifiziert,
welche die gleiche oder eine ähnliche
Funktionalität
liefern). Der LSNAT-Router leitet die Anforderung transparent an
einen der Hostrechner in dem Serverpool um, der unter Verwendung
eines Echtzeit- Belastungsverteilungs-Algorithmus ausgewählt wird.
Alle Anforderungen und Antworten hinsichtlich einer Sitzung zwischen
einem Client und einem Server müssen über denselben
LSNAT-Router geleitet werden, außer der Router, der die Belastungsteilung
unterstützt,
besitzt die verwendeten virtuellen Serveradressen. In beiden Fällen jedoch
kann, sobald eine Sitzung einem Hostrechner zugewiesen wurde, die
Sit zung nicht an einen anderen Hostrechner verschoben werden bis zum
Ende dieser Sitzung. Dies bedeutet, dass Belastungen inmitten von
Sitzungen nicht zwischen Hostrechnern gewechselt werden können.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung ist vorgesehen ein Verfahren zum transparenten
Umleiten (re-routing) von Datenelementen, die während einer Netzwerkverbindung entlang
einem Übertragungspfad
zwischen einer ursprünglichen
Quelladresse und einer ursprünglichen Zieladresse übertragen
werden, wobei die Datenelemente eine Angabe der Quelladresse und
eine Angabe der Zieladresse aufweisen, wobei die Netzwerkverbindung
Protokolle über
dem Protokoll der Transportebene umfasst, die fähig sind, eine Datenübertragung
während
einer Trennung und einer Wiederverbindung, wenn die Datenelemente
umgeleitet werden, aufrechtzuerhalten, wobei das Verfahren die Schritte
aufweist:
- a) an einem ersten Punkt in dem Übertragungspfad,
der sich von der ursprünglichen
Zieladresse unterscheidet:
- i) Empfangen eines ersten abgefangenen Datenelements;
- ii) Modifizieren der ursprünglichen
Quelladresse auf eine alternative Quelladresse;
- iii) Modifizieren der ursprünglichen
Zieladresse auf eine alternative Zieladresse; und
- iv) erneutes Übertragen
des ersten Datenelements auf dem Übertragungspfad; und
- b) an einem zweiten Punkt in dem Übertragungspfad, welcher der
alternativen Quelladresse entspricht:
- i) Empfangen eines zweiten Datenelements, das die alternative
Quelladresse als seine Zieladresse aufweist;
- ii) Modifizieren der Zieladresse auf die ursprüngliche
Quelladresse und Modifizieren der Quelladresse auf die ursprüngliche
Zieladresse; und
- iii) erneutes Übertragen
des zweiten Datenelements entlang dem Übertragungspfad.
-
Gemäß einem
weiten Ausführungsbeispiel der
Erfindung ist vorgesehen eine Vorrichtung zum transparenten Umleiten
von Datenelementen, die während
einer Netzwerkverbindung entlang einem Übertragungspfad zwischen einer
ursprünglichen Quelladresse
und einer ursprünglichen
Zieladresse übertragen
werden, wobei die Datenelemente eine Angabe der Quelladresse und
eine Angabe der Zieladresse aufweisen, wobei die Netzwerkverbindung Protokolle über dem
Protokoll der Transportebene umfasst, die fähig sind, eine Datenübertragung
während
einer Trennung und einer Wiederverbindung, wenn die Datenelemente
umgeleitet werden, aufrechtzuerhalten, wobei die Vorrichtung aufweist:
- a) erste Mittel, die an einem ersten Punkt
in dem Übertragungspfad,
der sich von der ursprünglichen
Zieladresse unterscheidet, angeordnet sind, wobei die ersten Mittel
betriebsfähig
sind,
- i) ein erstes abgefangenes Datenelement zu empfangen;
- ii) die ursprüngliche
Quelladresse auf eine alternative Quelladresse zu modifizieren;
- iii) die ursprüngliche
Zieladresse auf eine alternative Zieladresse zu modifizieren; und
- iv) das erste Datenelement auf dem Übertragungspfad erneut zu übertragen;
und
- b) zweite Mittel, die an einem zweiten Punkt mit der alternativen
Quelladresse in dem Übertragungspfad
angeordnet sind, die betriebsfähig sind,
- i) ein zweites Datenelement zu empfangen, das die alternative
Quelladresse als seine Zieladresse aufweist;
- ii) die Zieladresse auf die ursprüngliche Quelladresse zu modifizieren
und die Quelladresse auf die ursprüngliche Zieladresse zu modifizieren; und
- iii) das zweite Datenelement entlang dem Übertragungspfad erneut zu übertragen.
-
Diese
Ausführungsbeispiele
bieten den Vorteil einer Isolierung der ursprünglichen Anwendung vor jeder Änderung
der Identität
der Quelle von empfangenen Daten.
-
1 ist
ein schematisches Diagramm, das ein Netzwerk von Computersystemen
zeigt, welche die Erfindung verkörpern;
-
2a zeigt
einen Proxy-Server von 1 detaillierter;
-
2b zeigt
einen Teil des Proxy-Servers von 2 detaillierter;
-
3 zeigt
ein Beispiel von Netzadressen, die gemäß einem Ausführungsbeispiel
der Erfindung verarbeitet werden;
-
4 ist
eine schematische Darstellung eines weiteren Ausführungsbeispiels
der Erfindung; und
-
5 ist
eine schematische Darstellung eines weiteren Ausführungsbeispiels
der Erfindung.
-
Wo
eine Organisation Information auf einer globalen Basis über Webseiten
liefert, ist es üblich, mehr
als ein Datenbanksystem zu haben, wobei jedes dieselbe Information
liefert. Diese Datenbanksysteme werden auf Computern (als Server
bezeichnet) vorgesehen und werden allgemein als Spiegelserver bezeichnet,
da die Dienste, die sie jeweils liefern, identisch zueinander erscheinen.
Spiegelserver befinden sich oft an physikalisch entfernten Standorten,
zum Beispiel kann eine Firma einen Server in Nordamerika, einen
in Europa und einen weiteren in Japan haben. Jeder Spiegelserver
kann vorgesehen sein, einen Zugang für Benutzer über Client-Computer bereitzustellen,
die sich in der entsprechenden geographischen Region befinden, oder
zum Teilen einer vorherrschenden Belastung von einer Region mit
einer anderen Region. Dieselben Betrachtungen gelten für Anwendungsserver,
die ebenso gespiegelt werden können.
-
Unter
Bezugnahme auf 1 weist ein Netz von Computersystemen 101 vier
einzelne Netze 103, 105, 107, 109 auf,
die miteinander verbunden sind. Jedes der Netze 103, 105, 107, 109 kann
zum Beispiel ein lokales Netzwerk (LAN – local area network) oder
ein Weitbereichsnetz (WAN – wide
area network) sein. Eines der Netze kann das Internet sein. Spiegelserver 113, 115, 117, 119 sind
mit den Netzen 103, 105, 107 verbunden.
Jeder Spiegelserver ist ein herkömmlicher
Computer, auf dem ein Anwendungsprogramm läuft, wie ein Datenbankverwaltungssystem
(DBMS – data
base management system), und jeder liefert dieselbe Information
an den Benutzer. Die entsprechende Datenbank kann in dem Speicher des
Computers oder auf verteilte Weise gespeichert sein. Netz-Gateways 111 sind
an dem Verbindungspunkt zwischen jedem der Netze 103, 105, 107, 109 vorgesehen.
Die Netz-Gateways sind herkömmliche Computer,
auf denen Anwendungsprogramme laufen, die Funktionen ausführen, wie
Sicherheitsüberprüfungen und Übersetzung
zwischen unterschiedlichen Netzprotokollen.
-
Client-Computer 121 sind
herkömmliche Computer,
auf denen Anwendungsprogramme laufen, die einen Zugang zu den Servern 113, 115, 117, 119 über ein
oder mehrere der Netze 103, 105, 107, 109 bereitstellen.
Derartige Anwendungen können
in der Form eines Webbrowsers sein, wie Netscape (Warenzeichen)
oder Internet Explorer (Warenzeichen), die es einem Benutzer ermöglichen,
von dem DBMS auf einem der Server 113, 115, 117, 119 gespeicherte
Daten zu betrachten. Daten werden im Allgemeinen in der Form von Webseiten
betrachtet, die von dem DBMS in Dateien gespeichert sind. Wenn von
einem Client-Computer 121 eine Anforderung getätigt wird,
eine bestimmte Webseite zu betrachten, überträgt der Server, der die Anforderung
empfängt,
die Daten, welche die relevante Seite darstellen, über das
Netz an den Client 121. Der Browser auf dem Client 121 ist
ausgebildet, dem Benutzer dann die Daten anzuzeigen, d.h. die Webseite.
In einigen Fällen
können
Daten von dem Client 121 an einen Server übertragen
werden.
-
Jeder
der Computer in dem Netz von Computern 101 hat eine ihm
zugewiesene Identifikationsnummer, die als Internetprotokolladresse
(IP address) bezeichnet wird. Jede Adresse ist eindeutig und gibt
an, wo sich der Computer in dem Netz von Computern 101 befindet.
Wenn Daten über
das Netz übertragen
werden, werden sie in Blöcke
von Daten aufgeteilt, die dann in eine Übertragungsmeldung eingekapselt
werden, die im Allgemeinen als Paket bezeichnet wird. Jedes Paket
hat dieselbe grundlegende Struktur, die neben einem Teil der Daten
auch die IP-Adresse des sendenden Computers und die IP-Adresse des empfangenden
Computers umfasst. Das Senden und Empfangen von Paketen wird gemäß einem
standardisierten Kommunikations- (oder Transport) Protokoll, wie
TCP (Transmission Control Protocol), von einer Netzwerkkommunikationssoftware
durchgeführt,
die auf jedem der Computer in dem Netz von Computern 101 läuft. Jedes
der Netze 103, 105, 107, 109 umfasst
eine herkömmliche
Funktionalität,
die ausgebildet ist, jedes von einem sendenden Computer an den empfangenden
Computer, der in dem Paket von seiner IP-Adresse identifiziert wird, übertragene
Paket zu leiten (routing). Jede IP-Adresse wird von dem Transportprotokoll
auch unterteilt in eine Anzahl von getrennten Verbindungen an denselben
Computer, die als Anschlüsse
(ports) bezeichnet werden. Prozessen in einem Computer kann zugewiesen
werden, die Kommunikationen zu hand haben, die über einen bestimmten Anschluss oder
Anschlüsse
stattfinden.
-
Eine
Netzüberwachungseinrichtung 125 ist mit
jedem der Netze 103, 105, 107, 109 verbunden und
ausgebildet, um die Verarbeitungslast eines jeden der Spiegelserver 113, 115, 117, 119 zu überwachen.
Ein Beispiel eines derartigen Systems wird in der PCT-Anmeldung
Nr. WO 98/35302 beschrieben, das ausgebildet ist, die Leistung von
Spiegelservern zu überwachen
und sie mit einem dynamisch aktualisierten Modell der Gruppe von
Spiegelservern zu vergleichen. Wenn an einem Punkt die Leistung
des Modells besser als die des tatsächlichen Systems erachtet wird,
ist die Netzüberwachungseinrichtung
ausgebildet, Anweisungen auszugeben, um das Netz zur Anpassung an
das Modell zu rekonfigurieren. Auf diese Weise kann die Leistung
der Gruppe von Spiegelservern optimiert werden. Zum Beispiel kann
in dem vorliegenden Ausführungsbeispiel
einer der Spiegelserver 113 überlastet sein, während ein
anderer der Spiegelserver 119 unter seiner Kapazität arbeitet.
In diesem Fall ist die Netzüberwachungseinrichtung 125 ausgebildet,
Anweisungen auszugeben, die veranlassen, dass Verkehr von dem überlasteten Spiegelserver 113 an
den nicht ausgelasteten Spiegelserver 119 umgeleitet wird,
wodurch die Leistung des Systems im Ganzen optimiert wird.
-
In
dem vorliegenden Ausführungsbeispiel
ist ein Proxy-Server 123 an einem Punkt in dem Netz 109 zwischen
dem Gateway 111 und den Verbindungen an die anderen Netze 103, 107 vorgesehen.
Der Proxy-Server 123 ist
ausgebildet, Anweisungen von der Netzüberwachungseinrichtung 125 über das Netz 103 zu
empfangen und von dem Netz 109 kommenden Verkehr an den
geeigneten Spiegelserver gemäß den erhaltenen
Anweisungen umzuleiten.
-
Unter
Bezugnahme auf die 2a und 2b führt der
Proxy-Server 123 drei Hauptprozesse aus. Ein Client-Prozess 201 handhabt
die Kommunikation mit den Client-Computern 121 über das Gateway 111 (nicht
gezeigt), ein Server-Prozess 201 handhabt die Kommunikation über Anschlüsse 215, 217 über die
Netze 103, 107 und ein Proxy-Prozess 205. Der Proxy-Prozess 205 nimmt
von dem Client-Prozess 201 erhaltene Pakete und liest die
Quelladresse und die Zieladresse des Pakets. Der Proxy-Prozess 205 vergleicht
dann die Adressen mit in einer Adressentabelle 207 gespeicherten
Daten. Die Adressentabelle 207 weist einen „umgeleitete
Adressen"-Abschnitt 209 auf,
der zum Speichern von Ziel-IP-Adressen verwendet wird, die an alternative IP-Adressen
umgeleitet wurden. Die ursprüngliche Zieladresse
wird zusammen mit der entsprechenden umgeleiteten Adresse gespeichert.
-
Wenn
die Netzüberwachungseinrichtung 125 feststellt,
dass Verkehr von dem Netz 109 an einen alternativen der
Spiegelserver 113, 115, 117, 119 umgeleitet
werden sollte, sendet sie eine Anweisung über das Netz 103 an
den Proxy-Server 123. Der Proxy-Prozess 205 ist
ausgebildet, die Anweisung von der Netzüberwachungseinrichtung 125 über einen
Anschluss 213 zu empfangen, der unterschiedlich zu den
Anschlüssen
ist, die von dem Client und den Server-Prozessen 201, 203 verwendet
werden. Dies ermöglicht
dem Proxy-Prozess 205, die eintreffende Meldung als eine
Anweisung von der Netzüberwachungseinrichtung 125 zur
Aktualisierung des „umgeleitete
Adressen"-Abschnitt 209 der
Adressentabelle 207 gemäß der empfangenen
Anweisung zu identifizieren. Die Anweisung ist in der Form einer Zieladresse
und einer korrespondierenden umgeleiteten Adresse. Der Proxy-Prozess 205 fügt die neue Zieladresse
und die korrespondierende umgeleitete Adresse aus der Anweisung
zu dem „umgeleitete Adressen"-Abschnitt 209 hinzu.
Wenn bereits ein Eintrag für
eine bestimmte Zieladresse existiert, aktualisiert der Proxy-Prozess 205 den Eintrag
mit der neuen umgeleiteten Adresse von der Anweisung, statt einen
neuen Eintrag zu erzeugen.
-
3 illustriert
jedes Ereignis bei der Verarbeitung von IP-Adressen, das in dem
Ausführungsbeispiel
der vorliegenden Erfindung stattfindet, wenn ein Paket von einem
Client 121 an einen Zielserver 113 gesendet und
von dem Proxy-Server 123 an einen alternativen Server 119 umgeleitet
wird.
-
In
diesem Beispiel hat der Client 121 eine IP-Adresse (einschließlich einer
Anschlussnummer von 3456) 1.2.3.4:3456 und versucht, auf einen Server
zuzugreifen, der als „service
1.xyz.com" identifiziert
ist und der eine tatsächliche
IP-Adresse 100.100.100.100:80 hat. Bevor jedoch ein Zugang initiiert
wird, hat die Netzüberwachungseinrichtung 125 eine
geeignete Anweisung an den Proxy-Server 123 gesendet, allen
Verkehr von dem Netz, der an die Seite „service 1.xyz.com" gerichtet ist, an
einen Spiegelserver umzuleiten, der die tatsächliche IP-Adresse 123.456.789:80
hat. Als ein Ergebnis speichert der „umgeleitete Adressen"-Abschnitt 209 der
Adressentabelle 207 nun das Ziel-/umgeleitete Adresse-Paar
(100.100.100.100:80, 123.456.789:80).
-
Unter
Bezugnahme auf 3 sendet der Client 121 die
Verbindungsanforderung und diese wird an den Gateway 111 zu
dem Netz 103 geleitet. Wie in dem Ereignis 1 von 3 gezeigt,
umfasst das Paket die Quelladresse des Clients 121 und
die Zieladresse des Servers. Wenn das Paket von dem Gateway 111 zu
dem Netz 103 geleitet wird, wird es von dem Client-Prozess 201 des
Proxy-Servers 123 abgefangen und an den Proxy-Prozess 205 geleitet, wie
in dem Ereignis 2 von 3 gezeigt wird. Der Proxy-Prozess 205 schlägt die Zieladresse
in dem „umgeleitete
Adressen"-Abschnitt 209 der
Adressentabelle 207 nach. Wenn er einen entsprechenden Eintrag
findet, geht der Proxy- Prozess
weiter, die Zieladresse in dem Paket von 100.100.100.100:80 in 123.456.789:80
unter Verwendung des geeigneten Eintrags in der Adressentabelle 207 (d.h. 100.100.100.100:80,
123.456.789:80) zu übersetzen.
Der Proxy-Prozess 205 tauscht dann die Quelladresse des
Pakets von der des Clients 121 in seine eigene IP-Adresse,
d.h. 10.10.10.10, zusammen mit einer Angabe der Ausgabeanschlussnummer,
die in diesem Fall 513 ist, wie in dem Ereignis 3 der 3 gezeigt
wird.
-
Sobald
sowohl die Quell- als auch die Zieladresse wie oben angeführt modifiziert
wurden, speichert der Proxy-Prozess 205 eine Aufzeichnung
der Client-IP-Adresse, der ursprünglich
von dem Client 121 in dem Paket platzierten Zieladresse,
die Quelladresse des Pakets, wie übersetzt, und die tatsächliche
Zieladresse, wie übersetzt.
Diese Daten werden als paarweise Paare von Adressen in einem Bereich der
Adressentabelle gespeichert, der als „die aktuellen Verbindungen" 211 bezeichnet
wird. In dem vorliegenden Beispiel werden die paarweisen Paare in den „aktuellen
Verbindungen" 211 gespeichert:
(1.2.3.4:3456,
100.100.100.100:80), (10.10.10.10:513, 123.456.789:80).
-
Das
Paket wird dann an den Server-Prozess 203 zur Übertragung über das
Netz 103 an den geeigneten Server 119 weitergeleitet.
Als Antwort auf den Erhalt des Pakets bereitet der Server 119 Antwortdaten
in der Form eines weiteren Pakets vor, welches die Quelladresse
des Spiegelservers und die Zieladresse des Proxy-Servers 123 aufweist,
wie in dem Ereignis 4 von 3 gezeigt
wird. Das Paket wird über
das Netz 103 an das Netz 109 übertragen und von dem Proxy-Server 123 abgefangen,
wie in dem Ereignis 5 von 3 gezeigt
wird. Das Paket wird dann an den Proxy-Prozess 205 weitergeleitet, der
die Quelladresse und die Zieladresse mit dem zweiten Paar der Paare
in dem Bereich der „aktuellen Verbindungen" 211 der
Adressentabelle 207 vergleicht. Wird der übereinstimmende
Eintrag gefunden (während
dem Ereignis 3 gespeichert), tauscht der Proxy-Prozess 205 die
Quelladresse und die Zieladresse durch das erste Paar von Paaren
aus dem identifizierten Eintrag aus. Dies führt dazu, dass ein Paket eine
Quelladresse hat, die dieselbe wie die Zieladresse des von dem Client 121 stammenden Pakets
ist, und eine Zieladresse des Clients 121 hat, wie in dem
Ereignis 6 von 3 gezeigt wird. Das Paket wird
dann an den Client-Prozess 201 weitergegeben, der das Paket über das
Netz 109 an den Client 121 überträgt, wie in dem Ereignis 7 der 3 gezeigt
wird.
-
Für das obige
Beispiel wurde die Übertragung
nur eines Pakets gezeigt. Es ist jedoch offensichtlich, dass Übertragungsprotokolle,
z.B. TCP oder UDP, die Übertragung
einer großen
Anzahl von Paketen über
die Netze 103, 105, 107, 109 zu
jeder Zeit umfassen. Zusätzlich
ist der Proxy-Server 123 fähig, Kommunikationen zwischen
vielen Client-Server-Paaren im Wesentlichen gleichzeitig auf eine
herkömmliche
Weise zu bewältigen.
Demgemäß ist es möglich, dass
die Adressentabelle 207 viele Einträge in dem „umgeleitete Adressen"-Abschnitt 209 und/oder dem „aktuelle
Verbindungen"-Abschnitt 211 enthält.
-
Jeder
Eintrag in den „aktuellen
Verbindungen" 211 steuert
das Weiterleiten (routing) für
die bestimmte TCP- oder UDP-Verbindung. Deswegen wird in dem obigen
Beispiel bis zum Ende der TCP-Verbindung,
wann immer der Client-Prozess 201 ein Paket mit einer Quell/Zieladresse
(1.2.3.4:3456, 100.100.100.100:80) empfängt, dieses von dem Server-Prozess 203 mit
einer Quell/Zieladresse von (10.10.10.10:513, 123:456.789:80) wieder
gesendet. Ähnlich
wird, wenn der Server-Prozess 203 ein Paket mit den Adressen
(123:456.789:80, 10.10.10.10:513) erhält, dieses von dem Client- Prozess mit der Quell/Zieladresse
(100.100.100.100:80, 1.2.3.4:3456) wieder gesendet.
-
In
einigen Fällen
kann es wünschenswert sein,
Verkehr von einem Ziel an ein alternatives Ziel sogar während einer
Netzverbindung umzuleiten. In diesem Fall sendet die Netzüberwachungseinrichtung 125 eine
geeignete Anweisung an den Proxy-Prozess 205, um die aktuelle
Zieladresse des Servers auf die umgeleitete Adresse zu ändern. Als
Antwort auf die Anweisung aktualisiert der Proxy-Prozess 205 den
entsprechenden Eintrag in dem „umgeleitete
Adressen"-Abschnitt 209 und
durchsucht auch den Inhalt des „aktuelle Verbindungen"-Abschnitts 211 nach einem Routing-Paar,
das die aktuelle Zieladresse des Servers hat, von dem Verkehr weggeleitet
wird. Wenn dieser Eintrag gefunden ist, tauscht der Proxy-Prozess
die aktuelle Zieladresse in dem Eintrag durch die Umleitungsadresse
aus. Als ein Ergebnis wird nachfolgender Verkehr an den alternativen
Server umgeleitet.
-
Wenn
die Zieladresse während
einer Verbindung geändert
wird, ist es wichtig, die in der Verbindung verwendeten Protokolle
zu berücksichtigen.
Es ist wichtig, dass die Protokolle über den Protokollen der Transportebene
(TCP oder UDP) zustandslos sind oder eine Zustandswiederherstellung
haben, d.h. sie können
unterbrochen werden und Protokolle einer höheren Ebene sind ausgebildet,
die Wiederverbindung durchzuführen.
In anderen Worten, sie können
unterbrochen werden und dann wird die Verbindung auf höherer Ebene
an einem anderen Ziel wieder aufgenommen, ohne zu einer Unterbrechung der
Datenübertragung
zu führen.
Ein Beispiel eines geeigneten Protokolls ist NFS (Network File Server Protocol).
-
Unter
Bezugnahme auf 3 sollte angemerkt werden, dass
das Quelle/Ziel-Paar des Pakets in den beiden Ereignissen 1 und
7 das selbe ist und deswegen werden dem Client-Computer 121 keine Daten
geliefert, die anzeigen, dass eine Änderung des tatsächlichen
Ziels stattgefunden hat. Dies ist für alle Pakete der Fall, die
von dem Client 121 während einer
gegebenen Netzverbindung gehandhabt werden. In anderen Worten, das
Abfangen der Pakete von dem Proxy-Server 123 und ihre Umleitung
an einen alternativen Server ist für den Client 121 transparent.
Eine derartige Transparenz vermeidet Probleme, die auftreten, wenn
ein auf dem Client laufendes Anwendungsprogramm nur Pakete von einer
vorgegebenen Quelle akzeptieren kann und die Quell-IP-Adresse in
empfangenen Paketen verwendet, um dies zu überprüfen.
-
Ein
derartiges Problem kann auftreten, wenn auf dem Client 121 ein
Anwendungsprogramm läuft, das
in der Java-(Warenzeichen)-Programmiersprache
geschrieben ist. Java-Programme laufen in einer speziellen Software-Umgebung,
als Java Virtual Machine (Warenzeichen) bezeichnet, welche die Java-Anwendung
von der normalen Betriebsumgebung des Client-Computers isoliert.
Java wird üblicherweise
verwendet, um eine Funktionalität
in Webseiten und Browsern zu liefern. Java-Programme (als Java-Applets
bezeichnet) können
von einem Server heruntergeladen werden und laufen auf einem Client-Computer
in einer JVM, die als Teil der Funktionalität eines Web-Browsers (üblicherweise
als ein „Java-fähiger" Browser bezeichnet)
vorgesehen ist.
-
Ein
Merkmal „Java-fähiger" Browser ist, dass,
sobald ein Java-Applet heruntergeladen wurde, nachfolgende Kommunikationen
mit dem Server von der JVM nur ermöglicht werden, wenn die IP-Adresse
des Servers unverändert
bleibt. Deswegen werden, wenn Verkehr von dem Client an einen Spiegelserver
umgeleitet wird, auf die Umleitung nachfolgende Kommunikationen
von der JVM zurückgewiesen.
Dies würde
bedeuten, dass eine Neuzuteilung eines Spiegelservers wäh rend einer
Verbindung nicht möglich
wäre. Mit
der oben beschriebenen Transparenz würde jedoch die JVM die Umleitung
nicht bemerken und die Kommunikationen normal weiterführen.
-
Als
ein optionales Merkmal kann der „aktuelle Verbindungen"-Abschnitt 211 der Adressentabelle 207 verwendet
werden, zusätzliche
Information über jede
Verbindung zu speichern. Dies kann eine Leistungsinformation sein,
zum Beispiel Netzlatenzzeit, Durchsatz, Paketgrößen und -Volumen, zusammen mit
allen Netz- oder Transportfehlern. Wenn die Information unter der
Steuerung des Proxy-Prozesses 205 erfasst
wurde, kann sie über
das Netz 103 als Eingabe für die Netzüberwachungseinrichtung 125 übertragen
werden.
-
Unter
Bezugnahme auf 4 kann die Erfindung in einem
Netz von Computern 401 ausgeführt werden, das einen vermittelnden
Proxy-Server 403 umfasst,
der zwischen Client-Computern 405 und einem Gateway-Server 407 eines
Netzes 409 verbunden ist.
-
Vermittelnde
Proxy-Server sind konventionell und können auch als Adapter oder
Brücken
bezeichnet werden. Dies sind herkömmliche Serveranordnungen,
auf denen Serveranwendungsprogramme laufen, die ausgebildet sind,
Kommunikationen zwischen unterschiedlichen Protokollen durchzuführen und
gegenüber
Client-Computern wie ein Dienst zu erscheinen, auf den der Client-Computer
direkt über
das Netz zugreifen kann. Zusätzlich
zu der normalen Funktion eines vermittelnden Proxys ist der vermittelnde
Proxy 403 ausgebildet, dass es für ihn möglich ist, Verkehr an alternative
Ziele umzuleiten und dies auf eine transparente Weise zu tun. Dies kann
als Antwort auf von einer Netzüberwachungseinrichtung 125 (in 4 nicht
gezeigt) empfangene Anweisungen durchgeführt werden. Der vermittelnde Proxy 403 ist
auch fähig,
Verkehr mitten in einer Verbindung umzuleiten. Diese zusätzlichen
Funktionen des vermittelnden Proxy- Servers 403 werden von denselben
Mechanismen durchgeführt,
die oben unter Bezugnahme auf die 2a, 2b und 3 für den Proxy-Server 123 beschrieben
wurden.
-
5 zeigt
ein weiteres Ausführungsbeispiel der
vorliegenden Erfindung, in dem die Erfindung, statt in einer Proxy-Server-Umgebung
integriert zu sein, in einer Domain-Name-Server(DNS – domain name
server)-Umgebung 501 dargestellt wird. Herkömmlicherweise übersetzt
ein DNS-Server 503 zwischen den URLs (Universal Resource
Locators), wie „www.bt.com" (das der Benutzer
in die Befehlszeile eines Web-Browsers auf einem Client-Computers eingeben
kann), und der tatsächlichen
IP-Adresse des Servers in dem Netz, wie „109.9.34.346:80". Der DNS 503 ist
mit einer Datenbank 505 verbunden, die URLs und ihre entsprechenden
IP-Adressen speichert. Mit dem Netz 507 verbundene Computer
(nicht gezeigt) sind ausgebildet, Anforderungen für IP-Adressen
an die DNS durch Anzeige einer bestimmten URL zu tätigen. Als
Antwort auf eine derartige Anforderung fragt der DNS die Datenbank 505 ab
und sendet die IP-Adresse
aus dem entsprechenden Datenbankeintrag über das Netz 507 zurück an den
anfragenden Computer.
-
In
diesem Ausführungsbeispiel
jedoch ist ein ENS (enhanced naming server) 509 zwischen
dem DNS und dem Netz 507 verbunden. Der ENS ist ausgebildet,
einen vorgegebenen Satz von URLs abzufangen, während er alle anderen URLs
zu dem DNS durchlässt
(ohne eine Adressinformation in den Paketen zu ändern), damit sie auf die herkömmliche Weise
wie oben angemerkt verarbeitet werden. Der vorgegebene Satz von
URLs ist in der Adressentabelle 511 gespeichert. Sobald
der ENS eine bestimmte URL als eine identifiziert hat, die er abfangen
soll, sendet er die entsprechende IP-Adresse aus der Adressentabelle über das
Netz 507 an den anfragenden Computer zurück.
-
Die
von dem ENS 509 verwendete Adressentabelle 511 wird
von einer Netzüberwachungseinrichtung 513 über das
Netz 507 aktualisiert. Die Netzüberwachungseinrichtung 513 kommuniziert
mit dem ENS über
einen Anschluss 515, der getrennt ist von dem Anschluss
oder den Anschlüssen 517,
der/die für
normale DNS-Anfragen von Computern über das Netz 507 verwendet
wird/werden. Die Netzüberwachungseinrichtung 513 arbeitet
auf dieselbe Weise wie die oben beschriebene Netzüberwachungseinrichtung 125 und
implementiert Änderungen
einer Netzkonfiguration und/oder eines Flusses von Netzverkehr durch
Senden von Anweisungen an den ENS 509. Als Antwort auf
diese Anweisungen ändert
der ENS 509 die IP-Adresse für eine bestimmte in der Adressentabelle 511 gespeicherte
URL. Auf diese Weise kann Verkehr aus dem Bereich des Netzes, der
von dem DNS 503 bedient wird, von einem Server in dem Netz 507 an
einen anderen unter der Steuerung der Netzüberwachungseinrichtung 513 umgeleitet
werden.
-
Obwohl
in 5 der ENS 509 als direkt verbunden mit
dem DNS 503 gezeigt ist, sollte angemerkt werden, dass
der ENS 509 entfernt von dem DNS 503 sein kann
und die Fähigkeit
aufweisen kann, die normalen (nicht abgefangenen) DNS-Anforderungen über ein
Netz an den DNS 503 weiterzugeben.
-
Es
ist für
Fachleute offensichtlich, dass die Netzüberwachungseinrichtung (in
jedem der vorherigen Ausführungsbeispiele)
ein System zum Weiterleiten des Netzverkehrs gemäß lokalen Regeln (wie der Tageszeit),
der Quell-IP-Adresse, des physikalischen Standorts des Client-Computers
und einer Belastungsverteilungsinformation umfassen kann. Als eine
weitere Alternative kann die Netzüberwachungseinrichtung ein
menschlicher Anwender sein. Auch können der Proxy-Server 123,
der vermittelnde Proxy 403 und der ENS 509 in einen „Client
an Server"-Teil
und einen „Server
an Client"-Teil
geteilt sein, wobei jeder teil getrennt vorgesehen ist.
-
Obwohl
das obige Beispiel die DNS-Umgebung verwendet, ist offensichtlich,
dass die Lehren Anwendungen in anderen Systemen umfassen, wo eine Übersetzung
von Namenidentifizierern zu Adressen durchgeführt wird. Ferner sollten die
in der Beschreibung getätigten
Referenzen zu herkömmlichen
Computern oder Anwendungen nicht aufgefasst werden, dass sie die
Nutzung der Erfindung unter Verwendung nicht-herkömmlicher
Computer ausschließen.
Es ist offensichtlich, dass die oben beschriebenen Prinzipien auf
andere Systeme angewendet werden können, in denen Dienste von
einem oder mehreren Computer(n) zu einem oder mehreren anderen Computer(n)
geliefert werden, und nicht auf eine Client-Server-Umgebung beschränkt sind.
-
Die
obigen Beispiele wurden vorwiegend unter Bezugnahme auf TCP/IP beschrieben.
Es ist jedoch offensichtlich, dass die Lehren auf andere Protokolle
anwendbar sind, wie zum Beispiel ATM, DECNET (Warenzeichen) oder
SNA (Warenzeichen).