NetAdapterCx 하드웨어 오프로드 소개

성능을 높이기 위해 Windows TCP/IP 스택은 일부 작업을 적절한 작업 오프로드 기능이 있는 NIC(네트워크 인터페이스 카드)로 오프로드할 수 있습니다.

NetAdapterCx는 오프로드 구성의 용이성 및 오프로드 기능 관리에 중점을 둡니다. 클라이언트 드라이버는 하드웨어 오프로드 기능에 대한 간단한 구성을 지정하고 기능 변경에 대한 알림을 받도록 콜백을 등록하기만 하면 됩니다.

이 지침은 NetAdapterCx의 하드웨어 오프로드에 대한 주요 개념에 대한 개요를 제공합니다.

  • 하드웨어 오프로드 기능은 초기화 중에 네트워크 어댑터 하드웨어에서 보급되며 NetAdapterStart를 호출하기 전에 보급해야 합니다.
  • 드라이버는 표준 레지스트리 키워드를 검사 필요가 없습니다. NetAdapterCx는 레지스트리 키워드를 확인하고 활성 오프로드 기능을 사용하도록 설정할 때 해당 키워드를 적용합니다.
  • 네트워크 어댑터의 활성 오프로드 기능은 네트워크 어댑터가 현재 수행하도록 프로그래밍된 기능입니다. 이는 이전에 클라이언트 드라이버에서 보급한 하드웨어 기능의 하위 집합입니다.
  • TCP/IP 스택 또는 지나치게 많은 프로토콜 드라이버는 네트워크 어댑터의 활성 기능 변경을 요청할 수 있습니다. 클라이언트 드라이버는 활성 오프로드 기능의 변경 내용을 알리기 위해 NetAdapterCx에 콜백을 등록합니다.
  • 오프로드에 패킷 확장이 필요한 경우 네트워크 어댑터가 하드웨어 오프로드에 대한 지원을 보급할 때 자동으로 등록됩니다.

클라이언트 드라이버는 하드웨어가 오프로드할 수 있는 네트워크 패킷 유형에 대해 세분화된 기능 집합을 NetAdapterCx에 보급합니다. 예를 들어 IPv4 옵션, IPv6 확장, TCP 옵션 또는 이러한 조합이 지원되는지 여부일 수 있습니다. 특정 하드웨어는 패킷 헤더 오프셋이 알려진 경우에만 오프로드를 수행할 수 있으며, 이러한 하드웨어의 클라이언트 드라이버는 패킷 헤더 오프셋에 대한 제한을 지정할 수도 있습니다. 예를 들어 하드웨어 설명자에 계층 4 헤더 오프셋을 저장할 비트가 8비트만 있는 경우 클라이언트 드라이버는 Layer4HeaderOffset을 255로 설정합니다. 클라이언트 드라이버의 기능이 적용되지 않는 모든 패킷은 NetAdapterCx의 소프트웨어에서 오프로드됩니다.

하드웨어가 특정 조합을 처리할 수 없는 경우 클라이언트 드라이버는 해당 기능에 대한 지원을 선언하거나 이러한 패킷이 발생할 때 소프트웨어 대체 자체를 수행하지 않아야 합니다. 대신 NetAdapterCx에서 필요한 소프트웨어 대체를 자동으로 수행할 수 있도록 해야 합니다.

참고

NetAdapterCx가 하드웨어에서 지원되지 않는 오프로드에 대해 소프트웨어 대체를 수행하려면 클라이언트 드라이버에 INF 파일에 해당 오프로드에 대한 표준화된 키워드를 포함해야 합니다. 예를 들어 클라이언트 드라이버가 하드웨어에서 RSC 오프로드를 전혀 수행할 수 없고 소프트웨어에서 이 오프로드를 수행하기 위해 NetAdapterCx가 필요한 경우 *RscIpv4 및 *RscIpv6 키워드를 INF에 포함해야 합니다.

다음 오프로드는 NetAdapterCx 및 Windows TCP/IP 스택에서 지원됩니다.

오프로드 이름 Description
Checksum IP 및 TCP 체크섬의 계산 및 유효성 검사를 NIC로 오프로드합니다.
일반 송신 오프로드(GSO) IPv4 및 IPv6용 큰 TCP/UDP 패킷의 구분을 오프로드합니다.
Receive Segment Coalescing (RSC) IPv4 및 IPv6에 대해 수신된 TCP 세그먼트 시퀀스의 결합을 오프로드합니다.

TCP/IP 스택 또는 지나치게 많은 프로토콜 드라이버가 net 어댑터의 활성 기능 변경을 요청할 때 오프로드를 구성하고 오프로드를 업데이트하는 방법에 대한 자세한 내용은 해당 오프로드 참조 페이지를 참조하세요.