IP(인터넷 프로토콜)
대부분의 내용은 인프런 김영한 강사님의 모든 개발자를 위한 HTTP 웹 기본 지식을 참고했습니다.
클라이언트와 서버가 같은 공간에 있다면, 서로 간에 케이블을 연결해 메시지를 전달받을 수 있습니다.
하지만, 서버와 클라이언트가 같은 공간이 아닌 멀리 떨어져 있다면 인터넷을 통해 메시지를 전달해야합니다.
하지만 인터넷을 통해 메시지를 전달하는 것은 생각처럼 단순하지 않습니다.
무언가 복잡한 규칙을 통해 메시지가 전달되는데, 그것을 IP(인터넷 프로토콜)이라고 부릅니다.
인터넷 프로토콜은 네트워크에서 송신 호스트와 수신 호스트가 정보를 주고받는데 사용하는 약속과 같은 것이며,
OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당합니다.
메시지의 전달 과정
인터넷 프로토콜에서 메시지는 그냥 보내는 것이 아니라 패킷(Packet)이라는 통신 단위로 데이터를 전달합니다.
우선 전송하려는 메시지를 IP 패킷으로 감싸주고,
(IP 패킷에는 출발지 IP, 목적지 IP, 메시지 등이 들어간다.)
그리고 만들어진 패킷을 인터넷망에 던집니다.
던져진 패킷은 인터넷망의 노드들에 의해 목적지로 전달됩니다.

네트워크는 컴퓨터와 네트워크 장비를 유무선의 전송 매체로 연결하여 데이터를 전송하는 시스템이다.
복잡한 네트워크 시스템을 단순화하면 네트워크는 그림과 같이 전송 매체라는 선(또는 링크, Link)과 컴퓨터와 네트워크 장비라는 점들이 그물망처럼 연결된 것을 말한다.
여기에서 선을 여러 방향으로 분기시키는 각각의 점들을 노드(Node, 분기점)라고 한다.
다시 말해 일반적으로 네트워크에 연결된 모든 물리적인 기기 또는 장치를 노드라고 한다.
즉, 네트워크상에서 데이터를 주고받을 수 있는 PC, 노트북, 스마트폰 같은 컴퓨터와 라우터, 인터넷 공유기 같은
네트워크 장비가 각각 하나의 노드이다.
노드는 네트워크에서 데이터를 전송하기 위해 연결된 기기이기 때문에 데이터를 보내는 송신지 또는
데이터를 받는 수신지 역할을 한다.
따라서, 우편물을 주고받기 위해 송신지와 수신지의 주소가 필요한 것처럼 데이터를 주고받는 노드에도
다른 노드와 구별할 수 있는 고유한 주소가 필요하다.
따라서, 다른 노드와 구별되는 고유한 주소를 가진 노드를 네트워크에 연결된 주소가 있는
물리적인 장치라고 정의하기도 한다.
MAC 주소라는 고유한 물리 주소를 가진 컴퓨터와 라우터가 네트워크의 대표적인 노드이다.
노드 내용 출처
이렇게 데이터를 전달하다보면 목적지에 도달하게 되는데,
이제 데이터를 받은 목적지에서 데이터를 잘받았다는 의미인 OK라는 메시지를 담아서 다시 역으로 전달합니다.
그럼 이전과 동일하게 노드들을 통해 데이터가 전달됩니다.
IP(인터넷 프로토콜)의 특징과 한계
비연결성
비연결성은 송신자와 수신자가 데이터 전송을 위해 서로 연결될 필요가 없다는 성질의 의미하는데
이러한 성질 때문에 출발지에서는 목적지의 상태를 알 수 없어 목적지의 상태와 관계없이 패킷을 전송한다는
단점이 있습니다.
비신뢰성
비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다 것을 의미합니다.
사진과 같이 중간 노드에서 문제가 생겨 패킷이 소실될 수도 있고
네트워크 지연 등의 이유로 패킷이 순서대로 보내지지 않는 경우가 있습니다.
결과적으로 이러한 비신뢰성 때문에 데이터의 신뢰성이 떨어진다는 단점이 있습니다.
이러한 단점을 보완하기 위한 것이 바로 TCP, UDP 입니다..