이렇게 멀리 떨어진 두 컴퓨터가 있다고 가정해보자.
이렇게 중간에 수많은 노드들이 있는데 이 중 정보를 원하는 컴퓨터에 전달하는 방법은 무엇일까?
이때 우리가 많이 들어본 IP(Internet Protocol)라는 용어가 등장한다.
각 컴퓨터들은 고유의 IP주소를 가지고 있다. 우리가 원하는 정보를 특정 컴퓨터에게 인터넷으로 전달할 때 이 IP주소를 확인하여 수많은 컴퓨터(노드, 단말)중 우리가 정보를 전달하기 원하는 컴퓨터를 찾을 수 있다.
IP는 인터넷 환경에서 정보를 주고받는데 사용하는 통신 규약을 말한다.
컴퓨터간에 데이터를 주고받을때 사용하는 데이터 전달 단위이다.
[패킷 - 데이터 전달 단위]
패킷에 있는 정보를 참고하여 인터넷에서 데이터 전송을 시작한다. 인터넷상의 여러 노드(다른 컴퓨터)들도 모두 이러한 IP규칙을 따르고 있기 때문에 서로 전송이 가능하다.
서로 데이터를 주고받는 과정을 통해 결국 목적지 컴퓨터까지 정보를 전달 할 수 있다.
[데이터 전달 과정]
IP는 패킷단위로 데이터를 전달하여 멀리 떨어진 두 컴퓨터간에 통신을 할 수 있도록 하는 통신 규약이다.
하지만, IP는 비신뢰성(unreliability) 그리고 비연결성(connectionlessness)이라는 특징을 갖는다. 따라서 전달한 데이터가 잘 도착했는지 그리고 손상되지 않고 도착했는지 알 수 없다.
이런 IP의 한계를 해결해주는 것이 바로 TCP 프로토콜이다.
[Reference]
김영한 HTTP 강의