nanog mailing list archives

Re: "Programmers can't get IPv6 thus that is why they do not have IPv6 in their applications"....


From: Ingo Flaschberger <if () xip at>
Date: Wed, 28 Nov 2012 19:47:37 +0100

Am 28.11.2012 19:30, schrieb david peahi:
Many years ago the standard books on application network programming were
based on C language. Books such as "Adventures in UNIX Network
Programming", and Professor Comer's "Internetworking with TCP/IP Vol 3"
detailed how to write C programs using BSD sockets where binding to a
socket brought the program up in listening mode on an 2 tuple IP v4 IP
address/TCP well known port. Once the program opened and bound to a socket
"netstat -n" would show that program to be "listening" on the 2-tuple.

Do today's programmers still use basic BSD socket programming? Is there an
equivalent set of called procedures for IPv6 network application
programming?

On the practical side: Have all programmers created a 128 bit field to
store the IPv6 address, where IPv4 programs use a 32 bit field to store the
IP address? This would seem to be similar to the year 2000 case where
almost all programs required auditing to see if they took into account
dates after 1999.

on linux/unix: if the program only opens a tcp-connection or listen on it, it's simple. socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) -> socket = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP)

It's more work, to build a dual-stack program - then 2 sockets needs to be opened and handled.
But overall - it's trivial.

y2k: the will be app's that will it never made to ipv6 - but you can do ipv6->ipv4 translation NAT-PT (RFC2766)

Kind regards,
     Ingo Flaschberger




Current thread: