Freigeben über


Netzwerkablaufverfolgung in Windows 7: Architektur

Die folgende Abbildung zeigt die grundlegende Architektur der Netzwerkablaufverfolgung in Windows 7.

Architektur der Netzwerkablaufverfolgung

Die Netzwerkablaufverfolgung verwendet das ETW-Framework (Event Tracing for Windows), das in Windows verfügbar ist. Netzwerkkomponenten (z. B. Winsock, TCP/IP, NDIS, Paketerfassung usw.) registrieren sich als ETW-Ablaufverfolgungsanbieter und geben Ereignisse im Zusammenhang mit der Netzwerkaktivität aus. Jede beschreibbare Aktivität von Bedeutung kann ein ereignis sein, das bei ETW protokolliert wird. Die Ablaufverfolgung für diese Netzwerkkomponenten und Paketerfassungen kann mithilfe des netsh-Ablaufverfolgungskontexts aktiviert werden, der als ETW-Controller fungiert.

Die generierten Ablaufverfolgungen werden in einer ETL-Datei (Event Trace Log) gesammelt. Diese ETL-Dateien können dann mit einer Reihe von Tools analysiert werden, z. B. Network Monitor 3.2 und höher, Ereignisanzeige, netsh trace convert oder Tracerpt.exe.

Jedes ETW-Ereignis verfügt über einen gemeinsamen Header, in dem ETW Informationen wie die Ereigniseigenschaften, Zeitstempel und Aktivitäts-ID speichert. (Weitere Informationen zu Aktivitäts-IDs finden Sie unter Schreiben verwandter Ereignisse in einem End-to-End-Szenario. Die Aktivitäts-ID wird verwendet, um Ereignisse zu korrelieren. Im Benutzermodus werden Aktivitäts-IDs in Threads gespeichert, und alle in einem Thread protokollierten Ereignisse werden automatisch mit derselben Aktivitäts-ID markiert. Im Kernelmodus muss die Aktivitäts-ID explizit übergeben werden, wenn ein Ereignis protokolliert wird. ETL-Dateien werden standardmäßig korreliert, um Ereignisse unter bestimmten Aktivitäts-IDs zu gruppieren.

Weitere Informationen zu Windows-Ereignissen und ETW finden Sie unter Windows-Ereignisse.

ETW-Komponenten in der Netzwerkablaufverfolgung

Die Netzwerkablaufverfolgung verwendet ETW als primären Ablaufverfolgungsmechanismus, um Informationen zur Funktionsweise der Netzwerksubsysteme bereitzustellen. Es gibt vier Standard Komponenten in ETW: Ereignisablaufverfolgungssitzungen, Ereignisanbieter, Ereigniscontroller und Ereignisverbraucher.

Pufferung und Protokollierung finden in Ereignisablaufverfolgungssitzungen statt, die Ereignisse von Anbietern akzeptieren und Ablaufverfolgungsdateien erstellen.

Ein Ereignisanbieter ist eine logische Entität, die Ereignisse in ETW-Sitzungen schreibt. Ein Ereignisanbieter kann eine Anwendung im Benutzermodus, eine verwaltete Anwendung, ein Treiber oder eine andere Softwareentität sein. Ereignisanbieter registrieren sich bei ETW und schreiben Ereignisse von verschiedenen Punkten im Code aus, indem sie die ETW-Protokollierungs-API aufrufen. Aufgrund der wachsenden Ereignisinstrumentation in vielen Betriebssystemkomponenten enthält selbst eine einfache Anwendung oder ein einfaches Szenario in Windows mehrere Komponenten, die Ereignisanbieter sind.

Ein Ereigniscontroller startet und beendet Ereignisablaufverfolgungssitzungen und aktiviert Anbieter. Wenn ein Ereignisanbieter von der Ereigniscontrolleranwendung dynamisch aktiviert wird, sendet der Anbieter Ereignisse an eine bestimmte Ereignisablaufverfolgungssitzung, die vom Ereigniscontroller festgelegt ist. Jedes Ereignis, das vom Ereignisanbieter an die Ereignisablaufverfolgungssitzung gesendet wird, besteht aus einem festen Header, der Ereignismetadaten und alle zusätzlichen benutzerdefinierten Daten enthält, die vom Anbieter protokolliert werden.

Ein Ereignis consumer ist eine Anwendung, die Protokolldateien liest oder eine Ereignisablaufverfolgungssitzung auf Echtzeitereignisse lauscht und diese verarbeitet. Ein Beispiel für einen Ereignisverbraucher ist Microsoft Network Monitor 3.2, der die Möglichkeit zum Lesen und Anzeigen von Protokolldateien enthält, die von der Netzwerkablaufverfolgung in Windows 7 erstellt wurden.

Ereignisse werden in chronologischer Reihenfolge an Ereignisverbraucher übermittelt, und es gibt verschiedene Ereignis consumer-Anwendungen, die die Ereignisse in bestimmten Formaten anzeigen. Wenn ein Ereignis bei einer Sitzung protokolliert wird, fügt ETW dem Ereignisheader zusätzliche Informationen hinzu, einschließlich Zeitstempel, Prozess- und Thread-ID, Prozessornummer und CPU-Auslastungsdaten des Protokollierungsthreads. Diese Daten werden dann zusammen mit allen benutzerdefinierten Daten, die vom Anbieter enthalten sind, an Ereignisverbraucher übergeben.

Von Anbietern, die die neuen Ereignisprotokollierungs-APIs verwenden, wird erwartet, dass sie eine XML-Datei mit dem Namen Ereignismanifest bereitstellen. Diese Datei stellt Metadaten bereit, um alle benutzerdefinierten Daten und Layoutinformationen für die vom Anbieter geschriebenen Ereignisse zu definieren. Eine universelle Consumeranwendung verwendet dann TDH-APIs (Trace Data Helper), um die Ereignismetadaten abzurufen, die Ereignisse zu decodieren und anzuzeigen.

Bei der Netzwerkablaufverfolgung in Windows 7 umfasst die Ereigniscontroller-/Consumerseite eine End-to-End-Unterstützung für szenariobasierte Ablaufverfolgung, die in die gesamte Windows-Diagnose- und Supporterfahrung integriert ist. Ein Szenario definiert eine Sammlung von Ereignisanbietern, die am Szenario beteiligt sind. Die Ereigniscontroller-/Consumerseite definiert die Szenarien (Kontexte), in denen die Ablaufverfolgung verwendet werden kann, einschließlich der relevanten Anbieter für bestimmte Szenarien über Netzwerkkomponenten hinweg. Die Ereignisanbieterseite umfasst standardisierte Netzwerkablaufverfolgungsereignisse aus verschiedenen Komponenten im Netzwerkstapel, die über ETW-Aktivitäts-IDs korreliert werden können. Die Anbieter verwenden ein allgemeines Netzwerkschema, das die Verwendung von ETW-Konzepten wie Schlüsselwörtern, Ebenen, Aufgaben und Opcodes standardisiert. Das Schema definiert auch Ereignisse, die für viele Netzwerkkomponenten üblich sind, z. B. Fehlerereignisse, Paketabbruchereignisse, Schemaereignisse und Zustandsübergangsereignisse.