2011-05-02 4 views

답변

7

주소가 IPv4 인 경우 IPv6으로 표시하는 것이 왜 어떨까요?

포워드 호환성?

+0

동의합니다. ** ** IPv6 호환성을 강요한다고 말할 수 있습니다. – pickypg

15

IPv6를 통해 표현 된 IPv4이므로 응용 프로그램이 하나의 IP 스택 만 지원하면됩니다.

IPv6 표기법을 통해 IPv4 주소를 참조 할 수 있다는 것은 응용 프로그램에서 실제로 IPv6 지원이 제대로 작동하고 중복 된 작업에 대해 걱정할 필요가 없다는 것을 의미합니다.

요즘 일부 배포판은 기본적으로 IPv4 호환성을 사용하지 않으며 (예 : Debian) Windows는 기본적으로이를 수행합니다. 이를 프로그래머로 사용하려면 하나의 IPv4 소켓과 IPV6_V6ONLY 플래그가있는 하나의 IPv6 소켓 (/proc/sys/net/ipv6/bindv6only의 상태에 관계없이 IPv4 호환성없이 IPv6 전용을 강제로 바인딩해야 함)을 바인딩해야합니다. 아래의 의견에

는, 마이크는 당신이 (당신이 옆에 AF_INET 및 AF_INET6 측면을 사용하는 AF_INET6를 이동하거나 결정하기로 결정 여부를 큰 관련이있는) AF_ 독립적 인 프로그래밍을위한 sockaddr_storage를 사용하는 방법에 대한 정보와 this great site에 나를 연결 . 또한 Beej 's Guide to Network Programming은 some similar information도 있습니다. 추천 독서. 고마워, 마이크!

+1

+1, sockaddr_storage 구조를 언급 할 가치가 있습니다. 더 많은 것을 읽으십시오 [여기에서] (http://www.kame.net/newsletter/19980604/). – mpontillo

6

해당 양식을 V4MAPPED 주소와 함께 사용하는 것이 적절합니다.

V4MAPPED 주소는 네트워크에서 전송 된 실제 IPv6 헤더에 나타나지 않아야합니다. 이중 전송 스택은 IPv4 및 IPv6를 동시에 사용하여 통신 할 수있는 이중 스택 IPv4/IPv6 호스트 구현을 사용하는 응용 프로그램에서만 사용됩니다.

엔드 포인트가 IPv6 전용 [시스템의 기본값 일 수 있음]을 필요로하지 않고 IPv6 프로토콜 제품군을 사용하여 TCP 연결을 열고 목적지 주소를 V4MAPPED 형식으로 지정하면 운영 체제가 연결됩니다 IPv4에서 사용하고 시스템에서 getsockname의 도덕적으로 해당하는 것을 호출하면 V4MAPPED 주소가 반환됩니다.

+1

네트워크에 표시되지 않는 이유에 대한 자세한 내용은 다음을 참조하십시오. http://tools.ietf.org/html/draft-itojun-v6ops-v4mapped-harmful-02 – Jander