SIO_ADDRESS_LIST_SORT 사용
SIO_ADDRESS_LIST_SORT IOCTL을 사용하면 애플리케이션 개발자가 IPv6 및 IPv4 대상 주소 목록을 정렬하여 연결에 가장 적합한 주소를 결정할 수 있습니다. SIO_ADDRESS_LIST_SORT IOCTL은 Windows XP 이상에서 지원됩니다.
Windows Vista 이상에서 CreateSortedAddressPairs 함수는 제공된 잠재적 IP 대상 주소 목록을 사용하고, 대상 주소를 호스트 컴퓨터의 로컬 IP 주소와 페어링하고, 두 피어 간의 통신에 가장 적합한 주소 쌍에 따라 쌍을 정렬합니다. CreateSortedAddressPairs 함수는 Windows Vista 이상에서 SIO_ADDRESS_LIST_SORT IOCTL 대신 사용해야 합니다.
다음 섹션에서는 SIO_ADDRESS_LIST_SORT 사용 고려 사항에 대해 설명합니다.
매개 변수
SIO_ADDRESS_LIST_SORT 전달된 버퍼는 SOCKET_ADDRESS_LIST 구조체입니다. 목록의 각 SOCKET_ADDRESS SOCKADDR_IN6 형식이어야 합니다.
SIO_ADDRESS_LIST_SORT IOCTL은 Windows Vista 이상에서 IPv6 및 IPv4 주소를 모두 정렬합니다. 정렬할 목록의 모든 IPv4 주소는 IPv4 매핑된 IPv6 주소 형식이어야 합니다. IPv4 매핑된 IPv6 주소 형식에 대한 자세한 내용은 이중 스택 소켓을 참조하세요.
Windows Server 2003 및 Windows XP에서 SIO_ADDRESS_LIST_SORT IPv6 주소만 정렬합니다. IPv4 매핑된 IPv6 주소 형식의 IPv4 주소는 지원되지 않습니다.
출력 시 IOCTL 코드에서 일부 대상 주소가 유효하지 않다고 판단하는 경우 SOCKET_ADDRESS_LIST 구조체의 iAddressCount 멤버가 입력보다 작을 수 있습니다.
정렬 결정
SIO_ADDRESS_LIST_SORT IOCTL에 대한 IPv6 주소의 정렬 순서는 접두사 정책 테이블을 기반으로 합니다. 접두사 정책 테이블은 Netsh.exe 명령줄 유틸리티를 사용하여 구성됩니다. 다음 명령줄 코드 조각은 기본 Netsh.exe 접두사 정책 테이블 구성 명령을 보여 줍니다.
netsh interface ipv6 show prefixpolicies
netsh interface ipv6 add prefixpolicy ::/96 3 4
netsh interface ipv6 delete prefixpolicy ::/96
netsh interface ipv6 set prefixpolicy ::/96 3 4
참고
Windows Server 2003 및 Windows XP에서 위에 나열된 첫 번째 netsh 명령은 다음과 같습니다. 다른 모든 관련 명령은 동일합니다.
netsh interface ipv6 show prefixpolicy
주소 순서는 IETF에서 게시한 IPv6(인터넷 프로토콜 버전 6)에 대한 기본 주소 선택 에서 RFC 3484에 설명된 알고리즘에 의해 결정됩니다. 자세한 내용은 https://www.ietf.org/rfc/rfc3484.txt를 참조하세요. (이 리소스는 영어로만 사용할 수 있습니다.)
SIO_ADDRESS_LIST_SORT IOCTL은 주소를 최상에서 최악의 주소로 정렬하고 필요한 경우 sin6_scope_id 멤버를 채웁니다. 사이트-로컬 주소의 경우 SIO_ADDRESS_LIST_SORT scope-id를 채우거나 주소를 제거합니다.
SIO_ADDRESS_LIST_SORT IOCTL은 소켓에 바인딩된 원본 주소를 무시하고 매개 변수로 전달된 대상 주소 목록을 기준으로만 정렬합니다.
CreateSortedAddressPairs 함수는 Windows Vista 이상에서 SIO_ADDRESS_LIST_SORT IOCTL 대신 사용해야 합니다. CreateSortedAddressPairs 함수는 로컬 원본 주소와 대상 주소를 포함하는 주소 쌍 목록을 반환합니다. 이렇게 하면 애플리케이션에 각 대상 주소에 사용할 올바른 원본 주소가 제공됩니다. 애플리케이션은 특정 원본 주소를 찾아 결과를 필터링할 수도 있습니다. 을 선택합니다.
요구 사항
SIO_ADDRESS_LIST_SORT IOCTL은 Winsock2.h 헤더 파일에 정의되어 있습니다. Windows Vista 이상용으로 릴리스된 Microsoft SDK(Windows 소프트웨어 개발 키트)에서 헤더 파일의 organization 변경되었으며 SIO_ADDRESS_LIST_SORT IOCTL이 Ws2def.h 헤더 파일에 정의되어 있습니다. Ws2def.h 헤더 파일은 Winsock2.h에 자동으로 포함되며 직접 사용하면 안 됩니다.
SIO_ADDRESS_LIST_SORT IOCTL은 Windows XP 이상에서 지원됩니다.
관련 항목