DE202018006682U1 - System zum Detektieren von Quellen von Computernetzausfällen - Google Patents

System zum Detektieren von Quellen von Computernetzausfällen Download PDF

Info

Publication number
DE202018006682U1
DE202018006682U1 DE202018006682.6U DE202018006682U DE202018006682U1 DE 202018006682 U1 DE202018006682 U1 DE 202018006682U1 DE 202018006682 U DE202018006682 U DE 202018006682U DE 202018006682 U1 DE202018006682 U1 DE 202018006682U1
Authority
DE
Germany
Prior art keywords
packet
source
computer
destination
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202018006682.6U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Twitter Inc
Original Assignee
Twitter Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Twitter Inc filed Critical Twitter Inc
Publication of DE202018006682U1 publication Critical patent/DE202018006682U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0695Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

System (101), das Folgendes umfasst:
einen oder mehrere Computer; und
eine oder mehrere Speicherungsvorrichtungen, auf denen Anweisungen gespeichert sind, die bei Ausführung durch den einen oder die mehreren Computer zum Veranlassen des einen oder der mehreren Computer zum Durchführen von Operationen funktionsfähig sind, die Folgendes umfassen:
Identifizieren (302, 602) eines Netzflusses in einem Computernetz zwischen einer Quelle (401) und einem Ziel (402);
Durchführen einer ersten Sondierung zum Bestimmen, ob es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, einschließlich Anfordern (304), dass die Quelle ein Ende-zu-Ende-Diagnosepaket an das Ziel überträgt, wobei das Ende-zu-Ende-Diagnosepaket Informationen beinhaltet, die konfiguriert sind, eine oder mehrere Netzvorrichtungen in dem Computernetz zum Weiterleiten des Ende-zu-Ende-Diagnosepakets auf dem Pfad des Netzflusses zu veranlassen;
als Reaktion auf das Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, Durchführen einer oder mehrerer zusätzlicher Sondierungen, einschließlich einer zweiten Sondierung zum Bestimmen, ob jeder Hop einer Mehrzahl von Hops in dem Pfad des Netzflusses zwischen der Quelle und dem Ziel funktionsfähig ist, einschließlich Anfordern (308), dass die Quelle ein jeweiliges erstes Verfolgungsdiagnosepaket an jeden Hop in dem Pfad des Netzflusses überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen beinhaltet, die einen speziellen Hop zum Senden eines ersten Verfolgungsantwortpakets als Reaktion auf das erste Verfolgungsdiagnosepaket an die Quelle veranlassen; und
Bestimmen, ob wenigstens ein Link des Computernetzes, der Teil des Pfades des Netzflusses ist, ausgefallen ist, basierend auf den Ergebnissen der ersten Sondierung und der einen oder mehreren zusätzlichen Sondierungen.

