DE202015009264U1 - Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem - Google Patents

Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem Download PDF

Info

Publication number
DE202015009264U1
DE202015009264U1 DE202015009264.0U DE202015009264U DE202015009264U1 DE 202015009264 U1 DE202015009264 U1 DE 202015009264U1 DE 202015009264 U DE202015009264 U DE 202015009264U DE 202015009264 U1 DE202015009264 U1 DE 202015009264U1
Authority
DE
Germany
Prior art keywords
server
anycast
dns
addresses
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.)
Active
Application number
DE202015009264.0U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202015009264U1 publication Critical patent/DE202015009264U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Domain-Name-System (DNS), umfassend: einen DNS-Server, der Folgendes beinhaltet: eines Anycast-Moduls, konfiguriert, um das Annehmen einer Anforderung einer Netzwerkadresse eines Content-Servers, und da Antworten auf die Anforderung mit einer Netzwerkadresse, ausgewählt aus einer Vielzahl von Anycast-Netzwerkadressen, eines Lastverteilungsmoduls, das kommunizierbar mit dem Anycast-Modul gekoppelt ist, konfiguriert ist, um: Lastinformation von zumindest einem einer Vielzahl von Content-Servern zu empfangen, um basierend auf den Lastinformationen einen überlasteten Content-Server zu identifizieren, und den überlasteten Content-Server anzuweisen, das Bekanntmachen einer oder mehrerer der Vielzahl von Anycast-Netzwerk-Adressen einzustellen, und einer Vielzahl von Content-Servern, die in der Lage sind, mit dem DNS-Server zu kommunizieren, wobei jeder der Vielzahl von Content-Servern beinhaltet: ein Bekanntmachungsmodul, das dafür konfiguriert ist, um: Anweisungen von dem DNS-Server zu empfangen, bestimmte der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen und die bestimmten der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen, und ein Lastüberwachungsmodul, das konfiguriert ist, um: mit dem Server verbundene Lastinformationen zu sammeln und die Lastinformationen an den DNS-Server zu kommunizieren.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich auf das Gebiet von Kommunikationsnetzen und insbesondere verteilte Kartierung und Lastverteilung innerhalb von Kommunikationsnetzen.
  • BESCHREIBUNG DER VERWANDTEN TECHNOLOGIE
  • In einigen Systemen, wie zum Beispiel Domain Name Server (DNS) Systemen, kann es schwierig sein, den realen Ort des Benutzers zu bestimmen, der die Anfrage sendet. Wenn ein Benutzer eine DNS-Anfrage sendet, wird die Anfrage zunächst an einen Domain-Name-Resolver gesendet. Der Domain-Name-Resolver sendet wiederum eine Anfrage an einen Domain-Name-Server, um eine mit dem Domänennamen assoziierte Netzwerkadresse (eines Content-Servers) zu erhalten. Diese Netzwerkadresse wird für den Zugriff auf den gewünschten Inhalt an den Benutzer gesendet. Bei einigen verteilten Systemen kann eine einzelne Adresse mehreren geografisch getrennten Servern entsprechen.
  • KURZDARSTELLUNG
  • Gemäß einem Aspekt kann der in dieser Offenbarung beschriebene Gegenstand in einem Verfahren für den Lastverteilung über eine Menge von Content-Servern von einem Domain-Name-System-(DNS)Server realisiert werden. Das Verfahren beinhaltet das Empfangen einer Anforderung einer Netzwerkadresse eines Content-Servers, das Antworten auf die Anforderung mit einer Netzwerkadresse, die aus einer Vielzahl von Anycast-Netzwerkadressen ausgewählt wird, Empfangen von Lastinformationen von zumindest einem einer Vielzahl von Content-Servern und Anweisen, basierend auf den empfangenen Lastinformationen, dass ein oder mehrere überlastete Content-Server einstellen, eine oder mehrere einer Vielzahl von Anycast-Netzwerkadressen bekanntzumachen.
  • Gemäß einem weiteren Aspekt kann der in dieser Offenbarung beschriebene Gegenstand in einem Verfahren für das Antworten auf Kommunikationen, die auf einem Server von einem oder mehreren Client-Computern in einem Netzwerk empfangen werden, implementiert werden. Das Verfahren beinhaltet das Empfangen einer Vielzahl von Anycast-Netzwerkadressen von einem Domain-Name-System-(DNS)Server, Bekanntmachung der Vielzahl von Anycast-Netzwerkadressen an ein Netzwerk, Senden von Lastinformationen an den DNS-Server und Einstellen der Bekanntmachung von einer oder mehreren der Vielzahl von Anycast-Netzwerkadressen auf Basis von Anweisungen, die von dem DNS-Server erhalten wurden.
  • Gemäß einem weiteren Aspekt kann der in dieser Offenbarung beschriebene Gegenstand in einem Domain-Name-System (DNS) implementiert werden, das einen DNS-Server und eine Vielzahl von Content-Servern beinhaltet, die mit dem DNS-Server kommunizieren. Der DNS-Server beinhaltet ein Anycast-Modul und ein Lastverteilungsmodul. Das Anycast-Modul ist konfiguriert, eine Anforderung einer Netzwerkadresse von einem Content-Server anzunehmen und auf die Anforderung mit einer Netzwerkadresse, ausgewählt aus einer Vielzahl von Anycast-Netzwerkadressen, zu antworten. Die Lastverteilungsmodul, welches kommunizierbar mit dem Anycast-Modul gekoppelt ist, ist konfiguriert, Lastinformation von mindestens einem einer Vielzahl von Content-Servern zu empfangen, einen überladenen Content-Server auf Basis der Lastinformationen zu identifizieren und die überladenen Content-Server anzuweisen, das Bekanntmachen einer oder mehrerer der Vielzahl von Anycast-Netzwerkadressen einzustellen. Jeder der Vielzahl von Content-Servern enthält ein Bekanntmachungsmodul und ein Lastüberwachungsmodul. Das Bekanntmachungsmodul ist konfiguriert, Anweisungen von dem DNS-Server zu empfangen, bestimmte der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen und die bestimmten der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen. Das Lastüberwachungsmodul ist konfiguriert, mit dem Server assoziierte Lastinformation zu sammeln und die Lastinformation an den DNS-Server zu kommunizieren.
  • Gemäß einem weiteren Aspekt kann der in dieser Offenbarung beschriebene Gegenstand in einem nicht-flüchtigen computerlesbaren Speichermedium mit darauf codierten Anweisungen implementiert werden, welche, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, ein Verfahren durchzuführen. Das Verfahren beinhaltet das Empfangen einer Anforderung einer Netzwerkadresse eines Content-Servers, das Antworten auf die Anforderung mit einer Netzwerkadresse, die aus einer Vielzahl von Anycast-Netzwerkadressen ausgewählt wird, Empfangen von Lastinformationen von zumindest einem einer Vielzahl von Content-Servern und Anweisen, basierend auf den empfangenen Lastinformationen, dass ein oder mehrere überlastete Content-Server einstellen, eine oder mehrere einer Vielzahl von Anycast-Netzwerkadressen bekanntzumachen.
  • Details einer oder mehrerer Implementierungen des in dieser Spezifikation beschriebenen Gegenstands werden in den beigefügten Zeichnungen und in der nachstehenden Beschreibung dargelegt. Andere Funktionen, Aspekte und Vorteile werden durch die Beschreibung, die Zeichnungen und die Ansprüche offensichtlich. Es ist zu beachten, dass die relativen Dimensionen der Figuren möglicherweise nicht maßstabsgetreu sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein beispielhaftes Domain-Name-System.
  • 2 zeigt ein beispielhaftes Netzwerk zur Veranschaulichung von Anycast-basierter Lastverteilung.
  • 3 zeigt ein beispielhaftes Routing von Netzwerkverkehr zwischen Clients und Servern im in 2 dargestellten Netzwerk.
  • 4 zeigt ein weiteres beispielhaftes Routing von Netzwerkverkehr zwischen Clients und Servern im in 2 dargestellten Netzwerk.
  • 5 zeigt einen Ansatz zur Erhaltung des Zustands von laufenden Abfragen.
  • 6 zeigt einen beispielhaften Prozess für Anycast-basierte Lastverteilung, der von einem DNS-Server durchgeführt.
  • 7 zeigt einen beispielhaften Prozess für Anycast-basierte Lastverteilung, der von einem Server durchgeführt.
  • 8 zeigt ein beispielhaftes Blockdiagramm eines DNS-Servers.
  • 9 zeigt ein beispielhaftes Blockdiagramm eines Servers.
  • Entsprechende Referenznummern und Kennzeichnungen in den verschiedenen Zeichnungen zeigen entsprechende Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 zeigt ein beispielhaftes Domain-Name-System 100. Insbesondere zeigt 1 eine Vielzahl von Clients: Client-1 102a, Client-2 102b, Client-3 102c, Client-4 102d, ..., Client-N 102n, die mit einer Vielzahl von Domain-Name-System-(DNS)Resolvern kommunikativ gekoppelt sind: DNS-Resolver-1 104a, DNS-Resolver-2 104b, DNS-Resolver-3 104c, DNS-Resolver-4 104d, ..., DNS-Resolver-N 104n. Jeder DNS-Resolver 104a104n kann mit einem DNS-Server 106 kommunizieren.
  • Die Vielzahl von Clients 102a102n kann eine beliebige Computervorrichtung beinhalten, die über ein Netzwerk kommunizieren kann, wie beispielsweise einen PC, Laptop, ein Smartphone, einen Tablet-Computer usw., ist aber nicht darauf beschränkt. Während jede der Vielzahl von Clients 102a102n gezeigt wird, wie er mit seinem relativen DNS-Resolver 104a104n kommuniziert, versteht sich, dass mehr als einer der Vielzahl von Clients 102a102n mit demselben DNS-Resolver kommunizieren kann. Zum Beispiel kann Client-2 102b, der gezeigt wird, wie er mit dem DNS-Resolver-2 104b kommuniziert, anstatt mit dem DNS-Resolver-4 104d kommunizieren.
  • Jeder der Vielzahl von Clients 102a102n kann Domain Name Resolution Anforderungen an seinen jeweiligen DNS-Resolver 104a104n senden. Zum Beispiel sendet Client-1 102a eine Domain-Name-Adresse „www.beispiel.de” an den DNS-Resolver-1 104a. Die DNS-Resolver 104A 104n können Anwendungen sein, die DNS-Abfragen verwenden, um Informationen über Domain-Names von Servern abzufragen. Zum Beispiel kann der DNS-Resolver-1 104a den DNS-Server 106 nach der IP-Adresse eines mit dem Domain-Namen-Adresse assoziierten Content-Servers, wie beispielsweise „www.beispiel.de”, abfragen. Der DNS-Server 106 wiederum antwortet, indem er dem DNS-Resolver 104a eine oder mehrere IP-Adressen des mit der Domain-Name-Adresse „www.beispiel.de” assoziierten Content-Servers zurückgibt.
  • In einigen Implementierungen können die DNS-Resolver 104a104n in geographischer Nähe ihrer jeweiligen Clients 102a102n stehen. In einigen Implementierungen können sich die DNS-Resolver 104104n auf ihrem jeweiligen Client 102a102n befinden. In einigen anderen Implementierungen können sich die DNS-Resolver 104a104n auf dem Gateway des Internet-Service-Providers des jeweiligen Clients 102a102n befinden. In einigen Implementierungen kann der DNS-Resolver 104a104n einen oder mehrere DNS-Server rekursiv abfragen, um die IP-Adresse der von den Clients 102a102n angeforderten Domain-Name-Adresse zu erhalten. In einigen anderen Implementierungen können die Clients 102a102n Abfragen direkt an den DNS-Server 106 senden, anstatt die Abfragen über ihre zugehörigen DNS-Resolver 104a104n zu leiten.
  • Wie oben erwähnt, antwortet der DNS-Server 106 auf Kommunikationen, wie beispielsweise Domain-Name-Adressen-Abfragen, die von den DNS-Resolvern 104a104n oder Clients 102a102n empfangen werden. Der DNS-Server 106 kann antworten, indem er die angeforderten Informationen, d. h. die IP-Adresse des angefragten Domain-Names, bereitstellt, einen Zeiger auf einen anderen Server bereitstellt, der helfen kann, den angefragten Domain-Name aufzulösen, oder mit einer Fehlermeldung antworten, um anzuzeigen, dass der DNS-Server 106 keine der Abfrage zugeordnete Informationen besitzt.
  • In einigen Implementierungen kann der DNS-Server 106 ein autoritativer DNS-Server für einen fortlaufenden Abschnitt eines DNS-Namespace sein. Ein DNS-Server kann für einen fortlaufenden Abschnitt des DNS-Namespace autoritativ sein, wenn der DNS-Server-Informationen bezüglich dieses Abschnitts des Namespace hat. Zum Beispiel kann in einigen Implementierungen der DNS-Server 106 für den Namespace „www.beispiel.de” autoritativ sein. In solchen Implementierungen kann der DNS-Server 106 Ressourcen-Datensätze in einer DNS-Datenbank enthalten. Die Ressourcen-Datensätze können IP-Adressen von einem oder mehreren mit „www.beispiel.de.” assoziierten Web-Servern mit einschließen.
  • In einigen anderen Implementierungen kann die vom DNS-Server 106 zurückgegebene IP-Adresse eine IP-Adresse eines anderen DNS-Servers sein. In einigen solchen Implementierungen mag der DNS-Server 106 nicht ein autoritativer Server für den gewünschten Domain-Namen sein und kann eine IP-Adresse eines Forwarder-DNS-Servers zurückgeben, der den Domain-Name für DNS-Server 106 auflöst.
  • Der Domain-Name-Server kann den Ort des Benutzers auf Basis des Orts des Domain-Namens Resolvers bestimmen und die Netzwerkadresse eines Content-Servers senden, der dem Domain-Name-Resolver am nächsten ist und der die zusätzliche Last verarbeiten kann. Benutzer von deutlich unterschiedlichen geografischen Regionen können aber denselben Domain-Name-Resolver verwenden, um den Domain-Name aufzulösen. Dies bedeutet, dass der Content-Server, deren Netzwerkadresse von dem Domain-Name-Server gesendet wurde, unter Umständen nicht der Content-Server ist, der dem Benutzer am nächsten ist. Während also der Domain-Name-Server in der Lage sein mag, die Last über die Menge von verteilten Content-Servern auszugleichen, stellt der Domain-Name-Server unter Umständen nicht den am besten geeigneten Content-Server für den Benutzer bereit.
  • Anycast bietet die Möglichkeit, Abfragen von Benutzern an Content-Server zu leiten, die den Benutzern am nächsten sind. Mit Anycast antwortet ein Server, wie beispielsweise ein Domain-Name-Server, auf die Anforderung von dem Domain-Name-Resolver mit einer Anycast-Adresse. Darüber hinaus macht jeder der geographisch verteilten Content-Server die gleiche Anycast-Adresse bekannt. Wenn also der Benutzer die Anycast-Adresse als die Adresse verwendet, wo auf Inhalte zugegriffen werden soll, dann routen Zwischen-Router die Anforderung des Benutzers automatisch zum nächsten (oder kostengünstigsten) Content-Server. Anforderungen von dem Benutzer würden aber zu demselben nächsten Content-Server geroutet werden, unabhängig von der Last auf dem Server. Mit anderen Worten, Anycast ist die Last nicht bekannt. Während also Anycast die Fähigkeit hat, Benutzeranforderungen an den am besten geeigneten Content-Server zu leiten, hat Anycast nicht die Fähigkeit, die Last auf der Menge von verteilten Content Server auszugleichen.
  • In einigen Implementierungen kann der DNS-Server 106 eine Vielzahl von Anycast-IP-Adressen pflegen, die einer Domain-Name-Adresse zugeordnet sind. Zum Beispiel kann der DNS-Server 106 eine Menge von n Anycast-IP-Adressen {IP1, IP2, IP3, IP4, ..., IPN} verwalten, die der Domain-Name-Adresse „www.beispiel.de” zugeordnet sind. In einigen Implementierungen kann n einen Wert von etwa 100 bis etwa 200 haben. In einigen anderen Implementierungen kann n einen Wert von etwa 10 bis etwa 100, etwa 200 bis etwa 300, oder sogar Werte von mehr als 300 haben. Der DNS-Server 106 gibt für jede empfangene Abfrage für die Domain-Name-Adresse eine Teilmenge von Anycast-IP-Adressen zurück, ausgewählt aus der Vielzahl von Anycast-IP-Adressen. Zum Beispiel kann in einigen Implementierungen als Antwort auf die Anfrage für „www.beispiel.de”, die von dem DNS-Resolver-1 104a erhalten wurde (und von Client-1 102a ausging), der DNS-Server 106 eine Anycast-IP-Adresse zurückgeben: die Anycast-IP-Adresse IP1, ausgewählt aus der Menge von n Anycast-IP-Adressen. Der DNS-Server 106 gibt, wenn die nächste Abfrage für „www.beispiel.de” von dem DNS-Resolver-2 104b empfangen wird, die Anycast-IP-Adresse IP2 zurück. In ähnlicher Weise gibt der DNS-Server 106 auf nachfolgende Abfragen für „www.beispiel.de” von dem DNS-Resolver-3 104c, dem DNS-Resolver-4 104d, dem DNS-Resolver-n 104n die Anycast-IP-Adressen IP3, IP4 bzw. IPn zurück.
  • In einigen Implementierungen kann der DNS-Server 106, für jede erhaltene Abfrage mehr als eine dem Domain-Namen zugeordnete Anycast-IP-Adresse zurückgeben, ausgewählt aus den n Anycast-IP-Adressen. Zum Beispiel kann der DNS-Server 106 als Antwort auf die Abfrage für „www.beispiel.de” von dem DNS-Resolver-1 104a Anycast-IP-Adressen IP1, IP2, IP3, und IP4 zurückgeben, ausgewählt aus den Anycast-IP-Adressen IP1, IP2, IP3, IP4, IP5, ..., IPN. Der Client kann dann eine Anycast-IP-Adresse aus der empfangenen Teilmenge von Anycast-IP-Adressen wählen, um Inhalt von den Content-Servern abzufragen.
  • In einigen Implementierungen kann der DNS-Server 106 für jede empfangene Abfrage die Teilmenge der Anycast-IP-Adressen aus der Menge von n Anycast-IP-Adressen in einer Round-Robin-Modell oder einer anderen strukturierten Art und Weise auswählen und auf die Abfrage mit der ausgewählten Anycast-IP-Adresse antworten. In einigen anderen Implementierungen kann der DNS-Server 106 zufällig oder pseudo-zufällig eine Anycast-IP-Adresse aus der Menge von n Anycast-IP-Adressen auswählen.
  • 2 zeigt ein beispielhaftes Netzwerk 200 zur Veranschaulichung von Anycast-basierter Lastverteilung. Insbesondere zeigt 2 vier Clients: Client-1 202a, Client-2 202b, Client-3 202c und Client-4 202d, und drei Server: Server-1 204a, Server-2 204b und Server-3 204c, die über fünf IP-Router: Router-1 206a, Router-2 206b, Router-3 206c, Router-4, 206d und Router-5 206e, kommunizieren. Das Netzwerk 200 beinhaltet auch einen DNS-Server 208, der mit den vier Clients und den drei Servern kommunizieren kann. Es versteht sich, dass andere Netzwerke eine andere Anzahl und Konfiguration von Clients, Servern und Router beinhalten können und dass die Anycast-basierte Lastverteilung, die nachstehend mit Bezug auf das beispielhafte Netzwerk 200 erörtert wird, ohne Weiteres in solchen anderen Netzwerken implementiert werden können.
  • Der DNS-Server 208 kann ähnlich dem DNS-Server 106 sein, der oben in Bezug auf 1 erörtert wurde. Als solches kann der DNS-Server 208 Anycast-IP-Adressen, ausgewählt aus einer Menge von Anycast-IP-Adressen, Clients bereitstellen, die Auflösung einer Domain-Name-Adresse anfordern. Zum Beispiel kann der DNS-Server 208 mit dem Domain-Name „www.beispiel.de” assoziierte Anycast-IP-Adressen bereitstellen. In einigen Implementierungen können die vom DNS-Server 208 bereitgestellten Anycast-IP-Adressen IP-Adressen von Web-Content-Servern sein. In einigen anderen Implementierungen können die IP-Adressen IP-Adressen anderer DNS-Server sein, die zugewiesen sind, den Domain-Name „www.beispiel.de” für DNS-Server 208 aufzulösen.
  • Der DNS-Server 208 kommuniziert auch mit jedem der drei Server: Server-1 204a, Server-2 204b und Server-3 204c (explizite Verbindungen aus Gründen der Übersichtlichkeit nicht dargestellt). Der DNS-Server 208 stellt Server-1 204a, Server-2 204b und Server-3 204c eine Menge von Anycast-IP-Adressen, die mit einem Domain-Name assoziiert sind. Zum Beispiel kann der DNS-Server 208 eine Menge von Anycast-IP-Adressen {IP1, IP2, IP3, IP4, ... IPn} für jeden der drei Server: Server-1 204a, Server-2 204b und Server-3 204c, bereitstellen, die mit dem Domain-Name „www.beispiel.de” assoziiert sind. Jeder der drei Server kann dann die komplette Menge von Anycast-IP-Adressen bekanntmachen. In einigen Implementierungen kann der DNS-Server 208 den Servern 204a204c auch eine Vielzahl von Anycast-IP-Adressen bereitstellen, die anderen Domain-Name-Adressen zugeordnet sind.
  • Der DNS-Server 208 kann ebenso Lastmetriken von jedem Server empfangen. Die Lastmetriken können zum Beispiel Server-Antwortzeit, Anzahl von Hits, Ressourcenauslastung, Latenz, Server-Status usw. beinhalten. Wie nachstehend im Detail erörtert, kann der DNS-Server 208 auf Basis der von jedem Server empfangenen Lastmetriken den Server anweisen, das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einzustellen.
  • Die vier Clients: Client-1 102a, Client-2 102b, Client-3 102c, Client-4 102d können ähnlich den N Clients: Client-1 202a, Client-2 202b, Client-3 202c, Client-4 202d, ..., Client-N 102n, sein, die oben in Bezug auf 1 erörtert wurden. Darüber hinaus wird angenommen, dass jeder der vier Clients eine oder mehrere Anycast-IP-Adressen von dem DNS-Server 208 empfangen hat. Beispielsweise wird angenommen, dass Client-1 202a, Client-2 202b, Client-3 202c und Client-4 202d Anycast-IP-Adressen IP1, IP2, IP3 bzw IP4 von einem DNS-Server 208 erhalten haben.
  • Wie oben erwähnt, kann jeder der drei Server: Server-1 204a, Server-2 204b und Server-3 204c, eine Menge von Anycast-IP-Adressen bekanntmachen. Durch das Bekanntmachen einer Menge von Anycast-IP-Adressen, zeigt jeder Server 204a204c an, dass er Client-Anfragen annehmen kann, die mit einer der bekanntgemachten IP-Adressen assoziiert sind. Jeder Server 204a204d sendet ebenso Lastmetriken an den DNS-Server. Wie oben erwähnt, können die Lastmetriken zum Beispiel Server-Antwortzeit, Anzahl von Hits, Ressourcenauslastung, Latenz, Server-Status usw. beinhalten. Jeder Server 204a204d empfängt ebenso Anweisungen vom DNS-Server 208, das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen aus der Menge von Anycast-IP-Adressen zu beginnen oder einzustellen.
  • Router 206a206e können Netzwerk-Datenverkehr zwischen den Clients 202a202d, den Servern 204a204d und dem DNS-Server 208 routen. In einigen Implementierungen können die Router 206a206e IP-Router sein. Als solche routen die Router 206a206e IP-Pakete, die an einem ihrer Ports empfangen werden, zu einem anderen ihrer Ports, wobei das Routing zum Teil auf der in dem Header des empfangenen IP-Pakets enthaltenen Ziel-IP-Adresse basiert ist. Die Router 206a206e können Bekanntmachungen von jedem der Server 204a204c empfangen. Auf der Grundlage dieser Bekanntmachungen können die Router 206a206e ihre jeweiligen Routing- und Forwarding-Tabellen aktualisieren. In einigen Implementierungen können die Router 206a206e das Border-Gateway-Protocol (BGP) verwenden, um Routing-Tabellen aufzubauen und Routing-Informationen auszutauschen. In einigen anderen Implementierungen können die Router 206a206e das Open-Shortest-Path-First-(OSPF)Protokoll verwenden, um Routing-Tabellen aufzubauen und Routing-Informationen auszutauschen.
  • 3 zeigt ein beispielhaftes Routing von Netzwerkverkehr zwischen Clients 202a202d und Servern 204a204c in dem in 2 dargestellten Netzwerk 200. In dem in 3 gezeigten Beispiel wird angenommen, dass Client-1 202a, Client-2 202b, Client-3 202c und Client-4 202d IP-Adressen IP1, IP2, IP3 bzw. IP4 von einem DNS-Server 208 für die jeweiligen Anforderungen für die mit dem Domain-Name „www.beispiel.de” assoziierte IP-Adresse erhalten haben. Darüber hinaus wird angenommen, dass jeder Server 204a204c die vollständige Menge von Anycast-IP-Adressen {IP1, IP2, IP3, IP4, ..., IPN}, die mit dem Domain-Name „www.beispiel.de” assoziiert sind, den Router 206a206e bekanntmacht.
  • Da alle Server 204a204c die vollständige Menge von Anycast-IP-Adressen bekanntmachen, kann jeder der Server 204a204c potenziell auf Client-Abfragen nach einer der bekanntgemachten Anycast-IP-Adressen antworten. Mit anderen Worten können Client-Anforderungen potenziell von einem beliebigen der Server 204a204c verarbeitet werden. Welcher der Server 204a204c die Client-Anforderung empfängt, kann von dem Routing-Algorithmus abhängen, der von den Router 206a206e implementiert wird. Zum Beispiel können Anforderungen, die von dem Client-1 202a für die Adresse IP1 ausgehen, über Router-1 206a an den Server-1 204a geroutet werden; Anforderungen, die von dem Client-2 202b für die Adresse IP2 ausgehen, können über Router-2 206b und Router-5 206e an den Server-2 204b geroutet werden; Anforderungen, die von dem Client-3 202c für die Adresse IP3 ausgehen, können über Router-3 206c an den Server-3 204c geroutet werden; und Anforderungen, die von dem Client-4 202d für die Adresse IP4 ausgehen, können ebenso über Router-4 206d und Router-3 206c an den Server-3 204c geroutet werden.
  • In einigen Implementierungen können, wie in 3 gezeigt ist, Antworten von den Servern 204a204c auf die Client-Anforderungen denselben Pfad zum Client nehmen, wie der Pfad, den die jeweilige Anforderung an den Server 204a204c genommen hat. Zum Beispiel kann die Antwort von dem Server-1 204a an den Client-1 202a über den Router-1 206a geroutet werden. In ähnlicher Weise kann die Antwort von dem Server-2 206b an den Client-2 202b über den Router-5 206e und Router-2 206b geroutet werden. Es versteht sich, dass die zwischen den Clients 202a202d und den Servern 204a204c etablierten Routen in 3 nur beispielhaft gezeigt sind, und dass diese Routen sich auf Basis von verschiedenen Faktoren im Netzwerk 200, wie beispielsweise Bandbreite, Latenz usw., dynamisch ändern können.
  • 4 zeigt ein weiteres beispielhaftes Routing von Netzwerkverkehr zwischen Clients 202a202d und Servern 204a204c in dem in 2 dargestellten Netzwerk 200. Insbesondere zeigt 4 das Routing von Verkehr, wenn der Server-3 204c sich in einem Überlastzustand befindet. Wie oben erwähnt, kommunizieren die Server 204a204c ihre jeweiligen Lastinformationen an den DNS-Server 208. Der DNS-Server 208 kann basierend auf den empfangenen Lastinformationen bestimmen, dass ein oder mehrere der Server 204a204c sich in einem Überlastzustand befinden können. In solchen Fällen kann der DNS-Server 208 versuchen, die Last auf dem betroffenen Server zu entlasten, indem er den Server anweist, das Bekanntmachen von einer oder mehrerer der Menge von zuvor bekanntgemachten Anycast-IP-Adressen einzustellen.
  • Zum Beispiel, unter Bezugnahme auf i4, kann der DNS-Server 208 bestimmen, dass sich Server-3 204c in einem Überlastzustand befindet, und den Server-3 204c anweisen, das Bekanntmachen der Anycast-IP-Adresse IP4 einzustellen. In einigen anderen Ausführungsformen kann die Anycast-Adresse IP4 die Adresse sein, die die höchste Last auf dem Server-3 204c verursacht. In einigen anderen Implementierungen kann der DNS-Server 208 den Server-3 24c anweisen, das Bekanntmachen einer zufällig aus dem Satz von IP-Anycast-Adressen ausgewählten Adresse einzustellen.
  • Wenn der Server-3 204c das Bekanntmachen IP4 einstellt, können die Router 206a206e ihre jeweiligen Routing- oder Forwarding-Tabellen neu konfigurieren, so dass IP-Pakete mit einer Zieladresse von IP4 sind nicht mehr an den Server-3 204c geroutet werden. Stattdessen können IP-Pakete mit der Zieladresse von IP4 auf einen anderen Server geroutet werden, der noch die Anycast-Adresse IP4 bekanntmacht. Zum Beispiel, unter Bezugnahme auf 4, werden Anforderungen auf die Anycast-IP-Adresse IP4 von Client-4 202d, die zuvor an den Server-3 204c geroutet wurden, stattdessen an den Server-2 204b geroutet, der die Anycast-IP-Adresse IP4 noch immer bekanntmacht.
  • Selbst wenn ein neuer Client eine Anfrage an die Adresse IP4 senden würde, würden solche Anfragen nicht an den Server-3 204c geroutet werden. 4 zeigt zum Beispiel auch einen fünften Client: Client-5 202e, der Anfragen an die Anycast-IP-Adresse IP4 sendet. Obwohl Client-5 202e mit demselben Router (Router-3 206c) gekoppelt ist, mit dem Server-3 204c gekoppelt ist, werden vom Client-5 202e ausgehende Anforderungen an IP4 nicht an den Server-3 204c geroutet. Stattdessen werden in diesem Beispiel die Anforderungen an den Server-1 204a geroutet.
  • Es sollte beachtet werden, dass, während der Server-3 204c das Bekanntmachen der Anycast-Adresse IP IP4 einstellt, er noch weiterhin andere Anycast-IP-Adressen, wie beispielsweise Adresse IP3, bekanntmachen kann. Somit können Anfragen an Adresse IP3, die von Client-3 202c oder eigentlich auch von einem anderen Client ausgehen, weiterhin von Server-3 204c empfangen und verarbeitet werden.
  • Da die Anforderungen an Anycast-IP-Adresse IP4, die zuvor von Server-3 204c verarbeitet wurden, nicht mehr von Server-3 204c empfangen werden, kann die Last auf Server-3 204c reduziert werden. Auf diese Weise kann der DNS-Server 208 die Last auf dem Server-3 204c regulieren, indem er den Server-3 204c anweist, das Bekanntmachen von einer oder mehrerer aus der Menge von Anycast-IP-Adressen ausgewählten Anycast-IP-Adresse einzustellen. Man nehme beispielsweise an, dass der Server-3 204c 20 Anycast-IP-Adressen bekanntmacht. Es sei ebenfalls angenommen, dass der Server-3 204c sich in einem Überlastzustand befindet und dass die Gesamtlast auf dem Server gleichmäßig über die Verarbeitung von Anforderungen an jede der 20 Anycast-IP-Adressen verteilt ist. Wenn der Server das Bekanntmachen von 2 der 20 Anycast-IP-Adressen einstellen würde, während die verbleibenden Server 204 weiterhin alle 20 Anycast-IP-Adressen bekanntmachen, dann würden die den 2 Anycast-IP-Adressen zugeordneten Kommunikationen, die ansonsten an Server-3 204c gelenkt würden, stattdessen an andere Server 204 gelenkt, welche die Adressen weiterhin bekanntmachen. Das bedeutet, dass der Server-3 204c etwa 10% weniger Kommunikationen zu verarbeiten haben würde. Somit könnte die Gesamtlast auf dem Server möglicherweise um etwa 10% reduziert werden. Somit wird durch Anweisen eines Servers, das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einzustellen, die Last auf dem Server an andere Server verteilt. In ähnlicher Weise kann der DNS-Server 208 die Lastbedingungen auf den anderen Servern 204a204b innerhalb des Netzwerks 200 überwachen und kann basierend auf ihren jeweiligen Lastbedingungen einen oder mehrere dieser Server anweisen, Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einzustellen.
  • Der DNS-Server 208 kann die Lastbedingung auf dem Server-3 204c weiterhin überwachen, um zu bestimmen, ob die aktuellen Lastbedingungen es Server-3 204c erlauben können, die Anycast-IP-Adresse IP4 wieder bekanntzumachen. Wenn zum Beispiel die Lastparameter, wie beispielsweise, aber nicht beschränkt auf, Bandbreite und Latenzzeit eine vorbestimmte Schwelle übertreten, dann kann DNS-Server 208 den Server-3 204c anweisen, IP4 wieder bekanntzumachen. Nach Empfang der Bekanntmachung von Server-3 204c, können die Router 206a206e ihre Routing- und Forwarding-Tabellen neu konfigurieren, so dass Anfragen an Adresse IP4 wieder an Server-3 204c geroutet werden können.
  • In einigen Implementierungen können Servern 204a204c auf Kommunikationen mit einem Client antworten, die sich auf einen Zustand verlassen, der von einem jeweiligen Server auf Basis vorheriger Kommunikationen mit demselben Client gespeichert wurde. Wenn zum Beispiel Server-3 204c eine TCP/IP-Kommunikation auf der Anycast-Adresse IP4 empf#ngt, dann müsste Server-3 204c einen TCP-Zustand beibehalten, während er auf die Kommunikation antwortet. Wie in 4 gezeigt ist, wenn der Server-3 204c aufgrund von Überlastbedingungen einstellt, die Adresse IP4 bekanntzumachen, dann werden in der Zukunft Pakete, die von Client-4 202d an IP4 adressiert sind, an Server-2 204b geroutet. Server-2 204b enthält aber keine Zustandsinformation in Bezug auf Kommunikation mit Client-4 202d. Daher würde jede zustandsabhängige Transaktion, die von Client-4 202d mit dem Server-3 204c etabliert wurde verloren gehen, wenn die Pakete an Server-2 204b geroutet werden.
  • 5 zeigt einen Ansatz zur Erhaltung des Zustands von laufenden Kommunikationen oder Transaktionen. Insbesondere zeigt 5 einen Abschnitt des in 4 gezeigten Netzwerks 200, in dem der Server-3 204c das Bekanntmachen der Anycast-IP-Adresse IP4 eingestellt hat und Anforderungen von Client-4 202d, die an IP4 adressiert sind, an Server-2 204b geroutet werden. Der Server-2 204b unterhält eine Zustandstabelle aller Anforderungen, die von Servern 204a204c verarbeitet werden. Wenn die weiter geroutete Anfrage von Client-4 202d von Server-2 204b empfangen wird, schlägt Server-2 204b in der Zustandstabelle nach, um zu bestimmen, ob die empfangene Anforderung neu ist, einer bestehenden laufenden Transaktion auf Server-2 204b entspricht oder mit einem anderen Server verbunden ist, der vor kurzem das Bekanntmachen einer Adresse eingestellt hat.
  • Eine Zustandstabelle kann von jedem der drei Server 204a204c unterhalten werden. In einigen Implementierungen kann zur Unterhaltung der Zustandstabelle jeder der drei Server 204a204c Zustands- und Identifizierungsinformationen der laufenden Transaktionen mit ihren jeweiligen Clients zu allen anderen Servern kommunizieren. Nach Erhalt dieser Informationen kann jeder der drei Server 204a204c seine jeweilige Zustandstabelle aktualisieren. In einigen Implementierungen kann, wenn ein Server das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einstellt, der Server die eine oder mehreren Anycast-IP-Adressen an die anderen Servern kommunizieren. In einigen Implementierungen kann jeder Server die Informationen seiner jeweiligen laufenden Transaktion mit Clients regelmäßig an alle anderen Server senden. In einigen anderen Implementierungen kann als Antwort auf die Anweisung, das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einzustellen, ein Server Zustandsinformationen bezüglich laufender Transaktionen unter Verwendung dieser Anycast-IP-Adressen senden.
  • Da die Anfrage, die von Client-4 202d empfangen wurde, Server-3 204c zugeordnet ist, kapselt der Server-2 204b die Anforderung von Client-4 202d ein und leitet die eingekapselte Anfrage an Server-3 204c weiter. In einigen Implementierungen kann der Server-2 204b die eingekapselte Anforderung an Server-3 204c an einer eindeutigen IP-Adresse senden, die mit dem Server-3 204c assoziiert ist. In einigen Implementierungen kann die eindeutige IP-Adresse die IP-Adresse sein, die der Server-3 204c für das Senden und Empfangen von Server-Wartungs- oder Verwaltungsinformationen verwendet. Der Server-3 204c prüft die eingekapselte Anfrage und schlägt in seiner eigenen Tabelle nach, um zu bestimmen, ob die eingekapselte Anforderung Teil einer laufenden Transaktion zwischen Client-4 202d und Server-3 204c ist. Der Server-3 204c kann dann die Anforderung verarbeiten und eine Antwort an Client-4 202d zurücksenden.
  • In einigen Implementierungen kann der Server-3 204c die Antwort einkapseln und die eingekapselte Antwort zurück an Server-2 204b senden, welcher die Antwort wiederum zurück an Client-4 202d leitet. Dieser eingekapselte Austausch von laufenden Anfragen und Antworten kann fortfahren bis die Transaktion, von der die Anfragen und Antworten Teil sind, entweder durch Client-4 202d oder Server-3 204c beendet wird.
  • Somit kann Server-3 204c, obwohl er nicht in der Lage ist, an Anycast-Adresse IP4 adressierte Pakete zu empfangen, weiterhin die laufenden Transaktionen mit Client-4 202d verarbeiten.
  • 6 zeigt einen beispielhaften Prozess 600 für Anycast-basierte Lastverteilung, der von einem DNS-Server durchgeführt. In einigen Implementierungen kann der in 6 gezeigte Prozess 600 von beispielsweise dem in 1 dargestellten DNS-Server 108 ausgeführt werden. In anderen Implementierungen kann der Prozess 600 von beispielsweise dem in 25 dargestellten DNS-Server 208 ausgeführt werden. Der Prozess 600 beinhaltet das Empfangen einer Anforderung der Netzwerkadresse eines Servers (Schritt 602), das Antworten auf die Anforderung mit einer oder mehreren Anycast-Netzwerk-Adressen, ausgewählt aus einer Vielzahl von Anycast-Adressen (Schritt 604), Empfangen von Lastinformationen von zumindest einem der Server (Schritt 606) und Anweisen basierend auf den empfangenen Lastinformationen, dass ein oder mehrere der Server einstellen, eine oder mehrere Anycast-Adressen einer Vielzahl von Anycast-Adressen bekanntzumachen (Schritt 608).
  • Der Prozess 600 beinhaltet das Empfangen einer Anforderung der Netzwerkadresse eines Servers (Schritt 602). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 1 oben erläutert. Insbesondere empfängt der DNS-Server 108 eine Anforderung der mit der Domain-Name-Adresse „www.beispiel.de” assoziierten Netzwerkadresse von Client-1 102a über den DNS-Resolver-1 104a. Der Prozess 600 beinhaltet auch das Antworten auf die Anfrage mit einer oder mehreren Anycast-Netzwerkadressen, ausgewählt aus einer Vielzahl von Anycast-Adressen (Schritt 604). Ein Beispiel für diesen Schritt wurde im Zusammenhang mit 1 oben erläutert. Insbesondere zeigt 1 das Antworten des DNS-Servers 106 auf die Anforderung, die von Client-1 102a erhalten wurde, mit einer Anycast-Adresse IP1. Die Anycast-Adresse IP1 kann aus einer Menge von N Anycast-IP-Adressen ausgewählt werden: {IP1, IP2, IP3, IP4, ..., IPN}. In einigen Implementierungen kann der DNS-Server 106 mit mehr als einer Anycast-Adresse antworten, die aus der Menge von N Anycast-IP-Adressen ausgewählt wurde.
  • Der Prozess 600 beinhaltet weiter das Empfangen von Lastinformationen von zumindest einem der Server (Schritt 606). Ein Beispiel für diesen Schritt wurde im Zusammenhang mit 35 oben erläutert. Zum Beispiel empfängt der DNS-Server 208 in den 35 Lastinformationen von jedem der drei Server 204a204b. Wie oben erwähnt, können die Lastinformation mehrere Metriken enthalten, wie beispielsweise, aber nicht beschränkt auf, Server-Antwortzeit, Anzahl von Hits, Ressourcenauslastung, Latenz, Server-Status usw. Der DNS-Server 208 kann die von den Servern empfangenen Lastinformationen vergleichen und diese mit vorgegebenen Schwellwerten vergleichen. Wenn die empfangene Lastinformationen die Schwellwerte überschreiten, dann kann DNS-Server 208 bestimmen, dass sich der Server in einem Überlastzustand befindet.
  • Der Prozess 600 beinhaltet ferner das Anweisen, basierend auf den empfangenen Lastinformationen, dass ein oder mehrere der Server das Bekanntmachen einer oder mehrerer Anycast-Adressen aus der Vielzahl von Anycast-Adressen einstellen (Schritt 608). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 4 oben erläutert. Wenn DNS-Server 208 zum Beispiel bestimmt, dass sich Server-3 204c in einem Überlastzustand befindet, weist er Server-3 204c an, das Bekanntmachen der Anycast-Adresse IP4 aus der Menge von N Anycast-Adressen: {IP1, IP2, IP3, IP4, ...,IPN}, die von Server-3 204c bekanntgemacht werden, einzustellen.
  • 7 zeigt einen beispielhaften Prozess 700 für Anycast-basierte Lastverteilung, der von einem Server durchgeführt. In einigen Implementierungen kann der in 7 gezeigte Prozess 700 von den in 35 dargestellten DNS-Servern 204a204c ausgeführt werden. Der Prozess 700 beinhaltet das Bekanntmachen einer Vielzahl von Anycast-Adressen (Schritt 702), Kommunizieren von Lastinformation an einen Server (Schritt 704), Einstellen des Bekanntmachen einer oder mehrerer von dem Server angegebenen Anycast-Adressen (Schritt 706) und Fortfahren des Kommunizieren von Lastinformationen an den Server (Schritt 708).
  • Der Prozess 700 beinhaltet das Bekanntmachen einer Vielzahl von Anycast-Adressen (Schritt 702). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 3 oben erläutert. Zum Beispiel zeigt 3, wie jeder der drei Server 204a204c eine Menge von N Anycast-IP-Adressen {IP1, IP2, IP3, IP4, ..., IPN} bekanntmacht. Durch Bekanntmachen der Menge von N Anycast-IP-Adressen, zeigen die Server 204a204c den Routern 206a206e an, dass jeder der drei Server 204a204c Client-Anfragen annehmen kann, die an eine beliebige der N Anycast-IP-Adressen adressiert sind.
  • Der Prozess 700 beinhaltet auch das Kommunizieren von Lastinformationen an einen Server (Schritt 704). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 45 oben erläutert. Zum Beispiel sendet jeder der drei in 4 gezeigten Server 204a204c Lastinformationen an den DNS-Server 208. Die Lastinformationen können Lastmetriken enthalten, wie beispielsweise, aber nicht beschränkt auf, Server-Antwortzeit, Anzahl von Hits, Ressourcenauslastung, Latenz, Server-Status usw.
  • Der Prozess 700 beinhaltet ferner das Einstellen des Bekanntmachen einer oder mehrerer Anycast-Adressen, die vom Server angezeigt werden (Schritt 706). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 45 oben erläutert. Zum Beispiel, wie in 4 gezeigt, stellt Server-3 204c nach Erhalt von Anweisungen von DNS-Server 208 das Bekanntmachen der Anycast-Adresse IP4 ein. Durch das Einstellen des Bekanntmachen der Anycast-Adresse IP4 zeigt Server-3 204c an, dass Server-3 204c keine Anfragen mehr annimmt, die an Anycast-Adresse IP4 adressiert sind. Das bedeutet, dass Anfragen, und in der Tat Pakete, die an IP4 adressiert sind, die zuvor von Server-3 204c verarbeitet wurden, stattdessen an einen anderen Server geroutet werden.
  • Der Prozess 700 beinhaltet auch das Fortfahren des Kommunizieren von Lastinformationen an den Server (Schritt 708). Ein Beispiel für diesen Verfahrensschritt wurde im Zusammenhang mit 45 oben erläutert. Zum Beispiel, wie oben erwähnt, fährt Server-3 204c fort, Lastinformationen an DNS-Server 208 zu senden, selbst nachdem er das Bekanntmachen der Anycast-Adresse IP4 eingestellt hat. Wenn der DNS-Sever auf Basis der aktuell empfangen Lastinformation bestimmt, dass Server-3 204c nicht mehr überlastet ist, dann kann Server-3 204c Anweisungen von DNS-Server 208 erhalten, die Anycast-Adresse IP4 wieder bekanntzumachen. Auf diese Weise kann der Server-3 204c wieder beginnen an die Anycast-Adresse IP4 adressierte Anfragen zu akzeptieren und darauf zu antworten.
  • 8 zeigt ein beispielhaftes Blockdiagramm eines DNS-Servers 800. In einigen Implementierungen kann der DNS-Server 800 beispielsweise als der in 1 gezeigte DNS-Server 106 und/oder der in den 24 gezeigte DNS-Server 208 verwendet werden. In einigen Implementierungen kann der DNS-Server 800 zum Ausführen des in 6 gezeigten beispielhaften Prozesses 600 verwendet werden.
  • Der DNS-Server 800 beinhaltet einen Prozessor 802, einen Speicher 804 und eine Netzwerkschnittstelle 806. Der Prozessor 802 kann einen beliebigen Logikschaltkreis, der Prozessanweisungen ausführt, beinhalten wie beispielsweise, jedoch nicht beschränkt auf, Mikroprozessoren, Mikrocontroller, programmierbare Logikarrays usw., der als anwendungsspezifische integrierte Schaltungen (engl. application specific integrated circuits, ASICs), feldprogrammierbare Gate-Arrays (engl. field programmable gate arrays, FPGAs) usw. implementiert ist. In einigen Implementierungen kann der Prozessor 802 mehrere Prozessoren beinhalten. Der Prozessor 802 kann zu Multi-Processing, Multi-Tasking, Multi-Threading fähig sein und allgemein in der Lage sein, mehr als eine Anwendung gleichzeitig auszuführen. Der Prozessor 802 kann mit dem Speicher 804 und der Netzwerkschnittstelle 806 über Daten und Steuerbusse kommunizieren (nicht gezeigt).
  • Der Speicher 804 kann eine beliebige Einrichtung sein, die in der Lage ist, computerlesbare Daten zu speichern. Der Speicher 804 kann eine Einrichtung mit festem Speicher oder eine Einrichtung zum Lesen von Wechselspeichermedien sein. Beispiele beinhalten alle Formen von nichtflüchtigem Speicher, nichtflüchtigen Medien und Speichereinrichtungen, Halbleiterspeichereinrichtungen (beispielsweise EPROM, EEPROM und Flash-Speichereinrichtungen), Magnetplatten, magnetooptische Platten und optische Platten (beispielsweise CD-ROM-, DVD-ROM- und Blu-Ray®-Disks). Der DNS-Server 800 kann eine beliebige Anzahl von Einrichtungen haben, die Speicher 804 implementieren. In einigen Implementierungen kann der Speicher 804 einen Redundant Array of Independent Disks (RAID) beinhalten, um Fehlertoleranz, Verfügbarkeit und Zuverlässigkeit zu verbessern.
  • Der DNS-Server 800 kann die Netzwerk-Schnittstelle 806 zum Kommunizieren von Daten mit anderen Geräten über ein Netzwerk nutzen. Zum Beispiel kann die Netzwerkschnittstelle verwendet werden, um mit Clients 102a102n und/oder DNS-Resolvern 104a104n zu kommunizieren, die in 1 gezeigt sind. Der DNS-Server 800 kann auch die Netzwerk-Schnittstelle 804 nutzen, um mit in den 25 gezeigten Servern 201a201c zu kommunizieren. Die Netzwerkschnittstelle 806 kann eine oder mehrere Netzwerk-Ports zur physischen Verbindung mit einem oder mehreren Netzwerken über Netzwerkkabel beinhalten. Die Netzwerkschnittstelle 806 kann auch einen Schnittstellen-Controller zum Kommunizieren von Daten zwischen den Netzwerk-Ports und dem Prozessor 802 und zur allgemeinen Steuerung des Betriebs der Netzwerkschnittstelle 806 beinhalten. In einigen Implementierungen kann die Netzwerkschnittstelle 804 mehrere Netzwerk-Layer des Open Systems Interconnection (OSI) Netzwerkmodells implementieren. Zum Beispiel kann die Netzwerkschnittstelle Ethernet-Ports mit zugeordneten Ethernet-Adressen zur Implementierung eines Datenlik-Layers implementieren.
  • In einigen Implementierungen kann der Speicher 804 eine DNS-Datenbank 808 speichern. Die DNS-Datenbank 808 kann ähnlich der DNS-Datenbank sein, die oben in Bezug auf den 1 gezeigten DNS-Server 106 erörtert wurde. Zum Beispiel kann die DNS-Datenbank 808 Ressourcen-Datensätze mit IP-Adressen von einem oder mehreren Web-Servern beinhalten, die mit einem Domain-Namen wie beispielsweise „www.beispiel.de” assoziiert sind. In einigen anderen Implementierungen kann die DNS-Datenbank 808 IP-Adressen anderer DNS-Server beinhalten, die DNS-Abfragen für den DNS-Server 800 verarbeiten können. In einigen Implementierungen können die in der DNS-Datenbank gespeicherten IP-Adressen Anycast-IP-Adressen sein.
  • Der Speicher 804 kann mehrere Anwendungen zur Ausführung durch den Prozessor 802 speichern. Zum Beispiel kann der Speicher 804 eine DNS-Anwendung 810 zur Durchführung verschiedener Funktionen im Zusammenhang mit dem Domain-Name-System beinhalten. Insbesondere kann die DNS Anwendung ein Anycast-Modul 812 beinhalten, die durch Prozessor 802 ausgeführt werden kann, um Clients (beispielsweise in 1 gezeigten 102a102n) eine oder Adressen mehrere Anycast-IP-Adressen bereitzustellen, die aus einer Vielzahl von Anycast-Adressen ausgewählt wurden, die in der DNS-Datenbank 808 gespeichert sind. Der DNS-Anwendung 810 kann auch ein Lastverteilungsmodul 814 beinhalten. Das Lastverteilungsmodul 814 kann durch den Prozessor 802 ausgeführt werden, um von Servern (wie beispielsweise in den 25 gezeigte Server 204a204c) empfange Lastinformationen zu verarbeiten und Anweisungen in Bezug auf das Bekanntmachen von Anycast-IP-Adressen an die Server zu senden. Zum Beispiel kann das Lastverteilungsmodul 814 Anweisungen zum Kommunizieren an einen überlasteten Server beinhalten, das Bekanntmachen einer oder mehrerer Anycast-IP-Adressen einzustellen.
  • 9 beinhaltet ein beispielhaftes Blockdiagramm eines Servers 900. In einigen Implementierungen kann der Server 900 beispielsweise als die in den 25 gezeigten Content-Server 204a204c verwendet werden. In einigen Implementierungen kann der Server 900 zum Ausführen des in 7 gezeigten beispielhaften Prozesses 700 verwendet werden.
  • Der Server 900 kann einen Prozessor 902, einen Speicher 904 und eine Netzwerkschnittstelle 906 beinhalten. In einigen Implementierungen können der Prozessor 902, der Speicher 904 und die Netzwerkschnittstelle 906 in einer Weise ähnlich zu der oben in Bezug auf den in 8 gezeigten Prozessor 802, Speicher 804 bzw. der Netzwerkschnittstelle 806 erörterten Weise, implementiert sein.
  • Der Speicher 904 kann eine Server-Datenbank 908 speichern, welche beispielsweise eine Vielzahl von Anycast-IP-Adressen beinhalten kann, die mit einem oder mehreren Domain-Names assoziiert sein können. Der Speicher 904 kann auch eine Zustandstabelle 910 enthalten, die Zustandsinformationen der laufenden Transaktionen beinhaltet, die von den Servern, die an dem Domain-Name-System teilnehmen, verarbeitet werden.
  • Der Speicher 904 kann auch mehrere Anwendungen zur Ausführung durch den Prozessor 902 beinhalten. Zum Beispiel kann der Speicher 904 eine Server-Anwendung 912 beinhalten, die von dem Prozessor 902 zur Durchführung verschiedener Server-Operationen im Zusammenhang mit dem Domain-Name-System ausgeführt werden können. Insbesondere kann die Server-Anwendung 912 ein Bekanntmachungsmodul 914 und ein Lastüberwachungsmodul 916 beinhalten. Das Bekanntmachungsmodul 914 kann durch den Prozessor 902 durchgeführt werden, um zu bestimmen, welche der in der Server-Datenbank 908 gespeicherten Anycast-IP-Adressen bekanntgemacht werden müssen. In einigen Implementierungen kann das Bekanntmachungsmodul 914 verwendet werden, um mit dem in 8 gezeigten DNS-Server 800 zu kommunizieren, um Anweisungen zu erhalten, die angeben, welche der Anycast-IP-Adressen bekanntgemacht oder nicht mehr bekanntgemacht werden soll.
  • Das Lastüberwachungsmodul 916 kann durch den Prozessor 902 zur Bestimmung der Lastinformation auf dem Server und zum Kommunizieren der Lastinformationen an den DNS-Server ausgeführt werden. Zum Beispiel kann das Lastüberwachungsmodul 916 Informationen sammeln, wie beispielsweise, aber nicht beschränkt auf, Server-Antwortzeit, Anzahl von Hits, Ressourcenauslastung, Latenz, usw. Die durch das Lastüberwachungsmodul 916 gesammelten Lastinformationen können an den DNS-Server, wie beispielsweise den in 8 gezeigten DNS-Server 800 kommuniziert werden. In einigen Implementierungen kann das Lastüberwachungsmodul 916 Anweisungen beinhalten, in regelmäßigen Abständen Lastinformationen zu sammeln oder Lastinformationen zu sammeln, wenn diese von dem DNS-Server angefordert werden.
  • Verschiedene Modifikationen der in dieser Offenbarung beschriebenen Implementierungen sind Fachleuten ohne Weiteres offensichtlich und die allgemeinen hierin definierten Prinzipien können auf andere Implementierungen angewendet werden, ohne vom Grundgedanken und Schutzbereich dieser Offenbarung abzuweichen. Somit sollen die Ansprüche nicht auf die hier dargestellten Implementierungen beschränkt sein, sondern sind dem breitesten Umfang zugänglich, der mit dieser Offenbarung, den Prinzipien und den neuartigen Merkmalen, die hierin offenbart sind, konsistent ist.

