DE69837691T2 - Lastverteilung zwischen Servern in einem TCP/IP-Netz - Google Patents

Lastverteilung zwischen Servern in einem TCP/IP-Netz Download PDF

Info

Publication number
DE69837691T2
DE69837691T2 DE69837691T DE69837691T DE69837691T2 DE 69837691 T2 DE69837691 T2 DE 69837691T2 DE 69837691 T DE69837691 T DE 69837691T DE 69837691 T DE69837691 T DE 69837691T DE 69837691 T2 DE69837691 T2 DE 69837691T2
Authority
DE
Germany
Prior art keywords
address
servers
client
server
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69837691T
Other languages
English (en)
Other versions
DE69837691D1 (de
Inventor
Pi-Yu Berkeley Heights Chung
Om P. Austin Damani
Yennun Bridgewater Huang
Chandra M. Warren Kintala
Yi-Min Berkeley Heights Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Application granted granted Critical
Publication of DE69837691D1 publication Critical patent/DE69837691D1/de
Publication of DE69837691T2 publication Critical patent/DE69837691T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein Datenkommunikationsnetze, wie zum Beispiel das Internet, und insbesondere Techniken zum Hosten von Netzdiensten auf einem Cluster von Servern, mit dem Daten als Reaktion auf Client-Anforderungen über ein Netz abgeliefert werden, wobei der Cluster von Servern kollektiv von einem Client unter Verwendung eines Einzeladressenbildes identifiziert werden kann.
  • Allgemeiner Stand der Technik
  • Mit dem explosiven Wachstum des World Wide Web sind viele populäre Internet-Websites stark mit Client-Anforderungen belastet. Zum Beispiel wurde in S.L. Garfinkel, "The Wizard of Netscape", Webserver Magazine, Juli/August 1996, Seiten 59–63, berichtet, daß Homepages von Netscape Communications mehr als 80 Millionen Client-Anforderungen oder "hits" pro Tag empfangen. Ein einzelner Server, der einen Dienst hustet, reicht gewöhnlich nicht aus, um mit dieser Art von aggressivem Wachstum fertigzuwerden. Folglich können Clients langsame Ansprechzeiten sehen und nicht in der Lage sein, auf bestimmte Websites zuzugreifen. Das Aufrüsten der Server auf leistungsstärkere Maschinen ist möglicherweise nicht immer kosteneffektiv. Bei einem anderen üblichen Ansatz wird eine Menge von Maschinen, die auch als Cluster bezeichnet wird, eingesetzt und die Maschinen werden so konfiguriert, daß sie zusammenarbeiten, um einen einzelnen Dienst zu husten. Ein solcher Server-Cluster sollte vorzugsweise nur einen Servernamen für den gesamten Cluster publizieren, so daß sich eine etwaige Konfigurationsänderung im Innern des Clusters nicht auf Client-Anwendungen auswirkt. Das World Wide Web und andere Teile des Internet benutzen ein Protokoll auf Anwendungsebene, das als Hypertext Transfer Protocol (HTTP) bekannt ist und auf einer Client/Server-Architektur basiert. Das HTTP-Protokoll wird ausführlicher in "Hypertext Transfer Protocol – HTTP/1.0", Network Working Group, Mai 1996, http://www.ics.uci.edu/pub/iet/http, beschrieben.
  • 1 zeigt eine zur Implementierung von Netzdiensten auf HTTP-Basis im Internet geeignete beispielhafte Client/Server-Architektur. Ein Client 12 erzeugt eine HTTP-Anforderung eines bestimmten Dienstes, wie zum Beispiel eine Anforderung von Informationen, die mit einer bestimmten Website assoziiert sind, und dann wird eine TCP/IP-Verbindung (Transmission Control Protocol/Internet Protocol) zwischen dem Client 12 und einem den Dienst hostenden Server 14 hergestellt. Die Client-Anforderung wird in diesem Beispiel über eine TCP/IP-Verbindung über ein erstes Netz 16, einen Router 18 ein zweites Netz 20 an den Server 14 abgeliefert. Das erste Netz 16 kann ein großflächiges Kommunikationsnetz wie etwa das Internet sein, während das zweite Netz 20 ein Ethernet- oder eine andere Art von lokalem Netz (LAN) sein kann, das den Server 14 mit anderen Servern in einem Server-Cluster verbindet. Der Router 18, der auch als Gateway bezeichnet wird, führt eine Weiterleitungsfunktion zwischen dem ersten und dem zweiten Netz aus, die für den Client 12 transparent ist.
  • Die Client-Anforderung wird durch einen Web-Browser oder ein anderes Anwendungsschicht-Programm erzeugt, das in einer Anwendungsschicht 22-1 des Client 12 operiert und erhält eine Antwort von einem Dateitransfersystem oder einem anderen Programm in einer Anwendungsschicht 22-2 des Servers 14. Der angeforderte Netzdienst kann durch eine URL (Uniform Resource Locator) bezeichnet werden, die einen Domänennamen enthält, der den Server 14 oder ein entsprechendes, den Dienst hostendes Server-Cluster identifiziert. Das Anwendungsebenen-Programm des Client 12 leitet die TCP/IP-Verbindung ein, indem ein lokaler oder abgesetzter Domänennamendienst (DNS) angefordert wird, den Server-Domänennamen auf eine IP-Adresse abzubilden. Die TCP- und IP-Paket-Routing-Funktionen in dem Client 12 und in dem Server 14 werden in den jeweiligen TCP-Schichten 24-1, 24-2 und in den IP-Schichten 26-1, 26-2 bereitgestellt. Die TCP- und IP-Schichten sind im allgemeinen mit der Transport- bzw. Netzschicht des wohlbekannten OSI-Modells (Open Systems Interconnection) assoziiert. Die TCP-Schichten 24-1, 24-2 verabeiten TCP-Pakete der Client-Anforderung und Server-Antwort. Die TCP-Pakete enthalten jeweils einen TCP-Kopfteil, der eine Portnummer der TCP-Verbindung zwischen dem Client 12 und dem Server 14 identifiziert. Die IP-Schichten 26-1, 26-2 verarbeiten aus den TCP-Paketen der TCP-Schichten gebildete IP-Pakete. Die IP-Pakete enthalten jeweils einen IP-Kopfteil, der eine IP-Adresse der TCP/IP-Verbindung zwischen dem Client 12 und dem Server 14 identifiziert.
  • Die IP-Adresse für einen gegebenen Netzdienst kann wie oben bemerkt bestimmt werden, indem der Client auf einen herkömmlichen DNS zugreift. Die IP-Schicht 26-1 des Client 12 verwendet die resultierende IP-Adresse als Zieladresse in den IP-Paketkopfteilen von Client-Anforderungspaketen. Zusammen mit der TCP-Portnummer stellt die IP-Adresse die vollständige Transportadresse für den HTTP-Serverprozeß bereit. Der Client 12 und der Server 14 enthalten außerdem eine Datenstrecken- und physische Schicht 28-1 zur Durchführung von Framing- und anderen Operationen, um Client-Anforderungen oder Antwortpakete für die Übertragung über die Netze 16 und 20 zu konfigurieren. Der Router 18 enthält eine Datenstrecken- und physische Schicht 28-3 zum Umsetzen von Client-Anforderungs- und Server-Antwortpaketen in das IP-Format und eine IP-Schicht 26-3 zur Durchführung des Paket-Routing auf der Basis von IP-Adressen. Der Server 14 antwortet auf eine gegebene Client-Anforderung, indem er die angeforderten Informationen über die hergestellte TCP/IP-Verbindung in einer Anzahl von Antwortpaketen liefert. Die TCP/IP-Verbindung wird dann geschlossen.
  • Es gibt viele bekannte Techniken zum Verteilen von HTTP-Client-Anforderungen auf einen Cluster von Servern. 2 und 3 zeigen serverseitige Einzel-IP-Adressen-Bildansätze, die den Clients eine einzige IP-Adresse präsentieren. Ein Beispiel für diesen Ansatz ist der TCP-Router-Ansatz, der in D.M. Dias, W. Kish, R. Mukherjee und R. Tewari, "A Scalable and Highly Available Web Server", Proceedings of COMPCON '96, Seiten 85–92, 1996, beschrieben wird. 2 zeigt den TCP-Router-Ansatz, bei dem ein Client 12 eine TCP/IP-Verbindung über das Internet 30 mit einem serverseitigen Router 32 mit einer IP-Adresse RA herstellt. Der Router 32 ist über ein LAN 36 mit einem Server-Cluster 34 verbunden, das N Server 14-i, i = 1, 2, ... N, mit jeweiligen IP-Adressen S1, S2, ... SN enthält. Jeder Server des Clusters 34 stellt im allgemeinen Zugang zu denselben Inhalten bereit und die Inhalte können auf einer lokalen Platte jedes Servers dupliziert, auf einem Netzdateisystem gemeinsam benutzt oder von einem verteilten Dateisystem versorgt werden.
  • Das Einzeladressenbild wird erzielt, indem man die Adresse RA des serverseitigen Routers 32 über den DNS zu den Clients publiziert. Der Client 12 verwendet deshalb RA als Ziel-IP-Adresse in seiner Anforderung. Die Anforderung wird zu dem Router 32 geleitet, der dann die Anforderung auf der Basis von Lasteigenschaften wie durch die gestrichelte Linie, die den Client 12 über den Router 32 mit dem Server 14-k verbindet, angegeben zu einem gewählten Server 14-k des Server-Clusters 34 aussendet. Der Router 32 führt diese Aussendungsfunktion durch, indem er die Ziel-IP-Adresse jedes ankommenden IP-Pakets einer gegebenen Client-Anforderung von der Routeradresse RA in die Adresse Sk des gewählten Servers 14-k umändert. Der gewählte Server 14-k antwortet auf die Client-Anforderung, indem er wie durch die gestrichelte Linie, die den Server 14-k mit dem Client 12 verbindet, angegeben Antwortpakete über die hergestellte TCP/IP-Verbindung sendet. Damit die TCP/IP-Verbindung dem Client 12 nahtlos erscheint, ändert der gewählte Server 14-k die Quelle-IP-Adresse in seinen Antwortpaketen von der Adresse Sk in die Routeradresse RA um. Die Vorteile dieses Ansatzes bestehen darin, daß er die Anzahl der TCP-Verbindungen nicht vergrößert und für die Clients völlig transparent ist. Da die oben erwähnte Quellen-IP-Adressenänderung in der IP-Schicht in einem gegebenen Server durchgeführt wird, muß jedoch der Kernel-Code jedes Servers in dem Cluster modifiziert werden, um diesen Mechanismus zu implementieren. Eine vorgeschlagene Hybride des DNS-Ansatzes und des TCP-Router-Ansatzes, bei der ein DNS-Server eines von mehreren Clustern von Servern unter Verwendung einer Reigentechnik auswählt, hat dasselbe Problem.
  • 3 zeigt einen serverseitigen Einzeladressen-Bild-Ansatz, der als Netzadressenübersetzung bekannt ist und ausführlicher in E. Anderson, D. Patterson und E. Brewer, "The Magicrouter, an Application of Fast Packet Interposing", Symposium an Operating Systems Design and Implementation, OSDI, 1996, http://www.cs.berkeley.edu/~eanders/magicrouter/osdi96-mr-submission.ps, und in Cisco Local Director, http://www.cisco.com/warp/public/751/lodir/index.html, beschrieben wird. Wie bei dem TCP-Router-Ansatz von 2 verwendet der Client 12 die Routeradresse RA als Ziel-IP-Adresse in einer Client-Anforderung und der Router 32 sendet die Anforderung zu einem gewählten Server 14-k aus, indem er die Ziel-IP-Adresse jedes ankommenden Anforderungspakets von der Routeradresse RA in die Adresse Sk des gewählten Servers 14-k umändert. Bei dem Netzadressenübersetzungsansatz werden die Quellen-IP-Adressen in den Antwortpaketen von dem gewählten Server 14-k jedoch durch die Server 14-k wie in 2 nicht geändert, sondern werden statt dessen durch den Router 32 geändert. Der durch eine gestrichelte Linie in 2 angezeigte Antwortpaketfluß fließt somit von dem Server 14-k über den Router 32 zu dem Client 12.
  • Im Vergleich zu dem TCP-Routeransatz von 2 hat die Netzadressenübersetzung den Vorteil der Servertransparenz. Das heißt, es sind keine spezifischen Änderungen an dem Kernel-Code der Server erforderlich, um die Technik zu implementieren. Sowohl der TCP-Router- als auch der Netzadressenübersetzungsansatz erfordern jedoch, daß die Zieladresse in einem Anforderungspaket-Kopfteil in eine Serveradresse umgeändert werden kann, so daß der Server die Anforderung annehmen kann. Diese Ansätze erfordern auch, daß die Quellenadresse in einem Antwortpaket-Kopfteil in die Routeradresse umgeändert wird, so daß der Client die Antwort annehmen kann. Diese Änderungen führen zusätzliches Verarbeitungsoverhead ein und verkomplizieren den Paketablieferungsprozeß unangemessenerweise. Aufgrund der Adressenänderungen können zusätzlich die oben beschriebenen Einzeladressen-Bild-Ansätze nicht für die Verwendung mit Protokollen geeignet sein, die IP-Adressen innerhalb einer Anwendung verwenden, wie zum Bespiel in K. Egevang und P. Francis, "The IP Network Address Translator", Network Working Group, RFC 1631, http://www.safety.net/rfc1631.txt, beschrieben wird. Sowohl bei dem TCP-Router- als auch bei dem Netzadressenübersetzungsansatz muß der Router 32 ferner für jede IP-Verbindung eine IP-Adressenabbildung speichern. Nach dem Empfang eines mit einer existierenden TCP-Verbindung assoziierten ankommenden Pakets muß der Router alle Abbildungen durchsuchen, um zu bestimmen, zu welchem Server das Paket weitergeleitet werden soll. Der Router selbst kann deshalb unter Bedingungen mit großer Last zu einem Engpaß werden, wodurch die Verwendung eines komplexeren Hardware-Entwurfs, wie bei dem oben zitierten Cisco Local Director, notwendig wird.
  • YEOM H Y ET AL: "IP Multiplexing by Transparent Port-Address Translator", Proceedings of LISA X, Seiten 113–121, beschreibt eine Anordung, bei der sich mehrere Server eine einzige IP-Adresse teilen und die Last unter Verwendung von Portadressenübersetzung zwischen den Servern ausgeglichen wird.
  • Es ist deshalb ersichtlich, daß verbesserte Techniken zum Hosten eines Netzdienstes auf einem Cluster von Servern benötigt werden, während den Clients ein Einzeladressenbild präsentiert wird, ohne daß die mit den oben beschriebenen herkömmlichen Ansätzen assoziierten Probleme auftreten.
  • Kurzfassung der Erfindung
  • Die vorliegende Erfindung liefert Verfahren und Vorrichtungen zum Hosten eines Netzdienstes auf einem Cluster von Servern. Alle Server in einem Server-Cluster, das gemäß der Erfindung konfiguriert ist, können durch eine einzige Clusteradresse designiert werden, die jedem Server als Sekundäradresse zugewiesen wird. Alle Client-Anforderungen einer Website oder eines anderen mit der Cluster-Adresse assoziierten Netzdienstes werden zu dem Server-Cluster gesendet und es wird ein Aussendungsmechanismus verwendet, um sicherzustellen, daß jede Client-Anforderung nur von einem Server in dem Cluster verarbeitet wird. Die Aussendung kann so konfiguriert werden, daß sie operiert, ohne die Anzahl der für jede Client-Anforderung erforderlichen TCP/IP-Verbindungen zu vergrößern. Die Erfindung verteilt die Client-Anforderungslast gleichmäßig auf die verschiedenen Server des Clusters, maskiert den Ausfall eines beliebigen Servers oder von beliebigen Servern des Clusters durch Verteilen von Client-Anforderungen auf die übrigen Server, ohne den Dienst ausfallen zu lassen, und gestattet das Hinzufügen zusätzlicher Server zu dem Cluster, ohne den Dienst ausfallen zu lassen. Obwohl sie für die Verwendung beim Hosten von Website-Diensten gut geeignet sind, können die Techniken der vorliegenden Erfindung auch zur Unterstützung vielfältiger anderer Server-Anwendungen verwendet werden.
  • Bei einer beispielhaften Ausführungsform der Erfindung wird ein Netzdienst durch einen Server-Cluster gehostet, bei dem jeder Server eine primäre IP-Adresse und eine sekundäre IP-Adresse enthält. Als die sekundäre IP-Adresse für jeden der Server wird eine gemeinsame Cluster-Adresse zugewiesen. Die Cluster-Adresse kann eine IP-Adresse sein, die nicht einer primären IP-Adresse irgendeines der Server entspricht. Bei Servern auf UNIX-Basis kann die Clusteradresse als die Sekundäradresse durch Verwendung einer Option ifconfig alias als die Sekundäradresse für einen gegebenen Server zugewiesen werden. Wenn ein gegebener Server mehrere Netzschnittstellenkarten enthält, kann die Clusteradresse unter Verwendung eines UNIX-Befehls ifconfig ohne die Option alias oder eine andere ähnliche Technik einer der Netzschnittstellenkarten zugewiesen werden. Ein Router wird an ein lokales Netz des Serverclusters angekoppelt und wird außerdem über das Internet an einen Client angekoppelt. Der Router empfängt Client-Anforderungen aus dem Internet und verwendet eine Aussendungstechnik, um Client-Anforderungen, die die Clusteradresse als ein Ziel aufweisen, zu lenken. Die Client-Anforderungen werden so ausgesendet, daß jede der Anforderungen nur von einem der Server in dem Cluster verarbeitet wird. Die Aussendungsfunktion kann auf dem Ergebnis des Anwendens einer Hash-Funktion auf eine IP-Adresse des gegebenen Client basieren. Eine geeignete Hash-Funktion kann durch Verwendung einer Analyse einer Verteilung von Client-IP-Adressen in einer mit einem oder mehreren der Server assoziierten Zugangsprotokollierung bestimmt werden. Falls ein Server ausgefallen ist, kann die Hash-Funktion neu auf die Client-IP-Adresse angewandt werden, um einen anderen Server zu identifizieren.
  • Zwei beispielhafte Aussendungstechniken zur Bereitstellung eines Einzeladressenbildes für ein Server-Cluster gemäß der Erfindung umfassen Aussendung auf Routing-Basis und Aussendung auf Rundsende-Basis. Bei der auf Routing basierenden Technik wird ein Dispatcher an den Router und an ein lokales Netz des Server-Clusters angekoppelt. Der Router leitet Client-Anforderungen, die die Cluster-Adresse aufweisen, zu dem Dispatcher und der Dispatcher wählt einen bestimmten der Server zur Verarbeitung einer gegebenen Client-Anforderung auf der Basis des Ergebnisses des Anwendens einer Hash-Funktion auf die Client-Adresse aus. Bei der auf Rundsenden basierenden Technik sendet der Router Client-Anforderungen, die die Cluster-Adresse aufweisen, über das lokale Netz des Server-Clusters zu jedem der Server rund. Jeder der Server implementiert eine Filterungsroutine, um sicherzustellen, daß jede Client-Anforderung nur von einem der Server verarbeitet wird. Die Filterungsroutine kann umfassen, eine Hash-Funktion der mit einer gegebenen Client-Anforderung assoziierten Client-IP-Adresse anzuwenden und das Ergebnis mit einer Serverkennung zu vergleichen, um zu bestimmen, ob dieser Server die Client-Anforderung verarbeiten soll.
  • Die Techniken der vorliegenden Erfindung ermöglichen ein schnelles Aussenden und können mit reduzierten Kosten und reduzierter Komplexität implementiert werden. Die Techniken eignen sich für die Verwendung in TCP/IP-Netzen und auch in Netzen auf der Basis vielfältiger anderer Standards und Protokolle. Im Gegensatz zu den herkömmlichen Einzeladressen-Bild-Ansätzen erfordert die vorliegende Erfindung nicht, daß eine Zieladresse in einem Anforderungspaket-Kopfteil in eine Serveradresse umgeändert wird, so daß der Server die Anforderung annehmen kann, oder daß eine Quellenadresse in einem Antwortpaket-Kopfteil in die Routeradresse umgeändert wird, so daß der Client die Antwort annehmen kann. Außerdem muß der Router nicht für jede IP-Verbindung eine IP-Adressenabbildung speichern und muß nicht eine solche Abbildung durchsuchen, um zu bestimmen, zu welchem Server ein Paket weitergeleitet werden soll. Der Router selbst wird deshalb unter Bedingungen mit großer Last nicht zu einem Engpaß und es sind keine speziellen Router-Hardware-Entwürfe erforderlich. Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden aus den beigefügten Zeichnungen und der folgenden ausführlichen Beschreibung deutlicher.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschaltbild einer herkömmlichen Client-Server-Verbindung gemäß dem TCP/IP-Standard;
  • 2 zeigt eine vorbekannte TCP-Router-Technik zum Hosten eines Netzdienstes auf einem Cluster von Servern;
  • 3 zeigt eine vorbekannte Netzadressen-Übersetzungstechnik zum Hosten eines Netzdienstes auf einem Cluster von Servern;
  • 4 zeigt eine Technik zum Hosten eines Netzdienstes auf einem Cluster von Servern unter Verwendung von Aussendung auf Routing-Basis gemäß einer beispielhaften Ausführungsform der Erfindung; und
  • 5 zeigt eine Technik zum Hosten eines Netzdienstes auf einem Cluster von Servern unter Verwendung von Aussendung auf Rundsendebasis gemäß einer weiteren beispielhaften Ausführungsform der Erfindung.
  • Ausführliche Beschreibung der Erfindung
  • Die vorliegende Erfindung wird nachfolgend in Verbindung mit beispielhaften Client-Server-Verbindungen dargestellt, die über das Internet zu einem Server-Cluster unter Verwendung des TCP/IP-Standards (Transmission Control Protocol/Internet Protocol) hergestellt wird. Es versteht sich jedoch, daß die Erfindung nicht auf die Verwendung mit einer bestimmten Art von Netz oder Netzkommunikationsprotokoll beschränkt ist. Die offengelegten Techniken eignen sich für die Verwendung mit vielfältigen anderen Netzen und Protokollen. Der Begriff "Server-Cluster" bedeutet im vorliegenden Gebrauch eine Gruppe oder Menge von Servern, die verbunden oder anderweitig konfiguriert sind, um einen Netzdienst zu hosten. Die Begriffe "Clusteradresse" und "Einzel-Adressenbild" bedeuten allgemein eine mit einer Gruppe von Servern, die zur Unterstützung eines Netzdienstes oder von Netzdiensten konfiguriert ist, assoziierte Adresse. Eine "Geister-IP-Adresse" ist eine Art von Clusteradresse in Form einer IP-Adresse, die nicht als Primäradresse für irgendeinen Server eines gegebenen Server-Clusters verwendet wird. Der Begriff "Netzdienst" soll Websites, Internet-Sites und Datenablieferdienste sowie beliebige andere, einem Client über ein Netz zugängliche Datentransfermechanismen abdecken. Der Begriff "Client-Anforderung" bedeutet eine Kommunikation von einem Client, die den Netzdienst einleitet. Eine gegebene Client-Anforderung kann abhängig von der Beschaffenheit der Anforderung mehrere Pakete oder nur ein einziges Paket enthalten.
  • Die vorliegende Erfindung liefert einen verbesserten Einzel-Adressen-Bild-Ansatz zur Verteilung von Client-Anforderung auf Server eines Server-Clusters. Bei einer bevorzugten Ausführungsform ermöglicht die Erfindung es allen Servern eines Server-Clusters, sich eine einzige gemeinsame IP-Adresse als Sekundäradresse zu teilen.
  • Die Sekundäradresse wird hier auch als Clusteradresse bezeichnet und kann unter Verwendung einer Option ifconfig alias hergestellt werden, die auf den meisten auf UNIX basierenden Systemen verfügbar ist, oder unter Verwendung ähnlicher auf anderen Systemen verfügbarer Techniken. Die Clusteradresse kann unter Verwendung des oben erwähnten Domänennamendienstes (DNS) zu Clients publiziert werden, der Domänennamen, die mit URLs (Uniform Resource Locators) assoziiert sind, in IP-Adressen übersetzt. Alle Client-Anforderungen, die zu einem Dienst zu leiten sind, der durch den Server-Cluster gehostet wird, werden zu der einzigen Clusteradresse gesendet und zu einem ausgewählten der Server ausgesendet, wobei Aussendungstechniken auf Routing-Basis oder auf Rundsendebasis verwendet werden, die nachfolgend ausführlicher beschrieben werden. Nachdem ein Server ausgewählt wurde, können zukünftige Anforderungspakete, die mit derselben Client-Anforderung assoziiert sind, zu demselben Server gelenkt werden. Alle anderen Übermittlungen in dem Server-Cluster können primäre IP-Adressen der Server benutzen.
  • Die oben erwähnte Option ifconfig alias wird in der Regel dazu benutzt, es einem einzelnen Server zu erlauben, mehr als einen Domänennamen zu versorgen. Zum Beispiel erlaubt es die Option ifconfig alias einem einzelnen Server, mehrere IP-Adressen und somit mehrere Domänennamen an eine einzige Netzschnittstelle anzubinden, wie zum Beispiel in "Two Servers, One Interface", http://www.thesphere.com/~dlp/TwoServers/, beschrieben wird. Client-Anforderungen, die an beliebige der mehreren Domänennamen gerichtet sind, können dann durch denselben Server versorgt werden. Der Server bestimmt, mit welchem Domänennamen eine gegebene Anforderung assoziiert ist, indem er die Zieladresse in dem Anforderungspaket untersucht. Die vorliegende Erfindung verwendet die Option ifconfig alias, um es zwei Servern zu ermöglichen, sich dieselbe IP-Adresse zu teilen. Normalerweise können sich zwei Server nicht dieselbe IP-Adresse teilen, weil ein solches Arrangement bewirken würde, daß ein beliebiges Paket, das für die gemeinsam benutzte Adresse bestimmt ist, von beiden Servern angenommen wird und eine Antwort erhält, was den Client verwirrt und möglicherweise zu einer Verbindungsrücksetzung führt. Bevor es einem Server erlaubt wird, eine neue IP-Adresse an seine Netzschnittstelle anzubinden, kann deshalb eine Prüfung durchgeführt werden, um sicherzustellen, daß kein anderer Server auf demselben lokalen Netz (LAN) diese IP-Adresse benutzt. Wenn sich eine Duplikatadresse findet, werden beide Server informiert und Warnungen ausgegeben. Das Aussenden auf Routing-Basis oder Rundsendebasis der vorliegenden Erfindung stellt sicher, daß jedes Paket nur von einem Server des Clusters verarbeitet wird, so daß die oben erwähnten Warnungen kein Problem hervorrufen.
  • Bei einer alternativen Technik zum Zuweisen einer Sekundäradresse zu einem gegebenen Server eines Server-Clusters gemäß der Erfindung wird der gegebene Server so konfiguriert, daß er mehrere Netzschnittstellenkarten enthält, so daß jeder der Netzschnittstellenkarten eine andere Adresse zugewiesen werden kann. Zum Beispiel kann man bei einem auf UNIX basierenden System herkömmliche ifconfig-Befehle ohne die oben beschriebene Option alias verwenden, um einer der Netzschnittstellenkarten eine primäre IP-Adresse und einer anderen der Netzschnittstellenkarten eine sekundäre IP-Adresse zuzuweisen. Die sekundäre IP-Adresse wird auch als sekundäre IP-Adresse in übrigen Servern in dem Cluster zugewiesen und als Clusteradresse zum Lenken von Client-Anforderungen zu dem Cluster verwendet.
  • Die nachfolgend zu beschreibenden beispielhaften Ausführungsformen der vorliegenden Erfindung verwenden Aussendungstechniken, bei denen Server auf der Basis eines Hash-Werts der Client-IP-Adresse ausgewählt werden. Der Hash-Wert kann durch Anwenden einer Hash-Funktion auf die Client-IP-Adresse oder durch Anwenden einer anderen geeigneten Funktion erzeugt werden, um einen Hash-Wert aus der Client-IP-Adresse zu erzeugen. Zum Beispiel kann bei gegebenen N Servern und einem Paket von einem Client mit einer Client-Adresse CA eine Aussendungsfunktion gemäß der Erfindung einen Hash-Wert k als CA mod(N-I) berechnen und den Server k zum Verarbeiten des Pakets auswählen. Dadurch wird sichergestellt, daß alle Anforderungs- oder Antwortpakete derselben TCP/IP-Verbindung zu demselben Server in dem Server-Cluster geleitet werden. Eine geeignete Hash-Funktion kann man bestimmen, indem man eine Verteilung von Client-IP-Adressen in tatsächlichen mit den Servern assoziierten Zugangsprotokollierungen analysiert, so daß diese Client-Anforderungen ungefähr gleichmäßig auf alle Server verteilt sind. Wenn ein Server in dem Cluster ausfällt, kann die Teilmenge der diesem Server zugewiesenen Clients nicht mit ihm verbunden werden. Die vorliegende Erfindung behandelt dieses potentielle Problem durch dynamisches Modifizieren der Aussendungsfunktion nach Erkennung eines Serverausfalls. Wenn der Hash-Wert einer gegebenen Client-IP-Adresse auf dem ausgefallenen Server abgebildet wird, wird die Client-IP-Adresse neu gehasht, um auf einem nichtausgefallenen Server abgebildet zu werden, und die Verbindungen der übrigen Clients sind durch den Ausfall nicht betroffen.
  • 4 zeigt eine auf Routing basierende Aussendungstechnik gemäß der vorliegenden Erfindung. Durchgezogene Linien zeigen Netzverbindungen, während gestrichelte Linien den Weg einer beispielhaften Client-Anforderung und der entsprechenden Antwort zeigen. Ein Client 52 sendet eine Client-Anforderung zu einem Server-Cluster 54, der N Server 54-i, i = 1, 2, N, mit IP-Adressen S1, S2, ... SN enthält und durch ein Ethernet- oder anderweitiges LAN 56 verbunden wird.
  • Die Client-Anforderung wird gemäß dem oben beschriebenen HTTP-Protokoll formuliert und kann eine URL mit einem Domänennamen enthalten, der mit einer Website oder einem anderen von dem Server-Cluster 54 gehosteten Netzdienst assoziiert ist. Der Client greift auf einen DNS zu, um eine IP-Adresse für den Domänennamen des Dienstes zu bestimmen und verwendet die IP-Adresse dann, um eine TCP/IP-Verbindung zur Kommunikation mit einem der Server 54-i des Server-Clusters 54 herzustellen. Gemäß der Erfindung wird eine "Geister-IP-Adresse" zu dem DNS als Clusteradresse für den Server-Cluster 54 publiziert. Die Geister-IP-Adresse wird so ausgewählt, daß keiner der Server 54-i des Clusters 54 diese IP-Adresse als seine Primäradresse besitzt. Deshalb werden jegliche an die Geister-IP-Adresse gerichtete Anforderungspakete mit Client-Anforderungen des Dienstes des Einzeladressen-Bild-Clusters 54 assoziiert. Die Verwendung der Geister-IP-Adresse unterscheidet einen durch den Cluster gehosteten Netzdienst somit von Aktivitäten der Server 54-i, die die primären Serveradressen benutzen und verhindert Störungen dieser Primäradressenaktivitäten.
  • Der Client 52 verwendet die Geister-IP-Adresse als Clusteradresse zum Lenken seiner Anforderung zu dem Server-Cluster 54. Die Anforderung wird über das Internet 60 zu einem Router 62 mit einer IP-Adresse RA geleitet. Der Router 62 enthält eine Routing-Tabelle mit einem Eintrag oder Datensatz, der alle ankommenden Anforderungspakete mit der Geister-IP-Adresse zu einem mit LAN 56 verbundenen Dispatcher 64 leitet. Der Dispatcher 64 enthält ein Betriebssystem, das dafür konfiguriert ist, in einem Routermodus unter Verwendung eines Routing-Algorithmus, der die hier beschriebene Aussendung durchführt, abzulaufen. Bei alternativen Ausführungsformen könnten die Funktionen des Dispatchers 64 in den Router 62 integriert werden, um zusätzliche Effizienzverbesserungen bereitzustellen.
  • Jeder der Server 54-i des Clusters 54 verwendet die oben beschriebene Option ifconfig alias zum Setzen der Geister-IP-Adresse als seine Sekundäradresse. Wie bereits erwähnt, erfordert diese Technik zum Setzen einer Sekundäradresse für jeden der Server 54-i im allgemeinen keinerlei Abänderung des auf den Servern ablaufenden Kernel-Codes. Bei alternativen Ausführungsformen können einer oder mehrere der Server 54-i so konfiguriert sein, daß sie mehrere Netzschnittstellenkarten enthalten (wie bereits erwähnt), so daß jeder der Netzschnittstellenkarten eines gegebenen Servers unter Verwendung eines UNIX-Befehls ifconfig oder einer anderen ähnlichen Technik eine andere Adresse zugewiesen werden kann.
  • Der Router 62 routet alle Pakete mit der Geister-IP-Adresse gemäß dem obenerwähnten Routing-Tabellendatensatz zu dem Dispatcher 64. Der Dispatcher 64 wendet dann eine Hash-Funktion auf die Client-IP-Adresse in einem gegebenen Anforderungspaket an, um zu bestimmen, zu welchem der Server 54-i das gegebene Paket geroutet werden soll. In dem in 4 dargestellten Beispiel wendet der Dispatcher 64 eine Hash-Funktion auf die IP-Adresse des Client 52 an und bestimmt, daß das entsprechende Anforderungspaket zu dem Server 54-2 an der IP-Adresse S2 geroutet werden soll. Der Dispatcher 64 routet das Anforderungspaket dann über das LAN 56 wie durch die gestrichelte Linie angegeben unter Verwendung der Primäradresse S2 des Servers 54-2 zu dem Server 54-2, um ihn von den anderen Servern des Clusters 54 zu unterscheiden. Nachdem die Netzschnittstelle des Servers 54-2 das Paket annimmt, kann die gesamte Verarbeitung auf höherer Ebene auf der Geister-IP-Adresse basieren, weil sie die Zieladresse in dem Paket-IP-Kopfteil und möglicherweise in den Paketinhalten der Anwendungsschicht ist. Nach der Verarbeitung der Anforderung antwortet der Server 54-2 dem Client 52 direkt über den Router 62 über die hergestellte TCP/IP-Verbindung unter Verwendung der Geister-IP-Adresse und ohne den Dispatcher 64 zu durchlaufen.
  • Es sollte angemerkt werden, daß, wenn ein für die Geister-IP-Adresse bestimmtes Anforderungspaket von der Netzschnittstelle des Dispatchers 64 empfangen und zur Ablieferung an einen der Server 54-i über das LAN 56 wieder auf dieselbe Netzschnittstelle zurückgelegt wird, es bewirken kann, daß eine Host-Umleitungsnachricht des Internet-Steuernachrichtenprotokolls (ICMP) zu dem Router 62 gesendet wird. Diese ICMP-Nachricht ist dafür ausgelegt, den Router 62 anzuweisen, seine Routing-Tabelle so zu aktualisieren, daß alle zukünftigen Pakete mit der Geister-IP-Adresse den Dispatcher 64 umgehen und direkt den Zielserver erreichen können, wie ausführlicher in W. R. Stevens, TCP/IP Illustrated, Band 1, Kap. 6, Seiten 69–93, beschrieben wird. Dieser Effekt ist jedoch in der Routing-Technik von 4 unerwünscht, weil der Dispatcher 64 den Serverauswahlprozeß wie zuvor beschrieben durchführt. Es kann deshalb notwendig sein, die ICMP-Host-Umleitungsnachricht für die Geister-IP-Adresse zu unterdrücken, indem man zum Beispiel den entsprechenden Betriebssystemcode in dem Dispatcher entfernt oder abändert. Bei den oben erwähnten alternativen Ausführungsformen, bei denen die Aussendungsfunktion in dem Router 62 implementiert ist, wird die ICMP-Umleitungsnachricht nicht erzeugt und muß daher nicht unterdrückt werden. Ein weiteres potentielles Problem kann entstehen, wenn ein Antwortpaket von dem gewählten Server 54-2 mit der Geister-IP-Adresse zu dem Client 52 zurückgesendet wird, insofern, als es bewirken kann, daß der Router 62 in seinem Cache des Adressenauflösungsprotokolls (ARP) die Geister-IP-Adresse mit der LAN-Adresse des gewählten Servers assoziiert. Die Funktionsweise des ARP-Cache wird ausführlicher in W. R. Stevens, TCP/IP Illustrated, Band 1, Kap. 4 und 5, Seiten 53–68, worauf hiermit ausdrücklich Bezug genommen wird, beschrieben.
  • Die beispielhafte Ausführungsform von 4 vermeidet dieses Problem durch automatisches Routen der Anforderungspakete zu dem Dispatcher 64 mit anschließender Aussendung auf der Basis der primären IP-Adresse des Servers, so daß der Router-ARP-Cache nicht benutzt wird.
  • 5 zeigt eine auf Rundsenden basierende Aussendungstechnik gemäß der vorliegenden Erfindung. Wieder geben durchgezogene Linien Netzverbindungen an, während gestrichelte Linien den Weg einer beispielhaften Client-Anforderung und der entsprechenden Antwort zeigen. Wie bei der auf Routing basierenden Ausführungsform von 4 sendet der Client 52 eine Client-Anforderung zu dem Server-Cluster 54, das N Server 54-i, i = 1, 2, ... N, enthält, die mit dem LAN 56 verbunden sind und die IP-Adressen S1, S2, ... SN aufweisen. Der Client 52 verwendet die oben beschriebene Geisteradresse als Cluster-Adresse zum Lenken seiner Anforderung zu dem Server-Cluster 54. Die Anforderung wird über das Internet 60 zu einem Router 70 mit einer IP-Adresse RA geleitet. Der Router 70 sendet alle ankommenden Anforderungspakete mit der Geister-IP-Adresse zu dem LAN 56, das die Server 54-i des Server-Clusters 54 verbindet, rund, so daß das Anforderungspaket von jedem der Server 54-i empfangen wird.
  • Jeder der Server 54-i des Clusters 54 implementiert eine Filterungsroutine, um sicherzustellen, daß nur einer der Server 54-i eine gegebene Client-Anforderung verarbeitet. Die Filterungsroutine kann zu einem Einrichtungstreiber jedes der Server 54-i hinzugefügt werden. Bei einer beispielhaften Implementierung wird jedem der Server 54-i eine eindeutige Identifikationsnummer (ID) zugewiesen. Die Filterungsroutine eines gegebenen Servers 54-i berechnet einen Hash-Wert der Client-IP-Adresse und vergleicht sie mit der ID-Nummer des gegebenen Servers. Wenn der Hash-Wert und die ID- Nummer nicht übereinstimmen, weist die Filterungsroutine des gegebenen Servers das Paket zurück. Wenn der Hash-Wert und die ID-Nummer übereinstimmen, nimmt der gegebene Server das Paket an und verarbeitet es, als ob er das Paket durch einen herkömmlichen IP-Routing-Mechanismus empfangen hätte. Bei dem Anschauungsbeispiel von 5 wird das mit der Anforderung von dem Client 52 assoziierte Paket durch den Router 70 zu jedem der Server 54-i des Server-Clusters über das LAN 56 wie zuvor erwähnt rundgesendet. Die Filterungsroutine des Servers 54-2 erzeugt einen Hash-Wert der Client-IP-Adresse, der mit der eindeutigen ID-Nummer übereinstimmt, die mit dem Server 14-2 assoziiert ist, und der Server 14-2 nimmt das Paket deshalb an und verarbeitet es. Die Filterungsroutinen der N-1 anderen Server 54-i zeigen jeweils keine Übereinstimmung zwischen der Client-IP-Adresse und der entsprechenden Server-ID-Nummer an und verwerfen deshalb das rundgesendete Paket. Die Antwortpakete werden über den Router 70 wie durch die gestrichelte Linien angegeben unter Verwendung der Geister-IP-Adresse zu dem Client 52 zurückgesendet.
  • Die auf Rundsenden basierende Aussendungstechnik von 5 kann unter Verwendung eines permanenten ARP-Eintrags in dem Router 70 implementiert werden, um die Geister-IP-Adresse mit der mit dem LAN 56 des Clusters 54 assoziierten Rundsendeadresse des Ethernet oder anderen lokalen Netzes zu assoziieren. Ein potentielles Problem liegt darin, daß jedes Antwortpaket von einem gewählten Server von der Geister-IP-Adresse zu kommen scheint und deshalb bewirken kann, daß der Router 70 den Eintrag in seinem ARP-Cache so überschreibt, daß die Geister-IP-Adresse mit der LAN-Adresse des gewählten Servers assoziiert wird. Dieses potentielle Problem läßt sich behandeln, indem man in dem Router 70 einen Routing-Tabelleneintrag einrichtet, um alle Pakete mit einer Geister-IP-Zieladresse zu einer zweiten Geister-IP-Adresse zu lenken, die eine legale Subnetzadresse in dem LAN 56 des Server-Clusters 54 ist, aber von keinem Server benutzt wird. Zusätzlich wird ein Eintrag in dem ARP-Cache des Routers 70 eingefügt, um die zweite Geister-IP-Adresse mit der Rundsendeadresse des LAN 56 zu assoziieren. Wenn der Router 70 ein Paket zu der zweiten Geister-IP-Adresse routet, sendet er dann tatsächlich das Paket zu jedem der Server 54-i des Clusters 54 rund. Da kein Antwortpaket von der zweiten Geister-IP-Adresse gesendet wird, bleibt der entsprechende Eintrag des Router-ARP-Cache unverändert. Ein anderes potentielles Problem liegt darin, daß bestimmte Betriebssysteme, wie zum Beispiel das Betriebssystem NetBSD, keine Verarbeitung eines TCP-Pakets erlauben, wenn es von einer Rundsendeadresse empfangen wird. Dieses potentielle Problem kann durch eine geeignete Modifikation der Rundsendeadresse in dem an dem Paket angehängten LAN-Paket-Kopfteil vermieden werden.
  • Die in Verbindung mit 4 und 5 oben beschriebenen Aussendungstechniken auf Routing-Basis und Rundsendebasis wurden auf einem Cluster von Workstations des Typs Sun SPARC implementiert. Es wurde das Betriebssystem NetBSD, beschrieben in NetBSD Project, http://www.NetBSD.org, verwendet, um etwaige notwendige Kernel-Code-Modifikationen bereitzustellen. Das mit beiden Techniken assoziierte Aussendungsoverhead ist minimal, weil die Paketaussendung auf einfacher IP-Adressen-Hash-Transformation basiert, ohne daß es notwendig ist, irgendwelche Adressenabbildungsinformationen zu speichern oder zu durchsuchen. Bei der auf Routing basierenden Aussendungstechnik fügt der zusätzliche Routing-Schritt in den Dispatcher 64 in der Regel eine Verzögerung von etwa 1 bis 2 ms zu der TCP-Gesamtlaufzeit jedes ankommenden Anforderungspakets hinzu. Eine Studie in W. R. Stevens, TCP/IP Illustrated, Band 3, Seiten 185–186, zeigt, daß die Median-TCP-Gesamtlaufzeit 187 ms beträgt. Die auf das auf Routing basierende Aussenden zurückzuführende zusätzliche Verzögerung ist deshalb vernachlässigbar. Obwohl der zusätzliche Routing-Schritt für jedes zu der Geister-IP-Adresse gesendete Anforderungspaket den Verkehr in dem LAN des Server-Clusters vergrößern kann, ist die Größe einer Anforderung bei vielen wichtigen Anwendungen in der Regel viel kleiner als die der entsprechenden Antwort, die direkt ohne das zusätzliche Routing an den Client abgeliefert wird. Bei der auf Rundsenden basierenden Aussendungstechnik vergrößert das Rundsenden jedes ankommenden Anforderungspakets auf dem LAN des Server-Clusters den Netzverkehr nicht wesentlich. Obwohl für jedes ankommende Paket mit der Geister-IP-Zieladresse ein Hash-Wert berechnet wird, wodurch die CPU-Last jedes Servers vergrößert wird, ist dieses zusätzliche Berechnungsoverhead im Vergleich zu der entsprechenden Kommunikationsverzögerung vernachlässigbar.
  • Die auf Routing basierende und die auf Rundsenden basierende Aussendungstechnik der vorliegenden Erfindung sind beide skalierbar, um relativ große Anzahlen von Servern zu unterstützen. Obwohl der Dispatcher in der auf Routing basierenden Technik in bestimmten Anwendungen einen potentiellen Engpaß darstellen könnte, zeigt eine Studie in der oben zitierten Literaturstelle von D.M. Dias et al. an, daß ein einziger Dispatcher bis zu 75 Serverknoten unterstützen kann und dies ist ausreichend Unterstützung für viele praktische Systeme. Die unterstützten Anzahlen von Servern können mit der vorliegenden Erfindung sogar noch höher sein, da die hier beschriebenen auf Routing basierenden Aussendungsfunktionen im allgemeinen einfacher als die der Literaturstelle von D.M. Dias et al. sind. Außerdem sollte beachtet werden, daß man durch Kombinieren des auf Routing basierenden Aussendens der vorliegenden Erfindung mit einer DNS-Reigentechnik zusätzliche Skalierbarkeit erhalten kann. Zum Beispiel kann ein DNS-Server verwendet werden, um unter Verwendung einer Reigentechnik einen Domänennamen auf eine von mehreren verschiedenen Geister-IP-Adressen abzubilden, die zu verschiedenen Server-Clustern gehören. Bei der auf Rundsenden basierenden Aussendungstechnik besteht kein potentieller Aussendungsengpaß, obwohl die Einrichtungstreiber oder andere Teile der Server möglicherweise modifiziert werden müssen, um die oben beschriebenen Filterungsroutinen bereitzustellen.
  • Das auf Routing basierende und auf Rundsenden basierende Aussenden der vorliegenden Erfindung kann auch Lastausgleich und Ausfallbehandlungsfähigkeiten bereitstellen. Wenn zum Beispiel N Server und ein Paket von der Clientadresse CA gegeben sind, kann die oben beschriebene Aussendungsfunktion auf Routing-Basis einen Hash-Wert k als CA mod (N-1) berechnen und den Server k zur Verarbeitung des Pakets auswählen. Es können auch kompliziertere Aussendungsfunktionen verwendet werden und können umfassen, die tatsächliche Dienstzugangsprotokollierung zu analysieren, um einen effektiveren Lastausgleich bereitzustellen. Um Ausfälle zu erkennen, kann jeder Server durch einen Watchdog-Dämon überwacht werden, wie zum Beispiel den watchd-Dämon, der ausführlicher in Y. Huang und C. Kintala, "Software Implemented Fault Tolerance: Technologies and Experience", Proceedings of the 23rd International Symposium an Fault-Tolerant Computing – FTCS, Toulouse, Frankreich, Seiten 2–9, Juni 1993, beschrieben wird. Wenn ein Server ausfällt, leitet der entsprechende watchd-Dämon eine Änderung der Aussendungsfunktion ein, um den Ausfall zu maskieren und die Last neu auszugleichen. Es kann eine Systemaufrufschnittstelle implementiert werden um eine Änderung der Aussendungsfunktion zu erlauben, während die Server online bleiben. Bei der auf Routing basierenden Aussendung kann der watchd-Dämon den Dispatcher benachrichtigen, die Aussendungsfunktion zu ändern, während bei der auf Rundsenden basierenden Aussendung alle Server benachrichtigt werden können, ihre Filterungsroutinen zu modifizieren. Wenn zum Beispiel ein Server k ausfällt, kann die neue Aussendungsfunktion prüfen, ob der Hash-Wert CA mod N gleich k ist. Wenn dies der Fall ist, wird ein neuer Hash-Wert j = CA mod (N-1) berechnet. Wenn j kleiner als k ist, geht das Paket zum Server j. Andernfalls geht das Paket zum Server j+1. Diese Technik wirkt sich nicht auf die Clients nichtausgefallener Server aus, weist die Clients des ausgefallenen Servers gleichmäßig auf die übrigen Server neu zu und kann ohne weiteres erweitert werden, um mit mehreren Serverausfällen fertig zu werden. Es können zusätzliche Server zu dem Cluster hinzugefügt werden, ohne den Dienst ausfallen zu lassen, indem die Aussendungsfunktion von CA mod N in CA mod (N+1) umgeändert wird.
  • Bei der auf Routing basierenden Aussendung kann der Dispatcher ein einzelner Ausfallpunkt werden und sollte deshalb auch durch einen watchd-Dämon oder einen anderen geeigneten Ausfallüberwachungsmechanismus überwacht werden. Bei Erkennung eines Ausfalls kann der watchd-Dämon einen Transfer der Aussendungsfunktion von dem primären Dispatcher zu einem Backup-Dispatcher auslösen und dann den Router anweisen, den Eintrag in seiner Routing-Tabelle so zu ändern, daß zukünftige ankommende Anforderungspakete zu dem Backup-Dispatcher geroutet werden. Da der primäre Dispatcher keine Abbildungstabelle führt, ist dieser Ansatz im wesentlichen zustandslos. Ein ordungsgemäßes Routen kann sichergestellt werden, indem man einfach einheitliche Routing-Funktionen in dem primären und dem Backup-Dispatcher verwendet, ohne die wesentlichen zusätzlichen Kosten, die mit den auf Abbildung basierenden Ansätzen assoziiert sind.
  • Die Verwendung der Option ifconfig alias oder einer anderen ähnlichen Technik zur Bereitstellung eines Einzeladressen-Bildes für einen Server-Cluster hat gegenüber zuvor beschriebenen herkömmlichen Techniken mehrere Vorteile. Zum Beispiel vermeidet sie die Notwendigkeit, die Zieladresse in einem Anforderungspaket-Kopfteil so umzuändern, daß ein bestimmter Server die Anforderung annehmen kann, und die Notwendigkeit, die Quellenadresse in einem Antwortpaket-Kopfteil in die Clusteradresse umzuändern, so daß der Client die Antwort annehmen kann. Bei dem Einzeladressen-Bild-Ansatz der vorliegenden Erfindung können alle Server Pakete mit der Clusteradresse annehmen und auf sie antworten, so daß die Adressen in den Anforderungs- und Antwortpaket-Kopfteilen nicht modifiziert werden müssen. Da der Einzelbild-Ansatz der vorliegenden Erfindung keine Abänderung der Paketadressen erfordert, eignet er sich für die Verwendung in vielfältigen Protokollen darunter die Protokolle, die IP-Adressen innerhalb eines Anwendungsprogramms benutzen. Zusätzlich erfordert der Einzel-Adressen-Bild-Ansatz der vorliegenden Erfindung keinen Router zum Speichern oder Durchsuchen einer potentiell großen Anzahl von IP-Adressenabbildungen, um zu bestimmen, welcher Cluster-Server ein Anforderungspaket empfangen soll. Die Erfindung beseitigt somit effektiv die Möglichkeit, daß der Router unter Bedingungen mit großer Last zu einem Engpaß werden kann.
  • Die oben beschriebenen Ausführungsformen der Erfindung sollen nur veranschaulichen. Fachleute können zahlreiche alternative Ausführungsformen konzipieren, ohne von dem Schutzumfang der folgenden Ansprüche abzuweichen.

Claims (29)

  1. Verfahren zum Routen von Client-Anforderungen zu mehreren Servern (54), die dafür konfiguriert sind, einen Netzdienst über ein Kommunikationsnetz zu unterstützen, wobei jeder der Server eine Primäradresse aufweist, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Zuweisen einer gemeinsamen Adresse als Sekundäradresse für jeden der mehreren Server dergestalt, daß jeder der Server individuell die Sekundäradresse aufweist; und Verarbeiten von an die gemeinsame Adresse gerichteten Client-Anforderungen dergestalt, daß jede der Anforderungen durch einen bestimmten der mehreren Server ohne Modifikation der gemeinsamen Adresse in der Anforderung verarbeitet wird.
  2. Verfahren nach Anspruch 1, wobei das Netz ein TCP/IP-Protokoll verwendet und die Primär- und Sekundäradressen primäre bzw. sekundäre IP-Adressen sind.
  3. Verfahren nach Anspruch 2, wobei die gemeinsame Adresse eine IP-Adresse ist, die nicht einer primären IP-Adresse irgendeines der mehreren Server entspricht.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei mindestens einer der mehreren Server ein auf UNIX basierender Server mit mehreren Netzschnittstellenkarten ist und der Schritt des Zuweisens umfaßt, die gemeinsame Adresse für den mindestens einen Server unter Verwendung eines ifconfig-Befehls zuzuweisen.
  5. Verfahren nach einem der Ansprüche 1 bis 3, wobei die mehreren Server auf UNIX basierende Server sind und der Schritt des Zuweisens umfaßt, die gemeinsame Adresse unter Verwendung einer Option ifconfig alias für mindestens eine Teilmenge der mehreren Server zuzuweisen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Verarbeitungsschritt den Schritt des Versendens einer Anforderung eines gegebenen Clients zu einem der mehreren Server auf der Basis der Anwendung einer Hash-Funktion auf eine IP-Adresse des gegebenen Clients umfaßt.
  7. Verfahren nach Anspruch 6, wobei die Hash-Funktion auf der Basis einer Analyse der Verteilung von Client-IP-Adressen in einer mit einem oder mehreren der Server assoziierten Zugangsprotokollierung bestimmt wird.
  8. Verfahren nach Anspruch 6, wobei der Schritt des Versendens das Neuanwenden der Hash-Funktion auf die Client-IP-Adresse umfaßt, um andere Server zu identifizieren, wenn ein als Ergebnis einer vorherigen Anwendung der Hash-Funktion identifizierter Server ausgefallen ist.
  9. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Schritt des Verarbeitens die folgenden Schritte umfaßt: Routen von an die gemeinsame Adresse gerichteten Client-Anforderungen zu einem Dispatcher (64), der mit einem mit den mehreren Servern assoziierten lokalen Netz (56) verbunden ist; und Auswählen eines bestimmten der Server, um eine gegebene Client-Anforderung zu verarbeiten, auf der Basis der Anwendung einer Hash-Funktion auf eine entsprechende Client-Adresse in dem Dispatcher.
  10. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Schritt des Verarbeitens die folgenden Schritte umfaßt: Rundsenden einer an die gemeinsame Adresse gerichteten gegebenen Client-Anforderung zu allen der mehreren Server über ein mit den Servern assoziiertes lokales Netz; und Implementieren einer Filterungsroutine in jeden der mehreren Server, so daß die gegebene Client-Anforderung nur von einem der Server verarbeitet wird.
  11. Verfahren nach Anspruch 10, wobei der Schritt des Implementierens die folgenden Schritte umfaßt: Anwenden einer Hash-Funktion auf eine Client-IP-Adressen, die mit der gegebenen Client-Anforderung assoziiert ist; und Vergleichen des Ergebnisses des Schritts des Anwendens mit einer Kennung eines bestimmten Servers, um zu bestimmen, ob dieser Server die gegebene Client-Anforderung verarbeiten soll.
  12. Vorrichtung zum Routen von Client-Anforderungen zu mehreren Servern (54), die dafür konfiguriert sind, einen Netzdienst über ein Kommunikationsnetz zu unterstützen, wobei jeder der Server eine Primäradresse aufweist, gekennzeichnet durch: Mittel zum Zuweisen einer gemeinsamen Adresse als Sekundäradresse für jeden der mehreren Server dergestalt, daß jeder der Server individuell die Sekundäradresse aufweist; und Mittel zum Verarbeiten von an die gemeinsame Adresse gerichteten Client-Anforderungen dergestalt, daß jede der Anforderungen durch einen bestimmten der mehreren Server ohne Modifikation der gemeinsamen Adresse in der Anforderung verarbeitet wird.
  13. Vorrichtung nach Anspruch 12, wobei das Verarbeitungsmittel wirkt, um eine Anforderung eines gegebenen Client auf der Basis einer Anwendung einer Hash-Funktion auf eine IP-Adresse des gegebenen Clients zu einem der mehreren Server zu versenden.
  14. Vorrichtung nach Anspruch 13, wobei das Verarbeitungsmittel wirkt, um die Hash-Funktion auf der Basis einer Analyse einer Verteilung von Client-IP-Adressen in einer mit einem oder mehreren der Server assoziierten Zugangsprotokollierung zu bestimmen.
  15. Vorrichtung nach Anspruch 13, wobei das Verarbeitungsmittel ferner wirkt, um die Hash-Funktion neu auf die Client-IP-Adresse anzuwenden, um einen anderen Server zu identifizieren, wenn ein als Ergebnis einer vorherigen Anwendung der Hash-Funktion identifizierter Server ausgefallen ist.
  16. Vorrichtung nach einem der Ansprüche 12 bis 15, wobei das Verarbeitungsmittel ferner einen Dispatcher (64) enthält, der mit einem mit den mehreren Servern assoziierten lokalen Netz (56) verbunden ist, wobei der Dispatcher wirkt, um an die gemeinsame Adresse gerichtete Client-Anforderungen zu empfangen und auf der Basis der Anwendung einer Hash-Funktion auf eine entsprechende Client-Adresse einen bestimmten der Server zur Verarbeitung einer gegebenen Client-Anforderung auszuwählen.
  17. Vorrichtung nach einem der Ansprüche 12 bis 15, wobei das Verarbeitungsmittel ferner folgendes umfaßt: Mittel zum Rundsenden einer an die gemeinsame Adresse gerichteten gegebenen Client-Anforderung zu allen der Server über ein mit den Servern assoziiertes lokales Netz; und Mittel zum Filtern der gegebenen Client-Anforderung in jedem der mehreren Server, so daß die gegebene Client-Anforderung nur von einem der Server verarbeitet wird.
  18. Vorrichtung nach Anspruch 17, wobei das Filtermittel wirkt, um eine Hash-Funktion auf eine Client-IP-Adresse anzuwenden, die mit der gegebenen Client-Anforderung assoziiert ist, und das Ergebnis des Schritts des Anwendens mit einer Kennung eines bestimmten Servers zu vergleichen, um zu bestimmen, ob dieser Server die gegebene Client-Anforderung verarbeiten soll.
  19. System zum Routen von Client-Anforderung eines Netzdienstes über ein Kommunikationsnetz, wobei das System durch folgendes gekennzeichnet ist: mehrere Server (54) die dafür konfiguriert sind, den Netzdienst zu unterstützen, wobei jeder der Server eine Primäradresse und eine Sekundäradresse aufweist, wobei als die Sekundäradresse für jeden der mehreren Server eine gemeinsame Adresse zugewiesen wird, so daß jeder der Server individuell die Sekundäradresse aufweist; und einen Router (62, 70), der an die Server angekoppelt ist und wirkt, um an die gemeinsame Adresse gerichtete Client-Anforderungen so zu routen, daß jede der Anforderungen durch einen bestimmten der mehreren Server ohne Modifikation der gemeinsamen Adresse in der Anforderung verarbeitet wird.
  20. System nach Anspruch 19, wobei der Router ferner wirkt, um Client-Anforderungen so zu routen, daß eine Anforderung eines gegebenen Clients auf der Basis einer Anwendung einer Hash-Funktion auf die IP-Adresse des gegebenen Clients zu einem der mehreren Server geroutet wird.
  21. System nach Anspruch 20, wobei der Router ferner wirkt, um die Hash-Funktion auf der Basis einer Analyse einer Verteilung von Client-IP-Adressen in einer mit einem oder mehreren der Server assoziierten Zugangsprotokollierung zu bestimmen.
  22. System nach Anspruch 20, wobei der Router wirkt, um die Hash-Funktion neu auf die Client-IP-Adresse anzuwenden, um einen anderen Server zu identifizieren, wenn ein als Ergebnis einer vorherigen Anwendung der Hash-Funktion identifizierter Server ausgefallen ist.
  23. System nach einem der Ansprüche 19 bis 22, ferner mit einem Dispatcher (64), der an den Router und an ein lokales Netz (56), das mit den mehreren Servern assoziiert ist, angekoppelt ist, dergestalt, daß der Router Client-Anforderungen, die die gemeinsame Adresse aufweisen, zu dem Dispatcher leitet und der Dispatcher einen bestimmten der Server für die Verarbeitung einer gegebenen Client-Anforderung auf der Basis einer Anwendung einer Hash-Funktion auf eine entsprechende Client-Adresse auswählt.
  24. System nach einem der Ansprüche 19 bis 22, wobei der Router ferner wirkt, um eine gegebene an die gemeinsame Adresse gerichtete Client-Anforderung über ein mit den Servern assoziiertes lokales Netz zu jedem der mehreren Server rundzusenden und wobei ferner jeder der Server eine Filterungsroutine implementiert, so daß die gegebene Client-Anforderung nur von einem der Server verarbeitet wird.
  25. System nach Anspruch 24, wobei die Filterungsroutine das Anwenden einer Hash-Funktion auf eine mit der gegebenen Client-Anforderung assoziierte Client-IP-Adresse und das Vergleichen des Ergebnisses mit einer Kennung eines bestimmten Servers umfaßt, um zu bestimmen, ob dieser Server die gegebene Client-Anforderung verarbeiten soll.
  26. Vorrichtung nach einem der Ansprüche 12 bis 18 oder System nach einem der Ansprüche 19–25, wobei das Netz ein TCP/IP-Protokoll verwendet und die Primär- und Sekundäradressen primäre bzw. sekundäre IP-Adressen sind.
  27. Vorrichtung oder System nach Anspruch 26, wobei die gemeinsame Adresse eine IP-Adresse ist, die nicht einer primären IP-Adresse irgendeines der mehreren Server entspricht.
  28. Vorrichtung oder System nach einem der Ansprüche 19 bis 27, wobei mindestens einer der mehreren Server ein auf UNIX basierender Server mit mehreren Netzschnittstellenkarten ist und die gemeinsame Adresse für den mindestens einen Server unter Verwendung eines ifconfig-Befehls zugewiesen wird.
  29. Vorrichtung oder System nach einem der Ansprüche 19 bis 27, wobei die mehreren Server auf UNIX basierende Server sind und die gemeinsame Adresse als die Sekundäradresse der mehreren Server durch Verwenden einer Option ifconfig alias für mindestens eine Teilmenge der mehreren Server zugewiesen wird.
DE69837691T 1997-03-14 1998-03-03 Lastverteilung zwischen Servern in einem TCP/IP-Netz Expired - Lifetime DE69837691T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/818,989 US6470389B1 (en) 1997-03-14 1997-03-14 Hosting a network service on a cluster of servers using a single-address image
US818989 1997-03-14

Publications (2)

Publication Number Publication Date
DE69837691D1 DE69837691D1 (de) 2007-06-14
DE69837691T2 true DE69837691T2 (de) 2008-01-10

Family

ID=25226947

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69837691T Expired - Lifetime DE69837691T2 (de) 1997-03-14 1998-03-03 Lastverteilung zwischen Servern in einem TCP/IP-Netz

Country Status (4)

Country Link
US (1) US6470389B1 (de)
EP (1) EP0865180B1 (de)
CA (1) CA2230550C (de)
DE (1) DE69837691T2 (de)

Families Citing this family (280)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CZ266699A3 (cs) * 1997-01-13 1999-12-15 John Overton Automatizovaný systém pro archivaci obrazů
CA2206737C (fr) * 1997-03-27 2000-12-05 Bull S.A. Architecture en reseau de machine informatique
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6360262B1 (en) 1997-11-24 2002-03-19 International Business Machines Corporation Mapping web server objects to TCP/IP ports
US6718387B1 (en) * 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8296396B2 (en) * 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6912588B1 (en) 1998-04-02 2005-06-28 Intel Corporation System and method for managing client requests in client-server networks
US6681327B1 (en) 1998-04-02 2004-01-20 Intel Corporation Method and system for managing secure client-server transactions
US6359879B1 (en) * 1998-04-24 2002-03-19 Avici Systems Composite trunking
US7103640B1 (en) * 1999-09-14 2006-09-05 Econnectix, Llc Network distributed tracking wire transfer protocol
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
AU6031699A (en) * 1998-09-25 2000-04-17 Sun Microsystems, Inc. An apparatus and method for improving performance of proxy arrays that use persistent connections
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US7418504B2 (en) 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US6826616B2 (en) 1998-10-30 2004-11-30 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network
JP3550503B2 (ja) * 1998-11-10 2004-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信を可能とするための方法及び通信システム
US6006259A (en) * 1998-11-20 1999-12-21 Network Alchemy, Inc. Method and apparatus for an internet protocol (IP) network clustering system
JP2002532013A (ja) 1998-12-03 2002-09-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー ネットワーク管理システム
GB9827383D0 (en) * 1998-12-11 1999-02-03 Madge Networks Ltd A communications network
US6526448B1 (en) 1998-12-22 2003-02-25 At&T Corp. Pseudo proxy server providing instant overflow capacity to computer networks
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US6665304B2 (en) * 1998-12-31 2003-12-16 Hewlett-Packard Development Company, L.P. Method and apparatus for providing an integrated cluster alias address
US6671273B1 (en) 1998-12-31 2003-12-30 Compaq Information Technologies Group L.P. Method for using outgoing TCP/IP sequence number fields to provide a desired cluster node
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) * 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US6718390B1 (en) 1999-01-05 2004-04-06 Cisco Technology, Inc. Selectively forced redirection of network traffic
US7062550B1 (en) 1999-01-20 2006-06-13 Bindview Corporation Software-implemented method for identifying nodes on a network
US6453360B1 (en) 1999-03-01 2002-09-17 Sun Microsystems, Inc. High performance network interface
US6483804B1 (en) 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface
US6606301B1 (en) 1999-03-01 2003-08-12 Sun Microsystems, Inc. Method and apparatus for early random discard of packets
US6650640B1 (en) 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
US6356951B1 (en) 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6389468B1 (en) * 1999-03-01 2002-05-14 Sun Microsystems, Inc. Method and apparatus for distributing network traffic processing on a multiprocessor computer
US6920475B1 (en) 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
US6564261B1 (en) * 1999-05-10 2003-05-13 Telefonaktiebolaget Lm Ericsson (Publ) Distributed system to intelligently establish sessions between anonymous users over various networks
US6928656B1 (en) * 1999-05-14 2005-08-09 Scientific-Atlanta, Inc. Method for delivery of IP data over MPEG-2 transport networks
US6845393B1 (en) * 1999-06-14 2005-01-18 Sun Microsystems, Inc. Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services
US6587456B1 (en) * 1999-06-17 2003-07-01 Nortel Networks Limited Method and apparatus for reducing load distribution delay in an internet protocol switch
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US6751191B1 (en) 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US7287084B1 (en) 1999-07-15 2007-10-23 F5 Networks, Inc. Enabling encryption of application level persistence between a server and a client
US6970933B1 (en) 1999-07-15 2005-11-29 F5 Networks, Inc. Enabling application level persistence between a server and another resource over a network
US7058683B1 (en) 1999-07-20 2006-06-06 Sun Microsystems, Inc. Methods and apparatus for providing a virtual host in electronic messaging servers
US6928485B1 (en) * 1999-08-27 2005-08-09 At&T Corp. Method for network-aware clustering of clients in a network
US7191168B1 (en) 1999-08-27 2007-03-13 At&T Corp. Fast prefix matching of bounded strings
US7219160B1 (en) * 1999-08-27 2007-05-15 At&T Corp. Method for fast network-aware clustering
US20020198961A1 (en) * 1999-08-27 2002-12-26 Balachander Krishnamurthy Method for improving web performance by client characterization-driven server adaptation
US7296089B2 (en) * 1999-08-27 2007-11-13 At&T Corp. Method for improving web performance by adapting servers based on client cluster characterization
US7483967B2 (en) * 1999-09-01 2009-01-27 Ximeta Technology, Inc. Scalable server architecture based on asymmetric 3-way TCP
US6654796B1 (en) * 1999-10-07 2003-11-25 Cisco Technology, Inc. System for managing cluster of network switches using IP address for commander switch and redirecting a managing request via forwarding an HTTP connection to an expansion switch
FI107972B (fi) * 1999-10-11 2001-10-31 Stonesoft Oy Tiedonsiirtomenetelmä
JP2001117899A (ja) * 1999-10-18 2001-04-27 Nec Corp マルチサーバシステム
US6667980B1 (en) * 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US6970903B1 (en) * 1999-10-29 2005-11-29 Intel Corporation Distributed component system management using machine-independent activation requests
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US8762446B1 (en) * 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
US8601373B1 (en) 1999-11-16 2013-12-03 Ebay Inc. Network-based sales system with customizable user interface
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7925713B1 (en) * 1999-11-22 2011-04-12 Akamai Technologies, Inc. Method for operating an integrated point of presence server network
US6917626B1 (en) * 1999-11-30 2005-07-12 Cisco Technology, Inc. Apparatus and method for automatic cluster network device address assignment
US6636499B1 (en) 1999-12-02 2003-10-21 Cisco Technology, Inc. Apparatus and method for cluster network device discovery
US6879593B1 (en) * 1999-12-20 2005-04-12 Intel Corporation Connections of nodes on different networks
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US6735205B1 (en) * 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
US6748437B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6757836B1 (en) 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6735206B1 (en) * 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for performing a fast service lookup in cluster networking
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6839829B1 (en) 2000-01-18 2005-01-04 Cisco Technology, Inc. Routing protocol based redundancy design for shared-access networks
US7058007B1 (en) 2000-01-18 2006-06-06 Cisco Technology, Inc. Method for a cable modem to rapidly switch to a backup CMTS
DE20000957U1 (de) * 2000-01-20 2001-06-07 Secodata Gmbh Vorrichtung zum kontrollierten Übertragen elektronischer Dokumente über ein öffentlich zugängliches Datenübertragungsnetz
US6865601B1 (en) * 2000-02-11 2005-03-08 Hewlett-Packard Development Company L.P. Method for allocating web sites on a web server cluster based on balancing memory and load requirements
US6725264B1 (en) 2000-02-17 2004-04-20 Cisco Technology, Inc. Apparatus and method for redirection of network management messages in a cluster of network devices
US7171492B1 (en) * 2000-02-24 2007-01-30 Utstarcom, Inc. Method and application programming interface for assigning multiple network addresses
US7340532B2 (en) * 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US20050021862A1 (en) * 2000-03-31 2005-01-27 Dickens Coal Llc Automatic selection of content-delivery provider using link mapping database
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7162542B2 (en) * 2000-04-13 2007-01-09 Intel Corporation Cascading network apparatus for scalability
US6671725B1 (en) 2000-04-18 2003-12-30 International Business Machines Corporation Server cluster interconnection using network processor
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
US6842769B1 (en) * 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6973473B1 (en) * 2000-05-31 2005-12-06 International Business Machines Corporation Method, system and program products for managing identifiers of components of a clustered environment
US20080005275A1 (en) * 2000-06-02 2008-01-03 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7032031B2 (en) 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US9444785B2 (en) 2000-06-23 2016-09-13 Cloudshield Technologies, Inc. Transparent provisioning of network access to an application
US6728785B1 (en) 2000-06-23 2004-04-27 Cloudshield Technologies, Inc. System and method for dynamic compression of data
US7003555B1 (en) 2000-06-23 2006-02-21 Cloudshield Technologies, Inc. Apparatus and method for domain name resolution
US7072979B1 (en) 2000-06-28 2006-07-04 Cisco Technology, Inc. Wide area load balancing of web traffic
US6981056B1 (en) * 2000-06-28 2005-12-27 Cisco Technology, Inc. Wide area load balancing of web traffic
FR2811844B1 (fr) * 2000-07-13 2002-11-29 Schneider Automation S A Bus interne automate supportant le protocole tcp/ip
US7366755B1 (en) * 2000-07-28 2008-04-29 International Business Machines Corporation Method and apparatus for affinity of users to application servers
US7092390B2 (en) * 2000-09-07 2006-08-15 Sbc Technology Resources, Inc. Internal substitution bi-level addressing for compatible public networks
US6850984B1 (en) * 2000-09-08 2005-02-01 Intel Corporation System for isolating other clients that experience different connection performance than the client and directing the other clients to another different mirrored server
FI112756B (fi) * 2000-09-11 2003-12-31 Stonesoft Oyj Tietopakettien käsittely verkkoelementtiklusterissa
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US6731598B1 (en) 2000-09-28 2004-05-04 Telefonaktiebolaget L M Ericsson (Publ) Virtual IP framework and interfacing method
AU2002211319A1 (en) * 2000-10-02 2002-04-15 Learning Tree International Method and system for hands-on e-learning
US7792923B2 (en) * 2000-10-13 2010-09-07 Zhe Khi Pak Disk system adapted to be directly attached to network
WO2002056547A1 (fr) * 2000-12-27 2002-07-18 Fujitsu Limited Système et dispositif d'acheminement par commutation
US7421489B2 (en) * 2000-12-29 2008-09-02 Nortel Network Limited Network protocols for distributing functions within a network
US7280540B2 (en) 2001-01-09 2007-10-09 Stonesoft Oy Processing of data packets within a network element cluster
US6980550B1 (en) * 2001-01-16 2005-12-27 Extreme Networks, Inc Method and apparatus for server load balancing
US7293108B2 (en) * 2001-03-15 2007-11-06 Intel Corporation Generic external proxy
WO2002084979A1 (en) * 2001-04-12 2002-10-24 Ecet International Limited A communications services controller
US7433957B2 (en) * 2001-04-30 2008-10-07 International Business Machines Corporation Group access privatization in clustered computer system
US7082502B2 (en) 2001-05-15 2006-07-25 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network using a shared memory to store packet data
US7210022B2 (en) 2001-05-15 2007-04-24 Cloudshield Technologies, Inc. Apparatus and method for interconnecting a processor to co-processors using a shared memory as the communication interface
US7881208B1 (en) 2001-06-18 2011-02-01 Cisco Technology, Inc. Gateway load balancing protocol
US20020199020A1 (en) * 2001-06-25 2002-12-26 Microsoft Corporation Method and system for resolving names on a network gateway having multiple distinct network interfaces
US8041814B2 (en) * 2001-06-28 2011-10-18 International Business Machines Corporation Method, system and computer program product for hierarchical load balancing
AU2002319929A1 (en) * 2001-07-16 2003-03-03 Han Gyoo Kim Scheme for dynamically connecting i/o devices through network
CN1628307A (zh) * 2001-07-20 2005-06-15 电子湾有限公司 自动上架管理
US7870258B2 (en) * 2001-08-08 2011-01-11 Microsoft Corporation Seamless fail-over support for virtual interface architecture (VIA) or the like
FR2829337B1 (fr) * 2001-09-03 2003-10-31 Schneider Automation Equipement d'automatisme connecte a un reseau tcp/ip
US7925737B2 (en) * 2001-09-17 2011-04-12 Hewlett-Packard Development Company, L.P. System and method for dynamic configuration of network resources
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
EP1436736B1 (de) 2001-09-28 2017-06-28 Level 3 CDN International, Inc. Konfigurierbare adaptive globlale verkehrssteuerung und -verwaltung
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20050149682A1 (en) * 2001-10-09 2005-07-07 Han-Gyoo Kim Virtual multiple removable media jukebox
US7457883B2 (en) * 2001-10-12 2008-11-25 Cisco Technology, Inc. Mechanism for implementing network discovery in a cable network
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US6938031B1 (en) 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US7000016B1 (en) * 2001-10-19 2006-02-14 Data Return Llc System and method for multi-site clustering in a network
EP1315349B1 (de) * 2001-11-21 2008-03-19 Sun Microsystems, Inc. Verfahren um einen Lastverteiler in ein Client- Server- System zu integrieren
FR2833123B1 (fr) * 2001-12-03 2004-01-23 France Telecom Procede de gestion d'une communication avec des moyens de fourniture d'un service a serveurs multiples
US7120704B2 (en) * 2002-01-31 2006-10-10 International Business Machines Corporation Method and system for workload balancing in a network of computer systems
US7313135B2 (en) 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
WO2003065179A2 (en) * 2002-02-01 2003-08-07 John Fairweather A system and method for mining data
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
DE20202362U1 (de) * 2002-02-15 2002-04-18 Maha Gmbh & Co Kg Hubstempelanordnung für Hebebühnen
US7484006B2 (en) * 2002-02-22 2009-01-27 Bea Systems, Inc. System and method for server network configuration and addressing
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
KR100876780B1 (ko) * 2002-06-05 2009-01-07 삼성전자주식회사 로컬 네트워크를 위한 인터넷 액세스 게이트웨이에서네트워크 어드레스 변환 없이 단일의 인터넷 프로토콜어드레스를 공유하기 위한 방법 및 장치
US20030233470A1 (en) * 2002-06-12 2003-12-18 International Business Machines Corporation Network storage data redirection
US7334124B2 (en) 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
US6931530B2 (en) 2002-07-22 2005-08-16 Vormetric, Inc. Secure network file access controller implementing access control and auditing
US7836295B2 (en) * 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
US7065092B2 (en) * 2002-07-31 2006-06-20 Sbc Properties, L.P. Resource reservation protocol based guaranteed quality of service internet protocol (IP) connections over a switched network using newly assigned IP addresses
US7301951B2 (en) * 2002-07-31 2007-11-27 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network
GB0217795D0 (en) * 2002-07-31 2002-09-11 Hewlett Packard Co Establishment of network connections
US7298750B2 (en) * 2002-07-31 2007-11-20 At&T Knowledge Ventures, L.P. Enhancement of resource reservation protocol enabling short-cut internet protocol connections over a switched network
US7272145B2 (en) * 2002-07-31 2007-09-18 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network through proxy signaling
EP1387302A3 (de) * 2002-07-31 2006-05-24 Hewlett-Packard Development Company, L.P. Herstellung von Netzwerkverbindungen
US7676576B1 (en) 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7430755B1 (en) 2002-09-03 2008-09-30 Fs Networks, Inc. Method and system for providing persistence in a secure network access
AU2003275118A1 (en) * 2002-09-20 2004-04-08 Tekelec Methods and systems for locating redundant telephony call processing hosts in geographically separate locations
US7325038B1 (en) * 2002-09-27 2008-01-29 Ricoh Company, Ltd. Mechanism for transferring data between applications running on multiple networked computers
US7143288B2 (en) 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US8209371B2 (en) * 2002-11-07 2012-06-26 Hewlett-Packard Development Company, L.P. Method and system for managing communication in a computer network using aliases of computer network addresses
US8051176B2 (en) 2002-11-07 2011-11-01 Hewlett-Packard Development Company, L.P. Method and system for predicting connections in a computer network
US8463940B2 (en) * 2003-01-31 2013-06-11 Hewlett-Packard Development Company, L.P. Method of indicating a path in a computer network
US8209375B2 (en) * 2003-03-07 2012-06-26 Ricoh Co., Ltd. Communication of compressed digital images with restricted access and server/client hand-offs
US20050169254A1 (en) * 2003-04-14 2005-08-04 Fujitsu Limited Data relay apparatus, data relay method, data relay program, service selection apparatus, service selection method and service selection program
US7926104B1 (en) * 2003-04-16 2011-04-12 Verizon Corporate Services Group Inc. Methods and systems for network attack detection and prevention through redirection
US20050027862A1 (en) * 2003-07-18 2005-02-03 Nguyen Tien Le System and methods of cooperatively load-balancing clustered servers
US7385937B2 (en) * 2003-07-23 2008-06-10 International Business Machines Corporation Method and system for determining a path between two points of an IP network over which datagrams are transmitted
US7447203B2 (en) * 2003-07-29 2008-11-04 At&T Intellectual Property I, L.P. Broadband access for virtual private networks
US7739394B2 (en) * 2003-07-29 2010-06-15 At&T Intellectual Property I, L.P. Bi-level addressing for internet protocol broadband access
US8045566B2 (en) * 2003-08-01 2011-10-25 Hewlett-Packard Development Company, L.P. Automated router load balancing
US7457880B1 (en) * 2003-09-26 2008-11-25 Ximeta Technology, Inc. System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050080913A1 (en) * 2003-10-09 2005-04-14 Thomas David Andrew Method and system for querying information from a switch by a server in a computer network
US20050155036A1 (en) * 2003-12-19 2005-07-14 Nokia Corporation Application server addressing
US7664836B2 (en) * 2004-02-17 2010-02-16 Zhe Khi Pak Device and method for booting an operation system for a computer from a passive directly attached network device
US20050193017A1 (en) * 2004-02-19 2005-09-01 Han-Gyoo Kim Portable multimedia player/recorder that accesses data contents from and writes to networked device
US20060069884A1 (en) * 2004-02-27 2006-03-30 Han-Gyoo Kim Universal network to device bridge chip that enables network directly attached device
DE102004014195B3 (de) * 2004-03-23 2005-08-11 Siemens Ag Verfahren zur redundanten Datenhaltung in Computernetzwerken
US20060123120A1 (en) * 2004-04-08 2006-06-08 Thomas Merkh Methods for establishing and validating sessions
US20060265506A1 (en) * 2004-04-08 2006-11-23 World Extend Llc Systems and methods for establishing and validating secure network sessions
US8572254B2 (en) * 2004-04-08 2013-10-29 Worldextend, Llc Systems and methods for establishing and validating secure network sessions
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7480733B2 (en) * 2004-07-15 2009-01-20 International Business Machines Corporation Routing incoming call requests
US10862994B1 (en) * 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
US7746900B2 (en) * 2004-07-22 2010-06-29 Zhe Khi Pak Low-level communication layers and device employing same
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US7860943B2 (en) * 2004-08-23 2010-12-28 Zhe Khi Pak Enhanced network direct attached storage controller
US20060067356A1 (en) * 2004-08-23 2006-03-30 Han-Gyoo Kim Method and apparatus for network direct attached storage
US20060117020A1 (en) * 2004-12-01 2006-06-01 John Toebes Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device
US20060129460A1 (en) * 2004-12-09 2006-06-15 Innerfund, Ltd. Internet service provider branded facades
US7676587B2 (en) * 2004-12-14 2010-03-09 Emc Corporation Distributed IP trunking and server clustering for sharing of an IP server address among IP servers
US7849257B1 (en) 2005-01-06 2010-12-07 Zhe Khi Pak Method and apparatus for storing and retrieving data
US8826014B2 (en) 2005-01-21 2014-09-02 International Business Machines Corporation Authentication of remote host via closed ports
US7765405B2 (en) * 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
US7895308B2 (en) * 2005-05-11 2011-02-22 Tindall Steven J Messaging system configurator
US8200739B2 (en) 2005-06-23 2012-06-12 Telefonaktiebolaget L M Ericsson (Publ) Arrangement and method relating to load distribution
US8943180B1 (en) * 2005-07-29 2015-01-27 8X8, Inc. Server-based service configuration system and approach
WO2007031294A1 (fr) * 2005-09-14 2007-03-22 France Telecom S.A. Procédé de gestion optimisée de ressources au sein d'un portail d'accès
US7818454B2 (en) * 2005-09-15 2010-10-19 Hostway Corporation Host migration system
US20070061465A1 (en) * 2005-09-15 2007-03-15 Hostway Corporation Host migration system
US8060534B1 (en) * 2005-09-21 2011-11-15 Infoblox Inc. Event management
US8166197B2 (en) 2005-10-25 2012-04-24 Oracle International Corporation Multipath routing process
GB0524256D0 (en) * 2005-11-29 2006-01-04 Ibm A load balancing system
US8423670B2 (en) * 2006-01-25 2013-04-16 Corporation For National Research Initiatives Accessing distributed services in a network
US8966113B2 (en) * 2006-03-03 2015-02-24 Cisco Technology, Inc. Technique for dynamically restoring original TE-LSP attributes for interdomain TE-LSPs
US20070214282A1 (en) * 2006-03-13 2007-09-13 Microsoft Corporation Load balancing via rotation of cluster identity
US7733908B1 (en) * 2006-05-31 2010-06-08 Qurio Holdings, Inc. Cross-layer architecture for a network device
US8102863B1 (en) 2006-06-27 2012-01-24 Qurio Holdings, Inc. High-speed WAN to wireless LAN gateway
AU2007270831B2 (en) * 2006-06-30 2012-08-23 Network Box Corporation Limited A system for classifying an internet protocol address
US8566452B1 (en) 2006-08-03 2013-10-22 F5 Networks, Inc. Intelligent HTTP based load-balancing, persistence, and application traffic management of SSL VPN tunnels
US9137287B2 (en) * 2006-08-28 2015-09-15 Avaya Inc. High availability for voice enabled applications
US8799918B2 (en) * 2006-09-11 2014-08-05 Microsoft Corporation Dynamic network load balancing using roundtrip heuristic
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US8751605B1 (en) 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US9264780B1 (en) 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
CN101026622B (zh) * 2007-01-12 2010-10-06 华为技术有限公司 分布式系统对象请求传输方法、设备和分布式系统
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US20080285436A1 (en) * 2007-05-15 2008-11-20 Tekelec Methods, systems, and computer program products for providing site redundancy in a geo-diverse communications network
US8615008B2 (en) 2007-07-11 2013-12-24 Foundry Networks Llc Duplicating network traffic through transparent VLAN flooding
US20090019493A1 (en) * 2007-07-12 2009-01-15 Utstarcom, Inc. Cache affiliation in iptv epg server clustering
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US8150970B1 (en) * 2007-10-12 2012-04-03 Adobe Systems Incorporated Work load distribution among server processes
US9177313B1 (en) 2007-10-18 2015-11-03 Jpmorgan Chase Bank, N.A. System and method for issuing, circulating and trading financial instruments with smart features
US8489750B2 (en) * 2008-02-28 2013-07-16 Level 3 Communications, Llc Load-balancing cluster
EP2248016B1 (de) * 2008-02-28 2016-09-21 Level 3 Communications, LLC Lastausgleichscluster
US11323510B2 (en) 2008-02-28 2022-05-03 Level 3 Communications, Llc Load-balancing cluster
US8108514B2 (en) * 2008-04-02 2012-01-31 International Business Machines Corporation High availability of internet protocol addresses within a cluster
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8930538B2 (en) 2008-04-04 2015-01-06 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
JP5029495B2 (ja) * 2008-06-03 2012-09-19 富士通株式会社 イベント制御プログラム、イベント制御方法およびイベント制御装置
US8533333B2 (en) * 2008-09-03 2013-09-10 Microsoft Corporation Shared hosting using host name affinity
US8782256B2 (en) * 2008-11-26 2014-07-15 Cisco Technology, Inc. Deterministic session load-balancing and redundancy of access servers in a computer network
US9430297B2 (en) * 2008-12-15 2016-08-30 International Business Machines Corporation Load balancing of adapters on a multi-adapter node
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
US9100288B1 (en) 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
CN101997768B (zh) * 2009-08-21 2012-10-17 华为技术有限公司 一种上送地址解析协议报文的方法和装置
US9535805B2 (en) * 2010-03-04 2017-01-03 Microsoft Technology Licensing, Llc Resilient routing for session initiation protocol based communication systems
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8612550B2 (en) 2011-02-07 2013-12-17 Microsoft Corporation Proxy-based cache content distribution and affinity
EP2695050A4 (de) * 2011-04-07 2016-03-23 Pneuron Corp Altanwendungsmigration in echtzeit und parallelverarbeitungs-cloud dafür
US8751641B2 (en) * 2011-09-15 2014-06-10 International Business Machines Corporation Optimizing clustered network attached storage (NAS) usage
GB2495557A (en) 2011-10-14 2013-04-17 Riverbed Technology Inc Routing network traffic requests to provide load balancing using hashes derived from attributes of the requests
US9420459B2 (en) * 2011-11-16 2016-08-16 Cellco Partnership Method and system for redirecting a request for IP session from a mobile device
US9154367B1 (en) * 2011-12-27 2015-10-06 Google Inc. Load balancing and content preservation
US20130173806A1 (en) 2011-12-31 2013-07-04 Level 3 Communications, Llc Load-balancing cluster
US9596127B2 (en) * 2012-02-20 2017-03-14 Microsoft Technology Licensing, Llc Scalable data feed system
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
US8850002B1 (en) * 2012-07-02 2014-09-30 Amazon Technologies, Inc. One-to many stateless load balancing
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
US9246998B2 (en) 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
EP2866386B1 (de) * 2013-08-26 2020-01-22 Jeong Hoan Seo Domänennamensystem und domänennamendienstverfahren auf der basis von benutzerinformationen
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
US10565074B2 (en) 2014-08-29 2020-02-18 Cynny Space Srl Systems and methods to distribute computing tasks among multiple computers
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
CN104580547A (zh) * 2014-12-23 2015-04-29 曙光信息产业(北京)有限公司 用于Linux操作系统的IP配置方法和装置
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US10911353B2 (en) 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10057126B2 (en) 2015-06-17 2018-08-21 Extreme Networks, Inc. Configuration of a network visibility system
US10530688B2 (en) 2015-06-17 2020-01-07 Extreme Networks, Inc. Configuration of load-sharing components of a network visibility router in a network visibility system
CN105635263B (zh) * 2015-12-25 2019-03-05 中国民航信息网络股份有限公司 基于后台缓存的访问处理方法及适配器
US10091075B2 (en) 2016-02-12 2018-10-02 Extreme Networks, Inc. Traffic deduplication in a visibility network
US10999200B2 (en) 2016-03-24 2021-05-04 Extreme Networks, Inc. Offline, intelligent load balancing of SCTP traffic
US10567259B2 (en) 2016-10-19 2020-02-18 Extreme Networks, Inc. Smart filter generator
US10817515B2 (en) 2017-07-26 2020-10-27 International Business Machines Corporation Cognitive data filtering for storage environments
US10884980B2 (en) 2017-07-26 2021-01-05 International Business Machines Corporation Cognitive file and object management for distributed storage environments
US10904207B2 (en) 2019-04-29 2021-01-26 Cloudflare, Inc. Intelligently routing a response packet along a same connection as a request packet
EP3987751A1 (de) * 2019-06-19 2022-04-27 Citrix Systems, Inc. Grosskalibriges nat-system
CN112835537A (zh) * 2021-03-12 2021-05-25 东莞中国科学院云计算产业技术创新与育成中心 分布式数据访问方法、装置、计算机设备
CN114328130B (zh) * 2022-03-03 2022-08-12 深圳市明源云科技有限公司 服务器监控方法、系统、设备及计算机可读存储介质
CN114866799B (zh) * 2022-05-11 2024-04-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2945757B2 (ja) * 1989-09-08 1999-09-06 オースペックス システムズ インコーポレイテッド 多重装置オペレーティングシステムのアーキテクチャ
US5371852A (en) 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5661719A (en) * 1995-10-19 1997-08-26 Ncr Corporation Method for activating a backup network management station in a network management system

