-
Technisches Gebiet
-
Diese
Erfindung bezieht sich auf Verfahren und Systeme zum Messen von
Netzwerkbetriebsparametern, z. B. von Einweg-, Ende-zu-Ende-Verzögerungen,
wie dieselben durch einen Netzwerkbetriebsverkehr (wie z. B. Datenpakete
in einem Netzwerk, das ein Übertragungssteuerprotokoll
(TCP; TOP = Transmission Control Protocol) über das Internet-Protokoll
Version 6 (TCP/IPv6) verwendet) erfahren werden.
-
Stand der Technik
-
Da
das Internet wächst
und bei kommerziellen und persönlichen
Aktivitäten
immer beherrschender wird, erhöht
sich die Notwendigkeit, den Betrieb desselben zu überwachen
und zu optimieren gleichermaßen.
Ein Beispiel ist die Messung einer Einweg-, Ende-zu-Ende-Verzögerung.
Große
Werte dieser Verzögerung
können
die Leistung einiger Anwendungen beeinflussen; eine übermäßige Verzögerungsvariation
(Jitter) kann Echtzeitanwendungen unterbrechen; Transportschichtprotokolle
sind weniger fähig,
eine hohe Bandbreite zu halten, wenn eine Ende-zu-Ende-Verzögerung zu
groß ist;
die minimale Ende-zu-Ende-Verzögerung
liefert eine Schätzung der
Ausbreitungs- und Übertragungsverzögerung oder
der wahrscheinlichen Verzögerung
unter leicht belasteten Pfadkonditionen; und Werte über dem
Minimum liefern eine gute Anzeige des Überlastungspegels, der in dem
Pfad vorhanden ist, dem die Pakete folgen. Eine Umlaufverzögerung ist
leichter festzustellen, aber dieselbe liefert nicht zwangsläufig ein gutes
Mittel zum Schätzen
der Einweg-Verzögerung, da
Netzaufwärts-
und Netzabwärts-Datenpfade
erheblich unterschiedlich sein können
und sehr unterschiedliche Leistungscharakteristika aufweisen können, sogar
wenn dieselben symmetrisch sind.
-
Die
Internettechnologie, deren Verwendung am Beginn des 21. Jahrhunderts
am weitesten verbreitet ist, ist Version 4 des Internet-Protokolls
(Ipv4), und die meisten Mess- und Überwachungstechniken, die bei
dieser Internettechnologie verwendet werden, fallen in eine von
zwei Hauptkategorien: passive und aktive Techniken.
-
Passive
Messtechnologien beobachten einen echten Verkehr (Datenpakete) auf
einem Link bzw. einer Verknüpfung
ohne eine Unterbrechung des Dienstes, der durch diese Pakete getragen
wird. Üblicherweise
umfassen diese Technologien die Verwendung von Zustandmaschinen,
die einen gewissen Anfangspegel eines Filterns durchführen, um den
Verkehr von Interesse auszuwählen,
und dann unter Verwendung von Musterabgleichungstechniken nach besonderen
Ereignissen suchen. Auf eine Erfassung dieser Ereignisse hin können verschiedenartige
Zähler
zweckmäßig aktualisiert
werden. Beispiele umfassen Leistungsmessung-Management-Informationsbasen
(MIBs; MIB = management information bases), die durch Netzwerkelementanbieter
(NEPs; NEP = network element providers) und Fernüberwachungssonden (RMON-Sonden;
RMON = remote monitoring) implementiert sind. Andere passive Überwachungssondenlösungen führen diesen einen
Schritt weiter durch ein Extrahieren von Nutzdaten aus Paketen,
die mit den/dem spezifizierten Muster(n) übereinstimmen. Eine vollständige Paketerfassung
ist ebenfalls möglich.
Die gesammelten Daten werden Benutzern entweder auf Aufforderung (Pull-Modell)
oder auf das Auftreten von vordefinierten Auslöseereignissen hin (Push-Modell) zur Verfügung gestellt.
-
Wie
bei den aktiven Messungen, die unten beschrieben sind, besteht eine
Problemstellung darin, dass Benutzer immense Mengen an Messdaten erzeugen
können,
die über
die IP-Verknüpfungen übersendet
werden müssen,
auf die die Messungen bezogen sind, und dies die Leistung des zu
testenden Dienstes aufgrund von konkurrierenden Ressourcenanforderungen
verschlechtern kann. Es gibt auch erhebliche Unter schiede darin,
was aus den Messungen, die durch unterschiedliche passive Überwachungsansätze erhalten
werden, geschlossen werden kann. RMON- und MIB-basierte Lösungen tendieren
dazu, primär
Zähler
zu umfassen, die eine Globalansicht aller Verkehrsaktivität in einem Netzwerk
liefern. Es ist schwierig, die erhaltenen Informationen auf einzelne
Dienste zu beziehen oder Erkenntnisse zu folgern, die benutzt werden
können, um
eine Befolgung vertraglicher Vereinbarungen zu überwachen. Industrie oder offizielle
Standards bestimmen oft die Implementierung der verschiedenartigen
Zähler,
und somit kann ein neuer Typ von Messung eine beträchtliche
Zeit in Anspruch nehmen, um ratifiziert und übernommen zu werden. Techniken, die
auf Ereignissen beruhen, die von einem besonderen Verkehrsstrom
erzeugt werden, wären
besser dazu geeignet, sich Angelegenheiten zu widmen, die auf die
Leistung der Dienstqualität
(QoS-Leistung; QoS
= quality of service) bezogen sind.
-
Passive Überwachungstechniken
sind insbesondere bei einem Sammeln von 1-Punkt-Messungen eines
echten Benutzerverkehrs an einem Beobachtungspunkt in dem Netzwerk
nützlich.
Jedoch sind passive Techniken zum Durchführen von 2-Punkt-Messungen eines echten
Benutzerverkehrs, wie z. B. einer Einweg-Verzögerung, wegen der Komplexität, die bei
einem Korrelieren der Pakete enthalten ist, die an zwei entfernten
Beobachtungspunkten erfasst werden, weniger geeignet. Vorhandene
Lösungen
umfassen üblicherweise
die Beobachtung von identifizierbaren Datenmustern in Paketen an zweckmäßig positionierten Überwachungspunkten. Ein
Zeitstempel und ein geeigneter Auszug des Datenmusters werden erzeugt
und gespeichert. Die Einweg-, Ende-zu-Ende-Verzögerung entlang eines speziellen
Pfades kann später
als die Zeit zwischen Beobachtungen von identischen Datenmustern
an Überwachungspunkten
von beiden Enden des Pfades berechnet werden. Jedoch weist dieser
Ansatz eine Anzahl von Nachteilen auf. Im Gegensatz zu dem Fall
einer Umlaufverzögerungsmessung
ist es notwendig, zur Korrelation zumindest Messdaten von einem Überwachungspunkt
zu dem anderen zu transferieren oder, sogar weniger erwünscht, zur
Korrelation Messdaten von beiden Beobachtungspunkten zu einem dritten
Ort zu transferieren. Diese zusätzlichen
Messdaten können
ein Übersenden
entlang der gleichen Netzwerkverknüpfungen erfordern wie diejenigen,
die überwacht
werden, wodurch die erhaltenen Ergebnisse möglicherweise beeinflusst werden.
Aufgrund von Planungsverzögerungen
an den Überwachungspunkten,
nachfolgenden Ausbreitungs- und Übertragungsverzögerungen,
die einem Übertragen
von Messdaten zu dem Korrelationspunkt zugeordnet sind, und der
Zeit, die für
die Korrelation selbst aufgewendet wird, kann auch eine große Verzögerung zwischen
dem Vornehmen der Messungen und dem Berechnen der Ende-zu-Ende-Verzögerungswerte
vorhanden sein. Der Ort und die Funktionalität des Korrelationsprozesses
sind zusätzliche
Faktoren, die diesen Aspekt der Messleistung beeinflussen können.
-
Abgesehen
von synchronisierten Takten zum Durchführen von Verzögerungsmessungen
sind Techniken erforderlich, um sicherzustellen, dass beide Beobachtungspunkte
das gleiche Paket für
das Sammeln von Messdaten auslösen.
Eine Fehlerhandhabung für
verlorene oder fehlangepasste Abtastwerte ist ebenfalls notwendig.
Ferner sind Passivmesssonden gegebenenfalls nicht fähig, Schritt
zu halten, wenn Verkehrsvolumen und Datenraten steigen.
-
Aktive
Techniken basieren auf der Injektion eines synthetischen Verkehrs
in das Netzwerk, der spezifisch für Messzwecke erzeugt wird.
Dieser synthetische Verkehr weist bekannte Charakteristika auf, die
entworfen sind, um spezielle Eigenschaften eines Dienstes zu testen.
Dieser Typ von Messtechnologie wird oft verwendet, um 2-Punkt-Messungen
durchzuführen,
insbesondere in Relation zu Antwortzeit, Paketverlust, Bandbreite
und Verfügbarkeit
des Service. Aktive Techniken sind gleichermaßen für ein Testen im Dienst oder
ein Testen außerhalb
des Dienstes geeignet. Eine Anzahl von globalen Projekten verwendet
derartige Techniken, und insbesondere einige Messungen, die auf
der Verwendung eines synthetischen Verkehrs basieren, werden unter
der IP-Leistungsmetrik-Arbeitsgruppe (IP-Performance Metrics Working
Group) der Internet-Arbeitsgruppe (IETF; IETF = Internet Engineering
Task Force) standardisiert. Das
US
5,535,193 offenbart ein Beispiel für eine Passivmessungsvorrichtung.
-
Für eine Einweg-Verzögerung müssen injizierte
Pakete vor einem Abgang entweder zeitgestempelt sein, oder es muss
ansonsten eine Aufzeichnung der Zeit und Paketidentität, erhalten
und gespeichert werden. Die injizierten Pakete (entweder alle derselben
oder ein Muster) werden an dem fernen Ende identifiziert und aus
dem Strom entfernt. Ein anderer Zeitstempel wird erhalten und mit
dem Versand-Zeitstempel
verwendet, um die erforderliche Verzögerungsmessung abzuleiten.
-
Der
Hauptnachteil von Aktivmessungstechniken besteht darin, dass dieselben
das Paketweiterleitungs- und routingverhalten messen, das durch den
synthetischen Verkehr, aber nicht zwangsläufig durch den echten Benutzerverkehr
erfahren wird. Die resultierenden Messungen werden dann verwendet, um
Annahmen über
die Erfahrung des echten Benutzerverkehrs zu machen und dieselbe
vorherzusagen. Um gute Ergebnisse sicherzustellen, ist es somit
sehr wichtig, sicherzustellen, dass der synthetische Verkehr zweckmäßig gebildet
ist und Übertragungscharakteristika
aufweist, die den echten Benutzerdaten ähnlich sind, so dass derselbe
die gleiche Behandlung erhält
und/oder dem gleichen Lieferpfad folgt. Nichtsdestotrotz wird auf
die Genauigkeit der aktiven Messungen vertraut, um Mehrwerturteile über den
zu testenden Dienst durchzuführen.
Das IETF-Dokument mit dem Titel „One-way Delay Measurement using
IPv6 Source Routing" (draft-jeong-1-way-delay-ipv6-source-routing-00.txt,
Februar 2002) offenbart ein Beispiel für eine Aktivmessungstechnik.
-
Eine
erweitere Version einer Internettechnologie, Version 6 (IPv6), ist
definiert worden und wird nun in Betriebssystemen implementiert.
Im Vergleich zu IPv4 liefert IPv6 eine Vielfalt von Steigerungen:
- – 128-Bit-IP-Adressen;
- – ein
skalierbares und hierarchisches Adressieren, das zur „Ansammlung" entworfen ist;
- – besser
gebildete Pakete, mit einer Bereitstellung für eine Aufnahme von „Erweiterungs"-Kopfblöcken, die
ein Verarbeiten vereinfachen, Redundanzen beseitigen und eine verbesserte
Funktionalität
liefern;
- – Dienstqualität-/Dienstklasse-Unterstützung;
- – inhärente Sicherheit
in dem Protokoll;
- – „Plug & Play"-Autokonfiguration
von Hosts;
- – Mobilitätsunterstützung.
-
Diese
Verbesserungen sind entworfen, um die Grundfunktionalität des Internets
bei einem Kommunizierten von Daten in einer effizienten, zuverlässigen und
widerstandsfähigen
Weise zu verbessern und zu erweitern. Jedoch haben die Erfinder
derselben zusätzliche
Gelegenheiten zur Verwendung einer oder mehrerer dieser Steigerungen
identifiziert, um ein verbessertes Überwachen und eine verbesserte
Messung des Betriebs einer Internetausrüstung unter Verwendung von
IPv6 zu erleichtern.
-
Das
Schriftstück „Evaluation
of Building Blocks for Passive One-way-delay Measurements" von Zseby u. a.,
XP 863.848 offenbart Bausteine zur passiven Einweg-Verzögerungsmessung
unter Verwendung eines Im-Paket-Transportverfahrens, auch als halbaktives
Transportverfahren bekannt, da umgehende Pakete verwendet werden,
um z. B. messbezogene Daten zwischen einem Messpunkt und einem Sammelpunkt,
wo diese Daten dann ausgewertet werden, zu transportieren.
-
Offenbarung der Erfindung
-
Gemäß einem
Aspekt dieser Erfindung ist ein Verfahren zum Messen eines Netzwerkbetriebsparameters,
wie derselbe durch einen nicht-synthetischen Netzwerkverkehr erfahren
wird, vorgesehen, das folgende Schritte aufweist:
Auswählen eines
Pakets, das einen ersten Überwachungspunkt
in einem Netzwerk durchläuft,
gemäß einer
Fähigkeit
in einer Datenstrukturdefinition des Pakets für ein Eingliedernlassen zusätzlicher
Informationen in das Paket;
Einglieder vorbestimmter Informationen
zum Messen von zumindest einem Netzwerkbetriebsparameter in dem
ausgewählten
Paket gemäß der Datenstrukturdefinition
desselben;
Weiterleiten des Pakets gemäß Adressierungsinformationen
in dem Paket hin zu dem Bestimmungsort desselben;
Auspacken
des Pakets, das einen zweiten Überwachungspunkt
in dem Netzwerk durchläuft,
gemäß einem
Vorhandensein der vorbestimmten Informationen, und Beachten der
vorbestimmten Informationen; und
Implementieren einer Messung
des Netzwerkbetriebsparameters gemäß den beobachteten Informationen.
-
Die
Erfindung erkennt und entwickelt eine Möglichkeit, die durch IPv6-Paket-Erweiterungskopfblöcke geliefert
wird, um „Inline-Messungen" durchzuführen. Die
Bezeichnung „inline", wie dieselbe hierin
verwendet wird, zeigt an, dass Messungsauslöser, die eine Messungsaktivität aufrufen,
und/oder die Messdaten selbst in echte Benutzerpakete eingegliedert
sind, so dass die Messvorgänge
in dem Verlauf des normalen Verarbeitens der Pakete oder durch spezialisierte
Software- oder spezialisierte Hardware-Module, die sich an zweckmäßigen Punkten
in dem Netzwerk befinden, durchgeführt werden können. Dies
schafft einen hohen Pegel einer Wahrscheinlichkeit, dass die Pakete,
die verwendet werden, um Messungen durchzuführen, die gleiche Behandlung
und Verzögerung
erfahren wie die Mehrzahl von Benutzerpaketen. Diese erforderliche
Funktionalität
kann ohne Weiters unter Verwendung von IPv6-Erweiterungskopfblöcken implementiert
werden, was ermöglicht,
dass genauere, flexiblere und weniger intrusive Messungen durchgeführt werden. Somit
können
Inline-Techniken bei der Entwicklung von innovativen, genaueren
und flexibleren Mess-, Management-, Buchhaltungs- und Abrechnungs-Betriebsunterstützungssystemen
verwertet werden.
-
Gemäß einem
anderen Aspekt dieser Erfindung ist ein System zum Messen eines
Netzwerkbetriebsparameters, wie derselbe durch nicht synthetischen
Netzwerkverkehr erfahren wird, vorgesehen, das folgende Merkmale
aufweist:
einen Wähler
zum Auswählen
eines Pakets, das einen ersten Überwachungspunkt
in einem Netzwerk durchläuft,
gemäß einer
Fähigkeit
in einer Datenstrukturdefinition des Pakets für ein Eingliederlassen von
zusätzlichen
Informationen in das Paket;
einen Paketmodifizierer zum Eingliedern
vorbestimmten Informationen zum Messen von zumindest einem Netzwerkbetriebsparameter
in das ausgewählte
Paket gemäß der Datenstrukturdefinition
desselben;
eine Paketweiterleitungseinrichtung zum Weiterleiten des
Pakets gemäß Adressierungsinformationen
in dem Paket hin zu dem Bestimmungsort desselben;
einen Wähler zum
Auswählen
des Pakets, das einen zweiten Überwachungspunkt
in dem Netzwerk durchläuft,
gemäß einem
Vorhandensein der vorbestimmten Informationen, und zum Beobachten
der vorbestimmten Informationen; und
eine Parametermesseinrichtung
zum Implementieren einer Messung des Netzwerkbetriebsparameters
gemäß den beobachteten
Informationen.
-
Kurze Beschreibung der Zeichnungen
-
Ein
erfindungsgemäßes Verfahren
und ein erfindungsgemäßes System
zum Durchführen
von Inline-Messungen von Netzwerkbetriebsparametern wie z. B. einer
Einweg-Ende-zu-Ende-Verzögerung ist
nun beispielhaft unter Bezugnahme auf die begleitenden Zeichnungen
beschrieben, in denen:
-
1 ein
fiktives Fragment des Internets zeigt;
-
2 das
allgemeine Format eines IPv6-Paketkopfblockes zeigt;
-
3 das
allgemeine Format eines IPv6-Bestimmungsortoptionenerweiterungskopfblockes zeigt;
-
4 das
allgemeine Format eines Typ-Länge-Wert-Tupels
(TLV-Tupel; TLV = type-length-value) zeigt, der einen Teil eines
Bestimmungsortoptionen-Erweiterungskopfblockes
bildet;
-
5 das
allgemeine Format eines IPv6-Routing-Erweiterungskopfblockes zeigt;
-
6 darstellt,
wie IPv6-Erweiterungskopfblöcke
in IPv6-Paketen eingebettet sein können;
-
7 das
Format eines Beispiel eines Bestimmungsortoptionen-Erweiterungskopfblockes zeigt,
der konfiguriert ist, um eine Messung gemäß dieser Erfindung zu erleichtern;
-
8 ein
Beispiel für
ein IPv6-Paket zeigt;
-
9 das
Beispiel-IPv6-Paket von 8 zeigt, das gemäß dieser
Erfindung durch eine Einschließung
eines Erweitungskopfblockes modifiziert ist, um eine Messung einer
Einweg-Verzögerung
zu erleichtern;
-
10 ein
Blockdiagramm ist, das mögliche Punkte
für eine
Softwareimplementierung der Erfindung in einem Netzwerkelement anzeigt;
und
-
11 verfahrensorientierte
Schritte skizziert, die bei einer Implementierung der Erfindung eingebunden
sind.
-
Bester Modus zum Durchführen der
Erfindung & Industrielle
Anwendungsmöglichkeit
-
Zur
Zweckmäßigkeit
wird die Erfindung unter Bezugnahme auf ein Netzwerk beschrieben,
das IPv6 implementiert und in dem Daten zur Übertragung in Pakete partitioniert
sind. Es wird jedoch darauf hingewiesen, dass die Erfindung gleichermaßen in dem
Kontext von anderen Netzwerktechnologien anwendbar ist, die eine
Funktionalität
analog zu IPv6-Erweiterungskopfblöcken liefern.
Dementsprechend ist die Bezeichnung Paket, wie dieselbe hierin verwendet
wird, als Datenpartitionen umfassend zu verstehen, die bei derartigen
anderen Netzwerktechnologien durch eine unterschiedlichen Terminologie bezeichnet
werden, wie z. B. Zellen oder Rahmen.
-
Unter
Bezugnahme auf 1 ist ein fiktives Fragment
des Internets gezeigt, das Router 10 bis 22 aufweist,
die durch Links bzw. Verknüpfungen
verbunden sind. Pakete 24, die z. B. an dem Router 10 ankommen,
werden über
die Router 12, 14 und 16 gemäß Routingtabellen,
die durch die Router aus Informationen hergestellt werden, die dieselben
untereinander austauschen, weiter zu dem Bestimmungsort derselben
hin geleitet, der in Kopfblöcken
identifiziert ist, die einen Teil der Pakete bilden. Das Format eines
Paketkopfblockes, wie für
IPv6 in der Kommenetaranforderung 2460 (RFC 2460; RFC = Request for
Comments) der Internet Society spezifiziert, ist in 2 gezeigt.
-
Unter
Bezugnahme auf
2 ist der Paketkopfblock herkömmlicherweise
als eine Sequenz von Reihen gezeigt, wobei jede Reihe zweiunddreißig aufeinanderfolgende
Binärstellenwerte
repräsentiert (vier
Oktetts). Gruppierungen von benachbarten Bits, um funktionsfähige Entitäten zu bilden,
sind durch Rechtecke angezeigt. Der IPv6-Kopfblock enthält acht
derartige Gruppen:
– Version | 4-Bit-Internetprotokollversion
Nummer (= 6). |
– Verkehrsklasse | 8-Bit-Verkehrsklassenfeld |
– Flussetikett | 20-Bit-Flussetikett |
– Nutzlastlänge | Vorzeichenlose 16-Bit-Ganzzahl.
Länge der
IPv6-Nutzlast (d. h. Rest des Pakets einschließlich jeglicher Erweitungskopfblöcke, die dem
IPv6-Kopfblock folgen) in Oktetts. |
– Nächster Kopfblock | 8-Bit-Wähler. Identifiziert
den Typ von Kopfblock, der unmittelbar dem IPv6-Kopfblock folgt,
unter Verwendung von Protokollnummern, die (momentan) durch die
Internet Assigned Numbers Authority (IANA) spezifiziert sind unter
http://www.iana.org/assignmets/protocolnumbers |
– Hop-Grenze | Vorzeichenlose 8-Bit-Ganzzahl.
Ist um 1 dekrementiert durch jeden Knoten, der das Paket weiterleitet.
Das Paket wird ausgesondert, wenn die Hop-Grenze auf null dekrementiert
ist. |
– Quelladresse | 128-Bit-Adresse
des Urhebers des Pakets, formatiert wie in RFC 2373 spezifiziert. |
– Bestimmungsortadresse | 128-Bit-Adresse
des beabsichtigten Empfängers des
Pakets (wahrscheinlich nicht der letzte Empfänger, wenn ein Routing-Kopfblock
vorhanden ist). |
-
Bei
IPv6 können
optionale Internetschichtinformationen in getrennten Kopfblöcken kodiert
sein, die zwischen dem IPv6-Kopfblock,
der in
2 gezeigt ist, und dem Obere-Schicht-(z. B. TCP-)Kopfblock in einem
Paket platziert sein können.
Es gibt verschiedenartige derartige Erweiterungskopfblöcke, wobei
jeder durch einen kennzeichnenden Nächster-Kopfblock-Wert identifiziert
ist.
3 zeigt das Format eines derartigen Erweitungskopfblockes,
des Bestimmungsort-Optionen-Kopfblockes. Dieser Kopfblock wird verwendet,
um optionale Informationen zu tragen, die lediglich durch den/die
Bestimmungsortknoten eines Pakets geprüft werden müssen. Der Bestimmungsort-Optionen-Kopfblock
istdurch einen Nächster-Kopfblock-Wert
von 60 in dem unmittelbar vorhergehenden Kopfblock identifiziert und
enthält
folgende Felder:
– Nächster Kopfblock | 8-Bit-Wähler. Identifiziert
den Typ von Kopfblock, der unmittelbar dem Bestimmungsortoptionen-Kopfblock
folgt, in der gleichen Weise wie das Nächster-Kopfblock-Feld des obig
beschriebenen IPv6-Kopfblockes. |
– Kopfblockerweiterungslänge | Vorzeichenlose 8-Bit-Ganzzahl.
Länge des
Bestimmungsortoptionen-Kopfblockes
in 8-Oktett-Einheiten (64-Bit-Einheiten), die ersten acht Oktetts
nicht eingeschlossen. |
– Optionen | Variable-Länge-Feld
von einer derartigen Länge, dass
der vollständige
Bestimmungsortoptionen-Kopfblock ein ganzzahliges Vielfaches von acht
Oktetts lang ist. Enthält
eine oder mehrere Typ-Länge-Wert-codierte
Optionen (TLV-codierte Optionen; TLV = type-length-value), wie unten
beschrieben. |
-
Die
TLV-codierten Optionen weisen das folgende Format auf, wie in
4 dargestellt:
– Optionstyp | 8-Bit-Identifizierer
des Typs von Option (siehe unten). |
– Optionsdatenlänge | Vorzeichenlose 8-Bit-Ganzzahl.
Länge des
Optionsdatenfelds dieser Option in Oktetts. |
– Optionsdaten | Variable-Länge-Feld. Optionstypspezifische Daten. |
-
Die
zwei Bits höchster
Ordnung des Optionstypidentifizierers spezifizieren eine Handlung,
die unternommen werden muss, wenn der verarbeitende IPv6-Knoten
den Optionstyp nicht erkennt:
- 00 – diese Option überspringen
und mit der Verarbeiten des Kopfblockes fortfahren;
- 01 – das
Paket aussondern;
- 10 – das
Paket aussondern und, ungeachtet dessen, ob die Bestimmungsortadresse
des Pakets eine Multicast-Adresse (Gruppenadresse) war oder nicht, eine
Internet-Steuer-Nachrichtenprotokoll-Parameterproblem-Nachricht (ICMP-Parameterproblem-Nachricht;
ICMP = Internet Control Message Protocol), Code 2, an die Quelladresse
des Pakets senden, wobei der unerkannte Optionstyp gezeigt wird;
- 11 – das
Paket aussondern und, nur wenn die Bestimmungsortadresse des Pakets
keine Multicast-Adresse
(Gruppenadresse) war, eine ICMP-Parameterproblem-Nachricht,
Code 2, an die Quelladresse des Pakets senden, wobei der unerkannte Optionstyp
gezeigt wird.
-
Das
Dritthöchste-Ordnung-Bit
des Optionstypen spezifiziert, ob die Optionsdaten dieser Option sich
auf der Strecke zu dem Endbestimmungsort des Pakets ändern können oder
nicht, so dass eine Berechnung oder eine Verifizierung von Autentifizierungswerten
durchgeführt
werden kann, ohne durch derartige Änderungen beeinflusst zu werden.
Die Wertigkeit dieses Bits ist wie folgt:
- 0 – Optionsdaten ändern sich
nicht auf der Strecke;
- 1 – Optionsdaten
können
sich auf der Strecke ändern.
-
Das
Format einer anderen Art eines Erweitungskopfblockes des Routing-Kopfblockes
ist in
5 gezeigt. Dieser Kopfblock wird durch ein IPv6-Quelle
verwendet, um einen oder mehrere Zwischenknoten aufzulisten, die
auf dem Weg zu einem Bestimmungsort eines Pakets „besucht" werden sollen. Der
Routing-Kopfblock wird durch einen Nächster-Kopfblock-Wert von 43 in dem
unmittelbar vorhergehenden Kopfblock identifiziert und weist das
folgende Format auf:
– Nächster Kopfblock | 8-Bit-Wähler. Identifiziert
den Typ von Kopfblock, der unmittelbar dem Routing-Kopfblock folgt,
in der gleichen Weise wie das Nächster-Kopfblock-Feld
des oben beschriebenen IPv6-Kopfblockes. |
– Kopfblockerweiterungslänge | Vorzeichenlose 8-Bit-Ganzzahl.
Länge des
Routing-Kopfblockes in 8-Oktett-Einheiten, die ersten acht Oktetts
nicht eingeschlossen. |
– Routing-Typ | 8-Bit-Identifizierer
einer speziellen Routing-Kopfblock-Variante. |
– Übriggelassene
Segmente | Vorzeichenlose 8-Bit-Ganzzahl.
Anzahl von verbleibenden Streckensegmenten, d. h. Anzahl von explizit
aufgelisteten Zwischenkonten, die vor einem Erreichen des Endbestimmungsortes
noch besucht werden sollen. |
– Typenspezifische
Daten | Variable-Länge-Feld
von einem Format, das durch den Routing-Typ bestimmt ist, und einer derartigen
Länge,
dass der vollständige
Routing-Kopfblock ein ganzzahliges Vielfaches von acht Oktetts lang
ist. |
-
Alle
Erweitungskopfblöcke
müssen
so formatiert sein, dass die Gesamtlänge derselben ein ganzzahliges
Vielfaches von acht Oktetts ist, und Felder von einer Breite von
N Oktetts (N = 1, 2, 4 oder 8) in einem Kopfblock sollten an einem
ganzzahligen Vielfachen von n Oktetts von dem Start des Kopfblocks
platziert sein. Um dies zu unterstützen, sind zwei TLV-codierte
Optionen definiert: die Pad1-Option, die ein einzelnes nullwertiges
Oktett aufweist (ohne eine Länge
oder ein Wertfeld), und die PadN-Option (zum Einfügen von
insgesamt N Oktetts, wenn N > 1),
die N-2 nullwertige Oktetts plus ein Typenfeld aufweist, das den
Wert 1 und ein Längenfeld
enthält, das
den Wert N-2 enthält.
-
Mit
Ausnahme eines speziellen Hop-um-Hop-Optionenkopfblockes (hier nicht erörtert, aber
in RFC 2460 beschrieben) erfordert das RFC, dass jeder der unterschiedlichen
IPv6-Erweiterungskopfblöcke
lediglich an dem Knoten (oder Gruppe von Knoten im Falle von Multicast-Diensten) überprüft wird,
der die Bestimmungsortadresse aufweist, die in dem Haupt-IPv6-Kopfblock
enthalten ist. Anders ausgedrückt
werden Paketerweiterungskopfblöcke
nicht durch Zwischenkonten überprüft oder verarbeitet,
die einfach gemäß IPv6 ein
Routing entlang der Paketweiterleitungsstrecke implementieren.
-
Jeder
Erweiterungskopfblock zeigt den Start des nächsten mittels des Nächster-Kopfblock-Feldes an,
was eine Art einer Einweg-Kette bildet. Jeder Kopfblock in der Kette
wird streng der Reihe nach verarbeitet, und die Inhalte und die
Semantik eines jeden Erweitungskopfblockes bestimmen, ob der empfangende
Knoten zu dem nächsten
Kopfblock fortfährt
oder nicht. 6 stellt ein Beispiel für eine derartige
Kette von Kopfblöcken
dar, für
den Fall, in dem ein Bestimmungsortoptionen-Kopfblock zwischen den
IPv6-Kopfblock und
die Nutzlast des Pakets eingefügt
worden ist. In diesem Fall enthält
das Nächster-Kopfblock-Feld
des IPv6-Kopfblockes den Wert 60, und das entsprechende Feld des
Bestimmungsortoptionen-Kopfblockes enthält den Wert 6, wobei angezeigt
wird, dass auf diesen Erweitungskopfblock ein TCP-Obere-Protokollschicht-Kopfblock und
Daten folgen.
-
Die
vorliegende Erfindung nutzt Erweitungskopfblöcke, z. B. die Bestimmungsortoptionen-
und Routing-Kopfblöcke,
um eine „Inline"-Messung von Betriebsparametern
wie z. B. Einweg-Ende-zu-Ende-Verzögerung,
Zweiweg-Verzögerung
(Umlaufverzögerung),
akkumulierte Verzögerung
(unter Verwendung von Zeitstempeln, die hinzugefügt werden, wenn ein Paket verschiedenartige
Segmente einer Verknüpfung
durchläuft)
und Zwei-Punkt-Verlust (Verlust von Paketen im Transit zwischen
zwei Punkten) zu erleichtern. Die Erfindung kann auch zum Überwachen
eines Routerbetriebs, wie z. B. eines Verfolgens eines Vorankommens
von Paketen durch das Netzwerk mittels Kennungen (Tags) in Erweiterungskopfblöcken, um
Pakete, die verfolgt werden sollen, zu identifizieren, verwendet
werden. Diese Messung und Überwachung
wird durch ein Hinzufügen
von Erweiterungskopfblöcken,
die so formatiert sind, wie es in dem Beispiel unten beschrieben
ist, zu Paketen, die das Netzwerk als Teil eines normalen Betriebs
durchlaufen, erreicht.
-
Der
Bestimmungsortoptionen-Kopfblock z. B. kann praktisch für diese
Zwecke verwendet werden, ohne den normalen Betrieb von Routern,
die die Pakete, zu denen dieser Kopfblock hinzugefügt worden
ist, verarbeiten, zu stören,
durch ein Setzen der zwei Höchste-Ordnung-Bits
des Optionstypenidentifizierers in dem Erweiterungskopfblock auf
00. Wenn dies erwünscht
ist, kann der Bestimmungsortoptionenkopfblock vor einer Lieferung
des Pakets zu dem beabsichtigten Bestimmungsort desselben des Paketes
entfernt werden (z. B. Client/Server). Aber sogar, wenn dies nicht
erfolgt (entweder absichtlich oder weil der Kopfblock fehlerhafterweise
nicht entfernt ist), überspringt
der Bestimmungsortknoten diese Option einfach auf einen Empfang
hin, gemäß dem 00-Optionstypidentifizierer.
-
Im
Prinzip könnte
ein spezifischer Erweitungskopfblock für Messzwecke definiert sein,
da RFC 2460 eine mögliche
Definition von zusätzlichen Erweitungskopfblocktypen
in der Zukunft zulässt.
Die Erfindung kann bei derartigen spezifischen Erweitungskopfblöcken verwendet
werden, wenn dieselben definiert sind. Jedoch würde dieser Ansatz zu einer
Bereitstellung eines spezifischen Nächster-Kopfblock-Wertes führen, der
eindeutig Messerweitungskopfblöcken
zugeordnet ist und als solcher überall
in dem Netzwerk identifizierbar ist. Dementsprechend wären Netzwerkausrüstungshersteller
und -bediener in der Lage, zu bestimmen, dass ein beliebiges Paket,
das einen Kopfblock aufweist, der diesen Nächster-Kopfblock-Wert enthält, verwendet
wird, um Mess- und Managementdaten zu sammeln. Die Ausrüstung könnte ohne
weiteres entworfen sein, um derartige Pakete in einer begünstigten,
aber atypischen Weise zu behandeln, wobei möglicherweise der Zweck der
Messungen verhindert würde.
Durch eine Verwendung des Bestimmungsortoptionen-Erweiterungskopfblockes (oder des Routing-Kopfblockes)
ist dieses Risiko minimiert, da nichts vorhanden ist, um den Messzweck
des Kopfblockes zu unterscheiden. Ferner verarbeiten lediglich die
Knoten, auf die die Bestimmungsortoptionen- oder Routing-Kopfblöcke anwendbar
sind, die Kopfblöcke
in dem Verlauf des normalen Netzwerkbetriebs, wobei das Risiko einer
Störung
dieses Betriebs reduziert ist.
-
Jedoch
ist es für
Knoten, die in dem Messprozess eingebunden sind (z. B. die Router 10 und 16 bei
dem unten beschriebenen Beispiel), natürlich notwendig, die relevanten
Erweitungskopfblöcke
zu erfassen und zu verarbeiten, obwohl dieselben diese in einem
normalen Netzwerkbetrieb ignorieren würden. Dies kann, wie es unten
beschrieben ist, durch ein Vergrößern der
normalen Betriebsfirmware in diesen Knoten mit Modulen, die die
Paketverarbeitungsfunktionali tät
der Knoten wie es erforderlich ist erweitern, erreicht werden.
-
Für die Messung
einer Verzögerung
wird praktischerweise ein Bestimmungsortoptionen-Erweiterungskopfblock
verwendet, um für
die Messung erforderliche Informationen zu tragen.
7 zeigt das
Format eines derartigen Kopfblockes zur Verwendung bei einem Messen
einer Einweg-Verzögerung,
einschließlich
von zweckmäßigen Optionsdatenfeldern
wie folgt:
– Zeiger | 8-Bit-Vorzeichenlose-Ganzzahl.
Wird verwendet, um den Ort des nächsten
nicht-verwendeten Schlitzes bei den Optionsdaten anzuzeigen, d.
h. für
eine Speicherung eines Zeitstempels. |
– Überlaufen | Vorzeichenlose 8-Bit-Ganzzahl.
Wird verwendet, um anzuzeigen, wenn ein Versuch erfolgt, mehr Zeitstempel zu
speichern als Schlitze vorhanden sind, um dieselben aufzunehmen. |
– Flags | Oktett,
das acht binäre Flags
aufweist, z. B. für ein
Anzeigen der Art von Daten, die anderswo in den Optionsdatenfeldern
gespeichert sind. |
– Reserviert | Ein
nullwertiges Oktett, das zu Ausrichtungszwecken enthalten ist, d.
h. um sicherzustellen, dass der vollständige Erweitungskopfblock in
Größe ein ganzzahliges
Vielfaches von acht Oktetts ist. |
– Quellzeitstempel | Zwei
vorzeichenlose 32-Bit-Ganzzahlen.
Ein Zeitstempel, der eine Zeit eines Weiterleitens des Pakets von
der Schnittstelle des Knotens, wo der Erweitungskopfblock eingefügt wurde,
anzeigt. Die zwei Komponentenganzzahlen repräsentieren die Sekunden- bzw.
Mikrosekunden-Abschnitte der Zeit, die seit 0000 Stunden am 1. Januar
1970 Standardweltzeit (UTC; UTC = Universal Coordinated Time) vergangen ist. |
– Bestimmungsortzeitstempel | Zwei
vorzeichenlose 32-Bit-Ganzzahlen.
Ein Zeitstempel, der eine Zeit eines Empfangs des Pakets an der
Schnittstelle des Knotens anzeigt, wo der Erweitungskopfblock erfasst
wird, in dem gleichen Format wie der Quellzeitstempel. |
-
Der
Optionstypidentifizierer in dem Kopfblock wird auf einen Wert gesetzt,
der zugewiesen ist, um eine „Einweg-Ende-zu-Ende-Verzögerungsmessung" zu identifizieren.
-
Das
in 1 gezeigte Beispiel der Erfindung stellt den Fall
einer Verzögerungsmessung
in einem Abschnitt eines Netzwerks dar, wie z. B. zwischen Eingangs-
und Ausgangspunkten eines Paketflusses über die Grenzen eines Abschnitts
unter der Steuerung eines einzigen Bedieners. Jedoch ist die Erfindung
gleichermaßen
auf „Ende-zu-Ende"-Messungen anwendbar, wie z. B. von einem
Server (z. B. der eine Website bedient) zu einem Client (z. B. einem drahtlos
verbundenen Personaldigitalassistenten (PDA; PDA = personal digital
assistant), der eine Webbrowser-Anwendung ausführt).
-
Sich
erneut auf 1 beziehend ist der Router 10 konfiguriert,
um ein oder mehrere Pakete gemäß einem
zweckmäßigen vorbestimmten
Kriterium auszuwählen.
Zum Beispiel könnten
Pakete zufällig unter
diesen ausgewählt
werden, die an einen spezifizierten Bestimmungsort adressiert sind,
oder aus einer speziellen Quelle ausströmen, ungeachtet des Bestimmungsortes.
Andere Möglichkeiten
zur Auswahl umfassen: alle Pakete, die durch ein spezielles Obere-Schicht-Protokoll wie TCP,
User Datagram Protocol (UDP), ICMP oder Internet Group Management
Protocol (IGMP) transportiert werden; oder alle Pakete eines speziellen
Anwendungstyps wie z. B. eines Sitzungsinitiierungsprotokolls (SIP;
SIP = Session Initiation Protocol), eines Echtzeit-Transportprotokolls
(RTP; RTP = Real Time Transport Protocol) oder eines Hypertext-Transfer-Protokoll
(HTTP). Somit kann eine Identifizierung von Paketen (z. B. an Netzwerkeingangspunkten)
in einem erwünschten Fluss
oder Strom von Pakten, die zu den gleichen Charakteristika konform
sind, für
die Einfügung
eines Erweitungskopfblockes (mit Optionsfeldern desselben) durch
beliebig komplexe Regeln gesteuert werden, die z. B. eine jegliche
Kombination umfassen aus: Quell- und Bestimmungsort-IP-Adressen
und -Präfixe;
Transportprotokolle; Quell- und Bestimmungsort-Port-Nummern, die
in Transportprotokollen wie TCP und UDP enthalten sind; Verkehrsklasse; und
Flussetikett. Wenn das Netzwerk sowohl IPv4- als auch IPv6-Pakete
trägt,
dann erfolgt die Auswahl aus den IPv6-Paketen.
-
Wenn
wiederholte Messungen vorgenommen werden müssen und zwischen Paketen,
die für Inline-Messungen
ausgewählt
sind, ein gleichmäßiges Intervall
verwendet werden müsste,
könnte
die gemessene Verzögerung
durch den Betrieb von anderen Anwendungen beeinflusst werden, die
den gleichen Pfad benutzen und zufällig auf der gleichen periodischen
Basis kommunizieren. Um diese Möglichkeit
zu mildern, wird das Intervall zwischen ausgewählten Paketen vorzugsweise
aus einer zufälligen Verteilung
gewählt,
wie z. B. einer Poisson- oder einer abgeschnittenen Pareto-Verteilung.
-
Ist
ein zweckmäßiges Paket
einmal ausgewählt
worden, wird ein Bestimmungsortoptionen-Erweiterungskopfblock hinzugefügt (oder
modifiziert, wenn das Paket bereits einen enthält) und eine TLV-Option, die
wie in 7 gezeigt formatiert ist, wird hinzugefügt, mit
dem Typenfeld, das eine „Einweg-Ende-zu-Ende-Verzögerung" anzeigt, und einem
Zeitstempelwert. Die Verzögerung,
die gemessen werden soll, ist die Gesamtzeit, in der das Paket die
Verknüpfungen)
zwischen einem Fortgehen von der Verknüpfungsschnittstelle des sendenden
Knotens und einem Ankommen an der Verknüpfungsschnittstelle des Bestimmungsortknotens
durchläuft (als „Drahtzeit" bekannt), also sollte
die bekannte oder geschätzte
endgültige
Verarbeitungszeit in dem Knoten zwischen einem Erhalten des Zeitstempelwertes
und einem Fortgehen des Pakets von der Schnittstelle zu dem Zeitstempel
hinzugefügt
werden, bevor derselbe in den Kopfblock des Pakets eingefügt wird.
Falls dies erwünscht
ist, kann eine andere TLV-codierte Option enthalten sein, um eine Adresse
zu liefern (z. B. für
einen Netzwerkmanagementknoten), an die das Verzögerungsmessergebnis nach einer
Berechnung an dem empfangenden Knoten weitergeleitet werden sollte.
-
8 zeigt
ein Beispiel eines IPv6-Pakets vor einer Einfügung eines Bestimmungsortoptionen-Erweitungskopfblockes
zur Verzögerungsmessung,
und 9 zeigt das gleiche Paket nach einer Hinzufügung des
Kopfblockes (durch Strichpunktlinien hervorgehoben), der die TLV-Optionen für die Zeitstempel
und die Weiterleitungsadresse enthält. In einem Vergleich der
zwei Figuren ist das IPv6-Nutzlastlänge-Feld
bei 9 um 48 erhöht
worden, wobei die Anzahl von Oktetts in dem Erweitungskopfblock angezeigt
wird. Das nächste
Kopfblockfeld in dem IPv6-Kopfblock ist zu 60 geändert worden (wobei angezeigt
wird, dass ein Bestimmungsort-Optionen-Erweiterungskopfblock folgt),
und die Hop-Grenze ist dekrementiert worden. Das nächste Kopfblockfeld des
Erweiterungskopfblockes enthält
den Wert 6 (für den
folgenden TCP-Kopfblock), vorhergehend in dem IPv6-Kopfblock, und
die Länge
des Erweiterungskopfblockes ist als fünf 8-Oktett-Einheiten über die
ersten acht Oktetts hinaus angezeigt. Die erste TLV-Option weist
einen Optionstypenwert von 33 (0010 0001) auf, der bei diesem Beispiel
verwendet wird, um eine „Einweg-Ende-zu-Ende"-Verzögerung anzuzeigen
und auch anzeigt, dass die Option durch jeden Knoten übersprungen
werden kann, der nicht ausgerüstet
ist, um dieselbe zu verarbeiten, und dass die Optionsdaten sich ändern können (d.
h. der Bestimmungsortzeitstempel). Die Optionslänge beträgt 20 Oktetts. Der Zeigerwert
beträgt
13 (0000 1 101), wobei angezeigt wird, dass das 13. Oktett (der
Start des Bestimmungsortzeitstempels) der nächste nicht-verwendete Schlitz
bei der Option ist, und die Überlauf-
und Flags-Oktetts sind auf null gesetzt. Der Quellzeitstempel weist
Werte von 3D10 FC00H Sekunden (entsprechend
einem Datum im Juni 2002) und 000B 86A0H Mikrosekunden
(entsprechend einem Zeitpunkt unmittelbar nach 1800) auf. Die nächste TLV-Option
weist eine Gesamtzahl von sechs Oktetts einer Auffüllung auf,
auf die die letzte Option folgt, wobei eine Weiterleitungsadresse
spezifiziert wird. Diese Option weist einen Typ von 34 (0010 0010)
auf, der bei diesem Beispiel verwendet wird, um eine „Weiterleitungsadresse
für eine
Verzögerungsmessung" anzuzeigen und auch
angibt, dass die Option durch jeden Knoten übersprungen werden kann, der
nicht ausgerüstet
ist, um dieselbe zu verarbeiten, und dass die Optionsdaten sich
gegebenenfalls nicht ändern.
Die Optionslänge
beträgt
16 Oktetts, wobei die 128-Bit-Weiterleitungsadresse selbst enthalten
ist.
-
Der
Knoten an dem anderen Ende des Pfades, über den eine Verzögerung gemessen
werden soll (bei dem Beispiel von 1 ist dies
der Knoten 16) ist konfiguriert, wie es unten beschrieben
ist, um Bestimmungsoptionen-Kopfblöcke zu verarbeiten, und ist
insbesondere in der Lage, die speziel len „Einweg-Ende-zu-Ende-Verzögerung"- und „Weiterleitungsadresse
für Verzögerungsmessung"-TLV-Optionen zu
interpretieren. Auf einen Empfang eines Pakets mit einem dieser
Kopfblöcke
hin liest der Knoten 16 die Inhalte des Kopfblockes und
speichert dieselben. Das Paket wird dann wieder zusammengesetzt, möglicherweise
ohne den Bestimmungsorte-Optionen-Kopfblock,
wenn keine anderen Optionsfelder vorliegen, und zu dem endgültigen Bestimmungsort desselben
weitergeleitet.
-
Der
Quellzeitstempelwert, der in dem Bestimmungsortoptionen-Kopfblock
enthalten ist, wird gelesen und von der momentanen Zeit auf dem
Bestimmungsortknoten subtrahiert, um die Einweg-Ende-zu-Ende-Verknüpfungsübertragungszeitverzögerung zu
berechnen. Die Anfangspaketverarbeitungszeit zwischen der Ankunft
des Pakets an der Schnittstelle des Knotens und dem Erhalten des
eigenen Momentane-Zeit-Wertes des Knotens sollte in dieser Berechnung
ebenfalls berücksichtigt
werden. Der berechnete Wert wird an die in dem Bestimmungsortoptionen-Kopfblock spezifizierte
Adresse weitergeleitet, in Abhängigkeit
von der Dringlichkeit der Messung entweder über eine TLV-codierte Option
in einem Bestimmungsort-optionen-Kopfblock,
der in einem neuen Paket enthalten ist, das für diesen Zweck erzeugt wurde,
oder durch ein Hinzugefügt-Werden zu einem Benutzerpaket,
das für
die gleiche Adresse bestimmt ist. Alternativ könnte eine andere TLV-Option
verwendet werden, um zu spezifizieren, dass die Verzögerungsmessergebnisse
in einem Cache in dem Knoten 16 zur späteren Beförderung oder einer Ansammlung
gespeichert werden sollen.
-
Es
ist notwendig, sicherzustellen, dass die Takte in den Quell- und
Bestimmungsortknoten entweder auf einen erwünschten Grad von Genauigkeit synchronisiert
sind oder der Zeitversatz zwischen denselben stabil und bekannt
ist. Die erforderliche Genauigkeit und Präzision der Verzögerungsmessung,
und somit des Zeitstempelungsprozesses, ist ein erheblicher Faktor
bei der Wahl eines Verfahrens zur Taktsynchronisation. Diese und
darauf bezogene Angelegenheiten sind in RFC 2679 detaillierter erörtert.
-
Die
IPv6-Spezifizierung erfordert, dass jede Verknüpfung eine maximale Übertragungseinheitgröße (MTU-Größe; MTU
= maximum transmission unit) von 1280 Oktetts oder größer aufweisen
muss, um zu ermöglichen,
dass IPv6 arbeitet. Die empfohlene MTU beträgt 1500 Oktetts. Wenn die Hinzufügung von
Bestimmungsortoptionen zu einem ausgewählten Paket ein Verletzen der
MTU-Beschränkungen der
Verknüpfung
riskiert, über
die das Paket durch den Knoten 10 weitergeleitet wird,
sollte stattdessen das nächste
geeignete Paket ausgewählt
werden. Dies ist, weil die Verzögerungsmessung
zeitempfindlich ist und es somit unzweckmäßig wäre, den Zeitnachteil auf sich
zu laden, der mit der Untere-Schicht-Paketfragmetierung und -Wiederzusammensetzung
verbunden ist, die erforderlich ist, um das Paket über diese
Verknüpfung
weiterzuleiten. Da der Paketauswahlprozess erwünschterweise randomisiert ist,
sollte diese Modifikation des Prozesses keinen nachteiligen statistischen
Effekt aufweisen.
-
Wie
oben beschrieben ist, werden die Prozesse des Hinzufügens von
Bestimmungsortoptionen-Kopfblöcken
zu Paketen und des Erfassens und Entfernens derselben anderswo,
um Verzögerungsmessungen
durchzuführen,
von Routern wie z. B. 10 und 16 übernommen.
Derartige Router sind wirksam zweckgebundene Datenprozessoren, die
eine oder mehrere Prozessoreinheiten, die unter einer Softwareprogrammsteuerung
arbeiten, einen zugeordneten Speicher zum Speichern der Programme
und der darauf bezogenen Daten, einen Pufferspeicher zum Halten
von Paketen, die verarbeitet werden, und Eingangs- und Ausgangsschnittstellen
zum Empfangen und Übertragen
der Pakete enthalten.
-
An
dieser Systemebene kann die erforderliche Funktionalität zum Durchführen von
Verzögerungs-
und anderen Messungen implementiert sein, z. B. unter Verwendung
von dynamisch einbringbaren Modulen, um eine zusätzliche Verarbeitungslogik für die Manipulation
von Paketerweiterungen in Kopfblöcken
und andere unterstützende
Funktionen wie z. B. die Speicherung, die Wiedergewinnung, die Korrelation
und Weiterleitung von messbezogenen Daten zu liefern. Durch ein
Modularisieren des Satzes von Überwachungs-
und Messaufgaben ist es möglich,
dynamisch lediglich die Module einzubringen, die zu einer bestimmten
Zeit gebraucht werden, und dieselben dann zu entnehmen, wenn sie
einmal nicht länger
im Gebrauch sind. Die einbringbaren Module können entfernt an die Knoten
geliefert, eingebracht und konfiguriert werden und können im
Gebrauch wirksam ein integraler, eingebetteter Part des Betriebssystems
des Knotens werden.
-
Eine
Minimierung der aktiv verwendeten Verarbeitungslogik auf diese Weise
kann einen Speicherverbrauch reduzieren, eine Verarbeitungszeit schneller
machen, Schaltungsplatinenraumanforderungen einschränken, Entwürfe vereinfachen
und eine Gesamtteilsystemkomplexität reduzieren. Im Falle von
Knoten, die Mobilvorrichtungen in einem drahtlosen lokalen Netz
(LAN; LAN = local area network) aufweisen, wie z. B. Mobiltelefone
und tragbare Personaldigitalassistenten (PDAs), die im Hinblick auf
eine Verarbeitungsfähigkeit
und Speicher eingeschränkte
Ressourcen aufweisen, ist dieser modulare Ansatz besonders vorteilhaft.
Die erforderliche Funktionalität
kann ohne weiteres an Netzwerkbasisstationsknoten geliefert sein,
um ansprechend auf ein Signalisieren oder sogar auf den Datenverkehr selbst
Module automatisch einzubringen/zu entnehmen, was automatisierte,
reaktionsfähige
Strategien zum Einsatz eines effizienten Messens und Überwachens
erleichtert. Insbesondere macht dies die Notwendigkeit überflüssig, einen
Verkehr um ein Netzwerk herum zu Messzwecken zu verfolgen, weil
der Verkehr selbst die Mess-/Überwachungsfunktionalität initiieren
kann. Dies könnte
besonders in dem Kontext von mobilen Zelluarfunkzugangsnetzen nützlich sein,
da mobile Anschlüsse
frei wech seln können
und Daten während
einer einzigen Sitzung eine Mehrzahl von Pfaden durch das Netzwerk
nehmen können.
-
Dieser
modulare Ansatz eignet sich auch gut für eine entfernte, verteilte
Implementierung, da die Module um das Netzwerk frei eingefügt und entfernt werden
können,
wie es erwünscht
ist, was ein Potential für
dynamisch konfigurierbare, lokalisierte Verarbeitungsstellen und
Korrelationsentitäten
liefert. Ein anderer erheblicher Vorteil des Eingebettetes-Modul-Ansatzes
besteht darin, dass es nicht notwendig ist, physisch die elektrischen
oder optischen Kabel zu vernetzen, die die Verknüpfungen zwischen Routern aufweisen,
um vorbeilaufende Daten zu überwachen. Der
Eingebettetes-Modul-Ansatz verwendet stattdessen eine Reserveprogrammlogik
oder verarbeitende Einrichtung in den Routern oder anderen Netzwerkvorrichtungen,
was eine integriertere, inhärent
leistungsfähige
Lösung
liefert. Aktualisierungen umfassen ein Liefern von neuen Modulen
an Knoten (z. B. über
das Netzwerk selbst), die entweder direkt auf eine Lieferung hin
eingebracht oder temporär
in einer Form von Lokalmedien (z. B. einem Festplattenspeicher)
zur späteren
Verwendung gespeichert werden können.
-
10 zeigt
eine darstellende Architektur eines einzelnen Netzwerkelements 30 mit
einer Anzahl von Leitungsschnittstellen 32 (Leitungs-I/F;
I/F = Interface = Schnittstelle) und einer Steuerung 34,
die einen Prozessor, einen Speicher und eine Programmsoftware oder
Firmware aufweist. Die Figur stellt drei unterschiedliche Beispielintegrationspunkte dar,
wo, abhängig
von dem Entwurf des Netzwerkelements 30, dynamisch einbringbare
Module aufgenommen werden können:
- (A) die Module können auf eine Leitungsschnittstelle 32 eingebracht
werden, um eine dynamische Rekonfiguration von Hardware (z. B. von
FPGAs; FPGAs = feldprogrammierbare Gatearrays) zu steuern, oder
als Software/Firmware, um eine Verarbeitungslogik in der Lei tungsschnittstelle
zu steuern, oder als eine hybride Kombination von beiden Optionen;
- (B) die Module können
als einbringbare Software in dem „Betriebssystemkern" (Kernel) des Softwarebetriebssystems
oder einem Äquivalent
für die
Steuerung 34 existieren;
- (C) die Module können
als einbringbare Anwendungen in einem „Benutzer"-Raum existieren, der durch das Betriebssystem
der Steuerung geliefert ist.
-
Eine
Integration gemäß Option
B geht davon aus, dass das Betriebssystem eine Hinzufügung von Modulen
zu dem Systembetriebssystemkern ermöglicht, z. B. von einbringbaren
Betriebssystemkernmodulen (LKMs; LKM = Loadable Kernel Modules).
Diese liefern üblicherweise
eine bessere Verarbeitungsleistung im Vergleich zu Anwendungen,
die in einem Benutzerraum ausführen,
und können
ohne weiteres konfiguriert werden, um Erweiterungskopfblöcke als einen
integralen Teil der Netzwerkprotokollstapelimplementierung des Betriebssystemkerns
hinzuzufügen,
zu entfernen und zu modifizieren, anstatt explizit ganze Pakete
in einem externen Benutzerraumprozess aufbauen zu müssen.
-
Option
C beinhaltet ein Verarbeiten von IPv6-Erweiterungskopfblöcken in einem Benutzerraum
und nicht als Teil der Protokollstapelimplementierung des Betriebssystems.
Dies ist eine Lösung, die
vielleicht nicht so elegant ist wie die Verwendung von Betriebssystemkernmodulen
und eine schlechtere Leistung aufweisen kann. Jedoch erfordert dieselbe
keine Kenntnisse von Betriebssystemkern-Programmiertechniken und kann somit
einfacher zu implementieren sein. Zusätzlich vermeidet dieselbe mögliche Probleme
mit einer Betriebssystemsicherheit und -integrität, die mit Sicherheitsrichtlinien
einer Organisation, die die Router oder andere betreffende Knoten
betreibt, in Konflikt kommen können.
-
Die
Einfügung
von Erweiterungskopfblöcken in
einen Benutzerverkehr zum Zwecke einer Messung und einer Überwachung
kann, in Abhängigkeit von
einer speziellen Managementanwendungsanforderung dynamisch gesteuert
werden. Somit müssen nicht
alle Benutzerpakete in denselben eingebettete Erweiterungskopfblöcke aufweisen.
Eine Auswahl kann auf einer Anwendung basieren und eine Probenahme
kann ebenfalls angewendet werden.
-
Die
obig beschriebenen Techniken zum Durchführen einer Inline-Überwachung
und -Messung liefern gegenüber
existierenden Ansätzen
eine Anzahl von Vorteilen:
- – Die Routerfunktionalität, die das
IPv6-Protokoll implementiert, wird auch verwendet, um die Arbeit bei
einem Erfassen, welche Pakete verarbeitet werden müssen, durchzuführen, da
dieselben über
einen Standarderweiterungskopfblock identifiziert werden; es ist
somit möglich,
komplexe Filtertechniken, um jedes Paket, das an einer Schnittstelle
ankommt, zu überprüfen, um
zu prüfen,
ob das Paket vordefinierten Kriterien für eine Einschließung in
den Überwachungs-/Messvorgang
entspricht, zu vermeiden.
- – Es
ist der Benutzerverkehr selbst, der die Mess- und auslösende Information
trägt,
also ist, wenn ein Paket an jedem von zwei Überwachungspunkten beobachtet
wird, garantiert, dass das gleiche Paket bei beiden Gelegenheiten
eingebunden ist.
- – In ähnlicher
Weise ist eine Korrelation von Daten aus Pfadendpunkten nicht notwendig,
was die Komplexität
des Messsystems reduziert, was möglicherweise
die Menge an Messdaten reduziert, die über das Netzwerk transferiert
werden müssen,
und eine schnellere Verfügbarkeit
der Messergebnisse erleichtert.
- – Jegliche
hinzugefügte
Daten sind in dem echten Benutzerverkehr eingegliedert. Davon ausgehend,
dass marginale Erhöhung
der Paketkopfblocklänge
nichts daran ändert,
wie das Paket auf der Reise desselben durch das Netzwerk behandelt
wird, besteht eine sehr hohe Wahrscheinlichkeit, dass die hinzugefügten Daten
somit die gleiche Behandlung erhalten und dem gleichen Routingpfad
folgen wie der echte Benutzerverkehr.
-
Die
Gesamtmenge an zusätzlichem
Verkehr, der zu Messzwecken über
das Netzwerk transportiert wird, ist begrenzt.
- – Im Gegensatz
zu aktiven Messungen, die injizierte Pakete umfassen, reflektieren Zwei-Punkt-Inline-Messungsergebnisse
genauer das Verhalten von Paketen, die eine Benutzererfahrung des
Netzwerkbetriebs beeinflussen, mit lediglich einer kleinen zusätzlichen
systematischen Verarbeitungsverzögerung
und einer marginal größeren Gesamtpaketlänge im Vergleich
zu ungestörten
Paketen.
- – Die
Charakteristika des IPv6-Protokolls werden auf eine vorteilhafte
Weise verwendet, um zu ermöglichen,
dass eine dynamische Instrumentierung zur Messung und Überwachung
des Verhaltens des Netzwerks vereinfacht wird, und so die Kosten
und die Komplexität
sowie die Anforderung für
spezialisierte Sonden, um die gleiche Funktionalität zu liefern,
zu reduzieren.
- – Inline-Messungen,
die IPv6-Erweiterungskopfblöcke
verwenden, werden im Allgemeinen von dem verwendeten Höhere-Schicht-Transportprotokoll
(UDP oder TCP) nicht beeinflusst. Ähnliche Messungen können somit
für ein
beliebiges gewähltes
Transportprotokoll bzw., andersherum, trotz des gegebenen Transportprotokolls
durchgeführt
werden.
-
Das
20-Bit-Flussetikettfeld in dem Haupt-IPv6-Kopfblock (2)
ist seiner Art nach experimentell. In dem Umfang, in dem dieses
Feld nicht tatsächlich
für den
ursprünglichen
beabsichtigen Zweck desselben verwendet wird, und davon ausgehend,
dass die Verwendung desselben für
andere Zwecken den Betrieb des Netzwerks nicht beeinträchtigt,
ermöglicht
eine Kombination aus Bestimmungsortoptionen, einem Routingkopfblock
und dem Flussetikettfeld eine selektive Hinzufügung von Daten zu dem echten
Benutzerverkehr, die durch die IPv6-Protokollschicht eines Knotens
erfasst und verarbeitet werden, wenn die notwendige Funktionalität implementiert
ist. Der Pegel und die Art des Verarbeitens können durch die Optionen bestimmt
werden, die in dem Erweiterungskopfblock enthalten sind, und können ein
Zählerinkrementieren,
ein Hinzufügen
eines Zeitstempelkommentars, ein Extrahieren von Paketdaten und
ein Abladen derselben in einen Cache mit Zeitstempelkommentaren
und verschiedenartigen Zählungen
oder ein Auslösen
einer Erfassung einer vollständigen
Kopie eines Pakets umfassen. Bestimmungsortoptionen allein können verwendet
werden, um Ende-zu-Ende-Inline-Dienstmessungen durchzuführen (über ein
IPv6-Netzwerk). Mit der Hinzufügung
eines Routing-Kopfblockes ist es möglich, spezifische Knoten auf
der Strecke anzuvisieren, um die Implementierung von detaillierteren Dienstmessungen
zu ermöglichen,
wenn der Benutzerverkehr wesentliche Punkte einer Netzwerkwolke durchläuft. Es
ist auch möglich,
einige Bits in dem Flussetikettfeld einzusetzen, um ohne weiteres
eine Messung und ein Überwachens
eines Verhaltens zu identifizieren und auszulösen, wenn der Benutzerverkehr,
der die Inline-Daten enthält, über Knoten
auf der Strecke zu dem Bestimmungsort desselben weitergeleitet wird.
-
Allgemein
ausgedrückt
umfasst die Erfindung die folgenden Verfahrensschritte, wie dieselben in 11 dargestellt
sind, die unter mehreren unterschiedlichen Artikeln einer Ausrüstung (z.
B. Routern) verteilt sein können:
- (a) ein Paket wird an einem ersten „logischen" Punkt in dem Netzwerk
ausgewählt
(40);
- (b) mittels zumindest einen Erweiterungskopfblockes werden Daten
zu dem Paket hinzugefügt (42);
- (c) Daten in einem beliebigen existierenden Erweiterungskopfblock
können
optional modifiziert werden;
- (d) die Erweiterungskopfblockdaten in dem Paket werden beobachtet,
z. B. an einem zweiten „logischen" Netzwerk (44, 46);
- (e) die Erweiterungskopfblockdaten können dann entfernt werden (48)
und die angeforderte Messung wird erhalten (50).
-
Die „logischen" Punkte in dem Netzwerk
können
auch physisch getrennte Punkte sein. Jedoch können in Abhängigkeit von der Art der Mess-
oder Überwachungsaktivität die zwei „logischen" Punkte physisch
an dem gleichen physischen Punkt gemeinsam angeordnet sein. Zum
Beispiel kann ein einzelner Beobachtungspunkt zur Verfolgung oder
Nachführung
einer TCP-Verbindung oder einer jeglichen transaktionalen „Konversation" (wie z. B. Signalprotokolle
zur Errichtung und Aufrechterhaltung eines Zustands), die diesen
Beobachtungspunkt durchläuft verwendet
werden. Somit könnte
der Beobachtungspunkt Erweiterungskopfblöcke in Pakete einfügen, die
in eine Richtung fließen,
und für
antwortbasierte Messungen Echo-Werte in Erweiterungskopfblöcken in
Paketen in die umgekehrte Richtung empfangen. Auf diese Weise kann
die Verbindungseinstellungszeit für TCP- oder andere verbindungsorientierte oder
transaktionale Protokolle geschätzt
werden. Eine andere Möglichkeit
würde darin
bestehen, die Zeit zu messen, die aufgewendet wird, um eine SIP-Zuordnung einzustellen,
so dass ein Echtzeitdienst wie Internet-Telefonie (VoIP; VoIP = voice-over-IP)
geliefert werden kann. Ein anderes Beispiel einer Anordnung von logischen
Messpunkten an derselben Stelle ist die Messung von Parametern in
einem Ringnetzwerk.
-
Obwohl
die Erfindung zur Zweckmäßigkeit
in dem Kontext eines Netzwerks beschrieben worden ist, das zu dem
IPv6 konform ist, ist dieselbe gleichermaßen in Verbindung mit anderen
Vernetzungssystemen und -protokollen anwendbar, die ermöglichen, dass
zusätzliche
Informationen in ein Paket während des
Transits desselben durch ein Netzwerk eingegliedert werden.