DE69837691T2 - Lastverteilung zwischen Servern in einem TCP/IP-Netz - Google Patents
Lastverteilung zwischen Servern in einem TCP/IP-Netz Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/35—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/46—Indexing scheme relating to G06F9/46
- G06F2209/462—Lookup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
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 Client12 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 Client12 und einem den Dienst hostenden Server14 hergestellt. Die Client-Anforderung wird in diesem Beispiel über eine TCP/IP-Verbindung über ein erstes Netz16 , einen Router18 ein zweites Netz20 an den Server14 abgeliefert. Das erste Netz16 kann ein großflächiges Kommunikationsnetz wie etwa das Internet sein, während das zweite Netz20 ein Ethernet- oder eine andere Art von lokalem Netz (LAN) sein kann, das den Server14 mit anderen Servern in einem Server-Cluster verbindet. Der Router18 , der auch als Gateway bezeichnet wird, führt eine Weiterleitungsfunktion zwischen dem ersten und dem zweiten Netz aus, die für den Client12 transparent ist. - Die Client-Anforderung wird durch einen Web-Browser oder ein anderes Anwendungsschicht-Programm erzeugt, das in einer Anwendungsschicht
22-1 des Client12 operiert und erhält eine Antwort von einem Dateitransfersystem oder einem anderen Programm in einer Anwendungsschicht22-2 des Servers14 . Der angeforderte Netzdienst kann durch eine URL (Uniform Resource Locator) bezeichnet werden, die einen Domänennamen enthält, der den Server14 oder ein entsprechendes, den Dienst hostendes Server-Cluster identifiziert. Das Anwendungsebenen-Programm des Client12 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 Client12 und in dem Server14 werden in den jeweiligen TCP-Schichten24-1 ,24-2 und in den IP-Schichten26-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-Schichten24-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 Client12 und dem Server14 identifiziert. Die IP-Schichten26-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 Client12 und dem Server14 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 Client12 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 Client12 und der Server14 enthalten außerdem eine Datenstrecken- und physische Schicht28-1 zur Durchführung von Framing- und anderen Operationen, um Client-Anforderungen oder Antwortpakete für die Übertragung über die Netze16 und20 zu konfigurieren. Der Router18 enthält eine Datenstrecken- und physische Schicht28-3 zum Umsetzen von Client-Anforderungs- und Server-Antwortpaketen in das IP-Format und eine IP-Schicht26-3 zur Durchführung des Paket-Routing auf der Basis von IP-Adressen. Der Server14 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 und3 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 Client12 eine TCP/IP-Verbindung über das Internet30 mit einem serverseitigen Router32 mit einer IP-Adresse RA herstellt. Der Router32 ist über ein LAN36 mit einem Server-Cluster34 verbunden, das N Server14-i , i = 1, 2, ... N, mit jeweiligen IP-Adressen S1, S2, ... SN enthält. Jeder Server des Clusters34 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 Client12 verwendet deshalb RA als Ziel-IP-Adresse in seiner Anforderung. Die Anforderung wird zu dem Router32 geleitet, der dann die Anforderung auf der Basis von Lasteigenschaften wie durch die gestrichelte Linie, die den Client12 über den Router32 mit dem Server14-k verbindet, angegeben zu einem gewählten Server14-k des Server-Clusters34 aussendet. Der Router32 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 Servers14-k umändert. Der gewählte Server14-k antwortet auf die Client-Anforderung, indem er wie durch die gestrichelte Linie, die den Server14-k mit dem Client12 verbindet, angegeben Antwortpakete über die hergestellte TCP/IP-Verbindung sendet. Damit die TCP/IP-Verbindung dem Client12 nahtlos erscheint, ändert der gewählte Server14-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 von2 verwendet der Client12 die Routeradresse RA als Ziel-IP-Adresse in einer Client-Anforderung und der Router32 sendet die Anforderung zu einem gewählten Server14-k aus, indem er die Ziel-IP-Adresse jedes ankommenden Anforderungspakets von der Routeradresse RA in die Adresse Sk des gewählten Servers14-k umändert. Bei dem Netzadressenübersetzungsansatz werden die Quellen-IP-Adressen in den Antwortpaketen von dem gewählten Server14-k jedoch durch die Server14-k wie in2 nicht geändert, sondern werden statt dessen durch den Router32 geändert. Der durch eine gestrichelte Linie in2 angezeigte Antwortpaketfluß fließt somit von dem Server14-k über den Router32 zu dem Client12 . - 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 Router32 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 Client52 sendet eine Client-Anforderung zu einem Server-Cluster54 , der N Server54-i , i = 1, 2, N, mit IP-Adressen S1, S2, ... SN enthält und durch ein Ethernet- oder anderweitiges LAN56 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 Server54-i des Server-Clusters54 herzustellen. Gemäß der Erfindung wird eine "Geister-IP-Adresse" zu dem DNS als Clusteradresse für den Server-Cluster54 publiziert. Die Geister-IP-Adresse wird so ausgewählt, daß keiner der Server54-i des Clusters54 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-Clusters54 assoziiert. Die Verwendung der Geister-IP-Adresse unterscheidet einen durch den Cluster gehosteten Netzdienst somit von Aktivitäten der Server54-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-Cluster54 . Die Anforderung wird über das Internet60 zu einem Router62 mit einer IP-Adresse RA geleitet. Der Router62 enthält eine Routing-Tabelle mit einem Eintrag oder Datensatz, der alle ankommenden Anforderungspakete mit der Geister-IP-Adresse zu einem mit LAN56 verbundenen Dispatcher64 leitet. Der Dispatcher64 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 Dispatchers64 in den Router62 integriert werden, um zusätzliche Effizienzverbesserungen bereitzustellen. - Jeder der Server
54-i des Clusters54 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 Server54-i im allgemeinen keinerlei Abänderung des auf den Servern ablaufenden Kernel-Codes. Bei alternativen Ausführungsformen können einer oder mehrere der Server54-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 Dispatcher64 . Der Dispatcher64 wendet dann eine Hash-Funktion auf die Client-IP-Adresse in einem gegebenen Anforderungspaket an, um zu bestimmen, zu welchem der Server54-i das gegebene Paket geroutet werden soll. In dem in4 dargestellten Beispiel wendet der Dispatcher64 eine Hash-Funktion auf die IP-Adresse des Client52 an und bestimmt, daß das entsprechende Anforderungspaket zu dem Server54-2 an der IP-Adresse S2 geroutet werden soll. Der Dispatcher64 routet das Anforderungspaket dann über das LAN56 wie durch die gestrichelte Linie angegeben unter Verwendung der Primäradresse S2 des Servers54-2 zu dem Server54-2 , um ihn von den anderen Servern des Clusters54 zu unterscheiden. Nachdem die Netzschnittstelle des Servers54-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 Server54-2 dem Client52 direkt über den Router62 über die hergestellte TCP/IP-Verbindung unter Verwendung der Geister-IP-Adresse und ohne den Dispatcher64 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 Server54-i über das LAN56 wieder auf dieselbe Netzschnittstelle zurückgelegt wird, es bewirken kann, daß eine Host-Umleitungsnachricht des Internet-Steuernachrichtenprotokolls (ICMP) zu dem Router62 gesendet wird. Diese ICMP-Nachricht ist dafür ausgelegt, den Router62 anzuweisen, seine Routing-Tabelle so zu aktualisieren, daß alle zukünftigen Pakete mit der Geister-IP-Adresse den Dispatcher64 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 von4 unerwünscht, weil der Dispatcher64 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 Router62 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 Server54-2 mit der Geister-IP-Adresse zu dem Client52 zurückgesendet wird, insofern, als es bewirken kann, daß der Router62 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 Dispatcher64 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 von4 sendet der Client52 eine Client-Anforderung zu dem Server-Cluster54 , das N Server54-i , i = 1, 2, ... N, enthält, die mit dem LAN56 verbunden sind und die IP-Adressen S1, S2, ... SN aufweisen. Der Client52 verwendet die oben beschriebene Geisteradresse als Cluster-Adresse zum Lenken seiner Anforderung zu dem Server-Cluster54 . Die Anforderung wird über das Internet60 zu einem Router70 mit einer IP-Adresse RA geleitet. Der Router70 sendet alle ankommenden Anforderungspakete mit der Geister-IP-Adresse zu dem LAN56 , das die Server54-i des Server-Clusters54 verbindet, rund, so daß das Anforderungspaket von jedem der Server54-i empfangen wird. - Jeder der Server
54-i des Clusters54 implementiert eine Filterungsroutine, um sicherzustellen, daß nur einer der Server54-i eine gegebene Client-Anforderung verarbeitet. Die Filterungsroutine kann zu einem Einrichtungstreiber jedes der Server54-i hinzugefügt werden. Bei einer beispielhaften Implementierung wird jedem der Server54-i eine eindeutige Identifikationsnummer (ID) zugewiesen. Die Filterungsroutine eines gegebenen Servers54-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 von5 wird das mit der Anforderung von dem Client52 assoziierte Paket durch den Router70 zu jedem der Server54-i des Server-Clusters über das LAN56 wie zuvor erwähnt rundgesendet. Die Filterungsroutine des Servers54-2 erzeugt einen Hash-Wert der Client-IP-Adresse, der mit der eindeutigen ID-Nummer übereinstimmt, die mit dem Server14-2 assoziiert ist, und der Server14-2 nimmt das Paket deshalb an und verarbeitet es. Die Filterungsroutinen der N-1 anderen Server54-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 Router70 wie durch die gestrichelte Linien angegeben unter Verwendung der Geister-IP-Adresse zu dem Client52 zurückgesendet. - Die auf Rundsenden basierende Aussendungstechnik von
5 kann unter Verwendung eines permanenten ARP-Eintrags in dem Router70 implementiert werden, um die Geister-IP-Adresse mit der mit dem LAN56 des Clusters54 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 Router70 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 Router70 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 LAN56 des Server-Clusters54 ist, aber von keinem Server benutzt wird. Zusätzlich wird ein Eintrag in dem ARP-Cache des Routers70 eingefügt, um die zweite Geister-IP-Adresse mit der Rundsendeadresse des LAN56 zu assoziieren. Wenn der Router70 ein Paket zu der zweiten Geister-IP-Adresse routet, sendet er dann tatsächlich das Paket zu jedem der Server54-i des Clusters54 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 und5 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 Dispatcher64 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)
- 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. - 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.
- Verfahren nach Anspruch 2, wobei die gemeinsame Adresse eine IP-Adresse ist, die nicht einer primären IP-Adresse irgendeines der mehreren Server entspricht.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NZ337140A (en) * | 1997-01-13 | 2001-03-30 | John Overton | Automated system for image archiving with combination of location, image and parent information with data in conformance with formal specification |
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 |
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 |
US10511573B2 (en) | 1998-10-30 | 2019-12-17 | Virnetx, Inc. | Agile network protocol for secure communications using secure domain names |
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 |
AU1399400A (en) * | 1998-12-03 | 2000-06-19 | British Telecommunications Public Limited Company | Network management system |
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 |
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 |
US6453360B1 (en) | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | 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 |
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 |
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 |
US6970933B1 (en) | 1999-07-15 | 2005-11-29 | F5 Networks, Inc. | Enabling application level persistence between a server and another resource over a network |
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 |
US7058683B1 (en) | 1999-07-20 | 2006-06-06 | Sun Microsystems, Inc. | Methods and apparatus for providing a virtual host in electronic messaging servers |
US7219160B1 (en) * | 1999-08-27 | 2007-05-15 | At&T Corp. | Method for fast network-aware clustering |
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 |
US7296089B2 (en) * | 1999-08-27 | 2007-11-13 | At&T Corp. | Method for improving web performance by adapting servers based on client cluster characterization |
US20020198961A1 (en) * | 1999-08-27 | 2002-12-26 | Balachander Krishnamurthy | Method for improving web performance by client characterization-driven server adaptation |
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 |
US7925713B1 (en) * | 1999-11-22 | 2011-04-12 | Akamai Technologies, Inc. | Method for operating an integrated point of presence server network |
US6405252B1 (en) * | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | 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 |
US6735206B1 (en) * | 2000-01-10 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for performing a fast service lookup in cluster networking |
US6735205B1 (en) * | 2000-01-10 | 2004-05-11 | Sun Microsystems, Inc. | Method and apparatus for fast packet forwarding in cluster networking |
US6748429B1 (en) | 2000-01-10 | 2004-06-08 | Sun Microsystems, Inc. | Method to dynamically change cluster or distributed system configuration |
US6757836B1 (en) | 2000-01-10 | 2004-06-29 | Sun Microsystems, Inc. | Method and apparatus for resolving partial connectivity in a clustered computing system |
US6748437B1 (en) | 2000-01-10 | 2004-06-08 | Sun Microsystems, Inc. | Method for creating forwarding lists for cluster networking |
US6862613B1 (en) | 2000-01-10 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for managing operations of clustered computer systems |
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 |
US6789213B2 (en) * | 2000-01-10 | 2004-09-07 | Sun Microsystems, Inc. | Controlled take over of services by remaining nodes of clustered computing system |
US6769008B1 (en) | 2000-01-10 | 2004-07-27 | Sun Microsystems, Inc. | Method and apparatus for dynamically altering configurations of clustered computer systems |
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, 78315 Radolfzell | 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 |
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 |
US20050021862A1 (en) * | 2000-03-31 | 2005-01-27 | Dickens Coal Llc | Automatic selection of content-delivery provider using link mapping database |
US7007194B1 (en) | 2000-06-29 | 2006-02-28 | Emc Corporation | Data storage system having point-to-point configuration |
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 |
US8204082B2 (en) | 2000-06-23 | 2012-06-19 | Cloudshield Technologies, Inc. | Transparent provisioning of services over a network |
US7114008B2 (en) | 2000-06-23 | 2006-09-26 | Cloudshield Technologies, Inc. | Edge adapter architecture apparatus and method |
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 |
US7657629B1 (en) | 2000-09-26 | 2010-02-02 | Foundry Networks, Inc. | Global server load balancing |
US9130954B2 (en) | 2000-09-26 | 2015-09-08 | Brocade Communications Systems, Inc. | Distributed health check for 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 |
US20020103882A1 (en) * | 2000-10-02 | 2002-08-01 | Johnston Robin Andrew Courtland | 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 |
JPWO2002056547A1 (ja) * | 2000-12-27 | 2004-05-20 | 富士通株式会社 | 切替え中継装置、及び切替え中継システム |
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 |
EP1388243A1 (de) * | 2001-04-12 | 2004-02-11 | Ecet International Limited | Eine kommunikationsdienst-kontrolleinrichtung |
US7433957B2 (en) * | 2001-04-30 | 2008-10-07 | International Business Machines Corporation | Group access privatization in clustered computer system |
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 |
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 |
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 |
WO2003007674A2 (en) * | 2001-07-16 | 2003-01-30 | 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 |
WO2003027906A2 (en) | 2001-09-28 | 2003-04-03 | Savvis Communications Corporation | System and method for policy dependent name to address resolutioin. |
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 |
US7000016B1 (en) * | 2001-10-19 | 2006-02-14 | Data Return Llc | System and method for multi-site clustering in a network |
US6938031B1 (en) | 2001-10-19 | 2005-08-30 | Data Return Llc | System and method for accessing information in a replicated database |
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 |
US7313135B2 (en) * | 2002-01-31 | 2007-12-25 | Mosaid Technologies, Inc. | Trunking in a matrix |
US7120704B2 (en) * | 2002-01-31 | 2006-10-10 | International Business Machines Corporation | Method and system for workload balancing in a network of computer systems |
US7103749B2 (en) * | 2002-02-01 | 2006-09-05 | John Fairweather | System and method for managing memory |
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 Maschinenbau Haldenwang GmbH & Co. KG, 87490 Haldenwang | 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 |
US6931530B2 (en) | 2002-07-22 | 2005-08-16 | Vormetric, Inc. | Secure network file access controller implementing access control and auditing |
US7334124B2 (en) | 2002-07-22 | 2008-02-19 | Vormetric, Inc. | Logical access block processing protocol for transparent secure file storage |
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 |
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 |
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 |
EP1387300A3 (de) * | 2002-07-31 | 2006-05-24 | Hewlett-Packard Development Company, L.P. | Einrichtung von Netzwerkverbindungen |
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 |
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 |
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 |
US8051176B2 (en) | 2002-11-07 | 2011-11-01 | Hewlett-Packard Development Company, L.P. | Method and system for predicting connections in a computer network |
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 |
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 |
US8572254B2 (en) * | 2004-04-08 | 2013-10-29 | Worldextend, Llc | Systems and methods for establishing and validating secure network sessions |
US20060265506A1 (en) * | 2004-04-08 | 2006-11-23 | World Extend Llc | Systems and methods for establishing and validating secure network sessions |
US7496651B1 (en) | 2004-05-06 | 2009-02-24 | Foundry Networks, Inc. | Configurable geographic prefixes for global server load balancing |
US7584301B1 (en) | 2004-05-06 | 2009-09-01 | Foundry Networks, Inc. | Host-level policies 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 |
US20060067356A1 (en) * | 2004-08-23 | 2006-03-30 | Han-Gyoo Kim | Method and apparatus for network direct attached storage |
US7860943B2 (en) * | 2004-08-23 | 2010-12-28 | Zhe Khi Pak | Enhanced network direct attached storage controller |
US7423977B1 (en) | 2004-08-23 | 2008-09-09 | Foundry Networks Inc. | Smoothing algorithm for round trip time (RTT) measurements |
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 |
WO2006136193A1 (en) * | 2005-06-23 | 2006-12-28 | 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 |
US20070061465A1 (en) * | 2005-09-15 | 2007-03-15 | Hostway Corporation | Host migration system |
US7818454B2 (en) * | 2005-09-15 | 2010-10-19 | 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 |
US8489923B1 (en) | 2006-11-15 | 2013-07-16 | Conviva Inc. | Detecting problems in content distribution |
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 |
EP2248016B1 (de) * | 2008-02-28 | 2016-09-21 | Level 3 Communications, LLC | Lastausgleichscluster |
US8489750B2 (en) | 2008-02-28 | 2013-07-16 | Level 3 Communications, Llc | Load-balancing cluster |
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) |
EP2274684A4 (de) | 2008-04-04 | 2012-12-05 | Level 3 Communications Llc | Umgang mit long-tail-inhalt in einem inhaltsablieferungsnetzwerk (cdn) |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | 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 |
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 |
CA2832444C (en) * | 2011-04-07 | 2017-10-17 | Pneuron Corp. | Legacy application migration to real time, parallel performance cloud |
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 |
US9444884B2 (en) | 2011-12-31 | 2016-09-13 | Level 3 Communications, Llc | Load-aware load-balancing cluster without a central load balancer |
US9596127B2 (en) * | 2012-02-20 | 2017-03-14 | Microsoft Technology Licensing, Llc | Scalable data feed system |
US10148716B1 (en) | 2012-04-09 | 2018-12-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 |
US10182096B1 (en) | 2012-09-05 | 2019-01-15 | Conviva Inc. | Virtual resource locator |
US9246965B1 (en) | 2012-09-05 | 2016-01-26 | Conviva Inc. | Source assignment based on network partitioning |
US9246998B2 (en) * | 2012-10-16 | 2016-01-26 | Microsoft Technology Licensing, Llc | Load balancer bypass |
JP5976232B2 (ja) * | 2013-08-26 | 2016-08-23 | 徐 正 煥SEO, Jeong Hoan | ユーザ情報に基づいた、ドメインネーム・システム及びドメインネーム・サービス方法 |
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 |
US9928149B2 (en) | 2014-08-29 | 2018-03-27 | Cynny Space Srl | Systems and methods to maintain data integrity and redundancy in a computing system having multiple computers |
US10305955B1 (en) | 2014-12-08 | 2019-05-28 | Conviva Inc. | Streaming decision in the cloud |
US10178043B1 (en) | 2014-12-08 | 2019-01-08 | Conviva Inc. | Dynamic bitrate range selection in the cloud for optimized video streaming |
CN104580547A (zh) * | 2014-12-23 | 2015-04-29 | 曙光信息产业(北京)有限公司 | 用于Linux操作***的IP配置方法和装置 |
US10771475B2 (en) | 2015-03-23 | 2020-09-08 | Extreme Networks, Inc. | Techniques for exchanging control and configuration information 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 |
US10129088B2 (en) | 2015-06-17 | 2018-11-13 | Extreme Networks, Inc. | Configuration of rules 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 |
US10884980B2 (en) | 2017-07-26 | 2021-01-05 | International Business Machines Corporation | Cognitive file and object management for distributed storage environments |
US10817515B2 (en) | 2017-07-26 | 2020-10-27 | International Business Machines Corporation | Cognitive data filtering for 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 |
WO2020254838A1 (en) * | 2019-06-19 | 2020-12-24 | Citrix Systems Inc. | Large scale 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE179811T1 (de) * | 1989-09-08 | 1999-05-15 | Auspex Systems Inc | Betriebssystemaufbau mit mehreren verarbeitungseinheiten |
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 |
-
1997
- 1997-03-14 US US08/818,989 patent/US6470389B1/en not_active Expired - Lifetime
-
1998
- 1998-02-26 CA CA002230550A patent/CA2230550C/en not_active Expired - Lifetime
- 1998-03-03 DE DE69837691T patent/DE69837691T2/de not_active Expired - Lifetime
- 1998-03-03 EP EP98301577A patent/EP0865180B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0865180A3 (de) | 2004-08-18 |
US6470389B1 (en) | 2002-10-22 |
DE69837691D1 (de) | 2007-06-14 |
CA2230550C (en) | 2004-03-30 |
EP0865180B1 (de) | 2007-05-02 |
EP0865180A2 (de) | 1998-09-16 |
CA2230550A1 (en) | 1998-09-14 |
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 | |
DE69328666T2 (de) | Verfahren und Gerät um eine Anzahl Rechner als einen einzigen Host auf dem Netz erscheinen zu lassen | |
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 | |
DE69837938T2 (de) | Übergreifende bildung von server clustern mittels einer netzwerkflussvermittlung | |
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 | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |