-
HINTERGRUND
DER ERFINDUNG
-
GEBIET DER ERFINDUNG:
-
Diese
Erfindung bezieht sich auf Kommunikation. Speziell bezieht sich
die vorliegende Erfindung auf Inhaltszugriff.
-
BESCHREIBUNG
DES STANDS DER TECHNIK
-
Internet-Technologie
ist um sich greifend und wird überall
eingesetzt. Zugriff auf eine große Inhaltsvielfalt ist über das
Internet möglich.
Der Inhalt ist häufig
in Servern gespeichert. Eine Client-Maschine kommuniziert mit einem Server,
um auf den Inhalt zuzugreifen.
-
Da
das Internet fortfährt
sich weiter auszudehnen, versuchen eine große Menge von Clients auf Inhalt
im Internet zuzugreifen. Dies könnte
zu einem Engpass führen,
wenn die Clients versuchen jeweils auf Inhalt vom gleichen Server
zuzugreifen. Demzufolge wird, in konventionellen Systemen derselbe
Inhalt häufig
auf mehrfachen Servern eingesetzt. Zusätzlich dazu, dass mehr Clients
ermöglicht wird,
gleichzeitig Zugriff auf die Daten zu erhalten, hat das Einsetzen
des Inhalts auf mehrfachen Servern häufig Nebenvorteile wie Systemredundanz, größere Sicherheit,
etc.
-
Aber
der Server ist nicht der einzige Engpass. Der Kommunikationsweg
vom Client zum Server könnte
ebenso als ein Engpass für
Kommunikation dienen. Außerdem
wird, obwohl es verschiedene Verfahren für Lastausgleich gibt, der primäre Server relativ
zu den anderen Servern häufig
unverhältnismäßig belastet.
Folglich bringt der Client eine langsame Ansprechzeit entweder wegen
der unverhältnismäßigen Belastung
eines Servers oder wegen der Engpässe im Kommunikationsweg in
Erfahrung.
-
Deshalb
besteht eine Notwendigkeit für
ein Verfahren, das erkennt, welcher Server einem Client die beste
Ansprechzeit bereitstellen wird. Es besteht die Notwendigkeit für ein Verfahren,
dass bestimmt welcher Kommunikationsweg einem Client die beste Ansprechzeit
und den besten Durchsatz bereitstellen wird. Schließlich besteht
eine Notwendigkeit für
ein Verfahren, das bestimmt, welcher Client in Kombination mit dem
Kommunikationsweg einem Client die beste Ansprechzeit bereitstellen
wird. Die vorliegende Erfindung erfüllt diese Notwendigkeiten durch
Bereitstellen von Kommunikationsverfahren, die eine zeitliche Dispersion
berechnet, das heißt,
eine Differenz zwischen Empfangszeiten eines Startpakets und eines
Endepakets. Das Berechnen zeitlicher Dispersion sorgt für ein Maß der Kommunikationsqualität, die von
einem speziellen Server zu erwarten ist, auf eine Weise, wie es
die konventionellen Anordnungen (die Messung von Zugriffswartezeit
bzw. Latenzzeit, Verzögerung,
Bandbreite usw., involvieren) nicht tun. Überdies ist das Messen zeitlicher
Dispersion einfacher und schneller als konventionelle Verfahren,
die komplexe Richtlinienmaschinen oder komplexe „Best-Fit" Algorithmen involvieren.
-
Die
internationale Veröffentlichung
Nummer WO 03/098464 A1 (Akamai Technologies, Inc.; Kloninger et
al.) offenbart ein "Enterprise
Content Delivery Network, ECDN, das einen Prüfagenten (124), auch
als Messagent (124) bezeichnet, umfasst, der Metrik prüft, die
in einer Reihe von Tests, wie beispielweise Ping-Tests, allgemeinen
Tests bezüglich Konnektivität und störungsfreier
Verbindung, Ausführen
von http-Downloads von gegebenen Servern und TRSP- und WMS-Streamingtests,
definiert sind. Der Agent (124) liefert Informationen an
eine Richtlinienmaschine (120), die entscheidet, wie Clients
zu einem speziellen Server zu leiten sind.
-
Die
U.S.-Patentschrift Nr. 6.449.647 (Colby et al.) offenbart einen
inhaltsbewussten Flussschalter, der Fluss-Zugangskontrollrichtlinien
involviert und jener Schalter beruht auf einer Kombination von Quell- und Ziel-IP-Adressen,
Transportschichtprotokoll und Transportschichtquell- und Zielportnummern.
Ein "Best-Fit" Server wird beruhend
auf gewünschter
Inhaltsart, zu verstehen gegebener Qualität von Serviceanforderungen,
Server-Last, Netzüberlastung
und Nähe
zum anfordernden Client gewählt.
-
Die
U.S.-Patentanmeldungsveröffentlichung Nr.
2001/0044835 A1 (Schober et al.) offenbart ein Verfahren zum Auswählen von
Inhalt, der von einem Provider zu einem Empfänger, beruhend auf einer automatischen
Bestimmung einer Größe verfügbarer Bandbreite
zwischen dem Provider und dem Empfänger, zu senden ist. Die automatische
Bestimmung der Bandbreite könnte
auf mehrere Arten, wie beispielsweise, Senden einer bekannten Menge
von Daten und Messen eines Zeitraums, der zum Empfangen der Daten
erforderlich ist oder nur Melden einer Geräteträgerrate durchgeführt werden.
-
Die
U.S.-Patentanmeldungsveröffentlichung Nr.
2003/0065763 A1 (Swildens et al.) offenbart ein Verfahren, das zu
bestimmen erlaubt, welcher Server einem Client am "Nächsten" und "am Wenigsten belastet" ist, wobei das Verfahren
ständiges
Betreiben von Zugriffwartezeitsondierungen für jeden von jedem Server bereitgestellten
Service involviert, indem ein Paket zum Client gesendet und die
Umlaufzeit gemessen wird, um den Zugriffswartezeitwert für jenen
Client zu bestimmen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung stellt ein Verfahren bereit, wie es in den zugehörigen Ansprüchen dargelegt
ist.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die 1 zeigt
ein Netz, dass die Lehren der vorliegenden Erfindung implementiert.
-
Die 2 zeigt
ein Blockdiagramm eins Computers, der in Übereinstimmung mit den Lehren der
vorliegenden Erfindung implementiert ist.
-
Die 3 zeigt
ein Flussdiagramm, das ein in Übereinstimmung
mit den Lehren der vorliegenden Erfindung implementiertes Verfahren
darstellt.
-
Die 4 zeigt
ein Flussdiagramm, das ein in Übereinstimmung
mit den Lehren der vorliegenden Erfindung implementiertes Bandbreitensondierungsverfahren
darstellt.
-
Die 5 zeigt
ein Meldungsdiagramm, das die Lehren der vorliegenden Erfindung
darstellt.
-
BESCHREIBUNG DER ERFINDUNG
-
Obgleich
die vorliegende Erfindung hierin mit Bezugnahme auf veranschaulichte
Ausführungsformen
für spezielle
Anwendungen beschrieben wird, sollte allgemein angenommen werden,
dass die Erfindung nicht darauf beschränkt ist. Leute mit durchschnittlichem
Fachwissen und Zugang zu den hierin bereitgestellten Lehren werden
zusätzliche
Modifikationen, Anwendungen und Ausführungsformen im Umfang davon
und zusätzliche
Gebiete erkennen, in denen die vorliegende Erfindung von bedeutendem Nutzen
sein würde.
-
Die 1 zeigt
ein Netz, das die Lehren der vorliegenden Erfindung implementiert.
Server 100 und 102 sind gezeigt. In einer Ausführungsform
der vorliegenden Erfindung managen die Server 100 und 102 Inhalt.
Die Server 100 und 102, an sich, empfangen, speichern,
sorgen für
Zugriff auf manipulieren und kommunizieren Inhalt.
-
Die
Server 100 und 102 sind mit dem Netz 104 in
Kommunikation. Information, wie Inhalt, wird über das Netz 104 kommuniziert.
In einem Ausführungsbeispiel
wird das Netz 104 als ein paketvermittelndes Netz 104 implementiert.
In einer zweiten Ausführungsform
der vorliegenden Erfindung könnte
das Netz 104 als ein Durchschaltenetz implementiert werden.
In einer noch weiteren Ausführungsform
der vorliegenden Erfindung könnte
das Netz 104 als ein integriertes Paket vermittelndes und
Durchschaltenetz, ein lokales Netz (LAN), ein landesweites Netz (WAN),
ein Funknetz, etc., implementiert werden.
-
Ein
Medien-Controller 106 ist mit dem Netz 104 in
Kommunikation. Der Medien-Controller 106 repräsentiert
jede Entität,
die fähig
ist, Zugang zu den Servern 100 und 102 zu steuern.
Der Medien-Controller 106 könnte in
Software, Hardware oder in einer Kombination von Software und Hardware
implementiert werden.
-
Ein
Client 108 ist mit dem Netz 104 in Kommunikation.
Der Client 108 repräsentiert
ein Gerät, das
von einem Endbenutzer verwendet wird, auf Ressourcen im Netz 104 zuzugreifen.
Der Client 108 könnte
in Software, Hardware oder in einer Kombination von Software und
Hardware implementiert werden.
-
Die 2 zeigt
eine Computerarchitektur, die in Übereinstimmung mit den Lehren
der vorliegenden Erfindung implementiert ist. Die Computerarchitektur 200 der 2 könnte verwendet
werden den Server 100, den Server 102, das Netz 104,
den Medien-Controller 106 und/oder den Client 108 der 1 zu
implementieren. Eine Zentraleinheit (CPU) 202 fungiert
als das Gehirn der Computerarchitektur 200. Der Arbeitsspeicher 204 ist
gezeigt. Der Arbeitsspeicher 204 umfasst den Kurzzeitspeicher 206 und den
Langzeitspeicher 208. Der Kurzzeitspeicher 206 könnte ein
Direktzugriffsspeicher (RAM) oder ein Cache-Speicher sein, der für „Staging" von Information verwendet
wird. Der Langzeitspeicher 208 könnte ein Nur-Lese-Speicher/Read
Only Memory (ROM) oder eine alternative Form von Speicher sein,
der zum Speichern von Information verwendet wird. Massenspeicher 220 könnte jeder
Speicher, der sich innerhalb der Computerarchitektur 200,
außer
dem Arbeitsspeicher 204, sein. In einer Ausführungsform der
vorliegenden Erfindung ist der Massenspeicher 220 mit einem
Festplattenlaufwerk implementiert. Ein Kommunikationsweg 210 wird
verwendet, um Information innerhalb der Computerarchitektur 200 zu kommunizieren.
Außerdem
könnte
der Kommunikationsweg 210 an Schnittstellen angeschlossen
werden, die Information aus der Computerarchitektur 200 kommunizieren
oder Information in die Computerarchitektur 200 empfangen.
-
Eingabegeräte, wie
beispielsweise ein taktiles Eingabegerät, Joystick, Tastaturen, Mikrofon, Kommunikationsanschlüsse, oder
eine Maus sind als 212 gezeigt. Die Eingabegeräte 212 sind
mit dem System durch eine Eingabeschnittstelle 214 verbunden.
Ausgabegeräte,
wie ein Monitor, Lautsprecher, Kommunikationsanschlüsse, etc.,
sind als 216 gezeigt. Die Ausgabegeräte 216 kommunizieren
mit der Computerarchitektur 200 durch eine Ausgabeschnittstelle 218.
-
Die 3 zeigt
ein Flussdiagramm, das ein Verfahren darstellt, das in Übereinstimmung
mit den Lehren der vorliegenden Erfindung implementiert ist. Die 1 wird
im Zusammenhang mit der 3 besprochen werden. Bei Schritt 300 verbindet
sich der Client 108 mit dem Medien-Controller 106.
Beispielsweise könnte
der Medien-Controller 106 als ein Proxy implementiert werden,
sodass der Client 108 automatisch zum Medien-Controller 106 geleitet wird.
In der Alternative könnte
der Client 108, beruhend auf vorkonfigurierten Kriterien,
die im Client 108 definiert sind, direkt zum Medien-Controller 106 geleitet
werden. In einer Ausführungsform
könnte
der Client 108 eine "Hyper
Text Transfer Protocol" (HTTP-)
Anforderung oder eine "Real
Time Streaming Protocol (RTSP-) Anforderung für Inhalt an Server 100 und/oder 102 ausgeben
und wird zum Medien-Controller 106 geleitet.
-
Bei 302 kommuniziert
der Medien-Controller 106 mit jedem Server (100, 102),
der den Inhakt hat eine Bandbreitensondierung zu beginnen. Bei Schritt 304 werden
die Server, wie beispielweise die Server 100 und 102,
vom Medien-Controller 106 kontaktiert, wobei jeder Software
und/oder Hardware in Gang setzt, die Kommunikationsbandbreite sondieren (d.h.,
Bandbreitensondierung). Sobald die Server 100 und 102 die
Bandbreitensondierung beendet haben, kommuniziert jeder Server 100 und 102 die
Ergebnisse der Bandbreitensondierung, wie bei Schritt 306 angegeben,
an den Medien-Controller 106. Bei Schritt 308 selektiert
der Medien-Controller 106 einen Server (100, 102).
Der Medien-Controller 106 könnte den Server 100 oder 102 auf
einer Vielfalt von Kriterien beruhend selektieren. Bei Schritt 310 sendet
der Medien-Controller 106 eine Umleitmeldung an den Client 108.
Die Umleitmeldung identifiziert welchen Server 100 oder 102 der
Client 108 verwenden sollte. Infolge der bei Schritt 310 kommunizierten Umleitmeldung
kontaktiert der Client 108 den identifizierten Server (100, 102)
wie bei 312 angegeben. Bei 314 kommuniziert der
identifizierte Server 100 oder 102 den Inhalt
an den Client 108.
-
Die 4 zeigt
ein Flussdiagramm, das ein, in Übereinstimmung
mit den Lehren der vorliegenden Erfindung implementiertes, Bandbreitensondierungsverfahren
darstellt. In einer Ausführungsform
implementiert das in der 4 dargestellte Verfahren den Schritt 304 der 3,
wo die Server Bandbreite sondieren. In einer Ausführungsform
ist das Bandbreitensondierungsverfahren mit einer Kombination von
Hardware und/oder Software in einem Server, wie beispielsweise Server 100 und 102 von 1 implementiert.
Man sollte aber zum Schluss gelangen, dass die Bandbreitensondierung
in anderen Lokalitäten,
wie beispielsweise im Medien-Controller 106, im Netz 104 oder
im Client 108 der 1 implementiert
werden könnte.
-
In
einer Ausführungsform
der vorliegenden Erfindung besteht eine Bandbreitensondierung aus einer
kurzen "Folge" von Paketen, die
mit der Geschwindigkeit der Ausgangsschnittstelle an einen gegebenen
Endpunkt gesendet wird. Der Endpunkt meldet die Ankunftszeit des
Starts und Endes der Folge zurück.
Der Abstand zwischen den Paketen am empfangenden Endpunkt befindet
sich in Übereinstimmung
mit der verfügbaren
Bandbreite entlang des Wegs, was erlaubt eine Schätzung zu
bilden. Es gibt mehrere verschiedene Varianten der Bandbreitensondierung,
abhängig
von der Umgebung des zu sondierenden Endpunkts. Die Variationen
der Bandbreitensondierung unterscheiden sich im verwendeten Verfahren
für die
Aufzeichnung der Zeitdifferenzen zwischen Paketen in der Folge.
Beispielsweise werden vier Variationen der Bandbreitensondierung vorgelegt:
Es könnte
(1) ein "Internet
Control Message Protocol" (ICMP-)
Echo mit ICMP-Zeitstempelaufzeichnung verwendet werden, (2) ICMP-Echo
mit "Internet Protocol
(IP)" Zeitstempelaufzeichnung
verwendet werden, (3) "Transmission
Control Protocol (TCP) Push/Reset" mit Absender basierter Zeitaufzeichnung
verwendet werden und/oder (4) ICMP-Echo mit Absender basierter Zeitaufzeichnung verwendet
werden. Man sollte zum Schluss gelangen, dass, obwohl vier Bandbreitensondierungen
definiert und beschrieben worden sind, andere Variationen von Bandbreitensondierungen
implementiert werden könnten
und sich im Umfang der vorliegenden Erfindung befinden.
-
Unter
Bezugnahme auf die 4 werden, bei Schritt 400,
Folgeanfangspakete gesendet. Die 1 wird im
Zusammenhang mit der 4 besprochen. Zum Beispiel erfüllen in
einer Ausführungsform
der vorliegenden Erfindung die Folgeanfangspakete eine der vier
Variationen der Bandbreitensondierung. Zum Beispiel könnte der
Server 100 oder 102 Folgeanfangspakete an den
Client 108 senden. Der Client 108 zeitstempelt
die Folgeanfangspakete. Bei Schritt 402 wird eine Folge
von N aufeinanderfolgender Pakete gesendet. Die Folge von N aufeinanderfolgender
Pakete entspricht einer der Variationen der Bandbreitensondierung.
In einer Ausführungsform
senden die Server 100 und 102 eine Folge aufeinanderfolgender
Pakete an den Client 108.
-
Bei
Schritt 404 werden Folgeendepakete gesendet. Beispielsweise
werden Folgeendepakete von den Servern 100 und 102 an
den Client 108 gesendet. In einer Ausführungsform sind Folgeendepakete
durch eine der Variationen der Bandsbreitensondierung definiert.
Bei 406 empfangen die Server 100 und 102 Umlaufpakete,
die vom Client 108 kommuniziert werden. In einer Ausführungsform
werden die Umlaufpakete zeitgestempelt, die Empfänger zeitstempeln, beispielsweise,
die Umlaufpakete. Bei 408 verwenden die Server 100 und 102 dann
die Umlaufpakete, um Bandbreitenleitungsmessungen, wie Durchsatz,
Verzögerung
und Paketverlust zu berechnen.
-
Die 5 zeigt
ein Meldungsflussdiagramm, das die Lehren der vorliegenden Erfindung darstellt.
In der 5 repräsentiert
der vertikale Balken 501 eine Server-Maschine, der vertikale
Balken 503 repräsentiert
ein Zwischenkommunikationsgerät, der
vertikale Balken 505 repräsentiert ein Zwischenkommunikationsgerät und der
vertikale Balken 507 repräsentiert eine Client-Maschine.
Während
des Betriebs wird ein Paket von der Server-Maschine 501, durch
das Zwischenkommunikationsgerät 503,
zum Zwischenkommunikationsgerät
und dann zur Client-Maschine 507 kommuniziert.
-
In
der 5 wird eine Paketfolge von einer Server-Maschine
zu einer Client-Maschine und dann zurück zur Server-Maschine kommuniziert.
Die Paketfolge wird zwischen der Server-Maschine 501 und dem
Zwischenkommunikationsgerät 503 als 500, 502 und 504 kommuniziert.
Die Paketfolge wird dann zwischen dem Zwischenkommunikationsgerät 503 und
dem Zwischenkommunikationsgerät 505 als 508 und 510 kommuniziert.
Wie durch die Trennung von 506, 508 und 510 gezeigt,
ist die Geschwindigkeit zwischen dem Zwischenkommunikationsgerät 503 und
dem Zwischenkommunikationsgerät 505 langsamer.
Schließlich
wird die Paketfolge zwischen dem Zwischenkommunikationsgerät 505 und
der Client-Maschine 507 als 512, 514, 516 und 518 kommuniziert.
Die Paketfolge wird dann von der Client-Maschine zurück zur Server-Maschine
kommuniziert, wo die Paketfolge, wie durch 524 und 526 gezeigt, zeitgestempelt
wird.
-
In
einer Ausführungsform
der vorliegenden Erfindung werden die Paketfolgen 500, 502, 504, 506, 508, 510, 512, 514, 516 und 518 verwendet,
Folgeanfangspakete, eine Folge von N aufeinanderfolgender Pakete
und Folgeendepakete zu repräsentieren.
Die Folgeanfangspakete und die Folgeendepakete werden an der Client-Maschine 507 und
danach nochmals an der Server-Maschine 501 zeitgestempelt.
Unter Verwendung der Folgeanfangspakete und der Folgeendepakete
an der Client-Maschine 507 könnte die als 520 gezeigte
Zeitdispersion berechnet werden. Außerdem könnte, unter Verwendung der Folganfangspakete
und der Folgeendepakete an der Server-Maschine 501, die
Absenderzeitdispersion 522 berechnet werden. Beispielsweise
könnte
in dem Fall, wo ein Zeitstempel implementiert wird, der Zeitstempel
zur Berechnung von Dispersion verwendet werden. Weiter könnte, unter
Verwendung der Empfängerzeitdispersion 520,
die Zahl der gesendeten Pakete und die Größe des Paketdurchsatzes berechnet
werden. In dem Falle, wo die Zeitstempelfunktion am Empfangsknoten
nicht verfügbar
ist, wird die Absenderzeitdispersion 522 verwendet, den
Durchsatz zu berechnen. Außerdem
können
Umlaufverzögerung
und Paketverlust berechnet werden.
-
Obgleich
die vorliegende Erfindung hierin mit Bezugnahme auf veranschaulichte
Ausführungsformen
für spezielle
Anwendungen beschrieben wird, sollte allgemein angenommen werden,
dass die Erfindung nicht darauf beschränkt ist. Leute mit durchschnittlichem
Fachwissen und Zugang zu den hierin bereitgestellten Lehren werden
zusätzliche
Modifikationen, Anwendungen und Ausführungsformen im Umfang davon
und zusätzliche
Gebiete erkennen, in denen die vorliegende Erfindung von bedeutendem Nutzen
sein würde.
-
Durch
die angehängten
Ansprüche
ist daher beabsichtigt, alle solcher Anwendungen, Modifikationen
und Ausführungsformen
innerhalb des Umfangs der vorliegenden Erfindung abzudecken.