인터넷 프로토콜

섬네일
**인터넷 [[통신 프로토콜|프로토콜]]**(**IP**, **I**nternet **P**rotocol)은 인터넷 프로토콜 스위트에서 네트워크 계층의 통신 프로토콜로, 네트워크 경계를 넘어 데이터그램을 릴레이한다. 라우팅 기능은 인터네트워킹을 가능하게 하며, 본질적으로 인터넷을 구축한다.

IP는 IP 주소에만 기반하여 소스 호스트에서 목적지 호스트로 패킷을 전달하는 작업을 수행한다. 이를 위해 IP는 전달될 데이터를 캡슐화하는 패킷 구조를 정의한다. 또한 데이터그램에 소스 및 목적지 정보를 레이블링하는 데 사용되는 주소 지정 방법도 정의한다.
IP는 1974년 빈트 서프와 밥 칸이 도입한 원래의 전송 제어 프로그램에서 무연결형 데이터그램 서비스였으며, 전송 제어 프로토콜(TCP)의 기반이 된 연결 지향 서비스로 보완되었다. 따라서 인터넷 프로토콜 스위트는 종종 TCP/IP라고 불린다.

IP의 첫 번째 주요 버전인 인터넷 프로토콜 버전 4(IPv4)는 인터넷의 지배적인 프로토콜이다. 후속 버전은 인터넷 프로토콜 버전 6(IPv6)으로, 2006년경부터 공용 인터넷에서 점차 도입되고 있다.

## 기능
[섬네일|260px|[사용자 데이터그램 프로토콜|UDP가 전달하는 애플리케이션 데이터를 링크 프로토콜 프레임으로 캡슐화]]
인터넷 프로토콜은 호스트 인터페이스 주소 지정, 데이터를 데이터그램으로 캡슐화(단편화 및 재조립 포함) 및 하나 이상의 IP 네트워크를 통해 소스 호스트 인터페이스에서 목적지 호스트 인터페이스로 데이터그램을 라우팅하는 역할을 한다. 이러한 목적을 위해 인터넷 프로토콜은 패킷 형식을 정의하고 주소 지정 시스템을 제공한다.

각 데이터그램에는 헤더와 페이로드의 두 가지 구성 요소가 있다. IP 헤더에는 소스 IP 주소, 목적지 IP 주소 및 데이터그램을 라우팅하고 전달하는 데 필요한 기타 메타데이터가 포함된다. 페이로드는 전송되는 데이터이다. 헤더가 있는 패킷에 데이터 페이로드를 중첩하는 이 방법을 캡슐화라고 한다.

IP 주소 지정에는 호스트 인터페이스에 IP 주소 및 관련 매개변수를 할당하는 것이 포함된다. 주소 공간은 네트워크 접두사 지정을 포함하는 서브넷으로 나뉜다. IP 라우팅은 모든 호스트와 라우터에 의해 수행되며, 라우터의 주요 기능은 네트워크 경계를 넘어 패킷을 전송하는 것이다. 라우터는 네트워크 토폴로지에 따라 내부 게이트웨이 프로토콜 또는 외부 게이트웨이 프로토콜과 같은 특별히 설계된 라우팅 프로토콜을 통해 서로 통신한다.

## 주소 지정 방법

인터넷 프로토콜에는 네 가지 주요 주소 지정 방법이 있다:

## 버전 역사
섬네일|right|전송 제어 프로토콜 TCP 및 인터넷 프로토콜 IP 개발 타임라인
[섬네일|right|1977년 11월 22일 [아파넷, PRNET, SATNET을 연결한 첫 번째 인터넷 시연]]
1974년 5월, 전기전자공학자협회(IEEE)는 "패킷 네트워크 상호 통신을 위한 프로토콜(A Protocol for Packet Network Intercommunication)"이라는 제목의 논문을 발표했다. 이 논문의 저자인 빈트 서프와 밥 칸은 네트워크 노드 간의 패킷 교환을 사용하여 자원을 공유하기 위한 인터네트워킹 프로토콜을 설명했다. 이 모델의 중앙 제어 구성 요소는 호스트 간의 연결 지향 링크 및 데이터그램 서비스를 모두 통합한 전송 제어 프로그램이었다. 모놀리식 전송 제어 프로그램은 나중에 전송 계층의 전송 제어 프로토콜과 사용자 데이터그램 프로토콜, 그리고 인터넷 계층의 인터넷 프로토콜로 구성된 모듈식 아키텍처로 분할되었다. 이 모델은 국방부(DoD) 인터넷 모델 및 인터넷 프로토콜 스위트로 알려졌고, 비공식적으로는 TCP/IP로 불렸다.

