-
Gebiet der Erfindung
-
Die
Erfindung bezieht sich auf ein System und ein Verfahren zur Messung
der Qualität
eines Datennetzwerks. Insbesondere bezieht sich die Erfindung auf
ein System und ein Verfahren zur Messung der Qualität eines
Datennetzwerks unter Verwendung eines Client-Computers und eines Server-Computers,
die unter Verwendung eines verbindungslosen Übermittlungsprotokolls kommunizieren.
-
Hintergrund der Erfindung
-
Ein
Verfahren zur Messung von Datennetzwerken ist vom Iperf (http://dast.nlanr.net/Projetcs/Iperf)
bekannt. Iperf verwendet TOP und UDP, um die Leistung in einem IP-Netzwerk
zu messen. Mit UDP ist Iperf in der Lage, Paket-Verluste und Verzögerungsinstabilitäten zu messen.
-
Ein
anderes Verfahren, um Datennetzwerke zu messen, ist von rfc792 bekannt.
Rfc792 beschreibt das Internet-Steuerungsnachrichten-Protokoll (ICMP).
Mit ICMP ist es möglich,
Messdatenpakete zwischen zwei Computern zu senden. Ein erster Computer
sendet ein ICMP-Paket, das einen ursprünglichen Zeitstempel beinhaltet,
zu einem zweiten Computer. Der zweite Computer fügt einen Empfangszeitstempel
zum ICMP-Paket hinzu, wenn dieser das Paket empfängt und fügt einen Sendezeitstempel zum
ICMP-Paket hinzu, wenn er das Paket zurück zum ersten Computer sendet.
-
US 6,013,096 offenbart ein
Verfahren und ein System zur Bestimmung der Netzwerklatenzzeit zwischen
Clients (oder zwischen Clients und Servern) in einem Computer-Netzwerk.
Die Netzwerkla tenzzeit kann verwendet werden, um die Qualität eines
Datennetzwerkes zu bestimmen. Gemäss diesem Verfahren platziert ein
erster Client einen ersten Zeitstempel in einem Datenpaket und sendet
das Paket zu einem zweiten Client. Der zweite Client platziert einen
zweiten Zeitstempel im Paket und sendet das Paket als Antwortpaket
zum ersten Client zurück.
Der zweite Zeitstempel wurde im Paket bei Übermittlung des Pakets durch
den zweiten Client platziert. Der zweite Client antwortet im Wesentlichen
sofort nach Empfang des Pakets. Demnach ist der zweite Zeitstempel
im Wesentlichen gleich zur Empfangszeit des Pakets im zweiten Client.
-
Ziel der Erfindung
-
Das
Ziel der Erfindung ist die Bereitstellung eines alternativen Systems
und eines Verfahrens zur Messung der Qualität eines Datennetzwerks.
-
Darstellung der Erfindung
-
Die
vorliegende Erfindung stellt eine alternative Lösung zur Messung der Qualität eines
Datennetzwerks bereit.
-
Gemäss einem
Aspekt der Erfindung wird ein System zur Messung der Qualität eines
Datennetzwerks bereitgestellt, wobei das System einen Client-Computer
und einen Server-Computer umfasst, wobei der Client-Computer und
der Server-Computer angeordnet sind, um über das Datennetzwerk unter
Verwendung eines verbindungslosen Übermittlungsprotokolls, z.
B. UDP/IP, zu kommunizieren.
-
Der
Client-Computer kann angeordnet werden, um ein oder mehrere Datenpakete
zum Server-Computer zu senden. Der Client-Computer kann einen Client-Prozessor,
der mit einem Client-Speicher verbunden ist, umfassen, wobei der
Client-Prozessor angeordnet ist, um für jedes Datenpaket einen Client-Intervallwert, einen
Client-Paketgrössenwert
und einen Paketartwert aus dem Client-Speicher auszulesen. Der Client-Speicher
kann eine Datei sein, die auf einer Platte gespeichert ist, was
es ermöglicht,
die Information permanent zu speichern. Der Paketartwert kann eine
Darstellung eines "normalen
Pakets" oder eines "Burstpakets" sein, was später verschiedene
Netzwerkqualitäts-Berechnungen
für unterschiedliche
Arten von Paketen ermöglicht. Die
Datenpakete können
einen ersten Zeitstempel umfassen, der die Zeit des Sendens anzeigt.
Der Client-Computer kann angeordnet sein, um die Datenpakete mit
einer Client-Intervallzeit zu senden, die gleich dem Client-Intervallwert
ist, wobei die Datenpakete den Paketartwert und Client-Nutzdaten
umfassen, wobei die Client-Nutzdaten
die Datenpakete bis zu einer ersten vorbestimmten Grösse, die
gleich dem Client-Paketgrössenwert
ist, auffüllen.
Die Client-Nutzdaten können
ein vorbestimmtes Bit-Muster oder ein zufälliges Bit-Muster sein. Jedes
Datenpaket kann eine Sequenznummer umfassen, was die Identifikation
der Reihenfolge der Pakete erlaubt.
-
Der
Server-Computer kann angeordnet sein, um mindestens eines der Datenpakete
zu empfangen. Der Server-Computer kann einen Server-Prozessor, der
mit einem Server-Speicher verbunden ist, umfassen. Der Server-Prozessor
kann angeordnet sein, um vom Server-Speicher einen Zeitüberschreitungswert,
der die vorbestimmte Zeitmenge anzeigt, einen Server-Intervallwert,
einen Quantitätswert
oder einen Server-Paketgrössenwert
auszulesen. Der Server-Computer kann weiterhin angeordnet sein,
um für
jedes empfangene Datenpaket ein modifiziertes Datenpaket zum Client-Computer zu senden,
wobei das modifizierte Datenpaket einen ersten Zeitstempel und einen
zweiten Zeitstempel, die die Zeit des Empfangens anzeigen, umfasst.
Das modifizierte Datenpaket kann Server-Nutzdaten umfassen, wobei
die Server-Nutzdaten das modifizierte Datenpaket bis zu einer zweiten
vorbestimmten Grösse,
die gleich dem Server-Paketgrössenwert
ist, auffüllen. Dies
ermöglicht
die Messung von asymmetrischer Netzwerkbelastung, wobei Aufwärtsstrecke
und Abwärtsstrecke
unterschiedliche Paketgrössen
haben. Die Server-Nutzdaten können
ein vorbestimmtes Bit-Muster oder ein zufälliges Bit-Muster sein. Der
Server-Computer
kann angeordnet sein, um ein oder mehrere Zeitüberschreitungs-Datenpakete
zum Client-Computer zu senden, wenn eine vorbestimmte Zeitmenge
seit Empfang des letzten Datenpakets im Server-Computer verstrichen
ist. Dies ist vorteilhaft, weil es die Erfassbarkeit von verlorenen
Paketen erhöht.
Der Server-Computer
kann angeordnet sein, um Zeitüberschreitungs-Datenpakete mit einer
Server-Intervallzeit, die gleich dem Server-Intervallwert ist, zu
senden, bis ein nächstes
Datenpaket empfangen wird. Die maximale Anzahl von gesendeten Zeitüberschreitungs-Datenpakete
kann gleich dem Quantitätswert
sein. Dies ermöglicht
eine gesteuerte Erfassung der verlorenen Pakete.
-
Der
Client-Computer kann angeordnet sein, um ein Konfigurationspaket
zum Server zu senden. Das Konfigurationspaket kann den Zeitüberschreitungswert,
den Server-Intervallwert, den Quantitätswert und/oder den Server-Paketgrössenwert
umfassen. Dies kann vorteilhaft sein, weil der gleiche Client-Computer,
der das gleiche verbindungslose Übermittlungsprotokoll
verwendet, verwendet werden kann. Zur Konfiguration kann der Client-Computer angeordnet
sein, um mit dem Server-Computer über das Datennetzwerk unter
Verwendung eines verbindungsorientierten Übermittlungsprotokoll, z. B.
TCP/IP, zu kommunizieren. Dies kann vorteilhaft sein, wenn garantiert
werden muss, dass der Server-Computer
die Konfigurationsdaten korrekt empfängt. Der Server-Computer ist angeordnet,
um das Konfigurationspaket zu empfangen. Der Server-Prozessor kann angeordnet
sein, um den Zeitüberschreitungswert,
den Server-Intervallwert, den Quantitätswert und/oder den Server-Paketgrössenwert
in den Server-Speicher zu schreiben, so dass er zur Verwendung sofort
verfügbar wird.
-
Der
Client-Computer kann angeordnet sein, um eine Logdatei zu speichern.
Die Logdatei kann alle modifizierten Datenpakete, die vom Server-Computer
empfangen wurden, umfassen. Die Logdatei kann weiterhin alle Zeitüberschreitungs-Datenpakete,
die vom Server-Computer empfangen wurden, umfassen. Alle modifizierten
Datenpakete, die vom Server-Computer empfangen wurden, können in
einer ersten Logdatei gespeichert werden. Alle Zeitüberschreitungs-Datenpakete,
die vom Server-Computer empfangen wurden, können in einer zweiten Logdatei
gespeichert werden. Jedes Datenpaket kann in einem Ringspeicher
gespeichert werden. Der Client-Computer kann angeordnet sein, um
jedes modifizierte Datenpaket, das vom Server empfangen wurde, mit
dem Inhalt des Ringspeichers zu überprüfen. Der
Client-Computer kann angeordnet sein, um die Datenpakete vom Ringspeicher
zu löschen,
falls das entsprechende modifizierte Datenpaket nicht innerhalb
der Länge
des Ringspeichers empfangen wird, und wobei in diesem Fall das Datenpaket
in der zweiten Logdatei gespeichert wird.
-
Der
Client-Computer kann angeordnet sein, um eine Rundreisezeit durch
Subtrahieren des ersten Zeitstempels von einem Zeitstempel, der
anzeigt, wann das modifizierte Datenpaket im Client-Computer empfangen
wurde, zu berechnen. Der Client-Computer kann angeordnet sein, um
die Rundreisezeit in der ersten Logdatei zu speichern, was eine
spätere
Verwendung der Daten ermöglicht.
-
Der
Client-Computer kann angeordnet sein, um eine Client-bis-Server-Latenzzeit
durch Subtrahieren des zweiten Zeitstempels vom ersten Zeitstempel
zu berechnen. Der Client-Computer kann angeordnet sein, um die Client-bis-Server-Latenzzeit
in der ersten Logdatei zu speichern, was eine spätere Verwendung der Daten ermöglicht.
-
Der
Client-Computer kann angeordnet sein, um von der ersten Logdatei
den Paketartwert, die Client-bis-Server-Latenzzeit und die Rundreisezeit
auszulesen. Der Client-Computer kann angeordnet sein, um für jedes
modifizierte Datenpaket mit dem Paketartwert, der gleich der Darstellung
eines "normalen
Pakets" ist, eine
Server-bis-Client-Latenzzeit durch Subtraktion der Client-bis-Server-Latenzzeit
von der Rundreisezeit zu berechnen. Der Client-Computer kann angeordnet
sein, um von der ersten Logdatei den Paketartwert auszulesen. Der
Client-Computer kann angeordnet sein, um eine Bandbreite der Abwärtsstrecke
zu berechnen, unter Verwendung von:
(#BytesPerPacket+Overhead)*(#BurstPackets)/(t2-t1),
wobei
#BytesPerPacket gleich der Länge des modifizierten Datenpakets
in Bytes ist; Overhead gleich der Länge des Protokoll-Kopfs-Overhead in Bytes
ist; #BurstPackets gleich der Anzahl der modifizierten Datenpakete
ist, die in der ersten Logdatei mit dem Paketartwert, der gleich
der Darstellung des "Burstpakets" ist, gespeichert
ist; wobei t1 gleich einem Zeitstempel ist, der anzeigt, wann das
erste modifizierte Datenpaket im Client-Computer empfangen wurde; t2 gleich
einem Zeitstempel ist, der anzeigt, wann das letzte modifizierte
Datenpaket im Client-Computer
empfangen wurde. Der Client-Computer kann angeordnet sein, um von
einer ersten Logdatei den Paketartwert auszulesen. Der Client-Computer
kann angeordnet sein, um eine Bandbreite der Aufwärtsstrecke
zu berechnen, unter Verwendung von:
(#BytesPerClientPacket+Overhead)*(#BurstPackets)/((t2+t4)-(t1+t3)),
wobei
#BytesPerClientPacket gleich der Länge des Datenpakets in Bytes
ist; Overhead gleich der Länge
des Protokoll-Kopf-Overheads
in Bytes ist; #BurstPackets gleich der Anzahl der modifizierten
Datenpakete ist, welche in der ersten Logdatei mit dem Paketartwert,
der gleich der Darstellung von "Burstpaket" ist, gespeichert ist;
t1 gleich einem Zeitstempel ist, der anzeigt, wann das erste modifizierte
Datenpaket im Client-Computer empfangen
wurde; t2 gleich einem Zeitstempel ist, der anzeigt, wann das letzte
modifizierte Datenpaket im Client-Computer empfangen wurde; t3 gleich
der Client-bis-Server-Latenzzeit
des ersten modifizierten Datenpakets ist; t4 gleich der Client-bis-Server-Latenzzeit
des letzten modifizierten Datenpakets ist.
-
Der
Client-Computer kann angeordnet sein, um von der ersten Logdatei
die Rundreisezeit und die Sequenz-Nummer auszulesen. Der Client-Computer
kann angeordnet sein, um einen Rundreise-Ausfall zu berechnen, unter Verwendung
von:
falls(Rtt2-Rtt1)>t5
dann Rundreise-Ausfall = Wahr,
wobei Rtt2 gleich der Rundreisezeit
ist; Rtt1 gleich der Rundreisezeit des vorgängig modifizierten Datenpakets ist,
wobei der Client-Computer angeordnet ist, um die vorgängig modifizierten
Datenpakete durch die Sequenz-Nummer zu identifizieren; t5 gleich
einer vorbestimmten Zeitmenge ist.
-
Der
Client-Computer kann angeordnet sein, um von der ersten Logdatei
die Client-bis-Server-Latenzzeit und die Sequenz-Nummer auszulesen.
Der Client-Computer kann angeordnet sein, um einen Ausfall der Abwärtsstrecke
zu berechnen, unter Verwendung von:
falls(Rtt4-Rtt3)>t5 dann Downlink-Ausfall
= Wahr
wobei Rtt4 gleich der Client-bis-Server-Latenzzeit ist;
Rtt3 gleich der Client-bis-Server-Latenzzeit des vorgängig modifizierten
Datenpakets ist, wobei der Client-Computer angeordnet ist, um die
vorgängig
modifizierten Datenpakete durch die Sequenz-Nummer zu identifizieren;
t5 gleich einer vorbestimmten Zeitmenge ist.
-
Der
Client-Computer kann angeordnet sein, um von einer ersten Logdatei
die Sequenz-Nummer auszulesen. Der Client-Computer kann angeordnet
sein, um einen Ausfall der Aufwärtsstrecke
zu berechnen, unter Verwendung von;
falls(Rtt6-Rtt5)>t5 dann Uplink-Ausfall
= Wahr,
wobei Rtt6 gleich der Server-bis-Client-Latenzzeit
ist; Rtt5 gleich der Server-bis-Client-Latenzzeit des vorgängig modifizierten
Datenpakets ist, wobei der Client-Computer angeordnet ist, um die
vorgängig
modifizierten Datenpakete durch die Sequenz-Nummer zu identifizieren;
t5 gleich einer vorbestimmten Zeitmenge ist.
-
Der
Client-Computer kann angeordnet sein, um die Anzahl der verlorenen
Pakete zwischen zwei modifizierten Datenpaketen durch Analyse der
Sequenz-Nummern zu bestimmen. Dies ermöglicht einen guten Überblick
vom Paketverlust.
-
Der
Client-Computer kann angeordnet sein, um die kalkulierten Werte
mit Messdaten eines tiefen Niveaus von einem Mobil-Telefon und/oder
geografischen Informationsdaten zu kombinieren. Dies ist vorteilhaft, um
schlechte Datennetzwerk-Qualität
in geografischen Gebieten zu erfassen, was eine Suche für schwache Punkte
im Datennetzwerk vereinfacht.
-
Gemäss einem
Aspekt der Erfindung wird ein Verfahren zur Messung der Qualität eines
Datennetzwerks in einem System, das einen Client-Computer und einen
Server-Computer umfasst, bereitgestellt, wobei der Client-Computer
und der Server-Computer angeordnet sind, um über ein Datennetzwerk unter
Verwendung eines verbindungslosen Übermittlungsprotokolls zu kommunizieren.
Das Verfahren umfasst einen oder mehrere der Schritte:
des
Sendens von einem oder mehreren Daten-Paketen vom Client-Computer
zum Server-Computer, wobei die Daten-Pakete einen ersten Zeitstempel,
der die Zeit des Sendens anzeigt, umfassen,
des Empfangens
von mindestens einem der Daten-Pakete im Server-Computer,
des
Sendens eines modifizierten Daten-Paketes für jedes empfangene Daten-Paket
vom Server-Computer zum Client-Computer, wobei das modifizierte
Daten-Paket einen ersten Zeitstempel und einen zweiten Zeitstempel,
der die Zeit des Empfangs anzeigt, umfasst,
des Sendens eines
oder mehreren Zeit-Überschreitungs-Daten-Pakete vom Server-Computer
zum Client-Computer, wenn eine vorbestimmte Zeitmenge seit dem Empfang
des letzten Daten-Pakets,
das den ersten Zeitstempel umfasst, im Server-Computer verstrichen
ist.
des Auslesens eines Zeit-Überschreitungs-Werts, der die
vorbestimmte Zeit-Menge anzeigt, eines Server-Intervall-Wertes und
eines Quantitäts-Wertes
vom Server-Speicher im Server-Computer,
des Sendens der Zeit-Überschreitungs-Daten-Pakete
mit einer Server-Intervall-Zeit, die gleich dem Server-Intervall-Wert
ist, bis ein nächstes
Daten-Paket empfangen wird und die maximale Anzahl von Zeit-Überschreitungs-Daten-Pakete
gleich dem Quantitäts-Wert
ist.
des Auslesens eines Client-Intervall-Wertes, eines Client-Paket-Grössen-Wertes
und eines Paketartwertes für jedes
Daten-Paket aus
einem Client-Speicher im Client-Computer,
des Sendens der Daten-Pakete
mit einer Client-Intervall-Zeit,
die gleich dem Client-Intervall-Wert ist, wobei die Daten-Pakete den Paketartwert
und Client-Nutzdaten umfassen, wobei die Client-Nutzdaten die Daten-Pakete bis
zu einer ersten vorbestimmten Grösse
auffüllen,
die gleich dem Client-Paket-Grössen-Wert ist.
-
Kurze Beschreibung der Zeichnungen
-
Die
Erfindung wird im Detail durch Bezugnahme auf beispielhafte Ausführungsformen
beschrieben, die in Zeichnungen gezeigt werden, in welchen:
-
1 eine
architektonische Übersicht
eines Systems zeigt;
-
2 ein
Datenpaket oder ein modifiziertes Datenpaket und seine Elemente
zeigt;
-
3 ein
Steuerungspaket und seine Elemente zeigt;
-
4 ein
Zeitsequenz-Diagramm von Paketen, die zwischen einem Client-Computer
und einem Server-Computer gesendet werden, zeigt.
-
Detaillierte Beschreibung der Erfindung
-
Für den Zweck
der Lehre der Erfindung werden im Folgenden bevorzugte Ausführungsbeispiele
des Verfahrens und des Systems der Erfindung beschrieben. Dem Fachmann
ist es klar, dass andere Alternativen oder äquivalente Ausführungsbeispiele
der Erfindung abgeleitet und auf die Praxis reduziert werden können, ohne
von der Erfindung abzuweichen, der Schutzbereich der Erfindung ist
nur durch die letztendlich erteilten Ansprüche limitiert.
-
Das
Messsystem besteht aus einem Client-Server-Ansatz. Die Erfindung
wird zur Verwendung in einem GPRS-Netzwerk erklärt, kann aber auch in jedem
anderen paketgeschalteten Netzwerk, wie unter anderem UMTS, LAN,
WAN und Internet verwendet werden. Als verbindungsloses Übermittlungsprotokoll
wird in den Beispielen das UDP/IP-Protokoll verwendet. Andere verbindungslose Übermittlungsprotokolle
könnten auch
verwendet werden.
-
In
diesem Beispiel ist der Client-Computer ein Laptop-Computer in einem
Auto, der über
ein GPRS-Telefon mit dem GPRS-Netzwerk verbunden ist. Andere Clients
können
auch verwendet werden, wobei es ein vorbestimmtes Muster von UDP-Paketen
zum Server-Computer
sendet. Der Server antwortet auf jedes Datenpaket mit einem anderen
Paket (ein modifiziertes Datenpaket).
-
UDP
ist ein OSI-Niveau 4 Protokoll, welches das IP-Verhalten so transparent
wie möglich
lässt.
Nicht wie TCP (das andere bekannte Niveau 4 Protokoll) schränkt UDP Übermittlung
von Paketen oder Zwangsübermittlungen
im Fall von verlorenen Paketen nicht ein. Die Verwendung von UDP,
einer Niveau 7 Applikation, kann vollen Kontakt mit der IP-Ebene
halten.
-
Der
UDP-Server ist. an einer fixen Position im zu testenden Datennetzwerk
angeordnet. Z. B. kann der Server direkt mit einem Zugangspunkt
eines GGSN verbunden sein, um Messungenauigkeiten zu verhindern. Später wurde
der Server mit dem Internet verbunden, welches nur ein paar Millisekunden
zusätzlicher
Verzögerung
einführte,
welche bezüglich
der Verzögerung
in dem GPRS-System vernächlässigbar
ist.
-
Der
Server antwortet auf jedes Paket mit dem gleichen Paket, das mit
seiner Ankunftszeit erweitert wurde und möglicherweise mit vorbestimmten
zusätzlichen
Nutzdaten aufgefüllt
wurde.
-
Falls
der Server keine UDP-Pakete innerhalb einer bestimmten Zeit nach
Empfang des letzten Pakets empfängt,
startet er mit dem Senden einer vorbestimmten Anzahl von speziellen
Paketen (Zeitüberschreitungs-Pakete).
Empfang von diesen vom Server stammenden Paketen gibt eine Anzeige
zum Client, dass der Aufwärtsstrom
gestoppt wurde und die Zeitdauer der Aufwärtsstrom-Unterbrechung.
-
Die
folgenden Server-Parameter können
von der Ferne unter Verwendung einer sicheren TCP-Verbindung mit
dem Server über
die gleiche Schnittstelle konfiguriert werden:
- – die Menge
von Achtergruppen, zu welchen es die reflektierten UDP-Pakete auffüllen soll;
- – die
Zeit bevor er mit Senden von seinen eigenen Paketen, um die Unterbrechung
von Client-Paketen anzuzeigen, startet;
- – die
Anzahl von eigenen Paketen nach Unterbrechung von Client-Paketen.
-
Die
Aufzeichnung der Messung wird durch zwei Logdateien ausgeführt: die
A-Logdatei (zweite Logdatei) und die R-Logdatei (erste Logdatei).
Die R-Logdatei ist mit allen Paketen gefüllt, die vom Server zurückkehren.
Der Inhalt der A-Datei besteht aus allgemeinen Informationen über die
Messung, wie das verwendete Paket-Muster, sowie Ausnahmen, welche
durch den Client aufgezeichnet wurden, wie verlorene Pakete.
-
Der
Client speichert jedes gesendete Datenpaket in einem Ringspeicher
und prüft
jedes empfangene Datenpaket mit dem Inhalt des Ringspeichers. Falls
das Paket erkannt wurde, wird es in der R-Resultatdatei gespeichert,
zusammen mit seiner Rundreisezeit und der Einweg-Verzögerungszeit.
Die Letztere ist nur verwendbar, wenn die Client- und Serveruhren
synchronisiert sind.
-
Falls
das Paket unbekannt ist, wird der Paket-Inhalt in der A-Logdatei gespeichert.
Dies passiert beispielsweise im Fall des Empfangs eines vom Server
herkommenden Pakets.
-
Falls
ein Paket nicht innerhalb der Länge
des Ringspeichers zurückkehrt,
wird es vom Speicher gelöscht
und in der A-Logdatei als "verloren" gespeichert. Pakete,
welche nicht als "zurückgekehrt" markiert sind, werden
auch in der A-Logdatei gespeichert, wenn die Messung stoppt.
-
Server-Teil
-
Der
Server horcht an einer definierten Schnittstelle sowohl für UDP-Pakete
und TCP-Verbindungsanfragen. Die Schnittstellennummer ist als ein
Parameter in der Kommandozeile, um den Server zu starten, angegeben.
-
Im
Fall des Empfangs eines UDP-Pakets:
Falls das erste Zeichen
des Client-Pakets ein 'C' ist (d. h. dies
ist ein Steuerungsdatenpaket) und die Zeichen von der 19. bis zur
30. Position gültige
Nummern sind, wird das Paket wie folgt verarbeitet:
Syntax
des Befehlpakets: CYYYYMMDDHHmmSSNNNiiiigggnnn
Beispiel: C20030422105256873012507000050
wobei:
YYYY: | Jahr,
2003 |
MM: | Monat,
04 |
DD: | Tag,
22 |
HH: | Stunde,
10 |
mm: | Minute,
52 |
SS: | Sekunde,
56 |
NNN: | Millisekunde,
873 |
iiii: | Intervall
zwischen den Paketen, 125 ms |
gggg: | Paketgrösse, 700
Achtergruppen |
nnn: | Anzahl
der Pakete, 50 |
-
Der
Datums- und Zeitstempel des Pakets zeigt seine tatsächliche Übermittlungszeit,
die von der Uhr des Clients abgeleitet wurde.
-
Nach
Empfang von diesem Paket startet der Server die vom Server stammende
Paketsequenz gemäss
den Parametern iiii, gggg und nnn.
-
Nach
Senden des letzten Pakets kehrt der Server zum Standby- Zustand zurück. Die
Nutzdaten der Pakete, die durch den Server gesendet wurden, umfassen
die RTTs der letzten Mess-Session.
-
Der
Server bleibt für
andere Kommandos während
der Übermittlung
alarmbereit. Diese Befehle können
frühere
Befehle aufheben. Beispiel: Wenn der Server im Zustand der Übermittlung
von 1000 Paketen mit einem Intervall von 1000 ms ist, kann der Client
einen neuen Befehl, der ein Paket nachfragt, senden. Dann wird nur
dieses einzelne Paket durch den Server gesendet und die anderen
Pakete werden nicht gesendet.
-
Falls
das empfangene UDP-Paket nicht mit dem Buchstaben 'C' beginnt, wird das Paket, das mit einem
Zeitstempel erweitert wurde, welcher die Zeit anzeigt, zu welcher
der Server das Paket erhalten hat, zum Client zurückgesendet.
Es ist in der gleichen Weise kodiert: YYYYMMDDHHmmSSNNN.
-
Falls
die Paketgrösse
kleiner als die erforderliche Grösse
ist, wird das Paket auf die erforderliche Grösse aufgefüllt, unter Verwendung einer
Sequenz des Zeichens 'A' (vorbestimmtes Bit-Muster).
-
Nach
Erhalt eines entsprechenden Pakets wird eine Zeitschaltuhr gestartet.
Diese Zeitschaltuhr kann von der Ferne unter Verwendung des HW-Befehls
(siehe den TCP-Abschnitt unten) konfiguriert werden. Falls kein
neues Paket vor dem Ablauf des Timers empfangen wurde, startet der
Server mit dem Senden von Paketen, die vom Server stammen, mit einer
Paketgrösse,
die mit dem HE-Befehl konfiguriert ist. Die Pakete sind wie folgt
kodiert:
SqqqqYYYYMMDDHHmmssNNN, wobei:
'S': | 'vom Server stammendes
Paket'; |
qqqq: | Paket-Sequenznummer; |
YYYYMMDDHHmmssNNN: | Datum-
und Zeitstempel der Paket-Übermittlung. |
-
Die
Paket-Sequenzanzahl zählen
vom Maximum (eingestellt durch den HE-Befehl, Standard 19) bis 0.
-
Behandlung von TCP
-
TCP
wird in einer Telnet-ähnlichen
Sitzung verwendet, um den Server von der Ferne zu konfigurieren, um
die maximale Flexibilität
zu erhalten. Im Fall eines TCP-Verbindungsvorfalles sendet der Server
die Zeile 'password:' an den Client. Falls
die nächste
erhaltene Zeile über
die TCP-Verbindung nicht mit dem bestimmten Passwort übereinstimmt,
beendet der Server die TCP-Verbindung.
Falls die nächste
empfangene Zeile mit dem definierten Passwort übereinstimmt, lässt der
Server die TCP-Verbindung offen und sendet einen Überblick
der Befehle an den Benutzer. Diese Befehle sind:
HV<n>: | alle
zurückkehrenden
UDP-Pakete werden bis <n> Achtergruppen aufgefüllt (wenn <n> < zurückzusendende Paketgrösse, dann
füllen
wir das Paket nicht auf, noch verkleinern wir es, um einen Verlust
von Informationen zu verhindern); |
HW<n>: | falls
innerhalb <n> Millisekunden keine
UDP-Pakete empfangen wurden, startet der Server die Übermittlung
von eigenen Paketen; |
HI<n>: | <n> definiert die Zeit
in Millisekunden zwischen den vom Server stammenden Paketen; |
HE<n>: | <n> definiert die maximale
Anzahl von vom Server stammenden Paketen. |
-
Jeder
Befehl muss als eine separate Zeile gegeben werden. Die Standard-Einstellungen
sind: HVO, HW1000, HI1000, HE20.
-
Die
Satz-Parameter werden im Speicher gespeichert. Diese könnten in
einer Konfigurationsdatei gespeichert sein, welche die letzten Parameter
auf Neustart ladet.
-
Auf
TCP-Disconnect beendet der Server die Sitzung und ein neues Login
wird benötigt.
-
Client-Teil
-
Eine
Benutzer-Schnittstelle kann dem Benutzer drei Hauptwege zur Generierung
von UDP-Paketen bereitstellen:
- 1. mit einem
bestimmten Zeitintervall (gleichmässig);
- 2. mit einem bestimmten Zeitintervall, poisson-verteilt;
- 3. gemäss
einer Paket-Übermittlungsfahrplan-Datei
(Chirp).
-
In
allen Fällen
kann die übermittelte
Paketgrösse
und Paket-Intervallzeit
definiert werden. In den ersten zwei Fällen ist die Paketgrössen- und
Intervallzeit-Definition während
dem ganzen Test fest. Im Fall der Verwendung der Paket-Übermittlungsfahrplan-Datei
kann jedes Paket eine unterschiedliche Paketgrösse und Intervallzeit haben,
die in einer externen Datei definiert sind, die auf der Festplatte
gespeichert ist: 'CHIRP.TXT'. Ein Beispiel von
dieser Datei:
-
Jede
Reihe von dieser Datei beschreibt ein Paket.
-
Die
erste Spalte definiert die Wartezeit bevor das Paket gesen det wird,
die zweite Spalte definiert die Paketgrösse in Achtergruppen und die
letzte Spalte definiert den ersten Buchstaben des zu senden Pakets. Felder
sind mit einem Leerschlag getrennt.
-
Analyse
von 'Chirp mode'-Paketsequenzen benötigt die
Identifikation der Pakete. In der eigentlichen Version identifiziert
das Analyse-Programm langsam fliessende Pakete mit dem Buchstaben 'H' (normale Pakete) und speicherfüllende Fliesspakete
mit dem Buchstaben 'B' (Burstpakete).
-
Der
Client speichert jedes gesendete Paket in einem Ringspeicher-Schlitz
und markiert es als "gesendet". Falls dieser Ringspeicher-Schlitz
immer noch mit einem Rahmen gefüllt
ist, welcher nicht zurückgekehrt ist,
wird dieser Rahmen vom Ringspeicher gelöscht und in der A-Logdatei
als verloren markiert.
-
Alle
Pakete werden durch den Server reflektiert, welcher einen Zeitstempel
und (abhängig
von seiner Konfiguration) zusätzliche
Nutzdaten hinzufügt.
-
Beim
Start von jedem Test werden zwei Logdateien durch den Client geöffnet: 'AYYYYMMDDHHmmSS.TXT' und 'RYYYYMMDDHHmmSS.TXT', in welchen YYYYMMDDHHmmSS
das Datum und die Zeit des Starts der Messung anzeigt.
-
Die
A-Datei beinhaltet allgemeine Informationen bezüglich der Messung, wie der
Inhalt der Chirp-Datei, die Grösse
der erhaltenen Pakete vom Server und Ausnahmen, welche aufgetreten
sind, wie verlorene Pakete und Empfang von nicht identifizierbaren
Paketen.
-
Die
R-Datei beinhaltet die Empfangszeit, die Rundreisezeit, Einweg-Verzögerungszeit
und den Kopfbuchstaben von jedem passen den Paket.
-
Der
Client ist kontinuierlich in Alarmbereitschaft auf ankommende UDP-Pakete.
Jedes empfangene Paket wird mit dem Inhalt des Ringspeichers verglichen.
Falls das Paket passt, löscht
der Client eine Kopie im Ringspeicher, so dass der Ringspeicher-Schlitz frei wird.
Der Client berechnet die Rundreisezeit des Pakets. Falls Server
und Client synchronisiert sind, kann die Einweg-Verzögerung auch
berechnet werden, wobei der Server-Zeitstempel berücksichtigt wird. Die Resultate
werden in der R-Datei
gespeichert.
-
Falls
ein Rahmen nicht mit dem Inhalt des Ringspeichers übereinstimmt,
wird er in der A-Logdatei als nicht identifiziert gespeichert.
-
Mess-Verfahren
-
Der
UDP-Netzwerktest besteht aus einer oder mehreren Testsequenzen.
-
Eine
Sequenz von Rahmen wird durch ein UDP-Client über das sich im Test befindliche
GPRS-Netzwerk gemäss
dem Inhalt der so genannten 'Chirp-Datei' übermittelt. Diese Rahmen werden
durch einen UDP-Server empfangen, mit der Empfangszeit versehen,
auf eine definierte Anzahl von Achtergruppen (z. B. 700 Achtergruppen)
erweitert und zurück
zum Client gesendet.
-
Unsere
Chirp-Datei besteht jetzt aus den folgenden Einstellungen (zu lesen
in einer Spalte)
700
300 H | 700
300 H | 700
300 H | 700
300 H | 700
300 H |
700
300 H | 700
300 H | 700
300 H | 700
300 H | 700
300 H |
700
300 H | 700
300 H | 700
300 H | 10
30 B | 10
30 B |
10
30 B | 10
30 B | 10
30 B | 10
30 B | 10
30 B |
10
30 B | 10
30 B | 10
30 B | 10
30 B | 10
30 B |
10
30 B | 10
30 B | 10
30 B | 10
30 B | 6000
30 B |
700
300 H | 700
300 H | 700
300 H | 700
300 H | 700
300 H |
700
300 H | 700
300 H | 700
300 H | 700
300 H | 700
300 H |
700
300 H | 700
300 H | 700
300 H | 10
400 U | 10
400 U |
10
400 U | 10
400 U | 10
400 U | 10
400 U | 10
400 U |
10
400 U | 10
400 U | 10
400 U | 10
400 U | 10
400 U |
10
400 U | 10
400 U | 10
400 U | 6000
400 U | |
-
Diese
Datei wird wie folgt behandelt:
Beim Start der Messung werden
13 Rahmen von 300 Achtergruppen mit einer Intervallzeit 700 ms gesendet. Alle
diese Rahmen werden mit dem Buchstaben 'H' gekennzeichnet,
um zu zeigen, dass sie primär
zur Messung der Netzwerk-Latenzzeit verwendet werden. Der Server
erweitert diese Rahmen bis 700 Achtergruppen und sendet diese zurück zum Client.
-
Diese
Rahmen-Sequenz wird dann durch 17 Rahmen von 30 Achtergruppen gefolgt,
gesendet mit einer Intervallzeit von 10 ms. Die Rahmen innerhalb
dieser Periode werden mit dem Buchstaben 'B' gekennzeichnet,
um deren Verwendung in einer Abwärtsstrecken-Bandbreiten-Messung
zu zeigen. Der Server erweitert diese Rahmen bis 700 Achtergruppen
und retourniert diese durch die Abwärtsstrecke.
-
Nachdem
wird Burst a gesendet, 6000 ms Pause folgen. Diese Zeit wird verwendet,
um die Netzwerk-Speicher vom Abwärtsstrecken-Bandbreiten-Messungen-Burst
selbst leeren zu lassen.
-
Nachdem
wird eine neue Rahmen-Sequenz von 12 Rahmen aus 300 Achtergruppen
gesendet, jeder Rahmen mit einer Intervallzeit von 700 ms, um den
zweiten Netzwerk-Latenzzeittest zu machen. Alle diese Rahmen werden
durch den Server mit bis zu 700 Achtergruppen aufgefüllt retourniert.
-
Letztendlich
wird ein Burst von 16 Rahmen von 400 Achtergruppen mit einer Intervallzeit
von 10 ms gesendet. Mit diesem Burst werden Aufwärtsstrecken-Puffer aufgefüllt, um
die erhältliche
Aufwärtsbandbreite zu
messen. Der Server erweitert diese Rahmen auch bis 700 Achtergruppen
und sendet diese zurück.
Eine 6000 ms Pause beendet die Sequenz. Während dieser Zeit kann das
Netzwerk seine Puffer entleeren und sich auf die nächste Test-Sequenz
vorbereiten.
-
Die
Sequenz wird kontinuierlich wiederholt, bis der Bediener diese stoppt.
-
Falls
der Server keine Client-Rahmen während
einer Periode von mehr als einer Sekunde nach dem Erhalt des letzten
Rahmens empfängt,
startet er das Senden von 20 vom Server stammenden Rahmen mit einem
Intervall von 500 ms gegen die IP-Adresse und Schnittstelle des
Clients. Dieser Prozess stoppt, falls neue Rahmen vom Client empfangen
werden.
-
Merke:
Der vom Server stammende Rahmenprozess kann durch den Benutzer geändert werden.
Der Benutzer kann die Anzahl von Rahmen (Standard 20), deren Intervallzeit
(Standard 500 ms) und die Zeitverzögerung, nach der der Prozess
startet (Standard 1000 ms), verändern.
-
Auf
jeden Rahmen, der durch den UDP-Client gesendet wurde, wird der
Label-Buchstabe (Paketartwert) [L] sowie die Übermittlungszeit (Zeitstempel)
[1] in den Rahmen durch den Client eingefügt. Beim Empfang fügt der Server
seinen Empfangs-(= Übermittlung) Zeitstempel
[2] hinzu. Wenn der Client den Rahmen empfängt, zeichnet er seine Empfangszeit
[3] auf und berechnet die Rundreisezeit [4] durch Subtrahieren [1] von
[3] und die Client-bis-Serverzeit
[5] durch Subtrahieren [1] von [2]. Er speichert von jeder Datei
[3], [4], [5] und [L] in einer Logdatei.
-
Merke:
Client und Serveruhren sind nicht (sehr gut) synchronisiert. Der
Server-Zeitstempel [2] kann immer noch für verschiedene interessante
Berechnungen verwendet werden.
-
In
einer zweiten Logdatei werden alle speziellen Vorfälle aufgezeichnet,
wie verlorene und nicht erwartete Rahmen. Dieser Log beinhaltet
auch eine Beschreibung von Mess-Umständen.
-
Nachverarbeitende Berechnungen
-
Latenzzeit-Messungen
werden verwendet, um die Qualität
von interaktivem Verkehr zu berechnen. Die Rahmen mit [L] = 'H' werden für diesen Zweck verwendet.
-
RTT
pro Rahmen: Verwende [4] von der Logdatei.
-
Bestimme
die Client-bis-Server-Latenzzeit [5] für jeden Rahmen, suche nach
seinen minimalen Wert und bestimme für diesen Rahmen einen bestimmten
Zeitwert [V] für
welchen gilt:[V]:= 250 ms – [5].
[V] kann ein negativer Wert sein.
-
Berechne
nachfolgend für
alle Rahmen normalisierte Client-bis-Server-Zeit [5']:=[5]+[V].
-
Merke:
Der 250 ms Wert ist nur ein Beispiel. Jeder benutzerdefinierte Wert
kann hier verwendet werden. Absolute Latenzzeit-Resultate sind in dieser Weise nicht
möglich,
aber ein guter Eindruck auf die dynamische Leistung kann erhalten
werden.
-
Server-bis-Client-Latenzzeit
[6] pro Rahmen: Berechne für
jeden Rahmen [6]:=[4]-[5'].
-
Bandbreiten-Messungen
werden verwendet, um die Verkehrsgeschwindigkeit der Abwärts- und
Aufwärtsstrecke
zu berechnen.
-
Für die Bandbreiten-Berechnung
der Abwärtsstrecke
werden die Rahmen mit [L] = 'B' eines Burst verwendet.
-
Annahme
von [DS] als die Anzahl von Achtergruppen pro Rahmen, reflektiert
durch den Server.
Donwlink-Bandbreite:=
([DS]+28
octets)*(<Anzahl
vom Server erhaltenen Rahmen>)/([3]letzter
Rahmen-[3]erster Rahmen).
-
Merke:
28 Achtergruppen werden hinzugefügt,
um IP und UDP Rahmen-Overhead zu zeigen. Die Berechnungen werden
gemacht, um Bandbreite auf IP-Niveau zu bestimmen. Demnach sollten
Rahmenköpfe berücksichtigt
werden.
-
Merke:
Falls aufgrund von Rahmenverlusten zu wenig Rahmen empfangen werden,
kann eine Bandbreiten-Messung verworfen werden. Für Zwecke
der Nachverfolgbarkeit wird die Anzahl der verlorenen Rahmen während der
Bandbreiten-Messung gemeldet.
-
Für die Bandbreiten-Berechnung
der Aufwärtsstrecke
werden die Rahmen mit [L] = 'U' eines Bursts verwendet.
Jetzt wird der Zeitstempel, den der Server empfängt, der Client-Rahmen, berücksichtigt.
-
Annahme
von [US] als die Anzahl von Achtergruppen pro Rahmen, die durch
den Client im Burst gesendet werden.
Uplink-Bandbreite:=
([US]+28
octets*(<Anzahl
vom Server erhaltenen Rahmen>)/(([3]letzter
Rahmen+[5]letzter Rahmen)-[3]erster Rahmen+[5]erster Rahmen))
-
Merke:
28 Achtergruppen wurden hinzugefügt,
um IP und UDP Rahmen Overhead zu zeigen. Die Berechnungen werden
gemacht, um Bandbreite auf IP-Niveau zu bestimmen. Demnach sollten
Rahmenköpfe berücksichtigt
werden.
-
Merke:
Falls aufgrund von Rahmenverlusten zu wenig Rahmen empfangen werden,
kann eine Bandbreiten-Messung verworfen werden. Für Zwecke
des Reinheitsgrades wird die Anzahl der verlorenen Rahmen während Bandbreiten-Messungen
gemeldet.
-
Ein
Ausfall ist der Vorfall, bei dem eine Verbindung während einer
minimalen vorbestimmten Zeit still bleibt.
-
Rundreise-Ausfälle (alle
Ausfälle,
ob Abwärtsstrecke
oder Aufwärtsstrecke):
Falls
(Rundreisezeit [4] empfangener Rahmen-Rundreisezeit [4] vorgängig empfangener
Rahmen) > 2000 ms
dann
wird ein Ausfall gemeldet.
-
Falls
zwischen diesen beiden Rahmen einer oder mehrere Rahmen verloren
sind, wird dies in den Ausfall-Bericht integriert.
-
Ausfälle der
Abwärtsstrecke:
Falls (Latenzzeit [5']
empfangener Rahmen-Latenzzeit [5']
vorgängig empfangener
Rahmen) > 2000 ms
dann wird ein Ausfall gemeldet.
-
Falls
zwischen diesen beiden Rahmen einer oder mehrere Rahmen verloren
sind, wird dies in den Ausfall-Bericht integriert.
-
Ausfälle der
Aufwärtsstrecke:
Falls
(Latenzzeit [6] empfangener Rahmen-Latenzzeit [6] vorgängig empfangener
Rahmen) > 2000 ms
dann
wird ein Ausfall gemeldet.
-
Falls
zwischen diesen beiden Rahmen einer oder mehrere Rahmen verloren
sind, wird dies in den Ausfall-Bericht integriert.
-
Für jeden
Ausfall wird berichtet:
- – Zeitstempel
- – Zeitdauer
- – Anzahl
der verlorenen Rahmen während
des Ausfalls
-
Merke:
Die Zeitkonstante kann durch den Benutzer konfiguriert werden (Standard
2000 ms).
-
Geographische Information
-
Durch
Kombinieren der nachverarbeitenden Berechnungen mit simultan ausgeführten Messungen des
tiefen Niveaus durch das Mobil-Telefon (z. B. Funkkanal-Nummer,
Basisstation-Identität,
Mobilitätswerte, Feldstärken und/oder
Funkverbindungssteuerung) und/oder geographische Information (z.
B. Verwendung von GPS) wird die Netzwerk-Qualität bei einem geographischen
Ort sichtbar. Dies ermöglicht
die Identifikation von schwacher Datennetzwerk-Qualität in geographischen
Gebieten, was eine Suche nach schwachen Punkten im Daten-Netzwerk
vereinfacht.