어떤 혜택/영향을 미칠 것입니다 IPv6 야에 응용 프로그램 개발 및 디자인?[마감]

StackOverflow https://stackoverflow.com/questions/207838

  •  03-07-2019
  •  | 
  •  

문제

가 있었다 많은 압박에 대 IPv6 와 임박한 전환 IPv6 에서 IPv4.나의 몇 가지 이해를 IPv6 지만,나는 어떻게 많은 영향을 미칠 IPv6 에 있는 응용 프로그램 개발 및 디자인(특)?

거기에 몇 가지 유형의/는 잘 알려진 장점 IPv6 제공하는 우리는 이미 없 오늘?

내가 알고있는 Windows Vista 및 Server2008IPv6 를 지원 out-of-the-box,사람을 사용하여(또는 디자인으로 IPv6 에서 마음)는 오늘,그리고 만약 그렇다면,어떤 혜택이 있습니까?우리는 고려 IPv6 에서는 현재 및 미래의 프로젝트?

은 없 의 예 IPv6 인식 응용 프로그램은 무엇입니까?

도움이 되었습니까?

해결책

그것은 영향을 미칠 것이 UI 디자인에 대한 어떠한 소프트웨어가 당신이 입력한 IP 주소는 필요하므로 그들이 선택한 사이 IPv4 와 IPv6 을 입력합니다.분명 하지만입니다.

내가 이해되지 않은 다른 많은 것이 변경됩니다.대부분의 프로그램을 사용하는 네트워킹 시설을 운영 체제에서 제공하는,그래서 시간에 의해 데이터가 다시 응용 프로그램을 모두 해결 및 전송한 복잡성 제거됩니다.물론 응용 프로그램이 있는 것입니다 더 영향을 받지만,그가 될 수 있는 사람과 함께 직접 작업 네트워크...당신의 전형적인 라인-of-비즈니스 응용 프로그램.

당신이 볼 필요가있는 곳에서 당신은 응용 프로그램에 거짓말 OSI 모델.나는 생각한 IP 주소는 부분의 3 층,그래서 당신은 위층에,당신은 추상화에서 변경 by the OS.

하나는 것도 빨래는 게임에 넣은 IP 주소의 플레이어에 연결하려는(제국의 시대,스타크래프트,etc.).그것은 것을 제외하고는 어떤 종류의 IPv4IPv6 링는 게임의 기능을 깨진 것입니다.

다른 팁

Aaron의 대답은 거의 틀렸다는 것입니다. 예, UI 변경이 필요하지만 기존 소켓 API를 사용하는 모든 코드도 IPv6을 지원하기 위해 상당한 변경이 필요할 수 있습니다.

대부분의 오래된 코드는 특정 "주소 제품군"상수를 사용합니다 (AF_INET) 및 특정 데이터 구조 (struct sockaddr_in). 여전히 사용하는 모든 코드는 IPv4 토지에 효과적으로 붙어 있습니다.

최신 코드는 다음과 같은 최신 API 호출을 사용해야합니다 getaddrinfo() 프로토콜에 대한 올바른 값을 반환 할 수있는 주소 제품 (즉 AF_INET6원격 호스트가 IPv4 또는 IPv6 (또는 둘 다)을 사용하는지 여부에 관계없이), 주소 등.

조금 길지만 Linux Man Page의 코드 샘플이 있습니다. getaddrinfo. 통화가 어떻게 잠재적 인 원격 주소의 전체 목록을 얻고 성공할 때까지 각각 차례로 시도하는 방법에 유의하십시오.

         memset(&hints, 0, sizeof(struct addrinfo));
         hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */
         hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
         hints.ai_flags = 0;
         hints.ai_protocol = 0;          /* Any protocol */

         s = getaddrinfo(hostname, service, &hints, &result);
         if (s != 0) {
             fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(s));
             exit(EXIT_FAILURE);
         }

         /* getaddrinfo() returns a list of address structures.
            Try each address until we successfully connect(2).
            If socket(2) (or connect(2)) fails, we (close the socket
            and) try the next address. */

         for (rp = result; rp != NULL; rp = rp->ai_next) {
             sfd = socket(rp->ai_family, rp->ai_socktype,
                          rp->ai_protocol);
             if (sfd == -1)
                 continue;

             if (connect(sfd, rp->ai_addr, rp->ai_addrlen) != -1)
                 break;                  /* Success */

             close(sfd);
         }

         if (rp == NULL) {               /* No address succeeded */
             fprintf(stderr, "Could not connect\n");
             exit(EXIT_FAILURE);
         }

         freeaddrinfo(result);           /* No longer needed */

처음에는 많은 수 없습니다.스위치에서 IPv4v6 투명해야한 대부분의 데스크톱 및 웹 응용 프로그램입니다.

지만 결국에는 응용 프로그램을 사용하는 네트워크 모델에 의해 쉽게 이루어 IPv6 가 될 것이 더 일반적입니다.예를 들면 대부분의 사용자가 뒤에 NAT 그래서 메쉬 네트워크에만 가능하에 대한 기술 관객입니다.누군가 포트를 열어 자신의 라우터에 대한 P2P 소프트웨어 알고 이것은 무언가가 그의 엄마가 사용할 수 있습니다..

스트리밍 방송 또한 것들에 의해 쉽게 이루어 IPv6.

모든 최신 웹 브라우저 (Chrome, IE, Safari 및 Firefox가 떠오르는)는 모두 IPv6을 알고 있습니다. 또한 IPv6 인식은 µtorrent입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top