An IP address (Internet Protocol address) is a numerical identifier used by the Internet Protocol (IP) to identify the source and destination of packets and route them across interconnected networks. IP addresses are assigned to network interfaces or service endpoints rather than permanently to individual computers. A device may have several addresses, an address may change over time, and some addresses may be shared by multiple devices or services.

Two versions of IP are widely deployed: IPv4, which uses 32-bit addresses, and IPv6, which uses 128-bit addresses. Both divide address space into prefixes that identify networks and more specific values used within those networks.

Addressing and Routing edit

An IP packet contains a source address and a destination address. Routers examine the destination address and compare it with routing information to determine where the packet should be forwarded. The address therefore functions primarily as a network-layer locator rather than as a permanent identity for a person, device, or organization.[1][2]

Addresses are commonly written with a prefix length, indicating how many of their leading bits identify a network prefix. For example, 192.0.2.0/24 represents an IPv4 prefix containing addresses whose first 24 bits are the same. An IPv6 prefix may be written as 2001:db8:1234::/48.

Routers normally select the most specific matching prefix for a destination. An address prefix can be announced through routing protocols such as the Border Gateway Protocol (BGP), allowing other networks to determine how to reach it.

IPv4 edit

An IPv4 address contains 32 bits, producing 232, or 4,294,967,296, possible values. Not all of these values are available as globally routable addresses because substantial parts of the address space are reserved for private networks, multicast, loopback, documentation, protocol functions, and other special purposes.

IPv4 addresses are usually written as four decimal numbers between 0 and 255 separated by periods. For example:

192.0.2.45

Each decimal number represents eight bits, commonly called an octet. The address may be accompanied by a prefix length:

192.0.2.45/24

Early IPv4 networks were divided into fixed address classes. This system was replaced by Classless Inter-Domain Routing (CIDR), which permits prefixes of different lengths and more efficient address allocation and route aggregation.[3]

The limited size of the IPv4 address space led to address conservation mechanisms, markets for transferred address space, and extensive use of Network Address Translation (NAT). Under NAT, several devices using private addresses may communicate externally through one or a smaller number of public addresses. A public IPv4 address therefore does not necessarily correspond to a single device or user.

Carrier-Grade NAT (CGNAT) extends this form of address sharing to the service-provider network. The IPv4 block 100.64.0.0/10 is reserved as shared address space for this purpose.[4]

IPv6 edit

An IPv6 address contains 128 bits, producing 2128, or approximately 3.4 × 1038, possible values. The larger address space was designed to support continued Internet growth and reduce the need for address-sharing mechanisms used to conserve IPv4 space.[5]

IPv6 addresses are written as eight groups of four hexadecimal digits separated by colons:

2001:0db8:0001:0002:0003:0004:0005:0006

Leading zeros within each group may be omitted:

2001:db8:1:2:3:4:5:6

One continuous sequence of all-zero groups may be replaced by two colons. For example:

2001:db8:0:0:0:0:0:1
2001:db8::1

The double-colon abbreviation may appear only once in an address. When more than one sequence of zero groups could be abbreviated, the longest sequence is compressed. If sequences are equally long, the first is compressed. Hexadecimal letters are conventionally written in lowercase.[6]

IPv6 does not use broadcast addresses. Functions commonly performed through IPv4 broadcast are instead implemented through multicast. IPv6 also supports anycast, in which the same address is assigned to multiple interfaces and routing directs traffic toward one of them, generally the nearest according to the routing system.

Address Types and Scope edit

Not every IP address is intended to be reachable across the public Internet. Address meaning depends partly on its scope and the network context in which it is used.

Global unicast addresses are intended to be unique and routable across the Internet. Even a globally allocated address may not be reachable if it is not announced into the routing system or is blocked by network policy.

Private IPv4 addresses may be reused independently within different networks. RFC 1918 reserves the following blocks:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

These addresses are not intended to be routed across the public Internet.[7]

IPv6 unique local addresses, within fc00::/7, provide address space for limited local use. They are not intended to be routed globally, although they differ structurally and operationally from IPv4 private addresses.[8]

Link-local addresses are valid only on a particular network link. IPv6 interfaces commonly use addresses within fe80::/10 for functions such as neighbor discovery and local communication.

Loopback addresses refer to the local system. IPv4 uses 127.0.0.0/8, most commonly 127.0.0.1, while IPv6 uses ::1.

Other blocks are reserved for multicast, documentation, benchmarking, protocol translation, automatic configuration, and other special purposes. The Internet Assigned Numbers Authority (IANA) maintains the authoritative IPv4 and IPv6 Special-Purpose Address Registries.[9][10]

Address Assignment edit

An address may be assigned manually or automatically. IPv4 networks commonly use the Dynamic Host Configuration Protocol (DHCP). IPv6 supports DHCPv6 and Stateless Address Autoconfiguration (SLAAC), through which an interface can construct an address using information advertised by a local router.

Assignments may be static, remaining associated with a system for an extended period, or dynamic, changing when a device reconnects or a lease expires. A single interface may hold several IPv4 or IPv6 addresses simultaneously. Devices connected through both protocols are commonly described as operating in dual-stack mode.

The same address may also represent more than one machine. NAT allows multiple private systems to share a public address, while anycast deliberately assigns one address to several geographically distributed systems. Conversely, one machine or service may have many addresses because it uses multiple interfaces, operates on both IPv4 and IPv6, or is distributed across several networks.

Number Resource Allocation edit

The Internet Engineering Task Force (IETF) defines the technical architecture of IPv4 and IPv6 and specifies address blocks reserved for particular protocol functions. The IANA functions maintain the global address-space registries and allocate large blocks of Internet number resources to the five Regional Internet Registries (RIRs):

  • AFRINIC, serving Africa;
  • APNIC, serving the Asia-Pacific region;
  • ARIN, serving Canada, the United States, and parts of the Caribbean and North Atlantic;
  • LACNIC, serving Latin America and much of the Caribbean; and
  • RIPE NCC, serving Europe, the Middle East, and parts of Central Asia.

The RIRs allocate or assign address space to network operators, Internet service providers, governments, businesses, and other organizations according to policies developed within their respective communities. Those organizations may make more specific assignments to customers and internal networks.[11][12]

IP addresses are not owned in the same sense as physical property. Internet number registries generally describe them as resources distributed or registered for use subject to applicable policies. The ability to route an address block also depends on cooperation among network operators and is not created solely by its registry status.

Resource Public Key Infrastructure (RPKI) allows holders of registered number resources to publish cryptographically verifiable statements authorizing particular Autonomous Systems to originate routes for their prefixes. RPKI addresses route-origin authorization rather than establishing ownership of addresses or encrypting Internet traffic.

Relationship to the DNS edit

The Domain Name System (DNS) allows domain names to be associated with IP addresses. An A record associates a name with an IPv4 address, while an AAAA record associates a name with an IPv6 address.

This relationship is not necessarily one-to-one. One domain name may resolve to several addresses for redundancy, load distribution, or geographic routing. Several domain names may also resolve to the same address, as occurs with shared web hosting and reverse proxies.

Reverse DNS uses PTR records to associate addresses with domain names. IPv4 reverse mappings are organized beneath in-addr.arpa, while IPv6 reverse mappings use ip6.arpa. A reverse DNS entry does not independently prove who operates a device or generated particular traffic.

Attribution and Privacy edit

An IP address can provide evidence about the network through which traffic passed, but it does not by itself identify an individual. Attribution may be complicated by dynamic reassignment, NAT, CGNAT, virtual private networks, proxies, corporate gateways, mobile networks, compromised systems, shared hosting, and anycast services.

Meaningful attribution may require additional information, including timestamps, source and destination port numbers, subscriber records, NAT translation logs, and application-level data. This has made address-sharing practices and operator logging important issues for cybersecurity response, DNS Abuse investigation, privacy, and law-enforcement procedures.

See Also edit

References edit