다음 인터넷 실험 노트(IEN) 문서는 인터넷 프로토콜이 현대 버전인 IPv4로 진화하는 과정을 설명한다:
* IEN 2 Comments on Internet Protocol and TCP (1977년 8월)은 TCP와 인터넷 프로토콜 기능(이전에는 결합되어 있었음)을 분리할 필요성을 설명한다. 이는 버전 필드에 0을 사용하는 IP 헤더의 첫 번째 버전을 제안한다.
* IEN 26 A Proposed New Internet Header Format (1978년 2월)은 1비트 버전 필드를 사용하는 IP 헤더의 버전을 설명한다.
* IEN 28 Draft Internetwork Protocol Description Version 2 (1978년 2월)는 IPv2를 설명한다.
* IEN 41 Internetwork Protocol Specification Version 4 (1978년 6월)는 IPv4라고 불리는 첫 번째 프로토콜을 설명한다. 이 IP 헤더는 현대의 IPv4 헤더와는 다르다.
* IEN 44 Latest Header Formats (1978년 6월)는 또 다른 IPv4 버전을 설명하며, 이 또한 현대의 IPv4 헤더와 다르다.
* IEN 54 Internetwork Protocol Specification Version 4 (1978년 9월)는 1980년에 으로 표준화될 헤더를 사용하는 IPv4의 첫 번째 설명이다.
* IEN 80
* IEN 111
* IEN 123
* IEN 128/RFC 760 (1980)

IP 버전 1에서 3은 1973년부터 1978년 사이에 설계된 실험 버전이었다. 버전 2와 3은 1에서 16옥텟(8에서 128비트) 범위의 가변 길이 주소를 지원했다. 버전 4의 초기 초안은 최대 256옥텟(최대 2048비트)의 가변 길이 주소를 지원했지만 나중에 IPv4의 최종 버전에서 고정 크기 32비트 주소로 대체되었다. 이는 인터넷 계층에서 사용되는 지배적인 인터네트워킹 프로토콜로 남아 있으며, 숫자 4는 모든 IP 데이터그램에 포함된 프로토콜 버전을 식별한다. IPv4는 (1981년)에 정의되어 있다.

버전 번호 5는 인터넷 스트림 프로토콜에서 사용되었으며, 채택되지 않은 실험적인 스트리밍 프로토콜이다.

IPv4의 후속 버전은 IPv6이다. IPv6는 TP/IX(), PIP(), TUBA(TCP and UDP with Bigger Addresses, )와 같은 다양한 프로토콜 모델이 제안되는 등 수년간의 실험과 대화의 결과물이다. 버전 4와의 가장 두드러진 차이점은 주소의 크기이다. IPv4는 주소 지정에 32비트를 사용하여 약 43억() 개의 주소를 생성하는 반면, IPv6는 128비트 주소를 사용하여 약  개의 주소를 제공한다. IPv6 채택은 느리지만,  전 세계 대부분의 국가에서 상당한 IPv6 채택을 보이고 있으며, 구글 트래픽의 41% 이상이 IPv6 연결을 통해 전달되고 있다.

새로운 프로토콜을 IPv6로 할당하는 것은 이전에 IPv6가 사용되지 않았음을 확인하는 실사 작업이 이루어질 때까지 불확실했다. 다른 인터넷 계층 프로토콜에는 7 (IP/TX), 8 및 9 (역사적)와 같은 버전 번호가 할당되었다. 특히, 1994년 4월 1일, IETF는 IPv9에 대한 만우절 RFC를 발표했다. IPv9는 또한 TUBA라는 대체 제안 주소 공간 확장에서 사용되었다. 2004년 중국의 IPv9 프로토콜에 대한 제안은 이러한 것들과 무관한 것으로 보이며 IETF의 승인을 받지 못했다.

### IP 버전 번호

버전 번호는 4비트 필드에 담겨 있으므로 0-15 사이의 숫자만 할당할 수 있다.

