[HTTP] IP (인터넷 프로토콜)
IP 란?
IP란, 인터넷 프로토콜 (Internet Protocol) 의 약자로 인터넷상에서 데이터를 주고받기 위한 통신 규약이다.
쉽게 말해 일상에서의 집주소를 떠올리면 이해하기 쉽다.
그림과 같이 클라이언트의 IP 주소는 100.100.100.1이고, 서버의 주소는 200.200.200.2이다.
클라이언트와 서버간의 통신을 위해서는 인터넷이 필요하고, 데이터의 송수신은 각자의 주소를 알아야 가능하다.
IP의 역할
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달
IP 패킷 정보
앞서 말한대로 데이터는 패킷이라는 통신 단위를 통해 전달된다.
패킷에는 여러 정보가 들어있는데, 출발지 IP주소와 목적지 IP주소가 포함되어 있다.
전송하고자 하는 데이터를 IP 패킷이라는 상자에 담아 각 주소를 적어놓았다고 생각하면 쉽다.
클라이언트가 서버에게 IP 패킷을 보내기 위해서 IP 패킷을 인터넷 망에 던진다.
IP 프르토콜에 의해서 인터넷 서버들이 규약을 따르고 있기 때문에 패킷에 적혀있는 주소를 다 이해하고 있다.
이를 통해, 각 노드끼리 패킷을 던져주면서 목적지까지 데이터가 도달하도록 한다.
서버도 클라이언트와 같다.
출발 주소와 목적지 주소가 저장된 IP패킷을 인터넷 망을 통해 클라이언트까지 전달된다.
참고로 요청과 응답에 대해 데이터의 송수신이 발생했을 때,
인터넷 망이 복잡하기 때문에 꼭 같은 루트의 노드를 통해 전달되지는 않는다.
IP 프로토콜의 한계
- 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성 - 패킷이 중간에 사라지거나 패킷의 순서를 보장하지 못한다.
- 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션들을 구분하지 못한다.
비연결성
: 패킷을 전송하고자 하는 서버가 꺼져있거나 패킷을 받을 수 있는 상태가 아니어도
이것을 인지하지 못하고 무작정 보낸다.
패킷 소실
: 인터넷 망의 노드에 패킷을 전달하였을 때, 특정 노드에 문제가 생겨 패킷이 소실할 수도 있다.
패킷 전달 순서
: 보내고자 하는 데이터의 길이가 길면 이것을 보내기 쉽게 잘라서 보내게 되는데,
잘라서 보낸 데이터들이 잘리기 전의 순서로 도착할 거라는 보장을 할 수 없다.
출처 : https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC