DE60211524T2 - Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes - Google Patents

Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes Download PDF

Info

Publication number
DE60211524T2
DE60211524T2 DE60211524T DE60211524T DE60211524T2 DE 60211524 T2 DE60211524 T2 DE 60211524T2 DE 60211524 T DE60211524 T DE 60211524T DE 60211524 T DE60211524 T DE 60211524T DE 60211524 T2 DE60211524 T2 DE 60211524T2
Authority
DE
Germany
Prior art keywords
content
client
candidate
server
list
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
DE60211524T
Other languages
English (en)
Other versions
DE60211524D1 (de
Inventor
Wade Palo Alto HENNESSEY
John Los Gatos WAINWRIGHT
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.)
Kontiki Inc Sunnyvale
Kontiki Inc
Original Assignee
Kontiki Inc Sunnyvale
Kontiki 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 Kontiki Inc Sunnyvale, Kontiki Inc filed Critical Kontiki Inc Sunnyvale
Publication of DE60211524D1 publication Critical patent/DE60211524D1/de
Application granted granted Critical
Publication of DE60211524T2 publication Critical patent/DE60211524T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/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/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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by 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/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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computernetzwerke. Insbesondere betrifft die vorliegende Erfindung ein Verfahren und eine Vorrichtung zum Vereinfachen der verteilten Lieferung von Inhalten in einem Computernetzwerk.
  • Verwandter Stand der Technik
  • Die explosionsartig zunehmende Nutzung der Breitbandkommunikation hat dazu beigetragen, daß das Internet zu einem praktikablen Verteilungsmechanismus für Multimedia-Anwendungen und Videos hoher Qualität geworden ist. Ehe es die Breitbandkommunikation gab, waren herkömmliche Modems für die großen Dateigrößen, die Videoanwendungen erfordern, viel zu langsam. Nachdem nun immer mehr Menschen über Breitbandanschlüsse verfügen und immer größere Inhaltsobjekte anfordern, werden die Bandbreite und die Serverauslastung rasch zu einem Engpaß auf seiten der Verteiler. In einigen Fällen haben außergewöhnliche Ereignisse Online-Nachrichtenseiten praktisch zum Stillstand gebracht, weil Menschen sie scharenweise aufriefen, um Videoaufnahmen der Ereignisse zu sehen.
  • Einige Unternehmen haben versucht, dieses Problem zu lösen, indem sie Server-Farmen und Cluster errichteten. Diese waren bei der Handhabung von routinemäßigen Spitzen in der Nachfrage und bei der Schaffung einer Fehlertoleranzschwelle effektiv, erwiesen sich jedoch bei der Handhabung einer Nachfrage, die aus einem außergewöhnlichen Ereignis resultierte, als unwirksam.
  • Ein weiteres Problem von größerer Bandbreite ist die Belastung der Service-Provider durch die größere Bandbreite. Das Internet besteht aus zahlreichen kleineren Netzwerken, die untereinander Peer-Absprachen (Peering Arrangements) haben. Typischerweise müssen Service-Provider für Informationen, die außerhalb ihres Netzwerks übermittelt werden, mehr bezahlen. In gleicher Weise müssen Unternehmen typischerweise mehr bezahlen, wenn die Menge der durch sie angeforderten Informationen zunimmt.
  • Es wurden Versuche unternommen, diese Probleme zu mindern, indem Peer-to-Peer-Netzwerke mit verteilter Lieferung von Inhalten geschaffen wurden. In diesen Netzwerken werden Peers, die zuvor Inhalt heruntergeladen haben, für andere Peers, die den Inhalt nachfolgend anfordern, zu potentiellen Servern für den Inhalt. Obwohl diese Netzwerke für die Lieferung von Inhalten darin erfolgreich waren, den Internetverkehr von den Server-Farmen, wo die Informationen ursprünglich veröffentlicht wurden, weg zu verlagern, haben sie auch neue Probleme geschaffen.
  • Eines der größten Probleme bei klassischen Peer-to-Peer-Netzwerken ist die Leistung. Recht häufig hat ein Peer, zu dem ein Client für das Herunterladen von Inhalt geleitet wird, eine begrenzte Bandbreite und liegt in dem Netzwerk topologisch entfernt. In diesem Fall können sich die Herunterladezeiten auf seiten des Client sogar verlängern, und die Belastung der Bandbreite kann ebenfalls zunehmen, da der Verkehr über mehrere Netzwerke ablaufen muß.
  • Ein weiteres großes Problem von Netzwerken für die verteilte Lieferung von Inhalten ist der vermehrte lokale Verkehr, der aus lokal durchgeführten Suchen nach Inhalten resultiert. Mehr Clients in dem Netzwerk bringen mehr lokale Suchen mit sich. Wenn diese verteilten Netzwerke größer werden, verschlechtern sie sich sogar oder sie teilen sich in kleinere Teilsätze des gesamten Netzwerks auf.
  • Es besteht ein Bedarf nach einem Verfahren und einer Vorrichtung zum Vereinfachen der verteilten Lieferung von Inhalten in einem Netzwerk ohne die mit bestehenden Netzwerken zur verteilten Lieferung von Inhalten verknüpften Probleme.
  • Die US 6014667 offenbart ein Verfahren und ein System zum Ablegen von Informationen im Cachespeicher in einem verteilten Computersystem, wie einem Verzeichnisdienstsystem. Anforderungen nach Zugriff auf ein Objekt können betreut bzw. bearbeitet werden, indem man die im Cachespeicher abgelegten Informationen verwendet, statt zu versuchen, Ortsinformationen von Servern zu beschaffen.
  • Kangasharju et al., "Locating Copies of Objects Using the Domain Name System", in Proceedings of the International Caching Workshop, 1999, Seiten 1–12, offenbaren das Speichern in Caches im Netzwerk (Network Caching), wobei der Ursprungsserver eine Vorlage eines Objekts abspeichert und geographisch verteilte Cacheserver Kopien des Objekts ziehen und abspeichern. Es wird ein Ortsdatensystem vorgeschlagen, welches es einem beliebigen Host erlaubt, die IP-Adressen der Server zu beschaffen, die eine bestimmte URL speichern.
  • Vellanki und Chervenak, "Domain Caching: Building Web Services for Live Events", in Proceedings of the Second IEEE Workshop on Internet Applications, WIAPP 2001, San Jose, CA, USA, Juli 2001, S. 133–142, offenbaren das Ablegen von Domains in Caches, wobei die Belastung eines Servers dynamisch verteilt wird, indem ausgewählte Clients aufgefordert werden, Serverinhalte im Cache abzulegen und Anforderungen von nahegelegenen Clients zu betreuen bzw. zu bearbeiten.
  • Die WO 01/93064, die nur aufgrund von Artikel 54(3) EPÜ für die vorliegende Erfindung relevant ist, offenbart eine Vorrichtung zur Verwendung in Verbindung mit einem Netzwerk und stellt die dynamische Spiegelung von Objekten aus Netzwerkinhalten in Zusammenarbeit mit den Netzwerkknoten bereit.
  • ZUSAMMENFASSUNG
  • Dementsprechend stellt die vorliegende Erfindung ein Verfahren, eine Vorrichtung und ein Computerprogramm bereit, wie sie in den anhängenden Ansprüchen definiert sind.
  • Eine Ausführungsform liefert ein System, welches das Empfangen von Inhalten durch einen Client von einem oder mehreren Servern, die den Inhalt potentiell bereitstellen können, vereinfacht. Der Client beginnt, indem er eine Anforderung nach dem Inhalt an einen Verzeichnisserver sendet. In Reaktion auf die Anforderung empfängt bzw. erhält der Client eine Liste von Kandidaten servern, die potentiell den Inhalt von dem Verzeichnisserver bereitstellen können. Sobald der Client die Liste von Kandidatenservern empfangen hat, sendet der Client eine Anforderung nach dem Inhalt an einen oder mehrere der Kandidatenserver für den Inhalt und empfängt nachfolgend den Inhalt von einem oder mehreren der Kandidatenserver.
  • Bei einer Variation dieser Ausführungsform empfängt der Client Teile des Inhalts von mehreren Kandidatenservern. Der Client setzt dann den Inhalt aus den verschiedenen Teilen zusammen.
  • Bei einer Variation dieser Ausführungsform sendet der Client ein Feedback bzw. eine Rückantwort an den Server, das bzw. die den gegenwärtigen Status des Inhalts bei dem Client anzeigt. Diese Rückantwort bestimmt, welche Teile des Inhalts von dem Client empfangen wurden, welche Teile des Inhalts aktuell gerade von dem Client empfangen werden und welche Teile des Inhalts nicht von dem Client empfangen wurden.
  • Bei einer Variation dieser Ausführungsform sendet der Client eine Rückantwort an den Server, die Statusinformationen für die bei dem Client bereit gehaltenen Kandidatenserver enthält. Diese Rückantwort kann die Verfügbarkeit eines gegebenen Kandidatenservers, einen Leistungsindikator für den gegebenen Kandidatenserver und einen Verlauf eines Pfades von dem Client zu dem gegebenen Kandidatenserver beinhalten.
  • Bei einer Variation dieser Ausführungsform beinhaltet das Senden der Anforderung nach dem Inhalt an den Verzeichnisserver weiterhin das Senden eines Plans bzw. einer Abbildung des Inhalts, der bzw. die angibt, welche Teile des Inhalts der Client bereits hat. Zusätzlich beinhaltet das Senden der Anforderung für Clients, die hinter einer Netzwerkadreßübersetzungs- (Network Address Translation, NAT-) Vorrichtung liegen, auch das Senden der internen IP-Adresse des Client.
  • Bei einer Variation dieser Ausführungsform empfängt der Client eine Anforderung von einem sekundären Client, daß der Inhalt an den sekundären Client gesendet werden soll. In Reaktion auf die Anforderung sendet der Client den Inhalt an den sekundären Client.
  • Bei einer weiteren Variation dieser Ausführungsform sendet der Client Teile des Inhalts an den sekundären Client, während der Client noch immer Teile des Inhalts von einem Kandidatenserver empfängt.
  • Bei einer Variation dieser Ausführungsform ist die Liste von Kandidatenservern ein Teilsatz der kompletten Liste von Kandidatenservern.
  • Bei einer weiteren Variation dieser Ausführungsform sendet der Client eine Anforderung an den Verzeichnisserver, um einen zusätzlichen Teilsatz der kompletten Liste von Kandidatenservern anzufordern.
  • Bei einer Variation dieser Ausführungsform beinhaltet die Liste von Kandidatenservern einen Ursprungsserver, der die Originalquelle des Inhalts enthält. Die Liste von Kandidatenservern beinhaltet auch Spiegelserver, die von ihrer Leistung her dem Ursprungsserver ähnlich sind, jedoch Kopien der Originalquelle des Inhalts enthalten.
  • Bei einer Variation dieser Ausführungsform wartet der Client, falls der Inhalt von einem Kandidatenserver aus der Liste von Kandidatenservern nicht verfügbar ist, eine festgesetzte Zeitdauer, ehe er erneut versucht, den Inhalt von dem Kandidatenserver zu empfangen.
  • Bei einer weiteren Variation dieser Ausführungsform verlängert sich die festgesetzte Zeitdauer jedesmal, wenn der Client beim Empfangen des Inhalts von irgendeinem Kandidatenserver nicht erfolgreich war.
  • Bei einer weiteren Variation dieser Ausführungsform wird, falls der Inhalt von einem Kandidatenserver aus der Liste von Kandidatenservern für eine bestimmte Zeitdauer nicht verfügbar ist, der Kandidatenserver aus der Liste von Kandidatenservern entfernt.
  • Bei einer weiteren Variation dieser Ausführungsform wird, falls der Kandidatenserver bestimmte Leistungskriterien nicht erfüllt, der Kandidatenserver aus der Liste von Kandidatenservern entfernt.
  • Eine Ausführungsform liefert ein System, welches das Senden von Inhalt an einen Client in verteilter Weise vereinfacht. Das System beginnt damit, daß es eine Anforderung nach Inhalt von dem Client bei einem Verzeichnisserver empfängt. Der Verzeichnisserver sendet nachfolgend eine Antwort an den Client. Diese Antwort beinhaltet eine Liste von Kandidatenservern, die den Inhalt potentiell bereitstellen können. Der Verzeichnisserver fügt auch den Client der Liste von Kandidatenservern für den Inhalt hinzu, so daß der Client als Server für den Inhalt für nachfolgende Anforderungen von anderen Clients dienen kann.
  • Bei einer Variation dieser Ausführungsform wird die Liste von Kandidatenservern nach Netzwerkkriterien sortiert. Netzwerkkriterien für einen gegebenen Client können eine externe IP-Adresse beinhalten, die zu der externen IP-Adresse des gegebenen Client identisch ist, falls die Clients hinter einer NAT-Vorrichtung, einem autonomen System (AS), welches zu dem AS des gegebenen Client identisch oder diesem topologisch nahe ist, und einem IP/20-Netzwerk, welches zu dem IP/20-Netzwerk des gegebenen Client identisch oder diesem topologisch nahe ist, liegen. Bei einer weiteren Variation dieser Ausführungsform empfängt das System Border-Gateway-Protocol-(BGP-) Informationen, um das Sortieren der Liste von Kandidatenservern zu vereinfachen, so daß Kandidatenserver, die dem Client topologisch am nächsten bzw. ähnlichsten sind, in der Liste von Kandidatenservern höher angeordnet sind. Es sei angemerkt, daß die Liste von Kandidatenservern auch nach anderen Kriterien, wie beispielsweise nach Abschätzungen der Belastung der Kandidatenserver oder Abschätzungen der Leistung der Kandidatenserver, sortiert werden kann.
  • Bei einer Variation dieser Ausführungsform beinhaltet das Empfangen der Anforderung nach Inhalt von dem Client weiterhin folgendes: das Empfangen eines Plans bzw. einer Abbildung des Inhalts, der bzw. die angibt, welche Teile des Inhalts der Client bereits hat, das Empfangen der lokalen IP-Adresse des Client, die der Client ausdrücklich in die Anforderung eingeschlossen hat, und das Empfangen der externen IP-Adresse des Client.
  • Bei einer Variation dieser Ausführungsform ist die Liste von Kandidatenservern ein Teilsatz der kompletten Liste von Kandidatenservern.
  • Bei einer Variation dieser Ausführungsform beinhaltet die Liste von Kandidatenservern einen Ursprungsserver für den Inhalt.
  • Bei einer Variation dieser Ausführungsform sendet, falls ein Kandidatenserver aus der Liste von Kandidatenservern hinter einer Firewall liegt, der Verzeichnisserver eine Anforderung an den Kandidatenserver, die den Kandidatenserver dazu bringt, eine ausgehende Kommunikationssitzung durch die Firewall mit dem anfordernden Client zu initiieren.
  • Bei einer Variation dieser Ausführungsform sendet, falls ein Kandidatenserver aus der Liste von Kandidatenservern und der Client beide hinter Firewalls liegen, der Verzeichnisserver Anforderungen an den Kandidatenserver und an den Client, die den Kandidatenserver und den Client dazu bringen, einander gleichzeitig Nachrichten durch ihre jeweiligen Firewalls zu schicken, um eine Kommunikationssitzung zwischen dem Kandidatenserver und dem Client zu initiieren.
  • Bei einer Variation dieser Ausführungsform beinhaltet das System einen Erfassungsserver (Logging Server), der das Sammeln von Feedback bzw. Rückantworten von dem Client vereinfacht, damit der Verzeichnisserver den Prozeß der Auswahl eines Kandidatenteilsatzes erleichtert.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 veranschaulicht ein verteiltes Computersystem gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 veranschaulicht die Verzeichnisserverarchitektur gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 veranschaulicht ein Netzwerk mit Firewalls gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 veranschaulicht die Attribute einer Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 veranschaulicht die Inventarliste des Verzeichnisservers gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 6 veranschaulicht die Verarbeitung einer anfänglichen bzw. ersten Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 7 veranschaulicht die Verarbeitung einer nachfolgenden Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 8 veranschaulicht die Alterung der Inventarliste gemäß einer Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird gegeben, um einen beliebigen Fachmann auf dem Gebiet in die Lage zu versetzen, die Erfindung auszuführen und zu verwenden, und wird im Zusammenhang mit einer bestimmten Anwendung und deren Anforderung bereitgestellt. Verschiedene Modifikationen der offenbarten Ausführungsformen sind für Fachleute auf dem Gebiet offensichtlich.
  • Die Datenstrukturen und der Code, die in dieser ausführlichen Beschreibung erläutert werden, sind typischerweise auf einem computerlesbaren Speichermedium gespeichert, welches irgendeine Vorrichtung oder irgendein Medium sein kann, die bzw. das Code und/oder Daten für die Verwendung durch ein Computersystem speichern kann. Dies umfaßt magnetische und optische Speichereinrichtungen, wie Plattenlaufwerke, Magnetbänder, CDs (Compact Discs) und DVDs (Digital Versatile Discs oder Digital Video Discs), und Computerbefehlssignale, die in einem Übertragungsmedium (mit oder ohne Trägerwelle, auf der die Signale moduliert werden) verkörpert sind. Beispielsweise kann das Übertragungsmedium ein Kommunikationsnetzwerk, wie das Internet, beinhalten.
  • Verteiltes Rechnersystem
  • 1 veranschaulicht ein verteiltes Computersystem 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Das verteilte Computersystem 100 weist den Peer 101 und den Peer 102 auf. Die Peers 101 und 102 können im allgemeinen irgendeinen Knoten auf einem Netzwerk beinhalten, der Rechenfähigkeit besitzt und einen Mechanismus zum Kommunizieren in dem Netzwerk einschließt. Es sei angemerkt, daß die Peers 101 und 102 als Clients und als Kandidatenserver dienen können, die potentiell Inhalt an andere Clients liefern können. 1 beinhaltet auch Verzeichnisserver 104, 106 und 108, einen Logging-Server 110 und einen Ursprungsserver 112. Die Server 104, 106, 108, 110 und 112 können im allgemeinen irgendwelche Knoten auf einem Computernetzwerk beinhalten, die einen Mechanismus für das Betreuen bzw. Bearbeiten von Anforderungen eines Client nach Rechen- und/oder Datenspeicherressourcen einschließen.
  • In einer Ausführungsform der vorliegenden Erfindung sendet der Peer 101 eine Anforderung nach Inhalt an den Verzeichnisserver 104. Der Verzeichnisserver 104 kann die Anforderung zusätzlich an den Verzeichnisserver 106 oder den Verzeichnisserver 108 weiterleiten oder umleiten. Der Verzeichnisserver 104 sendet dann eine Liste von potentiellen Kandidaten zurück an den Peer 101. Es sei angemerkt, daß jedesmal dann, wenn ein Peer eine Anforderung nach Inhalt stellt, dieser Peer zu einem potentiellen Kandidatenserver für den Inhalt wird und in der Liste von potentiellen Kandidatenservern, die an andere Clients weitergeleitet wird, erscheinen kann. diese Liste von Kandidaten kann optional den Ursprungsserver 112 identifizieren, welcher die Originalquelle des Inhalts enthält. Der Peer 101 verwendet dann diese Liste, um Inhalt von dem Peer 102 anzufordern. Der Peer 101 sendet auch Feedback-Informationen zurück an den Logging-Server 110, z.B. betreffend die Teile des Inhalts, die er hat, und die Server, von denen er ein Herunterladen versucht hat. Der Logging-Server 110 leitet nachfolgend die Feedbackinformationen von dem Peer 101 an den Verzeichnisserver 104 weiter. Der Verzeichnisserver 104 verwendet diese Informationen in Reaktion auf zukünftige Anforderungen nach dem Inhalt.
  • Verzeichnisserver-Architektur
  • 2 veranschaulicht die Architektur des Verzeichnisservers 104 gemäß einer Ausführungsform der vorliegenden Erfindung. Der Verzeichnisserver 104 enthält die Inventarliste 212.
  • Die Inventarliste 212 beinhaltet eine Liste der potentiellen Kandidaten für Inhaltsobjekte, die veröffentlicht wurden. Wenn einer der anfordernden Peers 216 eine Anforderung nach Inhalt an den Verzeichnisserver 104 sendet, bestimmt das ASN-Nachschlagemodul (ASN Lookup Module) 208 die autonome Systemnummer (ASN) des autonomen Systems (AS), dem der Peer angehört.
  • Der Verzeichnisserver 104 pflegt bzw. hält einen Satz von priorisierten Inventarlisten 212, der auf den Objekten in den übereinstimmenden Sätzen 200 basiert. Diese Objekte beinhalten die ASN 202, das IP/20-Netzwerk 204 und die externe IP-Adresse 206. Es sei angemerkt, daß ein IP/20-Netzwerk eine Sammlung von Knoten ist, die ein aus 20 Bytes bestehendes IP-Adreßpräfix gemeinsam haben. Darüber hinaus kann eine externe IP-Adresse eine IP-Adresse beinhalten, die durch eine Netzwerkadreßübersetzungs- (Network Address Translation, NAT-) oder eine ähnliche Vorrichtung zugewiesen wurde, und sie kann sich von der internen IP-Adresse des Hosts unterscheiden. Das Server-Nachschlagemodul 210 bestimmt die externe IP-Adresse 206 des Peers und plaziert die Informationen in der Inventarliste 212. Wenn ein Kandidatenserver eine externe IP-Adresse hat, die mit der des Peers identisch ist, so ist es wahrscheinlich, daß er dem Peer topologisch nahe ist. In gleicher Weise ist es, wenn er demselben IP/20-Netzwerk angehört wie der Peer, relativ wahrscheinlich, daß er dem Peer topologisch nahe ist.
  • Das Server-Ready-Modul 214 empfängt Feedback-Informationen, die von den anfordernden Peers 216 (Server-Ready-Reports bzw. -Berichte) berichtet werden und aktualisiert die Inventarliste 212. Der Altersbegrenzer 218 der Inventarliste (Inventory Ager) entfernt Kandidaten aus der Inventarliste 212, wenn der Verzeichnisserver 104 innerhalb eines bestimmten Zeitraums nichts von den Kandidatenservern gehört hat.
  • Netzwerk mit Firewalls
  • 3 veranschaulicht ein Netzwerk mit Firewalls gemäß einer Ausführungsform der vorliegenden Erfindung. In 3 liegt ein Peer 101 hinter der Firewall 300, und der Peer 102 liegt hinter der Firewall 302. Darüber hinaus kommunizieren sowohl der Peer 101 als auch der Peer 102 durch ihre jeweiligen Firewalls mit dem Verzeichnisserver 104. Während dieser Kommunikation fordert der Peer 101 Inhalt von dem Verzeichnisserver 104 an. Als nächstes sendet der Verzeichnisserver 104 eine Liste von Kandidatenservern, einschließlich Peer 102, an den Peer 101. Der Peer 101 sendet dann über das User Datagram Protocol (UDP) eine Anforderung nach dem Inhalt an den Peer 102. Der Verzeichnisserver 104 sendet auch eine Anforderung an den Peer 102, daß dieser den Inhalt an den Peer 101 senden soll. Der Peer 102 sendet über UDP ein Paket an den Peer 101. (Es sei angemerkt, daß anstelle von UDP im allgemeinen auch andere verbindungsfreie Protokolle verwendet werden können.) Da die Anforderung von dem Peer 101 an den Peer 102 und das Paket von dem Peer 102 an den Peer 101 über ein verbindungsfreies bzw. verbindungsunabhängiges Protokoll geschickt wurden, öffnen sie Ports in den Firewalls 300 und 302, die die Errichtung einer Verbindung 304 zwischen dem Peer 101 und dem Peer 102 gestatten.
  • Attribute einer Inhaltsanforderung
  • 4 veranschaulicht die Attribute einer Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung. Die eingehende Anforderung 400 beinhaltet die folgenden Attribute: die interne IP-Adresse 402, die externe IP-Adresse 404 und die MOID 408. Es sei angemerkt, daß die MOID 408 eine eindeutige Kennung des Inhalts ist, die zugewiesen wird, wenn der Inhalt veröffentlicht wird. Die interne IP-Adresse 402 ist die IP-Adresse, die an dem Knoten zugewiesen wird, und die externe IP-Adresse 404 ist die IP-Adresse einer Netzwerkadreßübersetzungs-(NAT-) oder einer ähnlichen Vorrichtung. Es sei angemerkt, daß es aufgrund der Popularität von NAT-Vorrichtungen sehr üblich ist, daß Peers in einem durch eine NAT aufgebauten LAN verschiedene interne IP-Adressen und eine identische externe IP-Adresse haben. Es ist auch möglich, die Inhaltsanforderung zu analysieren, um die ASN für das AS des Anfordernden zu bestimmen. Die ASN ist die Kennung des autonomen Systems (AS), zu dem ein Knoten gehört.
  • Inventarliste des Verzeichnisservers
  • 5 veranschaulicht die Inventarliste 212 des Verzeichnisservers aus 2 gemäß einer Ausführungsform der vorliegenden Erfindung. Die Inventarliste 212 beinhaltet eine Liste des gesamten Inhalts und aller möglichen Kandidatenserver für den Inhalt, die dem Verzeichnisserver 104 bekannt sind. Die Inventarliste 212 beinhaltet auch die MOID 408, die den Inhalt identifiziert, den Knoten 502, der einen Kandidatenserver für den Inhalt identifiziert, und einen Bereichssatz 504, der die Stücke des Inhalts identifiziert, von denen in der Vergangenheit berichtet wurde, daß der Kandidatenserver sie hat. In einer Ausführungsform der vorliegenden Erfindung wird der Knoten 502 unter Verwendung standardmäßiger PKI-Techniken identifiziert.
  • Anfängliche Inhaltsanforderung
  • 6 veranschaulicht die Verarbeitung einer anfänglichen Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung. Das System startet, wenn der Inhalt angefordert wird und der Peer 101 keinen Teil des Inhalts hat (Schritt 600).
  • Zuerst sendet der Peer 101 eine Anforderung nach dem Herunterladen einer Datei mit einem leeren Bereichssatz an den Verzeichnisserver 104 (Schritt 602). Als nächstes führt der Verzeichnisserver 104 aus der Inventarliste 212 eine Serversuche bzw. ein Nachschlagen von Servern durch und erzeugt eine priorisierte Liste von Kandidatenservern für den Inhalt (Schritt 604). Dann gibt der Verzeichnisserver 104 die höchsten bzw. obersten n Kandidatenserver aus der priorisierten Liste an den Peer 101 zurück (Schritt 606). Schließlich trägt der Verzeichnisserver 104 den Peer 101 in der Inventarliste 212 als möglichen zukünftigen Kandidatenserver für den Inhalt ein (Schritt 608).
  • Nachfolgende Inhaltsanforderung
  • 7 veranschaulicht die Verarbeitung einer nachfolgenden Inhaltsanforderung gemäß einer Ausführungsform der vorliegenden Erfindung. Das System startet, wenn der Peer 101 einen Teil einer Datei empfangen hat, jedoch eine bestimmte Anzahl von Kandidatenservern für die Datei gestrichen bzw. verworfen hat (Schritt 700).
  • Zuerst sendet der Peer 101 eine Anforderung nach dem Herunterladen einer Datei, wobei die Anforderung einen aktualisierten Bereichssatz und eine Liste von ausprobierten Servern einschließt, an den Verzeichnisserver 104 (Schritt 702). Als nächstes führt der Verzeichnisserver 104 aus der Inventarliste 212 eine Serversuche durch und erzeugt eine priorisierte Liste von Kandidatenservern für den Peer 101 (Schritt 704). Dann filtert der Verzeichnisserver 104 die zuvor ausprobierten Server aus und gibt die höchsten n Kandidatenserver aus der priorisierten Liste an den Peer 101 zurück (Schritt 706). Schließlich aktualisiert der Verzeichnisserver 104 den Dateibereichssatz des Inhalts in der Inventarliste 212 für den Peer 101 (Schritt 708).
  • Alterung der Inventarliste
  • 8 veranschaulicht den Vorgang der Alterung bzw. Altersbegrenzung der Inventarliste gemäß einer Ausführungsform der vorliegenden Erfindung. Der Peer 101 sendet dem Verzeichnisserver 104 periodisch einen Server-Ready-Bericht, der Dateibereichssätze für Inhalt, der auf dem Peer 101 verfügbar ist, enthält (Schritt 800). Es sei angemerkt, daß in einer Ausführungsform der vorliegenden Erfindung der Peer 101 den Server-Ready-Bericht an den Logging-Server 110 sendet, der die Informationen dem Verzeichnisserver 104 bereitstellt. Sobald der Verzeichnisserver 104 diese neuen Informationen hat, aktualisiert der Verzeichnisserver 104 die Inventarliste 212, damit diese jegliche durch die neuen Informationen spezifizierte Änderungen widerspiegelt (Schritt 802). In einer weiteren Ausführungsform der vorliegenden Erfindung sendet der Peer 101 den Server-Ready-Bericht direkt an den Verzeichnisserver 104. Der Verzeichnisserver sortiert periodisch alte Peers aus, die innerhalb eines zuvor festgelegten Zeitraums keinen Server-Ready-Bericht gesendet haben (Schritt 804).
  • Details der Implementierung
  • Dieser Abschnitt gibt einen Überblick über die Methode der Verteilung von Daten (Medienobjekten) gemäß einer Ausführungsform der vorliegenden Erfindung. Es sei angemerkt, daß die Details der Implementierung, die in diesem Abschnitt beschrieben werden, beispielhaft sind und die vorliegende Erfindung nicht beschränken sollen.
  • Peer-Überblick
  • Das Back-End des Clients (der Peer) handhabt das Laden bzw. die Ladevorgänge und die Bearbeitung bzw. Lieferung auf Basis von Metadaten und Benutzeranforderungen, die vom Front-End verarbeitet werden. Es widmet den Ladevorgängen und der Lieferung eine bestimmte Anzahl von Threads (beispielsweise jeweils 12). Jede solche Ladeeinrichtung oder jeder Server kann eine Verbindung unterstützen. Wenn keine Drosselung erfolgt, akzeptiert der Peer Serververbindungen bis zu diesem Grenzwert und errichtet Ladeverbindungen bis zu diesem Grenzwert, falls Arbeiten ausgeführt werden müssen.
  • Der Peer empfängt eine Anforderung, Inhalt zu laden. Dem Objekt wird eine Priorität zugewiesen. Objekte höherer Priorität werden bevorzugt zu Objekten niedrigerer Priorität geladen. Wenn ein Objekt höherer Priorität bearbeitet werden muß und keine Ladeeinrichtung bzw. kein Ladeprogramm verfügbar ist, wird die Ladeeinrichtung mit der niedrigsten Priorität ausgewählt und dem Objekt höherer Priorität neu zugewiesen. In einer Ausführungsform der vorliegenden Erfindung gibt es eine Dateienpriorität für jeden Dateityp, und weiterhin gibt es für jeden Peer, der als Server für die Datei dienen kann, eine Peerpriorität.
  • Objekte können wie folgt priorisiert werden:
    • 1. Objekte, die vom Front-End als "Vordergrundobjekte" bezeichnet werden, sind mit der gegenwärtigen Aktivität des Benutzers verknüpft. Diese Vordergrundobjekte haben Vorrang gegenüber denjenigen, die als Hintergrundobjekte bezeichnet werden und die nicht direkt mit der derzeitigen Aktivität des Benutzers verknüpft sind (z.B. Objekte, die durch ein Abonnement automatisch aufkommen).
    • 2. Ansonsten werden Objekte ihrer Reihenfolge entsprechend priorisiert.
  • Der Peer wandelt die Ladeanforderung in einen Satz von Kandidatenservern oder Zielen um. Diese sind potentielle Quellen für den Inhalt und werden zuerst nach "Objektpriorität" (auch als "Dateipriorität" bezeichnet) und dann nach Zielpriorität (auch als "Ladepriorität" bezeichnet) priorisiert. Eine freie Ladeeinrichtung übernimmt das verfügbare Ziel mit der höchsten Priorität. (Eine Ausnahme hierzu besteht darin, daß ein Ziel, das keine Bereichsanforderungen (Range Requests) unterstützt, nicht übernommen wird, wenn es für das gleiche Objekt irgendein anderes verfügbares oder ladbares Ziel gibt.) Ein Ziel wird im allgemeinen niemals von mehreren Ladeeinrichtungen übernommen.
  • Das angeforderte Objekt wird vom Front-End entweder als bekannt oder als unbekannt bezeichnet. Wenn es unbekannt ist, liefert die Anforderung den Uniform Resource Locator (die URL) des Hypertext-Übertragungsprotokolls (Hypertext Transfer Protocol, http) oder des Dateiübertragungsprotokolls (File Transfer Protocol, ftp). Es werden mehrere Ziele (beispielsweise vier, oder eines falls ein Verbinden nicht freigegeben ist), erzeugt, die diese URL repräsentieren. Wenn das Objekt bekannt ist, wird ein Ziel erzeugt, welches den Verzeichnisserver repräsentiert, von dem erwartet wird, daß er weitere Ziele bereitstellt. Die von dem Verzeichnisserver zurückgegebenen Ziele werden mit Zielprioritäten markiert, die jeweils höher sind als die Zielpriorität des Verzeichnisservers selbst.
  • Ziele für ein Ladeobjekt sind entweder ladbar, verfügbar, verzögert oder als schlecht markiert. Wenn das Front-End beim Laden eines Objekts pausiert und das Laden dann wiederaufnimmt, werden all seine Ziele verfügbar gemacht. Ein Ziel wird zurückgestellt oder als schlecht bzw. unbrauchbar markiert, wenn das Laden von dem Ziel zu einem Fehler führt. Ein zurückgestelltes Ziel wird zu einem festgelegten Zeitpunkt in der Zukunft wieder verfügbar. Wiederholte Verzögerungen bzw. Zurückstellungen gelten für größere Zeiträume bis zu einem Maximum (beispielsweise 1/4, 1, 4, 16 und 64 Minuten). Das Verzögerungsintervall wird durch ein erfolgreiches Laden zurückgesetzt.
  • Der Verzeichnisserver beginnt mit einer Verzögerung von einer Minute, selbst wenn er Ziele liefert (was sein Verzögerungsintervall zurücksetzt).
  • Überblick über Verzeichnisserver
  • Der Verzeichnisserver 104 empfängt eine Anforderung nach Zielen für ein Medienobjekt. Die Anforderung beinhaltet die Liste von Zielen, die dem Anfordernden bereits bekannt sind. Der Verzeichnisserver 104 gibt eine Liste von Zielen zurück, die noch nicht bekannt sind, mit Zielprioritäten und den Informationen, die notwendig sind, um sie zu kontaktieren.
  • Wenn der Verzeichnisserver 104 nichts über das Objekt weiß, wird er dem Anfordernden mitteilen, daß er fünf Sekunden warten und es dann erneut versuchen soll. Inzwischen kontaktiert er den Metadatenserver für Informationen über das Objekt. Der Metadatenserver beinhaltet Informationen über den gesamten veröffentlichten Inhalt einschließlich der Originalquelle des Inhalts. Wenn dies fehlschlägt, erinnert er sich für eine Zeitdauer an den Fehlschlag (beispielsweise zwei Minuten) und teilt allen Peers, die Ziele für dieses Objekt anfordern, mit, daß es nicht zu finden ist. (Dies bringt die Peers dazu, das Herunterladen bzw. den Download abzubrechen.) Wenn der Metadatenabruf erfolgreich ist, erfährt der Verzeichnisserver 104 von einem oder mehreren Ursprungsservern, die er als Ziele liefern kann.
  • Wenn der Verzeichnisserver 104 dem Anfordernden potentielle Ziele bereitstellt, fügt er den Anfordernden seinem Satz von möglichen Zielen hinzu. Der Anfordernde fällt nach einer Zeitdauer (beispielsweise zwei Stunden oder unverzüglich, falls der Anfordernde das Netzwerk verlassen hat) aus diesem Satz heraus. Um den Satz von Zielen des Verzeichnisservers aktuell zu halten, berichten die Peers periodisch (beispielsweise stündlich) darüber, welche Objekte sie bereitstellen können.
  • Antwortstrategie des Verzeichnisservers
  • Die Liste von Zielen (Peers und Ursprünge), die für ein bekanntes Objekt zurückgegeben werden, wird wie folgt bestimmt (in der Reihenfolge absteigender Priorität):
    • 1. Wenn ein Ziel von dem Anfordernden als bekannt gemeldet wird, wird es nicht zurückgeliefert.
    • 2. Jede Anforderung von dem Anfordemden nach dem Objekt, die dazu führt, daß Ziele zurückgegeben werden, wird gezählt. Wenn seit der letzten erfüllten Anforderung ausreichend Zeit verstrichen ist (beispielsweise 30 Minuten), wird die Zählung bzw. die Anzahl zurückgesetzt. Wenn die Anzahl 500 oder mehr beträgt, werden keine Peer-Ziele zurückgeliefert. Dies schützt die Peers und den Verzeichnisserver vor einer Überzahl von Anforderungen.
    • 3. Es wird höchstens eine zuvor festgelegte Anzahl von Zielen zurückgeliefert.
    • 4. Veraltete Peers werden nicht zurückgeliefert.
    • 5. Jede Zurücklieferung eines Peers (als Ziel für irgendein Objekt) wird gezählt. Wenn ein Peer den Verzeichnisserver 104 besucht, wird diese Zählung auf die Anzahl von aktiv bearbeiteten Threads des Peers zurückgesetzt.
    • 6. Es werden Ziele mit der höchsten Priorität zurückgeliefert.
    • 7. Den Ursprüngen wird eine niedrigere Priorität zugewiesen als den Peers.
    • 8. Die Peers haben eine Basispriorität von zwei. Wenn sie eine Anzahl von Zurücklieferungen bzw. Antworten haben, die nicht Null ist, ist ihre Basispriorität eins geteilt durch die Anzahl von Zurücklieferungen. (Dies verteilt die Belastung.)
    • 9. Die Priorität des Peers wird um 330 (=10(32 + 1)) erhöht, wenn er dieselbe externe IP-Adresse wie der Anfordernde hat. Ansonsten wird die Priorität des Peers um 210 (=10(20 + 1)) erhöht, wenn er die ersten 20 Bits (konfigurierbar) seiner internen IP-Adresse mit dem Anfordernden gemeinsam hat. Ansonsten wird die Priorität des Peers um 10 (=10(0 + 1)) erhöht, wenn er in derselben ASN (nicht Null) ist wie der Anfordernde. (lokale Quellen werden bevorzugt)
  • Überblick über Peer-Ladeeinrichtungen
  • Die Peer-Ladeeinrichtung, ein Mechanismus, der ein Stück bzw. einen Teil einer Datei empfängt, fordert Daten von einem Ziel bereichsweise an. Diese Bereichsgröße muß ausreichend groß sein, damit der Anforderungsüberhang klein ist, jedoch auch klein genug, so daß der Peer sich schnell an eine sich ändernde Verfügbarkeit und Leistung der Ladeeinrichtung anpassen kann. Die Ladeeinrichtung liest diesen Bereich aus, indem jeweils immer ein Lesebereich gelesen wird. Die Größe des Lesebereichs, die eine Drosselung vereinfacht, ist die zu erwartende Menge, die in einer Sekunde herunterladbar ist, und hat ein Zeitlimit von 10 Sekunden (Timeout). Fehler und andere Beendigungsbedingungen der Ladeeinrichtung werden nach jedem Lesebereich überprüft, und das Lesen kann unterbrochen werden, wenn das Herunterladen beendet oder abgebrochen wird. Die Größe des Anforderungsbereichs auf 128 kb oder auf den Lesebereich beschränkt, je nachdem, was größer ist.
  • Bereichszuteilung
  • Ein Ziel, das keine Bereichsanforderungen unterstützt, wird in effizienter Weise für den ersten benötigten Bereich angefordert. Irgendein anderes Ziel wird für einen Bereich angefordert, der bei einer bevorzugten Verschiebung bzw. einem bevorzugten Abstand beginnt und bei der Größenbegrenzung, dem EOF, oder dem nächsten bereits geladenen oder einer Ladeeinrichtung zugewiesenen Bereich endet. Wenn eine Ladeeinrichtung auf einen Bereich trifft, der einer anderen Ladeeinrichtung zugewiesen ist, wird sie ausgewählt (die Ladeeinrichtung gibt das Ziel auf, welches dann anderen Ladeeinrichtungen zur Verfügung gestellt wird). Wenn kaum noch etwas herunterzuladen ist, können alle Ladeeinrichtungen denselben Bereich laden (wobei sie sich beeilen, das Herunterladen zu beenden).
  • Um die bevorzugte Verschiebung zu finden, erzeugt die Ladeeinrichtung zuerst einen Kandidatenbereichssatz und wählt dann aus dem Satz einen Bereich aus. Der Kandidatenbereichssatz kann der erste der nachfolgenden sein, der nicht leer ist:
    • 1. ein Satz von Bytes, die nicht zugewiesen sind, die das Ziel hat und die alle anderen unvollständigen Ladeziele nicht haben (so daß der Peer einen anderen Bereich vervollständigt als seine "Nachbarn"),
    • 2. ein Satz von Bytes, die nicht zugewiesen sind und die das Ziel hat,
    • 3. ein Satz von Bytes, die nicht zugewiesen sind, und
    • 4. ein Satz von Bytes, die einer anderen Ladeeinrichtung zugewiesen sind.
  • Dann kann der ausgewählte Bereich aus dem Bereichssatz einer der folgenden sein:
    • 1. er kann mit dem letzten Bereich, der von dem Ziel empfangen wurde, zusammenhängen,
    • 2. er kann Teil eines Bereichs mit offenem Ende am Ende eines Satzes einer unbekannten maximalen Größe sein, • Die Verschiebung liegt um 32 * (die Bereichsgrößenbegrenzung) vom Anfang dieses Bereichs entfernt. (Dies dient dazu, aufzudecken, wie weit sich die Datei erstreckt, indem ausgeholt wird, bis das EOF gefunden wurde.)
    • 3. er kann Teil des größten Bereichs in dem Bereichssatz sein, • Die Verschiebung liegt in der Mitte dieses Bereichs, wenn danach ausreichend Bytes für einen Bereich voller Größe folgen, oder wenn die Bytes in dem Bereich einer anderen Ladeeinrichtung zugewiesen sind. (Wenn Ladeeinrichtungen versuchen, ihre Ladevorgänge soweit wie möglich voneinander entfernt zu beginnen, sind sie besser in der Lage, zusammenhängend zu laden, ehe sie auf etwas stoßen, das bereits von jemand anderem geladen wurde.) • Ansonsten liegt die Verschiebung am Anfang dieses Bereichs. (So werden die Bereiche nicht in Bereiche unterteilt, die so klein sind, daß sie wirkungslos sind.)
  • Fehler
  • I/O-Fehler führen zu einer Verzögerung. Eine Ausnahme ist gegeben, wenn eine Verbindung zu einem Peer-Ziel nicht hergestellt werden kann; dies führt dazu, daß das Ziel als schlecht markiert wird. Wenn ein Ziel eine uneinheitliche Dateigröße meldet oder berichtet, daß es die Objektdatei nicht hat, oder wenn es keine Ladeerlaubnis gewährt, wird das Ziel als unbrauchbar markiert. Wenn der Verzeichnisserver einen solchen Bericht zurückgibt, wird das Herunterladen abgebrochen.
  • Jede Datei hat eine Signatur, die aus einem Satz von Blocksignaturen besteht. Während des Herunterladens wird jeder 1 MB große Block bei seiner Vervollständigung überprüft. Wenn die Überprüfung eines Blocks fehlschlägt, werden alle dazu beitragenden Peer-Ziele als unbrauchbar markiert. Wenn der Block komplett durch Ursprünge geliefert wurde, wird das Herunterladen abgebrochen.
  • Ein Verzögerungsfehler kann auch durch einen schlechten Dienst verursacht werden. Ein schlechter Dienst kann so definiert werden, daß es zwei Minuten lang keine Bytes gibt, oder wenn nach zwei Minuten alle Ladeeinrichtungen beschäftigt sind und es ein verfügbares Ziel für das Objekt gibt und diese Ladeeinrichtung weniger als ein Drittel der mittleren Bandbreite für Ladeeinrichtungen für dieses Objekt oder weniger als 250 Bytes/Sek. bekommt.
  • Eine Warteanforderung von mehr als zehn Sekunden oder eine Warteanforderung von einem Verzeichnisserver wird eher als eine Verzögerung gehandhabt (die Ladeeinrichtung gibt das Ziel auf) denn als Pause.
  • Überblick über Peer-Server
  • Wenn ein Peer das Netzwerk verläßt oder von einem Objekt nichts weiß oder wenn seine Kopie schlecht ist, wird er das Objekt nicht liefern. Ansonsten liefert er den größten zusammenhängenden Bereich von Bytes, den er hat und deren Signatur überprüft wurde (wenn es eine Blocksignatur gab) und den der Anfordernde angefordert hat. Die Überprüfung der Signatur beinhaltet das Berechnen einer Prüfsumme für einen Block und das Vergleichen derselben mit einer verschlüsselten Prüfsumme aus einer vertrauenswürdigen Quelle, um die Datenintegrität sicherzustellen. Wenn es keine solchen Bytes gibt, fordert der Server den Anfordernden auf, 5 Sekunden zu warten und es dann erneut zu versuchen. Der Server berichtet dem Anfordernden, welche Bytes er hat, so daß die nächste Anforderung auf Basis besserer Informationen erfolgt. Wenn der Server das Objekt noch immer lädt, fügt er den Anfordernden zu seiner Liste von Zielen hinzu. (Der Server erfährt als Teil der Anforderung, welche Bytes der Anfordernde hat.)
  • Anmerkungen zur Implementierung
  • Jeder Peer und der Verzeichnisserver pflegen eine Datenbank innerhalb des Speichers oder eine Inventarliste von Objekten und Zielen. Die Inventarliste ist ein Satz von Objekteinträgen (MOs), ein Satz von Peer- und Ursprungseinträgen (Knoten) und ein Satz von Einträgen mit Informationen über den Zustand des Objekts auf dem Peer oder dem Ursprung (MOKnoten). Jeder Eintrag enthält Informationen über die relevante Einheit. Beispielsweise enthalten Knoten Kontaktinformationen, wie IP-Adressen und Ports, und MOKnoten enthalten einen Bereichssatz, der aufzeichnet bzw. erfaßt, welche Teile einer Objektdatei auf einem Peer oder einem Ursprung verfügbar sind. Die Inventarliste unterhält auch Teilsätze dieser Sätze, die nach verschiedenen Kriterien sortiert sind, um den Zugriff schnell zu machen. Beispielsweise enthält die Inventarliste Teilsätze von MOKnoten, die nach Objekten und dann nach der Zielpriorität sortiert sind. Der Verzeichnisserver entfernt abgelaufene Einträge langsam. Der Peer entfernt Zieleinträge, wenn das Herunterladen abgeschlossen ist oder abgebrochen wurde, und er entfernt Objekteinträge, wenn das Objekt gelöscht wurde.
  • Die vorstehenden Beschreibungen von Ausführungsformen der vorliegenden Erfindung wurden lediglich zu Zwecken der Veranschaulichung und Beschreibung gegeben. Sie sollen nicht erschöpfend sein oder die vorliegende Erfindung auf die offenbarten Formen beschränken.
  • Entsprechend sind viele Modifikationen und Variationen für Fachleute auf dem Gebiet offensichtlich. Des weiteren soll die obige Offenbarung die vorliegende Erfindung nicht beschränken. Der Schutzumfang der vorliegenden Erfindung wird durch die anhängenden Ansprüche definiert.

