IP is the acronym of "Internet Protocol". This protocol was designed in 70's with the purpose of connecting computers that were in separate networks. Since then, computers were connected each other by means of local networks, but theses local networks were separated, representing information island.

Internet, as a name to designate the protocol, and later the worldwide information network, just means "inter network", that is, connection between networks. At the beginning, the protocol had an only military use, but computers from universities, users and enterprises were quickly added.

Internet as worldwide information network is the result of the practical application of the IP protocol, that is, the result of the interconnection of all information networks existing in the world.

The IP address is an only identifier that is applied to each device connected to an IP network. This way, different elements taking part in the network (servers, routers, user computers, etc) communicate among them using their IP address as identifier.

In version 4 of the IP protocol (used nowadays) addresses consist of 4 numbers of 8 bits (an 8 bits number take a value from 0-255 range) that they use to be represented separated by points, for example: 155.54.210.63

A version 4 IP address has 32 bits, which is equivalent to 232 different IP addresses (4 billions more or less).

IPv6 is the acronym of "Internet Protocol Version 6". IPv6 is the Internet next generation protocol, which was firstly designated IPng, that is, "Internet Next Generation".

IPv6 is the update of data network protocol in which Internet is based on. The IETF (Internet Engineering Task Force) developed the basic specifications during 90's to substitute the actual version of Internet protocol, IP version 4 (IPv4), at last 70´s.

IPv4 has demonstrated, by means of its long life, a flexible and powerful design, but it's starting to present problems, as the increase of the IP address demand, the major of all.

New users in so inhabited countries like China or India and new technologies with always connected devices (xDSL, cable, PLC, PDAs, UMTS mobile telephones, etc) are causing the quick disappearance, in a practical way, of available IPv4 addresses.

IPv6 resolves this problem by means of creating a new IP address format, so the number of IP addresses will not extinguish although each device we are able to imagine could connect to Internet.

IPv6 also adds a lot of improvements in areas such as routing and network autoconfiguration. New devices that connect to Internet will be plug and play devices. With IPv6 is not precise to configure DNS IPs, the gateway, the subnetwork mask or any other parameters. The equipment is plugged to the network and gets, the same way, all configuration data.

Scalability: IPv6 has 128 bits addresses versus 32 bits IPv4 addresses. So the number of available IP addresses multiplies by 7.9 * 1028. IPv6 offers a 2128 space (340.282.366.920.938.463.463.374.607.431.768.211.456). To understand what this cipher implies, we only have to calculate how many IP addresses we could get by each square meter of the land surface: 665.570.793.348.866.943.898.599.

Security: IPv6 includes security in its specifications like information encryption and the authentication of the source of this information.

Real time applications: To provide real time traffic better support (i.e. videoconference), IPv6 includes flows labeled in its specifications. By means of this mechanism, routers can recognize the end-to-end flow to which transmitted packets belong to.

Plug and Play: IPv6 includes, in its standard, the "plug and play" mechanism, to facilitate to users the connection of their equipments to the network. The configuration is automatically made.

Mobility: IPv6 includes more efficient and stronger mobility mechanisms.

More clear and optimized specifications: IPv6 will follow IPv4 good practices and removes not used or obsolete IPv4 characteristics, getting an optimization of Internet protocol. The idea is getting good things and removing bad ones of present protocol.

Addressing and routing: IPv6 improves the addressing and routing hierarchy.

Extensibility: IPv6 has been designed to be extensible and offers optimized support for new options and extensions.

The present IP protocol allows having more than 4 thousand millions addresses. The problem about the lack of addresses begins because in 80's decade, not thinking about the future peak of the use of Interne, a great quantity of no necessary addresses were allocated without any kind of control, so many organizations have more addresses that they really need, causing the present lack of addresses since, moreover, not all IP addresses can be used due to the fragmentation.

There is an obvious solution, the renumbering and the reallocation of the IPv4 addressing space. However, it isn't as simple as it seems, even unthinkable in some networks, since it requires worldwide coordination efforts, absolutely unimaginable. Moreover, it would be still limited for the population and the quantity of devices that will be connected to Internet next years.

