-
HINTERGRUND
-
Über Computernetzwerke werden Informationen übertragen. Die Informationen werden als Bits repräsentiert, die auf Pakete verteilt sind. Die Pakete werden von einem Netzwerkgerät, z.B. über Switches und Router, zum anderen weitergereicht, so dass die Informationen über die Computernetzwerke weitergeleitet werden. Jedes Paket wird von seiner Quelle an ein Ziel übertragen, das in den Header-Informationen des jeweiligen Paketes angegeben ist. Quelle und Ziel eines Paketes können jeweils in verschiedenen Teilen des Netzwerks liegen, wobei jeder Teil von einer anderen Partei betrieben wird. Zwischen der Quelle und dem Ziel kann es verschiedene mögliche Routen geben.
-
Ein Wide Area Network (WAN), wie z.B. das Internet, kann mehrere Unternetzwerke beinhalten, die als autonome Systeme (AS) bezeichnet werden. Ein autonomes System ist Teil eines Netzwerks, der für andere Teile des Netzwerks so erscheint, als hätte er eine einheitliche Verwaltung einer einzigen Routing-Richtlinie und als stelle er gegenüber den übrigen Teilen des Netzwerks ein einheitliches Bild erreichbarer Netzwerkziele dar, z.B. als Netzwerkadressräume, die über das AS erreichbar sind. In manchen Fällen kann ein autonomes System durch seine Autonomous System Number (ASN) gekennzeichnet sein, die innerhalb des Netzwerks eindeutig ist. Typischerweise hat ein Betreiber eines autonomen Systems Vereinbarungen mit Dritten, dass er Daten über eines oder mehrere der von dem jeweiligen Dritten betriebenen autonomen Systeme leiten darf, gewöhnlich in Form einer „Vergütungs“-Vereinbarung für die Durchleitung, die nutzungsabhängig in Rechnung gestellt oder als „unentgeltliche” Peering-Vereinbarung behandelt wird. Die Daten können dann an einem Peering Point, einem Multi-homed Netzwerkgerät, einem Internet eXchange Point (IXP) oder ähnlichem, gemäß der Vereinbarung zwischen den Betreibern der autonomen Systeme, von einem autonomen System zum anderen übertragen werden. Netzwerkgeräte im WAN können dann über eine Netzwerkroute kommunizieren, die mehrere autonome Systeme überspannen kann.
-
ZUSAMMENFASSUNG
-
In manchen Aspekten bezieht sich die Offenbarung auf ein System. Das System beinhaltet mehrere Monitore für die Netzwerkmaßzahlen, die so konfiguriert sind, dass sie Messungen einer oder mehrerer der Netzwerkmaßzahlen vornehmen und die Angaben zur Bewertung des Netzwerks auf der Basis der durchgeführten Messungen an einen Netzwerkanalysator in einem ersten Netzwerk senden, wobei die Angaben zur Bewertung des Netzwerks Werte für Eigenschaften eines oder mehrerer Netzwerkpfade von dem jeweiligen Netzwerkmaßzahlenmonitor zu einem Knoten in einem zweiten Netzwerk angeben. Mindestens einer der Monitore für die Netzwerkmaßzahlen befindet sich in einem Netzwerk außerhalb des ersten Netzwerks. Das System beinhaltet einen Netzwerkanalysator, der so konfiguriert ist, dass er die Angaben zur Bewertung des Netzwerks von den Monitoren für die Netzwerkmaßzahlen empfängt und die empfangenen Angaben zur Bewertung des Netzwerks aggregiert. Das System beinhaltet einen Netzwerk-Controller für das erste Netzwerk, der so konfiguriert ist, dass er auf der Basis der aggregierten Informationen mehreren möglichen Routen vom ersten Netzwerk zum Knoten im zweiten Netzwerk eine auswählt, die gewisse Kriterien erfüllt, und mithilfe der ausgewählten Route eine Routing-Richtlinie für Datenflüsse vom ersten Netzwerk durch den Knoten im zweiten Netzwerk festgelegt.
-
In manchen Aspekten bezieht sich die Offenbarung auf eine Methode. Zu der Methode gehört der Empfang durch einen Netzwerkanalysator, der mindestens einen Prozessor in einem ersten Netzwerk enthält, von Angaben zur Bewertung des Netzwerks von mehreren Monitoren für die Netzwerkmaßzahlen, so dass die Angaben zur Bewertung des Netzwerks Werte für Eigenschaften eines oder mehrerer Netzwerkpfade von dem jeweiligen Netzwerkmaßzahlenmonitor an einen Knoten in einem zweiten Netzwerk angeben, wobei sich mindestens ein Netzwerkmaßzahlenmonitor in einem Netzwerk außerhalb des ersten Netzwerks befindet. Zu der Methode gehört, die empfangenen Angaben zur Bewertung des Netzwerks durch den Netzwerkanalysator zu aggregieren. Zu der Methode gehört die Auswahl einer aus mehreren möglichen Routen vom ersten Netzwerk zum Knoten im zweiten Netzwerk auf der Basis der aggregierten Informationen, die einen Satz Kriterien erfüllt und mithilfe der ausgewählten Route eine Routing-Richtlinie für Datenflüsse vom ersten Netzwerk durch den Knoten im zweiten Netzwerk festgelegt.
-
In manchen Aspekten bezieht sich die Offenbarung auf ein nicht vorübergehendes computerlesbares Medium zum Speichern von Anweisungen, die bei Ausführung durch den Prozessor eines Computers diesen Prozessor veranlassen, Angaben zur Bewertung des Netzwerks von mehreren Monitoren für die Netzwerkmaßzahlen zu empfangen, wobei sich mindestens einer der Netzwerkmaßzahlenmonitore in einem Netzwerk außerhalb eines ersten Netzwerks befindet, wobei die Angaben zur Bewertung des Netzwerks Werte für Eigenschaften eines oder mehrerer Netzwerkpfade von dem jeweiligen Netzwerkmaßzahlenmonitor an einen Knoten in einem zweiten Netzwerk angeben, die empfangenen Angaben zur Bewertung des Netzwerks zusammenzufassen, auf der Basis der aggregierten Informationen ein Route aus mehreren möglichen Routen vom ersten Netzwerk zum Knoten im zweiten Netzwerk auszuwählen, die einen Satz Kriterien erfüllt, und mithilfe der ausgewählten Route eine Routing-Richtlinie für Datenflüsse vom ersten Netzwerk durch den Knoten im zweiten Netzwerk festzulegen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die oben genannten und damit zusammenhängende Objekte, Funktionen und Vorteile dieser Offenbarung werden anhand der folgenden eingehenden Beschreibung besser verständlich, wenn die dazugehörigen Abbildungen herangezogen werden, wovon:
-
1 ein Blockdiagramm einer Beispielnetzwerkumgebung ist, die mehrere autonome Systeme beinhaltet;
-
2 ein Fließdiagramm ist, das eine Methode zur Netzwerkanalyse veranschaulicht;
-
3 ein Diagramm ist, das Einzelheiten zu den Stadien der Netzwerkanalyse veranschaulicht;
-
4 ein Fließdiagramm ist, das eine Beispielmethode zur Auswahl einer Route auf der Grundlage einer Netzwerksanalyse mehrerer Drittnetzwerke veranschaulicht;
-
5 ein Blockdiagramm eines Netzwerkgerätes ist, das sich für verschiedene der beschriebenen Ausführungen eignet; und
-
6 ein Blockdiagramm eines Computersystems ist, das sich zur Verwendung in verschiedenen der beschriebenen Ausführungen eignet.
-
Der Klarheit halber sind ggf. nicht alle Komponenten in jeder FIG. beschriftet. Die Zeichnungen sollen nicht maßstabgetreu sein. Ähnliche Referenznummern und Kennzeichnungen in den verschiedenen Figuren weisen auf ähnliche Elemente hin.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Blockdiagramm einer Beispielnetzwerkumgebung 100, die mehrere Routing Domains oder Autonomous-System-(AS)-Netzwerke beinhaltet, z.B. das abgebildete Zugangsnetz 112, die Übertragungsnetze 114 (a), 114 (b) und 114 (c) (hierin allgemein als Übertragungsnetz 114 bezeichnet) und das Servicenetz 118. Während das Internet ein gutes Beispiel für ein großes Netzwerk 100 ist, gilt diese Beschreibung in gleicher Weise auch für andere Netzwerke.
-
In der breiten Übersicht beinhaltet die dargestellte Netzwerkumgebung 100 ein Servicenetz 118, das einen Host 150 und zusätzliche Netzwerkgeräte 160 beinhaltet, z.B. Switches oder Router, die von einem Netzwerkcontroller 180 gesteuert werden. Die dargestellte Netzwerkumgebung 100 beinhaltet auch ein Zugangsnetz 112. Endnutzer der von dem Host 150 angebotenen Dienste betreiben Endgeräte 120, die über einen Zugangsknoten 126 im Zugangsnetz 112 auf das Netzwerk zugreifen. Ein Beispiel für ein Zugangsnetz 112, das diese Offenbarung nicht einschränken soll, ist ein Internetanbieter (Internet Service Provider – ISP). Die Endgeräte 120 tauschen Daten mit dem Host 150 über eines oder mehrere Übertragungsnetze 114 aus, die in jedem beliebigen Netzwerk bestehen können, das zur Weiterleitung der Daten zwischen dem Servicenetz 118 und dem Zugangsnetz 112 verwendet wird. Der Host 150 kann z.B. ein Datenpaket durch die zusätzlichen Netzwerkgeräte 160 weiterleiten, die das Datenpaket an einen Randknoten 164 leiten, der das Servicenetz 118 mit einem Übertragungsnetz 114 verbindet, das entsprechend einer Routing-Richtlinie ausgewählt wird, die von dem Controller 180 gesteuert wird. Das ausgewählte Übertragungsnetz 114 leitet das Datenpaket weiter, bis es einen Randknoten 166 des Zugangsnetzes 112 erreicht. In manchen Fällen kann das Servicenetz 118 eine Direktverbindung zum Zugangsnetz 112 haben, so dass kein Übertragungsnetz 114 verwendet wird. In manchen Fällen kann auch ein Übertragungsnetz 114 ein Zugangsnetz für andere Netzwerkgeräte sein, die nicht gezeigt werden. Unabhängig davon leitet das Zugangsnetz 112 das Datenpaket dann an den Zugangsknoten 126 weiter. Der Zugangsknoten 126 leitet dann das Paket an das Endgerät 120 weiter.
-
Ein Netzwerkanalysator 188 sammelt Daten, die die Netzwerkleistung für jedes der teilnehmenden Netzwerke beschreiben, z.B. das Zugangsnetz 112, die Übertragungsnetze 114 und das Servicenetz 118. Die gesammelten Daten werden dann dazu verwendet, die Werte einer oder mehrerer Maßzahlen zu bestimmen, die Teile einer oder mehrerer Routen zwischen dem Host 150 und dem Zugangsknoten 126 beschreiben, der einen oder mehrere Endknoten 120 versorgt. Wie in 1 dargestellt, gibt es z.B. eine erste Route durch das Übertragungsnetz 114 (a) und eine zweite Route durch die Übertragungsnetze 114 (b) und 114 (c). Der Netzwerkanalysator 188 sammelt Daten, die diese Routen beschreiben. Der Netzwerkanalysator 188 liefert Analysen an einen Controller 180 und der Controller 180 verwendet dann die ermittelten Werte für den oder die Metriken zur Auswahl zwischen den möglichen Routen für den Datenaustausch zwischen dem Host 150 und den Endknoten 120. Bei manchen Ausführungsformen werden mehrere Routen ausgewählt, z.B. zum Lastausgleich. Bei manchen Ausführungsformen konfiguriert der Controller 180 die Netzwerkgeräte 160 über eine Steuerungsebene 182, um die ausgewählte(n) Route(n) zu verwenden. Der Host 150 überträgt Pakete an die Endgeräte 120 durch die Netzwerkgeräte 160 und nutzt die von dem Netzwerk-Controller 180 ausgewählte Route. Bei manchen Ausführungsformen, wie weiter unten eingehender beschrieben, stammen Pakete zum Endknoten 120 von einem Cache, z.B. einem Quellcache 152 im Servicenetz 118 oder von einem Off-site-Cache 154, der sich nachgeschaltet in einem Übertragungsnetz 114 befindet (wie gezeigt), oder sogar im Zugangsnetz 112 selbst.
-
5, die weiter unten eingehender beschrieben wird, veranschaulicht ein Beispielnetzwerkgerät 131, das sich zur Verwendung im Zugangsnetz 112, in den Übertragungsnetzen 114 und im Servicenetz 118 eignet, z.B. als Netzwerkgerät 160, Randgerät 164 oder 166 oder als Zugangsknoten 126. 6, die weiter unten eingehender beschrieben wird, veranschaulicht ein Beispielcomputersystem 141, das sich zur Verwendung als Host 150, Controller 180, Analysator 188, Endgerät 120, Quellcache 152, Off-site-Cache 154 oder sogar als Netzwerkgerät 160, Randgerät 164 oder 166 oder als Zugangsknoten 126 eignet. Bei manchen Ausführungsformen wird/werden eines oder mehrere der Netzwerke 112, 114 oder 118 mithilfe der Virtualisierung der Netzwerkfunktionen (Network Function Virtualization (NFV)) umgesetzt. In einem NFV-Netzwerk werden einige Netzwerkfunktionen, die normalerweise in einem Netzwerkgerät 160 (oder Randgerät 164 oder 166) umgesetzt werden, als Software umgesetzt, die von einem Prozessor ausgeführt wird (z.B. einem Allzweckprozessor). Bei manchen Ausführungsformen beinhaltet diese virtualisierte Netzwerkfunktion Lastausgleich und/oder Zugangskontrolle und/oder Firewall und/oder Einbruchmeldung und/oder Routing. Andere Netzwerkfunktionen können ebenfalls in dieser Weise virtualisiert werden.
-
Genauer bezugnehmend auf 1 ermöglicht die dargestellte Netzwerkumgebung 100 die Kommunikation zwischen verschiedenen Netzwerkgeräten, z.B. den Endgeräten 120, dem Host 150, dem Quellcache 152 und dem Off-site-Cache 154. Das Netzwerk 100 ist logisch aufgeteilt in Unternetze, z.B. die autonomen Systeme 112, 114 und 118, von denen jedes aus verschiedenen Netzwerkgeräten besteht, die miteinander verbunden sind, um einen oder mehrere Kommunikationspfade zwischen teilnehmenden Geräten zu bilden. Die Netzwerkgeräte 160 werden z.B. im Servicenetz 160 dargestellt, wobei Datenverbindungen eine Datenebene 184 bilden, die z.B. die Netzwerkgeräte 160 mit einem Randknoten 164 verbinden. Jedes Gerät im Netzwerk beinhaltet mindestens eine Netzwerkschnittstelle zur Übertragung und zum Empfang von Daten, typischerweise in Form eines oder mehrerer Pakete. Die Netzwerkschnittstellen verbinden die Geräte im Netzwerk miteinander, so dass sie ein Netzwerk bilden. Die Netzwerkumgebung 100 kann aus mehreren Netzwerken bestehen, von denen jedes ein Local Area Network (LAN) sein kann, wie z.B. ein Firmenintranet, ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN), ein Inter-Netzwerk, wie z.B. das Internet, oder ein Peer-to-Peer-Netzwerk, z.B. ein Ad-hoc-WiFi Peer-to-Peer-Netzwerk. Die Datenlinks zwischen den Geräten können eine beliebige Kombination aus kabelgebundenen Verbindungen (z.B. Glasfaser, Koaxialkabel, Cat-5, Cat-5e, Cat-6 usw.) bzw. drahtlosen Verbindungen (z.B. auf Funk-, Satelliten- oder Mikrowellenbasis) sein. Die Netzwerke 112, 114 und 118 können jeweils öffentlich, privat oder eine Kombination aus öffentlichen und privaten Netzwerken sein. Die Netzwerke können Datennetzwerke bzw. Kommunikationsnetzwerke beliebiger Art und/oder Form sein.
-
Für die Zwecke dieser Beschreibung ist ein Endgerät 120 ein Computergerät von beliebiger Art, das an einem Datenaustausch mit dem Host 150 teilnimmt oder das als Datenspeicher für den Quellcache 152 oder den Off-site-Cache 154 über ein Netzwerk fungiert, das sich außerhalb des Servicenetzes 118 befindet (d.h. ein Zugangsnetz 112). Das Endgerät 120 kann so konfiguriert sein, dass ein Benutzer damit interagieren kann, z.B. als Benutzergerät. Das Endgerät 120 kann ein netzwerkfähiges „Internet der Dinge“-Gerät sein, wie z.B. ein Thermostat, Feuermelder sein, oder ein Sensorarray, wie z.B. eine Wetterstation. Ein Endgerät 120 kann ein Laptop, Desktop, Tablet, elektronischer Notizblock, persönlicher digitaler Assistent, Smartphone, Videospielgerät, Fernsehgerät, Fernsehzusatzgerät (auch bekannt als „Set-top-Box“), Kiosk, tragbarer Computer oder irgendein anderes solches Gerät sein. Ein Endgerät 120 kann in der Lage sein, dem Benutzer Inhalte darzustellen oder die Darstellung von Inhalten für den Benutzer unterstützen. Auf einem Endgerät 120 läuft typischerweise ein Betriebssystem, das die Ausführung von Softwareanwendungen auf dem Endgerät 120 verwaltet. Bei manchen Ausführungsformen kann das Betriebssystem zusammen mit dem Benutzergerät 120 bereitgestellt werden. Anwendungen werden innerhalb eines Rechenkontextes ausgeführt, der von dem Betriebssystem gesteuert wird, d.h. „auf” dem Betriebssystem aufsetzend. Anwendungen können nativ mit dem Betriebssystem installiert sein oder zu einem späteren Zeitpunkt, z.B. von einem Benutzer, installiert werden. Bei manchen Ausführungsformen kann das Betriebssystem bzw. können die Anwendungen in das Endgerät 120 eingebettet sein, z.B. in einem Festspeicher kodiert.
-
Ein Zugangsknoten 126 versorgt einen oder mehrere Endknoten 120 mit dem Zugang zum Zugangsnetz 112. In manchen Fällen ist das Endgerät 120 direkt mit dem Zugangsknoten 126 verbunden. In manchen Fällen ist das Endgerät 120 durch eines oder mehrere Zwischengeräte (nicht gezeigt) mit dem Zugangsknoten 126 verbunden. Der Endnutzer kann z.B. ein kleines Local Area Network mit einem lokalen Router oder Switch betreiben, das mit dem Zugangsknoten 126 verbunden ist, und das Endgerät 120 wird über das Local Area Network mit dem Zugangsknoten 126 verbunden. Der Zugangsknoten 126 ist jedoch im Allgemeinen ein Knoten, durch den der gesamte Verkehr zum oder vom Endknoten 120 laufen muss. Er ist auch das letzte, oder annähernd das letzte Netzwerkgerät, das von dem Zugangsnetz 112 gesteuert wird, bevor ein an das Endgerät 120 adressiertes Paket sein Ziel erreicht. Dementsprechend entspricht aus der Perspektive des Netzwerk-Controllers 180 und des Analysators 188 die Auswahl einer Route zum Zugangsknoten 126 der Auswahl einer Route zu irgendeinem der Endgeräte 120, die von dem Zugangsknoten 126 versorgt werden. Bei manchen Ausführungsformen behandeln der Netzwerk-Controller 180 und der Analysator 188 einen Netzwerkknoten, der weiter von den Endgeräten 120 im Zugangsnetz 112 entfernt ist, als Proxy für den Zugangsknoten 126.
-
Routen zum Zugangsknoten 126, und somit zu den Endgeräten 120, laufen durch einen Randknoten 166 für das Zugangsnetz 112. Ein großes Zugangsnetz 112 kann eine beliebige Anzahl von Randknoten 166 haben. Die Randknoten 166 können geografisch verteilt sein. Das Zugangsnetz 112 kann mehrere Berührungspunkte mit demselben Übertragungsnetz 114 an verschiedenen geografischen Standorten haben. Bei manchen Ausführungsformen kann es messbare Unterschiede in der Netzwerkleistung zwischen Routen zu einem Zugangsknoten 126 durch jeden der möglichen Randknoten 166 im Zugangsnetz 112 geben. Der Zugangsknoten 126 kann sich z.B. erheblich näher zu einem Randknoten 166 befinden als zu anderen Randknoten 166, oder der Pfad zwischen einen bestimmten Randknoten 166 und dem Zugangsknoten 126 kann weniger überlastet sein als andere Pfade. Werte für bestimmte Netzwerkleistungseigenschaften können von der Tageszeit abhängen, z.B. kann die Latenz in Zeiten maximaler Netzwerkauslastung höher sein. Der Netzwerkanalysator 188 misst die Netzwerkleistung für jede der möglichen Routen durch das Zugangsnetz 112. Bei manchen Ausführungsformen sind die Messungen mit einer Messzeit oder einem Messzeitintervall verbunden.
-
Routen zum Zugangsnetz 112 können durch eines oder mehrere Vermittlungsnetzwerke laufen, die hier als Übertragungsnetze 114 bezeichnet werden. Ein Übertragungsnetz 114 kann irgendein Netzwerk sein, das für den Transport von Datenpaketen zwischen dem Servicenetz 118 und dem Zugangsnetz 112 verwendet wird. Ein Übertragungsnetz 114 kann eines oder mehrere autonome Systeme sein, die von Dritten kontrolliert werden und nicht von den Betreibern des Servicenetzes 118 bzw. des Zugangsnetzes 112. Ein Übertragungsnetz 114 kann eine getrennte Routing Domain innerhalb eines AS sein, wobei eine Routing Domain Teil des Netzwerks ist, das für die übrigen Teile des Netzwerks ein einheitliches Bild der erreichbaren Netzwerkziele darstellt. Jedes Übertragungsnetz 114 kann Auswirkungen auf die Qualität der Netzwerkleistungen haben und zusätzliche Kosten verursachen. Manche Netzwerke werden z.B. als „Transit”-Netzwerke, betrieben, die für das Durchleiten der Daten Dritter eine Gebühr erheben. Wo allerdings das Servicenetz 118 groß genug ist, um eine Auswahl aus verschiedenen Übertragungsnetzen 114 zum Erreichen eines Zugangsnetzes 112 zu bieten, kann der Controller 180 den Verkehr durch dasjenige Übertragungsnetz leiten, das die Anforderungen am besten erfüllt. Ein Teil des Verkehrs kann z.B. die Übertragung zu den geringstmöglichen Kosten erfordern, ohne Rücksicht auf die Netzwerkqualität, während in anderen Fällen der Verkehr eine Netzwerkroute mit hoher Bandbreite erfordern kann, ohne Rücksicht auf die Kosten. Bei manchen Ausführungsformen durchquert eine ausgewählte Route mehrere Übertragungsnetze 114. In 1 gibt es z.B. mindestens eine Route von zwischen dem Servicenetz 118 und dem Zugangsnetz 112, die sowohl das Übertragungsnetz 114 (b) als auch das Übertragungsnetz 114 (c) durchquert. Bei manchen Ausführungsformen wird die Leistungsqualität für jedes der Übertragungsnetze 114 entlang einer Route gemessen. Bei manchen dieser Ausführungsformen unterscheiden sich die Präzisions-, Frequenz oder Zeitintervalle, die für Messungen für ein Übertragungsnetz 114 verwendet werden, von einem oder mehreren der Präzisions-, Frequenz- oder Zeitintervallen, die für Messungen für ein anderes Übertragungsnetz 114 verwendet werden.
-
Das Servicenetz 118 beheimatet einen Host 150, der für die Endgeräte 120 einen Service erbringt. Der Host 150 kann z.B. ein E-Mail-Server, ein Fileserver, ein Web-Page-Server oder irgendein anderer Netzwerk-Service-Host sein. Der Einfachheit halber behandelt diese Offenbarung den Host 150 als Teil eines Content Delivery Netzwerks („CDN“); sie soll hierdurch jedoch nicht eingeschränkt werden. Als Teil eines CDN kann der Host 150 mit einem oder mehreren Caches Arbeiten, die über das gesamte Netzwerk verteilt sind. Ein Quellcache 152 kann z.B. im Servicenetz 150 an einem Ort betrieben werden, der einem bestimmten Randknoten 164 am nächsten gelegen ist. Vom Quellcache 152 gehostete Daten können durch den am nächsten gelegenen Randknoten 164 mit minimaler Belastung des Servicenetzes 118 an ein Zugangsnetz übertragen werden. Bei manchen Ausführungsformen kann der Host 150 mit einem Off-site-Cache 154 arbeiten, der in einem Drittnetzwerk betrieben wird, z.B. in einem Übertragungsnetz 114(c), oder sogar im Zugangsnetz 112 selbst. Bei manchen Ausführungsformen sind der Quellcache 152 und der Off-site-Cache 154 so konfiguriert ist, dass sie Leistungsmessungen an den Analysator 188 senden, z.B. über das Netzwerk. Der Off-site-Cache 154 kann z.B. die Leistung der Datenkommunikation mit dem Zugangsnetzwerk 112 messen. Andere Netzwerkdienste außer der Netzwerke, die Inhalte liefern, können ggf. in ähnlicher Weise verteilte Server verwenden.
-
Der Quellcache 152 und der Off-site-Cache 154 beinhalten jeweils Datenspeicher, die aus einem beliebigen Gerät bzw. aus beliebigen Geräten bestehen können, die für die Speicherung computerlesbarer Daten geeignet sind. Geeignete Datenspeichergeräte sind u.a. flüchtige oder nicht flüchtige Speicher, Netzwerkspeicher und Storage-Area-Netzwerke. Ein Datenspeichergerät kann eines oder mehrere Massenspeichergeräte enthalten, die sich an einem einzigen oder verteilt über verschiedene Orte befinden können. Für die Datenspeicherung geeignete Geräte sind u.a. Halbleiterspeichergeräte, wie z.B. EPROM, EEPROM, SDRAM und Flash-Speicher-Geräte. Für die Datenspeicherung geeignete Geräte sind u.a. Magnetplatten, z.B. interne Festplatten oder auswechselbare Platten, magneto-optische Platten und CD-ROM, DVD-ROM- und Blu-Ray®-Plattenlaufwerke. Die Datenspeichergeräte können virtualisiert sein. Auf die Datenspeichergeräte kann über einen Vermittlungsserver bzw. über ein Netzwerk zugegriffen werden. Datenspeichergeräte können die Daten als eine Sammlung von Dateien, Datenblöcken oder Brocken strukturieren. Datenspeichergeräte können für die Wiederherstellung nach Fehlern sorgen, z.B. mithilfe redundanter Speicherung bzw. mithilfe von Daten zur Wiederherstellung nach Fehlern (z.B. Paritätsbits). Der Quellcache 152 und der Off-site-Cache 154 können jeweils eine Datenbank hosten, z.B. eine relationale Datenbank. Bei manchen Ausführungsformen werden die Daten als Einträge in einer oder mehreren Datenbankentabellen in einer im Datenspeicher gespeicherten Datenbank aufgezeichnet. Bei manchen dieser Ausführungsformen wird mithilfe einer Abfragesprache, z.B. SQL, auf die Daten zugegriffen. Der Quellcache 152 bzw. der Off-site-Cache 154 kann jeweils ein Dateiablagesystem hosten. Daten können als Knowledge-Base strukturiert gespeichert werden. Daten können in verschlüsselter Form gespeichert werden. Der Zugriff auf gespeicherte Daten kann durch eines oder mehrere Authentifizierungssysteme beschränkt werden.
-
Der Netzwerk-Controller 180 bestimmt Routen für Daten, die durch das Servicenetz 118 geleitet werden. Bei manchen Ausführungsformen erstellt der Controller 180 Leitwegtabellen und programmiert Netzwerkgeräte 160 von fern so, dass sie die Leitwegtabellen verwenden, z.B. über die Steuerungsebene 182. Bei manchen Ausführungsformen kann der Controller 180 Controller eines softwaredefinierten Netzwerks (SDN) sein. Bei manchen Ausführungsformen können Routen durch Drittnetzwerke vom Servicenetz 118 aus gesteuert werden. Bei manchen Ausführungsformen leitet der Controller 180 nur Pakete zu einem Randknoten 164 für ein „Next Network”-Übertragungsnetz 114 und verlässt sich darauf, dass dieses nächste Netzwerk die Pakete entsprechend den eigenen Richtlinien dieses Netzwerks weiterleitet. Bei manchen Ausführungsformen sind Pakete im Servicenetz 118 eingekapselt (z.B. mit einem Multiprotocol Label Switching(MPLS)-Kopf) und werden durch einen von dem Controller 180 ausgewählten Randknoten 164 getunnelt. Bei manchen dieser Ausführungsformen gibt die Einkapselung den Austrittsport des Randknotens 164 an, und der Randknoten 164 entkapselt die empfangenen Pakete und überträgt sie über den angegebenen Austrittsport zum nächsten Netzwerk.
-
Der Netzwerkanalysator 188 sammelt Messwerte für die Netzwerkleistung. Der Analysator 188 verwendet die gesammelten Messdaten für die Entscheidungen über die Auswahl von Routen. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 mit dem Netzwerk-Controller 180 zusammen untergebracht oder in diesem enthalten sein. Bei manchen Ausführungsformen besteht der Netzwerkanalysator 188 aus einem oder mehreren unabhängigen Computersystemen, die mit dem Netzwerk-Controller 180 verbunden sind. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 ein virtualisiertes Rechnersystem sein.
-
Die Kommunikation über ein Netzwerk kann anhand eines oder mehrerer Messwerte gemessen werden. Der Durchsatz ist z.B. die Informationsmenge, z.B. die Anzahl Bits, die innerhalb eines bestimmten Zeitraums über einen Teil des Netzwerks übertragen wird. Bandbreite ist ein maximal möglicher Durchsatz, wobei die Begrenzung entweder physikalisch oder technisch ist (z.B. einer Richtlinie unterliegt). Zu Überlastungen kommt es, wenn Netzwerkgeräte versuchen, mehr Durchsatz zu erhalten, als Bandbreite verfügbar ist. Goodput ist der Informationsdurchsatz ohne sonstigen Datenverkehr, wie z.B. Netzwerkkonfigurationsdaten, Protokollsteuerungsinformationen oder die wiederholte Übertragung verlorengegangener Pakete. Latenz ist der Zeitraum von der Übertragung eines Paketes durch einen Absender und der Verarbeitung des Paketes durch den betreffenden Empfänger, d.h. die Sendeverzögerung. Nachlauf (Lag) ergibt sich aus einer Verzögerung, z.B. der Wahrnehmung von Verzögerungen aus Sicht eines Kommunikationsteilnehmers. Zu Nachlauf kann es z.B. kommen, wenn die Latenz eine Toleranzschwelle übersteigt, z.B. wo die Verzögerung für einen Endbenutzer merklich wird oder bestimmte Quality-of-Service(QoS)-Anforderungen für ein bestimmtes Kommunikationsprotokoll nicht erfüllt. Obwohl es auch zu Nachlauf kommen kann, wo Pakete verloren gehen, oder wo sie bei der Übertragung beschädigt werden, wird der Begriff Nachlauf allgemein gleichbedeutend mit Latenz verwendet. Latenz (und Nachlauf) können anhand einer Übertragung in einer Richtung oder als Zeit für die Übertragung in beiden Richtungen für die Übertragung eines Paketes und eine darauf erfolgende Reaktion oder Bestätigung gemessen werden. In manchen Fällen wird die Latenz als Funktion einer Pfadlänge gemessen, d.h. der Anzahl der auf einer Route liegenden Geräte des Vermittlungsnetzwerks („Hops“). Jeder Hop kann zur Gesamtlatenz der Route beitragen. Somit ist zu erwarten, dass ein Pfad mit einer geringeren Anzahl Hops auch eine geringere Latenz hat, und auch weniger Gelegenheiten für Fehlfunktionen bei der Weiterleitung. Variierende Paketverzögerungen (d.h. Übertragungsjitter) bedeutet Schwankungen der Latenz über die Zeit, z.B. da, wo Pakete stoßweise oder mit schwankender Verzögerung eintreffen. Übertragungsfehler können zu einer Verschlechterung des Goodput, zu hoher Latenz oder zu Nachlauf und unerwünschten Schwankungen in der Verzögerung führen. Messgrößen für Übertragungsfehler sind u.a. die Anzahl der Pakete, die erneut gesendet werden müssen, das Verhältnis der Anzahl Pakete, die erneut gesendet werden müssen, zur Anzahl derjenigen Pakete, die bei der ersten Versendung erfolgreich ankommen, und Sendungen, die mit Überlastungen verbunden sind, z.B. Pakete, bei denen „Explicit Congestion Notification“(ECN)-Fahnen gesetzt sind.
-
Der Netzwerkanalysator 188 sammelt Messungen der Netzwerkleistung mithilfe einer oder mehrerer solcher Messgrößen. Bei manchen Ausführungsformen kann der Netzwerkanalysator Testpakete (z.B. Internet Control Message Protokoll(ICMP)-Pakete) durch das Netzwerk 100 senden und eine oder mehrere Leistungsmessungen vornehmen. Testpakete können innerhalb eines einzelnen AS sehr nützlich sein. Einige Netzwerkgeräte können jedoch so konfiguriert sein, dass sie Testpakete ignorieren, oder diese besonders behandeln. Infolgedessen können Messungen anhand von Testpaketen begrenzte oder irreführende Ergebnisse liefern. Dementsprechend misst bei manchen Ausführungsformen der Netzwerkanalysator 188 die Leistung des Datenverkehrs, der nicht gerade einen Test darstellt. Bei manchen Ausführungsformen sammelt der Netzwerkanalysator Messungen sowohl von Testdatenverkehr als auch von Datenverkehr, der nicht nur zu Testzwecken fließt.
-
Bei manchen Ausführungsformen misst der Netzwerkanalysator 188 den Netzwerkdatenverkehr zwischen dem Zugangsknoten 126 und dem Host 150 und/oder dem Quellcache 152 und/oder dem Off-site-Cache 154. In manchen Fällen kann ein Zugangsknoten 126 an Datenflüsse mit mehreren Geräten im Servicenetz 118 sowie mit Off-site-Cache(s) 154 beteiligt sein. Der Netzwerkanalysator 188 kann Leistungsmessungen für diese verschiedenen Datenflüsse vergleichen und sie gegenüberstellen, um die Verknüpfung der Messungen mit bestimmten Teilen des Netzwerks zu verbessern.
-
2 ist ein Fließdiagramm, das eine Methode 200 zur Netzwerkanalyse veranschaulicht. Bei manchen Ausführungsformen kann der in 1 gezeigte Netzwerkanalysator 188 die Methode 200 ausführen. In einer breiten Übersicht über die Methode 200 sammelt der Netzwerkanalysator 188 in der Phase 220 Daten, die eine Netzwerktopologie beschreiben, die mehrere autonome Netzwerke überspannt. Zu den gesammelten Daten gehören Qualitätsmessungen für die Datenübertragung durch eines oder mehrere der autonomen Netzwerke und können außerdem eine Statistik zur Steuerungsebene beinhalten, wie z.B. Zählungen und Messungen von Border Gateway Protokoll(BGP)-Ankündigungen, die an einem Randknoten 164 oder 166 eingehen. In der Phase 240 bereinigt, überprüft, aggregiert und verarbeitet der Netzwerkanalysator 188 die gesammelten Daten. Dies anonymisiert die Messungen effektiv, entfernt Ausreißer bei den Messungen, aggregiert Daten aus mehreren Quellen und verarbeitet sie in einer einheitlichen Übersicht der Netzwerkleistung. In der Phase 260 erzeugt der Netzwerkanalysator 188 ein Netzwerktopologiemodell und analysiert die verarbeiteten Daten, um Teilen des Netzwerktopologiemodells auf der Basis der verarbeiteten Daten Qualitätsbewertungen zuzuordnen. In der Phase 280 kann der Netzwerkanalysator 188 dann aus dem Modell und den Qualitätsbewertungen nützliche Daten erzeugen. Der Netzwerkanalysator 188 kann z.B. Berichte erzeugen, für den Controller 180 hilfreiche Routen suchen oder sogar bei der Bewertung von Peeringmöglichkeiten helfen.
-
3 ist ein Diagramm, das Einzelheiten des Stadiums der in der in 2 dargestellten Methode 200 veranschaulicht. Die folgende detaillierte Beschreibung von 2 bezieht sich auch auf 3. Eine grobe Übersicht über 3 zeigt, wie der Netzwerkanalysator 188 Daten aus vielen verschiedenen Quellen sammelt, z.B. Monitore für die Netzwerkmaßzahlen. Beispiele für Monitore für die Netzwerkmaßzahlen sind u.a. ein Latenzmonitor 322, ein Fehlerdetektor 324, ein Bandbreitennutzungsmonitor 326, ein Topologieanalysator 328 usw. Der Netzwerkanalysator 188 sammelt in der Phase 220 Daten und verarbeitet sie in der Phase 240. Die Verarbeitung kann in der Bereinigung 342, Überprüfung 344 und Aggregation 346 der Daten bestehen. Die Daten werden im Datenspeicher 374 aufgezeichnet. In der Phase 260 führt der Netzwerkanalysator 188 eine weitere Anomalieerfassung 362, Modelling und Analyse 366 durch, und in der Phase 280 verwendet der Netzwerkanalysator 188 die Daten z.B., um Berichte 388 zu erzeugen, die ebenfalls im Speicher 374 aufgezeichnet werden.
-
Eingehender bezugnehmend auf 2 sammelt der Netzwerkanalysator 188 in der Phase 220 der Methode 200 Daten, die eine Netzwerktopologie beschreiben, die mehrere autonome Netzwerke überspannt. Die gesammelten Daten beinhalten Qualitätsmessungen für die Datenübertragung durch eines oder mehrere der autonomen Netzwerke. Bei manchen Ausführungsformen können die gesammelten Daten Qualitätsmessungen für Statistiken der Steuerungsebene beinhalten, wie z.B. die Zählung von und die Messung in Verbindung mit Border Gateway Protocol(BGP)-Ankündigungen, die an einem Randknoten 164 oder 166 empfangen werden. Statistiken der Steuerungsebene können zusätzliche Informationen zur Verfügbarkeit und Qualität alternativer Pfade durch verschiedene autonome Systemnetzwerke entlang möglicher Routen geben. Solche Messungen können z.B. Messungen von Bandbreite, Durchsatz, Goodput, Überlastungen, Überlastungshäufigkeit, Pfadlänge (d.h. der Anzahl Hops), Zeit für die Übertragung in beiden Richtungen (Round Trip Time – RTT), Latenz, Nachlauf, Schwankungen in der Verzögerung von Paketen, erneuten Übertragungen, des Verhältnisses der erneuten Übertragung von Paketen zur Anzahl beim ersten Mal erfolgreicher Übertragungen, überlastungsbezogene Übertragungen, wie z.B. Pakete mit gesetzten Explicit Congestion Notification(ECN)-Fahnen, Anzahl und Häufigkeit von BGP-Anzeigen und gesendete BGP Routing Information Bases (RIB) sein. Der Netzwerkanalysator 188 sammelt für diese Messungen Daten von einer Vielzahl verschiedener Monitore für die Netzwerkmaßzahlen. Monitore für die Netzwerkmaßzahlen schließen z.B. einen Latenzmonitor 322, einen Fehlerdetektor 324, einen Bandbreitennutzungsmonitor 326 bzw. einen Topologieanalysator 328 ein, wie in 3 gezeigt. Bei manchen Ausführungsformen sind ein oder mehrere Netzwerkgeräte in der Netzwerkumgebung 100 so konfiguriert, dass sie dem Netzwerkanalysator 188 Messungen zur Verfügung stellen. Bei manchen Ausführungsformen sammelt ein eigens dafür verwendeter Netzwerkmonitor Messungen für eine oder mehrere der Messgrößen und stellt die Messungen dem Netzwerkanalysator 188 zur Verfügung. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 selbst eine oder mehrere der Messgrößen erfassen. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 sekundäre oder redundante Messquellen verwenden.
-
Bei manchen Ausführungsformen misst ein Latenzmonitor 322 eine oder mehrere Messgrößen für die Durchleitungsverzögerung, wie z.B. Latenz, Nachlauf, Zeit für die Übertragung in beiden Richtungen (RTT), Schwankungen in der Verzögerung von Paketen oder Pfadlänge (d.h. Anzahl der Hops). Bei manchen Ausführungsformen kann der Latenzmonitor 322 ein Testpaket (z.B. ein ICMP-Paket) an ein Ziel senden (z.B. einen Zugangsknoten 126 oder einen Randknoten 166 eines Drittnetzwerks) und misst Eigenschaften der Reaktion. Der Latenzmonitor 322 kann z.B. die Zeitdauer messen, die vom Absenden eines Testpakets bis zum Empfang einer Reaktion vergeht. Diese Zeitdauer wird auch als „Zeit für die Übertragung in beiden Richtungen“ (Round-Trip Time – RTT) bezeichnet. Bei manchen Ausführungsformen läuft der Datenverkehr über ein Netzwerkgerät, das der Latenzmonitor 322 ist oder diesen enthält. Der Latenzmonitor 322 kann den Datenverkehr über das Netzwerkgerät beobachten und Messungen für eine oder mehrere Latenzmessgrößen aufzeichnen. Bei manchen Ausführungsformen kann der Latenzmonitor 322 den Datenverkehr zwischen zwei Netzwerkknoten überwachen, z.B. einen Datenfluss zwischen Netzwerkknoten, aber nicht den Latenzmonitor 322 selbst. Der Datenverkehr kann z.B. von einem Host 150 im Servicenetz 118 stammen und für einen Endknoten 120 über ein Zugangsnetz 112 bestimmt sein. Bei manchen dieser Ausführungsformen beobachtet der Latenzmonitor 322 den verbindungsorientierten Datenverkehr und misst die Latenz oder die Round Trip Times. Verbindungsorientierte Kommunikationsprotokolle überprüfen die Übertragung von Paketen gewöhnlich mithilfe irgendeiner Form der Bestätigung, z.B. mit einem Bestätigungspaket. Der Latenzmonitor 322 beobachtet diesen Datenverkehr und misst die Zeit, die von dem Zeitpunkt ab vergeht, an dem die Daten gesendet werden, bis zu dem Zeitpunkt, zu dem sie bestätigt werden. Beispiele für verbindungsorientierte Transport-Layer-Protokolle sind u.a. das Transmission Control Protocol (TCP), das Stream Control Transmission Protocol (SCTP), das Datagram Congestion Control Protocol (DCCP), das Resource Reservation Protocol (RSVP), der Structured Stream Transport (SST), das Venturi Transport Protocol (VTP), das Connection Oriented Transport Protocol (COTP), oder das Xpress Transport Protocol (XTP). Dagegen ist das User Datagram Protocol (UDP) kein verbindungsorientiertes Protokoll, und das Internet Control Message Protocol (ICMP) ist kein Transport-Layer-Protokoll. Ein Latenzmonitor 322, der den Datenverkehr beobachtet, muss nicht notwendigerweise Testpakete verwenden. Bei manchen Ausführungsformen verwendet allerdings auch der Latenzmonitor 322 Testpakete als zweiten Satz Latenzmessungen. Bei manchen Ausführungsformen kann ein Teil des Netzwerks weniger oft Messungen unterworfen sein, als andere Teile des Netzwerks, z.B. kann der Teil ein Übertragungsnetz von Dritten sein, das keine Monitore für lokale Netzwerkmaßzahlen enthält. Bei manchen dieser Ausführungsformen verwendet der Netzwerkanalysator 188 Messungen von Datenflüssen über den nicht instrumentierten Teil des Netzwerks für die effektive Messung von Eigenschaften des Netzwerkteils. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 veranlassen, dass z.B. von dem Latenzmonitor 322 oder von einem Endgerät 120 über den nicht instrumentierten Teil des Netzwerks Testpakete gesendet werden. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 oder der Netzwerk-Controller 180 veranlassen, dass über den nicht instrumentierten Teil des Netzwerks Datenverkehr fließt. Der Netzwerkanalysator 188 erhält dann aktuelle Messungen auf der Basis der Eigenschaften und des Verhaltens des Datenverkehrs über den nicht instrumentierten Teil des Netzwerks.
-
Bei manchen Ausführungsformen misst der Latenzmonitor 322 die Latenz, indem er einen oder mehrere TCP-Flüsse überwacht. Ein TCP-Absender ordnet jedem Paket in einem TCP-Fluss eine laufende Nummer zu, und der entsprechende TCP-Empfänger reagiert darauf mit der Bestätigung der erhaltenen laufenden Nummer. Der Latenzmonitor 322 kann die Zeitdauer messen, die von dem Zeitpunkt vergeht, an dem ein TCP-Paket abgesendet wird, und dem Zeitpunkt, an dem der Empfänger den Empfang bestätigt, z.B. mithilfe einer Zustandsmaschine. Bei manchen Ausführungsformen des TCP-Protokolls bestätigt der Empfänger Pakete in Gruppen (d.h. der Absender kann mehrere Pakete übertragen, jedes mit eigener laufender Nummer, und der Empfänger kann einzelne Bestätigungen senden, in denen er den Empfang der Pakete bestätigt). Dementsprechend fällt die Zeitdauer von der Übertragung des ersten Pakets der Gruppe bis zur kollektiven Empfangsbestätigung länger aus als die Zeitdauer von der Übertragung des letzten Paketes der Gruppe bis zum Empfang der kollektiven Empfangsbestätigung. Bei manchen Ausführungsformen behandelt der Latenzmonitor 322 oder der Netzwerkanalysator 188 diese Ungenauigkeit, indem er lediglich Latenzmessungen verwendet, die mit dem letzten gesendeten Paket verbunden sind, das kollektiv bestätigt wird. Bei manchen Ausführungsformen behandelt der Latenzmonitor 322 oder der Netzwerkanalysator 188 diese Ungenauigkeit, indem er die Latenz für eine große Anzahl Pakete misst und die statistische tatsächliche Latenz rechnerisch nähert, z.B. als arithmetisches Mittel (Durchschnitt) der gemessenen Latenz. Bei manchen Ausführungsformen wird die Latenz über ein Zeitintervall mit einer bestimmten Größe gemessen. Die Größe des Zeitintervalls kann zwischen verschiedenen Monitoren und für verschiedene Netzwerkteile variieren. Bei manchen Ausführungsformen kann die Größe des Zeitintervalls über die Zeit variieren. Kürzere Intervalle können z.B. während Phasen mit hoher Netzwerknutzung verwendet werden, und längere Intervalle, wenn die Netzwerknutzung geringer geworden ist. Bei manchen Ausführungsformen werden die Latenzmessungen gekennzeichnet oder auf andere Weise mit einer Messzeit oder einem Messintervall verbunden. Bei manchen Ausführungsformen beginnt der Latenzmonitor 322 z.B. ein Messintervall zu einem ersten Zeitpunkt T1, erkennt eines oder mehrerer Pakete, die sich auf dem Weg zu einem Ziel befinden (z.B. als Teil eines Paketflusses, z.B. eines TCP-Flusses oder SCTP-Flusses), erkennt eine oder mehrere Reaktionen auf die erkannten Pakete, bestimmt die zwischen dem bekannten Transit auf dem Weg zum Ziel und der entsprechenden Reaktion verstrichene Zeit und aggregiert die verstrichenen Zeiträume für mehrere Transit-/Reaktionspaare, die sich vor dem Endpunkt T2 des Messintervalls ereignen. Die aggregierten gestrichenen Zeiträume sind ein Maß für die Latenz für das Zeitintervall, das bei T1 beginnt und bei T2 endet. Bei manchen Ausführungsformen ist die Aggregation ein gemittelter Durchschnitt der verstrichenen Zeit. Bei manchen Ausführungsformen ist die Aggregation ein Median der verstrichenen Zeit. Bei manchen Ausführungsformen ist die Aggregation ein gemittelter Durchschnitt einer Untermenge der verstrichenen Zeit, wobei die Untermenge gebildet wird, indem einer oder mehrere Ausreißer eliminiert werden. Bei manchen Ausführungsformen ist das Messzeitintervall der Latenz als Datentripel strukturiert, z.B. Anfangszeitpunkt (T1), Endzeitpunkt (T2) oder Intervalllänge (T2–T1) und Latenzmessung (d.h. die zusammengefasste verstrichene Zeit). Das Datentripel kann z.B. als {T1, T2, Latenz} aufgezeichnet werden. Bei manchen Ausführungsformen ist die Messung als 4-Tupel von Daten strukturiert, z.B. Anfangszeitpunkt (T1), Endzeitpunkt (T2) oder Intervalllänge (T2–T1), Latenzmessung (d.h. die zusammengefasste verstrichene Zeit) und einer Kennzeichnung für, oder in Verbindung mit, dem gemeinsamen Ziel der gemessenen Paketflüsse. Das 4-Tupel von Daten kann z.B. als {T1, T2–T1, Latenz, Ziel Id} aufgezeichnet werden. Das gemeinsame Ziel kann als IP-Adresse, als Block von IP-Adressen (z.B. mithilfe der Classless Inter-Domain Routings (CIDR) Notation) gekennzeichnet werden, als autonome Systemnummer (ASN) oder als irgendeine sonstige Bezeichnung für das gemeinsame Ziel.
-
Bei manchen Ausführungsformen können zwei oder mehr teilnehmende Geräte synchronisierte Uhren haben, die z.B. mithilfe des Netzwerk-Zeitprotokolls (Network Time Protocol – NTP) synchronisiert werden. Der Quellcache 152 im Servicenetz 118 kann sich z.B. mit dem Off-site-Cache 154 in einem Dritt-Übertragungsnetz 114 synchronisieren. Wenn Geräte synchronisiert werden, kann der Latenzmonitor 322 die Latenz messen, indem er Zeitstempelangaben untersucht, die in den Netzwerkdatenverkehr zwischen den synchronisierten Geräten eingebettet sind, und die Zeitdauer berechnen, die seit dem Absenden eines Paketes mit einem Zeitstempel vergangen ist.
-
Bei manchen Ausführungsformen misst ein Latenzmonitor 322 die Schwankung in der Verzögerung von Paketen, die ein Maß dafür ist, wie stark die Latenz im Lauf der Zeit schwankt. Dies ist auch als Übertragungsjitter bekannt. Eine Route mit vorwiegend geringer Latenz, die jedoch kurzfristig zu hoher Latenz neigt, mag insgesamt eine geringe durchschnittliche Latenz aufweisen, für latenzempfindlichen Datenverkehr aber trotzdem unerwünscht sein. Eine alternative Route mit etwas höherer durchschnittlicher aber eher gleichbleibender Latenz kann für latenzempfindlichen Datenverkehr eher attraktiv sein. Bei manchen Ausführungsformen berechnet der Netzwerkanalysator 188 Schwankungen in der Verzögerung von Paketen aus den vom Latenzmonitor 322 regelmäßig gemeldeten Latenzmessungen. Bei manchen Ausführungsformen passt der Latenzmonitor 322 die Präzision der Latenzmessungen in Zeiten mit hohem Übertragungsjitter an. Bei manchen Ausführungsformen kann die Größe eines Zeitintervalls zur Messung der Latenz z.B. als Funktion der Schwankungen in der Verzögerung von Paketen verwendet werden.
-
Bei manchen Ausführungsformen führt ein Fehlerdetektor 324 eine Fehlerstatistik. Der Fehlerdetektor kann z.B. Datenflüsse überwachen und Ereignisse erkennen, bei denen ein Paket verloren geht. Eine Anforderung, ein Paket erneut zu senden, oder das Senden eines doppelten Paketes, sind gute Hinweise darauf, dass ein Paket verloren gegangen ist. Verlorene Pakete stellen für ein Netzwerk eine besondere Belastung dar, da das verlorene Paket Netzwerkressourcen verbraucht hat, ohne jemals sein Ziel erreicht zu haben. Das erneute Senden stellt zusätzlichen Aufwand dar, bei dem das ursprünglich gesendete und verloren gegangene Paket erneut gesendet wird. Der zusätzliche Datenverkehr kann Bandbreite verschwenden und zur Überlastung des Netzwerks beitragen, ohne dass dies einen Wertbeitrag zur Kommunikation selbst leistet. Fehlermessungen helfen bei der Berechnung von Goodput, d.h. des Durchsatzes von Informationsinhalt, ohne den sonstigen Datenverkehr, wie z.B. Netzwerkkonfigurationsdaten, Protokollsteuerungsinformationen oder die wiederholte Übertragung verlorengegangener Pakete. D.h. Goodput ist ein Maß der tatsächlich erfolgreich übertragenen Nutzlastdaten. Die gesamte übrige Netzwerknutzung stellt effektiv die Verwaltungskosten für die Übertragung dieser Daten dar. Manche der Routen zwischen dem Servicenetz 118 und dem Zugangsnetz 112 verlaufen ggf. durch Übertragungsnetze 114, die für die Durchleitung Gebühren erheben. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 die Nutzlastübertragungskosten als Funktion des Goodputs über ein bestimmtes Übertragungsnetz berechnen, sowie die Übertragungskosten durch dieses Übertragungsnetz.
-
Bei manchen Ausführungsformen misst ein Bandbreitennutzungsmonitor 326 die Bandbreitennutzung, d.h. den Durchsatz und den Goodput. Bandbreitennutzung kann an einem beliebigen Netzwerkknoten gemessen werden, z.B. am Netzwerkgeräte 160 im Servicenetz 118. Netzwerkknoten am Rand eines autonomen Systemnetzwerks, z.B. die Randknoten 164, können den Durchsatz anhand der an ein benachbartes Netzwerk übertragenen Datenmenge messen, z.B. ein Übertragungsnetz 114. Bei manchen Ausführungsformen sammelt der Bandbreitenmonitor 326 Lastangaben von einem oder mehreren Randknoten 164 und leitet daraus Durchsatzinformationen ab. Bei manchen Ausführungsformen testet der Netzwerkanalysator 188 regelmäßig die Datenflüsse, die durch einen oder mehrere Netzwerkknoten fließen, um das Lastvolumen abzuschätzen. Der maximal gemessene Durchsatz ist letztlich ein Maß für die in diesem Netzwerk verfügbare Bandbreite. Bei manchen Ausführungsformen vergleicht der Netzwerkanalysator 188 den maximal gemessenen Durchsatz mit einer ausgelobten oder erwarteten Bandbreite für eine bestimmte Route. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 auf der Grundlage eines geringen maximalen Durchsatzes bestimmen, dass eine Route verglichen mit einer erwarteten Bandbreitenverfügbarkeit zu wenig ausgelastet ist. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 auf der Grundlage eines mit Hilfe einer Drop-in-Messung gemessenen Durchsatzes bestimmen, dass eine Route überlastet ist oder Fehlfunktionen hat.
-
Bei manchen Ausführungsformen schlägt ein Topologieanalysator 328 Routen zu Netzwerkknoten nach, die dann zur Konstruktion eines Modells des Netzwerks verwendet werden können. Bei manchen Ausführungsformen verwendet der Topologieanalysator 328 Traceroute-Pakete zur Ermittlung von Routen. Bei manchen Ausführungsformen beteiligt sich der Topologieanalysator 328 an einem Route-Broadcasting-Protokoll, wie z.B. dem Border Gateway Protocol (BGP). Der Topologieanalysator 328 kann Routen herausfinden, die durch solche Protokolle angezeigt werden. Bei manchen Ausführungsformen erhält der Topologieanalysator 328 BGP-Informationen von mehreren BGP-Teilnehmernetzwerkgeräten. Bei manchen Ausführungsformen erhält der Topologieanalysator 328 aktive Routing Information Base(RIB)-Daten von einem oder mehreren Netzwerkgeräten. Bei manchen Ausführungsformen wird der Topologieanalysator 328 durch entfernte Anwendungen unterstützt, die Traceroute-Routinen von verschiedenen Ausgangspunkten im Netzwerk anwenden. Der Off-site-Cache 154 kann z.B. so konfiguriert werden, dass er Traceroutes zum Servicenetz 118 anwendet und die Routen an den Topologieanalysator 328 meldet. Da manche Netzwerkgeräte nur auf Traceroute-Pakete reagieren, die aus demselben autonomen System stammen, kann die Programmverfolgung (Trace), die von dem Off-site-Cache 154 im Übertragungsnetz 114 durchgeführt wird, andere Ergebnisse erbringen, als eine Programmverfolgung, die von innerhalb des Servicenetzes 118 aus durchgeführt wird. Bei manchen Ausführungsformen können die Endgeräte 120 in ähnlicher Weise eine Traceroute zum Servicenetz 118 ausführen und die Routen an den Topologieanalysator 328 melden. Bei manchen Ausführungsformen kann der Off-site-Cache 154 eine Traceroute zu den Zugangsknoten 126 ausführen. Jede Traceroute liefert perspektivische Angaben, die dann an den Topologieanalysator 328 weitergeleitet werden. Bei manchen Ausführungsformen verwendet der Topologieanalysator 328 eine Datenbank der Netzwerkadressblöcke in Verbindung mit geografischen Ortsangaben, um Netzwerkadressen mit geografischen Orten zu verbinden. Bei manchen Ausführungsformen verwendet der Topologieanalysator 328 den geografischen Ort zur Überprüfung anderer Netzwerktopologieangaben.
-
Bei manchen Ausführungsformen erzeugt der Topologieanalysator 328 ein Netzwerkmodell. Bei manchen dieser Ausführungsformen erstellt der Topologieanalysator 328 einen grafischen Netzwerkdatensatz, worin jeder Knoten im Graphen im Datensatz ein entsprechendes autonomes System darstellt und jede Kante im Graphen im Datensatz eine Verbindung oder ein Peering zwischen zwei autonomen Systemen darstellt. Ein Knoten im Graphen ist ein Dienstknoten, der das Servicenetz 118 darstellt. Der Topologieanalysator 328 erkennt Kanten im Graphen zum Dienstknoten und erstellt zu jedem Peerknoten Kommentare mit den gemessenen Eigenschaften und ggf. dem geografischen Ort. Der grafische Datensatz wird dann vom Dienstknoten beginnend nach außen erweitert. Wenn in einem autonomen System eine Messbasis (wie z.B. ein Off-site-Cache 154) vorhanden ist, abgesehen vom Servicenetz 118, so erstellt der Topologieanalysator 328 mithilfe der Informationen aus der Messbasis Kommentare und erweitert den grafischen Datensatz vom Knoten im Graphen aus, der das entsprechende autonome System darstellt, in dem die Messbasis gehostet wird.
-
Bei manchen Ausführungsformen sind mehrere Latenzmonitore 322, Fehlerdetektoren 324, Bandbreitennutzungsmonitore 326 bzw. Topologieanalysatoren 328 über die gesamte Netzwerkumgebung 100 verteilt. Sie können sich z.B. an verschiedenen Orten im Servicenetz 118 befinden. Bei manchen Ausführungsformen können die Nutzer der Endgeräte 120 vereinbaren, Software zu installieren, die Messungen an den Endgeräten 120 vornimmt. Bei manchen Ausführungsformen können die Übertragungsnetze 114 Dritter Latenzmonitore 322, Fehlerdetektoren 324, Bandbreitennutzungsmonitore 326 oder Topologieanalysatoren 328 beinhalten. Der in 1 gezeigte Off-site-Cache 154 kann z.B. Messmodule für die Netzwerkleistung beinhalten. Bezugnehmend auf 3 meldet jeder Latenzmonitor 322, Fehlerdetektor 324, Bandbreitennutzungsmonitor 326 und Topologieanalysator 328 in der Phase 220 Daten an den Netzwerkanalysator 188.
-
In der Phase 240 verarbeitet der Netzwerkanalysator 188 die gesammelten Daten. Die Verarbeitung kann in der Bereinigung 342, Überprüfung 344 und Aggregation 346 der Daten bestehen. Die Daten werden im Datenspeicher 374 aufgezeichnet. Dies anonymisiert die Messungen letztlich, entfernt Ausreißer und aggregiert die Daten aus mehreren Quellen oder Monitoren für die Netzwerkmaßzahlen zu einer einheitlichen Darstellung der Netzwerkleistung. Die in der Phase 220 erhobenen und in der Phase 240 verarbeiteten Daten werden im Speicher 374 festgehalten.
-
Geeignete Datenspeichergeräte zur Speicherung 374 sind u.a. flüchtige oder nicht flüchtige Speicher, Netzwerkspeicher und Storage Area Networks. Ein Datenspeichergerät kann eines oder mehrere Massenspeichergeräte enthalten, die sich an einem einzigen oder verteilt über verschiedene Orte befinden können. Für die Datenspeicherung geeignete Geräte sind u.a. Halbleiterspeichergeräte, wie z.B. EPROM, EEPROM, SDRAM und Flash-Speicher-Geräte. Für die Datenspeicherung geeignete Geräte sind u.a. Magnetplatten, z.B. interne Festplatten oder auswechselbare Platten, magneto-optische Platten und CD-ROM, DVD-ROM- und Blu-Ray®-Plattenlaufwerke. Die Datenspeichergeräte können virtualisiert sein. Auf die Datenspeichergeräte kann über einen Vermittlungsserver bzw. über ein Netzwerk zugegriffen werden. Datenspeichergeräte können die Daten als eine Sammlung von Dateien, Datenblöcken oder Brocken strukturieren. Datenspeichergeräte können für die Wiederherstellung nach Fehlern sorgen, z.B. mithilfe redundanter Speicherung bzw. mithilfe von Daten zur Wiederherstellung nach Fehlern (z.B. Paritätsbits). Der Speicher 374 kann eine Datenbank hosten, z.B. eine relationale Datenbank. Bei manchen Ausführungsformen werden die Daten als Einträge in einer oder mehreren Datenbankentabellen in einer Datenbank im Datenspeicher 374 gespeichert. Bei manchen dieser Ausführungsformen wird mithilfe einer Abfragesprache, z.B. SQL, auf die Daten zugegriffen. Der Speicher 374 kann ein Dateiablagesystem hosten. Daten können als Knowledge-Base strukturiert gespeichert werden. Daten können in verschlüsselter Form gespeichert werden. Der Zugriff auf gespeicherte Daten kann durch eines oder mehrere Authentifizierungssysteme beschränkt werden.
-
Immer noch bezogen auf die Phase 240, bereinigt 342, überprüft 344 und aggregiert 346 der Netzwerkanalysator 188 die in der Phase 220 gesammelten und gespeicherten 374 Daten. Zur Bereinigung 342 der Daten gehört deren Konvertierung von dem jeweiligen Quellformat, unter Entfernung externer Informationen, Filterung, Normierung und Strukturierung zur Verwendung in Kombination mit Daten aus anderen Quellen. Der Netzwerkanalysator 188 kann z.B. Netzwerktopologieinformationen von mehreren Topologieanalysatoren 328 empfangen, die für die Topologieerfassung andere Strategien verwenden. Der Netzwerkanalysator 188 normiert die empfangenen Informationen und kombiniert sie, um ein umfassenderes Netzwerktopologiemodell zu bilden. Ebenso kann der Netzwerkanalysator 188 Angaben zur Latenz und zu Schwankungen in der Verzögerung von Paketen von Monitoren für die Netzwerkmaßzahlen verschiedenen Typs erhalten, z.B. Latenzmonitoren 322, Fehlerdetektoren 324 und Bandbreitennutzungsmonitoren 326. Der Netzwerkanalysator 188 normiert die aus verschiedenen Quellen empfangenen Informationen und strukturiert sie für die Verwendung in der Latenzanalyse.
-
Zur Überprüfung 344 gehört die Entfernung statistischer Ausreißer. Bei manchen Ausführungsformen erzeugt der Netzwerkanalysator 188 z.B. eine Wahrscheinlichkeitsverteilungsfunktion einer bestimmten Netzwerkkenngröße (z.B. der Latenz) und ermittelt, ob Messungen für eine Route anormale Ergebnisse enthalten, die als Ausreißer zu verwerfen sind. Bei manchen Ausführungsformen fasst der Netzwerkanalysator 188 Messungen zusammen und entfernt Messungen, die nicht mit ausreichend großer Wahrscheinlichkeit zu einem bestimmten Cluster gehören, z.B. weil die Messung unterhalb irgendeiner Schwelle liegt, so dass sie aus dem jeweiligen Cluster ausgeschlossen wird. Bei manchen Ausführungsformen gruppiert der Netzwerkanalysator 188 Messungen in Messzeitfenstern und ermittelt die oberen und unteren Quartile. Der Netzwerkanalysator 188 berechnet dann die Gültigkeitsgrenzen auf der Basis des Bereichs zwischen den Quartilen (Inter Quartile Range (IQR)) und klassifiziert Messungen außerhalb der Gültigkeitsgrenzen als Ausreißer. Bei manchen Ausführungsformen wendet der Netzwerkanalysator 188 eine Gewichtung oder einen Multiplikator auf die Messungen an, so dass Messungen, die vertrauenswürdiger sind oder die mit größerer Wahrscheinlichkeit stimmen, ein größeres Gewicht erhalten, als andere, weniger zuverlässige Messungen. Bei manchen Ausführungsformen validiert der Netzwerkanalysator 188 Messungen über mehrere Messquellen oder Messtechniken hinweg. Hat der Netzwerkanalysator 188 z.B. für eine bestimmte route Latenzmessungen sowohl aus Quellen mit als auch ohne Testpakete, kann der Netzwerkanalysator 188 die beiden Datensätze kombinieren und die Messungen im kombinierten Datensatz validieren. Bei manchen Ausführungsformen verfügt der Netzwerkanalysator 188 über Vorhersagen der erwarteten Messbereiche. Messungen, die außerhalb der Vorhersage liegen, können ungültig sein. Der Netzwerkanalysator 188 kann z.B. über Informationen verfügen, die eine ausgelobte Bandbreite angeben, die entlang einer bestimmten Route verfügbar ist. Wenn der Netzwerkanalysator 188 Durchsatzinformationen empfängt, die entgegen den Erwartungen höher sind als die ausgelobte Bandbreite, so kann der Netzwerkanalysator 188 bestimmen, dass entweder die ausgelobte Bandbreiteangaben oder die Durchsatzinformationen falsch waren. Bei manchen Ausführungsformen überprüft der Netzwerkanalysator 188 Informationen im Vergleich zu historischen Trends aus früheren Messungen.
-
Der Netzwerkanalysator 188 aggregiert auch die Daten 346. Der Netzwerkanalysator 188 sammelt Messungen aus mehreren Quellen und Netzwerkausgangspunkten sowie Messungen, die mithilfe einer Vielzahl verschiedener Messstrategien durchgeführt wurden. Die Datenaggregation 346 erlaubt es dem Netzwerkanalysator 188 auch, zum Zweck der Routenanalyse ganze autonome Systeme als eine einzelne Verbindung zu behandeln. D.h. sogar obwohl es zwischen einem (a) Eingangsknoten eines Übertragungsnetzes 114 (z.B. einem Servicenetzrandknoten 164) und einem (a) Ausgangsknoten eines Übertragungsnetzes 114 (z.B. einem Zugangsnetzrandknoten 166) mehrere Routen geben kann, kann der Netzwerkanalysator 188 alle Messungen für alle Routen durch das Übertragungsnetz 114 (a) zwischen den Eingangs- und Ausgangsknoten aggregieren. Der Netzwerkanalysator 188 kann dann das Übertragungsnetz 114 (a) als einzelne Verbindung zwischen den Knoten behandeln, mit Eigenschaften, die von den aggregierten Messungen beschrieben werden. Der Netzwerkanalysator 188 und der Controller 180 haben nicht notwendigerweise die Kontrolle über die Routen durch das Übertragungsnetz 114 (a) selbst, können aber wählen, ob sie das Übertragungsnetz 114 (a) benutzen wollen oder nicht. Die aggregierten Daten sind nützlich zur Beschreibung des im Ganzen wahrscheinlichen Schicksals beliebiger Daten, die durch das Übertragungsnetz 114 (a) geleitet werden, und somit sind sie hilfreich bei der Entscheidung, ob das Übertragungsnetz 114 (a) für eine Route verwendet werden soll. Bei manchen Ausführungsformen gruppiert der Netzwerkanalysator 188 Messungen für die mit dem gemessenen Datenverkehr verbundenen Netzwerkadressen. Bei manchen Ausführungsformen werden z.B. Messungen für alle Pakete mit Ziel in einem bestimmten Adressbereich (z.B. einem Classless Inter-Domain Routing(CIDR)-Adressbereich) zusammengefasst.
-
In der Phase 260 erzeugt der Netzwerkanalysator 188 ein Netzwerktopologiemodell und analysiert die verarbeiteten Daten für die Zuordnung einer oder mehrerer Qualitätsbewertungen zu Teilen des Netzwerktopologiemodells auf der Basis der verarbeiteten Daten. Bei manchen Ausführungsformen verwendet der Netzwerkanalysator 188 z.B. den Datensatz aus dem Netzwerkgraphen vom Topologieanalysator 328 als Netzwerkmodell. Bei manchen Ausführungsformen kombiniert der Netzwerkanalysator 188 mehrere Datensätze aus den Netzwerkgraphen von mehreren Topologieanalysatoren 328. Bei manchen Ausführungsformen verändert oder verfeinert der Netzwerkanalysator 188 einen Datensatz aus dem Netzwerkgraphen mit zusätzlichen Informationen, die dem Netzwerkanalysator 188 zur Verfügung stehen. Bei manchen Ausführungsformen kann das Netzwerktopologiemodell zwischen verschiedenen Eingangs- oder Ausgangsknoten für ein Netzwerk als autonomes System (AS) unterscheiden, z.B. auf der Grundlage eines geografischen Standortes, von Verbindungseigenschaften (z.B. wird die Verbindung durch Austausch mit Dritten oder durch ein von mehreren AS gleichzeitig gesteuertes Netzwerkgerät vermittelt) usw. Bei manchen Ausführungsformen enthält das Netzwerktopologiemodell Angaben (z.B. Netzwerkadresse, Machine Access Control(MAC)-Adresse, Portnummern, Namen der Zulieferer, die Namen der AS-Steuereinheiten usw.) für jeden AS-Eingang oder Ausgang.
-
Bei manchen Ausführungsformen führt der Netzwerkanalysator 188 in der Phase 260 weitere Anomalieerkennungen 362 an den aggregierten Daten durch. Eine zusätzliche Überprüfung anhand der aggregierten Daten kann sich von der Überprüfung der Einzelmessungen oder der Clustermessungen unterscheiden. Bei manchen Ausführungsformen verwendet der Netzwerkanalysator 188 Rechenmodelle um zu untersuchen, was die aggregierten Messungen über das Netzwerk aussagen. Diese Analyse 366 kann Szenariosimulationen beinhalten (z.B. zur Erkennung der Auswirkungen, die die Hinzufügung von Lasten auf verschiedene Routen oder die Verlagerung einer Last von einer Route zu einer anderen haben). Bei manchen Ausführungsformen wendet der Netzwerkanalysator 188 hypothetische Bedingungen auf die Daten an, und die Analyse 366 ermöglicht es, festzustellen, wie das Netzwerk mit diesen hypothetischen Bedingungen umgehen würde. Der Netzwerkanalysator 188 kann z.B. testen, wie das Netzwerk mit einem höheren Datenverkehr zu verschiedenen Tageszeiten umgehen würde. Bei manchen Ausführungsformen extrapoliert der Netzwerkanalysator 188 Trends und erzeugt Voraussagen dazu, wie das Netzwerk aussehen wird, wenn sich diese Trends fortsetzen.
-
Der Netzwerkanalysator 188 kann die mit jedem autonomen System (AS) Netzwerk als Ganzes verbundene Latenz zahlenmäßig angeben. Hierfür zieht der Netzwerkanalysator 188 Datenverkehrsvolumen ab, das durch jeden der Servicenetz-Randknoten 164 für Paare aus Quellenknoten und den dazugehörigen Ziel-AS läuft (z.B. nach Ziel-IP-Adressblock oder Subnetz). Der Datenverkehr läuft vom Servicenetz 118 zu einem „nächsten Netzwerk” AS. Auf der Basis des vom Topologieanalysator 328 erzeugten Netzwerkmodells ermittelt der Netzwerkanalysator 188 Pfade für den gemessenen Datenverkehr und erkennt Austrittspunkte aus dem nächsten Netzwerk AS. Der Netzwerkanalysator 188 verwendet Messungen der Zeit für die Übertragung in beiden Richtungen für die entsprechenden Pfade zum Ziel-IP-Adressblock oder Subnetz bzw. zu sonstigen Netzwerkadressen am selben geografischen Ort (oder Stadtgebiet). Der Netzwerkanalysator 188 verwendet diese Informationen zur Vorhersage der AS-Pfade zu den Endgeräten 120 für den gemessenen Datenverkehr und misst die Latenz für die vorhergesagten Pfade. Messungen können für verschiedene Netzwerkblöcke mit unterschiedlicher Zeitgranularität durchgeführt werden (z.B. für verschiedene Unternetze, für verschiedene AS-Netzwerke oder verschiedene AS-Segmente, d.h. Teile eines AS-Netzwerks, die von einem Pfad durchquert werden) entlang den vorhergesagten Pfaden. D.h. die Messdauer für ein erstes AS-Netzwerk entlang einem vorhergesagten Pfad kann sich von der Messdauer für ein zweites AS-Netzwerk den gleichen vorhergesagten Pfad entlang unterscheiden.
-
Bei manchen Ausführungsformen modelliert der Netzwerkanalysator 188 eine lineare Beziehung zwischen den AS-Pfaden und der mit den jeweiligen AS-Netzwerken im Pfad oder in Alternativpfaden in derselben geografischen Region verbundenen Latenz. Die Latenz des AS-Pfades ist die Summe der Latenzen für jedes einzelne AS-Netzwerk in dem Pfad. Wenn ausreichend viele Messungen der Latenz entlang mehrerer überlappender AS-Pfade vorliegen, kann der Netzwerkanalysator 188 ein lineares Modell aufstellen oder einen Satz lineare Gleichungen und diese für eine geschätzte Latenz (oder einen Latenzbereich) lösen, die mit einem einzelnen AS-Netzwerk in den verschiedenen Pfaden verbunden ist. Bei manchen Ausführungsformen kann der Netzwerkanalysator 188 die Methode der kleinsten Quadrate oder die Methode der gewichteten kleinsten Quadrate anwenden, um die Latenz eines AS-Pfades oder eines Netzwerksegments abzuschätzen. Bei manchen Ausführungsformen, wenn ein Messwert für ein Netzwerksegment entlang einem möglichen Pfad fehlt, nähert oder schätzt der Netzwerkanalysator 188 den fehlenden Wert. Wo z.B. ein Messwert für die Latenz zwischen zwei Netzwerkknoten fehlt, verwendet der Netzwerkanalysator 188 einen Wert, der sich zur geografischen Distanz zwischen den beiden Knoten proportional verhält. Eine größere geografische Distanz führt natürlich zu einer größeren Latenz. Bei manchen Ausführungsformen basiert der Wert auf Trends für ähnliche Netzwerke, z.B. andere Netzwerkknoten, die durch eine ähnliche geografische Distanz getrennt sind. Bei manchen Ausführungsformen, wenn ein Messwert für ein Netzwerksegment entlang einem möglichen Pfad fehlt, lässt der Netzwerk-Controller 180 einen gewissen Datenverkehr durch das Netzwerksegment routen, und der Netzwerkanalysator 188 bekommt Messungen von diesem Datenverkehr. Bei manchen Ausführungsformen verwendet der Netzwerkanalysator 188 die mit einzelnen Netzwerksegmenten verbundenen Messungen und Ableitungen zum Schätzen oder Ableiten von Messwerten für Netzwerkpfade durch mehrere Segmente hindurch. Der Netzwerkanalysator 188 kann z.B. Messungen für Netzwerksegmente in einem Pfad von einem Host 150 durch ein Übertragungsnetz 114 (b) zu einem Off-site-Cache 154 in einem Übertragungsnetz 114 (c) vornehmen, sowie Messungen für Netzwerksegmente in einem Pfad vom Off-site-Cache 154 zu einem Zugangsknoten 126 für Endgeräte 120 in einem Zugangsnetz 112. Der Netzwerkanalysator 188 verwendet die Messwerte dann für Segmente in diesen beiden Pfaden zur Ableitung von Messwerten für einen Pfad vom Host 150 über das Übertragungsnetz 114 (b) zum Zugangsknoten 126 für die Endgeräte 120. Messungen und Ableitungen für bestimmte Netzwerksegmente können dann dazu verwendet werden, Netzwerkentscheidungen für andere mögliche Pfade zu treffen, die das jeweilige Netzwerksegment durchqueren. Wenn z.B. der Netzwerkanalysator 188 bestimmt, dass das Übertragungsnetz 114 (b) überlastet ist, können Datenflüsse vom Host 150 zu den Endgeräten 120 an den Zugangsknoten 126 durch einen alternativen Pfad geleitet werden, z.B. durch einen, der durch das Übertragungsnetz 114 (a) führt. Bei manchen Ausführungsformen verwendet der Netzwerkanalysator 188 einen oder mehrere Graphen mit Kommentaren, um diejenigen Netzwerksegmente anzugeben, die mehreren Pfaden gemeinsam sind. Bei manchen Ausführungsformen pflegt der Netzwerkanalysator 188 Sätze von Daten aus dem Graphen mit Messkommentaren für eine oder mehrere Netzwerkmaßzahlen oder Eigenschaften.
-
Bei manchen Ausführungsformen modelliert der Netzwerkanalysator 188 Routen, die Datenflüsse von außerhalb des Servicenetzes 118 nehmen, z.B. in einem Zugangsnetz 112. Ein Endgerät 120 kann z.B. Daten an einen Host 150 zur Speicherung, Verarbeitung oder Weitergabe hochladen. Diese eingehenden Datenströme können mehrere verschiedene Routen nehmen, abhängig davon, welche Route ihnen das Zugangsnetz 112 zuweist. Der Datenverkehr aus demselben Zugangsnetz 112 kann im Servicenetz 118 an mehreren verschiedenen Randknoten 164 eintreffen. Daten zur Erkennung der Netzwerktopologie und an Knoten erzeugte Netzwerkmessdaten, die außerhalb des Servicenetzes 118 liegen, z.B. an Off-site-Cache 154 Knoten oder Endgerät- 120 Knoten, bietet einen nützlichen Ausgangspunkt zur Erkennung und Messung der Routen, die Datenflüsse von außerhalb nehmen können. Die externe Perspektive dieser externen Knoten ahmt diese externen Quellen nach.
-
In der Phase 280 erzeugt der Netzwerkanalysator 188 anhand des Modells und der Qualitätsbewertungen hilfreiche Daten. Der Netzwerkanalysator 188 kann z.B. Berichte erzeugen, Vorzugsrouten für den Controller 180 angeben, vorteilhafte Standorte für zusätzliche Off-site-Caches angeben oder sogar bei der Bewertung von Peering-Möglichkeiten helfen.
-
Bei manchen Ausführungsformen vergleicht der Netzwerkanalysator 188 aktuelle Messungen und Modellinformationen mit historischen Messungen und Modellen, die im Speicher 374 gespeichert sind. Der Vergleich kann Trends, Durchschnittswerte, Abweichungen (z.B. Berechnungen der Standardabweichung) usw. beinhalten. Bei manchen Ausführungsformen, wenn der Netzwerkanalysator 188 eine Anomalie feststellt, z.B. eine plötzliche Spitze in der Latenz oder einen Abfall im Durchsatz, so erzeugt der Netzwerkanalysator 188 eine Alarmbedingung. Die Latenz kann z.B. zu bestimmten Tageszeiten aufgrund von Verhaltensmustern der Benutzer höher oder niedriger sein (z.B. kann die Aktivität an einem bestimmten Netzwerksegment in einer geografischen Region nachts, wenn die meisten Menschen in der jeweiligen geografischen Region schlafen, geringer sein); wenn der Netzwerkanalysator 188 unerwartet eine höhere Latenz misst (z.B. spät nachts), so kann dies eine Anomalie darstellen. Die Anomalie könnte auf eine Netzwerkfehlfunktion hinweisen oder irgendein Ausnahmeereignis, wie z.B. einen feindlichen Denial-of-Service-Angriff. Bei manchen Ausführungsformen wird die Alarmbedingung per E-Mail, SMS-Textnachricht, automatisierten Telefonanruf, Instant Message und irgendein sonstiges für die Kommunikation im Notfall verfügbares Medium an einen oder mehrere Systembetreiber gemeldet.
-
Bei manchen Ausführungsformen führt der Netzwerkanalysator 188 Simulationen durch, um die Auswirkungen geplanter Veränderungen an verschiedenen Datenflüssen vorhersagen zu können. Bei manchen Ausführungsformen führt der Netzwerkanalysator 188 Simulationen durch, um zu ermitteln, ob es für eingehenden bzw. abgehenden Datenverkehr Pfade mit geringerer Latenz gibt und um ggf. Pfade mit geringerer Latenz zu ermitteln. Bei manchen Ausführungsformen führt der Netzwerkanalysator 188 Simulationen durch, um zu ermitteln, ob irgendwelche periodischen Netzwerkbedingungen mit anderen vorübergehenden Ereignissen zusammenfallen. Bei manchen Ausführungsformen führt der Netzwerkanalysator 188 Simulationen durch, um zu ermitteln, ob die Hinzufügung eines hypothetischen Links oder Peers die Leistung verbessern würde. Bei manchen Ausführungsformen erkennt der Netzwerkanalysator 188 eine ungewöhnliche Änderung der Leistung für ein AS-Netzwerk und ermittelt entsprechende Änderungen der Netzwerktopologie im Umfeld des AS-Netzwerks. Diese Informationen werden dann dafür verwendet, zu erkennen, ob die anormale Bedingung von der Änderung einer Peering-Beziehung, einer Zunahme (oder Abnahme) der Bandbreitenausnutzung des AS von einem lokalen Dienst oder einer Zunahme (oder Abnahme) der Bandbreitenausnutzung des AS durch einen Drittdienst verursacht wird.
-
4 ist ein Fließdiagramm, das eine Beispielmethode 400 für die Auswahl einer Route auf der Grundlage einer Netzwerksanalyse mehrerer Drittnetzwerke veranschaulicht. Im groben Überblick der Methode 400 empfängt ein Netzwerkanalysator 188 in der Phase 410 Angaben zur Bewertung des Netzwerks von mehreren Monitoren für die Netzwerkmaßzahlen, die sich in verschiedenen autonomen Systemnetzwerken befinden. In der Phase 420 aggregiert der Netzwerkanalysator 188 die empfangenen Angaben zur Bewertung des Netzwerks. In der Phase 430 analysiert der Netzwerkanalysator 188 mehrere mögliche Routen von einem ersten autonomen Systemnetzwerk an einen Knoten in einem zweiten autonomen Systemnetzwerk. Dann, in der Phase 440, wählt der Netzwerkanalysator 188 oder ein Netzwerk-Controller 180 auf der Basis der Analyse eine oder mehrere der möglichen Routen aus und setzt in der Phase 450 eine Routing-Richtlinie für den Datenverkehr vom ersten Netzwerk durch den Knoten im zweiten Netzwerk mithilfe der ausgewählten Route fest.
-
Eingehender bezugnehmend auf 4 empfängt in der Phase 410 der Methode 400 ein Netzwerkanalysator 188 Angaben zur Bewertung des Netzwerks von mehreren Monitoren für die Netzwerkmaßzahlen, die sich in verschiedenen Netzwerken als autonome Systeme (AS) befinden, z.B. im Zugangsnetz 112 oder in den Übertragungsnetzen 114. Der Netzwerkanalysator 188 verwendet diese Informationen zur Ermittlung und Charakterisierung von Routen zwischen einem ersten Netzwerk und einem zweiten Netzwerk. Die Routen können zusätzlich zum ersten und zweiten Netzwerk eines oder mehrere „Zwischen-”Netzwerke beinhalten. Diese Vermittlungsnetzwerke können z.B. die Zugangsnetze 112 oder die Übertragungsnetze 114 sein.
-
In der Phase 420 aggregiert der Netzwerkanalysator 188 die empfangenen Angaben zur Bewertung des Netzwerks, wie oben unter Bezugnahme auf 3 beschrieben. Der Netzwerkanalysator 188 konstruiert einen Datensatz aus dem Netzwerkgraphen, wobei jeder Knoten im Graphen im Datensatz eine entsprechende Routing Domain oder ein autonomes System darstellt, und jede Kante im Graphen im Datensatz die Verbindung oder das Peering zwischen zwei Routing Domains oder autonomen Systemen. Der Netzwerkanalysator 188 erstellt Kommentare zu den Daten aus dem Netzwerkgraphen mit aggregierten Angaben zu den gemessenen Kenngrößen. Bei manchen Ausführungsformen beinhalten diese Kommentare geografische Daten für ein autonomes System, z.B. einen Gerichtsbezirk oder ein Stadtgebiet für das autonome Systemnetzwerk. Bei manchen Ausführungsformen beinhalten die Kommentare geografische Daten für Knoten, z.B. Gatewayknoten, in autonomen Systemen, z.B. eine Adresse oder ein Paar aus Breitengrad und Längengrad für eine Peering-Point-Anlage. Der Datensatz mit den Kommentaren beschreibt die Topologie und die Eigenschaften von Netzwerkpfaden zwischen einem ersten Netzwerk (z.B. dem Servicenetz 118) und einem zweiten Netzwerk (z.B. dem Zugangsnetz 112), wobei die Netzwerkpfade ein oder mehrere vermittelnde Übertragungsnetze 114 überqueren, die von Dritten als autonome Systeme gesteuert werden.
-
In der Phase 430 analysiert der Netzwerkanalysator 188 mehrere mögliche Routen von einem ersten Netzwerk als autonomes System zu einem Knoten in einem zweiten Netzwerk als autonomes System. Bei manchen Ausführungsformen ermittelt der Netzwerkanalysator 188 auf der Basis der aggregierten Informationen eine oder mehrere Routen vom ersten Netzwerk zum Knoten im dritten Netzwerk, von denen jede einen Satz von Kriterien erfüllt. Bei manchen Ausführungsformen sind dies Kriterien für die End-to-End-Latenz unterhalb einer Latenzschwelle und die Zuverlässigkeit oberhalb einer Zuverlässigkeitsschwelle. Bei manchen Ausführungsformen ist die Zuverlässigkeit z.B. eine Funktion der Stabilität, der Schwankungen in der Verzögerung von Paketen und der Häufigkeit, dass Daten erneut gesendet werden müssen. Bei manchen Ausführungsformen wendet der Netzwerkanalysator 188 auf jeden Knoten im Datensatz aus dem Netzwerkgraphen Punktzahlen an, wobei die Punktzahlen darstellen, wie attraktiv oder kostspielig die Übertragung der Daten durch das jeweilige Netzwerk ist. Mithilfe dieser Punktzahlen als Gewichtung ermittelt der Netzwerkanalysator 188 den kostengünstigsten Pfad durch den Graphen, der das erste Netzwerk mit einem Knoten im zweiten Netzwerk verbindet. Dieser Pfad stellt einen attraktiven Pfad dar. Bei manchen Ausführungsformen ermittelt der Netzwerkanalysator 188 mehrere attraktive Pfade zum Knoten bzw. zu den Netzwerkgeräten, die nur durch den Knoten zu erreichen sind. Es können mehrere Pfade verwendet werden, z.B. Equal Cost Multi-Path („ECMP“) oder Weighted Cost Multi-Path („WCMP“) Routing. Bei manchen Ausführungsformen erzeugt der Netzwerkanalysator 188 die Punktzahlen mithilfe spezieller Funktionen für die Datenverkehrsklasse. D.h. es kann eine erste Punktzahl geben, die angibt, wie attraktiv ein Pfad für eine erste Datenverkehrsklasse ist, und eine zweite, andere Punktzahl, die angibt, wie attraktiv ein Pfad für eine zweite Datenverkehrsklasse ist. Bei manchen Ausführungsformen kann der Datenverkehr z.B. als entweder „latenzempfindlich“ oder „verzögerungstolerant“ klassifiziert werden. Ein Beispiel für einen latenzempfindlichen Datenverkehr ist ein Datenverkehr für die Audio- bzw. Videokommunikation zwischen Personen, wo eine merkliche Verzögerung durch eine hohe Latenz die Kommunikation stört. Ein Beispiel für verzögerungstoleranten Datenverkehr ist E-Mail, wo einige zusätzliche Minuten für die Übertragung dem Benutzer gewöhnlich nicht auffallen. Dementsprechend erzeugt der Netzwerkanalysator 188 bei manchen dieser Ausführungsformen eine erste Punktzahl zur Verwendung für latenzempfindlichen Datenverkehr (z.B. kann die Punktzahl eine geringe Latenz und Goodput als wichtiger angeben als die Kosten), und eine zweite Punktzahl zur Verwendung für verzögerungstoleranten Datenverkehr (z.B. kann die Punktzahl geringe Übertragungskosten als wichtiger angeben als Latenz oder Durchsatz). Bei manchen Ausführungsformen werden mehr als zwei Datenverkehrsklassen verwendet. In manchen Fällen mag der Datenverkehr z.B. eine gewisse Latenz tolerieren können, eine hohe Schwankungsbreite in der Verzögerung von Paketen jedoch nicht (z.B. in manchen Fällen das Streaming von Medien). Andererseits mag in manchen Fällen der Datenverkehr unempfindlich gegenüber der Latenz sein, aber keine hohen Ausfallraten vertragen (z.B. kann der Dateitransfer langsam sein, aber jedes verlorene Paket muss erneut gesendet werden). Schließlich mag in manchen Fällen der Datenverkehr empfindlich gegenüber der Latenz sein, gewisse Ausfallraten jedoch tolerieren können (z.B. können manche Arten von Voice-over-Internet Protocol (VoIP) mit gelegentlichen Verlusten oder Verspätungen von Paketen umgehen, solange genügend Pakete schnell genug ankommen, damit die Stimme ausreichend gut klingt und sich die wahrnehmbare Übertragungsverzögerung auf ein Minimum beschränkt). Bei manchen Ausführungsformen erzeugt der Netzwerkanalysator 188 die für jede Datenverkehrsklasse maßgeschneiderten Punktzahlen. Bei manchen Ausführungsformen erzeugt der Netzwerkanalysator 188 eine Matrix mit den Punktzahlen und Datenverkehrsklassen.
-
In der Phase 440 wählt der Netzwerkanalysator 188, oder ein Netzwerk-Controller 180, aus den möglichen Routen auf der Basis der Analyse eine Route aus und setzt in der Phase 450 eine Routing-Richtlinie für den Datenverkehr vom ersten Netzwerk über den Knoten im zweiten Netzwerk mithilfe der ausgewählten Route fest. Bei manchen Ausführungsformen kann der Netzwerk-Controller 180 z.B. den gesamten Datenverkehr zum Knoten veranlassen, über ein Randgerät zu laufen, das die Verbindung zum nächsten AS-Netzwerk entlang der Vorzugsroute herstellt. Bei manchen Ausführungsformen veröffentlicht der Netzwerk-Controller 180 Leitwegtabellen oder RIBs zu Netzwerkgeräten im Servicenetz 118, um die Routing-Richtlinie zu bewirken. Bei manchen Ausführungsformen ist das Servicenetz 118 ein softwaredefiniertes Netzwerk (SDN), und ein SDN-Flow-Controller weist Datenströmen Routen durch ein nächstes Netzwerk als AS entlang der Vorzugsroute zu.
-
5 ist ein beispielhaftes Blockdiagramm eines Netzwerksgerätes 131. Das Beispielnetzwerkgerät 131 eignet sich gem. einer veranschaulichenden Ausführung zur Ausführung der Netzwerkgeräte im hierin beschriebenen Vermittlungsnetzwerk. Das unter Bezugnahme auf 6 beschriebene Computersystem 141 kann auch als Netzwerkgerät 131 geeignet sein. Mit der Virtualisierung der Netzwerkfunktionen (Network Function Virtualization – NFV) werden z.B. manche Netzwerkfunktionen, die normalerweise von Hardwareschaltungen ausgeführt wird, als Software ausgeführt, die auf einem Prozessor (z.B. einem Allzweckprozessor) ausgeführt wird. Im groben Überblick beinhaltet das Netzwerkgerät 131 ein Steuerungsmodul 138 und einen Speicher 134, z.B. zum Speichern von Gerätekonfigurations- und Routingdaten. Das Netzwerkgerät 131 enthält einen Weiterleitungsmodul 132, der die im Speicher 134 gespeicherten Gerätekonfigurations- und Routingdaten dafür verwendet, den Datenverkehr an den Netzwerkschnittstellen 136 zu verwalten. Bei manchen Ausführungsformen ist das Netzwerkgerät 131 zur Verwendung in einem softwaredefinierten Netzwerk (SDN) ausgeführt, wobei das Netzwerkgerät 131 von einem externen SDN-Controller gesteuert wird. Bei manchen Ausführungsformen sind eine oder mehrere Funktionskomponenten des Netzwerkgerätes 131 als Softwarekomponenten ausgeführt, die von einem Allzweckprozessor ausgeführt werden.
-
Eingehender bezugnehmend auf 5 beinhaltet das Gerät 131 einen Satz Netzwerkschnittstellen 136. Jede Netzwerkschnittstelle 136 kann über eine oder mehrere Verbindungen mit einem oder mehreren externen Geräten verbunden sein und so ein Netzwerk (z.B. das in 1 gezeigte Netzwerk 110) bilden. Externe Geräte senden über diese Verbindungen Datenpakete zum Netzwerkgerät 131, die über eine eingehende Schnittstelle (z.B. die Netzwerkschnittstelle 136(a)) ankommen. Das Netzwerkgerät 131 leitet die empfangenen Datenpakete über eine abgehende Schnittstelle (z.B. die Netzwerkschnittstelle 136(c)) an einen geeigneten nächsten Hop weiter. Bei manchen Ausführungsformen kann das Weiterleitungsmodul 132 bestimmen, welche Netzwerkschnittstelle 136 für die Weiterleitung jedes empfangenen Datenpaketes zu verwenden ist.
-
Das Weiterleitungsmodul 132 verwendet Konfigurations- und Routingdaten im Speicher 134 zur Verwaltung des Datenverkehrs an den Netzwerkschnittstellenports 136. Die Konfigurations- und Routingdaten im Speicher 134 werden von dem Steuerungsmodul 138 gesteuert. Bei manchen Ausführungsformen aktualisiert das Weiterleitungsmodul 132 den Paketkopf, bevor er die Pakete an einen ausgehenden Netzwerkschnittstellenport 136 weiterleitet. Das Weiterleitungsmodul 136 kann z.B. ECN, TTL oder Prüfsummenangaben im Paketkopf aktualisieren. Bei manchen Ausführungsformen enthält ein eingehendes Paket Routing-Anweisungen, die in den Kopf des eingehenden Paketes eingebettet sind, und das Weiterleitungsmodul 132 leitet das Paket auf der Basis der eingebetteten Anweisungen weiter.
-
Der Speicher 134 kann jedes beliebige Gerät sein, das zur Speicherung computerlesbarer Daten geeignet ist. Beispiele hierfür sind u.a. Halbleiterspeichergeräte, wie z.B. EPROM, EEPROM, SRAM und Flash-Speichergeräte. Bei manchen Ausführungsformen beinhaltet der Speicher 134 eines Netzwerkgerätes 131 Speicher für Muster für die Erkennung von Paketflüssen, z.B. als Ternary Content Adressable Memory (TCAM). Bei manchen Ausführungsformen beinhaltet der Speicher 134 eines Netzwerkgerätes 131 Speicherplatz zum Puffern der Paketflüsse während diese das Netzwerkgerät 131 passieren. Ein Netzwerkgerät 131 kann jede beliebige Anzahl Speichergeräte 134 haben.
-
Das Steuerungsmodul 138 verwaltet die Leistung des Netzwerkgerätes 131. Bei manchen Ausführungsformen empfängt das Steuerungsmodul 138 Anweisungen von einem externen Steuergerät. In einem software-definierten Netzwerk (SDN) kann z.B. das Steuerungsmodul 138 Steuerungsanweisungen von einem SDN-Controller außerhalb des Netzwerkgerätes 131 empfangen. Bei manchen Ausführungsformen verarbeitet das Steuerungsmodul 138 Pakete mit Routenangaben (d.h. Pakete der Steuerungsebene) und aktualisiert den Speicher 134 um Änderungen an Leitwegtabellen, die vom Weiterleitungsmodul 132 verwendet werden. Bei manchen Ausführungsformen liest das Steuerungsmodul 138 Daten, die an einer abgehenden Schnittstelle 136 eintreffen, in einen Puffer ein, der im Speicher 134 gespeichert ist. Das Steuerungsmodul 138 kann mithilfe eines Allzweckprozessors oder einer logischen Spezialschaltung, z.B. einem anwendungsspezifischen integrierten Schaltkreis („ASIC“), ausgeführt werden kann.
-
6 ist ein Blockdiagramm eines Beispielcomputersystems 141. Das Beispielcomputersystem 141 eignet sich zur Verwendung in der Ausführung der hierin beschriebenen computerisierten Komponenten gem. einer veranschaulichenden Ausführung. Im Wesentlichen umfasst ein Rechensystem 141 einen Prozessor 148 für das Durchführen von Handlungen gemäß Anweisungen und ein oder mehrere Speichergeräte 144 und 149 für das Speichern von Anweisungen und Daten. Das veranschaulichte beispielhafte Rechensystem 141 beinhaltet einen oder mehrere Prozessoren 148, die über einen Bus 142 mit dem Speicher 144 kommunizieren, mindestens einen Netzwerkschnittstellencontroller 143 mit einem Netzwerkschnittstellenanschluss 146 zur Verbindung mit einem Netzwerk (nicht gezeigt) und anderen Komponenten 145, z. B. Input / Output (“I/O”) Komponenten 147. Im Allgemeinen führen die Prozessor(en) 148 die vom Speicher empfangenen Anweisungen aus. Der (die) dargestellten Prozessor(en) 148 umfassen, oder sind direkt mit dem Cache-Speicher 149 verbunden. In manchen Fällen werden Anweisungen aus dem Speicher 144 in den Cache-Speicher 149 gelesen und durch den Prozessor(en) 148 aus dem Cache-Speicher 149 ausgeführt.
-
Im Einzelnen kann (können) der (die) Prozessor(en) 148 beliebige Logikschaltungen sein, die Anweisungen verarbeiten, z.B. Anweisungen, die vom Speicher 144 oder Cache 149 geholt werden. In vielen Ausführungsformen sind der (die) Prozessor(en) 148 Mikroprozessoreinheiten oder Spezialprozessoren. Die Rechenvorrichtung 141 kann auf einem beliebigen Prozessor oder Satz von Prozessoren beruhen, der in der Lage ist, wie hierin beschrieben, zu arbeiten. Der(die) Prozessor(en) 148 können ein oder mehrere Kernprozessor(en) sein. Der (die) Prozessor(en) 148 können mehrere verschiedene Prozessoren sein. Bei manchen Ausführungsformen kann (können) der (die) Prozessor(en) 148 als Schaltungen auf einem oder mehreren „Chips“ ausgeführt werden.
-
Der Speicher 144 kann ein beliebiges Gerät sein, das zur Speicherung computerlesbarer Daten geeignet ist. Der Speicher 144 kann ein Gerät mit Festspeicher oder ein Gerät zum Lesen von Wechselspeichermedien sein. Beispiele beinhalten alle Formen von nichtflüchtigem Speichern, nichtflüchtigen Medien und Speichereinrichtungen, Halbleiterspeichereinrichtungen (z.B. EPROM, EEPROM und Flash-Speichereinrichtungen), Magnetdisketten, magnetooptische Disketten und optische Disketten (z.B. CD-ROM-, DVD-ROM- und Blu-Ray®-Disks). Ein Rechnersystem 141 kann eine beliebige Anzahl von Speichergeräten 144 haben.
-
Der Cache-Speicher 149 ist allgemein eine Form von Computer-Speicher, der sich für kurze Zugriffszeiten in unmittelbarer Nähe zu dem (den) Prozessor(en) 148 befindet. Bei einigen Implementierungen ist der Cache-Speicher 149 ein Teil von oder auf demselben Chip wie der (die) Prozessor(en) 148. Bei einigen Implementierungen gibt es mehrere Ebenen des Cache 149, z. B. L2- und L3-Cache-Schichten.
-
Der Netzwerkschnittstellencontroller 143 verwaltet den Datenaustausch über die Netzwerkschnittstelle 146 (gelegentlich auch als Netzwerkschnittstellenport bezeichnet). Die Netzwerkschnittstellensteuerung 143 verarbeitet die physikalischen und Datenverbindungsschichten des OSI-Modell für die Netzwerkkommunikation. Bei einigen Implementierungen werden einige der Aufgaben der Netzwerkschnittstellensteuerung von einem oder mehreren der Prozessoren 148 verarbeitet. Bei einigen Implementierungen ist die Netzwerkschnittstellensteuerung 143, z. B. als Schaltung auf demselben Chip, in den Prozessor 148 integriert. Bei einigen Implementierungen umfasst ein Rechnersystem 141 mehrere durch einen einzelnen Controler 143 gesteuerte Netzwerkschnittstellen 146. Bei einigen Implementierungen umfasst ein Rechnersystem 141 mehrere Netzwerkschnittstellensteuerungen 143. Bei einigen Implementierungen ist jede Netzwerkschnittstelle 146 ein Verbindungspunkt für eine physikalische Netzwerkverbindung (z. B. eine cat-5-Ethernet-Verbindung). Bei In einigen Implementierungen unterstützt die Netzwerkschnittstellensteuerung 143 drahtlose Netzwerkverbindungen und eine Datenschnittstelle 146 ist ein drahtloser Empfänger/Sender (z. B. Funk) (z. B. für jedes der IEEE 802.11-Protokolle, Nahfeldkommunikation "NFC", Bluetooth, BLE, ANT oder ein anderes beliebiges drahtloses Protokoll). Bei einigen Implementierungen implementiert die Netzwerkschnittstellensteuerung 143 ein oder mehrere Netzwerkprotokolle, wie beispielsweise Ethernet. Im Allgemeinen tauscht das Computergerät 141 Daten über physikalische oder drahtlose Verbindungen über eine Netzwerkschnittstelle 146 mit anderen Rechenvorrichtungen aus. Die Netzwerkschnittstelle 146 kann über ein Zwischengerät, z. B. eine Netzwerkeinrichtung, wie einen Hub, eine Brücke, einen Switch oder einen Router, direkt mit einem anderen Gerät oder zu einem anderen Gerät verbunden sein, die die Rechenvorrichtung 141 mit einem Datennetz wie dem Internet verbinden.
-
Das Computersystem 141 kann eine oder mehrere Eingabe- oder Ausgabe(„E/A“)-Komponenten 147 beinhalten oder Schnittstellen dafür bereitstellen. Zu den Eingabegeräten zählen ohne Einschränkung Tastaturen, Mikrofone, Touchscreens, Fußpedale, Sensoren, MIDI-Geräte und Zeigegeräte wie eine Maus oder ein Trackball. Zu den Ausgabegeräten zählen ohne Einschränkung Videodisplays, Lautsprecher, refreshable Braille-Terminal, Lichter, MIDI-Geräte und 2-D- oder 3-D-Drucker.
-
Die übrigen Komponenten 145 können eine E/A-Schnittstelle, externe serielle Geräteports und beliebige zusätzliche Koprozessoren beinhalten. So kann beispielsweise ein Computersystem 141 eine Schnittstelle (z. B. ein Universal Serial Bus ("USB") Schnittstelle) für den Anschluss von Eingabegeräten, Ausgabegeräte oder zusätzliche Speichervorrichtungen (zum Beispiel tragbare Flash-Laufwerke oder ein externes Medium-Laufwerk) umfassen. Bei einigen Implementierungen umfasst ein Computergerät 141 eine zusätzliche Vorrichtung 145 wie beispielsweise ein Co-Prozessor. So kann beispielsweise ein mathematischer Co-Prozessor den Prozessor 148 mit hoher Präzision oder komplexen Berechnungen unterstützen.
-
Ausführungsformen des Gegenstandes und die in dieser Spezifikation beschriebenen Tätigkeiten können in digitalen elektronischen Schaltungen oder in Computer-Software, Firmware oder Hardware ausgeführt werden, einschließlich der in dieser Spezifikation offengelegten Strukturen und ihrer baulichen Entsprechungen oder in Kombinationen aus einer oder mehreren davon. Implementierungen des in dieser Spezifikation beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme auf einem physischen Medium, d. h. als ein oder mehrere Module von Computerprogrammbefehlen implementiert werden, die auf einem oder mehreren Computerspeichermedien für die Ausführung durch oder die Steuerung des Betriebes eines datenverarbeitenden Apparates kodiert werden. Bei einem Computer-Speichermedium kann es sich um ein maschinell lesbares Speichergerät, einen maschinell lesbaren Speicherträger, ein zufälliges oder serielles Speicher-Array oder Speichergerät oder um eine Kombination aus einem oder mehreren dieser Geräte handeln oder in ihnen enthalten sein. Bei dem Computer-Speichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Disks oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein. Das Computerspeichermedium kann physischer Art und nicht flüchtig sein.
-
Ein Computerprogramm (auch bekannt als Programm, Software, Softwareanwendung, Skript oder Programmcode) kann in jeder Form von Programmiersprache geschrieben sein, einschließlich kompilierter Sprachen, interpretierter Sprachen, deklarativer Sprachen und prozeduraler Sprachen, und das Computerprogramm kann in beliebiger Form eingesetzt werden, auch als eigenständiges Programm oder als Modul, Komponente, Subroutine, Objekt oder sonstige Einheit, die sich zur Verwendung in einer Rechnerumgebung eignet. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Bibliotheken, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computern eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind.
-
Die in dieser Spezifikation beschriebenen Verfahren und Logikabläufe können von einem oder mehreren programmierbaren Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Aktionen auszuführen, indem sie Eingabedaten bearbeiten und Ausgabedaten erzeugen. Die Prozesse und logischen Abläufe können auch von logischen Sonderzweckschaltungen durchgeführt werden, und das Gerät kann als eine solche Sonderzweckschaltung implementiert werden, z. B. als FPGA (Field Programmable Gate Array) oder ASIC (Application Specific Integrated Circuit). Solch eine Sonderzweckschaltung kann als Computerprozessor bezeichnet werden, selbst wenn es sich nicht um einen Universalprozessor handelt.
-
Zwar enthält diese Spezifikation viele spezifische Einzelheiten zur Implementierung, diese sind jedoch nicht als Beschränkungen des Umfangs der Erfindungen oder der Ansprüche auszulegen, sondern als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Eigenschaften, die in dieser Spezifikation im Kontext gesonderter Implementierungen beschrieben sind, können auch in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene, im Kontext einer einzelnen Implementierung beschriebene Merkmale auch in mehreren Implementierungen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in manchen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
-
Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies ist nicht so zu verstehen, dass solche Tätigkeiten in der dargestellten Reihenfolge oder überhaupt in aufeinanderfolgender Reihenfolge ausgeführt werden müssen, oder dass alle der dargestellten Tätigkeiten ausgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Implementierungen nicht als eine solche Trennung in allen Implementierungen erfordernd aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme grundsätzlich zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
-
Die Verwendung des Wortes „oder“ kann einschließend ausgelegt werden, d.h. Begriffe, die mit „oder“ beschrieben werden, können eines, mehr als ein und alle der beschriebene Begriffe bedeuten. Die Ordinalzahlwörter „Erster“, „Zweiter“, „Dritter“ usw. sind nicht unbedingt so gemeint, dass sie eine Reihenfolge angeben, und werden allgemein nur dazu verwendet, zwischen ähnlichen Gegenständen oder Elementen zu unterscheiden.
-
Folglich wurden bestimmte Ausführungsformen des Gegenstandes beschrieben. Diese und andere Ausführungsformen fallen in den Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge ausgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking oder eine Parallelbearbeitung verwendet werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- IEEE 802.11-Protokolle [0069]