Claims (10)

  1. Domain-Name-System (DNS), umfassend: einen DNS-Server, der Folgendes beinhaltet: eines Anycast-Moduls, konfiguriert, um das Annehmen einer Anforderung einer Netzwerkadresse eines Content-Servers, und da Antworten auf die Anforderung mit einer Netzwerkadresse, ausgewählt aus einer Vielzahl von Anycast-Netzwerkadressen, eines Lastverteilungsmoduls, das kommunizierbar mit dem Anycast-Modul gekoppelt ist, konfiguriert ist, um: Lastinformation von zumindest einem einer Vielzahl von Content-Servern zu empfangen, um basierend auf den Lastinformationen einen überlasteten Content-Server zu identifizieren, und den überlasteten Content-Server anzuweisen, das Bekanntmachen einer oder mehrerer der Vielzahl von Anycast-Netzwerk-Adressen einzustellen, und einer Vielzahl von Content-Servern, die in der Lage sind, mit dem DNS-Server zu kommunizieren, wobei jeder der Vielzahl von Content-Servern beinhaltet: ein Bekanntmachungsmodul, das dafür konfiguriert ist, um: Anweisungen von dem DNS-Server zu empfangen, bestimmte der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen und die bestimmten der Vielzahl von Anycast-Netzwerkadressen bekanntzumachen, und ein Lastüberwachungsmodul, das konfiguriert ist, um: mit dem Server verbundene Lastinformationen zu sammeln und die Lastinformationen an den DNS-Server zu kommunizieren.
  2. System nach Anspruch 1, wobei das Anycast-Modul ferner konfiguriert ist, die Netzwerkadresse in einer Round-Robin-Weise aus der Vielzahl von Anycast-Netzwerkadressen auszuwählen.
  3. System nach Anspruch 1, wobei das Lastverteilungsmodul ferner konfiguriert ist, zusätzlich Lastinformationen von dem identifizierten überlasteten Content-Server zu empfangen und den überbelasteten Content-Server anzuweisen, die eine oder mehreren der Vielzahl von Anycast-Netzwerkadressen wieder bekanntzumachen.
  4. System nach Anspruch 1, wobei jeder der Vielzahl von Content-Servern ferner konfiguriert ist, eine erste Anforderung von einem ersten Client, die an eine der spezifizierten der Vielzahl von Anycast-Netzwerkadressen adressiert ist, zu empfangen, Zustandsinformation, die der ersten Anforderung zugeordnet ist, zu unterhalten und den Zustand an einen anderen Server zu kommunizieren, der konfiguriert ist, die Vielzahl von Anycast-Netzwerkadressen bekanntzumachen.
  5. System nach Anspruch 1, wobei jeder der Vielzahl von Content-Servern ferner konfiguriert ist, eine zweite Anforderung von einem zweiten Client zu erhalten, die an eine der spezifizierten der Vielzahl von Anycast-Adressen adressiert ist; und die zweite Anforderung einzukapseln und die eingekapselte zweite Anforderung basierend auf Zustandsinformationen, die mit der zweiten von dem anderen Server empfangenen Anforderung verbunden sind, an einen anderen Server weiterzuleiten.
  6. Nicht-flüchtiges computerlesbares Speichermedium mit darauf codierten Anweisungen implementiert werden, welche, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, ein Verfahren durchzuführen, umfassend: das Empfangen einer Anforderung einer Netzwerkadresse eines Content-Servers; das Antworten auf die Anforderung mit einer Netzwerkadresse, die aus einer Vielzahl von Anycast-Netzwerkadressen ausgewählt wird; das Empfangen von Lastinformationen von zumindest einem einer Vielzahl von Content-Servern; und das Anweisen, basierend auf den empfangenen Lastinformationen, dass ein oder mehrere überlastete Content-Server einstellen, eine oder mehrere einer Vielzahl von Anycast-Netzwerkadressen bekanntzumachen.
  7. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 6, wobei das Antworten auf eine Anfrage mit einer Netzwerkadresse, ausgewählt aus der Vielzahl von Anycast-Netzwerkadressen, das Auswählen der Netzwerkadresse aus der Vielzahl von Anycast-Netzwerkadressen in einer Round-Robin-Weise beinhaltet.
  8. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 6, wobei das Antworten auf eine Anfrage mit einer Netzwerkadresse, ausgewählt aus der Vielzahl von Anycast-Netzwerkadressen, das zufällige Auswählen der Netzwerkadresse aus der Vielzahl von Anycast-Netzwerkadressen beinhaltet.
  9. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 6, des Weiteren umfassend das Anweisen anderer des einen oder der mehreren der Vielzahl von Content-Servern, laufende Anfragen, die mit dem einen oder den mehreren überlasteten Content-Servern verbunden sind, die das Bekanntmachen der einen oder mehreren der Vielzahl von Anycast-Netzwerkadressen einstellen, an den einen oder die mehreren überlasteten Content-Servern weiterzuleiten.
  10. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 6, des Weiteren umfassend das Empfangen zusätzlicher Lastinformationen von dem zumindest einem der Vielzahl von Content-Servern und Anweisen, auf Basis der zusätzlichen Lastinformationen, des einen oder der mehreren der Vielzahl von Content-Servern, die eine oder mehreren der Vielzahl von Anycast-Netzwerkadressen wieder bekanntzumachen.
