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 |