The following information is based in part upon this resource.

IPv4 and IPv6 Addressing Schemes

Internet addresses are coordinated by an international effort in order to make sure valid devices on the Internet can be found and provided service. The two most popular (also meaning most used) protocols for addressing are the Internet Protocol version 4 and Internet Protocol version 6.

IPv4 Address Classes

The IPv4 address space can be subdivided into 5 classes — Class A, B, C, D and E. Each class consists of a contiguous subset of the overall IPv4 address range.

With a few special exceptions explained further below, the values of the leftmost four bits of an IPv4 address determine its class as follows:

Class Leftmost bits Start address Finish address
A 0xxx 0.0.0.0 127.255.255.255
B 10xx 128.0.0.0 191.255.255.255
C 110x 192.0.0.0 223.255.255.255
D 1110 224.0.0.0 239.255.255.255
E 1111 240.0.0.0 255.255.255.255

All Class C addresses, for example, have the leftmost three bits set to '110', but each of the remaining 29 bits may be set to either '0' or '1' independently (as represented by an x in these bit positions):

110xxxxx xxxxxxxx xxxxxxxx xxxxxxxx

Converting the above to dotted decimal notation, it follows that all Class C addresses fall in the range from 192.0.0.0 through 223.255.255.255.

IP Address Class E and Limited BroadcastThe IPv4 networking standard defines Class E addresses as reserved, meaning that they should not be used on IP networks. Some research organizations use Class E addresses for experimental purposes. However, nodes that try to use these addresses on the Internet will be unable to communicate properly.

A special type of IP address is the limited broadcast address 255.255.255.255. A broadcast involves delivering a message from one sender to many recipients. Senders direct an IP broadcast to 255.255.255.255 to indicate all other nodes on the local network (LAN) should pick up that message. This broadcast is 'limited' in that it does not reach every node on the Internet, only nodes on the LAN.

Technically, IP reserves the entire range of addresses from 255.0.0.0 through 255.255.255.255 for broadcast, and this range should not be considered part of the normal Class E range.

IP Address Class D and MulticastThe IPv4 networking standard defines Class D addresses as reserved for multicast. Multicast is a mechanism for defining groups of nodes and sending IP messages to that group rather than to every node on the LAN (broadcast) or just one other node (unicast).

Multicast is mainly used on research networks. As with Class E, Class D addresses should not be used by ordinary nodes on the Internet.

IP Address Class A, Class B, and Class CClass A, Class B, and Class C are the three classes of addresses used on IP networks in common practice, with three exceptions as explained next.

As with broadcast, IP officially reserves the entire range from 127.0.0.0 through 127.255.255.255 for loopback purposes. Nodes should not use this range on the Internet, and it should not be considered part of the normal Class A range.

Zero AddressesAs with the loopback range, the address range from 0.0.0.0 through 0.255.255.255 should not be considered part of the normal Class A range. 0.x.x.x addresses serve no particular function in IP, but nodes attempting to use them will be unable to communicate properly on the Internet.

Private AddressesThe IP standard defines specific address ranges within Class A, Class B, and Class C reserved for use by private networks (intranets). The table below lists these reserved ranges of the IP address space.

Ads
Class Private start address Private finish address
A 10.0.0.0 10.255.255.255
B 172.16.0.0 172.31.255.255
C 192.168.0.0 192.168.255.255

Nodes are effectively free to use addresses in the private ranges if they are not connected to the Internet, or if they reside behind firewalls or other gateways that use Network Address Translation (NAT).

IPv6 Address TypesIPv6 does not use classes. IPv6 supports the following three IP address types:

  • unicast
  • multicast
  • anycast

Unicast and multicast messaging in IPv6 are conceptually the same as in IPv4. IPv6 does not support broadcast, but its multicast mechanism accomplishes essentially the same effect. Multicast addresses in IPv6 start with 'FF' (255) just like IPv4 addresses.

Anycast in IPv6 is a variation on multicast. Whereas multicast delivers messages to all nodes in the multicast group, anycast delivers messages to any one node in the multicast group. Anycast is an advanced networking concept designed to support the failover and load balancing needs of applications.

IPv6 Reserved AddressesIPv6 reserves just two special addresses: 0:0:0:0:0:0:0:0 and 0:0:0:0:0:0:0:1. IPv6 uses 0:0:0:0:0:0:0:0 internal to the protocol implementation, so nodes cannot use it for their own communication purposes. IPv6 uses 0:0:0:0:0:0:0:1 as its loopback address, equivalent to 127.0.0.1 in IPv4.

IPv6 addresses are usually reported in hexidecimal which is a method of describing numbers in base 16. To describe numbers in base 16, we conventionally count sequentially as 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f such that a is 10, b is 11, ..., and f is 15. If I look at the IPv6 address of my laptop as it is available on the Internet right now, I see my operating system report it as:

fe80::21c:42ff:fe00:8

You only need two digits of hexidecimal notation to give you the equivalent of a number between 0 and 255. That's because there are 16 possible digit representations per digit (and 16x16 is 256). Just the fe80 addresss component above could be considered 254.128 (which is half the resolution of a IPv4 address, right?).

fe is 254 because 16x15 + 16x14 = 254

80 is 128 because 16x8 + 16x0 = 128

Following all the way across with my example, you can print out every two hexidecimal digits as a number between 0 and 255 (inclusive). I'd get the following if I do that completely on the example above:

254.128.33.212.31.255.240.8

We could then replace the period delimiters (from the IPv4 convention) with the colon delimiters (from the IPv6) convention. We'd get

254:128:33:212:31:255:240:8

which is more like the 0:0:0:0:0:0:0:0 style addresses written in textbooks on the subject.

There are hardware devices that create an IPv6 address from an IPv4 address. Those devices are called Network Address Translation (NAT) devices. They are used extensively on networks that communicate with countries that have already adopted IPv6 heavily (Korea being a prime example). An IPv4 address can appear to have a default IPv6 address that way.