-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum Messen
einer Verzögerungszeitmetrik
z. B. von dem Typ, der eine Protokolldateneinheit erzeugt, um ein
Maß einer
Netzleistung zu liefern. Die vorliegende Erfindung bezieht sich
auch auf ein Messsystem für
ein Kommunikationssystem z. B. des Typs, der verwendet wird, um
eine Netzleistung zu messen.
-
Auf
dem Gebiet von Kommunikationsnetzen ist es nötig, einen Betrieb der Kommunikationsnetze zu überwachen
und zu optimieren. In dieser Hinsicht nimmt in dem Maße, in dem
die Kommunikationsnetze, z. B. das Internet, wachsen, der Bedarf
zu überwachen
und zu optimieren nur zu. Ein Beispiel für ein Überwachen von Kommunikationsnetzen
ist die Durchführung
von sogenannten Umlaufzeitmessungen.
-
Eine
bekannte Dienstsicherungstechnologie zum Messen von Umlaufzeiten
ist als Aktivmesstechnologie bekannt und umfasst die Erzeugung, Übertragung
und Erfassung von gut gebildetem synthetischem Verkehr in einem
Paketvermittlungsnetz.
-
Die
Umlaufzeit eines Pakets von einem Quellenknoten zu einem Bestimmungsknoten,
die unter Verwendung der oben genannten Technologie gemessen wird,
ist aus mehreren Gründen
nützlich. Erstens
bringen einige Anwendungen keine gute Leitung oder gar keine Leistung,
wenn eine sogenannte Ende-zu-Ende-Verzögerung zwischen Knoten relativ zu
einem Schwellenwert groß ist.
Wenn Umlaufzeiten zu groß sind,
sind einige Transportschichtprotokolle weniger gut in der Lage,
eine hohe Bandbreite aufrechtzuerhalten. Der Schwellenwert für eine Umlaufzeit
liefert eine Schätzung
der Ausbreitungs- und Übertragungsverzögerung entlang
eines Wegs in einem Kommunikationsnetz oder einer wahrscheinlichen
Verzögerung
bei geringfügig
belasteten Wegbedingungen. Umlaufzeiten über der Schwelle liefern eine
gute Anzeige des Überlastungspegels,
der in einem Weg vorhanden ist, der von Paketen gefolgt wird. Große Werte
einer Umlaufzeit können
die Leistung einiger Anwendungen beeinträchtigen; eine übermäßige Verzögerungsschwankung
(Jitter) kann Echtzeitanwendungen unterbrechen.
-
Umlaufzeitmessungen
sind gegenüber
Einwegverzögerungsmessungen
aufgrund ihrer einfachen Anwendung vorteilhaft; eine Umlaufzeitmessung
erfordert einen geringeren Zusatzfunktionalitätsmehraufwand bei einem Bestimmungspunkt
verglichen mit der Funktionalität,
die erforderlich ist, um eine Einwegverzögerungsmessung, z. B. eine
Taktsynchronisation, auszuführen.
Auch liefern Umlaufzeitmessungen bisweilen eine einfache Interpretation,
da die Umlaufzeit tatsächlich
unter einigen Umständen
die interessierende Größe ist;
es ist weniger genau, die Umlaufzeit aus zusammenpassenden Einwegverzögerungen
herzuleiten.
-
Die
Primärumlaufmesslösung zur
Verwendung bezüglich
Internetprotokoll- (IP-) Version 6- (IPv6-) Verkehr ist das sogenannte
Internetsteuernachrichtprotokoll-Version-6-(ICMPvb-) Echo-Anforderung/Antwort-Protokoll,
wie es in Request For Comments (RFC) 2463 (www.faqs.org) beschrieben ist.
-
Bei
diesem Protokoll werden ICMPvb-Echoanforderungspakete mit Null oder
mehr Oktetten von beliebigen Daten durch den Quellenknoten gesendet.
Wenn das Paket bei dem Bestimmungsknoten ankommt, wird ein entsprechendes
Echoantwortpaket sofort gemäß dem ICMPvb
zurück
zu dem Quellenknoten „reflektiert". Eine Zeit zwischen
dem Senden des Echoanforderungspakets und dem Empfangen des Echoantwortpakets
liefert ein Maß der
Umlaufzeit.
-
Das
ist die Grundlage einer sogenannten „ping6"-Anwendung, einer bekannten IPv6-Umlaufzeitmessanwendung,
die 64-Byte-ICMPv6-Echo-Anforderung/Antwort-Pakete
verwendet. Bisweilen handhabt jedoch ein Router ICMPv6-Anforderungspakete
anders als einen regulären
Benutzerverkehr, und somit zeigt ein Umlaufzeitmaß, das nachfolgend erhalten
wird, nicht die Verzögerung
an, wie dieselbe von anderen Oberschichtprotokollen, d. h. über einer Netzschicht,
z. B. Benutzerdatagrammprotokoll (UDP) oder Übertragungssteuerprotokoll
(TCP), erfahren würde.
Somit ist es nicht möglich,
ein zuverlässiges
Maß für die Umlaufzeit
eines Ipv6-Datagramms mit einem beliebigen Nutzlasttyp und einer beliebigen
Länge unter
Verwendung des ICMPv6-Echo/Antwort-Mechanismus zu erhalten.
-
Die „ping6"-Anwendung hat jedoch
andere Nachteile. Da ein Internetweg von einem Quellenknoten zu
einem Bestimmungsknoten sich von dem Weg von dem Bestimmungsknoten
zurück
zu dem Quellenknoten unterscheiden kann, was als das Problem asymmetrischer
Wege bekannt ist, ist ein Maß von
Umlaufzeiten unter Verwendung der „ping6"-Anwendung nicht zuverlässig. Selbst
wenn der nach draußen
gerichtete und der Rückweg
symmetrisch sind, können
asymmetrische Warteschlangencharakteristika existieren. Außerdem kann
die Leistung einer Anwendung bisweilen hauptsächlich von einer Leistung entlang
eines Weges in einer Richtung abhängen. Auch kann bei Dienstgüte- (QoS-)
befähigten
Netzen eine Bereitstellung in einer Wegrichtung sich radikal von
einer Bereitstellung in einer umgekehrten Richtung unterscheiden,
und somit unterscheiden sich die QoS-Garantien in einer Richtung von
denjenigen in der anderen Richtung.
-
Außerdem ist
es bei bekannten Umlaufzeitberechnungstechniken gewöhnlich so,
dass der Quellenknoten Zustandsinformationen, d. h. Zeitstempel
und Paketidentifikationsinformationen, für jedes gesendete Paket unterhält, um in
der Lage zu sein, die Umlaufzeit auf einen Empfang eines passenden
Antwortpakets hin zu berechnen. Obwohl die geeigneten Informationen,
insbesondere der Zeitstempel, als ein Teil des beliebigen Datenfelds
der ICMPv6-Echo-Anforderung/Antwort-Pakete gesendet werden könnten, wäre es nicht
möglich,
ebenso mit einem beliebigen Protokoll-/Nutzlasttyp und einer beliebigen
Länge zu
verfahren, selbst wenn derartige Pakete durch den Bestimmungsknoten
reflektiert werden könnten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Messen
einer Verzögerungszeitmetrik,
ein Computerprogrammcodeelement, eine Netzknotenvorrichtung zum
Erzeugen einer Überwachungsprotokolldateneinheit,
ein Messsystem für
ein Kommunikationsnetz und eine Verwendung einer Protokolldateneinheit
mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 22, ein Computerprogrammcodeelement
gemäß Anspruch
16, eine Netzknotenvorrichtung gemäß Anspruch 18 oder 23, ein
Messsystem gemäß Anspruch
20 oder 24 sowie eine Verwendung gemäß Anspruch 21 gelöst.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Messen einer Verzögerungszeitmetrik
bezüglich
eines Umlaufwegs in einem Kommunikationsnetz geliefert, wobei das Verfahren
folgende Schritte aufweist: Erzeugen einer Protokolldateneinheit
gemäß einer
Datenstrukturdefinition eines Kommunikationsprotokolls, das ein
erweiterbares Schema unterstützt,
wobei die Protokolldateneinheit ein opakes Objekt aufweist, das
zu dem erweiterbaren Schema konform ist; Ausstatten der Protokolldateneinheit
mit einer Leitadresse, die einem Quellenknoten entspricht, um zu
bewirken, dass die Protokolldateneinheit, wenn dieselbe gesendet worden
ist, dem Umlaufweg von dem Quellenknoten zurück zu dem Quellenknoten über einen
Bestimmungsknoten folgt; Senden der Protokolldateneinheit von dem
Quellenknoten zu dem Bestimmungsknoten; Empfangen der Protokolldateneinheit
an dem Bestimmungsknoten; Weiterlei ten der Protokolldateneinheit
von dem Bestimmungsknoten zu der Leitadresse; wobei Messdaten in
dem opaken Objekt bezüglich
zumindest eines Netzknotens an dem Umlaufweg aufgezeichnet werden;
und zumindest eines der Messdaten, die in dem opaken Objekt enthalten sind,
verwendet wird, um die Verzögerungszeitmetrik zu
berechnen.
-
Der
zumindest eine Netzknoten kann den Quellenknoten aufweisen, wobei
die Verzögerungszeitmetrik
eine Umlaufzeitmetrik ist.
-
Die
Messdaten könnten
Folgendes aufweisen: erste Messdaten, die eine Abgangszeit der Protokolldateneinheit
von dem Quellenknoten anzeigen.
-
Die
Verzögerungszeitmetrik
kann aus den Messdaten, die in dem opaken Objekt enthalten sind, und
zweiten Messdaten berechnet werden, die eine Empfangszeit der Protokolldateneinheit
durch den Quellenknoten anzeigen.
-
Die
Messdaten können
Folgendes aufweisen: zweite Messdaten, die eine Empfangszeit der Protokolldateneinheit
durch den Quellenknoten anzeigen.
-
Das
Verfahren kann ferner folgenden Schritt aufweisen: Ausstatten der
Protokolldateneinheit mit zumindest einer weiteren Leitadresse zusätzlich zu der
Leitadresse, die vor einem Senden der Protokolldateneinheit zu dem
Bestimmungsknoten bereitgestellt wird.
-
Bei
der Leitadresse kann es sich um eine Endleitadresse handeln.
-
Das
Verfahren kann ferner folgenden Schritt aufweisen: Erzeugen von
dritten Messdaten an dem Bestimmungsknoten, wobei die dritten Messdaten eine
Empfangszeit der Protokolldateneinheit an dem Bestimmungsknoten
anzeigen und Ergänzen
des opaken Objekts mit den dritten Messdaten.
-
Das
Verfahren kann ferner folgenden Schritt aufweisen: Erzeugen von
vierten Messdaten an dem Bestimmungsknoten, wobei die vierten Messdaten eine
Sendezeit der Protokolldateneinheit von dem Bestimmungsknoten anzeigen;
und Ergänzen
des opaken Objekts mit den vierten Messdaten.
-
Die
Messdaten können
die dritten Messdaten aufweisen. Die Messdaten können die vierten Messdaten
aufweisen.
-
Die
zumindest eine weitere Leitadresse kann einem Zwischenknoten entsprechen;
und das Verfahren kann ferner folgende Schritte aufweisen: Empfangen
der Protokolldateneinheit an dem Zwischenknoten; Erzeugen von fünften Messdaten,
die eine Empfangszeit der Protokolldateneinheit an dem Zwischenknoten
anzeigen; und Ergänzen
des opaken Objekts mit den fünften
Messdaten.
-
Die
zumindest eine weitere Leitadresse kann einem Zwischenknoten entsprechen;
und das Verfahren kann ferner folgende Schritte aufweisen: Empfangen
der Protokolldateneinheit an dem Zwischenknoten; Erzeugen von sechsten
Messdaten, die eine Sendezeit der Protokolldateneinheit von dem
Zwischenknoten anzeigen; und Ergänzen
des opaken Objekts mit den sechsten Messdaten.
-
Die
Messdaten können
die fünften
Messdaten aufweisen. Die Messdaten können die sechsten Messdaten
aufweisen.
-
Das
Verfahren kann ferner folgenden Schritt aufweisen: Setzen eines
Verkehrsklassenfeldes der Protokolldateneinheit. Alternativ oder
zusätzlich
dazu kann das Verfahren folgenden Schritt aufweisen: Setzen eines
Flussetikettfelds der Protokolldateneinheit.
-
Bei
dem opaken Objekt kann es sich um einen Erweiterungsanfangsblock
handeln. Der Erweiterungsanfangsblock kann ein Bestimmungsoptionenanfangsblock
sein. Die Protokolldateneinheit kann ein IPv6-Paket sein.
-
Bei
den Messdaten kann es sich um Zeitstempeldaten handeln.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird ein Computerprogrammcodeelement
geliefert, das eine Computerprogrammcodeeinrichtung aufweist, um
einen Computer zu veranlassen, das Verfahren auszuführen, wie
dasselbe im Vorhergehenden mit Bezug auf den ersten Aspekt der Erfindung
dargelegt ist.
-
Das
Computerprogrammcodeelement kann auf einem computerlesbaren Medium
ausgeführt sein.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung wird eine Netzknotenvorrichtung
zum Erzeugen einer Überwachungsprotokolldateneinheit geliefert,
wobei die Vorrichtung folgende Merkmale aufweist: eine Verarbeitungsressource,
die angeordnet ist, um bei Verwendung eine Protokolldateneinheit
gemäß einer
Datenstrukturdefinition eines Kommunikationsprotokolls zu erzeugen,
das ein erweiterbares Schema unterstützt, wobei die Protokolldateneinheit
ein opakes Objekt aufweist, das zu dem erweiterbaren Schema konform
ist wobei die Protokolldateneinheit eine Leitadresse aufweist, die
der Netzknotenvorrichtung entspricht, um zu bewirken, dass die Protokolldateneinheit,
wenn dieselbe gesendet wird, einem Umlaufweg von dem Netzknoten
zurück zu
dem Netzknoten über
einen Bestimmungsknoten folgt; und die Verarbeitungsressource ferner
angeordnet ist, um bei Verwendung die Protokolldateneinheit von
dem Netzknoten zu dem Bestimmungsknoten zu senden, wobei das opake
Objekt erste Messdaten aufweist, die eine Abgangszeit der Protokolldateneinheit
von dem Netzknoten anzeigen.
-
Die
Verarbeitungsressource kann angeordnet sein, um bei Verwendung zweite
Messdaten ansprechend auf einen Empfang der Protokolldateneinheit
durch den Netzknoten zu erzeugen und unter Verwendung der ersten
und der zweiten Messdaten eine Umlaufzeitmetrik zu berechnen.
-
Gemäß einem
vierten Aspekt der vorliegenden Erfindung wird ein Messsystem für ein Kommunikationsnetz
geliefert, wobei das System folgende Merkmale aufweist: einen Quellenknoten,
der angeordnet ist, um bei Verwendung eine Protokolldateneinheit
gemäß einer
Datenstrukturdefinition eines Kommunikationsprotokolls zu erzeugen,
das ein erweiterbares Schema unterstützt, wobei die Protokolldateneinheit
ein opakes Objekt aufweist, das zu dem erweiterbaren Schema konform
ist, und eine Leitadresse umfasst, die dem Quellenknoten entspricht,
um zu bewirken, dass die Protokolldateneinheit, wenn dieselbe gesendet
wird, einem Umlaufweg von dem Quellenknoten zurück zu dem Quellenknoten folgt; einen
Bestimmungsknoten, der angeordnet ist, um bei Verwendung die Protokolldateneinheit,
die bei Verwendung von dem Quellenknoten gesendet wird, zu empfangen,
wobei der Bestimmungsknoten ferner angeordnet ist, um bei Verwendung
die Protokolldateneinheit zu der Leitadresse weiterzuleiten; wobei Messdaten
in dem opaken Objekt bezüglich
zumindest eines Netzknotens an dem Umlaufweg aufgezeichnet werden;
und zumindest ein Teil der Messdaten, die in dem opaken Objekt enthalten
sind, verwendet wird, um eine Verzögerungszeitmetrik zu berechnen.
-
Gemäß einem
fünften
Aspekt der vorliegenden Erfindung wird eine Verwendung einer Protokolldateneinheit
geliefert, um einem Umlaufweg zu folgen und Messdaten von zumindest
einem Knoten an dem Umlaufweg zu sammeln, wobei die Protokolldateneinheit
gemäß einer
Datenstrukturdefinition eines Kommunikationsprotokolls gebildet
wurde, das ein erweiterbares Schema unterstützt, wobei die Protokolldateneinheit
ein opakes Objekt aufweist, das zu dem erweiterbaren Schema konform
ist, und wobei das opake Objekt die Messdaten aufweist.
-
Es
ist somit möglich,
ein Verfahren zum Messen einer Verzögerungszeitmetrik und ein System
zu liefern, die ohne eine Anzahl der Nachteile von bestehenden Techniken
verwendet werden können,
um eine Umlaufzeitmessung zu berechnen. In dieser Hinsicht sind,
anders als bei der „ping6"-Anwendung, das Verfahren,
das System und die Vorrichtung, die hier beschrieben sind, von verwendeten
Protokollen höherer
Schichten unabhängig.
Folglich können ähnliche
Messungen deshalb für
ein beliebiges gewähltes
Oberschichtprotokoll ausgeführt
werden, d. h. über
der Netzschicht eines Protokollstapels, um die Erfahrung von echten
Benutzerdaten genauer als durch bestehende Messtechniken widerzuspiegeln. Außerdem können das
Verfahren, das System und die Vorrichtung für eine beliebige Größe von Protokolldateneinheitsnutzlast
bis zu einem Minimum der Maximaltransiteinheiten (MTUs) für jeweilige
Segmente eines Wegs von einem Quellenknoten zu einem Bestimmungsknoten
und zurück
zu dem Quellenknoten implementiert werden. Dies ermöglicht deshalb
auch, dass die Erfahrung der echten Benutzerdaten genau widergespiegelt
wird. Ferner können das
Verfahren, das System und die Vorrichtung als ein zustandloser Prozess
implementiert werden, da die Messdaten, die jeder Messung von z.
B. einer Umlaufzeit zugeordnet sind, mit der Protokolldateneinheit
selbst eingereiht getragen werden können. Somit ist diese Technik
für jedes
beliebige Oberschichtprotokoll geeignet.
-
Ein
weiterer Vorteil des Verfahrens, des Systems und der Vorrichtung,
die hier beschrieben sind, ist die Möglichkeit, in der Lage zu sein,
eine Umlaufzeit von dem Quellenknoten zu ein oder mehr Zwischenpunkten
vor einer Rückkehr
der Protokolldateneinheit zu dem Quellenknoten zu messen. Zum Beispiel
ist es möglich,
die Gesamtverzögerung
von einem Quellenknoten „A" zu einem Zwischenknoten „B", zu einem Zwischenknoten „C" und dann zurück zu dem
Quellenknoten „A" zu messen. Auch
ermöglichen
das Verfahren und das System, die hier beschrieben sind, durch ein
zusätzliches
Instrumentieren des Bestimmungsknotens mit einer geeigneten Messfunktionalität, wie es
hier dargelegt ist, eine getrennte Messung von Ende-zu-Ende-Verzögerungen, die
einem Internetweg von dem Quellenknoten zu dem Bestimmungsknoten
und von dem Bestimmungsknoten zurück zu dem Quellenknoten zugeordnet
sind.
-
Außerdem ist
es möglich,
getrennte Messungen von Ende-zu-Ende-Verzögerungen
zwischen aufeinander folgenden Leitpunkten, wie es in dem Anfangs-IPv6-Anfangsblock
und dem Leitanfangsblock der Protokolldateneinheit spezifiziert
ist, vorzunehmen sowie oder alternativ dazu getrennte Messungen
von Ende-zu-Ende-Verzögerungen
vorzunehmen, die zusätzlichen
Internetwegen zwischen Zwischenknoten zugeordnet sind, bevor die
Protokolldateneinheit zu dem Quellenknoten zurückkehrt. Zum Beispiel ist es
möglich,
einzelne Verzögerungen zwischen
dem Quellenknoten „A", dem Zwischenknoten „B", dem Zwischenknoten „C" und zurück zu dem
Quellenknoten „A" zu messen.
-
Außerdem ist
es durch ein Setzen von Verkehrsklassen- oder Flussetikettfeldern
eines IPv6- (Aktiv-) Messpakets somit möglich, Umlaufzeitmessungen
zu erhalten, die differenzierten Dienstklassen zugeordnet sind,
die von einem Betreiber oder einem Dienstanbieter in einem Kommunikationsnetz
angeboten werden können.
-
Zumindest
ein Ausführungsbeispiel
der Erfindung wird nun nur beispielhaft unter Bezugnahme auf die
beiliegenden Zeichnungen beschrieben. Es zeigen:
-
1 ein
schematisches Diagramm eines Teils eines Kommunikationsnetzes;
-
2 ein
schematisches Diagramm einer Verarbeitungsressource eines Quellenknotens,
das ein Ausführungsbeispiel
der Erfindung darstellt;
-
3 ein
Flussdiagramm eines ersten Teils eines Verfahrens, das durch die
Verarbeitungsressource von 2 verwendet
wird;
-
4 ein
schematisches Diagramm einer ersten Struktur eines Pakets, das bei
dem Verfahren von 3 gebildet wird;
-
5 ein
Flussdiagramm eines zweiten Teils zu dem ersten Teil des Verfahrens
von 4;
-
6 ein
schematisches Diagramm einer zweiten Struktur eines Pakets, die
bei einem zweiten Ausführungsbeispiel
der Erfindung verwendet wird;
-
7 ein
schematisches Diagramm einer dritten Struktur eines Pakets, die
bei einem dritten Ausführungsbeispiel
der Erfindung verwendet wird;
-
8 ein
Flussdiagramm eines alternativen zweiten Teils zu dem ersten Teil
des Verfahrens von 4, das ein viertes Ausführungsbeispiel
der Erfindung darstellt; und
-
9 ein
schematisches Diagramm einer vierten Struktur eines Pakets, das
bei dem alternativen zweiten Teil des Verfahrens von 8 gebildet wird.
-
In
der gesamten folgenden Beschreibung werden identische Bezugszeichen
verwendet, um gleiche Teile zu identifizieren.
-
Unter
Bezugnahme auf 1 weist ein Teil eines Kommunikationsnetzes 100,
z. B. des Internets, einen Quellenknoten 102 auf, der mit
einem ersten Zwischenknoten 104 und einem zweiten Zwischenknoten 106 gekoppelt
ist. Das Kommunikationsnetz 100 ist ein Internetprotokoll-
(IP-) Netz, insbesondere ein IPv6-Netz.
-
Der
erste Zwischenknoten 104 ist mit einem dritten Zwischenknoten 108 sowie
dem zweiten Zwischenknoten 106 gekoppelt. Sowohl der zweite
Zwischenknoten 106 als auch der dritte Zwischenknoten 108 sind
mit einem vierten Zwischenknoten 110 gekoppelt, wobei der
zweite Zwischenknoten 106 auch mit einem fünften Zwischenknoten 112 gekoppelt
ist. Sowohl der vierte als auch der fünfte Zwischenknoten 110, 112 sind
mit einem Bestimmungsknoten 114 gekoppelt.
-
Obwohl
hier auf „Knoten" Bezug genommen wird,
ist es für
einen Fachmann ersichtlich, dass es sich bei den Knoten um Hosts
oder Router oder andere Netzelemente handeln kann, abhängig von
der Funktionalität,
die von dem Netzelement an einem bestimmten Ort des Netzelements
in dem Kommunikationsnetz 100 benötigt wird. In dieser Hinsicht muss
das Netzelement in der Lage sein, die Funktionalität, die hier
bezüglich
Ausführungsbeispielen
der Erfindung beschrieben ist, zusätzlich zu einem Unterstützen des
IPv6-Protokolls auszuführen.
-
Bei
diesem Beispiel ist der Betrieb des Quellenknotens 102 modifiziert,
um bestimmte Aufgaben durchzuführen,
wie dieselben hier beschrieben sind. Im Gegensatz dazu ist der Bestimmungsknoten 114 bei
diesem Beispiel nicht modifiziert und ist ein Router, der die normale
Leitfunktionalität
durchführt,
die von einem Router erwartet wird.
-
Unter
Bezugnahme auf 2 weist der Quellenknoten 102 eine
Verarbeitungsressource 200 auf, die unter anderem aus zumindest
einem Mikroprozessor (nicht gezeigt), einem flüchtigen Speicher (nicht gezeigt),
z. B. einem Direktzugriffsspeicher (RAM), einem nichtflüchtigen
Speicher (nicht gezeigt), z. B. einem Nur-Lese-Speicher (ROM), besteht.
Die Verarbeitungsressource 200 unterstützt einen Betriebssystemkernraum 202,
einen Teil der Verarbeitungsressource 200, der zum Unterstützen eines
Protokollstapels reserviert ist. Bei diesem Beispiel ist der Protokollstapel gemäß geeigneter Schichten
in dem OSI-7-Schicht-Referenzmodell
implementiert. Außerdem
unterstützt
die Verarbeitungsressource 200 einen Benutzerraum 204,
einen Teil der Verarbeitungsressource 200, der für die Ausführung von
Benutzeranwendungen reserviert ist, z. B. ein Video-Streaming-Server.
Die Verarbeitungsressource 200 unterstützt auch eine Zugriffsmediumschnittstelle 206,
d. h. die physische Schicht.
-
In
Bezug auf den Protokollstapel weist der Protokollstapel unter anderem
eine Datenverbindungsschicht 208 sowie andere obere Schichten 210 und
eine physische Schicht (nicht gezeigt) unter der Datenverbindungsschicht 208 auf.
-
Unter
den Anwendungen, die sich in dem Benutzerraum 204 befinden,
ist eine Messanwendung 212 zum Injizieren von Messpakten
in das Kommunikationsnetz 100. Um diese Aufgabe zu lösen, ist
die Messanwendung 212 in der Lage, eine Schnittstelle mit
der Datenverbindungsschicht 208 zu bilden.
-
Bei
Betrieb (1, 2 und 3)
erzeugt (Schritt 300) die Messanwendung 212 ein
leeres IPv6-Paket 116, das einen Paketanfangsblock 214 aufweist,
der eine Quellen-IP-Adresse des Quellenknotens 102 in einem
Quellenadressfeld des Pakets 116 und eine Bestimmungs-IP-Adresse
des Bestimmungsknotens 114 in einem Bestimmungsadressfeld des
Pakets 116 enthält.
Das Paket 116 ist als ein Teil einer voll gebildeten Datenverbindungsnutzlast
gebildet. Die Messanwendung 212 führt dann (Schritt 302) einen
Bestimmungsoptionenanfangsblock 216 zusammen mit einem
opaken Objekt in Form eines Typlängenwerttupels,
das als eine IPv6-Option bekannt ist, in das Paket 116 ein.
Die Messanwendung 212 führt
auch (Schritt 304) einen Leitanfangsblock 218 in das
Paket 116 ein, wobei der Leitanfangsblock 218 eine
Leit-IP-Adresse enthält,
die der IP-Adresse des Quellenknotens 102 entspricht. Die
Messanwendung 212 erzeugt (Schritt 306) dann einen
ersten Zeitstempel, der Messdaten darstellt, und führt denselben (Schritt 308)
in die Option ein, die in dem Bestimmungsoptionenanfangsblock 216 enthalten
ist.
-
Unter
Zuwendung zu 4 ist die Struktur des Pakets 116 gemäß RFC 2460 gebildet,
die sich auf Bestimmungsoptionenanfangsblöcke bezieht. Bestimmungsoptionenanfangsblöcke sind
ein Beispiel für
Erweiterungsanfangsblöcke,
die IPv6-Optionen
enthalten, die Beispiele für
opake Objekte sind. Opake Objekte werden gemäß erweiterbaren Schemata bereitgestellt,
die durch das Protokoll unterstützt
werden, das verwendet wird, um die Protokolldateneinheit zu bilden,
bei diesem Beispiel das Paket 116.
-
Nach
dem Einführen
des Zeitstempels in den Bestimmungsoptionenanfangsblock 216 des
Pakets 116 öffnet
die Messanwendung 212 ein Roh-Socket bzw. einen Roh-Sockel
zu der Datenverbindungsschicht 208 und führt die
voll gebildete Datenverbindungsnutzlast in die Datenverbindungsschicht 208 ein.
Danach wird das Paket 116 zu dem Bestimmungsknoten 114 weitergeleitet,
wenn auch über eine
Anzahl der Zwischenknoten, die gemäß Leittabellen (nicht gezeigt)
der Anzahl der Zwischenknoten ausgewählt sind, zwischen dem Quellenknoten 102 und
dem Bestimmungsknoten 114.
-
Unter
Bezugnahme auf 5 und wie es im Vorhergehenden
beschrieben ist, wird das Paket 116 zu dem Bestimmungsknoten 114 geleitet
(Schritt 500), wobei an diesem Punkt der Bestimmungsknoten 114 die
Bestimmungs-IP-Adresse in dem Bestimmungsadressfeld des Pakets 116 mit
der Leit-IP-Adresse,
die in dem Leitanfangsblock 218 des Pakets 116 gespeichert
ist, austauscht. Das Paket 116 wird dann durch den Bestimmungsknoten 114 unter
Verwendung der Leit-IP-Adresse
gemäß einem
normalen IPv6-unterstützten
Verhalten des Bestimmungsknotens 114 zurück zu dem
Quellenknoten 102 weitergeleitet (Schritt 502).
Nachfolgend wird das Paket 116 durch den Quellenknoten 116 empfangen
(Schritt 504), woraufhin ein zweiter Zeitstempel durch
die Messanwendung 212 ansprechend auf eine Erfassung des
Typs der Option, die vorhergehend in den Bestimmungsoptionenanfangsblock 216 eingeführt wurde,
durch die Messanwendung 212 erzeugt wird (Schritt 506).
Die Messanwendung 212 extrahiert dann den ersten Zeitstempel
von dem Paket 116 und subtrahiert den Wert des ersten Zeitstempels
von dem zweiten Zeitstempel, der auf einen Empfang des Pakets 116 hin
erzeugt wird, um eine Umlaufzeit, ein Beispiel für eine Verzögerungszeitmetrik, zu berechnen
(Schritt 508).
-
Bei
einem weiteren Ausführungsbeispiel weist
der Bestimmungsknoten 114, um die folgende Funktionalität zu erreichen,
eine weitere Verarbeitungsressource (nicht gezeigt) auf, die ein
Betriebssystem, z. B. Linux, unterstützt, das einen dynamisch ladbaren
Betriebssystemkerncode unterstützt,
der mit jeweiligen Punkten in einem Betriebssystemkernprotokollstapel über geeignet
angeordnete Betriebssystemkern-„Haken" eine Schnittstelle bildet, die in den
Betriebssystemkernprotokollstapel vorkompiliert sind oder in dem
Betriebssystemkern bereits existieren, z. B. diejenigen von Netfilter,
an der Netzschicht oder darunter. Folglich kann der Bestimmungsknoten 114 eine
modifizierte, und bei diesem Beispiel erweiterte, Funktionalität gegenüber einer
Funktionalität liefern,
die normalerweise durch Knoten geliefert wird, die das IPv6-Protokoll
unterstützen.
Alternativ dazu können
die Modifizierungen und Erweiterungen durch ein Anwenden eines Patch
bei dem Quellencode des Betriebssystemkernprotokollstapels und dann
ein Neukompilieren des Betriebssystemkerns erreicht werden. Während jedoch
Linux-basierte Betriebssystemkerne bzw. Kernels verwendet werden können, ist
es möglich,
dynamisch verbindbare Bibliotheken zu verwenden, die für andere
Betriebssystemkerne, wie z. B. verschiedene Versionen von Microsoft® WindowsTM erhältlich
sind, um die gleiche Funktionalität zu erreichen, wie es nun
beschrieben wird.
-
Die
Betriebssystemkernhaken stellen eine Instrumentenausrüstung des
Bestimmungsknotens 114 dar, die bewirken, dass der Bestimmungsknoten 114 einen
dritten Zeitstempel auf einen Empfang des Pakets 116 hin
erzeugt und den dritten Zeitstempel 600 in den Bestimmungsoptionenanfangsblock 216 des
Pakets 116 einführt.
Außerdem
oder alternativ dazu erzeugt der Bestimmungsknoten 114 auch
einen vierten Zeitstempel 602 unmittelbar vor einem Weiterleiten
des Pakets 116 zurück
zu dem Quellenknoten 102, wobei der vierte Zeitstempel
ebenfalls in den Bestimmungsoptionenanfangsblock 216 des
Pakets 116 eingeführt
wird.
-
Auf
einen Empfang des Pakets 116 an dem Quellenknoten 102 hin
wird der zweite Zeitstempel erzeugt (Schritt 506), wie
es im Vorhergehenden beschrieben ist, und eine beliebige Kombination
des ersten Zeitstempels 400, des zweiten Zeitstempels, des
dritten Zeitstempels 600 und des vierten Zeitstempels 602 wird
verwendet, um eine Verzögerungszeitmetrik
zu berechnen. Zum Beispiel können der
erste und der dritte Zeitstempel 400, 600 verwendet
werden, um eine Einwegverzögerungszeit
zwischen dem Quellenknoten 102 und dem Bestimmungsknoten 114 in
der nach außen
gerichteten Richtung zu berechnen, oder eine Einwegverzögerungszeit
kann nur zwischen dem Quellenknoten 102 und dem Bestimmungsknoten 114 unter
Verwendung des vierten Zeitstempels 602 und des zweiten
Zeitstempels bezüglich
der Rückrichtung
berechnet werden. Außerdem
oder alternativ dazu können
die beiden Einwegverzögerungszeitmessungen
verwendet werden, um eine Umlaufzeit zu berechnen, die jegliche
Verzögerungen
ausschließt,
die in dem Bestimmungsknoten 114 verursacht werden.
-
Bei
einem dritten Ausführungsbeispiel (7 und 8)
ist die Technik des ersten Ausführungsbeispiels
so modifiziert, dass zusätzlich
zu einem Einführen
(Schritt 304) eines Leitanfangsblocks 218 in das
Paket 116, wobei der Leitanfangsblock 218 die
Leit-IP-Adresse enthält,
die der IP-Adresse des
Quellenknotens 102 entspricht, die Messanwendung 212 auch
eine Anzahl von Zwischen-IP-Adressen in den Leitanfangsblock 218 einführt. Die Leit-IP-Adresse 700 (7)
wird eine End-IP-Adresse in dem Leitanfangsblock 218. Die
Anzahl von Zwischen-IP-Adressen 702 entspricht jeweils
einer Anzahl der Zwischenknoten 104, 106, 108, 110, 112.
-
Bei
diesem Beispiel wählt
die Messanwendung 212 die IP-Adressen des fünften Zwischenknotens 112 und
des zweiten Zwischenknotens 106 aus. Folglich wird bei
Betrieb (8) in einer ähnlichen Weise wie derjenigen,
die im Vorhergehenden unter Bezugnahme auf das erste Ausführungsbeispiel
beschrieben ist, das Paket 116 an den Bestimmungsknoten 114 weitergeleitet
(Schritt 800), wenn auch über eine Anzahl der Zwischenknoten,
die gemäß Leittabellen
(nicht gezeigt) der Anzahl der Zwischenknoten ausgewählt sind,
zwischen dem Quellenknoten 102 und dem Bestimmungsknoten 114.
Danach leitet (Schritt 802) der Bestimmungsknoten 114 das Paket 116 an
eine erste Zwischen-IP-Adresse weiter, die in dem Leitanfangsblock 218 des
Pakets 116 aufgelistet ist. Auf einen Empfang (Schritt 804)
des Pakets 116 an dem fünften
Zwischenknoten 112 hin, der der ersten Zwischen-IP-Adresse
entspricht, leitet (Schritt 806) der fünfte Zwischenknoten 112 das
Paket 116 an einen zweite Zwischen-IP-Adresse weiter, die
in dem Leitanfangsblock 218 des Pakets 116 aufgelistet
ist. Auf einem Empfang (Schritt 808) des Pakets 116 an
dem zweiten Zwischenknoten 106 hin, der der zweiten Zwischen-IP-Adresse
entspricht, leitet (Schritt 810) der zweite Zwischenknoten 106 das Paket 116 an
die End-IP-Adresse 700 weiter,
die in dem Leitanfangsblock 218 des Pakets 116 aufgelistet ist.
Folglich wird das Paket 116 schließlich an dem Quellenknoten 102,
der der End-IP-Adresse 700 entspricht,
empfangen (Schritt 812), woraufhin der Quellenknoten 102 den
zweiten Zeitstempel auf die gleiche Weise erzeugt (Schritt 814),
wie es bereits im Vorhergehenden unter Bezugnahme auf das erste Ausführungsbeispiel
beschrieben ist. Die Messanwendung 212 extrahiert dann
den ersten Zeitstempel von dem Paket 116 und subtrahiert
den Wert des ersten Zeitstempels von dem zweiten Zeitstempel, der auf
einen Empfang des Pakets 116 erzeugt wird, um die Umlaufzeit
zu berechnen (Schritt 816). Die Umlaufzeit, die bei diesem
Ausführungsbeispiel
berechnet wird, steht jedoch in Bezug mit einem spezifischen Umlaufweg,
der durch die Messanwendung 212 ausgewählt wird.
-
Bei
einem vierten Ausführungsbeispiel (9)
ist die Technik des dritten Ausführungsbeispiels
auf eine ähnliche
Weise modifiziert wie diejenige, die im Vorhergehenden unter Bezugnahme
auf das zweite Ausführungsbeispiel
beschrieben ist.
-
Zusätzlich zu
einem Instrumentieren des Bestimmungsknotens 114, um in
der Lage zu sein, den dritten und den vierten Zeitstempel 600, 602 zu
dem Bestimmungsoptionenanfangsblock 216 des Pakets 116 hinzuzufügen, werden
die Zwischenknoten 104, 106, 108, 110, 112 ebenfalls
auf die gleiche Weise wie der Bestimmungsknoten 114 instrumentiert. Folglich
wird, wenn das Paket 116 an dem fünften Zwischenknoten 112 empfangen
wird (Schritt 804), ein fünfter Zeitstempel 900 erzeugt
und zu dem Bestimmungsoptionenanfangsblock 216 des Pakets 116 hinzugefügt. Außerdem oder
alternativ dazu wird unmittelbar vor einem Weiterleiten (Schritt 806)
des Pakets 116 an den zweiten Zwischenknoten 106 ein sechster
Zeitstempel 902 erzeugt und zu dem Bestimmungsoptionenanfangsblock 216 des
Pakets 116 hinzugefügt.
-
Auf ähnliche
Weise wird bei dem zweiten Zwischenknoten 106 auf einen
Empfang (Schritt 808) des Pakets 116 hin ein siebter
Zeitstempel (nicht gezeigt) erzeugt und zu dem Bestimmungsoptionenanfangsblock 216 des
Pakets 116 hinzugefügt.
Außerdem
oder alternativ dazu wird unmittelbar vor einem Weiterleiten (Schritt 810)
des Pakets 116 zurück
zu dem Quellenknoten 102 ein achter Zeitstempel (nicht gezeigt)
erzeugt und zu dem Bestimmungsoptionenanfangsblock 216 des
Pakets 116 hinzugefügt.
Bei dem Quellenknoten 102 wird der zweite Zeitstempel auf
einen Empfang des Pakets 116 hin erzeugt, wie es im Vorhergehenden
beschrieben ist.
-
Nützlicherweise
trägt das
Pakets 116 Paare von Zeitstempeln bezüglich jedes Sprungs zwischen Routern,
der in dem Leitanfangsblock 218 des Paktes 116 spezifiziert
ist, sowie bezüglich
einer Ankunftszeit bei dem Bestimmungsknoten 114 und einer
Abgangszeit von dem Bestimmungsknoten 114. Eine beliebige
Kombination dieser Zeitstempeldaten kann verwendet werden, um eine
Anzahl von unterschiedlichen Verzögerungszeitmetriken zu berechnen.
Zum Beispiel können,
wie es im Vorhergehenden unter Bezugnahme auf das zweite Ausführungsbeispiel
beschrieben ist, der erste und der dritte Zeitstempel 400, 600 verwendet
werden, um eine Einwegverzögerungszeit
zwischen dem Quellenknoten 102 und dem Bestimmungsknoten 114 in
der nach außen
gerichteten Richtung zu berechnen, oder eine Einwegverzögerungszeit
kann nur zwischen dem Quellenknoten 102 und dem Bestimmungsknoten 114 unter
Verwendung des vierten Zeitstempels 602 und des zweiten
Zeitstempels bezüglich
der Rückrichtung
berechnet werden. Außerdem
oder alternativ dazu können
die zwei Einwegverzögerungszeitmessungen
verwendet werden, um eine Umlaufzeit zu berechnen, die jegliche
Verzögerungen
ausschließt,
die innerhalb des Bestimmungsknotens 114 verursacht werden.
-
Zusätzlich zu
diesen Zeitverzögerungsmetriken
kann die Messanwendung 212 jedoch auch Komponentenelemente
der Gesamtverzögerungszeit
berechnen, die durch ein Subtrahieren geeigneter Zeitstempel von
denjenigen, die durch das Paket 116 gesammelt werden, d.
h. der erste, dritte, vierte, fünfte,
sechste, siebte und achte Zeitstempel und/oder der zweite Zeitstempel,
berechnet werden.
-
Obwohl
das vorhergehende Ausführungsbeispiel
in dem Kontext beschrieben wurde, dass alle Zwischenknoten instrumentiert
sind, um den Bestimmungsoptionenanfangsblock 216 des Pakets 116 mit Messdaten
zu ergänzen,
sei darauf hingewiesen, dass nur die Knoten, von denen Messdaten
benötigt werden,
instrumentiert sein müssen.
Tatsächlich
sind bei einigen Kommunikationsnetzen nicht alle Knoten auf diese
Weise instrumentiert, und somit werden Zeitstempel nicht immer für alle Sprünge, die
in dem Leitanfangsblock 218 des Pakets 116 spezifiziert sind,
zu dem Bestimmungsoptionenanfangsblock 216 hinzugefügt.
-
Bei
den obigen Ausführungsbeispielen
werden Roh-Sockets geöffnet,
um das Paket 116 in das Netz 100 zu injizieren.
Bei einem anderen Ausführungsbeispiel
kann jedoch die Instrumentiertechnik, die im Vorhergehenden bezüglich des
Bestimmungsknotens 114 angewendet wurde, verwendet werden, um
den Quellenknoten 102 zu instrumentieren, um ein Abfangmodul
aufzuweisen, das sich in dem Betriebssystemkernraum befindet.
-
Die
Messanwendung 212 erzeugt ein IPv6-Paket ohne eine geeignete
Bestimmungsoption zum Sammeln von Messdaten oder einen Leitanfangsblock,
wobei das IPv6-Paket nachfolgend durch den Protokollstapel hinuntergeleitet
wird. Alternativ dazu kann eine Anwendung, die in dem Benutzerraum
liegt und die eine Erzeugung von Verkehr unterstützt, z. B. der bereits im Vorhergehenden
erwähnte Video-Server,
angepasst sein, um das IPv6-Paket ohne den Leitanfangsblock und
die geeignete Bestimmungsoption zu erzeugen. Das Abfangmodul kann
dann das IPv6-Paket, das durch eine der obigen Techniken gebildet
wurde, abfangen und den Leitanfangsblock und die geeignete Bestimmungsoption
hinzufügen,
um Messdaten zu sammeln und dem Umlaufweg zu folgen, der im Vorhergehenden
unter Bezugnahme auf die vorangegangenen Ausführungsbeispiele erwähnt wurde.
-
Das
Abfangmodul ist entweder vorkonfiguriert oder dynamisch konfigurierbar,
z. B. von dem Benutzerraum. In dieser Hinsicht weist die Konfiguration
ein Setzen von ein oder mehr Filtern auf, um zu ermöglichen,
dass das Abfangmodul IPv6-Pakete identifiziert, die zu vorbestimmten
Kriterien konform sind, z. B. Paketlänge, Quellen- und Bestimmungs-IPv6-Adressen und/oder
Nutzlastprotokolltyp. Das Filter kann auch durch ein Abtastschema
gesteuert sein.
-
Obwohl
die vorhergehenden Ausführungsbeispiele
im Zusammenhang mit IPv6 beschrieben worden sind, ist es für den Fachmann
ersichtlich, dass die im Vorhergehenden beschriebenen Techniken
im Zusammenhang mit anderen Kommunikationsprotokollen angewandt
werden können,
die erweiterbare Schemata und ein quellenbasiertes Leiten unterstützen.
-
Alternative
Ausführungsbeispiele
der Erfindung können
als ein Computerprogrammprodukt zur Verwendung bei einem Computersystem
implementiert sein, wobei es sich bei dem Computerprogrammprodukt
z. B. um eine Reihe von Computeranweisungen handelt, die auf einem
greifbaren Datenaufzeichnungsmedium, wie z. B. einer Diskette, einer CD-ROM,
einem ROM oder einer Festplatte, gespeichert sind oder in einem
Computerdatensignal ausgeführt
sind, wobei das Signal über
ein greifbares Medium oder ein drahtloses Medium, z. B. Mikrowelle oder
Infrarot, übertragen
wird. Die Reihe von Computeranweisungen kann die gesamte im Vorhergehenden
beschriebene Funktionalität
oder einen Teil derselben darstellen und kann auch in einer beliebigen Speichervorrichtung,
flüchtig
oder nichtflüchtig,
wie z. B. Halbleiter-, Magnet-, optische oder andere Speichervorrichtung,
gespeichert sein.