Temporarily, to alleviate the lack of addresses, NAT (Network Address Translation) mechanisms are employed. This mechanism lies in using an only IPv4 address for an entire network to access to Internet. Unluckily, if we continue using IPv4, this mechanism will turn into permanent.

NAT implies that many applications can't be used, so these applications can only be used in intranets, since many protocols can't go through NAT devices:

Multimedia applications like videoconference applications, telephony through Internet or video on demand don't work through NAT devices. This is due to RTC and RTCP protocols ("Real-time Transport Protocol" and "Real Time Control Protocol") use UDP with dynamic allocation of ports (NAT doesn't support this).

The address consists of 128 bits, versus the 32 bits of currently IPv4 addresses. It is represented as 8 groups of 16 bits each one, separated by the ":" character.

Each 16 bits group is represented by means of 4 hexadecimal ciphers, that is, each cipher has a value between 0 and 15 (0,1,2, ... a,b,c,d,e,f being a=10, b=11, etc to f=15).

An abbreviated format exists to designate IPv6 addresses when all endings are 0, for example:

2001:0ba0::

Is the abbreviated form of the following address:

2001:0ba0:0000:0000:0000:0000:0000:0000

The same way, an only 0 can be written, removing 0's in the left side and 4 0's in the middle of the address can be abbreviated (only once in each address), so:

2001:ba0:0:0:0:0::1234

Is the abbreviated form of the following address:

2001:0ba0:0000:0000:0000:0000:0000:1234

It also exists a method to designate groups of IP addresses or subnetworks that lies in specifying the number of bits that designate the subnetwork, beginning from left to right, using remaining bits to designate single equipments inside the network.

For example, the notation:

2001:0ba0:01a0::/48

Points that the part of the IP address used to represent the subnetwork has 48 bits. Since each hexadecimal cipher has 4 bits, this points that the used part to represent the subnetwork is formed by 12 ciphers, that is: "2001:0ba0:01a0". Remaining ciphers of the IP address would be used to represent nodes inside the network.

Auto-return or loopback virtual address. This address is specified in IPv4 with 127.0.0.1 address. In IPv6 this address is represented as ::1.

Not specified address (::). It will never be allocated to any node since it is used to point absence of address.

IPv6 over IPv4 dynamic/automatic tunnels. They are designated as IPv4 compatible IPv6 addresses, and allow to send IPv6 traffic over IPv4 networks in a transparent way. They are represented as ::, for example ::156.55.23.5.

IPv4 over IPv6 addresses automatic representation: they allow that IPv4 only nodes could still work in IPv6 networks. They are designated as "mapped from IPv4 IPv6 addresses. They are represented as ::FFFF:, for example ::FFFF.156.55.43.3

The process is variable and very complex, since the politics decided by the network administrator is which determines the parameters that will be "assigned" automatically.

At least, and when there is no network administrator, the allocation of a "link local" address is often included. The "link local" address allows the communication with other nodes placed in the same physical link when, for example, we are talking about an Ethernet interface.

"Stateful" and "stateless" are these two mechanisms. Both mechanisms can be used in a complementary way, to define parameters configurations by means of "stateless" or "stateful" mechanisms, or both simultaneously.

"Stateful" autoconfiguration, is often used when is needed a more rigorous control about the address allocated to hosts, on the contrary of "stateless" autoconfiguration (of which only worry is that the address wasn't duplicated).

So, depending on the network administrator politics, it could be required that some addresses were allocated in a permanent way to specific machines, consequently the "stateful" mechanism is required, but the control of the remaining parameters could be not so rigorous.

Of course, the politics can be opposite to the exposed above, that is, the case in which it has no importance the allocated address, and consequently the "stateless" mechanism is used, but it is desired that remaining parameters were allocated in a "static" way, with information stored in a server.

IPv6 addresses are "rented" to an interface for a fixed time, probably infinite.

When this "time of life" expires, the link between the interface and the address is invalidated, and the address can be reallocated to other interface in wherever Internet point.

For the suitable management of addresses expiration time, an address goes through two stages while is assigned to an interface:

a) At first, an address is "preferred", so its use in any communication is no restricted.