## 신뢰성
인터넷 프로토콜 스위트의 설계는 CYCLADES 프로젝트에서 차용한 개념인 엔드 투 엔드 원칙을 따른다. 엔드 투 엔드 원칙에 따라 네트워크 인프라는 단일 네트워크 요소 또는 전송 매체에서 본질적으로 신뢰할 수 없는 것으로 간주되며 링크 및 노드의 가용성 측면에서 동적이다. 네트워크의 상태를 추적하거나 유지 관리하는 중앙 모니터링 또는 성능 측정 시설은 존재하지 않는다. 네트워크 복잡성을 줄이는 이점을 위해 네트워크의 지능은 종단 노드에 위치한다.

이 설계의 결과로 인터넷 프로토콜은 최선형 전달만을 제공하며 서비스는 신뢰할 수 없는 것으로 특징지어진다. 네트워크 아키텍처 용어로는 연결 지향 프로토콜과 달리 무연결형 프로토콜이다. 데이터 손상, 패킷 손실 및 중복과 같은 다양한 오류 조건이 발생할 수 있다. 라우팅은 동적이며, 즉 모든 패킷이 독립적으로 처리되고 네트워크가 이전 패킷 경로에 기반한 상태를 유지하지 않으므로, 다른 패킷이 다른 경로를 통해 동일한 목적지로 라우팅되어 수신자에게 순서가 뒤바뀌어 전달될 수 있다.

네트워크의 모든 오류 조건은 참여하는 종단 노드에 의해 감지되고 보상되어야 한다. 인터넷 프로토콜 스위트의 상위 계층 프로토콜은 신뢰성 문제를 해결하는 역할을 한다. 예를 들어, 호스트는 데이터가 애플리케이션에 전달되기 전에 올바른 순서를 보장하기 위해 네트워크 데이터를 버퍼링할 수 있다.

IPv4는 IP 패킷의 헤더가 오류가 없는지 확인하기 위한 안전 장치를 제공한다. 라우팅 노드는 헤더 체크섬 테스트에 실패한 패킷을 폐기한다. 인터넷 제어 메시지 프로토콜(ICMP)은 오류를 통지하지만, 라우팅 노드는 오류를 종단 노드에 통지할 의무가 없다. 반대로 IPv6는 현재 링크 계층 기술이 충분한 오류 감지를 제공한다고 가정하므로 헤더 체크섬 없이 작동한다.

## 링크 용량 및 기능
인터넷의 동적 특성과 구성 요소의 다양성은 특정 경로가 요청된 데이터 전송을 실제로 수행할 수 있거나 적합하다는 보장을 제공하지 않는다. 기술적 제약 중 하나는 주어진 링크에서 가능한 데이터 패킷의 크기이다. 로컬 링크의 최대 전송 단위(MTU) 크기를 검사하는 기능이 있으며, 경로 MTU 탐색을 사용하여 목적지까지의 전체 의도된 경로에 사용할 수 있다.

IPv4 인터네트워킹 계층은 링크 MTU를 초과할 때 데이터그램을 전송을 위해 더 작은 단위로 자동 단편화한다. IP는 순서가 뒤바뀌어 수신된 단편들을 재정렬하는 기능을 제공한다. IPv6 네트워크는 네트워크 요소에서 단편화를 수행하지 않지만, 종단 호스트와 상위 계층 프로토콜이 경로 MTU를 초과하지 않도록 요구한다.

전송 제어 프로토콜(TCP)은 세그먼트 크기를 MTU보다 작게 조정하는 프로토콜의 예이다. 사용자 데이터그램 프로토콜(UDP)과 ICMP는 MTU 크기를 무시하므로 IP가 초과된 데이터그램을 단편화하도록 강제한다.

## 보안
아파넷 설계 단계와 초기 인터넷에서 공공 국제 네트워크의 보안 측면과 필요성이 충분히 예상되지 않았다. 결과적으로 많은 인터넷 프로토콜이 네트워크 공격과 나중의 보안 평가에서 드러난 취약점을 보였다. 2008년에는 철저한 보안 평가와 문제 해결 제안이 발표되었다. IETF는 추가 연구를 진행 중이다.

## 같이 보기
* IP 주소
* 인터넷
* IP 패킷
* ICANN
* 차세대 통신망

## 각주

## 외부 링크
* 자기 IP 주소 보기
* 
* 
* 


분류:인터넷 표준
분류:인터넷 계층 프로토콜