인터넷 프로토콜은 인터넷의 정보들이 어떻게 전송되는지를 정의하기 위한 규칙들입니다. 프로토콜이란, 규칙들의 집합을 말합니다. 인터넷 프로토콜 중 일부는 인터넷 상에 있는 각 장치에 대해 IP 주소를 할당해주는 것과 관련 있습니다. IP 주소는 인터넷 상의 장치들을 식별할 수 있게끔 해줍니다. IP(인터넷 프로토콜)은 여러 버전을 거쳐왔습니다. 가장 최근 버전은 IPv6로, 기존의 IPv4 프로토콜을 대체하기 위한 것입니다.
IPv4 시스템에서, IP 주소는 마침표로 구분된 4개의 10진수로 표현됩니다. 각 숫자는 0부터 255까지의 10진수입니다. (8bit 공간) 결과적으로, 각 IPv4 주소는 32bit이며, 최대 2^32개의 주소가 존재할 수 있습니다. 이는 43억 개의 주소입니다.
그러나 인터넷이 발달하면서, 43억 개의 주소로는 인터넷에 연결하려는 모든 장치들을 더 이상 수용할 수 없게 되었습니다. 그 결과, 사용 가능한 IP 주소를 늘리기 위해 IPv6 표준이 개발되었습니다.
IPv6에서, IP 주소는 콜론으로 구분된 8개의 숫자로 구성됩니다. 각 숫자는 16bit 숫자입니다. 각 숫자를 10진수로 표현하지 않고, 16bit 숫자를 0000부터 ffff까지의 16진수로 표현했습니다.
각각 16bit 정보를 갖고 있는 8개의 숫자로 구성되므로, 각 IPv6주소는 128bit를 저장하며, 이는 340 10억 10억 10억 10억개보다도 더 많은 IP주소를 만들 수 있습니다. 현재 쓰이는 주소들의 개수보다 훨씬 더 많기 때문에, 많은 IPv6 주소들은 8개의 구성 숫자들 사이에 0들을 포함하고 있습니다. 축약해서 쓰는 경우, Ipv6 주소는 16진수 앞에 오는 0들을 생략하고 0이 연속으로 오게 되면 그것들을 생략하면서 "::"을 씁니다.
사설 IP 주소라고 알려진 어떤 주소들은 특정 로컬 네트워크 내에서 사용되도록 따로 뗴워놓습니다. 로컬 네트워크에 있는 컴퓨터들은 사설 IP 주소를 이용하여 다른 컴퓨터와 통신할 수 있지만, 이 네트워크 밖에 있는 컴퓨터들이 접근할 수는 없습니다.
사설 IP 주소를 갖는 장치들은 공인 IP 주소를 공유합니다. 이렇게 하면 IPv4 표준에서 필요한 공용 IP 주소의 개수를 줄일 수 있습니다.
IP 주소 127.0.0.1은 다른 장치에 연결하는 것이 아니라, 사용자가 현재 사용하고 있는 장치에 연결하는 주소입니다. 이러한 이유로, 이 주소를 로컬호스트(localhost)라고 부릅니다.