b) After that, an address becomes into "deprecated", bringing forward to the fact that its link with the currently interface will be invalidated.

While it is in "deprecated" state, the use of the address is advised against, although it is no forbidden. However, when it was possible, any new communication (for example, the opening of a new TCP connection) must use a "preferred" address. A "deprecated" address should only be used by applications that already used it and it is difficult to change them to other addresses without causing a service interruption.

To insure that allocated addresses, by means of manual mechanisms as well as autoconfiguration ones, are unique in a specific link, it is used, before this allocation, the duplicated addresses detection algorithm.

If a duplicated address is detected, this address can be allocated to the interface.

The address to which the duplicated address detection algorithm is being applying to, it is designated as "attempt", until the end of this algorithm.

In this case, it has no consideration that such address has been allocated to an interface, and therefore received packets are discarded.

Yes. Most of the operative systems that currently supports IPv6 allow the simultaneous use of both protocols. This way, it is possible the communication with IPv4 only networks as well as IPv6 only networks, and the use of the applications designed for both protocols.

Yes. For that a technology designated as tunnel is used. This technology consists in introducing in an end the IPv6 traffic as it was IPv4 protocol data. This way, IPv6 traffic is sent "encapsulated" into IPv4 traffic and, in the other end, this traffic is separated and later performed as IPv6 traffic. For doing that, a tunnels server is needed.

Internet Service Providers (ISPs) currently deploying the new IP protocol version follow the RIRs (Regional Internet Registries) politics about how to give out the enormous IPv6 addressing space among their clients.

There is a big difference between the recommendations to allocate IPv4 addresses, that hold about the economy of addresses, since addresses are a scare resource and should be managed with caution, and IPv6 ones, that hold about the flexibility.

RIPE RIRs are recommending to ISPs and operators that allocate to each IPv6 client a/48 subnetwork with the finality that clients can manage their own subnetworks without using NAT. (The idea is that NAT disappears in IPv6).

Write ipv6 if (if you have Windows 2000 or XP) or ipconfig (for XP with SP1 or later or Windows 2003) in a commands line. If IPv6 is installed the IPv6 interfaces group and its configuration will appear. Otherwise, the commando will specify that the protocol is not installed.

In Linux a big effort is being realizing to adapt existing applications to its support in IPv6. In the following URL we can find the current state of the different Linux distributions with regard to IPv6 support:

The IPv6 protocol, to allow its maximum scalability, uses a system based on a basic header, with minimum information, to differentiate from IPv4, where different options are adding to this basic header.

Otherwise, IPv6 use a header "concatenation" mechanism, so the basic header points which is the following and so on.

The first one is that it is allowed that the size of the basic header was always the same, and perfectly known.

The second one is that routers placed between a source address and a destination address, that is, in the route that a specific packet has to pass through, don't need to process even perform or understand any "following headers". It also means, for IPv4, the disadvantage that routers have to be more frequently updated to support any protocol new function, since it should be able to perform it, even when it hasn't to realize any respected function.

The third one is that there is no limit for the number of options that they support. In IPv4, it only can be supported options until a maximum of 40 bytes.

In IPv6, middle routers don't perform packets fragmentation, but the fragmentation is performed end to end.

That is, source and destination nodes are which perform, by means of the IPv6 stack, the fragmentation of a packet and the reassemble respectively.

The fragmentation process consists in dividing into smaller packets the "fragmentable" part of the source packet, and adding to each one the no fragmentable part, that allows to the destination node the reassemble of such packet.

Is a transition mechanism that allows IPv6 machines to communicate among them through an IPv4 network.

The mechanism consists in creating the IPv6 packets in a normal way and introducing them in an IPv4 packet. The reverse process it is realized in the destination machine, which receives an IPv6 packet.