TCP vs UDP

네트워크 2020. 1. 29. 15:44

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)를 많이 들어보긴 했는데 정확한 차이가 무엇인지는 잘 알지 못합니다. 이번에는 TCP와 UDP를 알아보고 차이점을 알아보도록 하겠습니다.

먼저 TCP와 UDP는 전송 계층의 프로토콜로써 전송 계층답게 송수신 데이터를 전송하는데 목적이 있는 프로토콜입니다.

예전에는 누군가와 송수신을 할 때 중간의 교환원을 두고 연락하는 동안 회선을 계속 유지하고 있는 서킷 통신을 이용했습니다. 하지만 이러한 통신은 회선을 끊기면 다시 연결해야 되는 점과 회선 사용 시 다른 이용자는 사용하지 못한다는 단점이 있었는데 이러한 점을 보완하고자 나온 것이 TCP, UDP입니다.

TCP는 하나의 회선을 사용하는 것이 아닌 더 빠른 길을 찾아서 데이터를 전송하고 데이터의 크기에 상관없이 패킷단위로 쪼개서 보내는 방식을 사용하고 있습니다. 밑에서 더 자세하게 알아보도록 하겠습니다.

 

TCP(Transmission Control Protocol)

  • TCP/IP라고 자주 불리며 IP로 데이터를 보내고 TCP로 관리 및 추적을 통해 데이터 재배치 및 보완

     * IP는 오로지 패킷 데이터를 순서와 에러에 상관없이 보내는 데 집중

     * TCP는 위의 IP에서 순서와 에러, 데이터 손실 등 패킷 관리 기능 보유

  • 연결형 서비스로 가상 회선 방식 사용

  • 3-way-handshaking로 설정과 해제, 4-way-handshaking으로 해제 관리

  • 높은 신뢰성 보장 -> UDP보다 속도가 느림

  • 전이중(Full-Duplex), 점대점(point-to-point) 방식 사용

  • 각각의 패킷에 번호를 부여하여 데이터 손실 및 순서 재배치 가능

  • 연속성보다 높은 신뢰성 있는 전송이 필요할 때 사용하는 프로토콜 -> HTTP, FTP

UDP(User Datagram Protocol)

  • 비연결형 서비스로 데이터그램 패킷 교환 방식 사용

  • 체크섬을 통해 최소한의 오류만 검출

  • 각각의 패킷이 독립적으로 움직이기 때문에 순서가 맞지 않음

  • 비신뢰성으로 오류 검출, 흐름 제어 단계 x -> TCP보다 속도가 빠름

  • 비연결형 서비스이기 때문에 연결 설정과 해제가 따로 없음

  • 신뢰성보다 높은 연속성 있는 전송이 필요할 때 사용하는 프로토콜 -> 실시간 서비스

마지막으로 두 서비스를 표로 비교해보겠습니다.

프로토콜 종류

TCP

UDP

연결 방식

연결형

비연결형

패킷 교환 방식

가상 회선 방식

데이터그램 방식

전송 순서

연속적(번호 부여)

비연속적(독립적)

연결 설정 및 해제

o

x

신뢰성

높음

낮음

속도

낮음

높음

 

'네트워크' 카테고리의 다른 글

OSI 7계층이란?  (0) 2020.01.29
PaaS(Platform as a Service)란?  (2) 2020.01.07
클라우드 서비스란?  (2) 2020.01.06
블로그 이미지

Mr.HB

프로그래밍 이야기

,