-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft die dynamische Erfassung von maximaler
Bandbreite für
eine Verbindung zwischen zwei Einheiten in einer TCP-Netzwerkumgebung.
Insbesondere betrifft diese Erfindung Gegenmaßnahmen zur Ablaufsteuerung
von Funktionen der Netzwerkumgebung, die das Senden einer Gruppe von
Paketen effektiv verzögern
können.
-
HINTERGRUND DER TECHNIK
-
Mit
der technischen Ausreifung des Internets haben sich die Eigenschaften
des verfügbaren
Inhaltes in dem Internet geändert.
Mittlerweise ist Klang- und Videoinhalt zusammen mit dem herkömmlichen
Textinhalt enthalten. Dieser neue Inhalt im Internet erfordert jedoch
eine höhere
Verbindungsgeschwindigkeit (das heißt, Bandbreite) als die, die
vor einigen Jahren noch weitläufig
verfügbar
war.
-
1 illustriert
ein Beispiel einer typischen Internetkonfiguration. Sie beinhaltet
einen Server (wie beispielsweise einen Medienserver 20),
der mit dem Internet 30 gekoppelt ist. Der Server beinhaltet
typischerweise einen oder mehrere physikalische Servercomputer 22 mit
einer oder mehreren physikalischen Speichervorrichtungen und/oder
Datenbanken 24. Auf der anderen Seite einer Internetübertragung
befindet sich ein Client 90, der über einen der vielen verfügbaren Internet
Service Provider (ISP) 80 verbunden ist. Hierbei ist ein
Server eine Netzwerkeinheit, die Daten sendet, und ein Client ist
eine Netzwerkeinheit, die Daten empfängt.
-
Die
Wolke 30 ist mit Internet bezeichnet, es gilt jedoch zu
beachten, dass diese Wolke den Abschnitt des Internets darstellt,
der lediglich das enthält,
was darin dargestellt ist. Innerhalb einer solchen Wolke befinden
sich Router, Übertragungsleitungen,
Verbindungen und andere Kommunikationseinrichtungen, die in den meisten
Fällen
Daten erfolgreich zwischen Clients und Servern senden. Innerhalb
der exemplarischen Internet- Wolke 30 sind
die Router 32 bis 44; zwei Satellitenschüsseln 46 und 50;
sowie ein Satellit 48 vorhanden. Die Verbindungen zwischen
diesen Vorrichtungen stellen die möglichen Pfade dar, die ein
Datenpaket auf seinem Weg zwischen dem Server und dem Client nehmen
kann.
-
Im
Allgemeinen ist eine Kommunikationseinrichtung in einem Netzwerk
(wie beispielsweise das Internet) jede beliebige Vorrichtung, die
die Kommunikation über
das Netzwerk zwischen zwei Einheiten ermöglicht, und die die zwei Einheiten
beinhaltet. Beispiele solcher Einheiten umfassen den Server 20 und
den Client 90.
-
Die Schichten des OSI-Modells
-
Das
Modell der Open System Interconnection (OS') ist ein ISO-Standard für weltweite
Kommunikationen, der einen Netzwerkrahmen zum Implementieren von
Protokollen in sieben Schichten definiert. Die Steuerung wird von
einer Schicht zu der nächsten
Schicht weitergeleitet, beginnend mit der Anwendungsschicht in einer
Station, weitergehend mit der unteren Schicht über den Kanal zu der nächsten Station
und die Hierarchie zurück
hinauf. Eine Person mit der gewöhnlichen
Erfahrung auf dem Gebiet der Technik ist mit dem OSI-Modell vertraut.
-
Der
größte Teil
der Funktionalität
in dem OSI-Modell ist in allen Kommunikationssystemen vorhanden, obgleich
zwei oder drei OSI-Schichten in einer Schicht integriert sein können. Diese
Schichten werden auch als „Level" bezeichnet.
-
Im
Allgemeinen implementiert die Hardware die physikalische Schicht.
Solche Hardware kann eine Netzwerkkarte, ein Modem oder eine andere
Kommunikationseinrichtung umfassen. Typischerweise implementiert
der Betriebssystemkern eines Betriebssystems (OS, Operating System)
die Transportschicht.
-
Der
obere Teil des Stapels sind die Anwendungen in der Anwendungsschicht.
Diese beinhaltet eine jegliche Anwendung, die mit Einheiten außerhalb
des Computers, wie beispielsweise einem Webbrowser, einem Mediaplayer
und einem E-Mail-Programm kommuniziert. Die Anwendungsschicht verfügt über die
geringste Steuerung von Details der Kommunikation zwischen den Einheiten
in einem Netzwerk, wie beispielsweise dem Internet.
-
Bandbreite
-
Bandbreite
ist die Menge an Daten, die in einer festgelegten Menge an Zeit
gesendet werden kann. So wird beispielsweise die Bandbreite zwischen
dem Medienserver 20 in 1 zu dem
Medien-Client 90 anhand der Menge an Daten (beispielsweise
1000 Bits) berechnet, die zwischen ihnen in einer Zeiteinheit (beispielsweise
eine Sekunde) gesendet werden kann. Genauer gesagt bedeutet dies,
dass Daten zwischen den Einrichtungen bei einer Übertragungsgeschwindigkeit
von ungefähr
56.000 Bits pro Sekunde gesendet werden können. Dies kann als 56 Kilobits
pro Sekunde bezeichnet werden (Kbps).
-
Wie
dies in 1 dargestellt ist, führt die Übertragung über das
Internet über
eine Vielzahl von Verbindungen, ehe sie ihr Ziel erreicht. Jede
Verbindung besitzt ihre eigene Bandbreite. So wie eine Kette nur
so stark wie ihr schwächstes
Glied ist, ist die maximale Bandbreite zwischen dem Server 20 und
dem Client 90 die Verbindung dazwischen mit der langsamsten
Bandbreite. Typischerweise ist dies die Verbindung zwischen dem
Client 90 und seinen ISP 80. Diese langsamste
Bandbreite ist de facto die maximale Bandbreite.
-
Hierin
wird davon ausgegangen, dass sich, es sei denn es wird anhand des
Kontextes etwas Anderes offensichtlich, Verweise auf Bandbreite
zwischen Netzwerkeinheiten (wie beispielsweise dem Server 20 und dem
Client 90) auf die de facto maximale Bandbreite dazwischen
beziehen.
-
Die
Bandbreite kann auch als „Verbindungsgeschwindigkeit", „Geschwindigkeit" oder „Rate" bezeichnet werden.
Bei Verweisen auf Bandbreite, die in Bits pro Sekunde gemessen werden,
kann die Bandbreite auch als „Bit-Rate" oder „Bitrate" bezeichnet werden.
-
Streaming-Medien
-
Beim
Streaming handelt es sich um ein Verfahren zum Übertragen von Multimedia-Daten auf eine Weise,
bei der diese als ein konstanter und kontinuierlicher Strom verarbeitet
werden können.
Streaming-Technologien erhalten einhergehend mit dem Wachstum des
Internets eine immer größer werdende
Bedeutung, da die meisten Benutzer keinen ausreichend schnellen
Zugang besitzen, um große
Multimedia-Dateien schnell herunterzuladen. Mit dem Streaming kann
der Client-Browser oder das Zusatzmodul damit beginnen, die Daten
anzuzeigen, bevor die gesamte Datei gesendet worden ist.
-
Damit
das Streaming funktioniert, muss die Client-Seite, die die Daten
empfängt,
in der Lage sein, die Daten zu erfassen und diese als einen konstanten
Strom zu der Anwendung zu senden, die die Daten verarbeitet und
die Daten in Klang oder Bilder umzuwandeln. Dies bedeutet, dass,
wenn der Streaming durchführende
Client die Daten schneller empfängt,
als dies erforderlich ist, er die überschüssigen Daten in einem Puffer
speichern muss. Wenn die Daten nicht schnell genug ankommen, wird
die Präsentation
der Daten jedoch nicht störungsfrei
sein.
-
Innerhalb
des Kontextes einer Audio- und/oder visuellen Präsentation werden die Begriffe „Medien" und „Multimedien" hierin untereinander
austauschbar verwendet. Der Begriff „Medien" bezieht sich auf die Präsentation
von Text, Graphiken, Video, Trickfilm und/oder Klang auf eine integrierte
Weise.
-
Der
Begriff „Streaming-Medien" bezeichnet eine
Audio- und/oder visuelle Präsentation,
die über
ein Netzwerk (wie beispielsweise dem Internet) zu einem Endbenutzer
gesendet wird. Solch ein Senden wird so durchgeführt, dass die Präsentation
relativ störungsfrei
und nicht ruckartig ist. Lange Pausen, während zusätzliche Rahmen (Frames) zu
dem Benutzer heruntergeladen werden, sind für den Benutzer ärgerlich.
Diese Ärgernisse
halten den Benutzer davon ab, in Zukunft Streaming-Medien anzusehen.
-
Störungsfreies Senden von Streaming-Medien
-
Da
die Bandbreite die Rate bestimmt, mit der der Client die Daten empfangen
wird, kann eine Präsentation
von Streaming-Medien nur mit einer Rate präsentiert werden, die nicht
größer als
das ist, was die Bandbreite zulässt.
So sei beispielsweise angenommen, dass der Medienserver 20 Daten
bei einer Rate von 50 Kbps zu dem Client 90 senden muss,
um eine Präsentation
von Streaming-Medien störungsfrei „abzuspielen". Die Bandbreite
zwischen dem Client und dem Server beträgt jedoch lediglich 30 Kbps.
Das Ergebnis ist eine ruckartige und eine sprunghafte Medienpräsentation.
-
In
einer Anstrengung, dieses Problem zu lindern, werden die Präsentationen
der Streaming-Medien oftmals in mehreren Formaten mit unterschiedlichen
Graden an Qualität
codiert.
-
Die
Formate mit der geringsten Qualität (beispielsweise kleine Größe, geringe
Auflösung,
kleine Farbpalette) weisen die geringste Menge an Daten auf, die über eine
gegebene Zeit hinweg zu dem Client gepusht werden. Dementsprechend
kann ein Client über
eine langsame Verbindung auf störungsfreie
Weise die Präsentation
der Streaming-Medien
präsentieren,
wobei jedoch die Qualität
der Präsentation
leidet.
-
Die
Formate mit der höchsten
Qualität
(beispielsweise volle Bildschirmgröße, hohe Auflösung, große Farbpalette)
weisen die größte Menge
an Daten auf, die über
eine gegebene Zeit hinweg zu dem Client gepusht werden. Dementsprechend
kann ein Client mit einer schnellen Verbindung die Präsentation
der Streaming-Medien auf störungsfreie
Weise präsentieren
und dabei immer noch eine Präsentation
einer hohen Qualität
gewährleisten.
-
Ansatz des Auswählens einer
Bandbreite
-
Wenn
ein Server Streaming-Medien zu einem Client sendet, muss er wissen,
welches Format er zu verwenden hat. Dementsprechend muss der Server,
um das geeignete Format auszuwählen,
die Bandbreite zwischen dem Server und dem Client kennen.
-
Die
einfachste Art und Weise, dies zu erreichen, besteht darin, den
Benutzer eines Clients zu fragen, was seine Bandbreite ist. Da die
Verbindung des Client zu dem Internet typischerweise die Stelle
mit der geringsten Bandbreite (Bottleneck) ist, zeigt die Kenntnis über die
Bandbreite dieser Verbindung typischerweise die tatsächliche
Bandbreite an.
-
2 zeigt
einen ausgeschnittenen Teil 100 einer Webseite, die auf
dem Computer eines Client angezeigt wird. In dem ausgeschnittenen
Teil 100 befindet sich eine typische Benutzerschnittstelle 930,
die dafür verwendet
werden kann, um einen Benutzer zu fragen, was seine Verbindungsgeschwindigkeit
ist. Der Benutzer klickt auf eine der drei Schaltflächen 112, 114 und 116,
die durch die Benutzerschnittstelle 930 bereitgestellt werden.
Wenn der Benutzer auf die Schaltfläche 112 klickt, überträgt der Server
Daten aus einer Datei, die Streaming-Medien enthält, in einem Format, das für eine Übertragung
bei einer Rate von 28,8 Kbps ausgelegt ist. Auf gleiche Weise werden,
wenn der Benutzer auf die Schaltfläche 114 klickt, Daten
aus einer Datei, die Streaming-Medien enthält, in einem Format gesendet,
das für
eine Übertragung
bei einer Rate von 56,6 Kbps ausgelegt ist. Wenn der Benutzer auf
die Schaltfläche 114 klickt, überträgt der Server
Daten aus einer Datei, die Streaming-Medien enthält, in einem Format, das für eine Übertragung
bei einer Rate, die größer ist
als 56,6 Kbps, und bis zu der typischen Geschwindigkeit einer T1-Verbindung
ausgelegt ist.
-
Dennoch
besteht das hauptsächliche
Problem mit dem Ansatz zum „Auswählen einer
Bandbreite" darin,
dass eine durchdachte Auswahl durch einen Benutzer erforderlich
ist. Dieser Ansatz bietet Gelegenheit für Auswahlfehler.
-
Es
macht erforderlich, dass ein Benutzer seiner Verbindungsgeschwindigkeit
Bedeutung beimisst, dass er begreift, was damit gemeint ist und
dass er sie kennt. Oftmals schenkt der Benutzer der Tatsache, welche
Schaltfläche
er zu drücken
hat, keine besondere Beachtung. Der Benutzer weiß möglicherweise nur, dass eine
Medien-Präsentation
erscheinen wird, wenn der Benutzer eine dieser Schaltflächen drückt. Dementsprechend
drückt
der Benutzer irgendeine von ihnen.
-
Oftmals
versteht ein Benutzer das Konzept der Bandbreite nicht. Ein Benutzer
kann die Schaltfläche 116 auswählen, da
er möglicherweise
die Präsentation
in ihrer höchsten
Qualität
sehen möchte.
Der Benutzer versteht nicht, dass das Sehen der Präsentation
in ihrer höchsten
Qualität
in einer nicht störungsfreien
Präsentation
resultieren kann, da seine Internetverbindung die Rate nicht handlen
kann, mit der die Daten über die
Internetverbindung gesendet werden.
-
Wenn
er das Konzept der Bandbreite versteht, kennt der Benutzer aber
möglicherweise
seine Bandbreite nicht. Ein Benutzer weist möglicherweise keine Kenntnisse
zu seiner Bandbreite auf. Zusätzlich
dazu können
variierende Grade an Rauschen jedes Mal dann variierende Verbindungsgeschwindigkeiten
verursachen, wenn der Benutzer eine Verbindung zu dem Internet herstellt.
Des Weiteren können
einige Typen von Verbindungen (wie beispielsweise ein Kabelmodem)
in Abhängigkeit
von einer Vielzahl von Faktoren sehr unterschiedliche Grade an Verbindungsgeschwindigkeiten
aufweisen.
-
Darüber hinaus
muss der Benutzer die Auswirkungen einer unkorrekten Auswahl verstehen.
Ein Benutzer muss so belehrt werden, dass er versteht, dass er eine
Option auswählen
muss, die seiner Bandbreite entspricht oder geringer als diese ist,
um eine störungsfreie
Präsentation
zu erhalten. Jedoch sollte der Benutzer keine Option auswählen, die
signifikant geringer als seine Bandbreite ist. Wenn er dies jedoch
tut, wird er eine störungsfreie
Präsentation
bei einer geringeren Qualität
sehen, die er auf andere Weise mit einer höheren verfügbaren Bandbreite sehen könnte.
-
Wie
anhand der voranstehenden Diskussion gesehen werden kann, ist dieser
manuelle Ansatz oftmals verwirrend, und viele Benutzer sind damit überfordert.
Dementsprechend resultiert er oftmals in unkorrekten Auswahlen.
-
Was
noch bedeutender ist, ist die Tatsache, dass das Aufrechterhalten
von einer Vielzahl von Dateien (eine für jede Bandbreite) in dem Medienserver
zusätzlichen
Steuerungsaufwand (Overhead) beim Unterhalten einer Webseite nach
sich zieht.
-
Automatische Erfassung der
Bandbreite
-
Um
dieses Problem zu lösen,
können
Medienserver eine einzige Datei verwenden, die Unterdateien für mehrere
Bandbreiten enthält.
Zusätzlich
dazu können
Medienserver automatisch die Bandbreite erfassen.
-
Diese
einzelne Datei wird MBR-(multiple bit rate) Datei genannt. Die MBR-Dateien
beinhalten typischerweise eine Vielzahl von unterschiedlichen „Bändern" oder „Strömen". Diese Bänder können als „Unterdateien" bezeichnet werden.
Ein Benutzer klickt auf eine Verbindung. Automatisch bestimmt der
Server im Verborgenen das richtige Geschwindigkeitsband, um dies
zu dem Client zu senden.
-
Diese
automatische Erfassung der Geschwindigkeit nimmt eine lange Zeit
in Anspruch. Dies bedeutet, dass der Benutzer zusätzlich 5
Sekunden bis eine Minute (oder mehr) darauf warten muss, dass die
Präsentation
beginnt. Diese Verzögerung
für die
existierende automatische Erfassung der Geschwindigkeit rührt von langen
Zeiten für
die Übereinkunftskopplung
(„handshaking„), während die
Bestimmung der Geschwindigkeit fortgesetzt wird.
-
Ein
existierendes Verfahren zur automatischen Erfassung der Geschwindigkeit
umfasst das Senden von einer Vielzahl von Datenpaketen zum Messen
der Geschwindigkeit zwischen dem Server und dem Client. Dieses Verfahren
wird im weiteren Verlauf der Beschreibung in dem Abschnitt mit dem
Titel „Verfahren
für mehrere
Messungspakete” noch
weiter beschrieben.
-
Bandbreitenmessungs-Pakete
-
Typischerweise
messen Verfahren zur automatischen Erfassung der Bandbreite die
Bandbreite zwischen Einheiten in einem Netzwerk, indem ein oder
mehrere Paket einer bekannten Größe gesendet
werden.
-
3 zeigt
einen Zeitgraphen, der das Senden von zwei solchen Paketen (Px und Py) zwischen
einem Sender (beispielsweise einem Server) und einem Empfänger (beispielsweise
einem Client) verfolgt. Die Serverseite und die Clientseite sind
entsprechend so gekennzeichnet. Auf dem Graphen verläuft der
Verlauf der Zeit nach unten.
-
Der
Zeitpunkt ta zeigt den Zeitpunkt an, zu
dem der Server die Übertragung
des Paketes Px beginnt. Der Zeitpunkt tb zeigt den Zeitpunkt an, zu dem der Server
die Übertragung
des Paketes Px beendet. Auf ähnliche
Weise zeigt der Zeitpunkt t0 den Zeitpunkt
an, zu dem der Client den Empfang des Zeitpunktes Px beginnt. Der
Zeitpunkt t1 zeigt den Zeitpunkt an, zu
dem der Client den Empfang des Paketes Px abschließt. Zu dem Zeitpunkt
t1 leitet die Hardware des Netzwerkes das
Paket wahrscheinlich durch die Kommunikationsschichten in Richtung
nach oben zu der Anwendungsschicht weiter.
-
Das
Paket Py wird auf ähnliche Weise auf dem Zeitgraphen
in 3 gekennzeichnet. tc ist
der Server-Zeitpunkt, zu dem die Übertragung des Paketes Py beginnt. td ist
der Server-Zeitpunkt, zu dem die Übertragung des Paktes Py beendet wird. Auf ähnliche Weise ist t2 der Client-Zeitpunkt, zu dem der Client
den Empfang des Paketes Py beginnt. t3 ist der Client-Zeitpunkt, zu dem der Client
den Empfang des Paketes Py abschließt. Zu dem
Zeitpunkt t3 leitet die Hardware des Netzwerkes
wahrscheinlich das Paket durch die Kommunikationsschichten in Richtung
nach oben zu der Anwendungsschicht weiter.
-
Bandbreitenmessung
unter Verwendung eines einzelnen Paketes. In einer gesteuerten laborähnlichen Umgebung
wird die Bandbreitenmessung zwischen zwei Einheiten in einem Netzwerk
direkt durchgeführt.
Um eine solche Berechnung durchzuführen, wird ein Paket einer
bekannten Größe von einer
Einheit zu der anderen Einheit gesendet, und es wird die Übertragungslatenz
gemessen, bei der es sich um die Menge an Zeit handelt, die erforderlich
ist, so dass sich ein Paket von der Quelle zum Ziel bewegt. In Anbetracht
dieses Szenarios muss man den Zeitpunkt kennen, zu dem das Paket
gesendet wurde und den Zeitpunkt, zu dem das Paket angekommen ist.
-
Dieses
Verfahren ist außerhalb
der laborähnlichen
Umgebung nahezu vollständig
unpraktisch. Es kann in einem asynchronen Netzwerk (wie dem Internet)
deshalb nicht angewendet werden, da es eine Synchronisation zwischen
dem Client und dem Server erfordert. Beide müssen denselben Zeittakt verwenden.
-
Alternativ
dazu kann der Client den Zeitpunkt verfolgen, zu dem er beginnt,
ein Paket zu empfangen (wie beispielsweise t0 für das Paket
Px) und den Zeitpunkt verfolgen, zu dem
das Paket vollständig
empfangen ist (wie beispielsweise t1 für das Paket
Px).
-
3 zeigt,
wie das Paket P
x von einem Server zu einem
Client gesendet wird. Das Paket P hat eine Größe in Bits von PS. Die Gleichung
zum Berechnen der Bandbreite (bw) lautet:
-
Dieses
Verfahren funktioniert in der Theorie, aber ungünstigerweise ist es in der
Praxis nicht anwendbar. Lediglich die Hardware weiß, wann
ein Paket anfänglich
empfangen wird. Dementsprechend weiß lediglich die Hardware, wann
der Zeitpunkt t0 ist.
-
Die
anderen Kommunikationsschichten (wie beispielsweise die Transportschicht
und die Anwendungsschicht) können
nur den Zeitpunkt erfassen, zu dem das Paket vollständig durch
die Hardware empfangen ist. Dies geschieht zu dem Zeitpunkt, wenn
die Hardware das Paket zu ihnen nach oben weiterleitet. Dieser Abschlusszeitpunkt
für das
Paket Px ist t1.
Es ist nicht möglich,
die Bandbreite zu berechnen, wenn man lediglich einen Zeitpunkt
kennt.
-
Paketpaar.
-
Es
wird ein Verfahren mit der Bezeichnung Paketpaar-Verfahren angewendet,
um diese Probleme in asynchronen Netzwerken zu überwinden. Mit dem Paketpaar-Verfahren
werden zwei identische Pakete im Back-to-Back-Verfahren gesendet.
Der Server sendet ein Paketpaar, und zwar eins unmittelbar nach
dem anderen. Beide Pakete sind miteinander identisch; dementsprechend
weisen sie dieselbe Größe (PS)
auf. Die Bandbreite wird bestimmt, indem die Paketgröße durch
die Zeitdifferenz beim Empfang eines jeden Paketes dividiert wird.
-
Jedes Paket besitzt spezifische messbare
Eigenschaften.
-
Insbesondere
umfassen diese Eigenschaften seine Paketgröße (PS) und den gemessenen
Zeitpunkt, zu dem solch ein Paket ankommt (beispielsweise t0-3 in 3). Einige
Eigenschaften (wie beispielsweise die Paketgröße) können eher spezifiziert als
gemessen werden, aber wenn dies gewünscht wird, können sie
auch gemessen werden.
-
Wie
dies in 3 dargestellt ist, sendet der
Server das Paket Px. Die Hardware des Client
beginnt mit dem Empfangen des Paketes zum Zeitpunkt t0.
Wenn der Empfang des Paketes zum Zeitpunkt t1 abgeschlossen
ist, leitet die Hardware das Paket nach oben durch die Kommunikationsschichten.
Schließlich
wird es durch die Zielschicht empfangen (beispielsweise die Anwendungsschicht),
wahrscheinlich zum Zeitpunkt t1. Nachdem
der Server das Paket Px sendet (das zum
Zeitpunkt tb abgeschlossen ist), sendet
er unverzüglich das
Paket Py zum Zeitpunkt tc.
Es ist wichtig, dass entweder 1) absolut keine messbare Verzögerung zwischen den
Zeitpunkten tb und auftritt oder 2) eine
Verzögerung
mit einer bekannten Länge
zwischen den Zeitpunkten tb und tc auftritt. Hierin wird im Sinne einer leichter
verständlichen
Beschreibung angenommen, dass keine messbare Verzögerung zwischen
den Zeitpunkten tb und tb auftritt.
-
Die
Hardware des Client beginnt mit dem Empfang von dem Paket Py zum Zeitpunkt t2.
Wenn der Empfang des Paketes zum Zeitpunkt t3 abgeschlossen
ist, leitet die Hardware das Paket nach oben durch die Kommunikationsschichten
weiter. Schließlich
wird es wahrscheinlich zum Zeitpunkt t3 durch
die Zielschicht (beispielsweise die Anwendungsschicht) empfangen.
-
3 zeigt
keine Verzögerung
zwischen dem Zeitpunkt t1 (dem Zeitpunkt
des Abschlusses des Empfangs des Paketes Px)
und dem Zeitpunkt t2 (dem Zeitpunkt, zu
dem der Empfang des Paketes Py beginnt). Theoretisch
wird dies immer dann der Fall sein, wenn die Pakete Px und
Py unter identischen Bedingungen gesendet
werden. In der Praxis ist dies oftmals der Fall, da das Paket Py unmittelbar nach dem Paket Px
gesen det wird.
-
Unter
Verwendung des Paketpaar-Verfahrens lautet die Gleichung zum Berechnen
der Bandbreite (bw) wie folgt:
-
Dieses
Verfahren funktioniert sowohl in der Theorie als auch in der Praxis.
Es funktioniert jedoch nur über
einem Netzwerk gut, das relativ statisch ist.
-
So
sei in 1 beispielsweise angenommen, dass das Netzwerk
lediglich aus dem Server 20; den Routern 32, 34 und 36;
einem spezifischen ISP von ISPs 80; und einem Client 90 gebildet
ist. Des Weiteren sei angenommen, dass die Verbindungen zwischen
jedem Knoten in diesem statischen Netzwerk fixiert sind, und eine
konsistente Bandbreite aufweisen. In dieser Situation stellen die
Paketpaar-Verfahren eine genaue und effektive Messung der Bandbreite
bereit.
-
Probleme
infolge des Verwendens des Paketpaar-Verfahrens über dem Internet. Über einem
dynamischen Netzwerk, wie beispielsweise dem Internet, funktioniert
das Paketpaar-Verfahren jedoch nicht gut. Ein dynamisches Netzwerk
ist ein Netzwerk, bei dem eine Möglichkeit
besteht, dass ein Paket auf eine Art und Weise gehandlet wird, die
sich von einem früheren
Paket unterscheidet, oder die sich von einem späteren Paket unterscheidet.
Insbesondere bestehen Probleme mit einem TCP-Netzwerk.
-
1 illustriert
Beispiele des Handlens von Differenzen, die in einem dynamischen
Netzwerk vorgefunden werden. Es sei angenommen, dass sich alle Pakete
von dem Server zu dem Client bewegen (in 1 von der
linken Seite zu der rechten Seite). Es sei angenommen, dass die
Pakete 60 bis 68 im Back-to-Back-Verfahren durch
den Server 20 zu dem Client 90 gesendet wurden.
-
Hierbei
ist zu beachten, dass, wie dies in 1 illustriert
ist, die Pakete unterschiedliche Routen aufweisen können. Zusätzlich dazu
können
einige Routen die Paketübertragung
signifikant verzögern.
Dies ist vor allem dann der Fall, wenn das Paket über eine
scheinbar ungewohnte Route (aber nicht notwendigerweise eine ungewöhnliche),
wie beispielsweise die drahtlose Übertragung, Übersee über ein
Unterwasserkabel, über Satellitenübertragung
(wie dies durch die Satellitenschüsseln 46 und 50 und
den Satelliten 48 dargestellt wird) und so weiter gesendet
wird. Ein Router (wie beispielsweise der Router 42) kann
ein oder mehrere Pakete (wie beispielsweise die Pakete 63 und 64)
mehr als ein anderer verzögern,
indem er sie vorrübergehend
in einem Speicher (wie beispielsweise dem Pufferspeicher 43)
speichert.
-
Verfahren zur Mehrfachmessung
von Paketen
-
Um
diese Probleme zu überwinden,
verwenden herkömmliche
Verfahren zur automatischen Bandbreitenmessung mehrere Pakete. Ein
Server sendet mehrere (viel mehr als zwei) Pakete und berechnet
die Geschwindigkeit eines jeden Pakets. Gewöhnliche Erfahrung zur Bandbreitenmessung
zeigt an, dass, um genaue Messungen zu erhalten, mehrere Paare von
Paketen wiederholt über
mehrere Sekunden bis zu mehreren Minuten hinweg gesendet werden
müssen.
Hierin wird dieses Verfahren als „Mehrfachpaket-Verfahren" bezeichnet, um es
von dem voranstehend beschriebenen „Paketpaar-Verfahren" zu unterscheiden.
-
Typischerweise
wird die endgültige
Bandbreite bestimmt, indem der Durchschnitt der vielen Bandbreitenmessungen
gesucht wird. Durch dieses Mitteln werden Abweichungen bei den Verzögerungen
für ein
jedes Paket geglättet;
jedoch wird dadurch kein Ausgleich für die Paketkompression während des
Sendens geschaffen. Eine von zwei extrem unkorrekten Messungen verzerrt
den Durchschnitt.
-
Ungünstigerweise
nimmt dieses Verfahren relativ zu dem Warten des Benutzers zwischen
dem Klicken und der Medien-Präsentation
eine lange Zeit in Anspruch. Eine lange Zeit können fünf Sekunden bis zu mehreren
Minuten in Abhängigkeit
von den Daten und der Situation sein. Solch eine Verzögerung erhöht den Ärgernisfaktor
für den
Benutzer, der gern die Medien-Präsentation
sehen möchte.
Dies ist keine akzeptable Verzögerung.
Da unter Verwendung von herkömmlichen
Verfahren keine anderen Optionen zur Verfügung stehen, sieht sich der
Benutzer dazu gezwungen, diese Verzögerungen hinzunehmen.
-
Keine
existierende automatische Bandbreitenmessung kann nahezu unverzüglich die
Bandbreite über dem
Internet unter Verwendung eines Paketpaares messen. Keine existierende
automatische Bandbreitenmessung kann solche Messungen in der Anwendungsschicht
durchführen.
Auf diese Weise verhindert sie das Modifizieren des Betriebssystems.
Keine existierende automatische Bandbreitenmessung widmet sich der Verzerrung
der Messungen, die durch die Paketkompression verursacht wird.
-
Implementierung der Transportschicht
-
Die
herkömmlichen
Ansätze
modifizieren gewöhnlicherweise
den Betriebsystemkern des Betriebsystems (OS, Operating System),
um die automatische Bandbreitenmessung durchzuführen. Genauer gesagt bedeutet
dies, dass diese Ansätze
die Transportschicht des OSI-Modells modifizieren und dass eine
solche Schicht oftmals innerhalb des Betriebsystemkerns des Betriebsystems
(OS, Operating System) vorhanden ist. Im Allgemeinen sind solche
Modifizierungen nicht wünschenswert,
da es im Allgemeinen weniger stabil und kostenintensiver ist, als
die Implementierungen, die das Betriebsystem (OS, Operating System)
nicht modifizieren.
-
Wenn
diese Ansätze
innerhalb einer Anwendung implementiert werden könnten (dementsprechend in der
Anwendungsschicht), wären
solche Modifizierungen nicht möglich.
Es misst jedoch kein existierender Paketpaar-Ansatz die Bandbreite
in der Anwendungsschicht. Dies rührt
daher, dass die Anwendungsschicht eine geringere Steuerung über die
Einzelheiten der tatsächlichen
Kommunikation über
das Netzwerk besitzt. Insbesondere verfügt eine Anwendung sogar über noch
weniger Steuerung, wenn sie das TOP (Transmission Control Protocol, Übertragungskontrollprotokoll)
verwendet, als sie haben würde,
wenn sie das UDP (User Datagram Protocol, Benutzerdatengramm-Protokoll) verwenden
würde.
-
Die
Protokolle TOP und UDP werden im späteren Verlauf der Beschreibung
in dem Abschnitt mit dem Titel „TCP und UDP" diskutiert. Die
Transport- und Anwendungsschichten sind Teil der sieben Schichten
des im späteren
Verlauf der Beschreibung diskutierten OSI-Modells.
-
TCP und UDP
-
Über das
Internet (und andere Netzwerke) werden Pakete von Daten für gewöhnlich über TOP-(Transmission
Control Protocol) oder UDP-(User Datagram Protocol)Protokolle gesendet.
Das TOP ist das universal akzeptierte und das im gesamten Internet
verstandene Protokoll.
-
Das
TOP-(Transmission Control Protocol)Protokoll ist eines der wichtigsten
Protokolle in TCP/IP-Netzwerken (wie beispielsweise dem Internet).
Obgleich das IP-Protokoll lediglich mit Paketen zu tun hat, befähigt das
TOP-Protokoll zwei Hosts dazu, eine Verbindung herzustellen und
Ströme
von Daten auszutauschen. Das TOP-Protokoll garantiert die Übermittlung
von Daten und garantiert, dass Pakete in derselben Reihenfolge übermittelt
werden, in der sie gesendet worden sind.
-
Das
UDP-(User Datagram Protocol)Protokoll ist ein verbindungsloses Protokoll
(wie das TOP-Protokoll), das ganz oben in IP-Netzwerken läuft. Im
Gegensatz zu TCP/IP, stellt UDP/IP sehr wenige Fehlerbehebungsdienste
zur Verfügung
und bietet stattdessen einen direkten Weg zum Senden und Empfangen
von Paketen (das heißt,
ein Datengramm) über
ein IP-Netzwerk.
-
Ein
Paket ist ein großes
Stück an
Daten, die durch das Anwendungsprogramm bereitgestellt werden. Das
UDP sendet typischerweise ein einzelnes „Anwendungslevel-Paket" als ein einzelnes
UDP-Paket. Das TCP kann jedoch ein einzelnes Anwendungslevel-Paket
in eine Vielzahl von kleineren TCP-„Segmenten” unterteilen, von denen jedes
als ein separates „Paket" in der TCP-Schicht
behandelt wird. Der Nagle-Algorithmus (im späteren Verlauf der Beschreibung
diskutiert) führt
das Gegenteil durch: Er nimmt eine Vielzahl von kleinen Anwendungspaketen
und kombiniert diese zu einem einzelnen größeren TCP-Segment.
-
Nagle-Algorithmus für TCP/IP
-
Der
Nagle-Algorithmus wurde entwickelt, um Probleme mit kleinen TCP-Segmenten
(mitunter als „Tinygram" bezeichnet) in langsamen
Netzwerken zu vermeiden. Der Algorithmus besagt, dass eine TCP/IP-Verbindung
lediglich ein ausstehendes Tinygram haben kann, das noch nicht bestätigt worden
ist. Die definierte Größe eines
Tinygrams hängt
von der Implementierung ab. Im Allgemeinen ist sie jedoch eine Größe kleiner als
die Größe von typischen
TCP-Segmenten.
-
Der
Nagle-Algorithmus besagt, dass unter einigen Umständen eine
Warteperiode von ungefähr
200 Millisekunden (ms) vorhanden sein wird, bevor die Daten gesendet
werden. Der Nagle-Algorithmus verwendet die folgenden Parameter
für den
Verkehr über
einen Switch.
- – Segmentgröße = MTU oder tcp_mssdflt oder
MTU-Pfad-Erfassungswert.
- – TCP-Fenstergröße = kleiner
oder Werte von tc_sendspace und tcp_recspace
- – Datengröße = Anwendungsdaten-Puffergröße
-
Im
Folgenden werden die spezifischen Regeln dargelegt, die durch den
Nagle-Algorithmus
verwendet werden, wenn die Entscheidung dahingehend getroffen wird,
wann Daten zu senden sind:
- – Wenn ein Paket gleich groß oder größer als
die Segmentgröße (oder
MTU) ist, und das TCP-Fenster nicht voll ist, wird unverzüglich ein
Puffer mit MTU-Größe gesendet.
- – Wenn
sich die Schnittstelle im Leerlauf befindet, oder das Flag TCP_NODELAY
(TCP_KEINE VERZÖGERUNG)
eingestellt ist, und das TCP-Fenster nicht voll ist, wird der Puffer
unverzüglich
gesendet.
- – Wenn
weniger als die Hälfte
des TCP-Fensters in ausstehenden Daten ist, wird der Puffer unverzüglich gesendet.
- – Wenn
weniger als ein Puffer einer Segmentgröße gesendet wird, und wenn
mehr als die Hälfte
des Fensters ausstehend ist, und wenn das Flag TCP_NODELAY nicht
eingestellt ist, wird bis zu 200 ms auf mehr Daten gewartet, bevor
der Puffer gesendet wird.
-
Durch
das Einstellen des Flags TCP_NODELAY an der Anschlussbuchse der
sendenden Seite wird der Nagle-Algorithmus deaktiviert. Es werden
sich alle Daten, die gesendet worden ist, unverzüglich entfernen, ungeachtet
der Tatsache, welche Datengröße sie aufweisen.
-
Der
Nagle-Algorithmus kann im generischen Sinne als die „Tinygram-Puffer"-Funktion bezeichnet
werden, da er Tinygrams puffert.
-
Slow-Start-Algorithmus für TCP
-
In
TCP-Netzwerken, die die Funktion „Slow Start" nicht verwenden,
starten die Einrichtungen eine Verbindung mit einem Sender, indem
eine Vielzahl von Paketen in ein Netzwerk injiziert wird, so lange,
bis die Fenstergröße, die
durch einen Empfänger
angekündigt
wird, erreicht wird. Während
dies akzeptabel ist, wenn sich die zwei Hosts in demselben LAN (Local
Area Network) befinden, können
Probleme dann auftreten, wenn Router und langsamere Verbindungen
zwischen dem Sender und dem Empfänger
vorhanden sind. Da eine Wahrscheinlichkeit dahingehend besteht,
dass einige der Router die Pakete in eine Warteschlange bringen werden,
ist es möglich,
dass solch ein Router keinen ausreichenden Speicherplatz aufweist,
um diese Pakete in die Warteschlange zu bringen. Dementsprechend
wird dieser einfache Ansatz aller Wahrscheinlichkeit nach den Datendurchsatz
einer TCP-Verbindung drastisch reduzieren.
-
Der
Algorithmus, der dies verhindert, wird „Slow Start" genannt. Er funktioniert
dadurch, dass er überwacht,
dass die Rate, mit der neue Pakete in das Netzwerk injiziert werden,
die Rate ist, mit der die Bestätigungen
durch das andere Ende zurückgesendet
werden.
-
Der
Slow-Start-Algorithmus addiert ein weiteres Fenster zu dem TCP-Protokoll
des Senders hinzu: ein Überlastungsfenster
(congestion window), genannt „cwnd". Wenn eine neue
Verbindung mit einem Host in einem anderen Netzwerk hergestellt
wird, wird das Überlastungsfenster
mit einem Paket initialisiert. Jedes Mal, wenn eine Bestätigung (das
heißt,
eine „ACK") empfangen wird,
wird das Überlastungsfenster
um ein Paket erhöht.
Der Sender kann bis zu dem Minimum des „Überlastungsfensters" und des „angekündigten
Fensters" senden.
Das „Überlastungsfenster" ist eine Ablaufsteuerung,
die durch den Sender auferlegt wird. Das „angekündigte Fenster" ist eine Ablaufsteuerung,
die durch den Empfänger
auferlegt wird. Das Erstgenannte basiert auf der Einschätzung des
Senders zu der empfangenen Netzwerküberlastung. Und das letztgenannte
basiert auf der Menge an verfügbaren
Pufferplatz in dem Empfänger
für diese
Verbindung.
-
Der
Sender startet durch Senden eines Pakets und Warten auf seine Bestätigung (ACK).
Wenn die Bestätigung
ACK empfangen wird, wird das Überlastungsfenster
von eins auf zwei erhöht.
Nun können
zwei Pakete gesendet werden. Wenn jedes dieser zwei Pakete bestätigt wird,
wird das Überlastungsfenster
auf vier erhöht.
Und so weiter und so fort.
-
Es
wird der Punkt erreicht, an dem die Kapazität der Verbindung zwischen dem
Sender und dem Empfänger
möglicherweise
erreicht ist. An diesem Punkt beginnt ein zwischengeschalteter Router
mit dem Entfernen der Pakete. Dadurch wird dem Sender angezeigt,
dass das Überlastungsfenster
seine Grenze erreicht hat.
-
Proxy
-
Ein
Proxy (das heißt,
ein Proxy-Server) ist eine Einrichtung, die zwischen einer Client-Anwendung (wie beispielsweise
ein Webbrowser) und einem RealServer angeordnet ist. Im Allgemeinen
fängt er
sämtliche
Anforderungen an den und von dem RealServer ab, um zu sehen, ob
er diese Anforderungen selbst erfüllen kann. Wenn dies nicht
der Fall ist, leitet der Proxy-Server die Anforderung an den RealServer
weiter. Ein Proxy wird für
zwei Hauptzwecke verwendet: zum Verbessern der Leistung und zum
Filtern von Anforderungen.
-
Da
der Proxy-Server oftmals ein zentraler Punkt der Kommunikation für eine Anzahl
von Clients ist, unternimmt er den Versuch, seine Kommunikationen
so effizient wie möglich
zu gestalten. Dementsprechend implementiert er typischerweise eine
Form des Nagle-Algorithmus.
Jede neue TCP-Verbindung startet mit einem Slow Start. Wenn ein
Proxy zwischen dem Client und dem Server angeordnet ist, wird der
Slow Start in den folgenden zwei Verbindungen durchgeführt: Server-Proxy
und Proxy-Client. Dementsprechend fügt der Proxy neue Komplexität zu dem
Paketpaar-Experiment hinzu.
-
Zusammenfassung des Hintergrunds
der Technik
-
Eine
Anwendung (in der Anwendungsschicht) besitzt eine begrenzte Steuerung über das
Handling von TCP-Paketen. Auf diese Weise vermeiden die herkömmlichen
Bandbreitenmessungen TCP-Bandbreitenmessungen in der Anwendungsschicht.
-
Die
Integrität
des Paketpaar-Verfahrens erfordert, dass wenigstens zwei Pakete
im Back-to-Back-Verfahren gesendet werden. Diese Pakete kommen jedoch
möglicherweise
infolge der Auswirkungen des Nagle-Algorithmus und des Slow-Start-Algorithmus
nicht in einem solchen Verfahren an. Dies stellt ein Hindernis für die Verwendung
des Paketpaar-Verfahrens zur Bandbreitenmessung über ein TCP-Netzwerk dar.
-
Weiterer Stand der Technik
-
K.
Lai et al. beschreibt in dem Dokument „Measuring Bandwidth", Infocom 99, der
18th Annual Coint Conference of the IEEE Computer and Communications
Societies Proceedings, 21.–25.
März 1999,
Seiten 235 bis 245, einige aktuelle Bandbreitenmessungsverfahren
und schlägt
das Verwenden eines Paketfensters, um sich schnell an Bandbreitenänderungen
anzupassen, das Verwenden nur des Empfängers für Paketpaare, um Genauigkeit
mit einfacher Anwendung zu kombinieren, sowie ein potentielles Bandbreitenfiltern
vor, um die Genauigkeit zu erhöhen.
-
D.A.
Hages et al. untersucht in dem Dokument „Impact of Flow Control an
Quality of Service Driver Packet Scheduling Disciplines", in Control Applications,
1999, in den Proceedings der 1999 IEEE International Conference
an Kohala Couast, 22.–27.
August 1999, Seiten 1454 bis 1459, die Interaktion zwischen einer fensterbasierten
Ablaufsteu erung und einer vor Kurzem vorgeschlagenen Paketzeitplan-Disziplin,
die für
Echtzeitdienste ausgelegt ist, vor.
-
Zusammenfassung
-
Es
ist die Aufgabe der Erfindung, ein bewährtes Verfahren zum Erleichtern
der schnellen Paketkommunikation oder Bandbreitenmessung zwischen
Einheiten in einem Netzwerk und eine entsprechende Vorrichtung sowie
ein Datensignal bereitzustellen.
-
Diese
Aufgabe wird durch die Erfindung, wie diese in den unabhängigen Ansprüchen beansprucht wird,
erfüllt.
-
Bevorzugte
Ausführungsformen
sind in den unabhängigen
Ansprüchen
spezifiziert.
-
Die
schnelle dynamische Messung der Bandbreite in einer TCP-Netzwerkumgebung
verwendet ein einzelnes Paar von Paketen, um die Bandbreite zwischen
den zwei Einheiten in einem Netzwerk (wie beispielsweise dem Internet)
zu berechnen. Diese Berechnung basiert auf dem Paketpaar-Verfahren.
Diese Bandbreitenmessung ist extrem schnell.
-
Die
Kommunikationseinrichtungen können
die Paketpaare auf ihrer Strecke durch das Netzwerk verzögern. Insbesondere
heißt
dies, dass TCP-Netzwerke zwei Algorithmen aufweisen, die ausgelegt
sind, um einige Pakete mit dem Ziel zu verzögern, den Gesamtdatendurchsatz
des Netzwerkes zu erhöhen.
Diese Algorithmen verzögern
jedoch effektiv ein Paketpaar, das ausgelegt ist, um die Bandbreite
zu messen. Dementsprechend verzerren sie die Messung. Diese Algorithmen
sind der „Nagle"-Algorithmus und
der „Slow Start"-Algorithmus.
-
Die
schnelle dynamische Messung der Bandbreite implementiert Gegenmaßnahmen,
um die Verzögerung,
die durch die Algorithmen auferlegt wird, zu überwinden. Solche Gegenmaßnahmen
beinhalten das Deaktivieren der Anwendung des Nagle-Algorithmus;
das Minimieren des Pufferns von Paketen durch Senden eines „Push"-Paketes direkt nach
dem Paketpaar; und das Verhindern des Slow-Start-Algorithmus durch
Versehen mit einem „Dummy"-Paket.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 illustriert
eine typische öffentliche
Netzwerkumgebung (wie beispielsweise das Internet) und das Routing
sowie die Verzögerung
von Datenpaketen, die von einem Server zu einem Client gesendet
werden.
-
2 ist
ein ausgeschnittener Teil von einer Webseite. Der ausgeschnittene
Teil zeigt eine Benutzerschnittstelle, die einem Benutzer einen
Mechanismus zum Auswählen
der Bandbreite zur Verfügung
stellt. Dies zeigt ein herkömmliches
Verfahren zum Bestimmen der Bandbreite.
-
3 zeigt
ein Paketpaar (das von einem Server zu einem Client gesendet wird),
das als Graph in der Zeitdomaine dargestellt wird. Dies zeigt eine
herkömmliche
Implementierung eines Paketpaar-Verfahrens, um die Bandbreite zu
messen.
-
4 illustriert
ebenfalls eine öffentliche
Netzwerkumgebung (wie beispielsweise das Internet). Dies zeigt ein
Paketpaar, das im Back-to-Back-Verfahren gesendet wird.
-
5 ist
ein Ablaufplan, der die Methodik einer Implementierung der exemplarischen
Bandbreitenmesseinrichtung darstellt.
-
Die 5a, 5b und 5c sind
ein Ablaufplan, der die spezifischen Implementierungsdetails der Methodik
von verschiedenen Aspekten der exemplarischen Bandbreitenmesseinrichtung
darstellt.
-
6 ist
ein Beispiel einer Computer-Betriebsumgebung, die in der Lage ist,
die exemplarische Bandbreitenmesseinrichtung zu implementieren.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
folgende Beschreibung legt eine spezifische Ausführungsform der schnellen dynamischen
Bandbreitenmessung in einer TCP-Netzwerkumgebung dar, die die Elemente
beinhaltet, die in den angehängten Ansprüchen definiert
sind. Diese Ausführungsform
wird in speziellen Einzelheiten beschrieben, so dass die vorgeschriebene
schriftliche Beschreibung, die Praxis-Befähigung sowie die Anforderung
an die beste Art und Weise erzielt werden. Dennoch ist es nicht
beabsichtigt, dass die Beschreibung selbst den Umfang dieses Patentes
beschränkt.
Vielmehr sind die Erfinder zu der Feststellung gelangt, dass die
beanspruchte schnelle dynamische Bandbreitenmessung in einer TOP-Netzwerkumgebung
auch auf andere Art und Weise ausgeführt werden kann, so beispielsweise
zusammen mit anderen aktuell verfügbaren oder zukünftigen
Technologien.
-
Selbst
wenn die Verwendung mit einem TCP-Netzwerk (wie beispielsweise dem
Internet) erfolgt, ist eine exemplarische schnelle dynamische Messung
der Bandbreite in einer TCP-Netzwerkumgebung (das heißt, eine „Bandbreiten-Messeinrichtung" oder eine „bw-Messeinrichtung" (bw-meter)), die
hierin beschrieben wird, schnell und robust. Die exemplarische Bandbreiten-Messeinrichtung
implementiert ein Verfahren mit einer niedrigen Latenz zum automatischen
Messen der Netzwerkbandbreite, die zwischen zwei Einheiten in einem
Kommunikationsnetzwerk verfügbar
ist. Es wurde festgestellt, dass diese besonders nützlich über dem Internet
(oder anderen solchen TCP-Netzwerken) ist.
-
Im
Gegensatz zu den herkömmlichen
Ansätzen
erhält
die exemplarische Bandbreiten-Messeinrichtung
(bw-meter) eine Bandbreitenmessung nach bester Anstrengung mit der
geringstmöglichen
Verzögerung, selbst
unter schwierigen Netzwerkbedingungen. Die exemplarische Bandbreiten-Messeinrichtung
(bw-meter) ist eingerichtet, um einen vernünftigen Datendurchsatz in weniger
als einer Sekunde in den meisten existierenden TCP-Netzwerken, einschließlich LANs,
Kabel, DSL und Modemverbindungen bereitzustellen.
-
Darüber hinaus
ist die exemplarische Bandbreiten-Messeinrichtung (bw-meter) in
der Anwendungsschicht implementiert. Obgleich die exemplarische
Bandbreiten-Messeinrichtung
(bw-meter) auch in anderen Schichten implementiert sein kann, ist
die hierin beschriebene Bandbreiten-Messeinrichtung (bw-meter) in
der Anwendungsschicht implementiert. Insbesondere kann sie teilweise
durch einen Webbrowser oder einen Mediaplayer implementiert sein.
-
Paketpaar-Verfahren
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) verwendet das
gut bewährte
Paketpaar-Verfahren, das voranstehend beschrieben wurde, und in 3 dargestellt
ist. Die exemplarische Bandbreiten-Messeinrichtung (bw-meter) verwendet
die Paketpaar-Gleichung (Gleichung 2), die voranstehend beschrieben
wurde, um die de facto maximale Bandbreite zwischen zwei Einheiten
in einem Kommunikationsnetzwerk (wie beispielsweise dem Internet)
zu berechnen.
-
Im
Gegensatz zu existierenden Verfahren zur automatischen Bandbreitenmessung,
die eine Vielzahl von Paketen verwenden, verwendet die exemplarische
Bandbreiten-Messeinrichtung
(bw-meter) ein einzelnes Paketpaar zum Messen der Bandbreite über das
Internet. Mit der exemplarischen Bandbreiten-Messeinrichtung (bw-meter)
werden die Bandbreitenmessungen und die Bandbreitenberechnungen „nahezu
unverzüglich" durchgeführt, da
lediglich ein einziges Paar von Messungspaketen gesendet wird. Der
Begriff „nahezu
unverzüglich" bedeutet, dass die
Bandbreite bestimmt wird, so bald das Paketpaar bei dem Client eintrifft.
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) überwindet
die Nachteile und Beschränkungen
des Verwendens des Paketpaar-Verfahrens über einem TCP-Netzwerk (wie beispielsweise
dem Internet) durch Implementieren von Gegenmaßnahmen zu dem Nagle-Algorithmus
und dem Slow Start-Algorithmus.
-
Paketpaar-Übermittlung.
-
Ein
Paket des Paketpaar-Verfahrens der exemplarischen Bandbreiten-Messeinrichtung
(bw-meter) bewegt sich von der sendenden Einheit (beispielsweise
dem Server) zu der empfangenden Einheit (beispielsweise dem Client). 4 zeigt
ein Beispiel einer solchen Übermittlung. 4 illustriert
eine Umgebung, die der Umgebung, die in 1 dargestellt
ist, ähnlich
ist.
-
4 illustriert
ein Beispiel einer typischen Internet-(TCP-Netzwerk)Konfiguration.
Sie beinhaltet einen Server (wie beispielsweise einen Medienserver 220),
der mit dem Internet 230 gekoppelt ist. Der Server beinhaltet
typischerweise einen oder mehrere physikalische Servercomputer 222 mit
einer oder mehreren physikalischen Speichervorrichtungen und/oder
Datenbanken 224. Auf der anderen Seite der Internetübertragung befindet
sich ein Client 290, der über einen Proxyserver 284,
bei dem es sich um Internet Service Provider (ISPs) 280 handelt,
verbunden ist.
-
Die
Wolke 230 ist mit Internet gekennzeichnet, es gilt jedoch
zu verstehen, dass diese Wolke den Abschnitt des Internets darstellt,
der lediglich das beinhaltet, was darin illustriert ist. Im Inneren
der Wolke sind Router, Übertragungsleitungen,
Verbindungen und andere Vorrichtungen, die in den meisten Fällen erfolgreich Daten
zwischen Clients und Servern übertragen,
vorhanden. Im Inneren der exemplarischen Internetwolke sind die
Router 232 bis 244; zwei Satellitenschüsseln 246 und 250;
und ein Satellit 248 vorhanden. Diese stellen die möglichen
Pfade dar, die ein Datenpaket auf seinem Weg zwischen dem Server
und dem Client nehmen kann.
-
4 zeigt
die aufeinanderfolgenden Pakete 260 und 262 des
Paares, das in Übereinstimmung
mit der exemplarischen Bandbreiten-Messeinrichtung (bw-meter) gesendet
wird. Der Server 220 sendet das Paket 262 unverzüglich nach
dem Paket 260.
-
Der
Proxyserver 284 ist über
die Verbindung 282 mit den Internet Service Providern (ISPs) 280 verbunden.
Der Client 290 und die Clients 292 verwenden den
Proxyserver, um mit dem Internet zu kommunizieren.
-
Bandbreitenmessung in der
Anwendungsschicht
-
Herkömmliche
Ansätze
zur Bandbreitenmessung sind typischerweise in der Transportschicht
oder einer anderen Schicht unterhalb des Anwendungslevels implementiert.
Die exemplarische Bandbreiten-Messeinrichtung (bw-meter) ist jedoch
in der Anwendungsschicht implementiert. Es bestehen wenigstens zwei
wichtige Vorteile infolge solch eines Ansatzes in der Anwendungsschicht
für die
Bandbreitenmessung in TCP-Paketpaaren.
-
Zuerst
besteht Abneigung gegenüber
einer Paketpaar-Implementierung in einer unteren Schicht (wie beispielsweise
der Transportschicht). Es erfordert Änderungen in dem Betriebssystemkern
des Betriebsystems (OS, Operating System), und es ist nicht für eine erhöhte Anwendung
auf einfache Weise ausgelegt. Im Gegensatz zu einer Implementierung
in der Anwendungsschicht, zieht eine Implementierung eines Paketpaars in
einer unteren Schicht größere Kosten
bei der Entwicklung, dem anfänglichen
Einsatz, der zukünftigen
Entwicklung und dem zukünftigen
Einsatz nach sich.
-
Zweitens
würde laut
einer Studie lediglich ein Viertel der TCP-Verbindungen, die untersucht
worden sind, von einer Bandbreitenmessung profitieren. Dementsprechend
ist es nicht kosteneffektiv, eine solche Bandbreitenmessung in einem
unteren Level zu implementieren, wenn diese nicht mehr als ein Viertel
der Verbindungen nutzt. Dementsprechend sollte solch eine Bandbreitenmessung
am besten in die Anwendungen integriert werden, die Anwendungen
sind, die die Bandbreitenmessung auch benötigen. Anwendungen sind viel einfacher
(und weniger teuer) erhöhend
einzusetzen als ein neuer Betriebsystemkern.
-
Es
gilt im Allgemeinen als sicher anzunehmen, dass der Zeittakt eines
Empfängers
ausreichend genau ist, und dass die IP-Datengramme (das heißt, die
Pakete) unbeschadet in Richtung nach oben durch den Netzwerkstapel
des Empfängers
(OSI-Schichten) zu der Anwendung weitergeleitet werden. Die zweite
Annahme gilt in dem Fall einiger Anwendungen nicht als sicher, wie
beispielsweise bei Software der American Online Version 4 (AOLv4)
und früheren
Versionen, die sich so verhalten hat, als ob sie Daten lediglich
zu der Anwendung auf einem Zeitgeber übermittelt hat. Auf diese Weise
wurde eine künstliche
Zeittakt-Granularität
auf die Messungen auferlegt. Günstigerweise
hat es den Anschein, dass die Version Fünf und spätere Versionen der AOL-Software
solche Unzulänglichkeiten
nicht mehr aufweisen.
-
Bedinqungen für effektive
Messungen unter Verwendung des Paketpaar-Verfahrens
-
Wenn
das Paketpaar-Verfahren zum Messen der Bandbreite verwendet wird,
müssen
zwei Bedingungen erfüllt
werden, um eine gute Messung zu erzielen.
-
Die
erste Bedingung besteht darin, dass die Pakete im Back-to-Back-Verfahren
gesendet werde müssen.
Hierein wird dies als die „Back-to-Back"-Bedingung bezeichnet.
Wenn Pakete nicht im Back-to-Back-Verfahren gesendet werden, werden
die Zeitmessungen zwischen ihnen verzerrt. Sowohl der Nagle-Algorithmus als
auch der Slow-Start-Algorithmus
gefährden
diese Bedingung. Beide verzögern
möglicherweise
die Übermittlung
des zweiten Messungspakets. Für
die Bandbreitenmessung unter Verwendung eines Paketpaar-Verfahrens
ist jegliche vermeidbare Verzögerung
zwischen den Pakete untolerierbar, da sie die Messung der tatsächlichen
Bandbreite verzerrt.
-
Die
zweite Bedingung besteht darin, dass die Größe der Pakete erhalten werden
muss. Das bedeutet, dass die Pakete nicht mit anderen Paketen kombiniert
werden dürfen.
Hierin wird dies als die Bedingung der „Größen-Erhaltung" bezeichnet. Der
Nagle-Algorithmus
gefährdet
diese Bedingung.
-
Der
Nagle-Algorithmus kann eine Vielzahl von Paketen der Anwendungsschicht
dazu veranlassen, als ein einzelnes TOP-Segment gesendet zu werden.
Dementsprechend sendet die TCP-Schicht, obgleich die Anwendung möglicherweise
der Annahme ist, dass sie zwei oder mehr Pakete sendet, in der Tat
nur ein einzelnes Paket.
-
Gegenmaßnahmen zu dem Nagle-Algorithmus
-
Ein
interessantes Verhalten des Nagle-Algorithmus besteht darin, dass
für kleine
Pakete lediglich eine Bestätigung
ACK ausstehend ist. Auf diese Weise kann ein Paar aus kleinen Paketen
mit dem Nagle-Algorithmus nicht im Back-to-Back-Verfahren gesendet
werden. Der Nagle-Algorithmus kombiniert kleine Pakete, die auf
eine ACK warten. Dadurch wird sowohl die Bedingung des „Back-to-Back" als auch die Bedingung
der „Größen-Erhaltung" beeinträchtigt.
-
Die
exemplarische Bandbreiten-Messeinrichtung ruft eine Gegenmaßnahme in
Aktion, um die Tendenz des Nagle-Allgorithmus, diese zwei Bedingungen
zu beeinträchtigen,
zu überwinden.
Eine Einheit (wie beispielsweise der Server 220 in 4)
sendet eine Anweisung, die Kommunikationseinrichtungen (wie beispielsweise
die Router 230 bis 250) dazu auffordert, den Nagle-Algorithmus
zu deaktivieren. Im Allgemeinen leitet der Server einen Befehl,
der im generischen Sinne Befehl „Verzögerung-deaktivieren" genannt wird, weiter.
Genauer gesagt bedeutet dies, dass der Server TCP_NODELAY an SetSockOpt()
weiterleitet.
-
So
lange wie das Überlastungsfenster
geöffnet
ist, verhindert das Deaktivieren des Nagle-Algorithmus, dass das
TCP-Protokoll einen Versuch unternimmt, irgendwelche der Paketpaar-Pakete
zu kombinieren, und das TCP wird das Paket unverzüglich in
das Netzwerk schreiben.
-
Mit
anderen Worten bedeutet dies, dass, wenn der Nagle-Algorithmus durch
einen Befehl „Verzögerung-deaktivieren" deaktiviert ist,
beide Pakete des Paketpaares ohne die Verzögerung durch die Router strömen, die
durch das Sammeln durch den Nagle-Algorithmus einer Vielzahl von Paketen
verursacht wird.
-
Gegenmaßnahme zum Slow-Start-Algorithmus
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) ruft eine Gegenmaßnahme in
Aktion, um die Tendenz des Slow-Start-Algorithmus, die Bedingung
des „Back-to-Back"-Verfahrens zu beeinträchtigen,
zu überwinden.
Dies wird dadurch erreicht, dass das Überlastungsfenster des Servers
(was speziell „cwnd" genannt wird) wenigstens
für drei
Pakete geöffnet
wird.
-
Dies
wird dadurch ausgeführt,
dass das Überlastungsfenster
gefüllt
wird („Priming"). Um das Überlastungsfenster
zu füllen,
sendet ein Server wenigstens ein Paket und empfängt eine Bestätigung ACK,
bevor er das Paketpaar des Paketpaar-Verfahrens sendet. Dementsprechend
sendet der Server wenigstens ein Füllungs-(„Priming")Paket zu dem Client, und dieses Paket
wird nicht zum Berechnen der Bandbreite verwendet. Nachdem ein oder
mehrere Füllungs-Pakete
gesendet worden sind, sendet der Server das eigentliche Paketpaar,
das zum Messen der Bandbreite verwendet wird. An diesem Punkt lässt der
Slow-Start-Algorithmus wenigstens zwei Pakete nacheinander durch,
ohne diese zu verzögern.
-
Der
Slow-Start-Algorithmus kann vollständig verhindert werden, indem
die Bandbreitenmessung zu einem späteren Zeitpunkt in der bestimmten
TCP-Verbindung durchgeführt
wird. Dies ist jedoch keine wünschenswerte
Option, und zwar aus zwei Gründen:
wegen einer zusätzlichen
Verzögerung
und zusätzlichem Steuerungsaufwand
(Overhead), die eine fehlerhafte Messung verursachen.
-
Wenn
die Messung zu einem späteren
Zeitpunkt durchgeführt
wird, steht eine eingebaute Verzögerung
an, um darauf zu warten, dass der Slow-Start-Algorithmus abläuft. Es
ist besser, keine Verzögerungen
zu haben, die vermieden werden können.
-
Das
Durchführen
der Bandbreitenmessung zu Beginn einer TCP-Verbindung beseitigt
viele Ungewissheiten, die sich im Verlauf der Verbindung ansammeln.
Wenn beispielsweise die TCP-Verbindung von sowohl der Steuerung
als auch dem Datentransport gemeinsam genutzt wird, ist es unmöglich, zu
einem späteren Zeitpunkt
in der Sitzung vorherzusagen, ob das Überlastungsfenster des Senders
es ermöglichen
wird, dass Pakete im Back-to-Back-Verfahren gesendet werden.
-
Gegenmaßnahmen zu Verzögerungen
in einem Proxy
-
Der
Nagle-Algorithmus, der in einem Proxy arbeitet, kann eine Paketpaar-Bandbreitenmessung
auf ähnliche
Weise verzerren. Im Allgemeinen erkennen Proxys einen Befehl „Verzögerung deaktivieren" nicht. Weder die
Client- noch die Serveranwendung kann im Voraus sagen, ob die Verbindung
durch einen Proxy auf der Schaltungsebene hergestellt wird.
-
Um
den Nagle-Algorithmus in einem Proxy zu adressieren, wird ein großes drittes
Paket nach dem Paar aus Messungspaketen gesendet. Wenn der Proxy
das zweite Paket des Paketpaares hält, pusht das dritte Paket
es weiter. Demzufolge wird dieses dritte Paket als das „Push"-Paket bezeichnet.
-
Zusätzlich dazu
könnten
in dem Proxy das erste und das zweite Paket kombiniert werden. Das
Ergebnis wäre
eine künstlich
hohe Messung, jedoch hat die Mehrheit der Proxy-Benutzer von vornherein
eine Verbindung einer hohen Bandbreite.
-
Methodologische Implementierung
-
5 zeigt
eine methodologische Implementierung der exemplarischen Bandbreiten-Messeinrichtung.
Die Illustration erfolgt aus der Perspektive des Servers. In dem
Block 300 wird die dynamische Bandbreitenmessung in Übereinstimmung
mit der exemplarischen Bandbreiten-Messeinrichtung initiiert. Typischerweise
wählt ein
Benutzer eine Option auf einer Webseite aus, um eine Medien-Präsentation
zu erleben. Alternativ dazu kann eine Anwendung auf dem Client solch
eine Bandbreitenmessung initiieren. Solch eine Anwendung kann ein
Webbrowser, ein Mediaplayer oder Ähnliches sein.
-
Im
Allgemeinen sendet in dem Block 302 in 5 der
Server ein Paketpaar zu dem Client, wobei ein Paket unverzüglich auf
das nächste
Paket folgt. Die spezifischen Implementierungsdetails in diesem
Block 302 sind in den 5a, 5b und 5c dargestellt.
Diese Figuren werden im Folgenden diskutiert.
-
In
dem Block 306 wartet der Server auf eine Antwort von dem
Client. Wenn diese nicht innerhalb der Zeitgrenze empfangen wird,
kehrt der Prozess zurück,
um in dem Block 302 ein weiteres Paketpaar zu senden. Obgleich
dies in dem Ablaufplan nicht dargestellt ist, wird der Prozess diesen
Vorgang eine gegebene Anzahl von Malen wiederholen, bevor der Prozess
beendet wird und ein Fehler erzeugt wird. Wenn eine Antwort innerhalb
der Zeitgrenze empfangen wird, geht der Prozess in den nächsten Block
unter 308 über.
-
Die
Antwort beinhaltet eine Bandbreitenmessung, die durch den Client
unter Verwendung des Paketpaares, das durch den Server in dem Block 304 gesendet
wurde, bestimmt wurde. Der Server extrahiert in dem Block 308 die
spezifische Bandbreite aus der Antwort.
-
In
dem Block 310 in 6 wählt der
Server die Datei (oder den Abschnitt davon) aus, die für eine Bandbreite
formatiert ist, die gleich oder geringer ist als die spezifizierte
Bandbreite. In dem Block 312 sendet der Server die Datei
(oder einen Abschnitt davon) zu dem Client.
-
Wenn
es sich um eine Mediendatei handelt, genießt der Benutzer des Client
eine Medien-Präsentation,
die mit dem Abspielen sehr schnell beginnt. Darüber hinaus erfolgt das Abspielen
störungsfrei
und bei der höchstmöglichen
Qualität
mit einer gemessenen Bandbreite. Der Prozess endet in dem Block 314.
-
Gegenmaßnahme zum Nagle-Algorithmus.
-
5a zeigt
die spezifische methodologische Implementierung einer exemplarischen
Bandbreiten-Messeinrichtung für
die Gegenmaßnahme
zu dem Nagle-Algorithmus. In dem Block 402 sendet der Server einen
Befehl zum Deaktivieren der Verzögerung,
um die Verwendung des Nagle-Algorithmus zu deaktivieren. In dem
Block 404 sendet der Server ein Paar aus Bandbreitenmes sungs-Paketen
zu dem Client. In dem Block 406 kehrt der Prozess zurück zu dem
Block 306, der in 5 dargestellt
ist.
-
Gegenmaßnahme zu Proxv-Verzögerungen.
-
5b zeigt
die spezifische methodologische Implementierung der exemplarischen
Bandbreiten-Messeinrichtung für
die Gegenmaßnahme
zu den Proxy-Verzögerungen.
In dem Block 412 sendet der Server ein Paar aus Bandbreitenmessungs-Paketen
zu dem Client. In dem Block 414 sendet der Server ein „Push"-Paket, um das Paar
aus einem beliebigen Puffer heraus zu zwingen, in dem es möglicherweise
durch eine Kommunikationseinrichtung gespeichert ist. In dem Block 416 kehrt
der Prozess zurück
zu dem Block 306, der in 5 dargestellt
ist.
-
Gegenmaßnahme zum Slow-Start-Algorithmus.
-
5c zeigt
die spezifische methodologische Implementierung der exemplarischen
Bandbreiten-Messeinrichtung für
die Gegenmaßnahme
zu dem Slow-Start-Algorithmus. In dem Block 422 sendet
der Server ein „Füllungs"-(Priming)Paket,
um den Slow-Start-Algorithmus zu überwinden.
-
Dieses „Füllungs"-(Priming)Paket wird
nicht für
die Bandbreitenmessung verwendet. Es ermöglicht es dem Netzwerk, sich
zu öffnen
(das heißt,
das Überlastungsfenster
zu öffnen)
und zwei Pakete auf ein Mal ohne Verzögerung zuzulassen. In dem Block 424 sendet
der Server ein Paar aus Bandbreitenmessungs-Paketen zu dem Client.
In dem Block 426 kehrt der Prozess zurück zu dem Block 306,
der in 5 dargestellt ist.
-
Andere Implementierungsdetails
-
Implementierungsanwendungen.
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) kann durch
eine beliebige Einheit implementiert werden, die auf schnelle Weise
die Bandbreite zwischen zwei Einheiten in einem Netzwerk messen möchte. Insbesondere
ist dies ein TCP-Netzwerk, wie beispielsweise das Internet.
-
Solch
eine Einheit kann diese exemplarische Bandbreiten-Messeinrichtung
(bw-meter) in der Anwendungsschicht implementieren. Beispiele von
Programmmodulen eines Anwendungslevels, die diese exemplarische
Bandbreiten-Messeinrichtung (bw-meter) implementieren können, ist
eine Serveranwendung für
Streaming-Medien auf einem Server, der entweder das Microsoft Media
Server-(MMS)Protokoll oder das Real Time Streaming Protokol (RTSP)
anwendet.
-
Sowohl
das MMS-Protokoll als auch das RTSP-Protokoll nutzen gemeinsam sehr ähnliche
grundlegende Verfahren, um die Bedingungen für eine erfolgreiche Messung
unter Verwendung der exemplarischen Bandbreiten-Messeinrichtung
(bw-meter) bereitzustellen. Die Implementierung der exemplarischen
Bandbreiten-Messeinrichtung (bw-meter) unter Verwendung des RTSP-Protokolls
erweist sich jedoch als schwieriger als solch eine Implementierung
unter Verwendung des MMS-Protokolls.
-
RTSP-Paketpaar-Syntax.
Eine Möglichkeit,
warum das RTSP-Protokoll schwieriger ist als das MMS-Protokoll liegt
darin, dass sich die drei Pakete als eine Antwort auf einen RTSP-Befehl
so maskieren müssen,
dass der RTSP-Parser des Client sie auch verarbeiten kann. Der RTSP-Befehl
GET_PARAMETER wird verwendet, um das Paketpaar-Experiment anzufordern. Das erste Paket
der Antwort beginnt mit den typischen RTSP-Antwort-Headern.
-
Im
Folgenden werden Beispiele der Header für eine Paketpaar-Anforderung
von dem Client dargestellt:
-
GET_PARAMETER* RTSP/1.0
-
- Inhalts-Typ: Anwendung/x-rtsp-Paketpaar
- Inhalts-Länge:
16
- Datum: Sonntag, 02. April 2000, 22:36:18 GMT
- CSeq: 2
- User-Agent:WMPlayer/5.0.0.0488 guid/1 A21De80-08E7-11D4-93FE-006097B76A2E
- Annahme-Sprache: En-US, *;q = 0,1
- Annahme-Charset: UTF-8, *;q = 0,1
- Zeitstempel: 1
-
Im
Folgenden werden Beispiele der Header für die Paketpaar-Antwort von
dem Server gezeigt:
-
RTSP/1.0 200 OK
-
- Inhalts-Typ: Anwendung/x-rtsp-Paketpaar
- Inhalts-Länge:
2048
- Datum: Sonntag, 02. April 2000, 22:30:48 GMT
- CSeq: 2
- Zeitstempel: 1 0.063
- Server: WMServer/5.0.0.0518
-
TCP-Probleme.
-
Wie
dies bereits voranstehend erwähnt
worden ist, muss das Überlastungsfenster
zu wenigstens drei Paketen zu dem Zeitpunkt geöffnet sein, zu dem die drei
Pakete von dem Server gesendet werden. Da das anfängliche Überlastungsfenster
zwei beträgt,
wird die Antwort DESCRIBE (BESCHREIBEN) verwendet, um das Fenster
auf drei oder mehr zu öffnen.
Wenn die Antwort DESCRIBE drei Pakete erfordert, bedeutet das, dass
das dritte Paket auf eine ACK von dem Client warten muss, bevor
es gesendet werden kann.
-
Während das
TCP-Protokoll des Servers auf die ACK von entweder dem ersten oder
dem zweiten der ersten zwei Pakete wartet, können, wenn der Parameter GET_PARAMETER
ankommt und anschließend
die Anwendung mit dem Schreiben der Antwort auf den Parameter GET_PARAMETER
zu der Anschlussbuchse beginnt, die Paketpaar-Pakete mit dem dritten
und letzten Paket der Antwort DESCRIBE sowie miteinander kombiniert
werden. Dementsprechend sollte der Client den Parameter GET_PARAMETER
solange nicht senden, bis die Antwort DESCRIBE vollständig empfangen
ist.
-
Dadurch
wird garantiert, dass das Überlastungsfenster
in dem Server offen sein wird, wenn die Paketpaar-Pakete gesendet
werden. Demzufolge werden keine Pakete kombiniert. Die Antwort DESCRIBE
kann ein oder es können
mehr Pakete sein, und das Überlastungsfenster
wird drei oder mehr betragen, wenn das Paketpaar-Verfahren durchgeführt wird.
Offensichtlich sollte kein anderer Verkehr vor dem Paketpaar auftreten.
-
Messung von Ankunftszeiten.
-
Ein
Teil des Durchführens
der Paketpaar-Messung der exemplarischen Bandbreiten-Messeinrichtung (bw-meter)
(auf dem Anwendungslevel) besteht darin, dass die Clientanwendung
die Ankunftszeit der zwei Pakete misst. Das RTSP-Protokoll stellt
eine zusätzliche
Herausforderung dahingehend dar, dass die Header der Antworten eine
relativ lange Zeit zur Verarbeitung verglichen mit der Granularität, die für eine genaue
Messung benötigt
wird, in Anspruch nimmt. Dementsprechend kann der Client nicht warten,
bis die Verarbeitung des Antwort-Headers herausfindet, dass es sich
um eine Antwort auf eine Paketpaar-Anforderung handelt, bevor er
einen Zeitstempel auf das erste Paket des Paketpaares aufbringt.
-
Der
Zeitstempel muss aufgebracht werden, bevor der Client überhaupt
weiß,
um welche Art von Antwort es sich handelt. Wenn dementsprechend
der Client eine Paketpaar-Anforderung
stellt, führt
er Zeitstempeln bei jedem eingehenden Befehlsantwort-Paket durch,
so lange bis er das Paketpaar empfängt. Dann verlässt er diesen
Vor-Zeitstempel-Modus.
-
Der
Client muss immer noch den Header des ersten Paketes verarbeiten,
bevor er das zweite Paket lesen kann. Dementsprechend besteht eine
obere Grenze dahingehend, bis zu welcher Höhe einer geringsten Stelle
(„Bottleneck") gemessen werden
kann, und es wird dadurch bestimmt, wie schnell der Client den RTSP-Antwort-Header
verarbeiten kann. Wenn beispielsweise die Zeit, die er zur Verarbeitung
des Headers benötigt,
5 ms beträgt,
beträgt
die maximale Geschwindigkeit, die gemessen werden kann, ungefähr 800 kb/s. Dementsprechend
werden RTSP-Messungen an der Spitze nicht so gut sein wie die bei
MMS, es sei denn, die Zeit, die zum Parsen der RTSP-Antwort benötigt wird,
ist gering.
-
Exemplarische Computerumgebung
-
6 illustriert
ein Beispiel einer geeigneten Computerumgebung 920, in
der die exemplarische Bandbreiten-Messeinrichtung implementiert
werden kann.
-
Die
exemplarische Computerumgebung 920 ist lediglich ein Beispiel
einer geeigneten Computerumgebung, und es ist nicht beabsichtigt,
dass diese irgendeine Beschränkung
hinsichtlich des Umfangs der Verwendung oder der Funktionalität der exemplarischen
Bandbreiten-Messeinrichtung (bw-meter) suggeriert. Des Weiteren
sollte die Computerumgebung 920 auch nicht dahingehend
interpretiert werden, dass sie irgendeine Abhängigkeit oder Anforderung hinsichtlich
einer beliebigen oder einer Kombination aus Komponenten aufweist,
die in der exemplarischen Computerumgebung 920 illustriert
sind.
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) kann mit einer
Vielzahl von Universal- oder Spezialcomputersystemumgebungen oder
Computersystemkonfigurationen betrieben werden. Beispiele von gut
bekannten Computersystemen, Computerumgebungen und/oder Computerkonfigurationen,
die für
die Verwendung mit der exemplarischen Bandbreiten-Messeinrichtung
(bw-meter) geeignet sein können,
umfassen, sind aber nicht beschränkt
auf, Personalcomputer, Servercomputer, Thin Clients, Thick Clients,
tragbare oder Laptopvorrichtungen, Multiprozessorsysteme, auf Mikroprozessoren
basierende Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronikgeräte, drahtlose
Telefone, drahtlose Kommunikationseinrichtungen, Netzwerk-PCs, Minicomputer,
Mainframe-Computer, verteilte Computerumgebungen, die beliebige der
voranstehenden Systeme oder Einrichtungen und Ähnliches umfassen.
-
Die
exemplarische Bandbreiten-Messeinrichtung (bw-meter) kann in dem
allgemeinen Kontext von durch Computer ausführbaren Befehlen beschrieben
werden, wie beispielsweise Programmmodulen, die durch einen Computer
ausgeführt
werden. Im Allgemeinen umfassen Programmmodule Routinen, Programme,
Objekte, Komponenten, Datenstrukturen und so weiter, die bestimmte
Aufgaben ausführen
oder bestimmte abstrakte Datentypen implementieren. Die exemplarische
Bandbreiten-Messeinrichtung (bw-meter) kann darüber hinaus auch in verteilten
Computerumgebungen praktiziert werden, in denen Aufgaben durch entfernte
Verarbeitungsvorrichtungen, die über
ein Kommunikationsnetzwerk verbunden sind, ausgeführt werden.
In einer verteilten Computerumgebung können Programmmodule sowohl
in lokalen als auch entfernten Computerspeichermedien einschließlich Speichervorrichtungen
vorhanden sein.
-
Wie
dies in 6 dargestellt ist, beinhaltet
die Computerumgebung 920 eine Universalcomputervorrichtung
in Form eines Computers 930. Die Komponenten des Computers 920 können einen
oder mehrere Prozessoren oder Verarbeitungseinheiten 932,
einen Systemspeicher 934 und einen Bus 936 umfassen,
der verschiedene Systemkomponenten einschließlich des Systemspeichers 934 mit
dem Prozessor 932 koppelt, jedoch sind die Komponenten
nicht auf die Genannten beschränkt.
-
Der
Bus 936 repräsentiert
einen beliebigen von mehreren Typen von Busstrukturen, einschließlich eines
Speicherbuses oder eines Speicherkontrollers, eines Peripheriebuses,
eines beschleunigten Grafikanschlusses, und eines Prozessors oder
eines lokalen Buses, der beliebige einer Reihe verschiedener Busarchitekturen
verwendet. Im Sinne eines Beispiels und nicht im restriktiven Sinne
zu erachten, umfassen solche Architekturen einen ISA-(Industry Standard
Architecture)Bus, einen MCA-(Micro Channel Architecture)Bus, einen
EISA-(Enhanced ISA)Bus, einen lokalen VESA-(Video Electronics Standards
Association)Bus und einen PCI-(Peripheral Component Interconnect)
Bus, auch als Mezzanine-Bus bekannt.
-
Der
Computer 930 enthält
typischerweise eine Reihe verschiedener computerlesbarer Medien.
Solche Medien können
beliebige verfügbare
Medien sein, auf die durch den Computer 930 zugegriffen
werden kann, und sie umfassen sowohl flüchtige als auch nicht-flüchtige Medien,
entnehmbare und nicht-entnehmbare Medien.
-
In 6 beinhaltet
der Systemspeicher computerlesbare Medien in Form von flüchtigen
Speichern, wie beispielsweise eines Direktzugriffspeichers (RAM) 940 und/oder
nicht flüchtigen
Speichern, wie beispielsweise eines Festwertspeichers (ROM) 938.
Ein Basiseingabe/Ausgabesystem (RIOS) 942, das die Basisroutinen
enthält,
die das Übertragen
von Informationen zwischen Elementen innerhalb des Computers 930,
wie zum Beispiel während
des Hochfahrens, unterstützen,
ist typischerweise in dem Festwertspeicher ROM 938 gespeichert.
Der Direktzugriffsspeicher RAM 940 enthält typischerweise Daten und/oder
Programmmodule, auf die durch den Prozessor 932 unmittelbar
zugegriffen werden kann und/oder die gegenwärtig durch den Prozessor 932 verarbeitet
werden.
-
Der
Computer 930 kann darüber
hinaus auch andere entnehmbare/nicht-entnehmbare, flüchtige/nicht-flüchtige Computerspeichermedien
umfassen. Lediglich im Sinne eines Beispiels illustriert 6 ein Festplattenlaufwerk 944,
das von nicht-entnehmbaren, nicht-flüchtigen Magnetmedien (nicht
dargestellt und typischerweise als „Festplatte" bezeichnet) liest
und auf diese schreibt, ein Magnetplattenlaufwerk 946,
das von einer entnehmbaren, nicht-flüchtigen Magnetplatte 948 (beispielsweise
eine „Diskette") liest und auf diese schreibt
und ein optisches Plattenlaufwerk 950, das von einer entnehmbaren,
nicht-flüchtigen
optischen Platte 952, wie beispielsweise einer CD-ROM,
einer DVD-ROM oder
anderen optischen Medien liest oder auf diese schreibt. Das Festplattenlaufwerk 944,
das Magnetplattenlaufwerk 946 und das optische Plattenlaufwerk 950 sind jeweils über eine
oder mehrere entnehmbare Speicherschnittstellen 954 mit
dem Bus 936 verbunden.
-
Die
Laufwerke und ihre assoziierten computerlesbaren Medien gewährleisten
die nicht flüchtige
Speicherung von computerlesbaren Befehlen, Datenstrukturen, Programmmodulen
und anderen Daten für
den Computer 930. Obgleich die hierin beschriebene exemplarische
Umgebung eine Festplatte, eine entnehmbare Magnetplatte 948 und
eine entnehmbare optische Platte 952 verwendet, sollte
den Personen mit der gewöhnlichen
Erfahrung auf dem Gebiet der Technik offensichtlich sein, dass auch
andere Typen von computerlesbaren Medien, die Daten speichern können, auf
die durch einen Computer zugegriffen werden kann, wie beispielsweise
Magnetkassetten, Flash-Speicherkarten, digitale Videoplatten, Direktzugriffspeicher
(RAMs) Festwertspeicher (ROMs) und Ähnliche ebenfalls in der exemplarischen
Betriebsumgebung verwendet werden können.
-
Es
kann eine Anzahl von Programmmodulen auf der Festplatte, der Magnetplatte 948,
der optischen Platte 952, dem ROM 938 oder dem
RAM 940 gespeichert werden, einschließlich aber nicht beschränkend auf,
ein Betriebssystem 958, ein oder mehrere Anwendungsprogramme 960,
andere Programmmodule 962 und Programmdaten 964.
-
Ein
Benutzer kann über
Eingabegeräte,
wie beispielsweise eine Tastatur 966 und ein Zeigegerät 968 (wie
beispielsweise eine Maus), Befehle und Informationen in den Computer 930 eingeben.
Andere Eingabegeräte
(nicht dargestellt) können
ein Mikrophon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner
oder Ähnliches
umfassen. Diese und andere Eingabegeräte sind oftmals über eine
Benutzereingabeschnittstelle 970, die mit dem Bus 936 gekoppelt
ist, mit der Verarbeitungseinheit 932 verbunden, sie können jedoch
auch durch andere Schnittstellen und Busstrukturen, wie beispielsweise
einen Parallelanschluss, einen Game-Port oder einen Universalserienbus
(USB) verbunden sein.
-
Ein
Monitor 972 oder ein anderer Typ von Anzeigevorrichtung
ist ebenfalls über
eine Schnittstelle, wie beispielsweise einen Videoadapter 974 mit
dem Bus 936 verbunden. Zusätzlich zu dem Monitor beinhalten Personalcomputer
typischerweise auch andere Peripherie-Ausgabegeräte (nicht dargestellt), wie
beispielsweise Lautsprecher und Drucker, die über eine Ausgabe-Peripherieschnittstelle 975 verbunden
sein können.
-
Der
Computer 930 kann in einer vernetzten Umgebung unter Verwendung
von logischen Verbindungen zu einem oder mehreren entfernten Computern,
wie beispielsweise einem entfernten Computer 982 betrieben
werden. Der entfernte Computer 982 kann viele oder alle
der Elemente und Leistungsmerkmale, die hierin in Bezug auf den
Computer beschrieben werden, enthalten.
-
Die
in 6 dargestellten logischen Verbindungen umfassen
ein lokales Netz (LAN, Local Area Network) 977 und ein
Großraumnetzwerk
(WAN) 979. Solche Netzwerkumgebungen werden weit verbreitet
in Büros,
unternehmensweiten Computernetzwerken, Intranets und dem Internet
eingesetzt.
-
Wenn
der Computer 930 in einer LAN-Netzwerkumgebung verwendet
wird, ist er über
eine Netzwerkschnittstelle oder einen Adapter 986 mit dem
LAN 977 verbunden. Wenn der Computer 930 in einer
WAN-Netzwerkumgebung verwendet wird, enthält der Computer 930 typischerweise
ein Modem 978 oder eine andere Vorrichtung zum Herstellen
von Kommunikationen über
das Großraumnetzwerk
WAN 979. Das Modem 978, das ein externes oder
ein internes Modem sein kann, kann über die Benutzereingabeschnittstelle 970 oder
einen anderen geeigneten Mechanismus mit dem Bus 939 verbunden
sein.
-
In 6 ist
eine spezifische Implementierung eines Großraumnetzes WAN über das
Internet dargestellt. Über
das Internet enthält
der Computer 930 typischerweise ein Modem 978 oder
eine andere Vorrichtung zum Herstellen von Kommunikationen über das
Internet 980. Das Modem 978, das ein externes
oder ein internes Modem sein kann, ist über die Benutzerschnittstelle 970 mit
dem Bus 939 verbunden.
-
In
einer Netzwerkumgebung können
Programmmodule, die in Bezug auf den Computer 930 dargestellt
sind, beziehungsweise Abschnitte davon, in einer entfernten Speichervorrichtung
gespeichert sein. Im Sinne eines Beispiels und nicht im restriktiven
Sinne zu erachten, illustriert 6 entfernte
Anwendungsprogramme 989, wie diese in einer Speichervorrichtung
des entfernten Computers 982 installiert sind. Es ist offensichtlich,
dass die Netzwerkverbindungen, die dargestellt und beschrieben sind,
lediglich exemplarischen Charakter aufweisen und dass auch andere
Vorrichtungen zum Herstellen einer Kommunikationsverbindung zwischen
den Computern verwendet werden können.
-
Exemplarische Betriebsumgebung
-
6 illustriert
ein Beispiel einer geeigneten Betriebsumgebung 920, in
der die exemplarische Bandbreiten-Messeinrichtung (bw-meter) implementiert
werden kann. Genauer gesagt bedeutet dies, dass die exemplarische
Bandbreiten-Messeinrichtung (bw-meter) durch ein beliebiges Programm 960 bis 962 oder
das Betriebssystem 958, die in 6 dargestellt
sind, implementiert wird.
-
Die
Betriebsumgebung ist lediglich ein Beispiel einer geeigneten Betriebsumgebung
und es ist nicht beabsichtigt, dass sie eine Beschränkung hinsichtlich
des Umfangs der Verwendung oder der Funktionalität der hierin beschriebenen
Bandbreiten-Messeinrichtung (bw-meter) suggeriert. Andere gut bekannte
Computersystem, Computerumgebungen und/oder Computerkonfigurationen,
die für
die Verwendung mit der Bandbreiten-Messeinrichtung (bw-meter) geeignet
sind, umfassen, sind aber nicht beschränkt auf, Personalcomputer,
Servercomputer, tragbare oder Laptopvorrichtungen, Multiprozessorsysteme,
auf Mikroprozessoren basierende Systeme, programmierbare Unterhaltungselektronikgeräte, Netzwerk-PCs,
Minicomputer, Mainframe-Computer, verteilte Computerumgebungen,
die beliebige der voranstehenden Systeme oder Vorrichtungen enthalten,
oder Ähnliche.
-
Durch Computer ausführbare Befehle
-
Eine
Implementierung der exemplarischen Bandbreiten-Messeinrichtung (bw-meter)
kann in dem allgemeinen Kontext von durch Computer ausführbaren
Befehlen, wie beispielsweise Programmmodulen, die durch einen oder
mehrere Computer oder andere Vorrichtungen ausgeführt werden,
beschrieben werden. Im Allgemeinen umfassen Programmmodule Routinen,
Programme, Objekte, Komponenten, Datenstrukturen und so weiter,
die bestimmte Aufgaben ausführen
oder bestimmte abstrakte Datentypen implementieren. Typischerweise
kann die Funktionalität
der Programmmodule in verschiedenen Ausführungsformen kombiniert oder
verteilt werden, wie dies gewünscht
ist.
-
Computerlesbare Medien
-
Eine
Implementierung der exemplarischen Bandbreiten-Messeinrichtung (bw-meter)
kann in einer Form von computerlesbaren Medien gespeichert und von
ihr übertragen
werden. Computerlesbare Medien können
jegliche verfügbare
Medien sein, auf die durch einen Computer zugegriffen werden kann.
Im Sinne eines Beispiels und nicht im restriktiven Sinne zu erachten,
können
computerlesbare Medien Computerspeichermedien und Kommunikationsmedien
umfassen.
-
Computerspeichermedien
umfassen flüchtige
und nicht flüchtige,
entnehmbare und nicht entnehmbare Medien, die in einem beliebigen
Verfahren oder einer Technologie zum Speichern von Informationen,
wie beispielsweise computerlesbare Befehlen, Datenstrukturen, Programmmodulen
oder anderen Daten implementiert sind. Computerspeichermedien umfassen,
sind aber nicht beschränkt
auf, RAM, ROM, EEPROM, Flash-Speicher
oder andere Speichertechnologien, CD-ROM, Digital Versstile Disks
(DVDs) oder andere optische Speicher, Magnetkassetten, Magnetband,
Magnetplattenspeicher oder andere magnetische Speichervorrichtungen
oder ein beliebiges anderes Medium, das zum Speichern der gewünschten
Informationen verwendet werden kann und auf das durch eine Computer
zugegriffen werden kann.
-
Kommunikationsmedien
verkörpern
typischerweise computerlesbare Befehle, Datenstrukturen, Programmmodule
oder andere Daten in einem modulierten Datensignal wie beispielsweise
einer Trägerwelle
oder einem anderen Transportmechanismus und schließen beliebige
Informationsübermittlungsmedien
ein. Der Begriff „moduliertes
Datensignal" bezieht
sich auf ein Signal, bei dem eine oder mehrere seiner Eigenschaften auf
eine solche Weise eingestellt oder geändert werden, dass Informationen
in dem Signal codiert werden. Im Sinne eines Beispiels und nicht
im restriktiven Sinne zu erachten, umfassen Kommunikationsmedien
verdrahtete Medien wie beispielsweise ein verdrahtetes Netzwerk
oder ein direkt verdrahtete Verbindung, und drahtlose Medien, wie
beispielsweise akustische, RF-, Infrarot und andere drahtlose Medien.
Kombinationen von beliebigen der voranstehend Erwähnten fallen
ebenfalls in den Umfang der computerlesbaren Medien.
-
Schlussfolgerung
-
Obgleich
die schnelle dynamische Messung von Bandbreite in einer TCP-Netzwerkumgebung
mittels einer Sprache beschrieben worden ist, die sich spezifisch
auf strukturelle Leistungsmerkmale und/oder methodologische Schritte
bezieht, gilt es zu beachten, dass die schnelle dynamische Messung
von Bandbreite in einer TCP-Netzwerkumgebung,
die in den angehängten
Ansprüchen
definiert ist, nicht notwendigerweise auf die spezifischen Leistungsmerkmale
oder Schritte, die hierin beschrieben worden sind, beschränkt ist.
Vielmehr werden die spezifischen Leistungsmerkmale und Schritte
als bevorzugte Formen des Implementierens der beanspruchten schnellen
dynamischen Messung von Bandbreite in einer TCP-Netzwerkumgebung
offenbart.