Windows 7의 네트워크 추적: 아키텍처

아래 그림에서는 Windows 7의 기본 네트워크 추적 아키텍처를 보여 줍니다.

네트워크 추적 아키텍처 다이어그램

네트워크 추적은 Windows에서 사용할 수 있는 ETW(Windows용 이벤트 추적) 프레임워크를 활용합니다. 네트워크 구성 요소(예: Winsock, TCP/IP, NDIS, 패킷 캡처 등)는 ETW 추적 공급자로 등록하고 네트워크 활동과 관련된 이벤트를 내보냅니다. significance의 기록 가능한 활동은 ETW에 기록된 이벤트일 수 있습니다. ETW 컨트롤러 역할을 하는 netsh 추적 컨텍스트를 사용하여 이러한 네트워크 구성 요소 및 패킷 캡처에 대한 추적을 사용하도록 설정할 수 있습니다.

생성된 추적은 ETL(이벤트 추적 로그) 파일에서 수집됩니다. 그런 다음 이러한 ETL 파일은 네트워크 모니터 3.2 이상, 이벤트 뷰어, netsh 추적 변환 또는 Tracerpt.exe 같은 다양한 도구를 사용하여 분석할 수 있습니다.

각 ETW 이벤트에는 ETW가 이벤트 속성, 타임스탬프를 비롯한 정보를 저장하는 공통 헤더가 있습니다. (활동 ID에 대한 자세한 내용은 엔드 투 엔드 시나리오에서 관련 이벤트 작성을 참조하세요.) 활동 ID는 이벤트의 상관 관계를 지정하는 데 사용됩니다. 사용자 모드에서 활동 ID는 스레드에 저장되고 한 스레드에 기록된 모든 이벤트는 동일한 활동 ID로 자동으로 태그가 지정됩니다. 커널 모드에서는 이벤트가 기록될 때 활동 ID를 명시적으로 전달해야 합니다. 기본적으로 ETL 파일은 특정 활동 ID에서 그룹 이벤트와 상호 연결됩니다.

Windows 이벤트 및 ETW에 대한 자세한 내용은 Windows 이벤트를 참조하세요.

네트워크 추적의 ETW 구성 요소

네트워크 추적은 ETW를 기본 추적 메커니즘으로 사용하여 네트워킹 하위 시스템이 수행하는 일에 대한 정보를 제공합니다. ETW에는 이벤트 추적 세션, 이벤트 공급자, 이벤트 컨트롤러 및 이벤트 소비자의 네 가지 기본 구성 요소가 있습니다.

버퍼링 및 로깅은 공급자의 이벤트를 수락하고 추적 파일을 만드는 이벤트 추적 세션에서 수행됩니다.

이벤트 공급자는 ETW 세션에 이벤트를 쓰는 논리적 엔터티입니다. 이벤트 공급자는 사용자 모드 애플리케이션, 관리되는 애플리케이션, 드라이버 또는 기타 소프트웨어 엔터티일 수 있습니다. 이벤트 공급자는 ETW에 등록하고 ETW 로깅 API를 호출하여 코드의 다양한 지점에서 이벤트를 작성합니다. 많은 운영 체제 구성 요소에서 이벤트 계측이 증가함에 따라 Windows의 간단한 애플리케이션이나 시나리오에도 이벤트 공급자인 여러 구성 요소가 포함됩니다.

이벤트 컨트롤러는 이벤트 추적 세션을 시작 및 중지하고 공급자를 사용하도록 설정합니다. 이벤트 컨트롤러 애플리케이션에서 이벤트 공급자를 동적으로 사용하도록 설정하면 공급자는 이벤트 컨트롤러에서 지정한 특정 이벤트 추적 세션으로 이벤트를 보냅니다. 이벤트 공급자가 이벤트 추적 세션으로 보낸 각 이벤트는 이벤트 메타데이터 및 공급자가 기록한 추가 사용자 지정 데이터를 포함하는 고정 헤더로 구성됩니다.

이벤트 소비자는 로그 파일을 읽거나 실시간 이벤트에 대한 이벤트 추적 세션을 수신 대기하고 처리하는 애플리케이션입니다. 이벤트 소비자의 한 가지 예는 Windows 7에서 네트워크 추적을 통해 생성된 로그 파일을 읽고 표시하는 기능을 포함하는 Microsoft 네트워크 모니터 3.2입니다.

이벤트는 이벤트 소비자에게 시간순으로 전달되며 이벤트를 특정 형식으로 표시하는 다양한 이벤트 소비자 애플리케이션이 있습니다. 이벤트가 세션에 기록되면 ETW는 로깅 스레드의 타임스탬프, 프로세스 및 스레드 ID, 프로세서 번호 및 CPU 사용량 데이터를 포함하여 이벤트 헤더에 추가 정보를 추가합니다. 그런 다음 이 데이터는 공급자가 포함하는 사용자 지정 데이터와 함께 이벤트 소비자에게 전달됩니다.

이벤트 로깅 API 를 사용하는 공급자는 이벤트 매니페스트라는 XML 파일을 제공해야 합니다. 이 파일은 공급자가 작성한 이벤트에 대한 모든 사용자 지정 데이터 및 레이아웃 정보를 정의하는 메타데이터를 제공합니다. 그런 다음 범용 소비자 애플리케이션은 TDH(추적 데이터 도우미) API 를 사용하여 이벤트 메타데이터를 검색하고, 이벤트를 디코딩하고, 표시합니다.

Windows 7의 네트워크 추적을 통해 이벤트 컨트롤러/소비자 쪽에는 전체 Windows 진단 및 지원 환경과 통합된 엔드 투 엔드 시나리오 기반 추적 지원이 포함됩니다. 시나리오는 시나리오와 관련된 이벤트 공급자의 컬렉션을 정의합니다. 이벤트 컨트롤러/소비자 쪽은 네트워크 구성 요소에서 지정된 시나리오에 대한 관련 공급자를 포함하여 추적을 사용할 수 있는 시나리오(컨텍스트)를 정의합니다. 이벤트 공급자 쪽에는 ETW 작업 ID를 통해 상관 관계를 지정할 수 있는 네트워크 스택의 여러 구성 요소에서 표준화된 네트워크 추적 이벤트가 포함됩니다. 공급자는 키워드, 수준, 작업 및 opcode와 같은 ETW 개념의 사용을 표준화하는 공통 네트워크 스키마를 사용합니다. 또한 스키마는 오류 이벤트, 패킷 삭제 이벤트, 스키마 이벤트 및 상태 전환 이벤트와 같은 많은 네트워크 구성 요소에 공통적인 이벤트를 정의합니다.