Computer Science/네트워크

[네트워크] UDP와 TCP

hammii 2021. 10. 6. 00:47
728x90
반응형

앞서 OSI 7 계층에 대해 살펴보았다. 이번 시간에는 그중 전송계층 프로토콜인 UDP와 TCP에 대해 알아보도록 하자.

 

OSI 계층과 TCP/IP 계층

UDP와 TCP의 탄생 배경

  1. IP의 역할은 host to host 만을 지원하는데 host에서 host 이동은 IP로 가능하지만 하나의 장비 안에서 수많은 프로그램들이 통신하는 것은 IP 만으로 한계가 있었다. (같은 IP 주소를 사용하니까!)
  2. IP에서 오류가 발생한다면 ICMP에서 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 윗단에서 처리해줘야 했다.

따라서 1번을 해결하기 위해 port 번호가 탄생하였고, 2번을 해결하기 위해 TCP & UDP가 탄생하였다.

 

UDP vs TCP

UDP (User Datagram Protocol)

데이터를 데이터 그램 단위로 처리하는 프로토콜

UDP의 특징

  • 비연결형 서비스로 데이터 그램 방식을 제공한다.
  • 정보를 주고받을 때, 정보를 보내거나 받는다는 신호 절차를 거치지 않는다.
  • 연결 자체가 없기에 서버 소켓과 클라이언트 소켓의 구분이 없다.
  • UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
  • 낮은 신뢰성
  • TCP 보다 빠른 속도

따라서, 신뢰성보다도 연속성이 중요한 서비스에서 주로 사용된다. (ex. 스트리밍 서비스)

 

TCP (Transmission Control Protocol)

인터넷 상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

TCP의 특징

  • 가상 회선 방식을 제공한다.
  • 서버 소켓은 연결만을 담당한다.
  • 3 - way handshaking 과정을 통해 연결을 설정하고, 4 - way handshaking 과정을 통해 해제한다.
  • 높은 신뢰성
  • UDP 보다 느린 속도

따라서, 연속성보다 신뢰성 있는 전송이 중요할 때 주로 사용한다. (ex. 파일 전송)

 

오류 해결 방법

  • UDP: TCP와 달리 오류가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수 있어 애플리케이션에서 재처리해야 한다.
  • TCP: 데이터의 분실, 중복, 순서 등을 자동으로 보정하기 때문에 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.

 

참고 링크

https://github.com/haewon-park/csStudy/blob/main/Network/UDP.md

 

 

728x90
반응형