Welche Vorteile / Auswirkungen wird IPv6 haben auf die Anwendungsentwicklung & Design? [geschlossen]

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

  •  03-07-2019
  •  | 
  •  

Frage

Es hat eine Menge Presse über IPv6 gewesen und die bevorstehenden Umstellung auf IPv6 von IPv4. Ich habe ein gewisses Verständnis von IPv6, aber ich habe mich oft gefragt, wie viel Einfluss IPv6 hat auf die Anwendungsentwicklung & Design (speziell)?

Gibt es einige greifbare / gut bekannten Vorteile von IPv6 bietet, die wir bereits heute nicht haben?

ich weiß, Windows Vista und Server 2008 unterstützen IPv6 out-of-the-box wird jemand (oder mit IPv6 im Sinne der Gestaltung) heute, und wenn ja, was sind die Vorteile? Sollten wir IPv6 in aktuellen und zukünftigen Projekten in Betracht ziehen?

Gibt es gut Beispiele von IPv6-fähigen Anwendungen?

War es hilfreich?

Lösung

Es wird das UI-Design für jede Software auswirken, wo Sie eine IP-Adresse eingegeben wird, wie Sie sie wählen zwischen IPv4- und IPv6-Eingang müssen lassen. Ziemlich offensichtlich, aber.

Mein Verständnis ist, dass sonst nicht viel ändern wird. Die meisten Programme werden mit Vernetzungsmöglichkeiten durch das Betriebssystem zur Verfügung gestellt, so dass durch die Zeitdaten an die Anwendung zurückkommt alle Adressierung und Übertragung Komplexitäten entfernt werden. Natürlich gibt es einige Anwendungen, die mehr beeinflusst werden, aber diejenigen, diejenigen sein werden, die direkt mit dem Netzwerk arbeiten ... nicht die typische Line-of-Business-Anwendung.

Sie müssen sehen, wo Sie Anwendung liegt in der OSI-Modells . Ich denke, dass IP-Adressen Teil der Schicht 3, sind also, wenn Sie über dieser Schicht sind, können Sie von den Änderungen durch das Betriebssystem abstrahiert werden.

Eine Sache, die saugen können alte Spiele, wo Sie in der IP-Adresse eines Spielers setzen Sie (Age of Empires, Starcraft, etc.) anschließen möchten. Es scheint, dass irgendeine Art von IPv4-IPv6-Tunnelsperre, die die Funktionalität des Spiels gebrochen sein wird.

Andere Tipps

Aaron Antwort ist, fürchte ich, so ziemlich falsch. Ja, Änderungen an der Benutzeroberfläche werden notwendig sein, aber jeder Code des traditionellen Socket-APIs wird wahrscheinlich auch wesentliche Änderungen müssen IPv6 unterstützen.

Die meisten älteren Code verwendet eine spezifische „Adressfamilie“ Konstante (AF_INET) und eine bestimmte Datenstruktur (struct sockaddr_in). Jeder Code nach wie vor, dass die Verwendung effektiv in IPv4 Land steckt.

Neuere Code soll moderne API-Aufrufe wie getaddrinfo() verwenden, die die Rücksendung die richtigen Werte für Protokoll der Lage ist, Adressfamilie (dh AF_INET6), Adresse, usw., und zwar unabhängig davon, ob das Remote-Host verwendet IPv4 oder IPv6 (oder beides).

Es ist ein bisschen lang, aber hier ist ein Codebeispiel aus der Linux-man-Seite für getaddrinfo. Beachten Sie, wie der Anruf eine ganze Liste von möglichen Remote-Adressen erhält und versucht, jede wiederum bis es erfolgreich ist:

         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 */

Am Anfang nicht viel. Der Wechsel von IPv4 zu v6 sollte für die meisten Desktop- und Web-Anwendungen transparent sein.

Aber schließlich Anwendungen, die Netzwerkmodelle verwenden, die leichter von IPv6 gemacht werden, werden häufiger geworden. Zum Beispiel der meisten Benutzer sind hinter einem NAT so Mesh-Netzwerke für ein technisches Publikum nur möglich sind. Jeder, der Ports öffnen auf seinem Router hatte für P2P-Software weiß das seine Mutter nicht etwas ist, verwenden können.

Streaming und Rundfunk sind auch Dinge, die leichter von IPv6 gemacht werden.

Alle modernen Web-Browser (Chrome, IE, Safari und Firefox in den Sinn kommen) sind alle IPv6 bewusst. Auch IPv6 bewusst ist μTorrent.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top