Claims (27)

  1. Verfahren zum Empfangen von Inhalt durch einen Client (101) von einem oder mehreren Servern, die potentiell den Inhalt bereitstellen können, wobei das Verfahren aufweist: Senden einer Anforderung (400) nach dem Inhalt an einen Verzeichnisserver (104), der Information darüber speichert, wo der Inhalt möglicherweise lokalisiert ist, wobei die Inhaltsanforderung eine eindeutige Kennung (408) des Inhaltes enthält, die zugeordnet wird, wenn der Inhalt veröffentlicht wird, in Antwort auf eine Anforderung Empfangen einer Antwort von dem Verzeichnisserver, welche eine Liste von Kandidatenservern enthält, die möglicherweise den Inhalt bereitstellen können, wobei zumindest einer der Kandidatenserver hinter einer Firewall (302) liegt, Senden einer Anforderung an zumindest einen Kandidatenserver (102) aus der Liste von Kandidatenservern für den Inhalt, und Empfangen des Inhaltes von zumindest einem Kandidatenserver.
  2. Verfahren nach Anspruch 1, wobei das Empfangen des Inhaltes von zumindest einem Kandidatenserver das Empfangen von Teilen des Inhaltes von mehreren Kandidatenservern und Zusammensetzen der Teile bei dem Client beinhaltet.
  3. Verfahren nach Anspruch 1, welches weiterhin das Senden einer Rückkopplung an bzw. Rückantwort an den Verzeichnisserver aufweist, wobei die Rückantwort einen Plan bzw. eine Abbildung des Inhaltes enthält, um anzuzeigen: welche Teile des Inhaltes durch den Client empfangen wurden, welche Teile des Inhaltes aktuell gerade durch den Client empfangen werden und welche Teile des Inhaltes noch nicht durch den Client empfangen wurden.
  4. Verfahren nach Anspruch 1, welches weiterhin das Senden eines Feedbacks bzw. einer Rückantwort an den Verzeichnisserver aufweist, wobei die Rückantwort Statusinformation für Kandidatenserver enthält, um anzuzeigen: eine Verfügbarkeit eines gegebenen Kandidatenservers, einen Leistungsindikator für einen gegebenen Kandidatenserver und einen Verlauf eines Pfades von dem Client zu dem gegebenen Kandidatenserver.
  5. Verfahren nach Anspruch 1, wobei das Senden der Anforderung des Inhaltes an den Verzeichnisserver weiterhin das Senden von folgendem umfaßt: einer Abbildung bzw. eines Planes des Inhaltes, welcher anzeigt, welche Teile des Inhaltes der Client bereits hat, und der lokalen IP-Adresse des Client.
  6. Verfahren nach Anspruch 1, welches weiterhin aufweist: Empfangen einer Anforderung bei dem Client von einem sekundären Client, daß der Inhalt an den sekundären Client gesendet werden soll, und in Reaktion auf die Anforderung Senden des Inhaltes an den sekundären Client.
  7. Verfahren nach Anspruch 6, wobei der Vorgang des Sendens des Inhaltes an den sekundären Client stattfindet, während der Inhalt von dem Client empfangen wird.
  8. Verfahren nach Anspruch 1, wobei die Liste von Kandidatenservern ein Teilsatz der kompletten Liste von Kandidatenservern ist.
  9. Verfahren nach Anspruch 8, welches weiterhin das Senden einer Anforderung an den Verzeichnisserver aufweist, durch welche ein zusätzlicher Teilsatz der kompletten Liste von Kandidatenservern angefordert wird.
  10. Verfahren nach Anspruch 1, wobei die Liste von Kandidatenservern einen Ursprungsserver (112) umfaßt, der die Originalquelle des Inhaltes enthält.
  11. Verfahren nach Anspruch 1, wobei dann, wenn der Inhalt nicht von einem Kandidatenserver in der Liste von Kandidatenservern verfügbar war, das Verfahren weiterhin das Warten für eine festgesetzte Zeitdauer aufweist, bevor erneut versucht wird, den Inhalt von dem Kandidatenserver zu empfangen.
  12. Verfahren nach Anspruch 11, wobei sich die festgesetzte Zeitdauer jedesmal dann verlängert, wenn der Client beim Empfang des Inhaltes von einem Kandidatenserver in der Liste von Kandidatenservern nicht erfolgreich war.
  13. Verfahren nach Anspruch 11, wobei dann, wenn der Inhalt nicht von einem Kandidatenserver in der Liste von Kandidatenservern innerhalb eines gewissen Zeitraumes erhältlich war, das Verfahren weiterhin das Entfernen des Kandidatenservers aus der Liste von Kandidatenservern aufweist.
  14. Verfahren nach Anspruch 11, wobei dann, wenn ein Kandidatenserver in der Liste von Kandidatenservern gewisse Leistungskriterien nicht erfüllt, das Verfahren weiterhin das Entfernen des Kandidatenservers von der Liste von Kandidatenservern aufweist.
  15. Verfahren zum Senden von Inhalt zu einem Client (101) in verteilter Weise, welches aufweist: Empfangen einer Anforderung (400) des Inhaltes von dem Client bei einem Verzeichnisserver (104), wobei die Inhaltsanforderung eine eindeutige Kennung (408) des Inhaltes enthält, welche dem Inhalt zugeordnet wird, wenn dieser veröffentlicht wird, Senden einer Antwort an den Client, welche eine Liste von Kandidatenservern enthält, die potentiell den Inhalt bereitstellen können, wobei zumindest einer der Kandidatenserver hinter einer Firewall (302) liegt, und Hinzufügen des Client zu der Liste von Kandidatenservern für den Inhalt, so daß der Client für nachfolgende Anforderungen des Inhaltes, die von anderen Clients kommen, als ein Server für den Inhalt dienen kann.
  16. Verfahren nach Anspruch 15, wobei die Liste von Kandidatenservern nach Netzwerkkriterien sortiert ist, wobei Netzwerkkriterien für einen gegebenen Client umfassen: eine externe IP-Adresse, die identisch mit der externen IP-Adresse des gegebenen Client ist, ein autonomes System (AS), welches mit dem AS des gegebenen Client identisch ist oder diesem topologisch naheliegt, und ein IP/20-Netzwerk (204), welches identisch mit dem IP/20-Netzwerk (204) des gegebenen Client ist.
  17. Verfahren nach Anspruch 16, welches weiterhin das Empfangen von Border-Gateway-Protokoll (BGP)-Information aufweist, um das Sortieren der Liste von Kandidatenservern zu erleichtern, so daß Kandidatenserver, die topologisch dem Client am nächsten sind, in der Liste von Kandidatenservern höher angeordnet sind.
  18. Verfahren nach Anspruch 15, wobei das Empfangen der Anforderung des Inhaltes durch den Client weiterhin aufweist: Empfangen eines Planes des Inhaltes, der anzeigt, welche Teile des Inhaltes der Client bereits hat, Empfangen der lokalen IP-Adresse des Client, die der Client ausdrücklich in die Anforderung eingeschlossen hat, und Empfangen der externen IP-Adresse des Client.
  19. Verfahren nach Anspruch 15, wobei die Liste von Kandidatenservern ein Teilsatz der kompletten Liste von Kandidatenservern ist.
  20. Verfahren nach Anspruch 15, wobei die Liste von Kandidatenservern einen Ursprungsserver (112) für den Inhalt enthält.
  21. Verfahren nach Anspruch 15, wobei für einen Kandidatenserver aus der Liste von Kandidatenservern, welcher hinter einer Firewall liegt, das Verfahren weiterhin das Senden einer Anforderung an den Kandidatenserver beinhaltet, was bewirkt, daß der Kandidatenserver eine Kommunikationssitzung durch die Firewall mit dem Client initiiert.
  22. Verfahren nach Anspruch 15, wobei dann, wenn ein Kandidatenserver aus der Liste von Kandidatenservern und der Client hinter Firewalls sind, das Verfahren weiterhin das Senden von Anforderungen an den Kandidatenserver und den Client beinhaltet, welche bewirken, daß der Kandidatenserver und der Client gleichzeitig einander Nachrichten durch ihre entsprechenden Firewalls zusenden, um eine Kommunikationssitzung zwischen dem Kandidatenserver und dem Client zu initiieren.
  23. Verfahren nach Anspruch 15, welches weiterhin das Sammeln von Feedback bzw. Rückantworten von dem Client bei einem Berichtsserver für das Verzeichnis aufweist.
  24. Computerprogramm für das Ausführen aller Schritte des Verfahrens nach irgendeinem der vorstehenden Ansprüche.
  25. Betriebssystem, welches das Computerprogramm nach Anspruch 24 aufweist.
  26. Computerlesbares Speichermedium, welches das Computerprogramm nach Anspruch 24 oder 25 speichert.
  27. Vorrichtung zum Empfangen von Inhalt bei einem Client (101) von einem oder mehreren Servern, die potentiell den Inhalt bereitstellen können, welches aufweist: einen Anforderungsmechanismus, der so ausgestaltet ist, daß er eine Anforderung nach dem Inhalt an einen Verzeichnisserver (104) sendet, der Information darüber speichert, wo der Inhalt möglicherweise lokalisiert sein könnte, wobei die Inhaltsanforderung eine eindeutige Kennung (408) des Inhaltes enthält, welche zugewiesen wird, wenn der Inhalt veröffentlicht wird, einen Empfangsmechanismus, der so ausgestaltet ist, daß er eine Antwort von dem Verzeichnisserver empfängt, die eine Liste von Kandidatenservern umfaßt, welche potentiell den Inhalt bereitstellen könnten, wobei zumindest einer der Kandidatenserver hinter einer Firewall (302) liegt, einen sekundären Anforderungsmechanismus, der so ausgestaltet ist, daß er eine Anforderung an zumindest einen Kandidatenserver (102) aus der Liste von Kandidatenservern für den Inhalt sendet, und einen sekundären Empfangsmechanismus, der so ausgestaltet ist, daß er den Inhalt von zumindest einem Kandidatenserver empfängt.