DE202015009264.0U 2014-01-27 2015-01-13 Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem Active DE202015009264U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/164,925 US9467506B2 (en) 2014-01-27 2014-01-27 Anycast based, wide area distributed mapping and load balancing system
US14/164,925 2014-01-27

Publications (1)

Publication Number Publication Date
DE202015009264U1 true DE202015009264U1 (de) 2017-02-15

Family

ID=52464563

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009264.0U Active DE202015009264U1 (de) 2014-01-27 2015-01-13 Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem

Country Status (6)

Country Link
US (1) US9467506B2 (de)
EP (2) EP3591944B1 (de)
CN (1) CN106031133B (de)
DE (1) DE202015009264U1 (de)
DK (2) DK3100438T3 (de)
WO (1) WO2015112380A1 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9973590B2 (en) * 2011-11-26 2018-05-15 Bing Wu User identity differentiated DNS resolution
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9923959B2 (en) * 2014-06-05 2018-03-20 Microsoft Technology Licensing, Llc Load balancing with layered edge servers
CA2965852C (en) 2014-10-27 2021-08-31 Level 3 Communications, Llc Content delivery systems and methods
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
JP6820320B2 (ja) * 2015-09-04 2021-01-27 ダイナミック・ネットワーク・サービシーズ・インコーポレイテッドDynamic Network Services, Inc. リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置
US10178065B2 (en) * 2015-10-01 2019-01-08 Fastly Inc. Enhanced domain name translation in content delivery networks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
CA3021844A1 (en) 2016-04-22 2017-10-26 Level 3 Communications, Llc Anycast routing techniques in a network
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10992536B2 (en) 2016-08-15 2021-04-27 At&T Intellectual Property I, L.P. Method and apparatus to control anycast traffic using a software defined network controller
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
EP3361675B1 (de) 2016-12-14 2019-05-08 Huawei Technologies Co., Ltd. Verteiltes lastausgleichssystem, gesundheitskontrollverfahren und dienstknoten
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
CN109104506B (zh) * 2017-06-20 2021-05-14 腾讯科技(深圳)有限公司 域名解析规则的确定方法、装置和计算机可读存储介质
EP3479327B1 (de) 2017-09-12 2020-12-30 Northwestern University Blockchain-verteilungsnetzwerk
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
CN107682273A (zh) * 2017-10-20 2018-02-09 赛尔网络有限公司 支持Anycast的DNSSEC部署方法及系统
US10567333B2 (en) * 2017-11-01 2020-02-18 Verizon Digital Media Services Inc. Deterministic traffic management in an anycast network
US10462233B2 (en) * 2018-01-23 2019-10-29 Charter Communications Operating, Llc Protocol for anycast based discovery of local resources
US10979387B2 (en) * 2018-09-04 2021-04-13 Level 3 Communications, Llc Systems and methods for utilization of anycast techniques in a DNS architecture
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10645008B1 (en) 2018-12-06 2020-05-05 Verizon Digital Media Services Inc. Predictive Anycast traffic shaping
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN109862115B (zh) * 2019-03-13 2022-09-16 网宿科技股份有限公司 web请求的自动化处理方法及BGP路由系统
US11159607B2 (en) * 2020-03-03 2021-10-26 International Business Machines Corporation Management for a load balancer cluster
US11128695B1 (en) * 2020-09-16 2021-09-21 Cloudflare, Inc. Traffic load balancing between a plurality of points of presence of a cloud computing infrastructure
US11405318B2 (en) 2020-11-04 2022-08-02 Cisco Technology, Inc. Collaborative traffic balancer
US11153265B1 (en) * 2020-12-09 2021-10-19 Cloudflare, Inc. Decoupling of IP address bindings and use in a distributed cloud computing network
US20220329511A1 (en) * 2021-04-07 2022-10-13 Level 3 Communications, Llc Systems and Methods for Restricting the Routing Scope of an Anycast Service
US11997013B2 (en) * 2021-06-24 2024-05-28 Level 3 Communications, Llc Traffic monitoring and orchestration
US11706292B1 (en) * 2022-03-15 2023-07-18 Disney Enterprises, Inc. Local preference in anycast CDN routing
CN117439994A (zh) * 2022-07-14 2024-01-23 中国电信股份有限公司 连接保持方法、客户端设备、服务器、路由器和通信系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2839218B2 (ja) 1992-03-12 1998-12-16 日本製紙株式会社 バインダー樹脂組成物の製造方法
US6415323B1 (en) 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
EP1236329A1 (de) 1999-11-23 2002-09-04 Infolibria, Inc. Optimales routing von anfragen durch die ausnutzung von topology-information
US7346676B1 (en) * 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US7574499B1 (en) * 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US7155515B1 (en) * 2001-02-06 2006-12-26 Microsoft Corporation Distributed load balancing for single entry-point systems
EP1368947B1 (de) 2001-03-02 2006-08-30 Nokia Corporation Adressierungsverfahren und system zur verwendung einer anycast-adresse
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030182410A1 (en) 2002-03-20 2003-09-25 Sapna Balan Method and apparatus for determination of optimum path routing
KR20080008935A (ko) * 2006-07-18 2008-01-24 엘지전자 주식회사 이동 통신 시스템에서 ip 주소 선 설정 방법
US20090054040A1 (en) * 2007-02-21 2009-02-26 Van Wijk Jacques Methods and Systems for Presence-Based Filtering of Notifications of Newly-Received Information Repository Data
US20090172192A1 (en) 2007-12-28 2009-07-02 Christian Michael F Mapless Global Traffic Load Balancing Via Anycast
US8521879B1 (en) 2008-03-11 2013-08-27 United Services Automobile Assocation (USAA) Systems and methods for a load balanced interior gateway protocol intranet
US8612622B2 (en) 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
US8607014B2 (en) 2009-12-22 2013-12-10 At&T Intellectual Property I, L.P. Multi-autonomous system anycast content delivery network
US8892646B2 (en) * 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US20110314119A1 (en) 2010-06-18 2011-12-22 Deepak Kakadia Massively scalable multilayered load balancing based on integrated control and data plane

Also Published As

Publication number Publication date
US9467506B2 (en) 2016-10-11
EP3591944B1 (de) 2021-03-10
WO2015112380A1 (en) 2015-07-30
US20150215388A1 (en) 2015-07-30
EP3100438B1 (de) 2019-09-25
DK3591944T3 (da) 2021-05-25
EP3100438A1 (de) 2016-12-07
DK3100438T3 (da) 2020-01-13
CN106031133A (zh) 2016-10-12
EP3591944A1 (de) 2020-01-08
CN106031133B (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
DE202015009264U1 (de) Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE69835400T2 (de) Netzbelastungsausgleich für Mehrrechner Anbieter
DE60103088T2 (de) Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe
DE102016103733B4 (de) Kanaleigentum in einem Veröffentlichungs-/Abonnier-System
DE69915871T2 (de) Verfahren und vorrichtung für ein tcp/ip lastausgleich und wiederherstellung eines prozesses in einem internet protocol (ip) netzwerkgruppensystem.
DE102013200031B4 (de) Verwaltung einer globalen Weiterleitungstabelle in einem verteilten Switch
DE602004008693T2 (de) Dynamischer Lastausgleich für geschäftlichen IP-Verkehr
DE60026231T2 (de) Verfahren und Vorrichtung zur Durchführung eines Schnellen Dienstnachschlagen in einem Neztwerkgruppen
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE69837691T2 (de) Lastverteilung zwischen Servern in einem TCP/IP-Netz
DE60122782T2 (de) Adressierungsverfahren und system zur verwendung einer anycast-adresse
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
EP1423964B1 (de) Skalierbares peer-to-peer-netzwerk mit einem verzeichnisdienst
DE60303309T2 (de) Snmp systemeinzelabbild eines am netzwerk angeschlossenen speichers
DE202015009244U1 (de) Routing von Datenverkehr innerhalb von und zwischen autonomen Systemen
DE112015006397B4 (de) DNS Optimierung für Multi-Source Download bei Hybridzugriff
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE102019104942A1 (de) Kommunikation einer Nachricht unter Verwendung einer Netzwerkschnittstellensteuerung in einem Subnetz
DE60130844T2 (de) Autonomes OSPF-System mit einem in zwei Teilbereiche getrennten Hauptnetz
DE112017006993T5 (de) System und Verfahren zum Erfassen einer Netztopologie
DE602005001550T2 (de) Verfahren und vorrichtung zur unterstützung von transaktionen
DE69721641T2 (de) Verfahren und Vorrichtung für ein verzeichnisloses Speicherzugriffsprotokoll in einem Rechnersystem mit verteiltem gemeinsamen Speicher
DE69812574T2 (de) Verfahren und System zur Leitweglenkung von Agent-Programmen in einem Kommunikationsnetz
DE102021109509A1 (de) System und verfahren zur rekonfiguration eines netzwerks unter verwendung von netzvverkverkehrsvergleichen

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012803000

Ipc: H04L0047125000

R152 Utility model maintained after payment of third maintenance fee after eight years