Description

  • HINTERGRUND
  • Diese Schrift betrifft das Detektieren von Quellen von Computernetzausfällen.
  • Ein typisches Computernetz beinhaltet mehrere Computer, die durch einen oder mehrere Links und eine oder mehrere Netzvorrichtungen, z. B. Switches und Router, miteinander verbunden sind. Computernetze können einen partiellen oder totalen Ausfall aus vielen Gründen, einschließlich des Ausfalls einer oder mehrerer Komponenten des Computernetzes, erleiden. Zum Beispiel kann der Ausfall mancher Links in einem Computernetz Probleme beim Übertragen gewisser Netzflüsse verursachen. Die Diagnoselogik von Netzvorrichtungen in dem Netz kann beim Detektieren solcher Link-Ausfälle fehlschlagen, was wiederum eine Situation verursachen kann, in der das Computernetz weiterhin ausgefallene Links zur Paketweiterleitung verwendet. Das Detektieren von Quellen von Computernetzausfällen kann schwierig sein, weil es möglicherweise nicht praktikabel oder machbar ist, jede Komponente eines Computernetzes zu untersuchen. Dies ist insbesondere für größere Netze mit zahlreichen Hosts, Links und Switches der Fall.
  • KURZDARSTELLUNG
  • Im Allgemeinen beschreibt diese Schrift Techniken zum Detektieren von Quellen von Netzausfällen. Insbesondere beschreibt diese Schrift Techniken, die eine Ende-zu-Ende-Sondierung mit Diagnosepaketen verwenden, die auf eine Weise formatiert sind, die Switches zum Weiterleiten der Diagnosepakete entlang desselben Pfades von Paketen eines speziellen Netzflusses veranlassen. Diese Schrift beschreibt ferner Techniken, die eine Verfolgungssondierung mit Diagnosepaketen verwenden, die auf eine Weise formatiert sind, die Hops in ihrem Pfad zum Senden einer Antwort auf das Diagnosepaket an den Quellen-Host veranlassen.
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Schrift beschriebenen Gegenstands in Verfahren umgesetzt werden, die die folgenden Handlungen beinhalten: Identifizieren eines Netzflusses in einem Computernetz zwischen einer Quelle und einem Ziel; Durchführen einer ersten Sondierung zum Bestimmen, ob es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, einschließlich Anfordern, dass die Quelle ein Ende-zu-Ende-Diagnosepaket an das Ziel überträgt, wobei das Ende-zu-Ende-Diagnosepaket Informationen beinhaltet, die eine oder mehrere Netzvorrichtungen in dem Computernetz zum Weiterleiten des Ende-zu-Ende-Diagnosepakets in dem Pfad des Netzflusses veranlassen; als Reaktion auf das Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen dem Host und dem Ziel gibt, Durchführen einer oder mehrerer zusätzlicher Sondierungen einschließlich einer zweiten Sondierung zum Bestimmen, ob jeder Hop in dem Pfad des Netzflusses zwischen der Quelle und dem Ziel funktionsfähig ist, einschließlich Anfordern, dass die Quelle ein jeweiliges erstes Verfolgungsdiagnosepaket an jeden Hop in dem Pfad des Netzflusses überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen aufweist, die den jeweiligen Hop zum Senden eines ersten Verfolgungsantwortpakets als Reaktion auf das erste Verfolgungsdiagnosepaket an die Quelle veranlassen; und Bestimmen, ob wenigstens ein Link des Computernetzes, der Teil des Pfades des Netzflusses ist, ausgefallen ist, basierend auf den Ergebnissen der ersten Sondierung und der einen oder mehreren zusätzlichen Sondierungen. Andere Ausführungsformen dieses Aspekts beinhalten entsprechende Computersysteme, Einrichtungen und auf einer oder mehreren Computerspeicherungsvorrichtungen aufgezeichnete Computerprogramme, die jeweils zum Durchführen der Handlungen der Verfahren ausgelegt sind.
  • Diese Schrift verwendet den Ausdruck „ausgelegt“ in Verbindung mit Systemen, Einrichtungen und Computerprogrammkomponenten. Dass ein System aus einem oder mehreren Computern zum Durchführen spezieller Operationen oder Handlungen ausgelegt ist, bedeutet, dass das System Software, Firmware, Hardware oder eine Kombination aus ihnen darauf installiert aufweist, die im Betrieb das System zum Durchführen der Operationen oder Handlungen veranlassen. Dass ein oder mehrere Computerprogramme zum Durchführen spezieller Operationen oder Handlungen ausgelegt sind, bedeutet, dass das eine oder die mehreren Programme Anweisungen beinhalten, die bei Ausführung durch eine Datenverarbeitungseinrichtung die Einrichtung zum Durchführen der Operationen oder Handlungen veranlassen. Dass eine Speziallogikschaltungsanordnung zum Durchführen spezieller Operationen oder Handlungen ausgelegt ist, bedeutet, dass die Schaltungsanordnung eine elektronische Logik aufweist, die die Operationen oder Handlungen durchfuhrt.
  • Die vorhergehende und andere Ausführungsfonnen können jeweils optional eines oder mehrere der folgenden Merkmale, allein oder in Kombination, beinhalten. Insbesondere beinhaltet eine Ausführungsform sämtliche folgenden Merkmale in Kombination. Das Durchführen der einen oder mehreren zusätzlichen Sondierungen beinhaltet eine dritte Sondierung zum Bestimmen, ob jeder Hop in einem Pfad zwischen dem Ziel und der Quelle funktionsfähig ist, einschließlich Anfordern, dass das Ziel ein jeweiliges zweites Verfolgungsdiagnosepaket an jeden Hop in dem Pfad zwischen dem Ziel und der Quelle überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen aufweist, die den jeweiligen Hop zum Senden eines zweiten Verfolgungsantwortpakets als Reaktion auf das zweite Verfolgungsdiagnosepaket an den Quellen-Host veranlassen. Das zweite Verfolgungsdiagnosepaket, das mit einem jeweiligen Host assoziiert ist, weist einen speziellen Wert in einem Lebensdauerfeld des zweiten Verfolgungsdiagnosepakets auf, der den Hop zum Senden einer Zeit-überschritten-Nachricht an den Host als Reaktion auf das zweite Verfolgungsdiagnosepaket veranlasst. Das Ende-zu-Ende-Diagnosepaket weist ein Quellenkennungsfeld und ein Zielkennungsfeld auf, die Kennungen der Quelle bzw. des Ziels beinhalten. Das Ende-zu-Ende-Diagnosepaket weist spezifizierte Werte in einem oder mehreren speziellen Feldern auf, um anzugeben, dass das Ende-zu-Ende-Diagnosepaket ein Diagnosepaket ist. Das Diagnosepaket ist ein Transport-Control-Protocol-Paket, und wobei die spezifizierten Werte Nullwerte für Flag-Felder umfassen. Das erste Verfolgungsdiagnosepaket, das mit einem jeweiligen Hop assoziiert ist, weist einen speziellen Wert in einem Lebensdauerfeld des ersten Verfolgungsdiagnosepakets auf, der den Hop zum Senden einer Zeit-überschritten-Nachricht an den Host als Reaktion auf das erste Verfolgungsdiagnosepaket veranlasst.
  • Das Durchführen der ersten Sondierung beinhaltet ferner Folgendes: Bestimmen, ob die Quelle ein Ende-zu-Ende-Antwortpaket als Reaktion auf das Ende-zu-Ende-Diagnosepaket erhalten hat; als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket empfangen hat, Bestimmen, dass es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt; und als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket nicht empfangen hat, Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt.
  • Das Verfahren beinhaltet ferner Folgendes: Bestimmen, ob die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat; als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat, Bestimmen, dass der spezielle Hop funktionsfähig ist; und als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop nicht empfangen hat, Bestimmen, dass der spezielle Hop nicht funktionsfähig ist.
  • Identifizieren des Netzflusses beinhaltet Folgendes: Erhalten von Neuübertragungsinformationen von einem oder mehreren Hosts in dem Computernetz; Analysieren der Neuübertragungsinformationen, um einen oder mehrere Netzflüsse zu detektieren; für jeden Netzfluss des einen oder der mehreren Netzflüsse, Bestimmen einer Neuübertragungsanzahl aus den Neuübertragungsinformationen; Identifizieren einer Gruppe des einen oder der mehreren Netzflüsse, deren Neuübertragungsanzahl eine Schwelle überschreitet; und Auswählen des Netzflusses aus der Gruppe. Identifizieren des Netzflusses beinhaltet ferner Folgendes: für jeden Netzfluss in der Gruppe, Detektieren, ob ein Ziel des Netzflusses ausgefallen ist; und Aktualisieren der Gruppe, so dass sie jeden Netzfluss ausschließt, dessen entsprechendes Ziel ausgefallen ist.
  • Das Verfahren beinhaltet ferner Folgendes: Erzeugen von Sondierungsergebnisinformationen, die Ergebnisse der ersten Sondierung, der zweiten Sondierung und der dritten Sondierung beinhalten; Analysieren der Sondierungsergebnisse, um eine Besuchsanzahl und eine Ausfallsanzahl für jeden Link in dem Netz zu bestimmen, wobei die Besuchsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft die Pakete den Link durchlaufen haben, und die Ausfallsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft der Link Anzeichen eines Ausfalls gezeigt hat; und Erzeugen eines Graphen des Computemetzes, wobei der Graph Kanten, die jeweils einem jeweiligen Link in dem Computemetz entsprechen, und Gewichte für jede Kante beinhaltet, die basierend auf der Besuchsanzahl und/oder der Ausfallsanzahl für den Link bestimmt werden, der der Kante entspricht. Das Verfahren beinhaltet ferner Analysieren des Graphen, um wenigstens einen Link in dem Computer-Link zu detektieren, der wahrscheinlich ausgefallen ist.
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Schrift beschriebenen Gegenstands in Verfahren umgesetzt werden, die die folgenden Handlungen beinhalten:
    • Erhalten von Neuübertragungsinformationen von einem oder mehreren Hosts in einem Computernetz; Analysieren der Neuübertragungsinformationen, um einen oder mehrere Netzflüsse zu detektieren: für jeden Netzfluss des einen oder der mehreren Netzflüsse,
    • Bestimmen einer Neuübertragungsanzahl aus den Neuübertragungsinformationen;
    • Identifizieren einer Gruppe des einen oder der mehreren Netzflüsse, deren Neuübertragungsanzahl eine Schwelle überschreitet; und Erzeugen einer oder mehrerer Netzdiagnoseschlussfolgerungen über die identifizierte Gruppe. Andere Ausführungsformen dieses Aspekts beinhalten entsprechende Computersysteme, Einrichtungen und auf einer oder mehreren Computerspeicherungsvorrichtungen aufgezeichnete Computerprogramme, die jeweils zum Durchführen der Handlungen der Verfahren ausgelegt sind.
  • Spezielle Ausführungsformen des in dieser Schrift beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile realisieren. Computernetze können in Bezug auf Ausfälle sondiert werden, die mit speziellen Netzflüssen assoziiert sind. Die Genauigkeit von Netzdiagnoseergebnissen kann durch aktive Sondierung verbessert werden, während die Menge an aktiver Sondierung begrenzt wird, die durchgeführt werden muss. Daten von Netzdiagnosen können auf eine Weise verarbeitet werden, die graphenbasierte Folgerungen und Berechnungen erlaubt. Die Leistung von rechenintensiveren Sondierungsaufgaben kann durch Auswählen von Netzflüssen beschränkt werden, an denen diese Aufgaben unter Verwendung weniger rechenintensiver Sondierungsverfahren und passiver Verfahren, die das Netz nicht sondieren, durchgeführt werden, wodurch die Gesamtkosten des Durchführens von Netzdiagnosen reduziert werden.
  • Die Einzelheiten einer oder mehrerer Ausführungsfonnen des Gegenstands dieser Schrift sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines beispielhaften Computernetzes einschließlich einer Netzdiagnose-Engine.
    • 2 ist ein Blockdiagramm einer beispielhaften Netzdiagnose-Engine.
    • 3 ist ein Flussdiagramm eines beispielhaften Prozesses zum Durchführen einer Ende-zu-Ende-Sondierung, gefolgt von einer Verfolgungssondierung.
    • 4A und 4B sind Datenflussdiagramme für eine Ende-zu-Ende-Sondierung bzw. eine Verfolgungssondierung.
    • 5A-5D sind beispielhafte Repräsentationen von Diagnosepaketen.
    • 6 ist ein Flussdiagramm eines beispielhaften Prozesses zum Klassifizieren von Netzflüssen basierend auf Neutibertragungsanzahlen.
    • 7 ist ein Flussdiagramm eines beispielhaften Prozesses zum Detektieren von Host-Ausfällen.
    • 8 ist ein Flussdiagramm eines beispielhaften Prozesses zum Erzeugen eines Graphen mit Netz-Link-Zuverlässigkeitsinformationen.
  • Gleiche Bezugsziffern und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines beispielhaften Computernetzes 100 einschließlich einer Netzdiagnose-Engine 101. Die Netzdiagnose-Engine 101 ist ein System aus einem oder mehreren Computern, in dem die in dieser Schrift beschriebenen Techniken implementiert werden können. Das Computernetz 100 kann zum Beispiel ein Netz sein, das zum Verbinden mehrerer Datenserver-Hosts in einem verteilten Datenzentrum verwendet wird.
  • Die Netzdiagnose-Engine 101 überwacht die Verfügbarkeit und Zuverlässigkeit einer oder mehrerer Komponenten, z. B. von Switches, Host-Computern und/oder Links, des Computernetzes 100. Die Netzdiagnose-Engine 101 kann die Host-Computer in dem Computernetz 100 zum Durchführen gewisser Funktionalitäten auffordern und Informationen von Host-Computem über den Status des Computernetzes 100 erhalten. Die Netzdiagnose-Engine 101 kann die von den Host-Computern erhaltenen Informationen verwenden, um eine oder mehrere Komponenten des Computernetzes 100 zu detektieren, die Schwierigkeiten erfahren können. Bei manchen Implementierungen kann die Netzdiagnose-Engine 101 die Informationen verwenden, um eine Repräsentation, z. B. einen Graphen, von Informationen über die Verwendung und/oder Zuverlässigkeit einer oder mehrerer Komponenten des Computernetzes 100 zu erzeugen. Eine beispielhafte Netzdiagnose-Engine 101 ist nachfolgend ausführlicher unter Bezugnahme auf 2 beschrieben.
  • Das Computernetz 100 beinhaltet mehrere Host-Computer, d. h. einen Host A 111, einen Host B 112, einen Host C 113 und einen Host D 114. Die Host-Computer sind durch mehrere Switches, d. h. einen Switch A 141, einen Switch B 142, einen Switch C 143, einen Switch D 144, einen Switch E 145, einen Switch F 146, einen Switch G 147 und einen Switch F 148, miteinander verbunden. Zwei Switches oder ein Switch und ein Host sind durch einen Link in dem Computer-Netz 100 miteinander verbunden. Ein Link ist eine physische Verbindung, die einer Schnittstelle in einem Switch entsprechen kann.
  • Jeder Host weist ein Kommunikationsmodul, insbesondere ein Kommunikationsmodul A 121 in dem Host A 111, ein Kommunikationsmodul B 122 in dem Host B 112, ein Kommunikationsmodul 123 in dem Host C 113 und ein Kommunikationsmodul D 124 in dem Host D 114, auf. Das Kommunikationsmodul in einem gegebenen Host sendet Kommunikationspakete, z. B. Transport-Control-Protocol(TCP)-Pakete oder User-Datagram-Protocol(UDP)-Pakete, von dem Host an einen Switch und empfängt Kommunikationspakete von einem Switch an den Host.
  • Ein Switch ist ein Beispiel für eine Computervernetzungsvorrichtung, die Kommunikationspakete in einem Computernetz empfängt, verarbeitet und weiterleitet. Obwohl diese Schrift auf Switches verweist, können die in dieser Schrift beschriebenen Techniken auf Computernetze zutreffen, die andere Arten von Computervemetzungsvorrichtungen verwenden, die zum Empfangen, Verarbeiten und Weiterleiten von Kommunikationspaketen in einem Computernetz in der Lage sind, wie etwa Router und Ethernet-Hubs.
  • Jeder Switch kann Kommunikationspakete von einem oder mehreren Host-Computern und/oder einem oder mehreren Switches empfangen. Wenn ein Switch ein Kommunikationspaket empfängt, wählt der Switch einen möglichen Pfad zum Weiterleiten des Pakets aus und bestimmt basierend auf dem ausgewählten Pfad für das Paket einen nächsten Hop, d. h. Host oder Switch, zur Weiterleitung des Pakets an diesen. Falls zum Beispiel der Switch A 141 ein Paket von dem Host A 111 empfängt, das für den Host D 114 beabsichtigt ist, kann der Switch A den Pfad Switch A 141 → Switch E 145 → Switch D 144 → Host D 114 für das Paket wählen und das an Paket an den Switch E 145, den nächsten Hop in der ausgewählten Route, weiterleiten.
  • In manchen Situationen kann der Switch bestimmen, dass es mehrere mögliche Pfade zwischen einem Quellen-Host und einem Ziel-Host gibt. Falls zum Beispiel der Switch A 141 ein Paket von dem Host A 111 empfängt, das für den Host D 114 bestimmt ist, kann der Switch A 141 bestimmen, dass der Pfad Switch A 141 →Switch E 145 → Switch D 144 → Host D 114, der Pfad Switch A 141 → Switch F 146 → Switch D 144 und viele andere Pfade mögliche Pfade zum Weiterleiten des Pakets von dem Quellen-Host 111 zu dem Ziel-Host D 114 sind.
  • Der Switch kann einen Weiterleitungsalgorithmus verwenden, um einen Pfad zum Weiterleiten eines Pakets auszuwählen, wenn es mehrere verfügbare Pfade zwischen der Quelle und dem Ziel des Pakets gibt. Obwohl ein Weiterleitungsalgorithmus einen beliebigen Pfad zwischen der Quelle und dem Ziel für ein Paket auswählen kann, zielen manche Weiterleitungsalgorithmen darauf ab, mit einem Netzfluss assoziierte Pakete entlang eines gleichen Pfades zu routen. Ein Netzfluss kann durch eine Kommunikation zwischen einem Quellen-Host und einem Ziel-Host innerhalb eines speziellen Zeitrahmens gekennzeichnet werden.
  • Bei manchen Implementierungen verwendet der Weiterleitungsalgorithmus Informationen von einem Paket-Header, um eine Route auszuwählen. Zum Beispiel kann der Weiterleitungsalgorithmus Kennungen, z. B. Internet-Protocol(IP)-Adressen, einer Quelle und eines Ziels des Kommunikationspakets, eine Kennung eines Quellen- und Zielports (wie etwa eines Quellen-TCP-Ports und eines Ziel-TCP-Ports) des Kommunikationspakets und eine Transportprotokollkennung der Kommunikation, verwenden, um eine Route auszuwählen. Zum Beispiel kann der Switch eine Switch-spezifische Hashing-Funktion auf die IP-Adressen der Quelle und des Ziels, den Quellen- und Ziel-TCP-Port und die Transportprotokollkennung eines Kommunikationspakets anwenden, um einen Hash-Wert für das Paket zu erzeugen, und den Hash-Wert verwenden, um einen Pfad zwischen der Quelle und dem Ziel des Pakets unter mehreren möglichen Pfaden auszuwählen. Infolgedessen wird der Weiterleitungsalgorithmus alle Pakete eines gegebenen Netzflusses zwischen dem Quellen- und Ziel-Host entlang desselben Pfades routen.
  • Manche Weiterleitungsalgorithmen, die eine Kennung der Quelle und des Ziels eines Kommunikationspakets verwenden, um einen Pfad zur Weiterleitung eines Pakets auszuwählen, beruhen auf einer Weiterleitungsstrategie, die als Equal-Cost-Multi-Path(ECMP)-Weiterleitung bezeichnet wird. Ein Switch, der ECMP verwendet, kann eine Schätzung von Kosten, die mit einem möglichen Pfad zwischen einer Quelle und einem Ziel eines Kommunikationspakets assoziiert sind, z. B. basierend auf der Zahl an Links zwischen Hops, die ein Paket durchlaufen müsste, um das Ziel zu erreichen, und geschätzten Kosten, die mit jedem Link (z. B. basierend auf einer Länge und/oder Geschwindigkeit des Links bestimmt) assoziiert sind, bestimmen und einen Pfad mit einer niedrigsten Schätzung der Kosten zum Weiterleiten des Pakets auswählen. Falls es mehrere Pfade mit niedrigsten Kosten gibt, die zwischen dem Quellen- und Ziel-Host verfügbar sind, kann der Switch einen Pfad mit niedrigsten Kosten basierend auf einem oder mehreren zusätzlichen Faktoren, wie etwa der Kennung der Quelle und des Ziels des Kommunikationspakets, der Keimung des Quellen- und Zielports für das Kommunikationspaket und der Transportprotokollkennung, auswählen. Zum Beispiel kann der Switch die Kennung des Quellenkommunikationspakets, die Kennung des Zielkommunikationspakets, die Kennung des Quellenports, die Kennung des Zielports und die Kennung des Transportprotokolls hashen. Der Switch kann den resultierenden Hash-Wert verwenden, um einen Pfad zwischen der Quelle und dem Ziel des Pakets zwischen mehreren Pfaden mit niedrigsten Kosten auszuwählen. Die Weiterleitungstechnik kann das Computernetz 100 zum Verteilen von Paketen zwischen mehreren Pfaden mit gleichen Kosten und Reduzieren der Möglichkeit einer Überlastung eines speziellen Pfades veranlassen. Die Weiterleitungstechnik kann auch das Computernetz 100 zum Weiterleiten von Kommunikationspaketen, die zu einem speziellen Netzfluss gehören, entlang desselben Pfades wenigstens für einen Zeitraum veranlassen.
  • Jeder Host beinhaltet ein Diagnosemodul, d. h. ein Diagnosemodul A 121 in dem Host A 111, ein Diagnosemodul B 122 in dem Host B 112, ein Diagnosemodul 123 in dem Host C 113 und ein Diagnosemodul D 124 in dem Host D 114. Ein Diagnosemodul in einem Host führt Funktionalitäten, die durch die Netzdiagnose-Engine 101 angefordert werden, aus und liefert Informationen über einen Status des Computernetzes 100 an die Netzdiagnose-Engine 101.
  • Zum Beispiel kann die Netzdiagnose-Engine 101 anfordern, dass ein Diagnosemodul in einem Host ein Diagnosepaket von dem Host an ein spezielles Ziel sendet, z. B. unter Verwendung des Kommunikationsmoduls des Hosts. Das Diagnosemodul kann Informationen über die Übertragung eines Diagnosepakets innerhalb des Computernetzes 100 z. B. basierend auf Kommunikationspaketen, die als Reaktion auf das Paket empfangen werden, erhalten und die erhaltenen Informationen an die Netzdiagnose-Engine 101 liefern.
  • Die Übertragung und der Empfang von Diagnosepaketen ist nachfolgend ausführlicher beschrieben.
  • 2 ist ein Blockdiagramm einer beispielhaften Netzdiagnose-Engine 101. Die Netzdiagnose-Engine 101 beinhaltet eine Anfangsdetektion-Sub-Engine 211, eine Sondiemng-Sub-Engine 212 und eine Datenanalyse-Sub-Engine 213.
  • Die Anfangsdetektion-Sub-Engine 211 detektiert einen oder mehrere Netzflüsse 251, die die Sondierung-Sub-Engine 212 sondieren kann. Ein Netzfluss ist ein Fluss von Kommunikationspaketen zwischen einer Quelle und einem Ziel. Das Computernetz 100 kann Pakete übertragen, die viele Netzflüsse betreffen. Das Sondieren eines Netzflusses unter Verwendung der Sondierung-Sub-Engine 212 kann eine rechenintensive Aufgabe sein. Durch das Reduzieren der Zahl an Netzflüssen, die die Sondierung-Sub-Engine 212 sondieren muss, kann die Anfangsdetektion-Sub-Engine 211 die Effizienz der Netzdiagnose-Engine 101 erhöhen.
  • Die Anfangsdetektion-Sub-Engine kann einen Hohe-Neuübertragung-Detektor 221 und einen Host-Ausfall-Detektor 231 beinhalten. Der Hohe-Neuübertragung-Detektor 221 empfängt Informationen über Paketneuübertragungen für Netzflüsse von einem oder mehreren Hosts und verarbeitet die erhaltenen Informationen, um einen oder mehrere Netzflüsse zu bestimmen, deren Neuübertragungsanzahl einen Schwellenwert überschreitet. Der Hohe-Neuübertragung-Detektor 221 kann bestimmen, dass solche Hohe-Neuübertragung-Netzflüsse eine weitere Untersuchung hinsichtlich potentieller Probleme erfordern, und kann Kennungen dieser Netzflüsse an den Host-Ausfall-Detektor 231 oder die Sondierung-Sub-Engine 212 übertragen. Das Detektieren von Netzflüssen mit hohen Neuübertragungsanzahlen ist nachfolgend ausführlicher unter Bezugnahme auf 6 beschrieben.
  • Der Host-Ausfall-Detektor 231 bestimmt, ob ein spezieller Host ausgefallen ist, der beim Übertragen oder Empfangen eines Netzflusses, zum Beispiel eines Netzflusses mit hoher Neuübertragung, wie durch den Hohe-Neuübertragung-Detektor 221 detektiert, und/oder eines Netzflusses mit anderen speziellen Eigenschaften, wie durch eine oder mehrere Detektionstechniken detektiert, beteiligt ist. Der Host-Ausfall-Detektor 231 kann anfordern, dass ein Host, z. B. der Quellen-Host, ein Statusanfragepaket an den speziellen Host sendet, und Information von dem Quellen-Host darüber erhalten, ob der Quellen-Host eine Antwort auf das Statusanfragepaket erhalten hat. Der Host kann das Statusanfragepaket über einen oder mehrere mögliche Pfade in dem Computernetz 100 senden, einschließlich Pfaden, die sich von einem mit einem Netzfluss zwischen dem Quellen-Host und dem Ziel-Host assoziierten Pfad unterscheiden. Aufgrund der Informationen, die durch den Weiterleitungsalgorithmus verwendet werden, schließen die Pfade zum Übertragen des Statusanfragepakets sehr wahrscheinlich Pfade ein, die sich von einem mit einem Netzfluss zwischen dem Quellen-Host und dem Ziel-Host assoziierten Pfad unterscheiden. Der Host-Ausfall-Detektor 231 kann die erhaltenen Informationen verarbeiten, um zu bestimmen, ob der spezielle Host ausgefallen ist. Das Detektieren eines Host-Ausfalls ist nachfolgend ausführlicher unter Bezugnahme auf 7 beschrieben.
  • Wenn der Host-Ausfall-Detektor 231 bestimmt, dass ein mit einem Netzfluss assoziierter Host ausgefallen ist, kann die Netzdiagnose-Engine 101 bestimmen, dass ein Host-Ausfall (im Gegensatz zu anderen Netzausfällen, wie etwa ein Ausfall von Switches und/oder Links) ein wahrscheinlicher Grund für beliebige Anzeichen einer problembehafteten Leistungsfähigkeit, z. B. einer hohen Neuübertragungsanzahl, die mit dem Netzfluss assoziiert ist, ist. Daher kann die Netzdiagnose-Engine 101 den Netzfluss, der durch den Host-Ausfall betroffen ist, von einer Gruppe von Netzflüssen ausschließen, die durch die Sondienmg-Sub-Engine 212 sondiert werden. Dies kann die Gruppe von Netzflüssen, die durch die Sondierung-Sub-Engine 212 sondiert werden müssen, weiter einschränken und dementsprechend die Effizienz der Netzdiagnose-Engine 101 erhöhen.
  • Die Sondienmg-Sub-Engine 212 führt wenigstens eine von zwei Arten von Sondierung an den Netzflüssen 251 durch: „Ende-zu-Ende-Sondieinng“ und „Verfolgungssondierung“ Eine Ende-zu-Ende-Sondierung wird von einem Ende-zu-Ende-Sondierer 222 der Sondierung-Sub-Engine 212 durchgeführt. Eine Verfolgungssondierung wird von einem Verfolgungssondierer 232 der Sondienmg-Sub-Engine 212 durchgeführt Die Sondierung-Sub-Engine überträgt Ergebnisse 252 der Sondierungen an eine Datenanalyse-Sub-Engine 213.
  • Der Ende-zu-Ende-Sondierer 222 fordert an, dass ein Quellen-Host ein Ende-zu-Ende-Diagnosepaket an einen Ziel-Host sendet, und erhält Informationen darüber, ob der Quellen-Host bestimmt hat, dass der Ziel-Host das Ende-zu-Ende-Diagnosepaket empfangen hat. Die Netzdiagnose-Engine 101 kann die erhaltenen Informationen verarbeiten, um zu bestimmen, ob ein entlang desselben Pfades wie das Diagnosepaket übertragener Netzfluss eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel des Netzflusses aufweist. Falls die Netzdiagnose-Engine 101 bestimmt, dass ein Netzfluss keine solche Ende-zu-Ende-Konnektivität aufweist, kann der Ende-zu-Ende-Sondierer 222 anfordern, dass der Verfolgungssondierer 232 den von dem Netzfluss genommenen Pfad durch Verfolgungssondierung weiter sondiert.
  • Der Verfolgungssondierer 232 fordert an, dass ein Host ein Verfolgungsdiagnosepaket für jeden erwarteten Hop in einem Pfad sendet, der einem Netzfluss entspricht, und erhält Informationen darüber, ob jeder erwartete Hop ein entsprechendes Verfolgungsdiagnosepaket erhalten hat. Die Netzdiagnose-Engine 101 kann die erhaltenen Informationen verarbeiten, um zu bestimmen, ob irgendein Link in dem Pfad ausgefallen ist. Eine Ende-zu-Ende-Sondierung und eine Verfolgungssondierung sind ausführlicher unter Bezugnahme auf 3 beschrieben.
  • Die Datenanalyse-Sub-Engine 213 empfängt die Sondierungsergebnisse 252 von der Sondierung-Sub-Engine 212 und kann die Sondierungsergebnisse 252 analysieren. Eine Analyse kann das Bereitstellen spezieller Ausgabeergebnisse oder Erzeugen einer Repräsentation einer Verfügbarkeit und Zuverlässigkeit von Komponenten des Computernetzes 100 beinhalten und eine oder mehrere Komponenten des Computernetzes 100 detektieren, die möglicherweise Schwierigkeiten erfahren.
  • Die Datenanalyse-Sub-Engine 213 kann einen Graphenkonstruktor 223, einen Falsch-Positiv-Korrektor 233 und einen Netzausfalldetektor 243 beinhalten. Der Graphenkonstruktor 223 verarbeitet die Sondierungsergebnisse 252, um einen Graphen zu erzeugen. Der Graph beinhaltet Kanten, die Links in dem Computernetz 100 entsprechen, Knoten, die Switches und optional Hosts in dem Computernetz 100 entsprechen, und Kantengewichte, die einer Zuverlässigkeitsschätzung des Links entsprechen. Das Erzeugen eines Graph en ist nachfolgend ausführlicher unter Bezugnahme auf 8 beschrieben.
  • Der Graphenkonstruktor 223 kann die Zuverlässigkeitsschätzung für einen Link basierend auf einer Anzahl an Diagnosepaketen, für die ein Durchlaufen des Links beobachtet wurde, d. h. einer Besuchsanzahl für den Link, und einer Anzahl an Paketen, für die ein Verlust auf dem Link beobachtet wurde, d. h. einem Ausfalldetektor für den Link, bestimmt werden. Dies kann zu Situationen führen, in denen der Graphenkonstruktor 223 bestimmt, dass ein Link eine niedrige Zuverlässigkeitsschätzung aufweist, weil der Link eine niedrige Besuchsanzahl aufweist. Jedoch kann in manchen Situationen eine niedrige Besuchsanzahl für einen Link aus einer geringen Nutzung des Links in dem normalen Verlauf der Aktivität des Netzes 100 und nicht aus einem Ausfall des Links resultieren. Zum Korrigieren solcher Falsch-Positiv-Detektionen kann der Falsch-Positiv-Detektor 233 Links mit geringer Nutzung z. B. durch Detektieren von Links, deren Besuchsanzahl unterhalb einer Schwelle liegt, detektieren. Der Falsch-Positiv-Detektor 223 kann anfordern, dass der Verfolgungssondierer 232 der Sondierung-Sub-Engine 233 Verfolgungsdiagnosepakete für Netzflüsse erzeugt, deren entsprechender Pfad die Links mit geringer Nutzung beinhaltet, um eine Aktivität des Netzes 100 auf diesen Links zu erhöhen und die Genauigkeit der Sondierungsergebnisse 252 zu erhöhen.
  • Der Netzausfalldetektor 243 erhält den durch den Graphenkonstruktor 223 erzeugten Graphen und analysiert Zuverlässigkeitsschätzungen für die Links in dem Graphen, um Links zu detektieren, die wahrscheinlich ausgefallen sind. Bei manchen Implementierungen bestimmt der Netzausfalldetektor 243, dass Links, deren Zuverlässigkeitsschätzung unterhalb eine Schwelle fällt, wahrscheinlich ausgefallen sind.
  • 3 ist ein Flussdiagramm eines beispielhaften Prozesses zum Durchführen einer Ende-zu-Ende-Sondierung, gefolgt von einer Verfolgungssondierung. Der Prozess kann durch ein System aus einem oder mehreren Computern, z. B. die Netzdiagnose-Engine 101 aus 1, durchgeführt werden.
  • Das System identifiziert einen Netzfluss (302) und fordert an, dass ein mit dem Netzfluss assoziierter Quellen-Host ein Ende-zu-Ende-Diagnosepaket, das dem Netzfluss entspricht, an einen mit dem Netzfluss assoziierten Ziel-Host überträgt (304). Zum Beispiel kann der Netzfluss basierend auf Analyseneuübertragungsinformationen identifiziert werden, die von einem oder mehreren Hosts erhalten werden, um Kandidatenflüsse zur weiteren Untersuchung zu identifizieren.
  • Das Ende-zu-Ende-Diagnosepaket sollte ein spezielles Format aufweisen, das Switches zum Weiterleiten des Pakets entlang desselben Pfades wie ein Pfad, der dem überwachten Netzfluss entspricht, veranlasst. Falls zum Beispiel die Switches eine Kennung der Quelle und des Ziels eines Pakets verwenden, um einen Pfad zum Weiterleiten des Pakets des Flusses auszuwählen, ist ein Ende-zu-Ende-Diagnosepaket dazu ausgelegt, dass es die gleiche Quellen- und Zielkennung wie die Quellen- und Zielkennung aufweist, die den speziellen Netzfluss kennzeichnen. Dies bewirkt, dass das Diagnosepaket entlang desselben Pfades wie der entsprechende Netzfluss weitergeleitet wird. Ohne sicherzustellen, dass das Paket demselben Pfad wie Pakete des Flusses folgt, könnte das Diagnosepaket entlang eines unterschiedlichen Pfades von dem Quellen-Host zu dem Ziel-Host gesendet werden. Dementsprechend wäre es ansonsten schwierig zu bestimmen, ob es ein Problem entlang des speziellen Pfades des Flusses gibt. Das Format des Ende-zu-Ende-Diagnosepakets für einen Netzfluss ist auch so ausgelegt, dass es von dem Format eines regulären Pakets des Netzflusses auf eine Weise distinkt ist, die es einem Programm auf dem Ziel-Host, z. B. einer Diagnose-Engine auf dem Ziel-Host, erlaubt, zu bestimmen, dass das Paket ein Diagnosepaket (und nicht ein normales Paket in dem Fluss ist) ist, und dementsprechend ein entsprechendes Diagnosepaket als Reaktion zu senden. Zum Beispiel kann das Ende-zu-Ende-Diagnosepaket spezifizierte Werte, z. B. Nullwerte, in gewissen Feldern aufweisen. Dies kann bewirken, dass das Paket durch ein Kommunikationsmodul des Ziel-Hosts ignoriert wird und dementsprechend die Übertragung normaler Pakete eines Netzflusses nicht stört. Das Format eines beispielhaften Ende-zu-Ende-Diagnose-TCP-Pakets ist nachfolgend ausführlicher unter Bezugnahme auf 5A beschrieben.
  • Das System bestimmt, ob der Quellen-Host ein Ende-zu-Ende-Antwortpaket empfangen hat (306). Das Ende-zu-Ende-Antwortpaket ist eine Indikation, dass der Ziel-Host, z. B. ein Diagnosemodul in dem Ziel-Host, das Ende-zu-Ende-Diagnosepaket empfangen hat. Das Ende-zu-Ende-Antwortpaket ist so ausgelegt, dass es ein Format aufweist, das angibt, dass es: (1) ein Diagnosepaket und nicht ein normales Netzflusspaket ist (z. B. indem es spezifizierte Werte in gewissen Feldern aufweist); und (2) als Reaktion auf das Ende-zu-Ende-Diagnosepaket vorliegt (z. B. indem es eine Quellen- und Zielkennung aufweist, die der Ziel- bzw. Quellenkennung des Ende-zu-Ende-Diagnosepakets entsprechen). Das Format eines beispielhaften Ende-zu-Ende-Diagnose-TCP-Pakets ist nachfolgend ausführlicher unter Bezugnahme auf 5B beschrieben.
  • Falls das System bestimmt, dass der Quellen-Host das Ende-zu-Ende-Antwortpaket empfangen hat, erzeugt es Sondierungsergebnisse (316) basierend auf den Ergebnissen der in Schritten 304 und 306 durchgeführten Ende-zu-Ende-Sondierung. Falls jedoch das System bestimmt, dass der Quellen-Host das Ende-zu-Ende-Antwortpaket nicht empfangen hat, entscheidet das System, dass der Netzfluss eine weitere Sondierung in der Form einer Verfolgungssondierung durch den Quellen-Host entlang des Pfades des Ende-zu-Ende-Diagnosepakets benötigt (Schritte 308 und 310). Nach dem Durchführen der Verfolgungssondierung erzeugt das System die Sondierungsergebnisse (312) basierend auf den Ergebnissen der Ende-zu-Ende-Sondierung und der Verfolgungssondierung.
  • Um die Verfolgungssondierung durchzuführen, fordert das System an, dass der Quellen-Host ein Verfolgungsdiagnosepaket überträgt (308), das jedem erwarteten Hop, z. B. Host und Switch, in einem Pfad zwischen dem Quellen-Host und dem Ziel-Host entspricht, und bestimmt, ob der Quellen-Host ein Verfolgungsantwortpaket empfangen hat, das jedem Verfolgungsdiagnosepaket entspricht (310). Ein Verfolgungsantwortpaket, das einem Verfolgungsdiagnosepaket entspricht, ist eine Indikation, dass der erwartete Hop, der dem Verfolgungsdiagnosepaket entspricht, das Verfolgungsantwortpaket empfangen hat.
  • Jedes Verfolgungsdiagnosepaket, das einem speziellen Hop entspricht, ist so ausgelegt, dass es ein spezielles Format aufweist, das: (1) den speziellen Hop zum Senden eines Verfolgungsantwortpakets veranlassen kann, das dem Verfolgungsdiagnosepaket entspricht, und (2) Identifikationsinformationen aufweist, die der entsprechende Hop in das Verfolgungsantwortpaket setzen kann, um das Verfolgungsdiagnosepaket zu identifizieren, auf das geantwortet wird. Jedes Verfolgungsantwortpaket weist wiederum ein spezielles Format auf, das Identifikationsinformationen eines entsprechenden Verfolgungsdiagnosepakets beinhaltet.
  • Zum Beispiel kann ein Verfolgungsdiagnosepaket, das einem Hop entspricht, ein TCP- oder UDP-Paket sein, dessen Lebensdauer(TTL: Time-To-Live)-Feld durch den Quellen-Host derart eingestellt wurde, dass es an dem Hop auslaufen und den Hop zum Senden einer Verfolgungsdiagnoseantwort in der Form einer Zeit-überschritten-Nachricht veranlassen wird. Eine Zeit-überschritten-Nachricht ist ein Beispiel für eine Internet-Control-Message-Protocol(ICMP)-Nachricht, die eine Sammlung von Bytes, z. B. die ersten 64 Bytes, eines Pakets, das die Zeit-überschritte-Nachricht ausgelöst hat, d. h. des entsprechenden Verfolgungsdiagnosepakets, enthalten kann. Daher können die Identifikationsinformationen des Verfolgungsdiagnosepakets in einem Teil des Verfolgungsdiagnosepakets vorliegen, den das System als ein Teil der Zeit-überschritten-Nachricht aufnimmt. Falls zum Beispiel die Zeit-überschritten-Nachricht die ersten 64 Byte des Pakets beinhaltet, das die Zeit-überschritten-Nachricht ausgelöst hat, können die Identifikationsinfonnationen eines Verfolgungsdiagnosepakets in den ersten 64 Byte des Verfolgungsdiagnosepakets, z. B. in der Sequenzzahl eines TCP-Pakets oder dem Längenfeld eines UDP-Pakets, vorliegen, so dass das System diese Identifikationsinfonnationen in die Zeit-überschritten-Nachricht aufnehmen wird. Manche der Längenwerte für IP-Header-Felder, die in dieser Schrift genannt sind, verweisen auf ein Format von Kommunikationspaketen, die die Version 4 des IP-Protokolls (IPv4) befolgen. Andere Versionen des IP-Protokolls können andere Formate verwenden.
  • Ein beispielhaftes TCP-Verfolgungsdiagnosepaket ist nachfolgend ausführlicher unter Bezugnahme auf 5C beschrieben. Ein beispielhaftes ICMP-Verfolgungsantwortpaket ist nachfolgend ausführlicher unter Bezugnahme auf 5D beschrieben.
  • 4A und 4B sind Datenflussdiagramme für eine Ende-zu-Ende-Sondierung bzw. eine Verfolgungssondierung. 4A stellt ein Ende-zu-Ende-Diagnosepaket 411, das von einem Quellen-Host 401 an einen Ziel-Host 402 gesendet wird, und ein entsprechendes Ende-zu-Ende-Antwortpaket, das von dem Ziel-Host 402 an den Quellen-Host 401 gesendet wird, dar. Der Quellen-Host 401 kann das Ende-zu-Ende-Diagnosepaket 411 als Teil einer Sequenz von Paketen und dementsprechend mit einer Sequenzzahl senden. Der Ziel-Host 402 kann das Ende-zu-Ende-Antwortpaket 412 als ein einziges Paket einer Sequenz mit einer Bestätigungszahl senden, die der Sequenzzahl des Ende-zu-Ende-Diagnosepakets 411 entspricht.
  • 4B stellt zwei Verfolgungsdiagnosepakete dar, die von dem Quellen-Host 401 gesendet wurden. Das erste, ein Verfolgungsdiagnosepaket 1 421, weist einen TTL-Wert von 1 auf und dementsprechend dekrementiert es bei dem ersten Hop auf seiner Route, d. h. dem Switch 403, und läuft bei diesem aus. Das zweite Verfolgungsdiagnosepaket, d. h. das Verfolgungsdiagnosepaket 422, weist einen TTL-Wert von 2 auf und wird dementsprechend durch den Switch 403 an den Ziel-Host 402 übertragen. Das zweite Verfolgungsdiagnosepaket 422 läuft dann bei dem Ziel-Host 402 aus.
  • 4B stellt auch zwei Verfolgungsantwortpakete dar. Als Reaktion auf das erste Verfolgungsdiagnosepaket 421 sendet der Switch 403 ein erstes Verfolgungsantwortpaket, d. h. ein Verfolgungsantwortpaket 1 431, mit einem beliebigen TTL-Wert, z. B. 64, an den Quellen-Host 401. Als Reaktion auf das zweite Verfolgungsdiagnosepaket 422 sendet der Ziel-Host 402 ein zweites Verfolgungsdiagnosepaket, d. h. ein Verfolgungsdiagnosepaket 2 432, mit einem beliebigen TTL-Wert an den Quellen-Host 401. Der Switch 403 empfängt und überträgt das zweite Verfolgungsantwortpaket 432 an den Quellen-Host 401.
  • 5A-5D sind beispielhafte Repräsentationen von Diagnosepaketen. Sämtliche veranschaulichten Diagnosepakete weisen einen IP-Header 501 auf, der ein 32-Bit-Quellenadressenfeld 521, ein 32-Bit-Zieladressenfeld 523 und ein 8-Bit-TTL-Feld 518 beinhaltet. Das Quellenadressenfeld 521 beinhaltet eine Kennung der Quelle des Pakets und das Zieladressenfeld 522 beinhaltet eine Kennung des Ziels des Pakets. Das TTL-Feld 518 wird an jedem Hop dekrementiert und veranlasst, wenn es null an einem Hop vor dem Ziel erreicht, einen Hop zum Senden einer Zeit-überschritten-Nachricht an die Quelle des Pakets.
  • 5A-5C sind beispielhafte TCP-Pakete, die jeweils TCP-Nutzdaten 502 beinhalten. Die TCP-Nutzdaten beinhalten eine 32-Bit-Sequenzzahl 534, eine 32-Bit-Bestätigungszahl 535, einen 4-Bit-Versatzwert 536, einen reservierten 6-Bit-Wert 537, einen 6-Bit-Wert, der Flags 538 enthält, und einen 16-Bit-Fenstergrößenwert 539. Die Sequenzzahl 534 gibt die Position eines speziellen Pakets in einer Sequenz von Paketen an und die Bestätigungszahl 535 gibt die Sequenzzahl 534 eines ursprünglichen Pakets an, dessen Empfang durch das spezielle Paket bestätigt wird.
  • 5A stellt ein beispielhaftes TCP-Ende-zu-Ende-Diagnosepaket dar. Das Quellenadressenfeld 521 des Pakets ist die IP-Adresse eines Quellen-Hosts, der mit einem überwachten Netzfluss assoziiert ist, während das Zieladressenfeld 522 des Pakets die IP-Adresse eines Ziel-Hosts ist, der mit dem überwachten Netzfluss assoziiert ist. Die Sequenzzahl 534 des Pakets kann das Paket in einer Gruppe von Paketen unterscheiden und die Bestätigungszahl des Pakets ist null, um anzugeben, dass das Paket kein Ende-zu-Ende-Antwortpaket ist. Der Versatzwert 536, der reservierte Wert 537, die Flag-Bits 538 und die Fenstergröße 539 des Pakets werden auf null gesetzt, um anzugeben, dass das Paket ein Diagnosepaket ist.
  • 5B stellt ein Beispiel für ein TCP-Ende-zu-Ende-Antwortpaket dar. Das Quellenadressenfeld 521 des Pakets ist die IP-Adresse eines Ziel-Hosts, der mit einem überwachten Netzfluss assoziiert ist, während das Zieladressenfeld 522 des Pakets die IP-Adresse eines Quellen-Hosts ist, der mit dem überwachten Netzfluss assoziiert ist. Die Sequenzzahl 534 des Pakets ist null, weil das Paket kein Ende-zu-Ende-Diagnosepaket ist, und die Bestätigungszahl 535 des Pakets ist auf die Sequenzzahl 534 eines Ende-zu-Ende-Diagnosepakets gesetzt, das das Ende-zu-Ende-Antwortpaket bestätigt. Der Versatzwert 536, der reservierte Wert 537, die Flag-Bits 538 und die Fenstergröße 539 des Pakets werden auf null gesetzt, um anzugeben, dass das Paket ein Diagnosepaket ist.
  • 5C stellt ein beispielhaftes TCP-Verfolgungsdiagnosepaket dar. Das Quellenadressenfeld 521 des Pakets ist die IP-Adresse eines Quellen-Hosts, der mit einem überwachten Netzfluss assoziiert ist, während das Zieladressenfeld 522 des Pakets die IP-Adresse eines Ziel-Hosts ist, der mit dem überwachten Netzfluss assoziiert ist. Das TTL-Feld 518 des Pakets ist ein Wert, der, falls er bei jedem Hop dekrementiert wird, null bei einem speziellen Hop erreichen wird, den das Paket verfolgen soll. Die Sequenzzahl 534 des Pakets beinhaltet einen Identifikationswert für das Paket. Der Versatzwert 536, der reservierte Wert 537, die Flag-Bits 538 und die Fenstergröße 539 des Pakets können null sein, um anzugeben, dass das Paket ein Diagnosepaket ist. Eine Zahl unterschiedlicher TCP-Verfolgungsdiagnosepakete kann mit verschiedenen TTL-Werten gesendet werden, um aufeinanderfolgende Hops in dem Pfad des Flusses zu erfassen.
  • 5D stellt ein beispielhaftes Verfolgungsantwortpaket in der Form einer ICMP-Zeit-überschritten-Nachricht dar. Die ICMP-Nutzdaten des Pakets beinhalten einen ICMP-Header 551 und einen ICMP-Körper 554. Der ICMP-Header 551 beinhaltet ein 8-Bit-Typenfeld 552 und ein 8-Bit-Codefeld 553, die auf elf bzw. null gesetzt sind, um anzugeben, dass die ICMP-Nachricht eine Zeit-überschritten-Nachricht ist, ein 16-Bit-Prüfsummenfeld 556 und ein 32-Bit-Feld mit anderen Header-Informationen 555. Der ICMP-Körper 554 kann einen Teil, z. B. die ersten 32 Bytes, des Pakets beinhalten, die ICMP-Nachricht ausgelöst hat. Falls das auslösende Paket ein TCP-Verfolgungspaket ist, wie in 5C dargestellt, wird eine Identifikationszahl in dem Sequenzzahlfeld 534 des auslösenden Pakets auch in dem ICMP-Köiper 554 des Verfolgungsantwortpakets erscheinen. Infolgedessen kann der Ursprung jeder empfangenen ICMP-Zeit-überschritten-Nachricht aus den Identifikationsinformationen in dem zurückgesendeten Teil des Pakets bestimmt werden.
  • 6 ist ein Flussdiagramm eines beispielhaften Prozesses 600 zum Klassifizieren von Netzflüssen basierend auf Neuübertragungsanzahlen. Der Prozess 600 wird mit Bezug auf ein System beschrieben, das den Prozess 600 durchführen kann, z. B. die Netzdiagnose-Engine 101 aus 1.
  • Das System identifiziert einen oder mehrere Netzflüsse (602) und erhält Informationen über eine Neuübertragung von Paketen, die mit den Netzflüssen assoziiert sind, von einem oder mehreren Hosts (604).
  • Bei manchen Implementierungen erzeugt das System Informationen über eine Neuübertragung von Paketen, die mit den Netzflüssen assoziiert sind, durch Verfolgen, an jedem Host des einen oder der mehreren Hosts, von Aufrufen einer Keinel-Ftuiktion, die zur Paketneuübertragung verwendet wird, und dann Zuordnen jedes Aufrufs zu entsprechenden Identifikationsinformationen gemäß einem Netzprotokoll. Zum Beispiel kann das System Aufrufe der tcp_retransmit_sk()-Funktion verfolgen, die für eine TCP-Paketneuübertragung in Linux verwendet wird. Anschließend werden die Systemverfolgungen an eine oder mehrere Datenstrukturen weitergegeben, die durch die tcp_retransmit_skb()-Funktion verwendet werden, z. B. struct-sock- und struct-skbuff-Datenstrukturen, wobei die Verfolgerfunktion ftrace von Linx verwendet wird. Das System ordnet dann jeden Aufruf entsprechenden TCP-IP-Flussinformationen unter Verwendung der durch die Pseudodatei procfs:/proc/net/tcp bereitgestellten Karte zu.
  • Bei manchen Implementierungen verfolgt das System Aufrufe der tcp_retransmit_skb()-Funktion unter Verwendung einer Verfolgerfunktion, die basierend auf dem Kprobe-Mechanismus in Linux entwickelt wird. Diese Verfolgerfunktion kann die TCP-IP-Flussinformationen, die mit einem Aufruf der tcp_retransmit_skb()-Funktion assoziiert sind, direkt zurücksenden und dementsprechend die Notwendigkeit des Verwendens von procfs:/proc/net/tcp beseitigen.
  • Das System berechnet eine Gesamtneuübertragungsanzahl für jeden Netzfluss, z. B. über ein spezifiziertes Zeitfenster, des einen oder der mehreren Netzflüsse (606) und bestimmt, ob die Anzahl eine Schwelle überschreitet (608). Die Schwelle kann ein beliebiger geeigneter Wert, wie etwa eins, sein.
  • Das System klassifiziert dann jeden Netzfluss (610) basierend darauf, ob die Gesamtneuübertragungsanzahl für den Netzfluss die Schwelle überschreitet Falls zum Beispiel das System bestimmt, dass die Gesamtneuübertragungsanzahl für den Netzfluss die Schwelle überschreitet, kann das System den Netzfluss als eine hohe Neuübertragungsanzahl aufweisend klassifizieren. Falls das System bestimmt, dass die Gesamtneuübertragungsanzahl für den Netzfluss die Schwelle nicht überschreitet, kann das System den Netzfluss als keine hohe Neuübertragungsanzahl aufweisend klassifizieren.
  • 7 ist ein Flussdiagramm eines beispielhaften Prozesses 700 zum Detektieren von Host-Ausfällen. Der Prozess 700 wird mit Bezug auf ein System beschrieben, das den Prozess durchführen kann, z. B. die Netzdiagnose-Engine 101 aus 1.
  • Das System fordert an, dass ein Quellen-Host ein Statusanfragepaket an den Ziel-Host sendet (702). Bei manchen Implementierungen ist das Statusanfragepaket ein Paket, z. B. ein UDP-Paket, an einen Port des Ziel-Hosts, der herkömmlicherweise nicht durch irgendeine Anwendung an einem Host abgehört wird, z. B. Ports mit einer Portzahl gleich oder größer als 33434. Der Quellen-Host kann das Statusanfragepaket über einen Pfad außer dem Pfad zum Übertragen von Paketen eines Netzflusses von dem Quellen-Host zu dem Ziel-Host an den Ziel-Host senden.
  • Das System bestimmt, ob der Quellen-Host ein Statusanfrageantwortpaket von dem Ziel-Host empfangen hat (704). Das Statusanfrageantwortpaket gibt an, dass der Ziel-Host das Statusanfragepaket empfangen hat. Bei manchen Implementierungen ist, wenn das Statusanfragepaket ein Paket an einen Port des Ziel-Hosts ist, der herkömmlicherweise nicht durch irgendeine Anwendung an einem Host abgehört wird, das Statusanfrageantwortpaket ein ICMP-Port-unerreichbar-Paket. Das ICMP-Port-unerreichbar-Paket kann Identifikationsinformationen über das Statusanfragepaket in seinen ICMP-Körper kopieren, falls solche Identifikationsinformationen in einem Teil, z. B. den ersten 64 Byte, des Statusanfragepakets bereitgestellt werden.
  • Das System bestimmt, ob der Ziel-Host ausgefallen ist (706), basierend darauf, ob der Quellen-Host das Statusanfrageantwortpaket empfangen hat. Falls das System bestimmt, dass der Quellen-Host das Statusanfrageantwortpaket nicht empfangen hat, bestimmt das System, dass der Ziel-Host ausgefallen ist. Falls das System bestimmt, dass der Quellen-Host das Statusanfrageantwortpaket empfangen hat, bestimmt das System, dass der Ziel-Host nicht ausgefallen ist.
  • 8 ist ein Flussdiagramm eines beispielhaften Prozesses zum Erzeugen eines Graphen mit Netz-Link-Zuverlässigkeitsinformationen. Der Prozess kann durch ein System aus einem oder mehreren Computern, z. B. die Netzdiagnose-Engine 101 aus 1, durchgeführt werden.
  • Das System erhält eine Karte eines Computernetzes, z. B. von einer Datenbank, einschließlich Informationen über Netzvorrichtungen (802) und konstruiert einen Graphen basierend auf der Netzkarte (804). Der Graph beinhaltet Kanten, die Links in dem Computernetz entsprechen, Knoten, die Switches und optional Hosts in dem Computernetz entsprechen, und Kantengewichte, die einer Zuverlässigkeitsschätzung des Links entsprechen.
  • Das System erhält Sondierungsergebnisse von Switches in dem Computernetz (806) und verarbeitet die Sondierungsergebnisse, um eine Besuchsanzahl und eine Ausfallsanzahl für jeden Link in dem Graphen zu erzeugen (808).
  • Bei manchen Implementierungen verarbeitet das System Sondierungsergebnisse, um eine Sondierungsaufzeichnung zu erzeugen, die jeder Sondierungsaufgabe eines überwachten Netzes entspricht, z. B. unter Verwendung von Ende-zu-Ende-Sondierung, Verfolgungssondierung oder beidem. Die Sondierungsaufzeicbnung für jede Sondielungsaufgabe zeigt die Hops, die ein Diagnosepaket während der Sondierungsaufgabe erfolgreich erreicht hat. Das System verarbeitet dann Sondierungsaufzeichnungen, um Besuchsanzahlen und Ausfallsanzahlen für Links in dem Computernetz zu bestimmen. Jedes Mal, wenn eine Sondierungsaufzeichnung angibt, dass ein Diagnosepaket einen Switch oder einen Host durch einen Link erreicht hat, inkrementiert das System die Besuchsanzahl für den Link. Jedes Mal, wenn eine Sondierungsauizeichnung angibt, dass ein Diagnosepaket einen speziellen Switch als seinen letzten Hop erreicht hat, aber nicht sein beabsichtigtes Ziel erreicht hat, inkrementiert das System die Ausfallsanzahl für jeden Link zwischen dem letzten Hop und dem beabsichtigten Ziel.
  • Das System verwendet die Besuchsanzahl und die Ausfallsanzahl für jeden Link, um eine Zuverlässigkeitsschätzung für jeden Link zu bestimmen (806). Das System wird die Zuverlässigkeitsschätzung eines Links basierend auf der Ausfallsanzahl für den Link verringern. Jedoch kann das System einem Link eine niedrige Zuverlässigkeitsschätzung zuweisen, selbst wenn der Link eine niedrige Ausfallsanzahl aufweist, zum Beispiel falls ein Link eine Besuchsanzahl aufweist, die höher als eine Schwelle ist, die eine wahrscheinliche Überlastung des Links angibt, und/oder falls der Link eine Besuchsanzahl aufweist, die niedriger als eine Schwelle ist, die eine wahrscheinliche Unerreichbarkeit des Links angibt. Beispielhafte Techniken zum Zuweisen einer niedrigen Zuverlässigkeitsschätzung zu einem Link, selbst wenn der Link eine niedrige Ausfallsanzahl aufweist, sind zuvor unter Bezugnahme auf den Falsch-Positiv-Detektor 223 in 2 beschrieben.
  • Das System markiert dann den Graphen basierend auf Zuverlässigkeitsschätzungen für jeden Link (808). Bei manchen Implementierungen weist das System einer Kante in dem Graphen, die einem Link entspricht, ein Gewicht oder eine Kennzeichnung basierend auf der Zuverlässigkeitsschätzung des Links zu. Zum Beispiel weist das System einer Kante, die einem Link entspricht, ein niedriges Gewicht zu, um anzugeben, dass der Link eine niedrigere Wahrscheinlichkeitsschätzung aufweist.
  • In dieser Schrift wird der Ausdruck „Engine“ breit verwendet, um auf ein softwarebasiertes System oder Subsystem zu verweisen, das eine oder mehrere spezielle Funktionen durchführen kann. Allgemein wird eine Engine als ein oder mehrere Softwaremodule oder -komponenten implementiert, die auf einem oder mehreren Computern an einem oder mehreren Orten installiert sind. In manchen Fällen werden ein oder mehrere Computer einer speziellen Engine dediziert sein; in anderen Fällen können mehrere Engines auf demselben Computer oder denselben Computern installiert und ausgeführt werden.
  • Ausführungsformen des Gegenstands und die funktionalen Operationen, die in dieser Schrift beschrieben sind, können in einer digitalen elektronischen Schaltungsanordnung, in greifbar ausgeführter Computersoftware oder -firmware, in Computerhardware, einschließlich der in dieser Schrift offenbarten Strukturen und deren struktureller Äquivalente, oder in Kombinationen aus einem oder mehreren davon, implementiert werden. Ausführungsfonnen des in dieser Schrift beschriebenen Gegenstands können als ein oder mehrere Computerprogramme implementiert werden, d. h. ein oder mehrere Module von Computerprogrammanweisungen, die auf einem greifbaren nichtflüchtigen Programmträger zur Ausführung durch eine Datenverarbeitungseinrichtung oder zum Steuern der Operation von dieser codiert sind. Alternativ dazu oder zusätzlich können die Programmanweisungen in einem künstlich erzeugten propagierten Signal codiert werden, z. B. einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal, das zum Codieren von Informationen zur Übertragung an eine geeignete Zieleinrichtung zur Ausführung durch eine Datenverarbeitungseinrichtung erzeugt wird. Das Computerspeicherungsmedium kann eine maschinenlesbare Speicherungsvorrichtung, ein maschinenlesbares Speicherungssubstrat, eine Direkt- oder Seriellzugriffsspeichervorrichtung oder eine Kombination aus einem oder mehreren davon sein.
  • Der Ausdruck „Datenverarbeitungseinrichtung“ schließt alle Arten von Einrichtungen, Vorrichtungen und Maschinen zur Datenverarbeitung ein, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Die Einrichtung kann eine Speziallogikschaltungsanordnung, z. B. einen FPGA (Field Programmable Gate Array - feldprogrammierbares Gatterarray) oder einen ASIC (Application Specific Integrated Circuit - anwendungsspezifischer integrierter Schaltkreis), beinhalten. Die Einrichtung kann auch, zusätzlich zu Hardware, Code beinhalten, der eine Ausfuhrungsumgebung für das fragliche Computerprogramm erzeugt, z. B. Code, der Prozessorfirnware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem oder eine Kombination aus einem oder mehreren davon begründet.
  • Ein Computerprogramm (das auch als ein Programm, Software, eine Softwareanwendung, ein Modul, ein Softwaremodul, ein Skript oder Code bezeichnet oder beschrieben werden kann), kann in beliebiger Form einer Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen oder deklarativer oder prozeduraler Sprachen, und es kann in beliebiger Form eingesetzt werden, einschließlich als ein eigenständiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere zur Verwendung in einer Rechentungebung geeignete Einheit. Ein Computerprogramm kann, aber muss nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei, die andere Programme oder Daten hält, z. B. ein oder mehrere in einem Markup-Language-Dokument gespeicherte Skripte, in einer dem fraglichen Programm dedizierten Einzeldatei oder in mehreren koordinierten Dateien, z. B. Dateien, die ein oder mehrere Module, Subprogramme oder Codeteile speichern, gespeichert sein. Ein Computerprogramm kann eingesetzt werden, um auf einem Computer oder mehreren Computern ausgeführt zu werden, die sich vor Ort oder über mehrere Orte verteilt befinden und durch ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die Prozesse und Logikflüsse, die in dieser Schrift beschrieben sind, können durch einen oder mehrere programmierbare Computer durchgeführt werden, der/die ein oder mehrere Computerprogramme ausführt/ausführen, um Funktionen durch Arbeiten an Eingabedaten und Erzeugen von Ausgabedaten durchzuführen. Die Prozesse und die Logikflüsse können auch durch eine Speziallogikschaltungsanordnung, z. B. einen FPGA (Field Programmable Gate Array) oder einen ASIC (Application Specific Integrated Circuit), durchgeführt werden und eine Einrichtung kann auch als diese implementiert werden.
  • Computer, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise Mehrzweck- oder Spezialmikroprozessoren oder beide oder eine beliebige andere Art einer Zentralverarbeitungseinheit oder können darauf basieren. Allgemein wird eine Zentralverarbeitungseinheit Anweisungen und Daten von einem Nurlesespeicher oder einem Direktzugriffsspeicher oder beidem empfangen. Die wesentlichen Elemente eines Computers sind eine Zentralverarbeitungseinheit zum Durchführen oder Ausführen von Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Allgemein wird ein Computer auch eine oder mehrere Massenspeicherungsvorrichtungen zum Speichern von Daten, z. B. magnetische, magnetooptische Disks oder optische Disks, beinhalten oder zum Empfangen von Daten von oder Transferieren von Daten an diese oder beidem wirkgekoppelt sein. Jedoch muss ein Computer solche Vorrichtungen nicht aufweisen. Zudem kann ein Computer in einer anderen Vorrichtung, z. B. einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audio- oder Videoabspielgerät, einer Spielekonsole, einem Globales-Positionierungssystem(GPS)-Ziel oder einer portablen Speicherungsvorrichtung, z. B. einem Universal-Serial-Bus(USB)-Flash-Laufwerk, um nur einige wenige zu nennen, eingebettet sein.
  • Zum Speichern von Computerprogrammanweisungen und Daten geeignete computerlesbare Medien beinhalten alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, einschließlich beispielsweise Halbleiterspeichervonichtungen, z. B. EPROM, EEPROM und Flash-Speichervorrichtungen; magnetische Disks, z. B. interne Festplatten oder entfernbare Disks; magnetooptische Disks; und CD-ROM- und DVD-ROM-Disks. Der Prozessor und der Speicher können durch eine Speziallogikschaltungsanordnung ergänzt werden oder in diese eingebunden sein.
  • Zum Senden zur Interaktion mit einem Benutzer können Ausführungsformen des in dieser Schrift beschriebenen Gegenstands auf einem Computer mit einer Anzeigevorrichtung, z. B. einem CRT (Cathode Ray Tube - Kathodenstrahlröhre)- oder LCD(Liquid Crystal Display - Flüssigkristallanzeige)-Monitor. zum Anzeigen von Informationen für den Benutzer und einer Tastatur und einer Zeigevorrichtung, z. B. einer Maus oder einem Trackball, durch die der Benutzer eine Eingabe an den Computer senden kann, implementiert werden. Andere Arten von Vorrichtungen können ebenfalls zum Senden zur Interkation mit einem Benutzer verwendet werden; zum Beispiel kann eine Rückmeldung, die dem Benutzer bereitgestellt wird, eine beliebige Form einer sensorischen Rückmeldung, z. B. eine visuelle Rückmeldung, eine akustische Rückmeldung oder eine taktile Rückmeldung, sein, und eine Eingabe von dem Benutzer kann in einer beliebigen Form, einschließlich akustischer, sprachbasierter oder taktiler Eingabe, empfangen werden. Außerdem kann ein Computer mit einem Benutzter durch Senden von Dokumenten an eine Vorrichtung, die durch den Benutzer verwendet wird, und Empfangen von Dokumenten von dieser interagieren; zum Beispiel durch Senden von Webseiten an einen Webbrowser auf einer Client-Vorrichtung des Benutzers als Reaktion auf Anfragen, die von dem Webbrowser empfangen werden.
  • Ausführungsformen des in dieser Schrift beschriebenen Gegenstands können in einem Rechensystem implementiert werden, das eine Backend-Komponente beinhaltet, z. B. wie einen Datenserver, oder das eine Middleware-Komponente beinhaltet, z. B. einen Anwendungsserver, oder das eine Frontend-Komponente beinhaltet, z. B. einen Client-Computer mit einer Benutzeroberfläche oder einem Webbrowser, durch die/den ein Benutzer mit einer Implementierung des in dieser Schrift beschriebenen Gegenstands interagieren kann, oder eine beliebige Kombination aus einer oder mehreren solchen Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium einer digitalen Datenkommunikation, z. B. ein Kommunikationsnetz, miteinander verbunden sein. Beispiele für Kommunikationsnetze beinhalten ein Local Area Network („LAN“) und ein Wide Area Network („WAN“), z. B. das Internet.
  • Das Rechensystem kann Clients und Server beinhalten. Ein Client und ein Server sind allgemein voneinander entfernt und interagieren typischerweise durch ein Kommunikationsnetz. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computer ausgeführt werden und eine Client-Server-Beziehung zueinander haben.
  • Obwohl diese Schrift viele spezielle Implementierungseinzelheiten enthält, sollten diese nicht als Beschränkungen für den Schutzumfang irgendeiner Erfindung oder davon, was beansprucht werden kann, ausgelegt werden, sondern als Beschreibungen von Merkmalen, die spezifisch für spezielle Ausführungsformen spezieller Erfindungen sein können. Gewisse Merkmale, die in dieser Schrift in dem Kontext separater Ausfühnmgsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die in dem Kontext einer einzigen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Obwohl Merkmale zuvor als in gewissen Kombinationen wirkend beschrieben und anfänglich sogar als solche beansprucht werden können, können ein oder mehrere Merkmale aus einer beanspruchten Kombination in manchen Fällen aus der Kombination herausgenommen werden und die beanspruchte Kombination kann eine Unterkombination oder eine Variation einer Unterkombination betreffen.
  • Gleichermaßen sollte, obwohl Operationen in den Zeichnungen in einer speziellen Reihenfolge dargestellt sind, dies nicht derart verstanden werden, dass es erforderlich ist, dass solche Operationen in der gezeigten speziellen Reihenfolge oder in einer sequentiellen Reihenfolge durchgeführt werden, oder dass alle veranschaulichten Operationen durchgeführt werden, um wünschenswerte Ergebnisse zu erzielen. Unter gewissen Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Zudem sollte die Separation verschiedener Systemmodule und Komponenten in den zuvor beschriebenen Ausführungsfonnen nicht derart verstanden werden, dass eine solche Separation bei allen Ausführungsformen erforderlich ist, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme allgemein zusammen in einem einzigen Softwareprodukt integriert oder in mehrere Softwareprodukte verpackt werden können.
  • Spezielle Ausführungsfonnen des Gegenstands wurden beschrieben. Andere Ausführungsfonnen liegen ich innerhalb des Schutzumfangs der folgenden Ansprüche. Zum Beispiel können die in den Ansprüchen genannten Handlungen in einer anderen Reihenfolge durchgeführt werden und immer noch wünschenswerte Ergebnisse erzielen. Als ein Beispiel erfordern die in den begleitenden Figuren dargestellten Prozesse nicht zwingend die gezeigte spezielle Reihenfolge oder eine sequentielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. Bei gewissen Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (32)

  1. System (101), das Folgendes umfasst: einen oder mehrere Computer; und eine oder mehrere Speicherungsvorrichtungen, auf denen Anweisungen gespeichert sind, die bei Ausführung durch den einen oder die mehreren Computer zum Veranlassen des einen oder der mehreren Computer zum Durchführen von Operationen funktionsfähig sind, die Folgendes umfassen: Identifizieren (302, 602) eines Netzflusses in einem Computernetz zwischen einer Quelle (401) und einem Ziel (402); Durchführen einer ersten Sondierung zum Bestimmen, ob es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, einschließlich Anfordern (304), dass die Quelle ein Ende-zu-Ende-Diagnosepaket an das Ziel überträgt, wobei das Ende-zu-Ende-Diagnosepaket Informationen beinhaltet, die konfiguriert sind, eine oder mehrere Netzvorrichtungen in dem Computernetz zum Weiterleiten des Ende-zu-Ende-Diagnosepakets auf dem Pfad des Netzflusses zu veranlassen; als Reaktion auf das Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, Durchführen einer oder mehrerer zusätzlicher Sondierungen, einschließlich einer zweiten Sondierung zum Bestimmen, ob jeder Hop einer Mehrzahl von Hops in dem Pfad des Netzflusses zwischen der Quelle und dem Ziel funktionsfähig ist, einschließlich Anfordern (308), dass die Quelle ein jeweiliges erstes Verfolgungsdiagnosepaket an jeden Hop in dem Pfad des Netzflusses überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen beinhaltet, die einen speziellen Hop zum Senden eines ersten Verfolgungsantwortpakets als Reaktion auf das erste Verfolgungsdiagnosepaket an die Quelle veranlassen; und Bestimmen, ob wenigstens ein Link des Computernetzes, der Teil des Pfades des Netzflusses ist, ausgefallen ist, basierend auf den Ergebnissen der ersten Sondierung und der einen oder mehreren zusätzlichen Sondierungen.
  2. System (101) nach Anspruch 1, wobei das Durchführen der einen oder mehreren zusätzlichen Sondierungen eine dritte Sondierung zum Bestimmen umfasst, ob jeder Hop in einem Pfad zwischen dem Ziel (402) und der Quelle (401) funktionsfähig ist, einschließlich Anfordern, dass das Ziel ein jeweiliges zweites Verfolgungsdiagnosepaket an jeden Hop in dem Pfad zwischen dem Ziel und der Quelle überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen aufweist, die den jeweiligen Hop zum Senden eines zweiten Verfolgungsantwortpakets als Reaktion auf das zweite Verfolgungsdiagnosepaket an den Quellen-Host veranlassen.
  3. System (101) nach Anspruch 2, wobei das zweite Verfolgungsdiagnosepaket, das an den jeweiligen Hop gesendet wurde, einen speziellen Wert in einem Lebensdauerfeld des zweiten Verfolgungsdiagnosepakets aufweist, der den jeweiligen Hop zum Senden einer Zeit-überschritten-Nachricht an das Ziel (402) als Reaktion auf das zweite Verfolgungsdiagnosepaket veranlasst.
  4. System (101) nach Anspruch 3, wobei die Zeit-überschritten-Nachricht einen Teil des zweiten Verfolgungsdiagnosepakets beinhaltet, der eine Kennung des Pakets beinhaltet.
  5. System (101) nach einem der Ansprüche 1 bis 4, wobei der Netzfluss einem speziellen Pfad im Computernetz zwischen der Quelle (401) und dem Ziel (402) entspricht.
  6. System (101) nach einem der Ansprüche 1 bis 5, wobei das Ende-zu-Ende-Diagnosepaket ein Quellenkennungsfeld und ein Zielkennungsfeld aufweist, die Kennungen der Quelle bzw. des Ziels beinhalten, die gleich den jeweiligen Quellen- bzw. Zielkennungen sind, die den speziellen Netzfluss kennzeichnen.
  7. System (101) nach einem der Ansprüche 1 bis 6, wobei das Ende-zu-Ende-Diagnosepaket spezifizierte Werte in einem oder mehreren speziellen Feldern aufweist, um anzugeben, dass das Ende-zu-Ende-Diagnosepaket ein Diagnosepaket ist.
  8. System (101) nach Anspruch 7, wobei das Diagnosepaket ein Transport-Control-Protocol-Paket ist, und wobei die spezifizierten Werte Nullwerte für ein oder mehrere Flag-Felder umfassen, wobei die spezifizierten Werte konfiguriert sind, zu bewirken, dass das Diagnosepaket von einem Kommunikationsmodul eines Zielhosts ignoriert wird.
  9. System (101) nach einem der Ansprüche 1 bis 8, wobei das erste Verfolgungsdiagnosepaket, das an den jeweiligen Hop gesendet wurde, einen speziellen Wert in einem Lebensdauerfeld des ersten Verfolgungsdiagnosepakets aufweist, der den Hop zum Senden einer Zeit-überschritten-Nachricht an den Host als Reaktion auf das erste Verfolgungsdiagnosepaket veranlasst.
  10. System (101) nach Anspruch 9, wobei die Zeit-überschritten-Nachricht einen Teil des ersten Verfolgungsdiagnosepakets beinhaltet, der eine Kennung des ersten Verfolgungsdiagnosepakets beinhaltet.
  11. System (101) nach einem der Ansprüche 1 bis 10, wobei das Durchführen der ersten Sondierung ferner Folgendes umfasst: Bestimmen, ob die Quelle (401) ein Ende-zu-Ende-Antwortpaket als Reaktion auf das Ende-zu-Ende-Diagnosepaket erhalten hat; als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket empfangen hat, Bestimmen, dass es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel (402) gibt; und als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket nicht empfangen hat, Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt.
  12. System (101) nach einem der Ansprüche 1 bis 11, wobei die Operationen ferner Folgendes umfassen: Bestimmen, ob die Quelle (401) das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat; als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat, Bestimmen, dass der spezielle Hop funktionsfähig ist; und als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop nicht empfangen hat, Bestimmen, dass der spezielle Hop nicht funktionsfähig ist.
  13. System (101) nach einem der Ansprüche 1 bis 12, wobei das Identifizieren (302, 602) des Netzflusses Folgendes umfasst: Erhalten (604) von Neuübertragungsinformationen von einem oder mehreren Hosts in dem Computernetz; Analysieren der Neuübertragungsinformationen, um einen oder mehrere Netzflüsse zu detektieren; für jeden Netzfluss des einen oder der mehreren Netzflüsse, Bestimmen einer Neuübertragungsanzahl aus den Neuübertragungsinformationen; Identifizieren einer Gruppe des einen oder der mehreren Netzflüsse, deren Neuübertragungsanzahl eine Schwelle überschreitet; und Identifizieren des Netzflusses aus der Gruppe.
  14. System (101) nach Anspruch 13, wobei das Identifizieren des Netzflusses ferner Folgendes umfasst: für jeden Netzfluss in der Gruppe, Detektieren, ob ein Ziel des Netzflusses ausgefallen ist; und, vor dem Identifizieren des Netzflusses aus der Gruppe, Aktualisieren der Gruppe, so dass sie jeden Netzfluss ausschließt, dessen entsprechendes Ziel ausgefallen ist.
  15. System (101) nach einem der Ansprüche 1 bis 14 in Kombination mit Anspruch 2, wobei die Operationen ferner Folgendes umfassen: Erzeugen von Sondierungsergebnisinformationen, die Ergebnisse der ersten Sondierung, der zweiten Sondierung und der dritten Sondierung beinhalten; Analysieren der Sondierungsergebnisse, um eine Besuchsanzahl und eine Ausfallsanzahl für jeden Link in dem Netz zu bestimmen, wobei die Besuchsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft die Pakete den Link durchlaufen haben, und die Ausfallsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft der Link Anzeichen eines Ausfalls gezeigt hat; und Erzeugen eines Graphen des Computernetzes, wobei der Graph Kanten, die jeweils einem jeweiligen Link in dem Computernetz entsprechen, und Gewichte für jede Kante beinhaltet, die basierend auf der Besuchsanzahl und/oder der Ausfallsanzahl für den Link bestimmt werden, der der Kante entspricht.
  16. System (101) nach Anspruch 15, wobei die Operationen ferner Analysieren des Graphen umfassen, um wenigstens einen Link in dem Computer-Link zu detektieren, der wahrscheinlich ausgefallen ist.
  17. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien, das/die mit Anweisungen codiert ist/sind, die bei Ausführung durch einen oder mehrere Computer den einen oder die mehreren Computer zum Durchführen von Operationen veranlassen, die Folgendes umfassen: Identifizieren (302, 602) eines Netzflusses in einem Computernetz zwischen einer Quelle (401) und einem Ziel (402); Durchführen einer ersten Sondierung zum Bestimmen, ob es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, einschließlich Anfordern (304), dass die Quelle ein Ende-zu-Ende-Diagnosepaket an das Ziel überträgt, wobei das Ende-zu-Ende-Diagnosepaket Informationen beinhaltet, die konfiguriert sind, eine oder mehrere Netzvorrichtungen in dem Computernetz zum Weiterleiten des Ende-zu-Ende-Diagnosepakets auf dem Pfad des Netzflusses zu veranlassen; als Reaktion auf das Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt, Durchführen einer oder mehrerer zusätzlicher Sondierungen, einschließlich einer zweiten Sondierung zum Bestimmen, ob jeder Hop einer Mehrzahl von Hops in dem Pfad des Netzflusses zwischen der Quelle und dem Ziel funktionsfähig ist, einschließlich Anfordern (308), dass die Quelle ein jeweiliges erstes Verfolgungsdiagnosepaket an jeden Hop in dem Pfad des Netzflusses überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen beinhaltet, die einen speziellen Hop zum Senden eines ersten Verfolgungsantwortpakets als Reaktion auf das erste Verfolgungsdiagnosepaket an die Quelle veranlassen; und Bestimmen, ob wenigstens ein Link des Computernetzes, der Teil des Pfades des Netzflusses ist, ausgefallen ist, basierend auf den Ergebnissen der ersten Sondierung und der einen oder mehreren zusätzlichen Sondierungen.
  18. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 17, wobei das Durchführen der einen oder mehreren zusätzlichen Sondierungen eine dritte Sondierung zum Bestimmen umfasst, ob jeder Hop in einem Pfad zwischen dem Ziel (402) und der Quelle (401) funktionsfähig ist, einschließlich Anfordern, dass das Ziel ein jeweiliges zweites Verfolgungsdiagnosepaket an jeden Hop in dem Pfad zwischen dem Ziel und der Quelle überträgt, wobei jedes Verfolgungsdiagnosepaket Informationen aufweist, die den jeweiligen Hop zum Senden eines zweiten Verfolgungsantwortpakets als Reaktion auf das zweite Verfolgungsdiagnosepaket an den Quellen-Host veranlassen.
  19. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 18, wobei das zweite Verfolgungsdiagnosepaket, das an den jeweiligen Hop gesendet wurde, einen speziellen Wert in einem Lebensdauerfeld des zweiten Verfolgungsdiagnosepakets aufweist, der den jeweiligen Hop zum Senden einer Zeit-überschritten-Nachricht an das Ziel (402) als Reaktion auf das zweite Verfolgungsdiagnosepaket veranlasst.
  20. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 19, wobei die Zeit-überschritten-Nachricht einen Teil des zweiten Verfolgungsdiagnosepakets beinhaltet, der eine Kennung des Pakets beinhaltet.
  21. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 20, wobei der Netzfluss einem speziellen Pfad im Computernetz zwischen der Quelle (401) und dem Ziel (402) entspricht.
  22. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 21, wobei das Ende-zu-Ende-Diagnosepaket ein Quellenkennungsfeld und ein Zielkennungsfeld aufweist, die Kennungen der Quelle bzw. des Ziels beinhalten, die gleich den jeweiligen Quellen- bzw. Zielkennungen sind, die den speziellen Netzfluss kennzeichnen.
  23. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 22, wobei das Ende-zu-Ende-Diagnosepaket spezifizierte Werte in einem oder mehreren speziellen Feldern aufweist, um anzugeben, dass das Ende-zu-Ende-Diagnosepaket ein Diagnosepaket ist.
  24. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 23, wobei das Diagnosepaket ein Transport-Control-Protocol-Paket ist, und wobei die spezifizierten Werte Nullwerte für ein oder mehrere Flag-Felder umfassen, wobei die spezifizierten Werte konfiguriert sind, zu bewirken, dass das Diagnosepaket von einem Kommunikationsmodul eines Zielhosts ignoriert wird.
  25. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 24, wobei das erste Verfolgungsdiagnosepaket, das an den jeweiligen Hop gesendet wurde, einen speziellen Wert in einem Lebensdauerfeld des ersten Verfolgungsdiagnosepakets aufweist, der den Hop zum Senden einer Zeit-überschritten-Nachricht an den Host als Reaktion auf das erste Verfolgungsdiagnosepaket veranlasst.
  26. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 25, wobei die Zeit-überschritten-Nachricht einen Teil des ersten Verfolgungsdiagnosepakets beinhaltet, der eine Kennung des ersten Verfolgungsdiagnosepakets beinhaltet.
  27. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 26, wobei das Durchführen der ersten Sondierung ferner Folgendes umfasst: Bestimmen, ob die Quelle (401) ein Ende-zu-Ende-Antwortpaket als Reaktion auf das Ende-zu-Ende-Diagnosepaket erhalten hat; als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket empfangen hat, Bestimmen, dass es eine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel (402) gibt; und als Reaktion auf das Bestimmen, dass die Quelle das Ende-zu-Ende-Antwortpaket nicht empfangen hat, Bestimmen, dass es keine Ende-zu-Ende-Konnektivität zwischen der Quelle und dem Ziel gibt.
  28. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 27, wobei die Operationen ferner Folgendes umfassen: Bestimmen, ob die Quelle (401) das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat; als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop empfangen hat, Bestimmen, dass der spezielle Hop funktionsfähig ist; und als Reaktion auf das Bestimmen, dass die Quelle das erste Verfolgungsantwortpaket von einem speziellen Hop nicht empfangen hat, Bestimmen, dass der spezielle Hop nicht funktionsfähig ist.
  29. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 28, wobei das Identifizieren (302, 602) des Netzflusses Folgendes umfasst: Erhalten (604) von Neuübertragungsinformationen von einem oder mehreren Hosts in dem Computernetz; Analysieren der Neuübertragungsinformationen, um einen oder mehrere Netzflüsse zu detektieren; für jeden Netzfluss des einen oder der mehreren Netzflüsse, Bestimmen einer Neuübertragungsanzahl aus den Neuübertragungsinformationen; Identifizieren einer Gruppe des einen oder der mehreren Netzflüsse, deren Neuübertragungsanzahl eine Schwelle überschreitet; und Identifizieren des Netzflusses aus der Gruppe.
  30. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 29, wobei das Identifizieren des Netzflusses ferner Folgendes umfasst: für jeden Netzfluss in der Gruppe, Detektieren, ob ein Ziel des Netzflusses ausgefallen ist; und, vor dem Identifizieren des Netzflusses aus der Gruppe, Aktualisieren der Gruppe, so dass sie jeden Netzfluss ausschließt, dessen entsprechendes Ziel ausgefallen ist.
  31. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach einem der Ansprüche 17 bis 30 in Kombination mit Anspruch 18, wobei die Operationen ferner Folgendes umfassen: Erzeugen von Sondierungsergebnisinformationen, die Ergebnisse der ersten Sondierung, der zweiten Sondierung und der dritten Sondierung beinhalten; Analysieren der Sondierungsergebnisse, um eine Besuchsanzahl und eine Ausfallsanzahl für jeden Link in dem Netz zu bestimmen, wobei die Besuchsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft die Pakete den Link durchlaufen haben, und die Ausfallsanzahl für einen entsprechenden Link eine Zahl angibt, wie oft der Link Anzeichen eines Ausfalls gezeigt hat; und Erzeugen eines Graphen des Computernetzes, wobei der Graph Kanten, die jeweils einem jeweiligen Link in dem Computernetz entsprechen, und Gewichte für jede Kante beinhaltet, die basierend auf der Besuchsanzahl und/oder der Ausfallsanzahl für den Link bestimmt werden, der der Kante entspricht.
  32. Computerlesbares Speicherungsmedium oder computerlesbare Speicherungsmedien nach Anspruch 31, wobei die Operationen ferner Analysieren des Graphen umfassen, um wenigstens einen Link in dem Computer-Link zu detektieren, der wahrscheinlich ausgefallen ist.
