IP
IP는 Internet Protocol의 약자이다. 네트워크 호스트는 IP에서 정의된 규약(Protocol)을 이용해 네트워크 상에서 정보를 주고 받으며, 이 정보는 패킷(Packet) 단위로 전달 된다.
네트워크 호스트(Network Host)
네트워크 호스트는 컴퓨터 네트워크에 연결된 장치이다. 네트워크 호스트의 역할은 네트워크 상에서 정보를 주고 받는 것으로, 우리는 네트워크 호스트를 네트워크의 노드라고도 부른다. 간단하게 생각하면 개인 컴퓨터가 네트워크 호스트가 될 수 있다.
패킷(Packet)
소포(정보)를 뜻하는 Package과 덩어리를 뜻하는 Bucket을 합친 축약어로, 정보의 덩어리를 의미한다. 통신 시 컴퓨터는 정보를 덩어리 단위로 만들어서 다른 컴퓨터에 전달하는데 이를 Packet이라 부른다.
네트워크와 네크워크 호스트
네트워크는 네트워크 호스트들로 구성이 되는데 호스트들 간에는 통신이 가능하다. 통신에 사용하는 프로토콜이 바로 IP이다. IP을 이용한 통신을 하기 위해서(하나의 호스트에서 다른 호스트로 전송하기 위해서)는 호스트의 주소 정보가 필요하다. 주소가 있어야지 패킷을 보낼 목적지를 설정할 수 있다. 이러한 주소 값이 바로 IP Address이다.
IP Address
IP Address는 IP Protocol을 사용하는 호스트의 주소 정보이다. IP Address가 있어야지 패킷이 어느 주소로 가야할지 알 수 있다. 예를 들어 두 노드가 직접적으로 연결되어 있지 않는 경우 다른 노드를 통해서 연결되어 있는 노드에 정보를 전달해주어야 하는데, 이 경우 목적지 값이 있어야 호스트에 전달이 가능해진다.
우리는 기존 Packet과는 별로도 IP Packet에 IP Address 값을 넣어주는데 이를 통해 출발지와 목적지의 설정이 가능해진다. 보통 인터넷 네트워크에서는 출발지와 목적지 사이에 여러 노드들이 존재하는데, 이 노드들을 통해서 목적지에 전달하게 하기 위해서는 IP Address가 필수적으로 필요하다.
IP 만을 이용한 통신의 한계점
위의 내용을 보면 IP Address와 IP만으로도 패킷의 전송이 가능하다는 것을 알 수 있다. 하지만, 이러한 방식의 패킷 전송에는 문제점이 있다. 바로 비신뢰성과 비연결성이다.
비신뢰성
IP는 프로토콜일 뿐이고 보낸 데이터의 흐름에 관여하지 않기 때문에 보낸 패킷이 제대로 갔는지 보장하지 않는다. 즉, 순서가 있는 여러 개의 데이터를 보냈을 때 받는 데이터가 같은 순서로 받아질 것이란 보장이 될 수 없다. 혹은 중간에 패킷을 가지고 있던 호스트가 강제종료되어 패킷이 소실될 경우 패킷이 목적지까지 가지 못하고 소실될 수 있다.
비연결성
마찬가지로, 패킷을 받을 대상이 연결 상태임을 확인하지 않고 전송하기 때문에 받을 대상(호스트)이 서비스 불능 상태여도 패킷이 전송된다는 문제점이 있다. 이를 비연결성이라고 한다.
한계점 극복
IP를 이용한 통신을 인터넷 계층의 통신이라고 한다. 이러한 한계점 극복을 위해 전송 계층에서 TCP, UDP라 불리는 프로토콜을 추가로 정의함으로써 이러한 IP의 한계점을 극복한다. 다음 글에서 TCP, UDP에 대해 알아보자.