What benefits / impact will IPv6 have on application development and design?

There was a lot of press about IPv6 and the upcoming switch to IPv6 with IPv4. I have some understanding of IPv6, but I often wondered what impact IPv6 has on application development and design (in particular)?

Are there any tangible / well-known advantages of IPv6 that we still don't have today?

I know that Windows Vista and Server 2008 support IPv6 out of the box, is anyone using (or developing with IPv6 in mind) today, and if so, what are the benefits? Should we consider IPv6 in current and future projects?

Are there any good examples of applications that support IPv6?

+4
source share
4 answers

This will affect the user interface design for any software in which you enter an IP address, as you will need to let them choose between IPv4 and IPv6 inputs. Pretty obvious though.

I understand that much more will change. Most programs use the network tools provided by the operating system, so by the time the data is returned to the application, all the difficulties of addressing and transmission are deleted. Of course, there are some applications that will have a greater impact, but these will be those that work directly with the network ... not your typical business application.

You need to see where you are in the OSI model . I think IP addresses are part of level 3, so if you are above this level, you are distracted by OS changes.

One thing that can suck is the old games in which you put the IP address of the player you want to connect to (Age of Empires, Starcraft, etc.). It seems that the prohibition of some kind of IPv4-IPv6 tunneling that this game functionality will be violated.

+2
source

The Aaronic answer, I'm afraid, is pretty wrong. Yes, user interface changes will be needed, but any code using traditional socket APIs will also likely require significant changes to support IPv6.

Most older codes use a specific address family constant ( AF_INET ) and a specific data structure ( struct sockaddr_in ). Any code that still uses this is actually stuck on IPv4 ground.

The new code should use modern API calls, such as getaddrinfo() , which is able to return the correct values ​​for the protocol, address family (i.e. AF_INET6 ), addresses, etc., regardless of whether the remote host uses IPv4 or IPv6 (or both).

This is a bit long, but here is a sample code from the Linux man page for getaddrinfo . Pay attention to how the call receives the entire list of potential remote addresses and each time it tries:

  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 */ 
+6
source

Initially a little. Switching from IPv4 to v6 should be transparent to most desktop and web applications.

But in the end, applications using network models that are simplified using IPv6 will become more common. For example, most users are behind NAT, so mesh networks are only available to a technical audience. Anyone who had to open ports on their router for P2P software knows that this is not what his mom could use.

Streaming and broadcasting are also things that are simplified with IPv6.

+3
source

All modern web browsers (Chrome, IE, Safari and Firefox come to mind) all know IPv6. IPv6 is also known - μTorrent.

+1
source

Source: https://habr.com/ru/post/1277786/


All Articles