DE202018006682.6U 2017-11-10 2018-11-09 System zum Detektieren von Quellen von Computernetzausfällen Active DE202018006682U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/809,836 2017-11-10
US15/809,836 US10601644B2 (en) 2017-11-10 2017-11-10 Detecting sources of computer network failures

Publications (1)

Publication Number Publication Date
DE202018006682U1 true DE202018006682U1 (de) 2022-03-07

Family

ID=64607311

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202018006682.6U Active DE202018006682U1 (de) 2017-11-10 2018-11-09 System zum Detektieren von Quellen von Computernetzausfällen

Country Status (6)

Country Link
US (3) US10601644B2 (de)
EP (2) EP3707862B1 (de)
JP (1) JP2021502788A (de)
DE (1) DE202018006682U1 (de)
SG (1) SG11202004305PA (de)
WO (1) WO2019094839A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601644B2 (en) 2017-11-10 2020-03-24 Twitter, Inc. Detecting sources of computer network failures
US10742555B1 (en) * 2017-12-11 2020-08-11 Amazon Technologies, Inc. Network congestion detection and resolution
CN110417612B (zh) * 2019-06-11 2021-05-28 北京全路通信信号研究设计院集团有限公司 一种基于网元的网络流量监测系统及方法
US11516116B2 (en) * 2020-03-30 2022-11-29 EMC IP Holding Company LLC Domain name system multipathing distributed applications
US11601533B1 (en) * 2020-09-28 2023-03-07 Amazon Technologies, Inc. Source port adaptive multi-path (SAM) protocol
US20220360509A1 (en) * 2021-04-26 2022-11-10 NetBrain Technologies, Inc. Network adaptive monitoring

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060098586A1 (en) * 2001-03-09 2006-05-11 Farrell Craig A Method and apparatus for application route discovery
US7583667B2 (en) * 2004-03-19 2009-09-01 Avaya Inc. Automatic determination of connectivity problem locations or other network-characterizing information in a network utilizing an encapsulation protocol
JP4442410B2 (ja) * 2004-12-15 2010-03-31 セイコーエプソン株式会社 異常診断システム
US7835293B2 (en) * 2005-09-13 2010-11-16 Cisco Technology, Inc. Quality of service testing of communications networks
US8117301B2 (en) * 2006-01-30 2012-02-14 Juniper Networks, Inc. Determining connectivity status for unnumbered interfaces of a target network device
US8531954B2 (en) * 2006-08-22 2013-09-10 Centurylink Intellectual Property Llc System and method for handling reservation requests with a connection admission control engine
US9479341B2 (en) 2006-08-22 2016-10-25 Centurylink Intellectual Property Llc System and method for initiating diagnostics on a packet network node
US8005935B2 (en) * 2007-04-05 2011-08-23 International Business Machines Corporation Methods and computer program products for managing application performance on a network
US7940695B1 (en) 2007-06-08 2011-05-10 Juniper Networks, Inc. Failure detection for tunneled label-switched paths
US20090080339A1 (en) * 2007-09-20 2009-03-26 Nicholas Geoffrey Duffield Multicast-based inference of temporal delay characteristics in packet data networks
US8224942B1 (en) * 2007-10-02 2012-07-17 Google Inc. Network failure detection
US8880724B2 (en) 2008-01-31 2014-11-04 Cisco Technology, Inc. Event triggered traceroute for optimized routing in a computer network
US20100097931A1 (en) * 2008-10-21 2010-04-22 Shakeel Mustafa Management of packet flow in a network
US7860017B2 (en) * 2008-10-27 2010-12-28 Cisco Technology, Inc. Network assessment and fault isolation
WO2011114910A1 (ja) * 2010-03-15 2011-09-22 日本電気株式会社 パケット再送制御装置、パケット再送制御方法、パケット再送制御プログラム
US8750297B2 (en) * 2010-05-20 2014-06-10 Comcast Cable Communications, Llc Ascertaining per-hop network characteristics
US9137101B2 (en) 2011-11-23 2015-09-15 Avaya Inc. Multi-layer network diagnostic tracing
US9374294B1 (en) * 2013-11-05 2016-06-21 Cisco Technology, Inc. On-demand learning in overlay networks
US9419889B2 (en) * 2014-03-07 2016-08-16 Nicira, Inc. Method and system for discovering a path of network traffic
WO2016205673A1 (en) * 2015-06-19 2016-12-22 Convida Wireless, Llc Enhanced address registration in constrained networks
US20180278514A1 (en) * 2017-03-27 2018-09-27 Juniper Networks, Inc. Traceroute for multi-path routing
US10601644B2 (en) 2017-11-10 2020-03-24 Twitter, Inc. Detecting sources of computer network failures

Also Published As

Publication number Publication date
SG11202004305PA (en) 2020-06-29
US20200213186A1 (en) 2020-07-02
US11133980B2 (en) 2021-09-28
JP2021502788A (ja) 2021-01-28
US20220029900A1 (en) 2022-01-27
EP3707862A1 (de) 2020-09-16
US10601644B2 (en) 2020-03-24
US20190149398A1 (en) 2019-05-16
WO2019094839A1 (en) 2019-05-16
EP3707862B1 (de) 2022-03-30
EP4089958A1 (de) 2022-11-16

Similar Documents

Publication Publication Date Title
DE202018006682U1 (de) System zum Detektieren von Quellen von Computernetzausfällen
US11178035B2 (en) Methods, systems, and apparatus to generate information transmission performance alerts
DE60317588T2 (de) Verfahren zur Ermittlung der peer-to-peer Servicequalität (QOS)
DE102013225692B4 (de) Netzwerkstatusabbildung
DE102013209118B4 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
US20230261960A1 (en) Link fault isolation using latencies
US7991877B2 (en) Rogue router hunter
DE602005000383T2 (de) Fehlererkennung und -diagnose
DE60224713T2 (de) Signaturvergleichsverfahren und vorrichtungen zur durchführung der netzwerkdiagnose
DE60310645T2 (de) Verhinderung von Paketzerteilung
DE202016009181U1 (de) Regelbasierte Erkennung von Netzwerkbedrohungen für verschlüsselte Kommunikationen
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE102019104942A1 (de) Kommunikation einer Nachricht unter Verwendung einer Netzwerkschnittstellensteuerung in einem Subnetz
DE112019002585T5 (de) Datenebene mit heavy-hitter-detektor
DE102022121268A1 (de) Überlastungssteuerung auf basis von netzwerktelemetrie
DE202010018491U1 (de) System zur Identifizierung mehrerer Leitwege zwischen Netzwerkknoten
DE112019003854T5 (de) Flusssteuerungssichtbarkeit
DE102010009642B4 (de) System und Verfahren zum Senden von Paketen mit Hilfe der Netzadresse eines anderen Geräts
WO2019006014A1 (en) APPARATUS AND METHOD FOR CORRELATION OF NETWORK TRAFFIC FLOW ON OPPOSED SIDES OF A NETWORK ADDRESS TRANSLATOR
CN113472670B (zh) 用于计算机网络的方法、网络装置及存储介质
EP2263399B1 (de) Verfahren und kommunikationssystem zum bestimmen der qualität wenigstens einer ip-verbindung zwischen einer mobilen einrichtung und einem mit einem öffentlichen ip-basierten kommunikationsnetz verbundenen server
CN116170322B (zh) 一种主被动探测结合的网络拓扑发现方法
DE102023209778A1 (de) Verfahren, systeme und computerlesbare medien zur offenlegung des traffic einer datenverarbeitungseinheit (dpu) in einem smartswitch
DE102013011223A1 (de) Ermitteln von Ein-Wege Performanz Parametern in einem paketvermittelten Kommunikationsteilnetz
Hacker et al. Experiences using Web100 for end-to-end network performance tuning

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification