- IPv4 and IPv6 incompatibility
Internet Protocol version 4 (IPv4) has long been the industry standard version of the Internet Protocol (IP) for delivering data over the internet. Internet Protocol version 6 (IPv6) is the next generation internet layer protocol. Both versions of IP are in use today.
IPv4 addresses are 32-bits long, written in decimal and separated by periods. IPv6 addresses are 128-bits long, written in hexadecimal and separated by colons. IPv4 addresses can't be used as-is in IPv6, but IPv6 does support a special class of addresses: the IPv4-mapped address. To create an IPv4-mapped address, the first 80 bits are set to zero, the next 16 are set to one, and the last 32 bits represent the IPv4 address.
For example, here is the same IP address expressed in both formats:
IPv4 address IPv4-mapped address (for use in IPv6) 192.168.0.1 ::ffff:192.168.0.1By default, if IPv6 is enabled on any of the adaptors, Java uses IPv6. However, IPv4-mapped addresses are not currently available under Solaris OS (see RFE #6622184). For this reason, if you want to use the IPv4 address format, you must specify the
java.net.preferIPv4Stack
property, as shown in this example:% java -Dcom.sun.sdp.conf=sdp.conf -Djava.net.preferIPv4Stack=true MyApplication
- Bugs
There were a few bugs in the early InfiniBand implementation. These are fixed in the S10u8 release of Solaris. Please make sure you are using this release or later.