Seguimiento de red en Windows 7: Arquitectura
En la ilustración siguiente se muestra la arquitectura básica de seguimiento de red en Windows 7.
El seguimiento de red utiliza el marco seguimiento de eventos para Windows (ETW) disponible en Windows. Los componentes de red (como Winsock, TCP/IP, NDIS, captura de paquetes, etc.) se registran como proveedores de seguimiento ETW y emiten eventos relacionados con la actividad de red. Cualquier actividad registrable de importancia puede ser un evento registrado en ETW. El seguimiento de estos componentes de red y capturas de paquetes se puede habilitar mediante el contexto de seguimiento netsh que actúa como controlador ETW.
Los seguimientos generados se recopilan en un archivo de registro de seguimiento de eventos (ETL). Estos archivos ETL se pueden analizar con varias herramientas, como Network Monitor 3.2 y versiones posteriores, Visor de eventos, conversión de seguimiento de netsh o Tracerpt.exe.
Cada evento ETW tiene un encabezado común donde ETW almacena información como las propiedades del evento, las marcas de tiempo y el identificador de actividad. (Para obtener más información sobre los identificadores de actividad, vea Escribir eventos relacionados en un escenario de un extremo a otro). El identificador de actividad se usa para correlacionar eventos. En el modo de usuario, los identificadores de actividad se almacenan en subprocesos y todos los eventos registrados en un subproceso se etiquetarán automáticamente con el mismo identificador de actividad. En el modo kernel, el identificador de actividad debe pasarse explícitamente cuando se registra un evento. De forma predeterminada, los archivos ETL se correlacionan con eventos de grupo en identificadores de actividad específicos.
Para obtener más información sobre eventos de Windows y ETW, vea Eventos de Windows.
Componentes ETW en el seguimiento de red
El seguimiento de red usa ETW como mecanismo de seguimiento principal para proporcionar información sobre lo que hacen los subsistemas de red. Hay cuatro componentes principales en ETW: sesiones de seguimiento de eventos, proveedores de eventos, controladores de eventos y consumidores de eventos.
El almacenamiento en búfer y el registro tienen lugar en sesiones de seguimiento de eventos, que aceptan eventos de proveedores y crean archivos de seguimiento.
Un proveedor de eventos es una entidad lógica que escribe eventos en sesiones ETW. Un proveedor de eventos puede ser una aplicación en modo de usuario, una aplicación administrada, un controlador o cualquier otra entidad de software. Los proveedores de eventos se registran con ETW y escriben eventos de varios puntos en el código invocando la API de registro de ETW. Debido a la creciente instrumentación de eventos en muchos componentes del sistema operativo, incluso una aplicación o escenario simple en Windows contendrá varios componentes que son proveedores de eventos.
Un controlador de eventos inicia y detiene las sesiones de seguimiento de eventos y habilita los proveedores. Cuando la aplicación del controlador de eventos habilita dinámicamente un proveedor de eventos, el proveedor envía eventos a una sesión de seguimiento de eventos específica designada por el controlador de eventos. Cada evento enviado por el proveedor de eventos a la sesión de seguimiento de eventos consta de un encabezado fijo, que incluye metadatos de eventos y cualquier dato personalizado adicional registrado por el proveedor.
Un consumidor de eventos es una aplicación que lee los archivos de registro o que escucha una sesión de seguimiento de eventos para eventos en tiempo real y los procesa. Un ejemplo de consumidor de eventos es Microsoft Network Monitor 3.2, que incluye la capacidad de leer y mostrar archivos de registro generados por el seguimiento de red en Windows 7.
Los eventos se entregan a los consumidores de eventos en orden cronológico y hay varias aplicaciones de consumidor de eventos que muestran los eventos en formatos específicos. Cuando se registra un evento en una sesión, ETW agrega información adicional al encabezado del evento, incluida la marca de tiempo, el identificador de proceso y subproceso, el número de procesador y los datos de uso de CPU del subproceso de registro. A continuación, estos datos se pasan a los consumidores de eventos, junto con los datos personalizados incluidos por el proveedor.
Se espera que los proveedores que usan las nuevas API de registro de eventos proporcionen un archivo XML denominado manifiesto de evento. Este archivo proporciona metadatos para definir todos los datos personalizados y la información de diseño de los eventos escritos por el proveedor. A continuación, una aplicación de consumidor de uso general usa las API del asistente de datos de seguimiento (TDH) para recuperar los metadatos del evento, descodificar los eventos y mostrarlos.
Con el seguimiento de red en Windows 7, el lado del consumidor o el controlador de eventos incluye compatibilidad de seguimiento basada en escenarios de un extremo a otro integrada con las experiencias generales de diagnóstico y soporte técnico de Windows. Un escenario define una colección de proveedores de eventos implicados en el escenario. El lado del consumidor o controlador de eventos define los escenarios (contextos) donde se puede usar el seguimiento, incluidos los proveedores pertinentes para escenarios concretos en los componentes de red. El lado del proveedor de eventos incluye eventos de seguimiento de red estandarizados de distintos componentes de la pila de red, que se pueden correlacionar a través de identificadores de actividad ETW. Los proveedores usan un esquema de red común que normaliza el uso de conceptos de ETW, como palabras clave, niveles, tareas y códigos de operación. El esquema también define eventos que son comunes para muchos componentes de red, como eventos de error, eventos de eliminación de paquetes, eventos de esquema y eventos de transición de estado.