DE60132718T2 - System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen - Google Patents

System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen Download PDF

Info

Publication number
DE60132718T2
DE60132718T2 DE60132718T DE60132718T DE60132718T2 DE 60132718 T2 DE60132718 T2 DE 60132718T2 DE 60132718 T DE60132718 T DE 60132718T DE 60132718 T DE60132718 T DE 60132718T DE 60132718 T2 DE60132718 T2 DE 60132718T2
Authority
DE
Germany
Prior art keywords
web
client
cache
router
routers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60132718T
Other languages
English (en)
Other versions
DE60132718D1 (de
Inventor
J. J. San Mateo GARCIA-LUNA-ACEVES
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.)
Adara Networks Inc Scotts Valley
Adara Networks Inc
Original Assignee
Adara Networks Inc Scotts Valley
Adara Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adara Networks Inc Scotts Valley, Adara Networks Inc filed Critical Adara Networks Inc Scotts Valley
Application granted granted Critical
Publication of DE60132718D1 publication Critical patent/DE60132718D1/de
Publication of DE60132718T2 publication Critical patent/DE60132718T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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/457Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • 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
    • 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/101Server selection for load balancing based on network conditions
    • 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/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Erfindung bezieht sich auf und beansprucht hierdurch den Prioritätsvorteil der folgenden vorläufigen US-Patentanmeldungen:
    Anmeldung Nr. 60/190,331 mit dem Titel „SYSTEM AND METHOD FOR DISCOVERING INFORMATION OBJECTS AND INFORMATION OBJECT REPOSITORIES IN COMPUTER NETWORKS", eingereicht am 16. März 2000 von J. J. Garcia-Luna-Aceves; und
    Anmeldung Nr. 60/200,401 mit dem Titel „SYSTEM AND METHOD FOR DISCOVERING OPTIMUM INFORMATION OBJECT REPOSITORIES IN COMPUTER NETWORKS (WILD PROTOCOL)", eingereicht am 28. April 2000 von J. J. Garcia-Luna-Aceves und Bradley R. Smith.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein System und ein Verfahren für das Auffinden von Informationsobjekten und von Informationsobjektespeichernden Servern, die über Computernetzwerke verteilt sind, sowie Server, die beim Zugriff gemäß Typen von Service-Parametern besonders effizient sind. Insbesondere betrifft die vorliegende Erfindung das Auffinden des Orts von Cache- und Hosting-Sites im World Wide Web, die beim Zugriff von einem Objekt-anfordernden Standpunkt und darin, die angeforderten Informationsobjekte und -dienste nach Wunsch zu diesen Cache- und Hosting-Sites zu bringen, höchst effizient sind.
  • HINTERGRUND
  • Ein Internetzwerk ist eine Sammlung von Computernetzwerken, die durch Knoten miteinander verbunden sind, wobei jeder solcher Knoten ein Mehrzweckcomputer oder eine spezialisierte Vorrichtung wie etwa ein Router sein kann. Insofern wird ein Internetzwerk häufig Netzwerk von Netzwerken genannt. Der Zweck des Aufbaus eines Internetzwerks ist es, Informationsdienste zu Endknoten zu liefern, wobei jeder Endknoten ein Netzwerkcomputer oder eine spezialisierte Vorrichtung wie etwa eine Kamera oder ein Display sein kann. Das Internet ist ein Internetzwerk, in dem Information als Paket organisiert ist, die von einer Quelle zu Bestimmungsendknoten nach Art von Speicherung und Lieferung verteilt werden, und worin Router und Endknoten das Internetprotokoll (IP) verwenden, um diese Pakete zu kommunizieren.
  • Das World Wide Web (auch als WWW oder Web bekannt) ist im Internet zum wesentlichen Informationsdienst geworden. Das Web stellt ein System dar, um über das gesamte Internet hinweg auf gelinkte Informationsobjekte zuzugreifen, die in Endknoten (Host-Computern) gespeichert sind. Berners-Lee schrieb den ursprünglichen Vorschlag für ein Web aus verlinkten Informationsobjekten (T. Berners-Lee, „Information Management: A Proposal", CERN Document, März 1989). Das Web besteht aus einer wilden Sammlung von Informationsobjekten, die als Seiten (Pages) organisiert sind, und jede Seite kann Links zu anderen Seiten oder allgemein Informationsobjekte enthalten, deren Inhalt als Audio, Video, Bilder, Text oder Daten dargestellt ist. Seiten werden vom Endbenutzer mit einem Programm betrachtet, das Browser genannt wird (zum Beispiel Netscape NavigatorTM). Der Webbrowser läuft in einem Endsystem nach Vorgaben des Benutzers. Der Client (Webbrowser) erhält die angeforderten Informationsobjekte von einem Server (Webserver) mittels eines Anfrage-Antwort-Dialogs als Teil des Hypertext Transfer Protokolls (HTTP). Informationsobjekte werden mittels Namen identifiziert, die über das gesamte Internet eindeutig sind; diese Namen werden Uniform Resource Locators oder URLs genannt. Ein URL besteht aus drei Komponenten:
    • (1) dem Protokoll oder Schema, das zum Zugriff auf das Objekt verwendet werden soll (zum Beispiel HTTP);
    • (2) den Namen (einen DNS-Namen) des Hosts, an dem das Objekt lokalisiert ist; und
    • (3) einem lokalen Identifizierer, der in dem spezifizierten Host eindeutig ist.
  • Wie jedes groß bemessene System erfordert das Web die Verwendung von Mechanismen für Skalierung und Zuverlässigkeit. Insbesondere weil die Anzahl von Informationsobjekten, die durch das Web erhalten werden können, zunimmt, finden es die Menschen immer schwieriger, die spezifischen Informationsobjekte zu lokalisieren, die sie benötigen. Da ferner die Anzahl von Web-Benutzern und Servern zunimmt, können Sites oder Server, die die angeforderten Informationsobjekte speichern, von den die Objekte anfordernden Verwendern sehr weit entfernt sein, was zu langen Latenzen im Zugriff und der Lieferung der Information führt, oder die die Informationsobjekte speichernden Server können mit der Anzahl der Anfragen für populäre Informationsobjekte überfordert sein.
  • Um das Web in die Lage zu versetzen, große und rasch zunehmende Anzahlen von Benutzern und eine wilde und wachsende Sammlung von Informationsobjekten zu skalieren, müssen die Informationsobjekte in dem Web auf mehrere Server verteilt gespeichert werden, derart, dass Benutzer die Informationsobjekte, die sie benötigen, rasch abfragen können, und ohne einen der die Objekte speichernden Server zu überfordern.
  • Dementsprechend ist es für das Web zur Skalierung und Zuverlässigkeit erforderlich, Informationsobjekte zwischen mehreren Seiten zu verteilen. Die zu diesem Ziel verwendeten Schemata werden Web-Caching Schemata genannt. In einem Web-Caching Schema wird ein oder werden mehrere Web-Caches oder Proxy-Webserver in Computernetzwerken und im Internet verwendet, um zu erlauben, das mehrere Host-Computer (Clients) auf einen Satz von Informationsobjekten von anderen Seiten als den Seiten zu greifen, von denen der Inhalt (die Objekte) ursprünglich bereitgestellt werden. Web-Caching Schemata unterstützen das Auffinden der Seiten, wo die Informationsobjekte gespeichert sind, das Verteilen von Informationsobjekten zwischen den Web-Caches und das Abfragen von Informationsobjekten von einem gegebenen Web-Cache. Viele bisherige Vorschläge und Implementationen unterscheiden sich in den verschiedenen Mechanismen, die zum Unterstützen jedes dieser Dienste verwendet werden.
  • Im Stand der Technik gibt es viele Verfahren zur Bestimmung des Servers, Cache, Spiegelserver oder Proxy, aus denen Informationsobjekte abgefragt werden sollten. Der Stand der Technik bezieht sich auf die Entwicklung des ARPANET in den 1970ern und die Untersuchung und Implementierung von Methoden zur Lösung des Datei-Allokation-Problems (FAP) für Datenbanken, die über das ARPANET verteilt sind, und Computernetzwerke im Allgemeinen.
  • Datei-Allokations-Methoden für verteilte Datenbanken (zum Beispiel W. W. Chu, „Optimal File Allocation in a Multiple Computer System", IEEE Transactions an Computers, Oktober 1969; S. Mahmoud and J. S. Riordon, „Optimal Allocation of Resources in Distributed Information Networks", ACM Transactions an Data Base Systems, Band 1, Nr. 1, März 1976; H. L. Morgan und K. D. Levin, „Optimal Program and Data Locations in Computer Networks", Communications of the ACM, Band. 20, Nr. 5, Mai 1977) und Directory-Systeme (zum Beispiel W. W. Chu, „Performance of File Directory Systems for Data Bases in Star and Dirstributed Networks", Proc. National Computer Conference, 1976, S. 577–587; D. Small und W. W. Chu, „A Distributed Data Base Architecture for Data Processing in a Dynamic Environment", Proc. COMPCON 79 Spring) stellen einige der frühesten Ausführungen von Methoden dar, die zum Wählen einer Ausgabeseite verwendet werden, um auf eine Datei oder ein Informationsobjekt zuzugreifen, das auf einer Anzahl von Seiten repliziert werden kann.
  • Ein anderes Beispiel dieser herkömmlichen Technik ist die Methode, die beschrieben ist von Chiu, Raghavendra und Ng (G. Chiu, C. S. Rahgavendra und S. M. Ng, „Resource Allocation with Load Balancing Consideration an Distributed Computing Systems", Proc. IEEE INFOCOM 89, Ottawa, Ontario, Kanada, April 1999, S. 758–765). Gemäß dieser Methode werden mehrere identische Kopien derselben Quelle (zum Beispiel eine Datei, ein Informationsobjekt) über eine Anzahl von Verarbeitungs-Sites (zum Beispiel ein Spiegelserver, ein Cache) eines verteilten Rechensystems verteilt. Die Methode versucht, die Kosten zu minimieren, die beim Replizieren der Quelle an den Verarbeitungs-Sites und beim Abfragen der Quelle durch Benutzer des Systems von den Bearbeitungsseiten auftreten.
  • Eine jüngere Arbeit hat sich mit dem gleichen Resourcen-Allokation- und Auffindungsproblem innerhalb des Kontexts von Internetdiensten befasst. Guyton und Schwartz (J. D. Guyton und M. F. Schwartz, „Locating Nearby Copies of Replicated Internet Servers", Proc. ACM SIGCOMM 95 Conference, Cambridge, Massachusetts, August 1995, S. 288–298) beschreiben und analysieren Serverlokationstechniken für replizierte Internetdienste, wie etwa Network Time Protocol (NTP), Server und Web-Caches. Im Stand der Technik gibt es verschiedene unterschiedliche Ansätze für das Auffinden von Informationsobjekten in Web-Caching Schemata.
  • Ein Ansatz für die Objektauffindung besteht in der hierarchischen Organisation von Web-Caches. In einer hierarchischen Web-Cache-Architektur wird zwischen den Caches eine Eltern-Kind-Beziehung hergestellt; jedes Cache in der Hierarchie teilt sich eine Gruppe von Clients oder einen Satz von Kinder-Caches. Eine Anfrage nach einem Informationsobjekt von einem Client wird auf der niedrigsten Cache-Ebene verarbeitet, das entweder eine Kopie des angeforderten Objekt hat oder jedes seiner Geschwister in der Hierarchie für das Objekt abfragt und die Anfrage zu seinem Eltern-Cache weiterleitet, wenn kein Geschwister eine Kopie des Objekts hat. Der Prozess geht in der Hierarchie hinauf, bis eine Kopie des Objekts von dem Cache lokalisiert ist oder der Wurzel der Hierarchie erreicht ist, die aus Servern mit der Originalkopie des Objekts besteht.
  • Eines der frühesten Beispiele vom hierarchischen Web-Caching war das Discover-System (A. Duda und M. A. Sheldon, „Content Routing in networks of WAIS Servers", Proc. IEEE 14th International Conference an Distributed Computing Systems, Juni 1994; M. A. Sheldon, A. Duda, R. Weiss, J. W. O'Toole, Jr. Und D. K. Gifford, „A Content Routing System for Distributed Information Servers", Proc. Fourth International Conference an Extending Database Technology, März 1994), das einen assoziativen Zugriff zu Servern bereitstellt; der Benutzer leitet die Verfeinerung der Anfrage.
  • Harvest (A. Chankhunthod, P. Danzing, C. Neerdaels, M. Schwartz und K. Worrell, „A Hierarchical Internet Object Cache", Proc. USENIX Technical Conference 96, San Diego, California, Januar 1996) und Squid (D. Wessels, „Squid Internet Object Cache", http://www.squid.org, August 1998) sind zwei der bestbekannten hierarchischen Web-Cache-Architekturen. Harvest und Squid konfigurieren Web-Caches zu einer statischen hierarchischen Struktur, worin ein Web-Cache ein statischer Satz von Siblings und einem Parent ist. Das Internet-Caching-Protocol oder ICP (D. Wessels und K. Claffy, „Internet Cache Protocol (OCP), Version 2'', RFC 2186, September 1997) wird unter Web-Caches verwendet, um Informationsobjekte anzufordern.
  • In den Harvest-Hierarchien werden Geschwister und Eltern manuell in Web-Caches oder Proxys konfiguriert; dies ist sehr einschränkend und fehlerbehaftet, weil die Rekonfiguration stattfinden muss, wenn ein Cache in das System eintritt oder dieses verlässt. Eine noch allgemeinere Beschränkung des hierarchischen Web-Caching basierend auf statischen Hierarchien ist, dass die Verzögerungen, die beim Routen von Anfragen nach Informationsobjekten auftreten, in einem groß bemessenen System zu stark werden können, und die Latenz darin, das Informationsobjekt von dem Cache mit einer Kopie des Objekts abzufragen, kann lang sein, weil es keine Korrelation zwischen dem Routing der Anforderung zu einem gegebenen Cache in der Hierarchie und der Netzwerkverzögerung von diesem Cache zu dem anfordernden Client gibt. Ferner können einige Web-Caches mit Anfragen überlastet sein, während andere zu wenig genutzt werden können, selbst wenn sie dieselben Objekte speichern.
  • In dem WebWave-Protokoll (A. Heddaya und S. Mirdad, „WebWave: Globally Load Balanced Fully Distributed Caching of Hot Published Documents", Technical Report BU-CS-96-024, Boston University, Computer Science Department, Oktober 1996; A. Heddaya und S. Mirdad, „WebWave: Globally Load Balanced Fully Distributed Caching of Hot Published Documents", Proc. IEEE 17th International Conference an Computing Systems, Baltimore, Maryland, Mai 1997) sind Web-Caches als ein Baum organisiert, der seine Wurzeln an dem Server hat, der die ursprüngliche Kopie des einen Objekts oder einer Familie von Informationsobjekten bereitstellt; die Blätter des Baums sind die Clients, die die Informationsobjekte anfragen, und der Rest der Knoten in dem Baum sind Web-Caches. Das Ziel des Protokolls ist es, einen Lastausgleich zwischen den Web-Caches zu erreichen; jedes Web-Cache in einem solchen Baum hält ein Maß der Last an seinem Elter und Kind in dem Baum, und liefert oder leitet die Anforderung automatisch zu seinem Elter basierend auf der Lastinformation. Dieser Ansatz assoziiert die Möglichkeit der Überlastung von Web-Caches, wie beim Harvest-Ansatz für hierarchisches Web-Caching; jedoch treten immer noch Verzögerungen in der Fortleitung von Anfragen von stark belasteten Web-Caches zu ihren Vorgängern in der Web-Hierarchie auf.
  • Hash-Routing-Protokolle (K. W. Ross, „Hash Routing for Collections of Shared Web Caches", IEEE Network, Band 11, Nr. 6, November 1997, S. 37–44) stellen einen anderen Ansatz dar, um das Auffinden eines Objekts in aufgeteilten Caches zu unterstützen. Hash-Routing-Protokolle beruhen auf einem deterministischem Hashing-Ansatz zum Mappen eines Informationsobjekts zu einem eindeutigen Cache (D. G. Thaler und C. V. Ravishankar, „Using Name-Based Mappings To Increase Hit", IEEE/ACM Trans. Networking, 1998; V. Valloppillil und J. Cohen, „Hierarchical HTTP Routing Protocol", Internet Draft, http://www.nlanr.net/Cache/ICP/draft-vinod-icp-traffic-dist-00.txt), um die Informationsobjekte zu verteilen (universeller Resourcen-Lokator oder URL im Falle des Webs) zwischen einer Anzahl von Caches; das Endergebnis ist die Entstehung eines einzigen logischen Caches, das über viele physikalische Caches hinweg verteilt wird. Eine wichtige Eigenschaft dieses Schemas ist, dass Informationsobjekte zwischen Cache-Sites nicht repliziert werden. Die Hash-Funktion kann an den Clients oder an den Cache-Sites gespeichert werden. Der Hash-Raum ist unter den N Cache-Sites unterteilt. Wenn ein Client Zugriff zu einem Informationsobjekt o braucht, wird der Wert für die Hash-Funktion für o (h(o)) an dem Client oder einer Cache-Site berechnet (im letzteren Fall wird das Cache zum Beispiel an dem Client konfiguriert). Der Wert von h(o) ist die Adresse der Cache-Site zum Kontaktieren in der Zugriffsreihenfolge des Informationsobjekts o.
  • Der Cache-Resolver ist anderer jüngerer Ansatz für das hierarchische Web-Caching (D. Karger, E. Lehman, T. Leighton, M. Levine, D. Lewin und R. Panigraphy, „Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots an the World Wide Web", Proc. 29th ACM Symposium an Theory of Computing (STOC 97), El Paso, Texas, 1997; D. Karger, Sherman, A. Berkheimer, B. Bogstad, R. Dhannidina, K. Iwamoto, B. Kim, L. Matkins und Y. Yerushalmi, „Web Caching with Consistent Hashing", Proc. 8th International World Wide Web Conference, Toronto, Canada, Mai 1999). Dieser Ansatz kombiniert hierarchisches Web-Caching mit Hashing und besteht aus zwei Haupttools, Zufalls-Cache-Bäumen und konsistentem Hashing. Ein Baum von Web-Caches ist für jedes Informationsobjekt definiert. Wenn ein Browser (ein Client) ein Informationsobjekt anfordert, nimmt er ein Blatt des Baumes auf und liefert eine diesen Identifizierer enthaltende Anforderung, den Identifizierer des Objekts, die Sequenz von Caches, durch die hindurch die Anforderung geroutet werden soll, falls erforderlich. Wenn ein Web-Cache eine Anfrage erhält, bestimmt es, ob es eine lokale Kopie der Seite hat und reagiert auf die Anfrage, falls sie diese hat; andererseits leitet sie die Anfrage zum nächsten Web-Cache in den Weg, der in der Anfrage enthalten ist, weiter.
  • Ein Web-Cache beginnt dann damit, eine lokale Kopie eines Informationsobjekts zu halten, wenn die Anzahl von Anfragen, die es für das Objekt erhält, eine vordefinierte Anzahl erreicht. Ein Client wählt ein Web-Cache mittels konsistentem Hashing, was Anfragen zu den Blättern der Web-Cache-Hierarchie gleichmäßig verteilt, aber, anders als traditionelle Hashing-Techniken, keine aktualisierte Hash-Tabelle umverteilen muss, jedes Mal, wenn in der Hashing-Hierarchie eine Änderung auftritt (zum Beispiel sich ein neues Web-Cache anschließt oder ein Web-Cache ausfällt). Weil Caching sehr schwer zu implementieren ist oder zu existierenden Webbrowsern hinzuzufügen ist, implementiert der Cache-Resolver-Ansatz das Hashing von DNS-Servern, die Anpassung an diesen Zweck modifiziert sind.
  • Die restlichen Einschränkungen mit diesem Ansatz beruhen auf dem fortgesetzten Gebrauch einer Hierarchie von Web-Caches und dem Bedarf, eine Hash-Funktion in entweder Web-Caches oder DNS-Servern zu implementieren. Das Routen einer Anforderung durch mehrere Web-Caches kann wesentliche Verzögerungen für die Clients mit sich bringen, um Informationsobjekte abzufragen, die zwischen anderen Clients, welche dem gleichen Web-Cache durch die Hashing-Funktion zugewiesen werden, nicht populär sind. Zusätzliche Verzögerungen, und auch kleine, entstehen an dem DNS-Server, der die Adresse des Web-Caches, auf die der Client zugreifen sollte, bereitstellt. Ferner müssen die DNS-Server, die die konsistente Hashing-Funktion stützen, Information über die Beladung aller Web-Caches in dem gesamten System erhalten, oder zumindest einen Bereich des Systems, um genaue Lastausgleichsentscheidungen zu treffen.
  • Dieser DNS-basierende Ansatz wird, ohne die Verwendung der Hierarchien von Web-Caches, angesprochen in der Akamai-CDN-Lösung (F. T. Leighton und D. M. Lewin, „Global Hosting System", U.S. Patent 6,108,703 , 22. August 2000). Das von Akamai angesprochene „Global Hosting System" stellt sicher, dass ein Inhalts-Provider ein HTML-Dokument beginnt, worin spezielle URLs einen für Akamai spezifischen Domain-Namen spezifizieren. Wenn der Client die IP-Adresse des Web-Caches benötigt, die den im speziellen URL spezifizierten Inhalt hostet, kontaktiert der Client zuerst sein lokales DNS. Das lokale DNS weist zu einem „Top-Level" DNS-Server, der das lokale DNS zu einem regionalen DNS-Server verweist, die dem lokalen DNS benachbart erscheint. Der regionale DNS-Server verwendet eine Hashing-Funktion, um den Domain-Namen in dem speziellen URL in die Adresse eines Web-Caches (Hosting Server) in seinem Bereich herauszufinden, das in der vorliegenden Anmeldung als Ziel-Web-Cache bezeichnet wird, in einer derartigen Weise, dass die Last zwischen Web-Caches in dem Bereich ausgeglichen wird. Das lokale DNS liefert die Adresse dieses Web-Caches zu dem Client, der wiederum seine Anfrage nach dem Informationsobjekt zu diesem Web-Cache schickt. Wenn das Objekt in dem Ziel-Web-Cache abgelegt wird, sendet das Cache das Objekt zu dem Client; andernfalls wird das Objekt von der Original-Inhalts-Site wieder abgefragt.
  • Das von Akamai angesprochene Global Hosting System sollte auf Probleme hinweisen, die bei traditionellen lastausgeglichenen Spiegelungslösungen auftritt, worin ein Lastausgleicher oder eine Hierarchie von Lastausgleichern Anfragen zu einer weniger Hosting-Sites umleiten, um die Last zwischen diesen Sites auszugleichen. Firmen, wie etwa Cisco-Systems, Santa Clara, Ca, F5 Networks, Inc., Seattle, WA, Resonate, Inc., Sunnyvale, CA, Nortel Networks, Brampton, Ontario und Foundry Networks, Inc., San Jose, CA liefern gegenseitig Beispiele von lastausgeglichenen Lösungen. Die Einschränkungen des globalen Hosting Systems sind inhärent für die Tatsache, dass der Ansatz im Wesentlichen eine DNS-basierende lastausgeglichene Spiegelungslösung ist. Das Global Hosting System wählt ein Ziel-Web-Cache vollständig basierend auf dem Bereich, der für das lokale DNS günstig erscheint, das den Client nicht begünstigen braucht, und die Last zwischen Web-Caches ausgleicht, ohne die Latenz zwischen den Web-Caches und den Clients zu berücksichtigen. Im Fall eines fehlenden Caches muss das Informationsobjekt von der originale Inhalts-Site abgefragt werden, was bedeutet, dass die Latenzen in der Lieferung des Inhalts sehr stark variieren können, solange nicht der Inhalt in allen Caches aller Bereiche gespiegelt ist.
  • Ein anderer alternativer Ansatz für hierarchische Web-Caching- und Hash-Routing-Protokolle besteht aus der Weiterleitung von Client-Anfragen nach URLs mittels Routing-Tabellen, die den Routing-Tabellen sehr ähnlich sind, die häufig für das Routing von IP-Paketen im Internet verwendet werden (L. Zhang, S. Michel, S. Floyd und V. Jacobsen, „Adaptive Web Caching: Towards a New Global Caching Architecture", Proc. Third International WWW Caching Workshop, Manchester, England, Juni 1998, B. S. Michel, K. Nikoloudakis, P. Reiher und L. Zhang, „URL Forwarding and Compression in Adaptive Web Caching", Proc. IEEE Infocom 2000, Tel Aviv, Israel, April 2000). Gemäß diesem Ansatz, der hierin als „URL-Anfrage-Weiterleitung" bezeichnet wird, enthalten Web-Caches eine URL-Anfrage-Routing-Tabelle, und verwenden sie zur Entscheidung, wie URL-Anfragen zu anderen Web-Caches weitergeleitet werden sollen, wenn angeforderte Informationsobjekte örtlich nicht gefunden werden. Die Schlüssel der URL-Anfrage-Routing-Tabelle sind URL-Präfixe, die einem oder mehreren Identifizierern zu sprungnächsten Caches oder Cache-Gruppen zugeordnet sind, sowie eine Maß, das die durchschnittliche Verzögerung widerspiegelt, um eine Anfrage von einem passenden URL abzufragen.
  • Bei diesem Ansatz spezifiziert ein Eintrag in der URL-Anfrage-Routing-Tabelle ein URL-Präfix und das sprungnächste Web-Cache zu einem Bereich oder Nachbarschaft von Web-Caches, wo sich das Objekt befindet. Im Idealfall braucht ein Web-Cache nur zu wissen, wo eine Kopie eines gegebenen Objekts abgelegt ist; jedoch erfordert, wegen der großen Anzahl von Objekten (identifizierten URLs), die in einem System angefordert werden können, der URL-Anfrage-Weiterleitungs-Ansatz, dass Web-Caches zu Bereichen oder Nachbarschaften organisiert sind. Alle Web-Caches innerhalb des gleichen Bereichs kennen die Objekte, die in jedem anderen Web-Cache in demselben Bereich verfügbar sind. Zusätzlich hält, für jene Objekte, die sich im Bereich des Web-Caches nicht befinden, das Web-Cache auch das sprungnächste Web-Cache zu dem Bereich hin, in dem sich ein Web-Cache mit dem Inhalt befindet.
  • Leider hat dieser Ansatz verschiedene Einschränkungen bei der Skalierung und Leistung. Erstens muss jedes Web-Cache alle Web-Caches kennen, wo sich jedes Objekt in dem Bereich befindet, was zu einer starken Belastung führt, wie ähnlich der Belastung, eines Rundsendeprotokolls traditioneller Topologie für IP-Routing mit dem zusätzlichen Nachteil, dass die Anzahl von Objekten, die sich in einem Bereich befinden können, viel größer sein kann als die Anzahl von IP-Adressbereichen, die in den Rückgrat-Routern des Internets gehalten werden. Zweitens, weil Web-Caches nur etwa den nächsten Sprung zu einem URL kennen, der sich nicht in einem Bereich befindet, könnte eine Anfrage nach einem Objekt, das außerhalb des Bereichs eines Web-Caches liegt, mehrere Web-Cache-Ströme überqueren, bevor ein Web-Cache in dem Bereich erreicht, wo ein Objekt gespeichert ist. Dies liefert weiter zusätzliche Latenzen ähnlich jenen, die bei Caching-Hierarchien auftreten, die in den oben diskutierten anderen Schemata vorgeschlagen wurden. Drittens ist es schwierig, Web-Caches in der Praxis so zu modifizieren, dass Mechanismen implementiert werden, die zum Weiterleiten der URL Anfragen erforderlich sind.
  • Um die Verzögerungen zu reduzieren, die in den hierarchischen Web-Caches auftraten, führten Tewari, Dahlin, Vin und Kay (R. Tewari, „Architecture und Algorithms for Scalable Wide-Area Information Systems", Ph. D. Dissertation, Chapter 5, Computer Science Department, University of Texas at Austin, August 1998; R. Tewari, M. Dahlin, H. M. Vin und J. S. Kay, „Design Considerations for Distributed Caching an the Internet", Proc. IEEE 19th International Conference on Distributed Computing Systems, May 1999) im Kontext einer hierarchischen Web-Caching-Architektur ein. Bei diesem Schema hat ein Web-Cache Zugriff zu einem lokalen Hinweis-Cache, das eine Karte eine Objekts zu einem Identifizierer eines anderen Web-Caches enthält, das eine Kopie des Objekts hat und dem lokalen Hinweis-Cache am nächsten ist. Die Web-Caches auf der ersten Ebene der Hierarchie enthalten Kopien von Informationsobjekten, während Web-Caches auf höheren Ebenen nur Hinweise zu den Objekten enthalten. Hinweise werden entlang der hierarchischen Topologie von den in der Hierarchie niedrigeren Web-Caches zu den in der Hierarchie höheren Web-Caches fortgeleitet. Ferner leitet ein Web-Cache mit einer Kopie eines Objekts einen Hinweis auf das Objekt nicht weiter. Die Beschränkung bei diesem Ansatz ist, dass eine Web-Caching-Hierarchie noch immer etabliert sein muss, was bei Abwesenheit einer automatisierten Methode zum Etablieren der Hierarchie manuell gemacht werden muss, und die Web-Caching-Hierarchie muss an die Örtlichkeit der Referenz-Clienten angepasst sein, um eine Steuerungsüberlastung zu reduzieren.
  • Es gibt eine Anzahl von Vorschlägen, um die Weiterverteilung von Informationsobjekten unter Verwendung von dem zu begünstigen, was „Push Distribution" genannt wird, zum Beispiel von Backweb, Marimba und Pointcast („BackWeb: http://www.backweb.com/", „Marimba: http://www.marimba.com/"; Pointcast: http://www.pointcast.com/"). Bei diesem Ansatz verschiebt ein Webserver die jüngste Version eines Dokuments oder Informationsobjekts zu einer Gruppe von Subscribern. Die populären Internetbrowser Netscape Navigator und Internet ExplorerTM verwenden einen Unicast-Ansatz, worin der Client das angeforderte Objekt direkt von der ursprünglichen Quelle oder Cache erhält. Da die Anzahl von Subscribern eines Dokuments oder Informationsobjekts zunimmt, wird der Unicast-Ansatz ineffizient wegen eines Bearbeitungsüberhangs und Servern und Proxys und Verkehrsüberlastung in den Netzwerken. Der naheliegende Ansatz, die Pushverteilung mit der Anzahl von Subscribern zu skalieren, besteht aus der Verwendung von Multicast-Technologie. Bei diesem Ansatz (P. Rodriguez und E. W. Briesack, „Continuous Multicast Push of Web Documents over the Internet", IEEE Network Magazine, Band 12, Nr. 2, S. 18–31, 1998), wird ein Dokument fortlaufend innerhalb einer Multicast-Gruppe fortlaufen zuverlässig gemulticastet. Eine Multicast-Gruppe ist für ein gegebenes Dokument definiert und Subscriber verbinden die Multicast-Gruppe des Web-Dokuments nach Bedarf, um den Empfang von Updates zu dem Dokument zu beginnen. Eine Multicast-Gruppe besteht aus einem Satz von Gruppenelementen, die Information enthalten sollten, die zu der Gruppe von einer oder mehreren Quellen der Multicast-Gruppe geschickt werden. Der Hauptnachteil dieses besonderen Ansatzes zur Pushverteilung sind:
    • – Der Anteil des Internets, wo Subscriber angeordnet sind, müssen Multicast-Routing-Verteilung unterstützen.
    • – Eine Multicast-Adresse und -Gruppe muss für jedes Dokument verwendet werden, das zu den Subscribern geschoben werden soll, was schwierig zu handhaben wird, wenn die Anzahl von so verschiedenen Dokumenten zunimmt.
  • Ferner haben Rodriguez, Biersack und Ross (P. Rodriguez, E. W. Biersack und K. W. Ross, „Improving the WWW: Caching or Multicast?", Institut EURECOM 2229, Route Computer Networks and ISDN Systems, S. 1–17, 30. März 1998) haben gezeigt, dass das Multicasten von Webdokumenten eine attraktive Alternative zu hierarchischem Web-Caching nur dann ist, wenn die zu verschiedenen Dokumente sehr populär sind, da eine Caching-Verteilung weniger Latenz hervorruft.
  • Kenner und Karush (B. Kenner und A. Karush, „System and Method for Optimized Storage and Retrieval of Data an a Distributed Computer Network", U.S. Patent Nr. 6,003,030 , 14. Dezember 1999) schlagen eine Methode vor, um die Auslieferung von Informationsobjekten zur Endbenutzern zu begünstigen. Bei dieser Methode wird die Endbenutzer-Site, zusätzlich zum Webbrowser, mit spezieller Software ausgestattet. Diese Software besteht auf einer Konfigurations-Utility und einem Client-Programm. Die Konfigurations-Utility wird dazu benutzt, um eine Auslieferungs-Site-Datei herunterzuladen, die eine Liste von Auslieferungs-Sites spezifiziert (Web-Caches oder ursprüngliche Webserver), von dem die Informationsobjekte abgefragt werden können, sowie eine Anzahl von Tests, die laufen können, um zu bestimmen, welche Auslieferungs-Site kontaktiert werden soll. Die Einschränkungen zu diesem Ansatz beruhen auf der Tatsache, dass er für die Endbenutzer-Sites nicht transparent ist. Insbesondere muss die Endbenutzer-Site zusätzliche Software laufen lassen; es müssen Leistungstests von der Endbenutzer-Site her an einer oder mehreren Auslieferungs-Sites durchgeführt werden, um zu entscheiden, welche Site benutzt werden muss; und wenn an den Auslieferungs-Sites Änderungen auftreten, muss eine neue Version der Auslieferungsdatei von der Endbenutzer-Site abgefragt werden, oder es müssen neue Leistungstests durchgeführt werden.
  • Ein anderer Ansatz dazu, das Auswählen von Servern in einem Computer-Netzwerk zu unterstützen (Z. Fei, S. Bhattacharjes, E. W. Zegura und M. H. Ammar, „A Novel Server Selection Technique for Improving The Response Time of a Replicated Service", Proc. IEEE Infocom 98, März 1998, S. 783–791) besteht aus einem Rundsender-Server, der Information lädt, nachdem ein bestimmter Lastschwellenwert oder eine Zeitdauer überschritten ist. Die Einschränkung dieses Ansatzes ist, dass, wie bei den Topologie-Rundsende-Protokollen, die zum Routen im Computernetzwerken verwendet werden, das Schema eine wesentliche Überlastung hervorruft, wenn die Anzahl der Server zunimmt.
  • Ein anderer jüngerer Ansatz, Clients zu Host-Sites mit angeforderten Informationsobjekten oder Diensten umzuleiten, ist der Replica-Routing-Ansatz, vorgeschlagen von Sightpath, Inc. (D. K. Gifford, „Replica Routing", U.S.-Patent, 18. April 2000). Gemäß dem Replica-Routing-Ansatz wird ein Informationsobjekt oder Dienst in einer Anzahl von Replica-Servern repliziert. Das Replica-Routing-System leitet eine Clientanfrage nach dem Informationsobjekt oder Dienst zu einer „benachbarten" Replica des Objekts oder Dienstes um. In einem Ansatz kennen alle Replica-Router die Replica-Hinweise von jedem der Replica-Server in dem System, die Information über ihren Ort und Beobachtungen über die örtliche Internetzwerk-Topologie und Leistungsfähigkeit zusammenfassen. Bei Verwendung dieser Überflutung von Hinweisen entscheidet ein Replica-Router, welcher Replica-Server irgendeinem Client benachbart erscheint. Wenn jedoch jeder Replica-Router die Hinweise von jedem anderen Replica-Server empfangen muss, wird dies inpraktikabel, wenn die Anzahl der Replica-Server und der Replica-Router zunimmt.
  • Zur Überwindung dieses Problems werden Replica-Router zu einer Hierarchie organisiert, und Replica-Hinweise werden nur auf einem Teil des Wegs bis zu dieser Router-Hierarchie fortgeleitet. Eine kleine Anforderung wird zur Wurzel der Hierarchie geleitet, und von dort wird sie die Hierarchie nach unten weitergeleitet, bis sie einen Replica-Router mit ausreichend Kenntnis über die Internetzwerk-Örtlichkeit der Replica erreicht, um eine informierte Umleitentscheidung zu treffen. Dieser Ansatz hat ähnliche Einschränkungen in der Leistungsfähigkeit und Skalierung wie die oben zusammengefassten herkömmlichen Ansätze, basierend auf Hierarchien von Web-Caches, Überflutung von Informationen zwischen Caches oder Servern und Weiterleitung von Anforderungen über mehrere Sprünge.
  • Die PCT-Anmeldung Nr. WO 99/40514 offenbart einen Weg für Server in einem Computernetzwerk, um ihre Verarbeitung von Anfragen nach gewählten Ressourcen abzuleiten, indem ein anderer Server (ein „Wiederholer") bestimmt wird, um diese Anforderungen zu verarbeiten. Die Auswahl des Wiederholers kann dynamisch erfolgen, basierend auf Information über mögliche Wiederholungen.
  • Ein Artikel mit dem Titel „Routing Information Protocol" von C. Hendrick, Network Working Group, Juni 1998 (1998–06) (XP002233127) beschreibt ein existierendes Protokoll zum Austausch von Routing-Information zwischen den Gateways und anderen Hosts in der Internetgemeinschaft. Das Routing-Protokoll, das in diesem Artikel offenbart ist, beruht auf dem Bellman-Ford-(oder Distanzvektor-)Algorithmus.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Kommunikationsprotokoll angegeben, wie es in Anspruch 1 der beigefügten Ansprüche aufgeführt wird.
  • Die vorliegende Erfindung gibt ein Verfahren und ein System zum Bestimmen an, welches einer Anzahl günstiger Informationsobjekt-Depots einen Client bedienen sollte, wobei das Informationsobjekt-Depot das vom Client angeforderte Informationsobjekt über den Dienst hält und das Informationsobjekt oder den Dienst zu dem Informationsobjekt-Depot bringt, das den Client bedienen soll. Indem man das Informationsobjekt oder den Dienst, der vom Client angefordert wird, zu dem Informationsobjekt bringt, von dem bestimmt worden dass es die Client-Anfrage bedienen sollte, beinhaltet die Anweisung, dass ein Informationsobjekt-Depot das Informationsobjekt oder den Dienst, der vom Client angefordert wurde, von dem Informationsobjekt-Depot abzufragen, das das Informationsobjekt oder den Dienst tatsächlich enthält. Danach kontaktiert, bei Erhalt einer Anweisung, dies zu tun, das Informationsobjekt-Depot, von dem bestimmt wurde, dass es die Client-Anforderung bedienen soll, das Informationsobjekt-Depot, das das Informationsobjekt oder den Dienst, der vom Client angefordert wurde, tatsächlich enthält, direkt, um das Informationsobjekt oder den Dienst anzufordern.
  • In einer Ausführung wird eine Adresse eines Informationsobjekt-Depots, das eine Client-Anforderung nach einem Informationsobjekt bedienen sollte, in Antwort auf eine Anfrage danach zurückgeführt. Die Adresse des Informationsobjekt-Depots, die rückgeführt ist, wird gemäß spezifizierten Performanzgrößen unabhängig davon ausgewählt, ob das Informationsobjekt-Depot eine lokale Kopie des Informationsobjekts enthält, das die Client-Anforderung ist. In einigen Fällen wird die Adresse des Informationsobjekt-Depots ferner gemäß einer Adresse des Clients ausgewählt, der die Client-Anfrage macht. Ferner wird die Adresse des Informationsobjekt-Depots aus einer Anzahl von Adressen von Informationsobjekt-Depots ausgewählt.
  • Die spezifizierten Performanzgrößen können eine oder mehrere von durchschnittlicher Verzögerung von dem Informationsobjekt-Depot zu dem Client, durchschnittlicher Prozessverzögerungen an dem Informationsobjekt-Depot, Zuverlässigkeit eines Wegs von dem Informationsobjekt-Depot zum Client, verfügbarer Bandbreite in dem Weg und Last an dem Informationsobjekt-Depot beinhalten. In einigen Fällen kann das Informationsobjekt-Depot angewiesen werden, um eine Kopie des Informationsojekts zu erhalten, nachdem die Adresse des Informationsobjekt-Depots in Antwort auf die Anfrage danach zurückgekehrt ist.
  • Zusätzlich kann eine Adresse eines Informationsobjekt-Depots, das eine lokale Kopie des in einer Client-Anfrage spezifizierten Objekts enthält, zu dem Informationsobjekt-Depot zurückgeführt werden, das zur Bedienung der Clients-Anfrage ausgewählt ist. Die Auswahl des Informationsobjekt-Depots, das eine Kopie eines Objekts enthält, kann entsprechend einem oder mehreren der spezifizierten Performanzgrößen durchgeführt werden.
  • In einer weiteren Ausführung wird ein Kommunikationsprotokoll eine oder mehrere Meldungen, die zwischen Web-Routern über ein zuverlässiges Übertragungsprotokoll übertragen werden, das zur Zwischen-Web-Router-Kompensation verwendet wird. Diese Meldungen enthalten Information, die erlaubt, dass die Web-Router Mappings von Client-Adressen oder Adressbereichen für Informationsobjekt-Depot-Adressen basierend auf spezifizierten Performanzgrößen dynamisch aktualisiert, und können auch Mappings von Informationsobjekt-Identifizierern für Informationsobjekt-Depots enthalten, die lokale Kopien der Informationsobjekte enthalten. Diese Mappings können optimale Mappings von Client-Adressen oder Adressbereichen für die Informationsobjekt-Depot-Adressen sein, und/oder optimale Mappings von Informationsobjekt-Identifizierern für Informationsobjekt-Depot-Adressen. Die verwendeten spezifizierten Performanzgrößen können eine oder mehrere einer durchschnittlichen Verzögerung von einem Informationsobjekt-Depot zu einer gewählten Client-Adresse oder einem Adressbereich sein, eine durchschnittliche Prozessverzögerung in einem Informationsobjekt-Depot, Zuverlässigkeit eines Wegs von einem Informationsobjekt-Depot zu einem Client, verfügbare Bandbreiten in einem solchen Weg sowie Last an einem Informationsobjekt-Depot sein. Die Meldungen können aktualisierte Distanzen von den Informationsobjekt-Depot-Adressen zu Client-Adressen oder -Adressbereichen melden, wobei diese Distanz auf den spezifizierten Performanzgrößen beruhen; und/oder aktualisierte Distanzen von dem Informationsobjekt-Depot-Adressen zu dem Informationsobjekt-Depot-Hosting eines Informationsobjekts oder Dienstes, wobei diese Distanzen auf den spezifizierten Performanzgrößen beruhen.
  • Auch können die Meldungen ferner, für jede aktualisierte Distanz, eine zugeordnete Client-Adresse oder Adressbereich melden, und/oder eine zugeordnete Ankeradresse eines Web-Routers, der gemeinsam mit einem Informationsobjekt-Depot lokalisiert ist, der das Objekt der Meldung ist.
  • In einer noch anderen Ausführung wird eine Adresse eines ein Informationsobjekt suchenden Clients zu einer oder mehreren Adressen von Informationsobjekt-Depots gemappt, die eine erstbeste Distanz zu der Clients-Adresse haben, gemäß den spezifizierten Performanzgrößen, unabhängig davon, ob die Informationsobjekt-Depots eine lokale Kopie des vom Client nachgesuchten Informationsobjekt enthalten. Dieses Mapping kann auch ein Mapping der Adresse des Clients zu einer oder mehreren Adressen von umleitenden Web-Routern enthalten, die eine zweitbeste Distanz zu dem Client haben gemäß einigen oder allen der spezifizierten Performanzgrößen.
  • Die spezifizierten Performanzgrößen können eine oder mehrere einer durchschnittlichen Verzögerungen von den Informationsobjekt-Depots zu den Clients, eine durchschnittliche Prozessverzögerung an den Informationsobjekt-Depots, Zuverlässigkeit der Wege von den Informationsobjekt-Depots zu den Clients, verfügbare Bandbreite in solchen Wegen und Lasten an den Informationsobjekt-Depots beinhalten. Die Distanzinformation zwischen den Client-Adressen und den Informationsobjekt-Depots kann gemäß einem ersten Algorithmus des kürzesten Wegs berechnet werden, zum Beispiel gemäß Routing-Informationen, die von Internetzwerk-Routern bereitgestellt werden. Solche Routing-Information kann Inter-Domain- und Intra-Domain-Routing-Information enthalten.
  • Eine noch andere Ausführung enthält das Verifizieren von Mapping-Information zwischen Client-Adressen oder Adressbereichen und einem oder mehreren Informationsobjekt-Depots, und/oder Mapping-Information zwischen Informationsobjekt-Depot-Adressen, entsprechend davon, ob eine minimale Sprungdistanz oder eine andere Art von Distanz zwischen einem Web-Router, der die Mapping-Informationen enthält, und einem Web-Router, von dem die Mapping-Information ursprünglich stammt, endlich ist oder nicht.
  • Die Mapping-Information kann dann für zumindest eine der Client-Adressen oder Adressbereiche und/oder für jeden bekannten Informationsobjekt-Identifizierer angewendet werden. Zusätzlich kann eines der Mapping aus zwei oder mehr gültiger Mappings für zumindest einen der Client-Adressen oder Adressbereich gemäß dem Typ der Service-Distanz, die dem Mapping zugeordnet ist, ausgewählt werden. Der Typ der Service-Distanz kann gemäß den durchschnittlichen Prozessverzögerungen an den Informationsobjekt-Depots bestimmt werden, durchschnittlichen Verzögerungen von den Informationsobjekt-Depots zu den Client-Adressen oder Adressbereichen, Zuverlässigkeit von Wegen zwischen Informationsobjekt-Depots und Client-Adressen oder Adressbereichen, verfügbarer Bandbreite in den Wegen und/oder Last an den Informationsobjekt-Depots. Im Falle von zwei oder mehr gleichartigen Service-Distanzen kann jene Mapping-Information verwendet werden, die von dem Web-Router herrührt, der die kleinste minimale Sprungdistanz zu dem Web-Router hat, der die Mapping-Information enthält.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird als Beispiel und nicht einschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht, worin sich gleiche Bezugszeichen auf ähnliche Elemente beziehen, und worin:
  • 1 stellt ein herkömmliches Internetzwerk dar, wie etwa das Internet.
  • 2 stellt ein Netzwerk dar, das eine virtuelle Topologie von Web-Routern aufweist, die gemäß einer Ausführung der vorliegenden Erfindung konfiguriert sind.
  • 3 stellt ein Beispiel von einer lokalen TOS-Distanz, die von Web-Routern zu Client-Adressbereichen bekannt ist, von ihren lokalen Web-Caches oder Inhalts-Servern gemäß einer Ausführung der vorliegenden Erfindung dar.
  • 4 stellt ein Beispiel der besten TOS-Distanzen dar, die Web-Routern für einen bestimmten Client erhalten werden.
  • 5a5d stellen ein Beispiel der vorliegenden Erfindung dar, wenn ein Web-Router ein WILD-Update von einem benachbarten Web-Router empfängt.
  • DETAILLIERTE BESCHREIBUNG
  • Hierin ist ein Schema offenbart, um das Auffinden der Caches und Server zu ermöglichen, die Informationsobjekte speichern, die über Computernetzwerke verteilt sind, welche in Hardware und/oder Software implementiert werden können. Insbesondere wird nun ein Verfahren und ein System zum Auffinden von Informationsobjekten und Servern, die Informationsobjekte speichern, die über Computernetzwerke verteilt sind, beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Details aufgeführt, um ein gründliches Verständnis der vorliegenden Erfindung bereitzustellen. Jedoch versteht es sich für den normalen Fachkundigen, dass einige dieser spezifische Details nicht benutzt werden müssen, um die vorliegende Erfindung in die Praxis umzusetzen und/oder das Äquivalente davon verwendet werden können. In anderen Fällen sind an sich bekannte Strukturen und Komponenten im Detail nicht gezeigt worden, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden. Obwohl in Bezug auf bestimmte dargestellte Ausführungen diskutiert, wird bei Durchsicht dieser Beschreibung der normale Fachkundige erkennen, dass das vorliegende System und die vorliegenden Verfahren in einer Vielzahl von Systemen Anwendung finden können, und die dargestellten Ausführungen daher nur als beispielhaft betrachtet werden sollten und nicht so, dass sie den Umfang einschränken.
  • Einige Teile der folgenden Beschreibung sind als Algorithmen und symbolische Darstellungen von Operationen und Daten innerhalb eines Computerspeichers (zum Beispiel in einem Pseudo-Code) dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die für den Fachkundigen in der Computerwissenschaft verwendet werden, um die Substanz ihrer Arbeit anderen Fachkundigen besonders effizient zu übermitteln. Ein Algorithmus ist hier allgemein als eine in sich konsistente Sequenz von Schritten zu verstehen, die zu einem gewünschten Ergebnis führen. Die Schritte sind jene, die physikalische Manipulationen physikalischer Größen erfordern. Gewöhnlich, obgleich nicht notwendigerweise, nehmen diese Größen die Form elektrischer oder magnetischer Signale ein, die gespeichert, übermittelt, kombiniert, verglichen oder anderweitig manipuliert werden können. Es hat sich derzeit als praktisch erwiesen, grundsätzlich aus Gründen des allgemeinen Gebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Schriftzeichen, Begriffe, Zahlen oder dergleichen zu bezeichnen. Man sollte sich jedoch daran erinnern, dass alle diese und ähnliche Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und sie lediglich praktische Kennungen sind, die auf diese Größen angewendet werden. Solange nicht anderweitig angegeben, versteht es sich, dass in der gesamten Beschreibung der vorliegenden Erfindung der Gebrauch von Begriffen wie etwa „Verarbeiten", „Berechnen", „Errechnen", „Bestimmen", „Darstellen" oder dergleichen sich auf die Wirkung und die Prozesse eines Computersystems bezieht oder eine ähnliche elektronische Rechenvorrichtung, die Daten, die als physikalische (elektronische) Größen repräsentiert sind, innerhalb der Register des Computersystems und den Speichern, manipuliert und in andere Daten transformiert, die ähnlich als physikalische Größen in den Computersystemspeichern oder -registern oder anderen solchen Informationsspeicher-Übertragungs- oder Displayvorrichtungen repräsentiert sind.
  • Aus der obigen Beschreibung der herkömmlichen Technik sollte es sich verstehen, dass keines der herkömmlichen Schemata inkomplett skalierbarer Art und in einer Weise, die für die Clients vollständig transparent ist, vorsehen: (a) die beste Übereinstimmung zwischen den Adressen eines Clients und dem Satz von Web-Caches, Hosting-Server oder Inhalts-Servern, die den Client mit vom Client angeforderten Objekten beliefern können; und (b) die beste Übereinstimmung zwischen einem Web-Cache oder Hosting-Server, der einem Client dienen sollte und dem Web-Cache, Hosting-Server oder Inhalts-Server, der gegenwärtig das Informationsobjekt oder den Dienst, der vom Client angefordert wird, wählt. Die vorliegende Erfindung strebt danach, diese Nachteile des Stands der Technik zu überwinden.
  • Gemäß einer Ausführung der vorliegenden Erfindung wird eine Sammlung von einem oder mehreren „Web-Routern" benutzt, um eine Anfrage nach einem Objekt auf ein Web-Cache oder einen Inhalts-Server zu beziehen, der in der Lage ist, das angeforderte Objekt zu dem Zielclient zu übertragen, während ein gegebener Satz von Performanzgrößen erfüllt wird. Hierin wird der Begriff Web-Router so benutzt, dass er sich auf eine Ausführung (die in Hardware und/oder Software zur Ausführung durch ein Computersystem implementiert sein kann) eines Computersystems bezieht, das gemäß den Methoden (nachfolgend beschrieben) konfiguriert ist, die erforderlich sind, um die Adresse eines Clients mit der Adresse eines Web-Caches zu mappen, das die angeforderten Informationsobjekte optimal zu dem Client liefern kann. Die Performanzgrößen, die von Web-Routern zum Auswählen der Sites (Web-Cache oder Inhalts-Server) verwendet wird, die die angeforderten Objekte zu den Clients liefern sollen, können Netzwerkverzögerungen, verfügbare Bandbreite, Zuverlässigkeit von Wegen von den gewählten Sites zu den Ziel-Sites, und Belastungen an den Web-Caches und Inhalts-Servern beinhalten. Das Verfahren, das zum Auswählen der besten Stelle verwendet wird, von der Informationsobjekte abgefragt werden sollte, ist für die Clients transparent, und das Computernetzwerk oder Internetzwerk, über das das System arbeitet, braucht eine Multicast-Lieferung zu den Endbenutzer-Sites nicht zu unterstützen.
  • Ein System gemäß einer Ausführung der vorliegenden Erfindung enthält einen oder mehrere Client-Knoten, einen Satz von einem oder mehreren Webservern, einen oder mehrere original-Inhalts-Servern, einen Satz von einem oder mehreren Web-Caches, Hosting-Server oder Proxy-Server, die Replika von Informationsobjekten speichern, sowie einen Satz von einem oder mehreren Web-Routern. Ein Web-Router kann gemeinsam mit einem Webserver, einem Web-Cache, einem Hosting-Server oder einem Original- Inhalt-Server angeordnet sein. Eine Topologie von Web-Routern ist derart definiert, dass ein gegebener Web-Router als seine benachbarten Web-Router einen Untersatz von allen Web-Routern in dem System hat. Ein Web-Router kommuniziert direkt mit seinem benachbarten Web-Router und bevorzugt nicht mit anderen Web-Routern.
  • In einer Ausführung der vorliegenden Erfindung wird ein Web-Router gemäß einem Schema kontaktiert, um das Auffinden der Caches und Server zu ermöglichen, die Informationsobjekte speichern, die über Computernetzwerke verteilt sind, welche in Hardware und/oder Software implementiert werden können, von einem Client, einem Webserver, einem Web-Cache oder einem anderen Servertyp mit einer Anfrage nach der Adresse eines oder mehrerer Web-Caches, die ein Client kontaktieren sollte, um ein Informationsobjekt zu erhalten.
  • In einer weiteren Ausführung der vorliegenden Erfindung implementieren Web-Router einen verteilten Algorithmus und führen ein Kommunikationsprotokoll aus, mit dem jeder Web-Router bestimmt: (a) die Adresse von einem oder mehreren Web-Caches, woraus Informationsobjekte von einem Client abgefragt werden können, während ein Satz von Type-of-Service (TOS)-Perfomanz-Parametern erfüllt ist, und (b) Adresse von einem oder mehreren Web-Caches, die Informationsobjekte speichern, von denen solche Objekte von anderen Web-Caches zu Service-Client-Anfragen nach solchen Informationsobjekten abgefragt werden können. Die verwendeten TOS-Parameter beinhalten – sind jedoch nicht beschränkt auf – die durchschnittliche Verzögerung in einem Cache oder Inhalts-Server zu dem Client, die durchschnittlichen Prozessverzögerungen an der Site, an der das Objekt abgefragt werden würde, die Zuverlässigkeit des Wegs von dieser Site zu dem Client und die verfügbare Bandbreite in diesem Weg. Der Wert der TOS-Parameter des Wegs von einem Server oder Web-Cache zu einem Client wird auch TOS-Distanz eines solchen Servers oder Web-Caches zu dem Client genannt. Dementsprechend hält ein gegebener Web-Router für jeden Adressbereich, der einem Satz potentieller Clients entspricht, die Adresse von einem oder mehreren Web-Caches, Proxys oder Inhalts-Servern, die die beste TOS-Distanz zu der Client-Adresse haben, und den Wert einer solchen TOS-Distanz.
  • 1 stellt ein Internetzwerk 100 dar. Die hierin beschriebenen Methoden und Systeme, die in Software und/oder Hardware implementiert werden können, ermöglichen das Auffinden entweder von Informationsobjekten oder der Caches und Server, die Informationsobjekte speichern, die über Computernetzwerke verteilt sind, wie etwa in dieser Darstellung das Internetzwerk 100. Ein Beispiel eines Internetzwerks 100 ist das Internet. Andere Beispiele beinhalten Enterprise-Netzwerke, örtliche Netzwerke, Weitbereichs-Netzwerke, städtische Netzwerke und Netzwerke solcher Netzwerke. Für den Fall, wo das Internetzwerk 100 Internet ist, werden Clients 105 allgemein durch eine Serie von Netzwerken, die von verschiedenen Providern betrieben werden, auf Inhalt zugreifen, der an entfernten Servern 150 angeordnet ist. Zum Beispiel können Clients 105 Konten mit örtlichen Internet-Service-Providern (ISPs) 110 haben, die dem Clients einen Verbindung mit dem Internet ermöglichen, unter Verwendung konventioneller Hochwähl- oder einer einer Vielzahl von Hochgeschwindigkeitsverbindungen (zum Beispiel DSL-Verbindungen, Kabelverbindungen, Hybride, die Satelliten und Hochwählverbindungen beinhalten, etc.). ISPs 110 können wiederum direkte Verbindungen zum Internet vorsehen oder können, wie gezeigt, auf anderen Service-Providern 120, 130, 140 beruhen, um Verbindungen durch einen Satz von Hochgeschwindigkeitsverbindungen zwischen Computer-Ressourcen vorzusehen, was als Rückgrat 150 bekannt ist. Die Verbindung eines Hosts (zum Beispiel eines Servers 150 kann somit eine Verbindung durch Netzwerke beinhalten, die von einer Vielzahl von Service-Providern betrieben werden.
  • 2 stellt ein virtuelles Netzwerk von Web-Routern 201, 202, 205, 210, 220, 230, 240 und 250 dar, die oben auf der physikalischen Topologie eines Internetzwerks wie etwa das Internet definiert sind, bestehend aus Routern, die über Punkt-zu-Punkt-Links oder Netzwerke miteinander verbunden sind. Das virtuelle Netzwerk von Web-Routern enthält Punkt-zu-Punkt-Links, die zwischen den Web-Routern konfiguriert sind, um den Links, die zwischen einem Web-Router und einem oder mehreren Web-Caches (zum Beispiel dem Web-Cache 310) und Inhalts-Servern konfiguriert sind. Solche Links können mittels Tunneln zwischen Web-Routern und zwischen Web-Caches implementiert werden. Der hierin benutzte Begriff „Inhalts-Server" bedeutet die Angabe eines Servers, der als der Ursprungspunkt für ein Stück Inhalt (zum Beispiel Text, Video, Audio etc.) dient. Solcher Inhalt kann anschließend von einem oder mehreren Web-Caches repliziert werden. Wie in der Figur gezeigt, ist ein Client 101 nicht notwendigerweise Teil des virtuellen Netzwerks von Web-Routern.
  • Wie oben angegeben, ist ein Web-Router eine Ausführung der Methoden, die hierin beschrieben sind, zum Auffinden von Informationsobjekten und Objektablagen im Computernetzwerk. Die Funktionalität eines Web-Routers kann als Teil eines Web-Caches implementiert sein, als Teil eines Routers oder als separate Einheit. Um diese Beschreibung zu vereinfachen, wird hierin der Web-Router als separate Einheit von einem Web-Cache oder einem Router beschrieben und behandelt.
  • Ein Web-Router kann mit einem Webserver einem Web-Cache oder einem Ursprung-Inhalts-Server gemeinsam angeordnet sein. In einer Ausführung der vorliegenden Erfindung kann ein Web-Router in Software implementiert sein, die von einem Mehrzweck-(oder Sonderzweck-)Computerprozessor auszuführen ist, oder kann als Teil der Software eines Routers oder Web-Caches implementiert sein. In einer anderen Ausführung der vorliegenden Erfindung kann ein Teil oder die gesamte Funktionalität des Web-Routers in Hardware implementiert sein.
  • In einer Ausführung der vorliegenden Erfindung wird eine Ansammlung von einem oder mehreren Web-Routern in Bezug auf die Anfrage nach einem Objekt zu einem Web-Cache oder Inhalts-Server benutzt, der in der Lage ist, das angeforderte Objekt zu dem Ziel-Client zu überführen, während ein gegebener Satz von TOS-Parametern erfüllt wird, wie etwa Netzwerk-Verzögerungen, verfügbare Bandbreite, Zuverlässigkeit von Wegen von den gewesenen Orten zu den Ziel-Clients, und Belastungen an den Web-Caches und Inhalts-Servern. Die Methode, die zum Auswählen der besten Sites verwendet wird, von der Informationsobjekte durch User-Sites (Clients) abgefragt werden werden sollten, ist für die User-Sites transparent, und das Computernetzwerk oder Internetzwerk, über das das System hinweg arbeitet, braucht eine Multicast-Ausgabe zu Endbenutzer-Sites nicht zu unterstützen.
  • Um Kommunikations- und Prozessüberlastung in Web-Routern zu reduzieren, ist eine Topologie von Web-Routern derart definiert, dass ein gegebener Web-Router als seinem benachbarten Web-Router einen Teilsatz aller Web-Router in dem System aufweist, wobei sich der Begriff System auf alle oder einen teil des virtuellen Netzwerks für die oben diskutierten Web-Router bezieht. Ein Web-Router kann seinem Satz von benachbarten Web-Routern konfigurieren. Eine solche Konfiguration kann eine Tabelle von benachbarten Web-Routern sein, die durch einen Netzwerk-Service-Provider definiert und/oder dynamisch aktualisiert wird. In einer anderen Ausführung der vorliegenden Erfindung wählt ein Web-Router den Satz von benachbarten Web-Routern, mit dem, der kommunizieren sollte, aus allen Web-Routern in dem System dynamisch aus. Ein Web-Router kommuniziert bevorzugt nur mit seinen benachbarten Web-Router und verwendet für diesen Zweck das Web-Information-Locator-by-Distance (WILD)-Protokoll. Das WILD-Protokoll ist in der mitanhängigen US-Anmeldung Nr. 60/200401 des gemeinsamen Anmelders offenbart, mit dem Titel „System and Method for Discovering Optimal Information Objects Repositories in Computer Networks (WILD Protocol)", eingereicht am 28. April 2000 von J. J. Garcia-Luna-Aceves und Bradley R. Smith, deren vollständige Offenbarung hierdurch unter Bezugnahme aufgenommen wird.
  • In einer Ausführung der vorliegenden Erfindung läuft WILD oben auf dem Transmission Control Protocol (TCP) weitgehend genauso wie das Border Gateway Protocol (BGP); in diesem Fall existiert eine TCP-Verbindung zwischen einem Web-Router und jedem seiner benachbarten Web-Router. In einer anderen Ausführung der vorliegenden Erfindung kann WILD oben auf dem TCP-Santa-Cruz-Protokoll laufen (C. Parsa und J. J. Garcia-Luna-Aceves, „Improving TCP Congestion Control Over Internets with Heterogeneous Transmission Media", Proc. IEEE ICNP 99), bestehend aus einer TCP-Option, die die verfügbare Bandbreite zwischen Web-Routern effizienter nutzt. In einer noch anderen Ausführung der vorliegenden Erfindung läuft weit oben auf einem zuverlässigen Übertragungsprotokoll, das wiederum oben auf dem User Datagram Protocol (UDP) läuft. Andere Ausführungen der vorliegenden Erfindung können auf alternativen Protokollen beruhen, um für zuverlässige Übertragungen zwischen Web-Routern zu sorgen.
  • In einem Beispiel des Betriebs eines Systems, das eine Ausführung der vorliegenden Erfindung verwendet, kontaktiert ein Client zuerst einen Webserver, der eine Web-Page anfordert, worin ein Satz von Informationsobjekten unter ihren URLs referenziert sind. Der Webserver kann wiederum einen Web-Router kontaktieren, um die Sites zu bestimmen (zum Beispiel einen oder mehrere Web-Caches oder einen Ursprungsinhalt-Server, von denen jeder allgemein als Informationsobjekt-Depot bezeichnet werden kann), wovon jedes solches Informationsobjekt abgefragt werden sollte. In Abhängigkeit von der Implementierung kann ein Web-Router von einem Client, einem Web-Cache, einem Inhalts-Server oder einem anderen Server-Typ kontaktiert werden (zum Beispiel Webserver 401 oder 402), der nach der Adresse eines Web-Caches, Satz von Web-Caches oder eines Inhalts-Servers fragt, den ein Client kontaktieren sollte, zu dem Zweck, Informationsobjekte abzufragen. Im vorliegenden Beispiel beliefert der Webserver den Web-Router mit der Adresse des Clients, der den Satz von Objekten anfordert, eine URL für jedes Informationsobjekt, das von dem Client angefordert wird, und einen Satz von TOS-Parametern, mit denen die Anfrage dem Client übermittelt werden soll. Es wird angenommen, dass das Fehlen von TOS-Parametern eine Service-Anfrage mit minimaler Verzögerung implementiert.
  • Der Web-Router mappt jedes URL, das von dem Webserver geliefert wird, zu der Adresse eines Web-Caches oder dem Inhalts-Server, der das zugeordnete Informationsobjekt zu dem Client liefern kann, optimal entsprechend den spezifizierten TOS-Parametern. Dieses Mapping von URLs zu Adressen von Web-Caches oder Inhalts-Servern wird durch Zusammenarbeit zwischen den Web-Routern durch WILD erreicht. Dementsprechend kann der von dem Webserver kontaktiert Web-Router die angeforderten Adressen unmittelbar nach Bearbeitung der Anfrage zurücksenden. Der Webserver wiederum sendet eine Webpage zu dem anfragenden Client zurück, der ein URL für jedes Informationsobjekt enthält, das zu dem Web-Cache oder Inhalts-Server zeigt, der das Informationsobjekt zu dem Client liefern kann, während die TOS-Parameter erfüllt werden, die in der Anfrage des Clients explizit oder implizit spezifiziert sind. Der Client ist dann in der Lage, die in der Web-Site referenzierten Informationsobjekte direkt von einem Web-Cache, Proxy- oder Inhalts-Server abzufragen, der den besten TOS-Weg zum Client hat. In anderen Ausführungen kann der Web-Router eine Anfrage von einem Client, einem Cache, einem Webserver, einem anderen Web-Router, einem Namen-Server oder einem anderen Servertyp empfangen, und die Adresse des Clients und die TOS-Performanz-Parameter verwenden, die in der Anfrage spezifiziert sind, um die Adresse eines Web-Caches, eines Satzes von Web-Caches, eines Inhalts-Servers oder Web-Routers zu erhalten (das heißt ein Informationsobjekt-Depot), das dem Client optimal entsprechend den spezifizierten TOS-Performanz-Parametern bedienen sollte.
  • Wenn in einer Ausführung der Web-Router die Adresse des Clients, der den Ort der Informationsobjekte anfragt, zu Adressen von Web-Caches mappt, die gegenwärtig diese Objekte nicht speichern, kann der Web-Router die entsprechenden Web-Caches anfragen, um eine Kopie der angeforderten Objekte zu erhalten, unmittelbar nachdem er dem anfordernden Webserver Adressen eines solchen Web-Caches oder Proxys mitteilt. In einer anderen Ausführung versucht ein Web-Cache oder Proxy, ein angefordertes Objekt von einem anderen Web-Cache oder einem Inhalts-Server nur dann abzufragen, nachdem er von einem Client kontaktiert wurde, und bestimmt, dass eine Kopie des angeforderten Informationsobjekts örtlich nicht zur Verfügung steht. In beiden Fällen beliefert der Web-Router das Web-Cache, das eine Client-Anfrage bedient, mit der Adresse des „nächsten" Web-Caches, das das vom Client angeforderte Informationsobjekt speichert. Daher kommuniziert das Web-Cache, das das Informationsobjekt benötigt, direkt mit dem Web-Cache, das angeforderte Informationsobjekt speichert, ohne durch irgendwelche zwischenliegenden Web-Caches hindurchgehen zu müssen und ohne den Inhalt kennen zu müssen, der in allen anderen Web-Caches gespeichert ist, wie dies im Stand der Technik üblich ist.
  • Aufbauend auf dem oben Stehenden ist der Web-Router verantwortlich für die Bestimmung, welches einer Anzahl verfügbarer Informationsobjekt-Depots einen Client bedienen sollte (das heißt, einen Client oder eine Webserver-Anfrage nach einem Informationsobjekt oder Dienst). Der Web-Router bestimmt auch das Informationsobjekt-Depot, das das so angeforderte Informationsobjekt oder den Dienst aktuell hält, und initiiert den Prozess, um das Informationsobjekt oder den Dienst zu dem Informationsobjekt-Depot zu überbringen, das den Client bedienen sollte. Das Überbringen des Informationsobjekts oder Dienstes, das von dem Clients angefordert wurde, zu dem Informationsobjekt-Depot, von dem bestimmt worden ist, dass es die Client-Anfrage bedienen sollte, wird in einer Ausführung dadurch erreicht, dass ein Informationsobjekt-Depot, das die Anfrage bedienen soll, angewiesen wird, das Informationsobjekt oder den Dienst, der von dem Client angefragt wird, von dem Informationsobjekt-Depot abzufragen, das aktuell das Informationsobjekt oder den Dienst enthält. Danach kontaktiert, bei Anfrage einer Anweisung, es zu tun, das Informationsobjekt-Depot, von dem bestimmt worden ist, dass es die Clientsanfrage bedienen soll, das Informationsobjekt-Depot, das das Informationsobjekt oder den Dienst, der vom Client angefragt wurde, aktuell enthält, direkt zur Anforderung des Informationsobjekts oder Dienstes.
  • In einer weiteren Ausführung wird oder kann einer der folgenden vier Mechanismen oder eine Kombination einiger der folgenden vier Mechanismen dazu benutzt werden, um das beste Web-Cache oder den Inhalts-Server oder den Satz von Web-Caches, die eine Anfrage von einem Client bedienen sollten, zu kommunizieren:
    • (1) direkte Cache-Auswahl;
    • (2) Umleitungs-Cache-Auswahl;
    • (3) entfernte DNS-Cache-Auswahl; und
    • (4) Client-DNS-Cache-Auswahl.
  • Diese Ansätze sind in der mitanhängigen US-Anmeldung Nr. 60/2004404 des gleichen Anmelders offenbart, mit dem Titel „System and Method for Using a Mapping Between Client Addresses and Addresses of Caches to Support Content Delivery", eingereicht am 28. April 2000 von J. J. Garcia-Luna-Aceves und Bradley R. Smith, deren komplette Offenbarung hierdurch unter Bezugnahme aufgenommen wird.
  • Jene Web-Router, die zum Umleiten von Clients zu geeigneten Web-Caches oder Inhalts-Servern verwendet werden, müssen in einer sehr fehlertoleranten Weise implementiert sein und müssen über das gesamte System gut bekannt sein. Dementsprechend werden in einer Ausführung der vorliegenden Erfindung nicht alle Web-Router in einem System zur Client-Umleitung verwendet, um die Kosten von Web-Routern und die Kommunikationsüberlastung zu reduzieren, die mit der Kenntnis über das Vorhandensein von Web-Routern einhergeht, die in der Lage sind, Clients zu Web-Caches und Inhalts-Servern umzuleiten. In einem solchen System ist ein Satz umleitender Web-Router definiert; der Satz umleitender Web-Router ist allen Web-Routern des Systems bekannt, während ein Web-Router, der nicht als umleitender Web-Router dient, nicht allen Web-Routern des Systems bekannt zu sein braucht.
  • Allgemein führen Web-Router WILD aus, um die Adresse eines Clients zum Mappen in (a) eine oder mehrere Adressen von Web-Caches oder des Inhalts-Servers, der die beste TOS-Distanz zu der Client-Adresse aufweist, und (b) eine oder mehrere Adressen von umleitenden Web-Routern, die die beste TOS-Distanz zu der Client-Adresse haben. Dieses Mapping erfolgt unabhängig davon, ob die Web-Caches oder Inhalts-Server eine lokale Kopie eines der vom Client angeforderten Informationsobjekte enthält. Web-Router führen WILD auch dazu aus, um den Identifizierer eines Informationsobjekts zu Mappen in: (a) eine oder mehrere Adressen von Web-Caches oder Inhalts-Servers, der das Informationsobjekt speichert und den Web-Routern gemäß TOS-Parametern am nächsten ist. Ein gegebener Web-Router hält somit:
    • • Für jede Adresse und/oder jeden Adressbereich entsprechend einem Satz potentieller Clients, die Adresse eines Web-Caches, Proxy, Inhalts-Servers und/oder umleitenden Web-Routers, der die beste TOS-Distanz zu der Client-Adresse hat, sowie den Wert einer solchen TOS-Distanz;
    • • Für jedes Informationsobjekt die Adresse eines Web-Caches, Proxys oder Inhalts-Servers, der die beste TOS-Distanz zu dem Web-Router hat.
  • In einer Ausführung der vorliegenden Erfindung beliefern die Internet-Router des Systems Web-Router mit Distanzen zu bekannten Zieladressen, die gemäß einer Anzahl von Netzwerk-Performanz-Parametern gemessen werden. Ein Web-Router, der gemeinsam mit einem Web-Cache oder Inhalts-Server lokalisiert ist, verwendet die von benachbarten Routern erhaltene Information und die Performanzgröße des Web-Caches oder Inhalts-Servers, um die TOS-Distanz von dem ko-lokalisierten Web-Cache oder Inhalts-Server zu jedem bekannten Zielort, der potentiellen Client-Adressen entspricht, herzuleiten. In einer Ausführung der vorliegenden Erfindung verwenden Web-Router Routing-Information, die vom Border Gateway Protocol (BGP) und einem der Intradomain-Routing-Protokolle (zum Beispiel USPF, EIGRP) geliefert werden, die in Routern laufen, die an den gleichen Ortsbereichsnetzwerken angeschlossen sind, wo sich die Web-Router befinden, um Distanzen zu Client-Adressbereichen herzuleiten.
  • Der spezifische Algorithmus, den ein Web-Router zum Berechnen der TOS-Distanz von jedem lokalen Web-Cache zu einem Client-Adressbereich ausführt, ist von Routing-Information abhängig, die der angeschlossene Router dem Web-Router zur Verfügung stellt. Jeder Router kann mit Interdomain- und Intradomain-Routing-Information beliefert werden, die zu allen genannten Client-Adressbereichen gehört; alternativ kann nur ein Teilsatz von Web-Routern Interdomain-Routing-Information direkt von einem oder mehreren Routern empfangen, die sich in dem gleichen Netzwerk wie der Web-Router befinden. In jedem Fall führt ein Web-Router einen Weg-Auswahl-Algorithmus aus, wie etwa den ersten Kürzester-Weg-Algorithmus von Dijkstra, um die örtliche TOS-Distanz von den angeschlossenen Web-Caches zu jedem Client-Adressbereich zu berechnen, wenn der Web-Router vollständige Intradomain- und Interdomain-Routing-Daten aufweist, oder zu jedem Client-Adressbereich in dem örtlichen autonomen System, wenn der Web-Router nur Intradomain-Routing-Daten aufweist. Ein Web-Router kann einen unterschiedlichen Weg-Auswahl-Algorithmus ausführen, um örtliche TOS-Distanzen zu Adressbereichen für jedes in dem System definierte TOS zu berechnen.
  • Unter Verwendung der gleichen virtuellen Topologie von Web-Routern, die in 2 eingeführt werden, stellt 3 ein Beispiel der örtlichen TOS-Distanz, die Web-Routern bekannt sind, zu Client-Adressbereichen von ihren Web-Caches oder Inhalts-Servern dar. In der Figur ist eine einzelne TOS-Distanz angegeben. Die in Klammern gesetzten Zahlen bezeichnen die TOS-Distanz von einem Web-Cache oder Inhalts-Server zu dem Client 101. Die gestrichelten Linien geben an, dass die örtliche TOS-Distanz zum Client 101, die an einem Web-Router gespeichert ist, der Belastung eines örtlichen Web-Caches oder Inhalts-Servers und der Verstopfung im Weg von dem Web-Cache oder Inhalts-Server zum Client 101 entspricht. Zum Beispiel ist die örtliche TOS-Distanz zum Client 101, die vom Web-Router 201 gespeichert ist, 20, und entspricht der TOS-Distanz von dem Web-Cache 301 zum Client 101.
  • Indem nun die örtlichen TOS-Distanzen von den angeschlossenen Web-Caches zu allen oder einem Teilsatz von Client-Adressbereichen berechnet ist, verwendet ein Web-Router diese Information zu Berechnen der besten Übereinstimmung zwischen einem Client-Adressbereich und dem Satz von Web-Caches, die dem Clients-Adressbereich bedienen sollten, weil sie die beste TOS-Distanz zu dem Client haben. Um diesen Prozess zu erreichen, hält, für jede bekannte Zieladresse und für jedes in dem System definierte TOS, ein Web-Router einen Satz von einem oder mehreren Adressen der Web-Caches oder Inhalts-Server, die besten TOS-Distanzen zu der Ziel-Adresse haben, sowie den Wert dieser Distanzen, sowie auch die Adresse von einem oder mehreren Web-Routern, die dazu benutzt werden können, Anfragen von Clients in den Adressbereich umzuleiten und dem Wert der Distanzen von den umleitenden Web-Routern zu dem Client-Adressbereich.
  • Der spezifische Algorithmus, den ein Web-Router ausführt, um die Distanz zu dem nächsten Web-Cache zu berechnen, das eine Kopie eines Informationsobjekts speichert, ist von der Routing-Information abhängig, die die Web-Router nutzen, um Distanzen zu anderen Web-Routern zu berechnen, die mit den Informationsobjekten speichernden Web-Caches gemeinsam lokalisiert sind. Ein Web-Router wird aus örtlichen Web-Caches über die Belastung der Web-Caches und die in den Web-Caches gespeicherten Objekte informiert. Daher weiß ein Web-Router, dass seine Distanz zu in örtlichen Web-Caches gespeicherten Informationsobjekten die Latenz ist, die beim Erhalt dieser Objekte von den örtlichen Web-Caches auftritt, was eine direkte Funktion der Belastung in diesen Web-Caches ist. Wenn man annimmt, dass ein Web-Router einen Routing-Algorithmus ausführt, der es dem Web-Router ermöglicht, seine eigene Distanz zu anderen Web-Routern zu erkennen, wählt ein Web-Router das nächste Web-Cache, das eine Kopie eines Informationsobjekts speichert, durch Vergleich der örtlichen Distanz zu dem Informationsobjekt (dies ist die Latenz, die bei einem örtlichen Web-Cache auftritt, wenn das Objekt lokal gespeichert ist, oder unendlich, wenn das Objekt nicht lokal gespeichert ist) mit den gemeldeten Übereinstimmungen von Objekt-Identifizieren zu Web-Caches, denen von ihren benachbarten Web-Routern berichtet wird. Die Objekt-Cache-Übereinstimmungsmeldung für ein gegebenes Informationsobjekt spezifiziert den Informationsobjekt-Identifzierer, das Web-Cache, wo das Informationsobjekt gespeichert ist, den Web-Router, der zu diesem Web-Cache örtlich ist, und die Distanz zu dem Web-Cache. Die in den Objekt-Cache-Übereinstimmungsbericht spezifizierte Distanz enthält explizit oder implizit die Distanz von dem benachbarten Web-Router zu dem im Bericht spezifizierten Web-Cache, plus der Belastung des in dem Bericht spezifizierten Web-Caches. Der Web-Router wählt dann eine Passung des Informationsobjekts zu dem Web-Cache, das die minimale Distanz zu dem das Objekt speichernden Web-Cache produziert.
  • Die Gültigkeit der Information, die für Passungen zwischen Clients und Web-Caches und Informationsobjekten und Web-Caches kommuniziert wird, kann auf verschiedene Weisen überprüft werden. In einer bevorzugten Ausführung der vorliegenden Erfindung wird die Gültigkeit des Mappings zwischen einem Client-Adressbereich und den Adressen von Web-Caches und umlenkenden Web-Routern, oder des Mappings zwischen dem Informationsobjekt-Identifizierer und einem objektspeichernden Web-Cache unter Verwendung der Adressen und minimalen Sprungdistanzen zu den Web-Routern, von denen die Information herrührt, etabliert. Ein Web-Router, der ein Mapping zwischen einem Client-Adressbereich und den Adressen von einem oder mehreren Web-Caches und umliegenden Web-Routern empfängt, akzeptiert die Mapping-Information als gültig, wenn die minimale Sprungdistanz zu dem Web-Router, von dem die Mapping-Information gestammt hat, endlich ist. Ein Web-Router, der zwei gültige Mappings für den gleichen Client-Adressbereich empfängt, verwendet das Mapping, das die besten TOS-Distanzen meldet, und im Falle von Verknüpfungen in TOS-Distanzen, verwendet der Web-Router das Mapping, das von jenem Web-Router stammt, zu dem er die kleinste minimale Sprungdistanz hat. Der Web-Router, von dem die Mapping-Information für einen gegebenen Client-Adressbereich oder ein Informationsobjekt stammt, wird Anker des Mappings genannt, und es soll das Mapping für den Web-Router, das die Information enthält, verankern.
  • Der Web-Router meldet seinen benachbarten Web-Routern Updates, die entweder an der Adresse des oder der Web-Caches, umleitender Web-Router oder zugeordnet zu dessen TOS-Distanz für Vieladressbereiche von Clients gemacht wurden. Der Web-Router meldet auch seinen benachbarten Web-Routern Updates, die entweder an Adressen von Web-Caches oder der zugeordneten besten TOS-Distanz für Informationsobjekt-Identifizierer gemacht wurde.
  • Für jede bekannte Zieladresse und für jedes im System definierte TOS hält der Web-Router auch die Information, die jedem benachbarten Web-Router gemeldet werden: (a) die Adresse des Web-Caches-Inhalts-Servers oder Satzes von Web-Caches und die beste TOS-Distanz von jedem solchen Web-Cache oder Server zu dem Client-Adressbereich, und (b) die Adresse des umleitenden Web-Routers oder Satzes von Web-Routern und die beste TOS-Distanz von diese, Web-Router(n) zu dem Client-Adressbereich.
  • Für jeden bekannten Informationsobjekt-Identifizierer hält der Web-Router die folgende Information, die jedem benachbarten Web-Router gemeldet wird: (a) die Adresse des das Objekt speichernden Web-Caches, (b) die Adresse des Web-Routers, von dem die Passung stammt, (c) die TOS-Distanz zu dem Web-Cache, das das Informationsobjekt speichert.
  • Ein Web-Router wählt den Satz von Web-Caches und Inhalts-Servern und den Satz von umleitenden Web-Routern, die die besten TOS-Distanzen jedem Client-Adressbereich haben, derart, dass eine mangelnde Aktualität oder irrtümliche Information über TOS-Distanzen von Web-Caches oder Web-Routern zum Bestimmungsort rasch gelöscht wird, um irrtümliche Bezugnahme oder einen schlechten Lastausgleich und Reaktionszeiten zu vermeiden.
  • In einer Ausführung der vorliegenden Erfindung schicken Web-Router einander die TOS-Distanz-Information von ihren benachbarten Web-Caches und Inhalts-Servern zu allen Client-Adressbreichen. Dieser Ansatz gestattet es den Web-Routern, die beste Passung (das heißt, Web-Cache und umleitender Web-Router) für jeden Adressbereich zu berechnen), können aber eine wesentliche Überlastung vermeiden, weil der Web-Router dazu zwingt, das Vorhandensein aller Web-Caches und Web-Router in dem System zu kennen. Um den Kommunikations- und Speicherüberhang zu reduzieren, die beim Replizieren dieser Information an jedem Web-Router auftritt, halten, in einer bevorzugte Ausführung der vorliegenden Erfindung, Web-Router die minimale Sprungdistanz zu jedem Web-Router, der kontaktiert werden kann, um Clients umzuleiten, und zu jedem Web-Router, der mit einem Web-Cache ko-lokalisiert, der die beste TOS-Distanz zu einem Satz von Client-Zielen hat. Die minimalen Sprung-Distanzen zu Web-Routern werden mittels eines Routing-Algorithmus als Teil von WILD gehalten. Der Routing-Algorithmus, der zu diesem Zweck benutzt wird, kann einer der Routing-Algorithmen sein, die im Stand der Technik für das traditionelle Internet und Routing auf Netzwerkebene berechnet worden sind; das einzige Erfordernis für den in WILD verwendeten Routing-Algorithmus ist, dass der Routing-Algorithmus permanente oder langdauernde Routing-Tabellenschleifen vermeidet. Zum Beispiel verwendet eine bevorzugte Ausführung der vorliegenden Erfindung einen der folgenden Mechanismen, Routing-Algorithmen und Protokollen als Teil von WILD:
    • 1. Verteilender Aktualisierungs-Algorithmus (DUAL), der die Basis für Cisco's EIGRP ist
    • 2. Schleifenfreier Wegfinder-Algorithmus (LPA)
    • 3. Link-Vektor Algorithmus (LVA)
    • 4. Bandbreiteneffizientes Quellenbaum (BEST)-Protokoll
    • 5. Dynamisches Quellenbaum (DST)-Routing-Protokoll
    • 6. Verteilender Algorithmus für kürzeste Mehrfachwege (DASM)
    • 7. Mehrfachweg-Distanz-Vektor (MDVA)
    • 8. Azyklisches bedarfsweises Routing-Mehrfachweg (ROAM)-Protokoll
    • 9. Mehrfachweg-Disseminations-Algorithmus mit partieller Topologie (MPDA)
    • 10. Schleifenfreier Mehrfachweg-Routing-Algorithmus (MAPTH)
    • 11. Adaptives Link-Zustand-Protokoll (ALP)
    • 12. Topologie-Rundsende-Protokoll, wie etwa dasjenige, das in dem Open-Shortest-Path-First-Protokoll (OSPF) implementiert ist
    • 13. Weg-Vektor-Algorithmus, der als Teil des Border-Gateway-Protokoll (BGP) verwendet wird
    • 14. Statische Tabelle in einem Web-Router, die die nächsten Sprünge oder Wege zu jedem oder anderem aktiven Web-Router in dem System spezifiziert.
  • Web-Router tauschen WILD-Update-Meldungen aus, um ihre Abstände zu anderen Web-Routern zu aktualisieren und um die besten TOS-Distanzen von den Web-Caches, Inhalts-Servern und Web-Routern zu Client-Adressen zu aktualisieren. Zurück zur virtuellen Topologie von Web-Routern, die in 2 eingeführt wurden, stellt 4 die besten TOS-Distanzen dar, die von Web-Routern für den Client 101 gehalten werden; die Figur zeigt eine einzelne TOS-Distanz pro Web-Router für den Client 101. Die in Klammern gesetzten Zahlen bezeichnen die lokale TOS-Distanz, gefolgt von einem Paar in eckigen Klammern, bestehend aus der bestbekannten TOS-Distanz und den dieser TOS-Distanz entsprechendem Web-Cache.
  • Zum Beispiel speichert der der Web-Router 220 eine lokale TOS-Distanz 100 zum Client 101 und dessen beste TOS-Distanz zum Client 101 ist 10, und das Web-Cache 310 ist jenes Web-Cache, das als der Client dienen sollte. Ähnlich speichert der Web-Router 240 eine lokale TOS-Distanz von 50 zu dem Client 101 und dessen beste TOS-Distanz zu dem Client ist 10 und wird von dem Web-Cache 350 bereitgestellt. Die Web-Router 210 und 250 haben jeweils eine lokale TOS-Distanz von 10 zum Client 101, und dies ist auch ihre beste TOS-Distanz zum Client.
  • Web-Router wählen, welche TOS-Distanz verwendet werden soll, und das diese Distanz bereitstellende Web-Cache durch Berechnung des Minimums der TOS-Distanz, die sie von ihren Nachbarn erhalten, und ihre lokale TOS-Distanz zum selben Client, und im Falle von Verknüpfungen minimaler TOS-Distanzen, die von Nachbarn erhalten werden und örtlich verfügbar sind; sie wählen das Web-Cache, das diesen am nächsten ist, durch die virtuelle Topologie der Web-Router. In einer anderen Ausführung der vorliegenden Erfindung kann ein Web-Router einfach alle Web-Caches und alle umleitenden Web-Router enthalten, die minimale TOS-Distanz zu einem Client-Adressbereich haben.
  • Eine WILD-Update-Meldung besteht aus zwei Teilen. Ein Teil entspricht der Information, die die Web-Router benötigen, um ihre minimalen Sprungdistanzen zueinander zu aktualisieren, und der andere Teil entspricht der Information, den die Web-Router benötigen, um das Mapping von Client-Adressbereichen zu Adressen von Web-Caches und umleitenden Web-Routern, die als ein solcher Client-Adressbereich dienen können, durch die beste TOS-Distanz zu aktualisieren.
  • In einer Ausführung der vorliegenden Erfindung liefert eine WILD-Update-Meldung die Mappings von Client-Adressbereichen zu Adressen von Web-Caches und umleitenden Web-Routern durch Spezifikation der besten TOS-Distanz, die von einem Web-Cache oder Web-Router zu einem bestimmten Clients-Adressbereich bekannt ist. In diesem Fall besteht eine bevorzugte Ausführung der vorliegenden Erfindung aus den folgenden drei Komponenten:
    • (a) Basis-Routing-Update: Dies entspricht der Information, der in jedem der vorgenannten Routing-Algorithmen erforderlich ist, um minimale Sprungdistanzen zu Web-Routern zu aktualisieren, welche Distanzen zu Web-Routern, die Distanzen und die zweitletzten Sprünge in Wegen zu Web-Routern, die gesamten minimalen Sprungwege zu Web-Routern, die Identifizierer und Längen der virtuellen Links, die zwischen Web-Routern definiert sind, die einen Teil eines minimalen Sprungwegs zu einem Web-Router bilden, oder die Identifizierer und Längen der virtuellen Links, die zwischen Web-Routern definiert sind, die Teil der virtuellen Topologie des Web-Routers bilden, enthalten können.
    • (b) Eine Liste von TOS-Distanzen von Web-Caches zu Bestimmungsorten, welche das Folgende enthält:
    • (i) Eine Client-Adresse oder einen Client-Adressbereich.
    • (ii) Eine Liste von einer oder mehreren Web-Cache-Aufzeichnungen, jeweils bestehend aus:
    • (iia) Die Adresse eines Web-Caches oder Inhalts-Servers, der den Client-Adressbereich bedienen kann.
    • (iib) Die TOS-Distanz von dem Web-Cache oder Inhalts-Server zu der Client-Adresse oder zum Client-Adressbereich.
    • (iic) Die Adresse des Web-Routers, der mit dem Web-Cache oder Inhalts-Server ko-lokalisiert ist.
    • (c) Eine Liste von TOS-Distanzen von umleitenden Web-Routern zu Bestimmungsorten, welche das Folgende enthalten:
    • (i) Eine Client-Adresse oder einen Client-Adressbereich.
    • (ii) Eine Liste von einer oder mehreren Web-Router-Aufzeichnungen, jeweils bestehend aus:
    • (iia) Der Adresse eines Web-Routers, der dazu benutzt werden kann, um Clients mit den gemeldeten Adressen oder Adressbereich umzuleiten.
    • (iib) Der TOS-Distanz von dem Web-Router zu der Client-Adresse oder dem Client-Adressbereich.
  • Die nachfolgende Beschreibung des WILD-Protokolls nimmt an, dass die vorgenannte Information in WILD-Update-Meldungen spezifiziert ist. Jedoch sollte es sich für den normalen Fachkundigen verstehen, dass auch andere Formate und Informationstypen dazu benutzt werden können, das Mapping zwischen einem Client-Adressbereich und den Adressen von Web-Caches, Inhalts-Servern und umleitenden Web-Routern zu implementieren.
  • Unter Verwendung der vorgenannten Information in WILD-Update-Meldungen führt ein Web-Router Procedure Local_Change, Procedure WILD-Update und Procedure Topology_change aus, die nachfolgend in Pseudo-Code spezifiziert sind, um die Passungen zwischen Client-Adressbereichen und Adressen von Web-Caches und umleitenden Web-Routern, die diese bedienen sollten, zu aktualisieren. Procedure Local_Change besteht aus dem Web-Router, an dem örtlich ein Weg-Ausführ-Algorithmus läuft, dessen lokale TOS-Distanzen zu Client-Adressbereichen berechnet, und aufrufen von Procedure WILD_Update, als ob ein WILD-Update zu sich selbst gesendet würde, um Änderungen zu bemerken, die an lokalen TOS-Distanzen zu Client-Adressbereichen auftreten. Procedure WILD_Update behandelt den Empfang eines WILD-Updates durch einen Web-Router, und Procedure Topology_Change behandelt das Auftreten einer Topologie-Änderung, die bewirkt, dass einer oder mehrere Web-Router unerreichbar werden.
  • In dieser Beschreibung wird die Prozedur, die von einem Web-Router benutzt wird, um seine minimalen Sprungdistanzen zu anderen Web-Routern zu aktualisieren, Basic_Routing_Algorithm genannt. Die Ausgabe dieser Prozedur besteht aus einer aktualisierten Distanz zu jedem Web-Router, der in dem System bekannt ist, und einem Satz von Updates, die neuen Distanzen zu Web-Routern entsprechen, die der Web-Router benötigt, um mit seinen benachbarten Web-Routern zu kommunizieren.
  • Der Einfachheit wegen wird angenommen, dass ein Web-Router eine Anker-Roter-Tabelle (ART) hält, die aus einem oder mehreren Ankereinträgen besteht, und jede solche Eintrag spezifiziert: (a) die Adresse eines Anker-Web-Routers, (b) die Liste von Ziel-Adress-Bereichen, für die der Web-Router als Anker dient, für die der Web-Router als Anker dient, für das Mapping von einem Adressbereich zu einer Web-Cache-Adresse, und (c) die Liste von Zieladressbereichen, für die der Web-Router als Anker dient für das Mapping des Adressbereichs zu sich selbst als umleitender Web-Router. Die ART-Tabelle ermöglicht es dem Web-Router, zu bestimmen, für welche Zieladressbereiche er neue Mappings von Web-Caches oder umleitenden Web-Routern haben könnte, für den Fall dass irgendein Web-Router unerreichbar wird.
  • Eine aktualisierte TOS-Distanz von einem Web-Cache zu einem Client-Adresse oder einem Adressbereich wird in einer WILD-Update-Meldung gemeldet mit einem Aktualisierungseintrag [Client, Web-Cache, TOS-Distanz (vom Web-Cache zum Client), Anker-Web-Router], wo der Anker-Web-Router die Adresse des Web-Routers ist, der mit dem Web-Cache oder Inhalts-Server, der in dem Aktualisierungseintrag spezifiziert ist, ko-lokalisiert ist.
  • Eine aktualisierte TOS-Distanz von einem umleitenden Web-Router zu einer Client-Adresse oder einem Adressbereich wird in einer WILD-Update-Meldung mit einem Aktualisierungseintrag gemeldet [Client, umleitender Web-Router, TOS-Distanz vom umleitenden Web-Router].
  • Procedures WILD_Update und Topology_Change ruft Procedure Send_WILD_Update auf, damit der Web-Router seinen benachbarten Web-Router seine aktualisierten Distanzen zu anderen Web-Routern und aktualisierte TOS-Distanzen von Web-Caches, Inhalts-Server und umleitenden Web-Routern zu Client-Adressen kommuniziert.
  • Um die nachfolgende Pseudo-Beschreibung zu vereinfachen, wird ein einzelnes Web-Cache und ein umleitender Web-Router für jeden Client-Adressbereich benutzt. Ferner wird ein einzelnes TOS bei der Berechnung von Mappings von Client-Adressbereichen zu Adressen von Web-Caches und umleitenden Web-Routern benutzt. Jedoch das gleiche hierin spezifizierte Gesamtverfahren auch für den Fall, wo ein Satz von Web-Caches und umleitenden Web-Routern und mehrere TOSes für jeden Client-Adressbereich benutzt werden.
  • Definierte Variablen:
    • c-id:
      Client-Adressbereich.
      H(WR-id):
      Minimale Sprungdistanz zu Web-Router WR-id am Web-Router, der Procedure WILD_Update ausführt.
      D(c-id):
      Beste TOS-Distanz von einem Web-Cache zum c-id am Web-Router, der Procedure WILD_Update ausführt.
      C(cied):
      Adresse eines Web-Caches oder Inhalts-Servers zur Verwendung für den Client-Adressbereich c-id durch den Web-Router, der Procedure WILD_Update ausführt.
      a(c-id):
      Anker des Mappings zwischen einem Web-Cache und c-id am Web-Router, der Procedure WILD_Update ausführt.
      DR(c-id):
      Beste TOS-Distanz von einem umleitenden Web-Router zu c-id am Web-Router, der Procedure WILD-Update ausführt.
      R(C-id):
      Adresse eines umleitenden Web-Routers zur Verwendung als Client-Adressbereich c-id durch den Web-Router, der Procedure WILD_Update ausführt.
      D_k(c-id):
      TOS-Distanz von einem Web-Cache zum c-id, der von einem benachbarten Web-Router k gemeldet wird und an einem Web-Router gespeichert wird, der Procedure WILD_Update ausführt.
      C_k(c-id):
      Adresse vom Web-Cache oder Inhalts-Server, den der benachbarte Web-Router k für den Client-Adressbereich c-id empfiehlt und der am Web-Router gespeichert ist, der Procedure WILD_Update ausführt.
      DR_k(c-id):
      TOS-Distanz von einem umleitenden Web-Router zum c-id, der von einem benachbarten Web-Router k gemeldet wird, und der am Web-Router gespeichert ist, der Procedure WILD_Update ausführt.
      R_k(c-id):
      Adresse eines umleitenden Web-Routers, den ein benachbarter Web-Router k für den Client-Adressbereich c-id empflielt, und der am Web-Router gespeichert ist, der Procedure WILD_Update ausführt.
      a_k(c-id):
      Web-Router, der D_k(c-id) verankert.
      UWR:
      Unerreichbare-Web-Router-Liste
      UWR.w:
      Reihe in UWR, die Web-Router w listet.
      ART:
      Verankernde Router-Tabelle.
      ART.w:
      Reihe, die dem Web-Router w in ART entspricht.
      ART.w-c[j]:
      Ziel j, für das der Web-Router w ein Anker für das Mapping zu einer Web-Cache-Adresse ist.
      ART.w-r[j]:
      Ziel j, für das der Web-Router w ein Anker für das Mapping zu sich selbst als umleitender Web-Router ist.
  • Procedure WILD_Update
    Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • Figure 00480001
  • Figure 00490001
  • Figure 00500001
  • Figure 00510001
  • Procedure Update_Web_Routers
    Figure 00510002
  • Procedure Local_Change
    Figure 00510003
  • Figure 00520001
  • Procedure Send_WILD_Update
    Figure 00520002
  • 5a5d zeigen ein Beispiel der vorliegenden Erfindung, wenn ein Web-Router ein WILD-Update von einem benachbarten Web-Router empfängt. In diesem Beispiel nimmt die Verstopfung im Netzwerk vom Web-Cache 310 zum Client 101 zu, was die lokale TOS-Distanz vom Web-Router 210 zum Client 101 gleich 40 macht, als Ergebnis der Ausführung vom Procedure Local_Change, das wiederum Procedure WILD_Update aufruft.
  • Wie in 5(a) gezeigt, schickt der Web-Router 210 ein WILD-Update nach Ausführung vom Procedure WILD_Update, um eine beste TOS-Distanz zum Client 101 zu melden, die gleich 40 ist, und die Tatsache, dass das Web-Cache 310 dazu benutzt werden sollte, als Client zu dienen. Das WILD-Update vom Web-Router 210 wird von seinen benachbarten Web-Routern 220 und 230 empfangen. Als Ergebnis des WILD-Updates vom Web-Router 210 berechnet der Web-Router 220 seine neue beste TOS-Distanz zum Client 101 unter Verwendung der TOS-Distanzen, die er von seinen Web-Routern und seiner örtlich verfügbaren TOS-Distanz zum Client 101 empfangen hat, und der Web-Router 220 schickt dann ein WILD-Update, das eine TOS-Distanz von 40 zum Client 101 und zum Web-Cache 310, als dem Cache zum Bedienen des Clients 101, angibt (siehe 5(b)).
  • Ähnlich schickt der Web-Router 230 ein WILD-Update, das eine TOS-Distanz zu einem Client 101 gleich 10 und ein Web-Cache 350 zu dem als dem Client dienenden hin angibt. Wie 5(c) zeigt, bewirkt das WILD-Update vom Web-Router 220, dass der Web-Router 205 ein WILD-Update schickt, das eine TOS-Distanz zum Client 101 gleich 10 angibt, und einen Web-Cache 305 als dem einen, der als der Client dient. Das WILD-Update von dem Web-Router 230 bewirkt, dass der Web-Router 210 sein bestes TOS für den Client 101 auf 10 ändert und das Web-Cache 350 als das eine setzt, das als Client dient, und der Web-Router 210 schickt dementsprechend ein WILD-Update. Andererseits modifiziert der Web-Router 240 seine beste TOS-Distanz für den Client 101 nicht, nach Bearbeitung des WILD-Updates vom Web-Router 230.
  • 5(d) stellt einen Web-Router 220 dar, der ein WILD-Update schickt, mit einer TOS-Distanz zum Client 101 von gleich 10 und einem Web-Cache 350 als den einen, der als der Client dient. Dieses Beispiel stellt die Tatsache dar, das WILD-Update sich über die Topologie von Web-Routern nur soweit fortpflanzen, wie sie gehen müssen, um zu ermöglichen, dass alle Web-Router die minimalen TOS-Distanzen zu Clients speichern.
  • Somit ist ein Schema beschrieben worden, um das Auffinden der Caches und Server zu ermöglichen, die Informationsobjekte speichern, die über Computer-Netzwerke verteilt sind, welche in Hardware und/oder Software implementiert sein können. Es versteht sich, dass einige Ausführungen der vorliegenden Erfindung das so genannte URL-Routing auf Netzwerkebene (NURL) verwenden. Diese Routing-Technik beinhaltet das Mapping von angeforderten URLs zu Unicast-Adressen, die dann als Anycast-IP-Adresse verwendet werden (das heißt, eine Unicast-Adresse, die von mehreren physikalisch verschiedenen Punkten in einem Internet beworben wird). Siehe zum Beispiel Craig Partridge, Trevor Mendez und Walter Milliken, „Host Anycasting Service RFC 1546", November 1993. Ein System und ein Verfahren zur Verwendung von Uniform Resource Locators (URLS) auf Map-Anwendungs-Ebenen-Inhaltsnamen zu Netzwerkebenen-Anycast-Adressen, das vorgenannte Mapping, ist in der mitanhängigen U.S.-Anmeldung 60/200,511 des gleichen Anmelders offenbart, mit dem Titel „System and Method for Using URLs to Map Application Layer Content Names to Network Layer Anycast Addresses", eingereicht am 28. April 2000 von J. J. Garcia-Luna-Aceves und Bradley R. Smith, deren vollständige Offenbarung hierdurch unter Bezugnahme aufgenommen wird. Ferner ist ein System und ein Verfahre zur Verwendung von Netzwerkebenen-URL-Routing zum Lokalisieren des nächsten Servers, der einen bestimmten Inhalt trägt (Routing von URLs auf Netzwerkebene) in der mitanhängigen U.S.-Anmeldung Nr. 60/200,402 des gleichen Anmelders offenbart, mit dem Titel „System and Method for Using Network Layer URL Routing to Locate the Closest, eingereicht am 28.04.2000 von J. J. Garcia-Luna-Aceves und Bradley R. Smith, deren vollständige Offenbarung hierdurch unter Bezugnahme aufgenommen wird.
  • Mit der Route über den Anycast-Cache-Server, der in der Netzwerkinfrastruktur existiert, würde ein Cache-Server, der ein fehlendes Cache bearbeitet, den Inhalt von der URL-IP-Adresse übertragen wollen. In einem Ausführungsbeispiel löst in einer solchen Situation die vorliegende Erfindung die Anycast-Adresse zur realen Unicast-Adresse des Servers (die per Definition diesen Server in dem Internet eindeutig identifiziert) auf, bevor das Download beginnt. In einem Ausführungsbeispiel erfolgt dies mittels eines Anycast-Adressauflösungsprotokolls (AARP), das in der mitanhängigen U.S.-Anmeldung Nr. 60/200,403 des gleichen Anmelders offenbart ist mit dem Titel „System and Method for Resolving Network Layer Anycast Addresses to Network Layer Unicast Addresses (AARP)", eingereicht am 28. April von J. J. Garcia-Luna-Aceves und Bradley R. Smith, deren vollständige Offenbarung hierdurch unter Bezugnahme aufgenommen wird.
  • Obwohl somit die vollständige Beschreibung und die beigefügten Figuren spezifische Ausführungen diskutieren und veranschaulichen, ist die vorliegende Erfindung nur in Hinblick auf die nachfolgenden Ansprüche und ihre Äquivalente zu bemessen.

Claims (9)

  1. Kommunikationsprotokoll, das eine oder mehrere Mitteilungen aufweist, die zwischen Webroutern (201, 202, 205, 210, 220, 230, 240, 250) über ein zur Zwischen-Web-Routerkommunikation verwendetes zuverlässiges Übertragungsprotokoll übertragen werden, wobei das Kommunikationsprotokoll dadurch gekennzeichnet ist, dass die Mitteilungen (i) Mappings von Client-Adressbereichen zu Adressen von Webcaches (301, 310, 350) und umleitenden Webroutern (201, 202, 205, 210, 220, 230, 240, 250) transportieren, indem sie beste Distanzen (10) spezifizieren, wie sie durch spezifizierte Performanzgrößen bestimmt sind, die aus einzelnen der Webcaches (301, 310, 350) oder den zu spezifischen der Client-Adressbereiche umleitenden Webroutern bekannt sind, und (ii) organisiert sind als (a) Routingupdates, die Information aufweisen, die zum Aktualisieren minimaler Sprungdistanzen zu umleitenden Webroutern erforderlich ist, (b) Listen von Distanzen von den Webcaches zu Bestimmungsorten und (c) Listen von Distanzen von den umleitenden Webroutern zu den Bestimmungsorten.
  2. Das Kommunikationsprotokoll nach Anspruch 1, worin die spezifizierten Performanzgrößen eine oder mehrere von durchschnittlicher Verzögerung von einem Webcache (301, 310, 350) zu einem gewählten Client-Adressbereich, durchschnittlicher Prozessverzögerung an einem Webcache, Zuverlässigkeit eines Wegs von einem Webcache zu einem Client (101), verfügbarer Bandbreite eines solchen Wegs, und Belastungen eines Webcaches aufweisen.
  3. Das Kommunikationsprotokoll von Anspruch 1, worin eine Mitteilung ferner für jede aktualisierte Distanz eine zugeordnete Ankeradresse eines Webrouters meldet, der mit einem Webcache zusammen lokalisiert ist, das der Gegenstand der Meldung ist.
  4. Das Kommunikationsprotokoll von Anspruch 1, worin die Meldungen auch zweite Mappings von Informationsobjektidentifizierern zu Webcaches enthalten, die lokale Kopien von Informationsobjekten halten.
  5. Das Kommunikationsprotokoll von Anspruch 4, worin die zweiten Mappings optimale Mappings von Informationsobjektidentifizierern zu Webcacheadressen aufweisen.
  6. Das Kommunikationsprotokoll von Anspruch 5, worin die Meldungen ferner aktualisierte Distanzen von den Webcacheadressen zu spezifizierten Webcaches melden, welche bestimmte Informationsobjekte oder Dienste verarbeiten, wobei diese Distanzen auf den spezifizierten Performanzgrößen basieren.
  7. Das Kommunikationsprotokoll von Anspruch 1, worin die Routingupdates eine oder mehrere von Distanzen zu Webroutern (201, 202, 205, 210, 220, 230, 240, 250), Distanzen zu zweitletzten Sprüngen in den Wegen zu den Webroutern (201, 202, 205, 210, 220, 230, 240, 250), minimale Gesamtsprungwege zu Webroutern, Identifizierern und Längen virtueller Links, die zwischen jenen der Webrouter definiert sind, die einen Teil eines minimalen Sprungwegs zu einem ersten der Webrouter bilden, und Identifizierern und Längen virtueller Links, die zwischen jenen der Webrouter definiert sind, die einen Teil einer virtuellen Topologie von Webroutern bilden, enthalten.
  8. Das Kommunikationsprotokoll von Anspruch 1, worin die Bestimmungsorte zumindest die Client-Adressbereiche enthalten.
  9. Das Kommunikationsprotokoll von Anspruch 6, worin die Bestimmungsorte eine Liste von einem oder mehreren Webcacheaufzeichnungen enthalten, deren jede besteht aus: (a) Adressen spezifizierter der Webcaches (301, 310, 350) oder eines Inhaltsservers, der spezifizierte der Client-Adressbereiche bedienen kann, (b) besten Distanzen von den spezifizierten der Webcaches (301, 310, 350) oder dem Inhaltsserver zu den spezifizierten der Client-Adressbereiche und (c) Adressen jener der Webrouter (201, 202, 205, 210, 220, 230, 240, 250), die mit den spezifizierten der Webcaches oder des Inhaltsservers zusammen lokalisiert sind.
DE60132718T 2000-03-16 2001-03-16 System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen Expired - Lifetime DE60132718T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US19033100P 2000-03-16 2000-03-16
US190331P 2000-03-16
US20040100P 2000-04-28 2000-04-28
US200401P 2000-04-28
US810148 2001-03-15
US09/810,148 US7162539B2 (en) 2000-03-16 2001-03-15 System and method for discovering information objects and information object repositories in computer networks
PCT/US2001/008701 WO2001069457A2 (en) 2000-03-16 2001-03-16 System and method for discovering information objects and information object repositories in computer networks

Publications (2)

Publication Number Publication Date
DE60132718D1 DE60132718D1 (de) 2008-03-20
DE60132718T2 true DE60132718T2 (de) 2009-02-12

Family

ID=27392729

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60132718T Expired - Lifetime DE60132718T2 (de) 2000-03-16 2001-03-16 System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen

Country Status (7)

Country Link
US (6) US7162539B2 (de)
EP (1) EP1391096B1 (de)
AT (1) ATE385643T1 (de)
AU (1) AU2001252931A1 (de)
DE (1) DE60132718T2 (de)
DK (1) DK1391096T3 (de)
WO (1) WO2001069457A2 (de)

Families Citing this family (425)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948875B2 (en) * 1997-08-29 2011-05-24 AIP Acquisition, LLC IP exchange quality testing system and method
US7925713B1 (en) 1999-11-22 2011-04-12 Akamai Technologies, Inc. Method for operating an integrated point of presence server network
US7590739B2 (en) * 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US7565450B2 (en) * 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7552233B2 (en) * 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
EP1301865A4 (de) * 2000-03-22 2009-04-01 Yotta Yotta Inc Verfahren und system zur bereitstellung von multimediainformationen auf anfrage über grossflächige netzwerke
US7043563B2 (en) * 2000-04-17 2006-05-09 Circadence Corporation Method and system for redirection to arbitrary front-ends in a communication system
US7577754B2 (en) * 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7725596B2 (en) * 2000-04-28 2010-05-25 Adara Networks, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
US7343422B2 (en) * 2000-04-28 2008-03-11 Adara Networks, Inc. System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US7336682B2 (en) * 2000-07-25 2008-02-26 Juniper Networks, Inc. Network architecture and methods for transparent on-line cross-sessional encoding and transport of network communications data
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
US20020042839A1 (en) * 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US7756032B2 (en) * 2000-10-17 2010-07-13 Avaya Inc. Method and apparatus for communicating data within measurement traffic
US7406539B2 (en) * 2000-10-17 2008-07-29 Avaya Technology Corp. Method and apparatus for performance and cost optimization in an internetwork
US7349994B2 (en) * 2000-10-17 2008-03-25 Avaya Technology Corp. Method and apparatus for coordinating routing parameters via a back-channel communication medium
US7487237B2 (en) * 2000-10-17 2009-02-03 Avaya Technology Corp. Load optimization
US7720959B2 (en) * 2000-10-17 2010-05-18 Avaya Inc. Method and apparatus for characterizing the quality of a network path
AU2002213287A1 (en) 2000-10-17 2002-04-29 Routescience Technologies Inc Method and apparatus for performance and cost optimization in an internetwork
US8023421B2 (en) * 2002-07-25 2011-09-20 Avaya Inc. Method and apparatus for the assessment and optimization of network traffic
US7047273B2 (en) * 2000-11-28 2006-05-16 Navic Systems, Inc. Load balancing in set top cable box environment
US20030046615A1 (en) * 2000-12-22 2003-03-06 Alan Stone System and method for adaptive reliability balancing in distributed programming networks
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US7720996B2 (en) * 2001-03-27 2010-05-18 Microsoft Corporation Internet protocol (IP) address proximity and application to peer provider location
EP1433051B1 (de) * 2001-09-10 2016-01-20 Adara Networks, Inc. System und verfahren zum informationsobjekt-routing in computernetzwerken
EP1298878A1 (de) * 2001-09-26 2003-04-02 Telefonaktiebolaget L M Ericsson (Publ) Hierarchische Cachespeicherung in Telekommunikationsnetzen
US8644475B1 (en) 2001-10-16 2014-02-04 Rockstar Consortium Us Lp Telephony usage derived presence information
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP4113352B2 (ja) * 2001-10-31 2008-07-09 株式会社日立製作所 ストレージ・ネットワークにおけるストレージ・リソース運用管理方法
US7853643B1 (en) 2001-11-21 2010-12-14 Blue Titan Software, Inc. Web services-based computing resource lifecycle management
US7296061B2 (en) * 2001-11-21 2007-11-13 Blue Titan Software, Inc. Distributed web services network architecture
US7593373B2 (en) * 2001-12-12 2009-09-22 At&T Intelectual Property Ii, Lp Snoop-and-shortcut routing method for better mobility support on networks
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming
DE60129031T2 (de) * 2001-12-19 2008-02-21 Alcatel Lucent Verfahren zur Weglenkungsinformations- Verteilung und Netzelement
US7200117B2 (en) * 2002-01-31 2007-04-03 Sun Microsystems, Inc. Method of optimizing network capacity and fault tolerance in deadlock-free routing
US20030167295A1 (en) * 2002-03-01 2003-09-04 Verity, Inc. Automatic network load balancing using self-replicating resources
US9026674B1 (en) * 2010-03-22 2015-05-05 Satish K Kanna System and method for accurately displaying communications traffic information
US7085848B2 (en) 2002-03-15 2006-08-01 Microsoft Corporation Time-window-constrained multicast using connection scheduling
US20050125517A1 (en) * 2002-04-04 2005-06-09 Joakim Norrgard Method for creating a map of available resources within an ip network
GB0210031D0 (en) * 2002-05-02 2002-06-12 Ibm Flow composition model searching
US7580370B2 (en) * 2002-06-21 2009-08-25 International Business Machines Corporation Method and structure for autoconfiguration of network destinations
US20050021526A1 (en) * 2002-07-11 2005-01-27 International Business Machines Corporation Method for ensuring the availability of a service proposed by a service provider
US20040024808A1 (en) * 2002-08-01 2004-02-05 Hitachi, Ltd. Wide area storage localization system
US7822810B2 (en) * 2002-09-17 2010-10-26 Hewlett-Packard Development Company, L.P. Method and system for peer to peer common channel collaboration
US8392609B2 (en) * 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US7730155B1 (en) * 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7711810B2 (en) 2003-01-03 2010-05-04 Nortel Networks Limited Distributed services based on presence technology
JP4108486B2 (ja) * 2003-01-08 2008-06-25 Necインフロンティア株式会社 Ipルータ、通信システム及びそれに用いる帯域設定方法並びにそのプログラム
US7254642B2 (en) * 2003-01-30 2007-08-07 International Business Machines Corporation Method and apparatus for local IP address translation
US7975043B2 (en) * 2003-02-25 2011-07-05 Hewlett-Packard Development Company, L.P. Method and apparatus for monitoring a network
AU2004220872A1 (en) * 2003-03-18 2004-09-30 Renesys Corporation Methods and systems for monitoring network routing
US20040193730A1 (en) * 2003-03-25 2004-09-30 Vernon Stephen K. Method and computer programs for providing special processing of a communication sent across a communication network
US20050005027A1 (en) * 2003-04-18 2005-01-06 International Business Machines Corporation Method and system for obtaining data through an IP transmission network by using an optimized domain name server
US7305479B1 (en) * 2003-05-13 2007-12-04 Cisco Technology, Inc. Methods and apparatus for delivery of content requests within a content delivery network
US8825896B2 (en) * 2003-06-16 2014-09-02 Interactic Holdings, Inc. Scalable distributed parallel access memory systems with internet routing applications
US7568034B1 (en) * 2003-07-03 2009-07-28 Google Inc. System and method for data distribution
US8136025B1 (en) 2003-07-03 2012-03-13 Google Inc. Assigning document identification tags
KR100568231B1 (ko) * 2003-08-11 2006-04-07 삼성전자주식회사 도메인 네임 서비스 시스템 및 방법
US9081620B1 (en) * 2003-09-11 2015-07-14 Oracle America, Inc. Multi-grid mechanism using peer-to-peer protocols
US7231496B2 (en) * 2003-09-15 2007-06-12 International Business Machines Corporation Method, system and program product for caching data objects
US7610387B1 (en) * 2003-11-12 2009-10-27 Cisco Technology, Inc. Method and apparatus for providing sticky bindings using version vectors
US9118574B1 (en) 2003-11-26 2015-08-25 RPX Clearinghouse, LLC Presence reporting using wireless messaging
US7761514B2 (en) * 2003-11-26 2010-07-20 International Business Machines Corporation Method and apparatus for providing dynamic group management for distributed interactive applications
US7792936B2 (en) * 2003-12-01 2010-09-07 International Business Machines Corporation Method and apparatus for virtualizing network resources
US8229454B1 (en) 2004-03-22 2012-07-24 Avaya Inc. Personal location information management
US7984149B1 (en) * 2004-08-04 2011-07-19 Cisco Technology, Inc. Method and apparatus for identifying a policy server
KR20070083597A (ko) * 2004-08-28 2007-08-24 스트림어웨어 엘엘씨 링크 분석 방법 및 시스템
WO2006029399A2 (en) 2004-09-09 2006-03-16 Avaya Technology Corp. Methods of and systems for network traffic security
WO2006042155A2 (en) * 2004-10-08 2006-04-20 E-Klone, Inc. Floating vector scrambling methods and apparatus
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
US8346843B2 (en) * 2004-12-10 2013-01-01 Google Inc. System and method for scalable data distribution
JP4371056B2 (ja) * 2005-01-07 2009-11-25 ブラザー工業株式会社 ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
US7733868B2 (en) 2005-01-26 2010-06-08 Internet Broadcasting Corp. Layered multicast and fair bandwidth allocation and packet prioritization
JP4512192B2 (ja) * 2005-02-09 2010-07-28 株式会社日立製作所 輻輳制御装置、および、ネットワークの輻輳制御方法
US7899865B2 (en) * 2005-04-22 2011-03-01 At&T Intellectual Property Ii, L.P. Managing media server resources in a VoIP network
US7656866B2 (en) * 2005-04-22 2010-02-02 At&T Corp. Controlling media server resources in a VoIP network
JP4241660B2 (ja) * 2005-04-25 2009-03-18 株式会社日立製作所 負荷分散装置
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US7756826B2 (en) * 2006-06-30 2010-07-13 Citrix Systems, Inc. Method and systems for efficient delivery of previously stored content
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8041748B2 (en) * 2005-05-30 2011-10-18 Netapp, Inc. Method and apparatus for managing a web cache system
US9450908B2 (en) * 2005-06-23 2016-09-20 Go Daddy Operating Company, LLC Routing DNS system and method for shared domain name
US8706816B2 (en) * 2005-06-24 2014-04-22 Go Daddy Operating Company, LLC System and method for email delivery for shared domain name
US20050289242A1 (en) * 2005-06-24 2005-12-29 The Go Daddy Group, Inc. Resolving access to content associated with shared domain name using routing website
US8014389B2 (en) 2005-12-06 2011-09-06 Lippershy Celestial Llc Bidding network
US7894447B2 (en) 2005-12-06 2011-02-22 Lippershy Celestial Llc Digital object routing
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US8055897B2 (en) * 2005-12-06 2011-11-08 Lippershy Celestial Llc Digital object title and transmission information
US8194701B2 (en) 2005-12-06 2012-06-05 Lippershy Celestial Llc System and/or method for downstream bidding
US8626925B2 (en) * 2005-12-16 2014-01-07 Panasonic Corporation Systems and methods for providing a selective multicast proxy on a computer network
US8090766B2 (en) * 2006-08-15 2012-01-03 Microsoft Corporation System and method to identify, rank, and audit network provided configurables
US8055747B2 (en) * 2006-08-15 2011-11-08 Microsoft Corporation Message based network transmission for selection and auditing of internet services
EP1901181B1 (de) * 2006-09-13 2010-07-07 Alcatel Lucent Entdeckung von Web-Diensten
US8713192B2 (en) * 2006-12-08 2014-04-29 Yahoo! Inc. System and method for routing streaming data requests
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7865585B2 (en) * 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US8255570B2 (en) 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7460038B2 (en) 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US8280983B2 (en) * 2007-05-02 2012-10-02 Microsoft Corporation Distributed search in a casual network of servers
US7809785B2 (en) * 2007-05-28 2010-10-05 Google Inc. System using router in a web browser for inter-domain communication
US8739123B2 (en) * 2007-05-28 2014-05-27 Google Inc. Incorporating gadget functionality on webpages
US9015279B2 (en) * 2007-06-15 2015-04-21 Bryte Computer Technologies Methods, systems, and computer program products for tokenized domain name resolution
US8200644B2 (en) * 2007-06-15 2012-06-12 Bryte Computer Technologies, Inc. Methods, systems, and computer program products for search result driven charitable donations
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
WO2009032712A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8805950B1 (en) * 2007-09-12 2014-08-12 Aol Inc. Client web cache
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8156243B2 (en) * 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
CN101594339B (zh) * 2008-05-29 2012-07-04 华为技术有限公司 管理和查询映射信息的方法、设备及通信系统
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8954548B2 (en) * 2008-08-27 2015-02-10 At&T Intellectual Property Ii, L.P. Targeted caching to reduce bandwidth consumption
US8464303B2 (en) * 2008-09-18 2013-06-11 Alcatel Lucent System and method for determining a cache arrangement
US9426213B2 (en) * 2008-11-11 2016-08-23 At&T Intellectual Property Ii, L.P. Hybrid unicast/anycast content distribution network system
US8219706B2 (en) * 2008-11-14 2012-07-10 At&T Intellectual Property I, Lp Interdomain network aware peer-to-peer protocol
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US8316106B2 (en) 2008-12-05 2012-11-20 At&T Intellectual Property Ii, Lp System and method for assigning requests in a content distribution network
US20100153573A1 (en) * 2008-12-12 2010-06-17 At&T Intellectual Property I, L.P. Methods and Apparatus to Provide Content
EP2211525B1 (de) 2009-01-22 2011-08-03 Ntt Docomo, Inc. Verfahren zur Verteilung einer Referenz zu einem Objekt in einem selbstorganisierenden, verteilten Überlagerungsnetzwerk
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8756341B1 (en) * 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8166200B2 (en) * 2009-03-30 2012-04-24 Microsoft Corporation Smart routing
US8892631B2 (en) 2009-04-09 2014-11-18 International Business Machines Corporation System and method of optimizing digital media processing in a carrier grade web portal environment
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
US8612622B2 (en) 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US8539099B2 (en) * 2010-01-08 2013-09-17 Alcatel Lucent Method for providing on-path content distribution
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
EP2365675B1 (de) * 2010-03-09 2018-01-10 BlackBerry Limited Kommunikationssystem zur bereitstellung eines server-lastausgleichs basierend auf last- und getrenntheitsmetriken und verfahren dafür
US8578027B2 (en) 2010-03-09 2013-11-05 Blackberry Limited Communications system providing server load balancing based upon load and separation metrics and related methods
US8996610B1 (en) * 2010-03-15 2015-03-31 Salesforce.Com, Inc. Proxy system, method and computer program product for utilizing an identifier of a request to route the request to a networked device
US8856281B2 (en) 2010-03-22 2014-10-07 At&T Intellectual Property I, L.P. Internet protocol version 6 content routing
US8719223B2 (en) 2010-05-06 2014-05-06 Go Daddy Operating Company, LLC Cloud storage solution for reading and writing files
US8959139B2 (en) * 2010-05-28 2015-02-17 Juniper Networks, Inc. Application-layer traffic optimization service endpoint type attribute
US8688775B2 (en) 2010-05-28 2014-04-01 Juniper Network, Inc. Application-layer traffic optimization service spanning multiple networks
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US8745128B2 (en) 2010-09-01 2014-06-03 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US8639748B2 (en) * 2010-09-01 2014-01-28 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US10097398B1 (en) 2010-09-28 2018-10-09 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
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US20120089700A1 (en) * 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US9515916B2 (en) * 2010-10-21 2016-12-06 Cisco Technology, Inc. Redirection of requests for target addresses
WO2012058610A1 (en) * 2010-10-29 2012-05-03 Paul Everton Electronic emergency messaging system
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8700801B2 (en) 2010-12-01 2014-04-15 Juniper Networks, Inc. Dynamically generating application-layer traffic optimization protocol maps
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8954491B1 (en) 2010-12-30 2015-02-10 Juniper Networks, Inc. Dynamically generating application-layer traffic optimization protocol endpoint attributes
GB2492940B (en) * 2011-01-21 2013-08-28 1E Ltd Locating and retrieving packages over a network
KR20120096314A (ko) * 2011-02-22 2012-08-30 한국전자통신연구원 가상 네트워크 구성장치 및 그 방법
US9928483B2 (en) 2011-04-20 2018-03-27 Level 3 Communication, Llc Automated topology change detection and policy based provisioning and remediation in information technology systems
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9379970B2 (en) * 2011-05-16 2016-06-28 Futurewei Technologies, Inc. Selective content routing and storage protocol for information-centric network
US8667172B2 (en) * 2011-06-07 2014-03-04 Futurewei Technologies, Inc. Method and apparatus for content identifier based radius constrained cache flooding to enable efficient content routing
US8538065B2 (en) 2011-09-20 2013-09-17 Go Daddy Operating Company, LLC Systems for verifying person's identity through person's social circle using person's photograph
US8522147B2 (en) 2011-09-20 2013-08-27 Go Daddy Operating Company, LLC Methods for verifying person's identity through person's social circle using person's photograph
EP2759115A4 (de) * 2011-09-23 2015-05-20 Ericsson Telefon Ab L M Cachespeicherung in einem telekommunikationsnetz
US9158586B2 (en) * 2011-10-10 2015-10-13 Cox Communications, Inc. Systems and methods for managing cloud computing resources
US8745177B1 (en) 2011-11-01 2014-06-03 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US9094364B2 (en) * 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US9386114B2 (en) * 2011-12-28 2016-07-05 Google Inc. Systems and methods for accessing an update server
EP2615791A1 (de) * 2012-01-13 2013-07-17 Alcatel Lucent Verfahren, System und Vorrichtungen zur Bereitstellung von Medieninhalt in IP-Netzwerken
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US8738604B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Methods for discovering sensitive information on computer networks
US8738605B2 (en) 2012-03-30 2014-05-27 Go Daddy Operating Company, LLC Systems for discovering sensitive information on computer networks
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8797851B2 (en) 2012-04-18 2014-08-05 International Business Machines Corporation Locating traffic reduction utilities in communication networks
US9740708B2 (en) * 2012-05-01 2017-08-22 Everbridge, Inc. Systems and methods for distance and performance based load balancing
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US8613089B1 (en) * 2012-08-07 2013-12-17 Cloudflare, Inc. Identifying a denial-of-service attack in a cloud-based proxy service
US9215269B2 (en) 2012-08-23 2015-12-15 Amazon Technologies, Inc. Predictive caching for content
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9712854B2 (en) * 2012-09-06 2017-07-18 Alcatel Lucent Cost-aware cloud-based content delivery
JP6007697B2 (ja) * 2012-09-19 2016-10-12 沖電気工業株式会社 キャッシュ装置、キャッシュプログラム及びコンテンツ配信システム
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9160809B2 (en) 2012-11-26 2015-10-13 Go Daddy Operating Company, LLC DNS overriding-based methods of accelerating content delivery
US9141669B2 (en) 2013-01-22 2015-09-22 Go Daddy Operating Company, LLC Configuring an origin server content delivery using a pulled data list
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9588874B2 (en) * 2012-12-14 2017-03-07 Microsoft Technology Licensing, Llc Remote device automation using a device services bridge
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9384208B2 (en) 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US9596312B2 (en) * 2013-01-28 2017-03-14 Facebook, Inc. Static resource caching
US9438493B2 (en) 2013-01-31 2016-09-06 Go Daddy Operating Company, LLC Monitoring network entities via a central monitoring system
KR101474320B1 (ko) * 2013-02-04 2014-12-18 아주대학교산학협력단 위치기반 컨텐츠를 위한 위치기반 컨텐츠 중심 네트워킹 방법
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US9407726B1 (en) 2013-03-15 2016-08-02 Juniper Networks, Inc. Caching objects identified by dynamic resource identifiers
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9185120B2 (en) 2013-05-23 2015-11-10 Palo Alto Research Center Incorporated Method and system for mitigating interest flooding attacks in content-centric networks
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US9998354B2 (en) * 2013-09-24 2018-06-12 Netflix, Inc. Server selection for content distribution
US10097503B2 (en) * 2013-09-27 2018-10-09 Fastly, Inc. Content node network address selection for content delivery
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9282050B2 (en) 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9608890B1 (en) * 2013-12-23 2017-03-28 Kabam, Inc. System and method for forwarding external notifications of events in a virtual space from a user device to a presentation control device
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US10044609B2 (en) * 2014-02-04 2018-08-07 Fastly, Inc. Communication path selection for content delivery
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9531679B2 (en) 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers
JP6093319B2 (ja) * 2014-02-27 2017-03-08 日本電信電話株式会社 クラスタシステム
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
WO2015145112A1 (en) * 2014-03-28 2015-10-01 British Telecommunications Public Limited Company Data retrieval
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9203885B2 (en) 2014-04-28 2015-12-01 Palo Alto Research Center Incorporated Method and apparatus for exchanging bidirectional streams over a content centric network
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9544388B1 (en) * 2014-05-09 2017-01-10 Amazon Technologies, Inc. Client-side predictive caching for content
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9467377B2 (en) 2014-06-19 2016-10-11 Palo Alto Research Center Incorporated Associating consumer states with interests in a content-centric network
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US20170286195A1 (en) * 2014-09-11 2017-10-05 Systemic Management Science Corporation Information object system
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US10003520B2 (en) * 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9479995B2 (en) * 2014-12-31 2016-10-25 Motorola Solutions, Inc. Methods and systems for maintaining routing tables in an ad-hoc wireless network
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US9326046B1 (en) 2015-03-19 2016-04-26 Amazon Technologies, Inc. Uninterrupted playback of video streams using lower quality cached files
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10015077B2 (en) 2015-05-22 2018-07-03 Microsoft Technology Licensing, Llc Forwarding current request based on, at least in part, previous request(s)
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
KR101686073B1 (ko) * 2015-07-22 2016-12-28 재단법인 실감교류인체감응솔루션연구단 클라이언트 단말이 제공받고자 하는 서비스 특성에 따라 네트워크 토폴로지를 적응적으로 변형하여 서비스를 제공받도록 지원하는 방법, 관리 서버 및 컴퓨터 판독 가능한 기록매체
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10200489B2 (en) * 2016-06-17 2019-02-05 Airwatch Llc Secure demand-driven file distribution
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10205787B2 (en) * 2016-07-14 2019-02-12 Juniper Networks, Inc. Method, system, and apparatus for reducing the size of route updates
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
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
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US11079942B2 (en) 2017-07-07 2021-08-03 Sap Se Shared filesystem for distributed data storage system
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
EP4199479A1 (de) 2017-08-28 2023-06-21 Bright Data Ltd. Verbesserung des abrufens von inhalten durch auswahl von tunnelvorrichtungen
JP6936673B2 (ja) * 2017-09-20 2021-09-22 株式会社アイシン 地図データ更新システムおよび地図データ更新プログラム
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11146626B2 (en) * 2018-11-01 2021-10-12 EMC IP Holding Company LLC Cloud computing environment with replication system configured to reduce latency of data read access
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
EP4220441A1 (de) 2019-02-25 2023-08-02 Bright Data Ltd. System und verfahren für url-abrufwiederholungsmechanismus
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
US11005923B2 (en) 2019-05-29 2021-05-11 Apple Inc. Proxy server selection based on server latency times
US20210021906A1 (en) * 2019-07-19 2021-01-21 Mo-Dv, Inc. Special network device
US11877350B2 (en) 2019-07-19 2024-01-16 Mo-Dv, Inc. Special local area network with secure data transfer
EP4272417A1 (de) * 2020-12-30 2023-11-08 Centurylink Intellectual Property LLC Empfehlungs- und implementierungssysteme und verfahren zur kantenberechnung

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US624801A (en) * 1899-05-09 h heissenberger
US3415323A (en) * 1965-07-28 1968-12-10 Ajovalasit Pietro Method and apparatus for spontaneous fire extinction in tanks of combustible or inflammable liquids
US5088032A (en) 1988-01-29 1992-02-11 Cisco Systems, Inc. Method and apparatus for routing communications among computer networks
US5115495A (en) 1988-10-18 1992-05-19 The Mitre Corporation Communications network system using full-juncture and partial-juncture station status information for alternate-path distance-vector routing
US5490203A (en) * 1993-07-26 1996-02-06 Bell Communications Research Inc. Method and system utilizing a location caching strategy to locate nomadic users in a communication services system
US6185619B1 (en) * 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US6003030A (en) 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6097718A (en) 1996-01-02 2000-08-01 Cisco Technology, Inc. Snapshot routing with route aging
US6182224B1 (en) 1995-09-29 2001-01-30 Cisco Systems, Inc. Enhanced network services using a subnetwork of communicating processors
US5859966A (en) 1995-10-10 1999-01-12 Data General Corporation Security system for computer systems
JP2728064B2 (ja) * 1995-11-20 1998-03-18 日本電気株式会社 アドレス解決方法
US5828665A (en) * 1996-05-01 1998-10-27 3Com Corporation Apparatus and method for selecting improved routing paths in an emulated lan over an ATM network
US6400681B1 (en) * 1996-06-20 2002-06-04 Cisco Technology, Inc. Method and system for minimizing the connection set up time in high speed packet switching networks
US6154777A (en) 1996-07-01 2000-11-28 Sun Microsystems, Inc. System for context-dependent name resolution
US5774660A (en) 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
JP2964963B2 (ja) 1996-09-20 1999-10-18 日本電気株式会社 ネットワーク自動設定システム
US6115742A (en) * 1996-12-11 2000-09-05 At&T Corporation Method and apparatus for secure and auditable metering over a communications network
US6052718A (en) 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US6138162A (en) * 1997-02-11 2000-10-24 Pointcast, Inc. Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request
US6201794B1 (en) 1997-03-07 2001-03-13 Advanced Micro Devices, Inc. Network with efficient message routing
US6034946A (en) * 1997-04-15 2000-03-07 International Business Machines Corporation Selection of routing paths in data communications networks to satisfy multiple requirements
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6189043B1 (en) * 1997-06-09 2001-02-13 At&T Corp Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation
SE507720C2 (sv) 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
US6012068A (en) * 1997-06-30 2000-01-04 International Business Machines Corporation Media manager for access to multiple media types
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US5822820A (en) 1997-08-20 1998-10-20 Heisler; Glenna Apparatus for cleaning a computer mouseball
US6266706B1 (en) 1997-09-15 2001-07-24 Effnet Group Ab Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams
CA2217277A1 (en) * 1997-10-03 1999-04-03 Newbridge Networks Corporation Automatic link establishment for distributed servers in atm networks
US6047330A (en) * 1998-01-20 2000-04-04 Netscape Communications Corporation Virtual router discovery system
US6038594A (en) * 1998-02-02 2000-03-14 Loral Cyberstar, Inc. Internet communication system and method with asymmetric terrestrial and satellite links
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6012067A (en) 1998-03-02 2000-01-04 Sarkar; Shyam Sundar Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
US6175869B1 (en) 1998-04-08 2001-01-16 Lucent Technologies Inc. Client-side techniques for web server allocation
US6130881A (en) * 1998-04-20 2000-10-10 Sarnoff Corporation Traffic routing in small wireless data networks
US6167444A (en) * 1998-05-08 2000-12-26 International Business Machines Corporation Method and system for exchanging routing information
US6115752A (en) 1998-05-21 2000-09-05 Sun Microsystems, Inc. System and method for server selection for mirrored sites
US6646989B1 (en) * 1998-06-29 2003-11-11 Lucent Technologies Inc. Hop-by-hop routing with node-dependent topology information
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6377551B1 (en) * 1998-08-17 2002-04-23 Nortel Networks Limited QoS based route determination method for communications networks
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6097178A (en) * 1998-09-14 2000-08-01 Linear Technology Corporation Circuits and methods for multiple-input, single-output, low-dropout voltage regulators
US6578066B1 (en) * 1999-09-17 2003-06-10 Alteon Websystems Distributed load-balancing internet servers
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US6298381B1 (en) * 1998-10-20 2001-10-02 Cisco Technology, Inc. System and method for information retrieval regarding services
US6205477B1 (en) * 1998-10-20 2001-03-20 Cisco Technology, Inc. Apparatus and method for performing traffic redirection in a distributed system using a portion metric
EP1125415B1 (de) 1998-11-02 2006-01-25 Airbiquity Inc. Geo-räumliche adressierung zum internet-protokoll
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6397246B1 (en) * 1998-11-13 2002-05-28 International Business Machines Corporation Method and system for processing document requests in a network system
US6553376B1 (en) 1998-11-18 2003-04-22 Infolibria, Inc. Efficient content server using request redirection
US6317778B1 (en) * 1998-11-23 2001-11-13 International Business Machines Corporation System and method for replacement and duplication of objects in a cache
JP2000196677A (ja) 1998-12-28 2000-07-14 Fujitsu Ltd ネットワ―クシステムに用いられる中継装置
US6611872B1 (en) 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US6314465B1 (en) * 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6735633B1 (en) 1999-06-01 2004-05-11 Fast Forward Networks System for bandwidth allocation in a computer network
US6601098B1 (en) * 1999-06-07 2003-07-29 International Business Machines Corporation Technique for measuring round-trip latency to computing devices requiring no client-side proxy presence
US6708187B1 (en) 1999-06-10 2004-03-16 Alcatel Method for selective LDAP database synchronization
US6574663B1 (en) * 1999-08-31 2003-06-03 Intel Corporation Active topology discovery in active networks
US6415323B1 (en) 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6721291B1 (en) 1999-10-19 2004-04-13 Nokia Ip Anycast binding mobile communication method and system
US6724733B1 (en) 1999-11-02 2004-04-20 Sun Microsystems, Inc. Method and apparatus for determining approximate network distances using reference locations
US6405252B1 (en) 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US20020029287A1 (en) 2000-02-02 2002-03-07 Yechiam Yemini Method and apparatus for dynamically addressing a circuits based network
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US6917985B2 (en) * 2000-03-10 2005-07-12 The Regents Of The University Of California Core assisted mesh protocol for multicast routing in ad-hoc Networks
US7565450B2 (en) * 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7552233B2 (en) * 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
US7162539B2 (en) 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
AU2001255744A1 (en) 2000-04-28 2001-11-12 Cenus Technologies, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
WO2001084802A2 (en) 2000-04-28 2001-11-08 Cenus Technologies, Inc. System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US7577754B2 (en) * 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
WO2001084803A2 (en) 2000-04-28 2001-11-08 Cenus Technologies, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
US7725596B2 (en) * 2000-04-28 2010-05-25 Adara Networks, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7343422B2 (en) * 2000-04-28 2008-03-11 Adara Networks, Inc. System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US6741585B1 (en) 2000-05-05 2004-05-25 Lucent Technologies Inc. Interworking of addressing in an internetwork
US7213062B1 (en) * 2000-06-01 2007-05-01 General Instrument Corporation Self-publishing network directory
US7200111B2 (en) * 2000-08-31 2007-04-03 The Regents Of The University Of California Method for improving TCP performance over wireless links
US6965938B1 (en) * 2000-09-07 2005-11-15 International Business Machines Corporation System and method for clustering servers for performance and load balancing
US6577609B2 (en) 2000-09-29 2003-06-10 Symbol Technologies, Inc. Local addressing of mobile units in a WLAN with multicast packet addressing
US7237113B2 (en) * 2000-12-11 2007-06-26 Intel Corporation Keyed authentication rollover for routers
US20020133537A1 (en) * 2001-03-12 2002-09-19 Whizz Technology Ltd. Server cluster and server-side cooperative caching method for use with same
US7111074B2 (en) * 2001-07-24 2006-09-19 Pluris, Inc. Control method for data path load-balancing on a data packet network
EP1433051B1 (de) 2001-09-10 2016-01-20 Adara Networks, Inc. System und verfahren zum informationsobjekt-routing in computernetzwerken
KR20030039428A (ko) * 2001-11-13 2003-05-22 학교법인대우학원 패킷 지연을 기반으로 하는 라우팅 방법
EP1458914B1 (de) * 2001-12-28 2007-07-25 Polymer Group, Inc. Vliesstoffe mit dauerhafter dreidimensionaler abbildung
US7580370B2 (en) * 2002-06-21 2009-08-25 International Business Machines Corporation Method and structure for autoconfiguration of network destinations

Also Published As

Publication number Publication date
US8423666B2 (en) 2013-04-16
EP1391096B1 (de) 2008-02-06
DK1391096T3 (da) 2008-06-09
AU2001252931A1 (en) 2001-09-24
US8433787B2 (en) 2013-04-30
US20100198913A1 (en) 2010-08-05
US20060271705A1 (en) 2006-11-30
US20160359722A9 (en) 2016-12-08
US20130311674A1 (en) 2013-11-21
ATE385643T1 (de) 2008-02-15
US20110093586A1 (en) 2011-04-21
EP1391096A2 (de) 2004-02-25
US8572214B2 (en) 2013-10-29
US9847930B2 (en) 2017-12-19
US7664876B2 (en) 2010-02-16
US20030101278A1 (en) 2003-05-29
US7162539B2 (en) 2007-01-09
DE60132718D1 (de) 2008-03-20
WO2001069457A3 (en) 2003-12-18
WO2001069457A2 (en) 2001-09-20
US20010056416A1 (en) 2001-12-27

Similar Documents

Publication Publication Date Title
DE60132718T2 (de) System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen
US7725596B2 (en) System and method for resolving network layer anycast addresses to network layer unicast addresses
US7908337B2 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7565450B2 (en) System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7343422B2 (en) System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
US7552233B2 (en) System and method for information object routing in computer networks
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
US20130227048A1 (en) Method for Collaborative Caching for Content-Oriented Networks
DE112019005826T5 (de) Lastverteilter Zugang zu verteilten Endpunkten unter Verwendung globaler Netzwerkadressen
DE60109947T2 (de) Verfahren zur Server-Auswahl in einem Inhaltsauslieferungsnetzwerk
Gwertzman et al. An analysis of geographical push-caching
Moreno et al. On content delivery network implementation
EP1433051B1 (de) System und verfahren zum informationsobjekt-routing in computernetzwerken
EP1277327B1 (de) Vorrichtung und verfahren mit url leitweglenkung in der netzwerkebene zur lokalisierung des nächstgelegenen servers mit spezifischen informationen
WO2001084802A2 (en) System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
Garcia-Luna-Aceves System and Method for Discovering Information Objects and Information Object Repositories in Computer Networks
WO2001084803A2 (en) System and method for resolving network layer anycast addresses to network layer unicast addresses
Davidson et al. Language constructs for timed atomic commitment
Qiu PhD Oral Examination Proposal Addressing the Challenge of Next Generation Network Applications

Legal Events

Date Code Title Description
8364 No opposition during term of opposition