Support for IPv6 Protocol
What is IPv6? As you probably know, the current format of internet addresses, using the familiar notation of 4 dotted numbers such as "192.168.0.1" is reaching its limitations with the ever-growing number of computers on the internet, as it can only address 4 billion computers in theory, with the practical number being much lower due to how network infrastructure and sub-networks partition the address space. This current address format is commonly referred to as IPv4.
in 1998, a new standard for internet addressing was proposed, IPv6, which uses 128-bits to identify internet addresses, allowing a much wider range of computers and devices to be addressed and a much more flexible partitioning of the address space into sub-networks.
Even though it was initially introduced almost 9 years ago at the time of writing, it is only now that IPv6 is starting to come to the general attention with Windows Vista being the first Windows operating system to install IPv6 support out of the box, and it will probably be a few more years, until use of IPv6 will come to a stage where its support becomes an absolute requirement.
None the less, we are introducing full support for it in the 'Vinci' release of our .NET products, to ensure that your applications are now ready for use in IPv6 network scenarios.
IPv6 in Internet Pack 'Vinci'
Support has been added to Internet Pack 2.0 'Vinci' to listen on and connect to IPv6 addresses.
Most noticeably, on Windows Vista, "localhost" no longer maps to 127.0.0.1 but to ::1, causing projects written using Internet Pack 1.0 or RemObjects SDK 4.0 and below to fail to connect when using "localhost" as part of their URL, as no IPv6 support was provided.
In Internet Pack 'Vinci' (and therefore in the RemObjects SDK for .NET 'Vinci'), both servers and clients now support IPv6. This support has been added to the core library transparently and, after recompiling the projects, should fall into place and work automatically.
Options are, of course, provided on the server components to manually disable
either
IPv4 or IPv6, if that should be required.
IPv6 on the Server
On the server, new binding options are provided via the BindingV6 and BindingV4 properties (the latter replaces the newly deprecated Binding property).
In addition, BindV4 and BindV6 boolean properties have been added, which allow you to optionally disable support for either IPv4 or IPv6
IPV6 on the Client
Client-side, IPV6 support works seamlessly without any visible changes to the components' or class library's interfaces. IPv6 network addresses or host-names that resolve to IPv6 addresses can be used in all places.
The UrlParser class has also been updated to support the new extension to HTTP URLs for literal IPv6 addresses. Since IPv6 addresses contain colons, literal addresses need to be surrounded by square brackets, to separate them from the optional port number). For example: "http://[::1]:8099/bin" is now a valid URL for a local RemObjects SDK server when, using IP based clients.
More Information
Please refer to RFC 2460 for IPv6 in general, and RFC 2732 for the use of literal IPv6 addresses in HTTP URLs.