검색
색인
인터넷 프로토콜, Internet Protocol, IP
인터넷에서 네트워크의 두 호스트(host) 간에 통신할 때 호스트 주소를 지정하고 전송 계층의(transport layer)의 정보를 패킷으로 분할/조립하며, 패킷을 IP 주소에 따라 목적지에 전송하는 통신 규약.
넓은 의미로는 전 세계적으로 사용이 가능한 인터넷망을 만들기 위해 망 간에 이루어지는 패킷 전송을 위한 통신 규약 집합체(Internet Protocol Suite)를 통칭한다.

OSI 기본 참조 모델에서의 인터넷 프로토콜(IP: Internet Protocol)에서 정보는 패킷(packet)이라고 하는 작은 단위로 나뉘어 전송된다. 송신 호스트에서 수신 호스트로 패킷을 보낼 때 IP로 전송하면 패킷 전송 전에 송수신 호스트 간 경로를 미리 설정할 필요가 없다. 송신기에서는 패킷마다 목적지 주소(destination address)를 표기하여 전송하고 전송망의 라우터(router)들은 패킷이 도착하면 해당 패킷의 헤더에 포함된 목적지 주소를 확인하고 주소에 따라 설정된 다음 라우터로 패킷을 전달하는 과정으로 최종 목적지까지 패킷을 전달한다. 이와 같은 IP의 특성을 비연결성(connectionless)이라고 한다. 라우터는 일반적으로 여러 개의 출력 경로가 있는데 패킷의 목적지 주소에 따라 설정해 둔 출력 경로 라우팅 표(routing table)를 사용하여 다음 경로 라우터로 패킷을 보낸다.

IP는 송신기에서 전송한 패킷이 수신기에 오류나 문제없이 정확하게 전달이 되었는지를 확인하지 않고 보장하지도 않는다. 이를 IP의 비신뢰성(unreliability)이라고 한다. 이러한 특성을 최선형(best effort)라고도 한다. 이것은 어떠한 것도 보장하지 않고 데이터 전송에 최선을 다한다는 의미다.
IP는 신뢰성을 보장하지 않기 때문에 전송 과정에서 패킷이 손상되거나 소실될 수 있고, 같은 호스트에서 전송한 패킷의 순서가 뒤섞이거나 같은 패킷이 두 번 전송될 수 있다. 신뢰성이 있으며 정확한 순서를 보장하는 패킷 전송을 하려면 전송 제어 프로토콜(TCP: Transmission Control Protocol)과 같은 IP의 상위 프로토콜을 이용해야 한다.

TCP는 에러가 발생하거나 소실된 패킷에 대하여 재전송하고, 수신하는 측의 처리 속도에 따라 송신하는 측의 전송 속도를 조절하는 흐름 제어(flow control)를 수행한다. 또한 네트워크의 정체 상황을 고려하여 송신하는 측의 전송 속도를 조절하는 혼잡 제어(congestion control)를 수행한다.

인터넷에서 사용하는 표준 프로토콜은 인터넷 프로토콜의 4번째 판인 IPv4이다. 하지만 IPv4는 사용할 수 있는 IP 주소(IP address)의 수가 매우 적어서 주소의 수를 훨씬 많게 한 IPv6를 같이 사용한다. 마이크로소프트 윈도즈(Microsoft Windows), 맥 OS X, 리눅스(Linux) 등 현재 널리 쓰이고 있는 대부분의 운영 체제IPv6 프로토콜을 지원한다.