An IP address (Internet Protocol address) is a unique address that certain electronic devices currently use in order to identify and communicate with each other on a computer network utilizing the Internet Protocol standard (IP)—in simpler terms, a computer address. Any participating network device—including routers, switches, computers, infrastructure servers (e.g., NTP, DNS, DHCP, SNMP, etc.), printers, Internet fax machines, and some telephones—can have its own address that is unique within the scope of the specific network. Some IP addresses are intended to be unique within the scope of the global Internet, while others need to be unique only within the scope of an enterprise.
The IP address acts as a locator for one IP device to find another and interact with it. It is not intended, however, to act as an identifier that always uniquely identifies a particular device. In current practice, an IP address is less likely to be an identifier, due to technologies such as Dynamic assignment and Network address translation.
IP addresses are managed and created by the Internet Assigned Numbers Authority (IANA). The IANA generally allocates super-blocks to Regional Internet Registries, who in turn allocate smaller blocks to Internet service providers and enterprises.
IP versions
The Internet Protocol(IP) has two versions currently in use (see IP version history for details). Each version has its own definition of an IP address. Because of its prevalence, "IP address" typically refers to those defined by IPv4.
An illustration of an IP address (version 4), in both dot-decimal notation and binary.
An illustration of an IP address (version 4), in both dot-decimal notation and binary.
IP version 4 addresses
Main article: IPv4#Addressing
IPv4 only uses 32-bit (4-byte) addresses, which limits the address space to 4,294,967,296 (232) possible unique addresses. However, many are reserved for special purposes, such as private networks (~18 million addresses) or multicast addresses (~270 million addresses). This reduces the number of addresses that can be allocated as public Internet addresses, and as the number of addresses available is consumed, an IPv4 address shortage appears to be inevitable in the long run. This limitation has helped stimulate the push towards IPv6, which is currently in the early stages of deployment and is currently the only contender to replace IPv4.
IPv4 addresses are usually represented in dotted-decimal notation (four numbers, each ranging from 0 to 255, separated by dots, e.g. 147.132.42.18). Each range from 0 to 255 can be represented by 8 bits, and is therefore called an octet.
IPv4 address networks
Main article: Subnetwork
Currently, three classes of networks are commonly used. These classes may be segregated by the number of octets used to identify a single network, and also by the range of numbers used by the first octet.
* Class A networks (the largest) are identified by the first octet, which ranges from 1 to 126.
* Class B networks are identified by the first two octets, the first of which ranges from 128 to 191.
* Class C networks (the smallest) are identified by the first three octets, the first of which ranges from 192 to 223.
Class Range of first octet Network ID Host ID Possible number of networks Possible number of hosts
A 1 - 126 a b.c.d 126 = (27 - 2) 16,777,214 = (224 - 2)
B 128 - 191 a.b c.d 16,384 = (214) 65,534 = (216 - 2)
C 192 - 223 a.b.c d 2,097,151 = (221 - 1) 254 = (28 - 2)
Some first-octet values have special meanings:
* First octet 127 represents the local computer, regardless of what network it is really in. This is useful when testing internal operations.
* First octet 224 and above are reserved for special purposes such as multicasting.
Octets 0 and 255 are not acceptable values in some situations, but 0 can be used as the second and/or third octet (e.g. 10.2.0.100).
A class A network does not necessarily consist of 16 million machines on a single network, which would excessively burden most network technologies and their administrators. Instead, a large company is assigned a class A network, and segregates it further into smaller sub-nets using Classless Inter-Domain Routing. However, the class labels are still commonly used as broad descriptors.
IPv4 private addresses
Main article: Private network
Machines not connected to the outside world (e.g. factory machines that communicate with each other via TCP/IP) need not have globally-unique IP addresses. Three ranges of IPv4 addresses for private networks, one per class, were standardized by RFC 1918; these addresses will not be routed, and thus need not be coordinated with any IP address registrars.
IANA Reserved Private Network Ranges Class Start of range End of range
The 24-bit Block A 10.0.0.0 10.255.255.255
The 20-bit Block B 172.16.0.0 172.31.255.255
The 16-bit Block C 192.168.0.0 192.168.255.255
Each block is not necessarily one single network, although it is possible. Typically the network administrator will divide a block into subnets; for example, many home routers automatically use a default address range of 192.168.0.0 - 192.168.0.255 (192.168.0.0/24).
An illustration of an IP address (version 6), in hexadecimal and binary.
An illustration of an IP address (version 6), in hexadecimal and binary.
IP version 6 addresses
Main article: IPv6#Addressing
IPv6 is a new standard protocol intended to replace IPv4 for the Internet. Addresses are 128 bits (16 bytes) wide, which, even with a generous assignment of netblocks, will more than suffice for the foreseeable future. In theory, there would be exactly 2128, or about 3.403 Ã 1038 unique host interface addresses. Further, this large address space will be sparsely populated, which makes it possible to again encode more routing information into the addresses themselves.
Example: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
Writing for Technology Review in 2004, Simson Garfinkel wrote notes that there will exist "roughly 5,000 addresses for every square micrometer of the Earth's surface".[1] This enormous magnitude of available IP addresses will be sufficiently large for the indefinite future, even though mobile phones, cars and all types of personal devices are coming to rely on the Internet for everyday purposes.
The above source, however, involves a common misperception about the IPv6 architecture. Its large address space is not intended to provide unique addresses for every possible point. Rather, the addressing architecture is such that it allows large blocks to be assigned for specific purposes and, where appropriate, aggregated for providing routing. With a large address space, there is not the need to have complex address conservation methods as used in classless inter-domain routing (CIDR).
Windows Vista, Apple Computer's Mac OS X, and an increasing range of Linux distributions include native support for the protocol, but it is not yet widely deployed elsewhere.
IP version 6 private addresses
Just as there are addresses for private, or internal networks in IPv4 (one example being the 192.168.0.0 - 192.168.255.255 range), there are blocks of addresses set aside in IPv6 for private addresses. Addresses starting with FE80: are called link-local addresses and are routable only on your local link area. This means that if several hosts connect to each other through a hub or switch then they would communicate through their link-local IPv6 address.
Early designs specified an address range used for "private" addressing, with prefix FEC0. These are called site-local addresses (SLA) and are routable within a particular site, analogously to IPv4 private addresses. Site-local addresses, however, have been deprecated by the IETF, since they create the same problem that does the existing IPv4 private address space (RFC 1918). With that private address space, when two sites need to communicate, they may have duplicate addresses that "combine". In the IPv6 architecture, the preferred method is to have unique addresses, in a range not routable on the Internet, issued to organizations (e.g., enterprises).
The preferred alternative to site-local addresses are centrally assigned unique local unicast addresses (ULA). In current proposals, they will start with the prefix FC00.
Neither ULA nor SLA nor link-local address ranges are routable over the internet.
IP address subnetting
Main article: Subnetwork
Both IPv4 and IPv6 addresses utilize subnetting, or dividing the IP address into two parts: the network address and the host address. By using a subnet mask, the computer can determine where to split the IP address.
Static and dynamic IP addresses
When a computer uses the same IP address every time it connects to the network, it is known as a Static IP address. In contrast, in situations when the computer's IP address changes frequently (such as when a user logs on to a network through dialup or through shared residential cable) it is called a Dynamic IP address
Method of assignation
Static IP addresses are manually assigned to a computer by an administrator, either through the operating system configuration or through a command (e.g. ifconfig). This contrasts with dynamic IP addresses, where an IP address is automatically assigned to a computer by a remote server which is acting as a Dynamic Host Configuration Protocol (DHCP) server. Even though IP addresses assigned using DHCP may stay the same for long periods of time, they are liable to change depending on the addresses available in the set scope.
In the absence of both an administrator (to assign a static IP address) and a DHCP server, the operating system may still assign itself a dynamic IP address using Zeroconf. These IP addresses are known as link-local addresses. For IPv4, link-local addresses are in the 169.254.0.0/16 address range.
Uses of dynamic addressing
Dynamic IP Addresses assigned, on LANs or most broadband networks, by Dynamic Host Configuration Protocol (DHCP) servers are used because it reduces the administrative burden of assigning static addresses within a network. In most desktop operating systems, dynamic IP configuration is enabled by default. Dialup and some broadband networks do not use DHCP, but instead use the dynamic IP addressing capability of the Point-to-Point Protocol.
Uses of static addressing
Static addressing is essential in some infrastructure situations, such as finding the Domain Name Service directory host that will translate domain names to numbers (IP addresses). Static addresses are also convenient, but not absolutely necessary, to locate servers inside an enterprise. An address obtained from a DNS server comes with a time to live, or caching time, after which it should be looked up to confirm that it has not changed. Even static IP addresses do change as a result of network administration, however (RFC 2072).
Modifications to IP addressing
IP blocking and firewalls
Main articles: IP blocking and Firewall
Firewalls are common on today's Internet. For increased network security, they allow or deny access to their private network based on the public IP of the client. Whether using a blacklist or a whitelist, the IP address that is blocked is the perceived public IP address of the client, meaning that if the client is using a proxy server or NAT, blocking one IP address might block many individual people.
IP address translation
Main article: Network Address Translation
IP addresses can appear to be shared by multiple client devices either because they are part of a shared hosting web server environment or because an IPv4 network address translator (NAT) or proxy server acts as an intermediary agent on behalf of its customers, in which case the real originating IP addresses might be hidden from the server receiving a request. A common practice is to have a NAT hide a large number of IP addresses in a private network. Only the "outside" interface(s) of the NAT need to have Internet-routable addresses[2].
Most commonly, the NAT device maps TCP or UDP port numbers on the outside to individual private addresses on the inside. Just as there may be site-specific extensions on a telephone number, the port numbers are site-specific extensions to an IP address.
In small home networks, NAT functions are usually performed by an residential gateway device, typically one marketed as a "router". In this scenario, the computers connected to the router would have 'private' IP addresses and the router would have a 'public' address to communicate with the Internet. This type of router allows several computers to share one public IP address.