Also Published As

Publication number Publication date
CA2230550C (en) 2004-03-30
US6470389B1 (en) 2002-10-22
EP0865180B1 (de) 2007-05-02
CA2230550A1 (en) 1998-09-14
DE69837691D1 (de) 2007-06-14
EP0865180A3 (de) 2004-08-18
EP0865180A2 (de) 1998-09-16

Similar Documents

Publication Publication Date Title
DE69837691T2 (de) Lastverteilung zwischen Servern in einem TCP/IP-Netz
DE60122782T2 (de) Adressierungsverfahren und system zur verwendung einer anycast-adresse
DE69927285T2 (de) Netzverwaltungssystem
DE69835400T2 (de) Netzbelastungsausgleich für Mehrrechner Anbieter
DE60026231T2 (de) Verfahren und Vorrichtung zur Durchführung eines Schnellen Dienstnachschlagen in einem Neztwerkgruppen
DE69919965T2 (de) Methode und Proxy Umleiteinrichtung zum transparenten Verweisen von Anfragen nach Web-Objekten auf Proxycaches
DE69836673T2 (de) Verfahren und Vorrichtung zur Konfigurierung eines Netzknotens um sich selbst Netzübergang zu sein
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
DE602005000017T2 (de) Kommunikationsvorrichtung, Verfahren und Programm zur Namenauflösung
DE69734019T2 (de) Verfahren und vorrichtung für dynamische paketfilterzuweisung
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE60103088T2 (de) Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe
DE60121176T2 (de) Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
DE60221556T2 (de) Verfahren und system zur zustandslosen lastverteilung für ein server-cluster in einem auf ip basierenden telekommunikationsnetz
DE69934871T2 (de) Verfahren und System zur optimalen Auswahl eines Webfirewalls in einem TCP/IP Netzwerk
DE69730056T2 (de) Routen von duplikaten
DE112015006397B4 (de) DNS Optimierung für Multi-Source Download bei Hybridzugriff
DE69830491T2 (de) Cut-through -durchschaltung und paketfilterung in einem rechnersystem
DE69827201T2 (de) Verfahren und system zur server-netzwerkvermittlung-mehrverbindung
DE60221228T2 (de) Verfahren und system zur anycast-wegleitung zwischen mehreren wirtsrechnern
DE60002396T2 (de) Verbindungsauswahlverfahren
DE69720351T2 (de) Verfahren und Vorrichtung zum Begrenzen des Zugriffes an privater Information in Domänennamensystemen durch Umleitung von Abfrageanforderungen
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition