IP(Internet Protocol)

인터넷 프로토콜 역할
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달 
  출발지 IP, 목적지 IP와 데이터를 넣어서 패킷을 생성 (간단하게만 설명)

image.png

출발지 IP - 나의 IP
목적지 IP - 상대 IP

image.png

image.png

1. 출발지, 목적지, 메시지 등을 패킷에 넣고 전송 **(요청)**
2. IP 프로토콜에 의해서 노드들을 거쳐 전송되게 됨 (각 노드는 IP 프로토콜을 따르고 있음)
3. 최종적으로 목적지 IP에 컴퓨터에 패킷이 도달하게 됨 
4. 목적지 IP에 해당하는 컴퓨터도 동일한 방식으로 출발지 IP 컴퓨터에 **응답 

**
요청을 보낼 때의 경로와
응답을 다시 요청자에게 보낼 때의 경로가 다를 수 있음** 

IP 프로토콜의 한계

1. 비연결성
	- 패킷을 받을 대상이 없거나 **서비스 불능 상태여도 패킷 전송** (상대방 컴퓨터가 꺼져있어도 전송)
   	**즉, 대상 서버가 패킷을 받을 수 있는 상태인지 모름** 
	
2. 비신뢰성
	- 중간에 패킷이 사라지는 경우 (중간에 소실 되어도 모름)
	- 패킷이 순서대로 안 오는 경우 (패킷 용량이 커서 나눠서 전송하는데 순서대로 도착하지 않는 경우)
	
3. 프로그램 구분 불가
	- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 (포트가 없어서 구분 불가)

image.png

image.png

**중간에 패킷이 소실되더라도 모른다.**

image.png

전송되는 데이터가 크면 끊어서 보내게 되는데 
**이 때 전송되는 순서와 도착하는 순서가 달라질 수 있다.**
	- 각 패킷마다 다른 경로로 전달될 수 있기 때문 

TCP

- IP 프로토콜에 TCP를 올려서 IP 프로토콜의 단점을 보안한 것이 TCP/IP