DE60211524T 2001-08-04 2002-08-02 Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes Expired - Lifetime DE60211524T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31030601P 2001-08-04 2001-08-04
US310306P 2001-08-04
PCT/US2002/024825 WO2003015377A1 (en) 2001-08-04 2002-08-02 Method and apparatus for facilitating distributed delivery of content across a computer network

Publications (2)

Publication Number Publication Date
DE60211524D1 DE60211524D1 (de) 2006-06-22
DE60211524T2 true DE60211524T2 (de) 2006-12-14

Family

ID=23201911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60211524T Expired - Lifetime DE60211524T2 (de) 2001-08-04 2002-08-02 Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes

Country Status (6)

Country Link
US (4) US7089290B2 (de)
EP (1) EP1413119B1 (de)
JP (1) JP4198053B2 (de)
AU (1) AU2002324615A1 (de)
DE (1) DE60211524T2 (de)
WO (3) WO2003015341A2 (de)

Families Citing this family (282)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6920110B2 (en) * 2001-02-14 2005-07-19 Microsoft Corporation System and method for transferring data over a network
US7437428B1 (en) 2000-02-16 2008-10-14 Microsoft Corporation System and method for transferring data over a network
US7653552B2 (en) * 2001-03-21 2010-01-26 Qurio Holdings, Inc. Digital file marketplace
US20020138576A1 (en) * 2001-03-21 2002-09-26 Schleicher Jorg Gregor Method and system for generating revenue in a peer-to-peer file delivery network
US20060075507A1 (en) * 2001-09-06 2006-04-06 Sonic Solutions Secure protocols for use with microsoft directshow filters
US8041803B2 (en) * 2001-09-26 2011-10-18 Qurio Holdings, Inc. Method and system for delivering files in digital file marketplace
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
JP4160506B2 (ja) * 2001-09-28 2008-10-01 レヴェル 3 シーディーエヌ インターナショナル インコーポレーテッド. 構成可能な適応型広域トラフィック制御および管理
US7373644B2 (en) * 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20080279222A1 (en) * 2001-10-18 2008-11-13 Level 3 Communications Llc Distribution of traffic across a computer network
US9167036B2 (en) * 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
EP1401143B1 (de) 2002-09-17 2006-01-11 Errikos Pitsos Verfahren und Vorrichtung zur Bereitstellung einer Liste von öffentlichen Schlüsseln in einem Public-Key-System
AU2003279775A1 (en) * 2002-10-04 2004-05-04 Woodstock Systems, Llc Systems and devices accessing inaccessible servers
EP1408666A1 (de) * 2002-10-09 2004-04-14 Motorola, Inc. Rutierung in einem Datenkommunikationsnetz
US20040093419A1 (en) * 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
JP2004294474A (ja) * 2003-03-25 2004-10-21 Pioneer Electronic Corp コンテンツ提供システム、方法およびプログラム
US7437458B1 (en) * 2003-06-13 2008-10-14 Juniper Networks, Inc. Systems and methods for providing quality assurance
US8122100B2 (en) * 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
US8805966B2 (en) 2003-07-28 2014-08-12 Limelight Networks, Inc. Rich content download
WO2005013141A1 (en) * 2003-07-28 2005-02-10 Limelight Networks, Llc Consistent browser file download
US7536725B2 (en) * 2003-07-28 2009-05-19 Limelight Networks, Inc. Authentication of content download
BRPI0414840A (pt) 2003-10-03 2006-11-21 Limelight Networks Inc método de download de arquivo de conteúdo e de recebimento de conteúdo adicional com uma janela e respectivo sistema de download de conteúdo, meios legìveis em computador e sistemas de computador
US7349358B2 (en) * 2003-10-06 2008-03-25 Kontiki, Inc. Method and apparatus for optimizing content delivery on local subnets
US8239446B2 (en) * 2003-11-19 2012-08-07 Sony Computer Entertainment America Llc Content distribution architecture
US7676599B2 (en) * 2004-01-28 2010-03-09 I2 Telecom Ip Holdings, Inc. System and method of binding a client to a server
KR100582896B1 (ko) * 2004-01-28 2006-05-24 삼성전자주식회사 소프트웨어 버전 자동 관리 시스템 및 버전 관리 방법
EP1723763A1 (de) * 2004-03-12 2006-11-22 THOMSON Licensing Cache-server-netzwerk und verfahren zur einteilung der verteilung von inhaltsdateien
GB2412279A (en) * 2004-03-16 2005-09-21 Bbc Technology Holdings Ltd Data distribution system and method
JP2005311614A (ja) * 2004-04-20 2005-11-04 Pioneer Electronic Corp 情報配信システム、情報配信方法及び情報配信用プログラム並びに情報記録媒体
JP2006004024A (ja) * 2004-06-16 2006-01-05 Fujitsu Ltd ディレクトリサーバに実行させるためのプログラム
US7574538B1 (en) * 2004-06-29 2009-08-11 Emc Corporation Contiguous I/O command queuing within a data storage device
FR2872938B1 (fr) * 2004-07-07 2006-09-15 Canon Kk Index distribue dans un systeme de partage de document numerique
EP1617591A1 (de) * 2004-07-15 2006-01-18 France Telecom Verfahren und Vorrichtung zur Peer-to-Peer Verteilung von angeforderten Dateien
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US7664109B2 (en) * 2004-09-03 2010-02-16 Microsoft Corporation System and method for distributed streaming of scalable media
US8745132B2 (en) * 2004-09-10 2014-06-03 Silver State Intellectual Technologies, Inc. System and method for audio and video portable publishing system
US8234705B1 (en) * 2004-09-27 2012-07-31 Radix Holdings, Llc Contagion isolation and inoculation
DE102004050348B3 (de) * 2004-10-15 2006-05-18 Siemens Ag Verfahren zur Initialisierung eines Datennetzes
CN101375284B (zh) 2004-10-25 2012-02-22 安全第一公司 安全数据分析方法和系统
US8145908B1 (en) * 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US20080052410A1 (en) * 2004-10-29 2008-02-28 Serge Soulet Method, System and Means for Transmitting a Data Package to a Plurality of Computers Distributed Through a Set of Distinct Local Networks
US7716660B2 (en) * 2004-12-14 2010-05-11 Microsoft Corporation Method and system for downloading updates
US7490140B2 (en) * 2005-05-12 2009-02-10 International Business Machines Corporation Peer data transfer orchestration
US8082348B1 (en) 2005-06-17 2011-12-20 AOL, Inc. Selecting an instance of a resource using network routability information
US20070005694A1 (en) * 2005-06-30 2007-01-04 Pando Networks, Inc. System and method for distributed multi-media production, sharing and low-cost mass publication
EP1752925A1 (de) * 2005-07-20 2007-02-14 Siemens Aktiengesellschaft Verfahren und System zur Verteilung von digital geschützten Inhaltsdaten über ein Peer-to-Peer-Datennetzwerk
US8090860B2 (en) * 2007-11-05 2012-01-03 Limelight Networks, Inc. Origin request with peer fulfillment
US8769663B2 (en) * 2005-08-24 2014-07-01 Fortinet, Inc. Systems and methods for detecting undesirable network traffic content
JP2007066161A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd キャッシュシステム
US20070055862A1 (en) * 2005-09-08 2007-03-08 Interdigital Technology Corporation Method and system for distributing data
US8224968B1 (en) * 2005-09-19 2012-07-17 At&T Intellectual Property Ii, L.P. Method and system for scalable content storage and delivery
US7920572B2 (en) * 2005-09-20 2011-04-05 Cisco Technology, Inc. Modifying operation of peer-to-peer networks based on integrating network routing information
CN1941736A (zh) * 2005-09-30 2007-04-04 西门子通信技术(北京)有限公司 一种内容分发系统及其用户请求重定向方法
CN100440866C (zh) * 2005-10-21 2008-12-03 清华大学 数据驱动覆盖网络中的分段发送调度方法
ES2658097T3 (es) 2005-11-18 2018-03-08 Security First Corporation Método y sistema de análisis de datos seguro
DE602005010723D1 (de) * 2005-12-02 2008-12-11 Mitel Networks Corp Verteiltes Servernetz
US8291093B2 (en) 2005-12-08 2012-10-16 Microsoft Corporation Peer-to-peer remediation
US8948144B1 (en) 2005-12-27 2015-02-03 Qurio Holdings, Inc. System and method for creating a preferential ad-hoc network
BRPI0621547A2 (pt) * 2006-04-12 2011-12-13 Thomson Licensing serviço de video transferência com retardo utilizando uma rede de distribuição de conteúdo não hierárquica (p2p)
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
US8429396B1 (en) * 2006-05-31 2013-04-23 Juniper Networks, Inc. Peer discovery and secure communication in failover schemes
JP2008005236A (ja) * 2006-06-22 2008-01-10 Toshiba Corp 通信装置及び通信方法
US9069870B2 (en) * 2006-07-12 2015-06-30 International Business Machines Corporation Client-side aggregation of context-sensitive request results where results for aggregation are asynchronously produced by multiple servers
KR100813982B1 (ko) * 2006-08-01 2008-03-14 삼성전자주식회사 모바일 단말기와 근거리 서버간의 콘텐츠 공유 방법
GB2440759A (en) 2006-08-11 2008-02-13 Cachelogic Ltd Selecting a download cache for digital data
GB2440761A (en) 2006-08-11 2008-02-13 Cachelogic Ltd Using a proxy server as a cache in a peer to peer network to speed up the multicast distribution of large files.
GB2440760A (en) 2006-08-11 2008-02-13 Cachelogic Ltd Network and method of transferring data over the network by nodes sending messages containing a subset of list of data available at the node
GB2440774B (en) 2006-08-11 2011-07-27 Cachelogic Ltd Content Delivery System For Digital Object
WO2008026083A1 (en) * 2006-08-29 2008-03-06 Nokia Corporation Service identification optimization
JP2008059351A (ja) * 2006-08-31 2008-03-13 Brother Ind Ltd ノード装置、処理プログラム、情報配信システム及びサーバ処理プログラム
EP2080105A4 (de) * 2006-09-06 2011-03-02 Akamai Tech Inc Hybrides inhaltsablieferungsnetzwerk (cdn) und peer-to-peer-(p2p)-netzwerk
CN100488146C (zh) * 2006-09-14 2009-05-13 华为技术有限公司 在p2p网络中建立点对点连接的方法及在p2p网络中的节点
US20080127234A1 (en) * 2006-09-19 2008-05-29 International Business Machines Corporation Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models
US8554827B2 (en) * 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US7693073B2 (en) * 2006-10-13 2010-04-06 At&T Intellectual Property I, L.P. System and method for routing packet traffic
CN103188081A (zh) * 2006-11-07 2013-07-03 安全第一公司 用于分发数据和保护数据安全的系统和方法
US20080222236A1 (en) * 2006-11-27 2008-09-11 Christopher James Nason Method and system for processing data on a plurality of communication devices
CA2670597A1 (en) * 2006-12-05 2008-06-12 Don Martin Improved tape backup method using a secure data parser
US8028060B1 (en) * 2007-01-05 2011-09-27 Apple Inc. Background task execution over a network based on network activity idle time
WO2008110724A2 (fr) * 2007-02-16 2008-09-18 France Telecom Procede pour la mise en relation entre terminaux
JP4951706B2 (ja) 2007-06-28 2012-06-13 トムソン ライセンシング ピアツーピア・ライブストリーミングのための待ち行列に基づく適応型チャンク・スケジューリング
FR2918241B1 (fr) * 2007-06-28 2009-11-06 Bouygues Telecom Sa Procede, serveur et application pour le partage de contenus personnels entre terminaux d'usager(s)
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8347286B2 (en) * 2007-07-16 2013-01-01 International Business Machines Corporation Method, system and program product for managing download requests received to download files from a server
US9432243B2 (en) * 2007-08-22 2016-08-30 International Business Machines Corporation Re-using asynchronous server-side results generated for a request context of one client to satisfy a request context of a different client
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US7698411B2 (en) * 2007-08-22 2010-04-13 International Business Machines Corporation Selectively delivering cached content or processed content to clients based upon a result completed percentage
US20090063505A1 (en) * 2007-08-30 2009-03-05 Kinder Nathan G Selective chaining of LDAP directory servers
US8135865B2 (en) * 2007-09-04 2012-03-13 Apple Inc. Synchronization and transfer of digital media items
US9154552B2 (en) 2007-09-06 2015-10-06 Microsoft Technology Licensing, Llc Method and apparatus for cooperative file distribution with receiver determined quality of services
US7702783B2 (en) * 2007-09-12 2010-04-20 International Business Machines Corporation Intelligent performance monitoring of a clustered environment
WO2009035674A1 (en) 2007-09-14 2009-03-19 Security First Corporation Systems and methods for managing cryptographic keys
US20090112921A1 (en) * 2007-10-31 2009-04-30 Fernando Oliveira Managing files using layout storage objects
US9413825B2 (en) * 2007-10-31 2016-08-09 Emc Corporation Managing file objects in a data storage system
JP5504165B2 (ja) * 2007-10-24 2014-05-28 イーエムシー コーポレイション データファイルオブジェクトへのアクセス方法、クライアント装置、プログラム、およびシステム
US9122397B2 (en) * 2007-10-26 2015-09-01 Emc Corporation Exposing storage resources with differing capabilities
EP2056572A1 (de) * 2007-10-31 2009-05-06 Thomson Licensing Pull-from-Peer-Verfahren zum Erfassen von fehlenden Teilen einer Inhaltsdatei von einer Gerätegruppe
JP4757943B2 (ja) * 2007-11-12 2011-08-24 パナソニック株式会社 データ通信装置およびユーザ端末
WO2009063555A1 (ja) * 2007-11-13 2009-05-22 Fujitsu Limited 制御代理装置、制御代理方法および制御代理プログラム
US8561081B1 (en) * 2007-11-13 2013-10-15 Accenture Global Services Limited System and method for dynamic brokering of digital content requests
US7908362B2 (en) * 2007-12-03 2011-03-15 Velocix Ltd. Method and apparatus for the delivery of digital data
KR101478144B1 (ko) * 2007-12-27 2015-01-02 삼성전자주식회사 알에프아이디 통신 방법
US8473756B2 (en) * 2008-01-07 2013-06-25 Security First Corp. Systems and methods for securing data using multi-factor or keyed dispersal
EP2086206A1 (de) * 2008-01-31 2009-08-05 Alcatel Lucent System zum Betreiben eines Peer-to-Peer-Netzwerks mit Berücksichtigung von Teilnehmerinformation des Zugangsnetzwerks
US8850029B2 (en) * 2008-02-14 2014-09-30 Mcafee, Inc. System, method, and computer program product for managing at least one aspect of a connection based on application behavior
ES2449790T3 (es) 2008-02-22 2014-03-21 Security First Corp. Sistemas y métodos para la gestión y la comunicación seguras en un grupo de trabajo
US8073959B2 (en) * 2008-03-28 2011-12-06 Microsoft Corporation Automatically detecting whether a computer is connected to a public or private network
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US9762692B2 (en) * 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8353041B2 (en) * 2008-05-16 2013-01-08 Symantec Corporation Secure application streaming
US8275830B2 (en) 2009-01-28 2012-09-25 Headwater Partners I Llc Device assisted CDR creation, aggregation, mediation and billing
US8023425B2 (en) 2009-01-28 2011-09-20 Headwater Partners I Verifiable service billing for intermediate networking devices
US8548428B2 (en) 2009-01-28 2013-10-01 Headwater Partners I Llc Device group partitions and settlement platform
US8391834B2 (en) 2009-01-28 2013-03-05 Headwater Partners I Llc Security techniques for device assisted services
US8402111B2 (en) 2009-01-28 2013-03-19 Headwater Partners I, Llc Device assisted services install
US8589541B2 (en) 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8406748B2 (en) 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US8832777B2 (en) 2009-03-02 2014-09-09 Headwater Partners I Llc Adapting network policies based on device service processor configuration
US8626115B2 (en) 2009-01-28 2014-01-07 Headwater Partners I Llc Wireless network service interfaces
US8346225B2 (en) 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
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
JP5439761B2 (ja) * 2008-07-25 2014-03-12 富士通株式会社 コンテンツ再生装置、コンテンツ再生方法およびコンテンツ再生プログラム
US8275902B2 (en) * 2008-09-22 2012-09-25 Oracle America, Inc. Method and system for heuristic throttling for distributed file systems
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 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
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8838683B2 (en) * 2008-11-24 2014-09-16 Samsung Electronics Co., Ltd. Method and apparatus for receiving data by using peer-to-peer portal server
US9578182B2 (en) 2009-01-28 2017-02-21 Headwater Partners I Llc Mobile device and service management
US10779177B2 (en) 2009-01-28 2020-09-15 Headwater Research Llc Device group partitions and settlement platform
US9565707B2 (en) 2009-01-28 2017-02-07 Headwater Partners I Llc Wireless end-user device with wireless data attribution to multiple personas
US8745191B2 (en) 2009-01-28 2014-06-03 Headwater Partners I Llc System and method for providing user notifications
US9571559B2 (en) 2009-01-28 2017-02-14 Headwater Partners I Llc Enhanced curfew and protection associated with a device group
US8793758B2 (en) 2009-01-28 2014-07-29 Headwater Partners I Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10326800B2 (en) 2009-01-28 2019-06-18 Headwater Research Llc Wireless network service interfaces
US9572019B2 (en) 2009-01-28 2017-02-14 Headwater Partners LLC Service selection set published to device agent with on-device service selection
US9980146B2 (en) 2009-01-28 2018-05-22 Headwater Research Llc Communications device with secure data path processing agents
US10484858B2 (en) 2009-01-28 2019-11-19 Headwater Research Llc Enhanced roaming services and converged carrier networks with device assisted services and a proxy
US9955332B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US10841839B2 (en) 2009-01-28 2020-11-17 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10264138B2 (en) 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US10783581B2 (en) 2009-01-28 2020-09-22 Headwater Research Llc Wireless end-user device providing ambient or sponsored services
US9270559B2 (en) 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US11218854B2 (en) 2009-01-28 2022-01-04 Headwater Research Llc Service plan design, user interfaces, application programming interfaces, and device management
US9954975B2 (en) 2009-01-28 2018-04-24 Headwater Research Llc Enhanced curfew and protection associated with a device group
US9858559B2 (en) 2009-01-28 2018-01-02 Headwater Research Llc Network service plan design
US10248996B2 (en) 2009-01-28 2019-04-02 Headwater Research Llc Method for operating a wireless end-user device mobile payment agent
US10064055B2 (en) 2009-01-28 2018-08-28 Headwater Research Llc Security, fraud detection, and fraud mitigation in device-assisted services systems
US10715342B2 (en) 2009-01-28 2020-07-14 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US9557889B2 (en) 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US10057775B2 (en) 2009-01-28 2018-08-21 Headwater Research Llc Virtualized policy and charging system
US10798252B2 (en) 2009-01-28 2020-10-06 Headwater Research Llc System and method for providing user notifications
US9392462B2 (en) 2009-01-28 2016-07-12 Headwater Partners I Llc Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy
US10200541B2 (en) 2009-01-28 2019-02-05 Headwater Research Llc Wireless end-user device with divided user space/kernel space traffic policy system
US9706061B2 (en) 2009-01-28 2017-07-11 Headwater Partners I Llc Service design center for device assisted services
US9755842B2 (en) 2009-01-28 2017-09-05 Headwater Research Llc Managing service user discovery and service launch object placement on a device
US10237757B2 (en) 2009-01-28 2019-03-19 Headwater Research Llc System and method for wireless network offloading
US9351193B2 (en) 2009-01-28 2016-05-24 Headwater Partners I Llc Intermediate networking devices
US10492102B2 (en) 2009-01-28 2019-11-26 Headwater Research Llc Intermediate networking devices
US9647918B2 (en) 2009-01-28 2017-05-09 Headwater Research Llc Mobile device and method attributing media services network usage to requesting application
JP2012520004A (ja) * 2009-03-03 2012-08-30 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピアネットワークにおける優先順位付けのための方法及び装置
FR2943158B1 (fr) * 2009-03-12 2011-04-08 St Wireless Sa Procede de commande d'un transfert de donnees sur un bus informatique a transmission serie.
WO2010106390A1 (en) * 2009-03-19 2010-09-23 Telefonaktiebolaget L M Ericsson Optimized redirection for network architectures
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
CN102428686A (zh) 2009-05-19 2012-04-25 安全第一公司 用于安全保护云中的数据的系统和方法
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
JP5450811B2 (ja) * 2009-06-29 2014-03-26 クゥアルコム・インコーポレイテッド ネットワーク通信パラメータを設定するための技術
US20110055394A1 (en) * 2009-08-28 2011-03-03 Motorola, Inc. Network assisted mobile centric peer selection method
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
CA2821466A1 (en) * 2009-09-26 2011-03-31 Disternet Technology Inc. System and method for micro-cloud computing
CN102034063A (zh) * 2009-09-28 2011-04-27 西门子(中国)有限公司 调整连续波传输时间的方法及读写器
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
CA2781872A1 (en) 2009-11-25 2011-06-09 Security First Corp. Systems and methods for securing data in motion
US10009396B2 (en) 2009-12-11 2018-06-26 Thomson Licensing Queue-based adaptive chunk scheduling for peer-to-peer live streaming
US8504682B2 (en) * 2009-12-17 2013-08-06 Alcatel Lucent Localization of peer to peer traffic
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
EP2553905B1 (de) 2010-03-31 2018-05-09 Security First Corp. Systeme und verfahren zur sicherung von daten in bewegung
KR101861503B1 (ko) 2010-05-25 2018-05-25 헤드워터 리서치 엘엘씨 네트워크 용량을 보호하기 위한 디바이스-보조 서비스들
CA3040365C (en) * 2010-05-25 2021-09-14 Headwater Research Llc Device-assisted services for protecting network capacity
US8824492B2 (en) 2010-05-28 2014-09-02 Drc Computer Corporation Accelerator system for remote data storage
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10097398B1 (en) 2010-09-28 2018-10-09 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
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
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
US8930513B1 (en) 2010-09-28 2015-01-06 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
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US9092786B2 (en) * 2011-04-13 2015-07-28 Digital River, Inc. E-commerce failover system and method
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
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
US9172674B1 (en) 2012-03-21 2015-10-27 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US8719345B2 (en) * 2012-05-11 2014-05-06 Oracle International Corporation Database replication using collaborative data transfers
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9736121B2 (en) 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
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
US10075354B2 (en) * 2012-10-12 2018-09-11 Sling Media L.L.C. Identification of servers by common wide area network addresses
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10218586B2 (en) 2013-01-23 2019-02-26 Owl Cyber Defense Solutions, Llc System and method for enabling the capture and securing of dynamically selected digital information
US8776254B1 (en) 2013-01-23 2014-07-08 Owl Computing Technologies, Inc. System and method for the secure unidirectional transfer of software and software updates
US9306953B2 (en) 2013-02-19 2016-04-05 Owl Computing Technologies, Inc. System and method for secure unidirectional transfer of commands to control equipment
WO2014159862A1 (en) 2013-03-14 2014-10-02 Headwater Partners I Llc Automated credential porting for mobile devices
US9008305B2 (en) * 2013-03-15 2015-04-14 Startal, Inc. Video data delivery protection
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
CN103714021A (zh) * 2013-12-29 2014-04-09 广州视声电子科技有限公司 一种基于总线数据传输方法
TWI570668B (zh) * 2014-01-16 2017-02-11 神達電腦股份有限公司 搜尋及分享行車記錄影片的方法、其系統及電腦程式產品
US9311329B2 (en) 2014-06-05 2016-04-12 Owl Computing Technologies, Inc. System and method for modular and continuous data assurance
US20160080519A1 (en) * 2014-09-11 2016-03-17 Microsoft Technology Licensing, Llc Local caching and resolution of service calls
US9871716B2 (en) 2014-10-16 2018-01-16 Kollective Technology, Inc. Broadcast readiness testing in distributed content delivery networks
WO2016076774A1 (en) * 2014-11-12 2016-05-19 Telefonaktiebolaget L M Ericsson (Publ) Radio device hardware security system for wireless spectrum usage
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
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 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
US9887932B1 (en) 2015-03-30 2018-02-06 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
EP3311549A1 (de) * 2015-06-19 2018-04-25 Nokia Solutions and Networks Oy Optimierung von verkehr
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
WO2017117262A1 (en) * 2015-12-29 2017-07-06 Echostar Technologies L.L.C Methods and systems for assisted content delivery
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
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
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
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
TWI649653B (zh) * 2017-08-30 2019-02-01 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10951735B2 (en) 2017-11-07 2021-03-16 General Electric Company Peer based distribution of edge applications
US10812445B2 (en) 2018-02-13 2020-10-20 Sling Media Pvt Ltd Cloud access to local network addresses
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
CN108833200A (zh) * 2018-05-04 2018-11-16 佛山科学技术学院 一种大数据文件自适应单向传输方法及装置
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
US10949289B1 (en) * 2018-12-28 2021-03-16 Virtuozzo International Gmbh System and method for maintaining data integrity of data on a storage device

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ504100A0 (en) * 2000-01-11 2000-02-03 Notron (No. 325) Pty Limited A method for distribution of streamed data packets on a switched network utilising an intelligent distribution network
US4712239A (en) * 1986-06-16 1987-12-08 General Instrument Corporation Security arrangement for downloadable cable television converters
US5191650A (en) * 1989-08-16 1993-03-02 International Business Machines Corporation Virtual chains for session initiation in a distributed computer network
DE69025846T2 (de) * 1989-10-13 1996-09-26 Ibm Verfahren zur Verwendung gespeicherter partieller Bäume zur Berechnung eines Weges in einem Datenkommunikationsnetz
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
US5948070A (en) * 1995-10-31 1999-09-07 Nec Corporation File transfer systems, file transfer methods and storage media for storing file transfer programs
FR2750517B1 (fr) * 1996-06-27 1998-08-14 Bull Sa Procede de surveillance d'une pluralite de types d'objets d'une pluralite de noeuds a partir d'un noeud d'administration dans un systeme informatique
US5884031A (en) * 1996-10-01 1999-03-16 Pipe Dream, Inc. Method for connecting client systems into a broadcast network
US5974250A (en) 1996-12-13 1999-10-26 Compaq Computer Corp. System and method for secure information transmission over a network
US6714976B1 (en) * 1997-03-20 2004-03-30 Concord Communications, Inc. Systems and methods for monitoring distributed applications using diagnostic information
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
GB2331659A (en) * 1997-11-21 1999-05-26 Ericsson Telefon Ab L M Resource reservation
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6453346B1 (en) * 1998-07-17 2002-09-17 Proactivenet, Inc. Method and apparatus for intelligent storage and reduction of network information
US6633901B1 (en) * 1998-10-23 2003-10-14 Pss Systems, Inc. Multi-route client-server architecture
US6772207B1 (en) * 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US6832253B1 (en) * 1999-04-01 2004-12-14 Cisco Technologies, Inc. Proximity as an aid to caching and secondary serving of data
US6678264B1 (en) * 1999-06-30 2004-01-13 Nortel Networks Limited Establishing connections with a pre-specified quality of service across a communication network
US6700590B1 (en) * 1999-11-01 2004-03-02 Indx Software Corporation System and method for retrieving and presenting data using class-based component and view model
AU2001240416A1 (en) 2000-01-24 2001-07-31 Siemens Aktiengesellschaft Method for optimally making resources available in a communications network thatfunctions according to an internet protocol
US6975619B1 (en) * 2000-03-20 2005-12-13 Lucent Technologies Inc. System and method for providing host geographic location information in a packet data network
US7020719B1 (en) * 2000-03-24 2006-03-28 Netli, Inc. System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7577754B2 (en) * 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
US7065584B1 (en) * 2000-04-28 2006-06-20 Lucent Technologies Inc. Method and apparatus for network mapping using end-to-end delay measurements
WO2001093064A1 (en) 2000-05-30 2001-12-06 Emikolo Networks Inc. Dynamic peer-to-peer network content-serving
US20010049732A1 (en) * 2000-06-01 2001-12-06 Raciborski Nathan F. Content exchange apparatus
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
US6742048B1 (en) * 2000-07-10 2004-05-25 Advanced Micro Devices, Inc. Multilevel network for distributing trusted time and delegating levels of trust regarding timekeeping
US20020035681A1 (en) * 2000-07-31 2002-03-21 Guillermo Maturana Strategy for handling long SSL messages
US7594030B2 (en) * 2000-11-22 2009-09-22 Microsoft Corporation Locator and tracking service for peer to peer resources
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US20020062336A1 (en) * 2000-11-22 2002-05-23 Dan Teodosiu Resource coherency among resources cached in a peer to peer environment
US6738932B1 (en) * 2000-12-22 2004-05-18 Sun Microsystems, Inc. Method and system for identifying software revisions from memory images
AU2002234261A1 (en) * 2001-01-17 2002-07-30 Arthur D. Little, Inc. System for and method of relational database modeling of ad hoc distributed sensor networks
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7193968B1 (en) * 2001-02-08 2007-03-20 Cisco Technology, Inc. Sample netflow for network traffic data collection
EP1374080A2 (de) * 2001-03-02 2004-01-02 Kasenna, Inc. Push-pull-modell mit metadaten-möglichkeit zur effizienten videoinhaltsverteilung mit niedriger latenz über ein netzwerk
US7454523B2 (en) * 2001-03-16 2008-11-18 Intel Corporation Geographic location determination including inspection of network address
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US7720996B2 (en) * 2001-03-27 2010-05-18 Microsoft Corporation Internet protocol (IP) address proximity and application to peer provider location
US8543681B2 (en) * 2001-10-15 2013-09-24 Volli Polymer Gmbh Llc Network topology discovery systems and methods
US6789117B1 (en) * 2001-12-21 2004-09-07 Networks Associates Technology, Inc. Enterprise network analyzer host controller/agent interface system and method
US7200658B2 (en) * 2002-11-12 2007-04-03 Movielink, Llc Network geo-location system
US7533184B2 (en) * 2003-06-13 2009-05-12 Microsoft Corporation Peer-to-peer name resolution wire protocol and message format data structure for use therein
US20040267875A1 (en) * 2003-06-30 2004-12-30 Hennessey Wade L. Method and apparatus for establishing peering rules for distributed content delivery
US7450524B2 (en) * 2003-06-30 2008-11-11 Kontiki, Inc. Method and apparatus for determining network topology in a peer-to-peer network

Also Published As

Publication number Publication date
JP4198053B2 (ja) 2008-12-17
US7089290B2 (en) 2006-08-08
US7765411B2 (en) 2010-07-27
US20080199003A1 (en) 2008-08-21
DE60211524D1 (de) 2006-06-22
AU2002324615A1 (en) 2003-02-24
JP2005525611A (ja) 2005-08-25
US20030028623A1 (en) 2003-02-06
US20030028777A1 (en) 2003-02-06
WO2003015377A1 (en) 2003-02-20
WO2003015341A3 (en) 2004-03-04
US7398301B2 (en) 2008-07-08
US20030028626A1 (en) 2003-02-06
EP1413119B1 (de) 2006-05-17
WO2003015376A1 (en) 2003-02-20
US7363498B2 (en) 2008-04-22
EP1413119A1 (de) 2004-04-28
WO2003015341A2 (en) 2003-02-20

Similar Documents

Publication Publication Date Title
DE60211524T2 (de) Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes
DE69909839T2 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE60317403T2 (de) Mehrstufige Cache-Speicherarchitektur und Cache-Speicherverwaltungsverfahren für gleichrangiges Namensauflösungs-Protokoll
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE60301783T2 (de) Verfahren und system zur gleichrangigen kommunikation in einer netzwerkumgebung
DE60131900T2 (de) Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE60026231T2 (de) Verfahren und Vorrichtung zur Durchführung eines Schnellen Dienstnachschlagen in einem Neztwerkgruppen
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE60121176T2 (de) Verfahren und System zur anforderungsorientierten Wiedererkennung von verbindungsorientierten Transaktionen
DE60132718T2 (de) System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE60103088T2 (de) Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE19882235B4 (de) Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten
DE60122691T2 (de) Verfahren und vorrichtung zum verteilten cachen
DE69635047T2 (de) Vernetzte server mit kundenspezifischen diensten zum herunterladen von videos
DE10116640B4 (de) Auf URL beruhende Token für schwierige Verteilungen, die einen serverseitigen Cookiebehälter benutzen
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
EP1887484B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE602004011638T2 (de) Verringern von Pufferanforderungen in einem Nachrichtenübermittlungssystem
DE60109947T2 (de) Verfahren zur Server-Auswahl in einem Inhaltsauslieferungsnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition