CS/네트워크

[네트워크] IP, TCP, UDP 포로토콜

동김 2024. 1. 17. 22:49

🌍 IP (인터넷 프로토콜)

💡 데이터 패킷이 네트워크를 통해 이동하고 올바른 대상에 도착할 수 있도록 데이터 패킷을 라우팅하고 주소를 지정하기 위한 프로토콜
- osi 7계층 중, 3계층인 네트워크 계층에서 사용
- 지정한 IP 주소에 데이터 전달
- 패킷(Packet)이라는 통신 단위로 데이터 전달

 IP 주소

💡  네트워크 환경에서 노드(컴퓨터)간 통신하기 위해 각 컴퓨터에 부여된 네트워크상의 주소

IP 프로토콜의 한계

1. 비연결성 : 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷을 전송한다.
2. 비신뢰성 : 에러제어와 흐름제어를 하지 않는다. 중간에 패킷 소실 또는 패킷 전달 순서에 문제가 발생해도 알 수 없다.
3. 프로그램 구분 불가 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 많을때 구분이 불가능하다. 

 

🚀 TCP(Transmission Control Protocol)  전송 제어 프로토콜

💡 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
- osi 7계층 중, 4계층인 전송계층에서 사용

TCP 특징

1. 연결지향 - 3-way handshake를 통해 연결 후 데이터 전송
2. 순서보장 - 순서가 잘못된 경우 잘못된 부분부터 다시 전송해달라고 요청
3. 데이터 전달 보증 -  데이터 수신 후 잘 받았는지 응답
4. 현재 대부분 TCP 사용 (신뢰할 수 있는 프로토콜)

 

TCP/IP 패킷 정보

 

3-way handshake

 

🚦 UDP (User Datagram Protocol) - 사용자 데이터그램 프로토콜

💡  비연결형, 신뢰성이 없는 전송 프로토콜
- osi 7계층 중, 4계층인 전송계층에서 사용
- TCP보다 전송 속도가 빠름

UDP 특징

1) 데이터 제어에 관한 어떠한 기능이 없음
2) 비연결형
3) 신뢰성이 낮음
4) TCP보다 속도 빠름
5) IP와 거의 비슷하되, PORT와 체크섬이 추가된다