TCP와 UDP는 OSI 7계층에서 4계층인 전송 계층의 대표적인 프로토콜이다.
전송 계층을 다시 한번 리마인드 해보자면 "IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당"한다.
📌 TCP(Transmission Control Protocol) 정의
연결 지향적 프로토콜
- 신뢰성을 보장하는 연결형 서비스이다.
- 안정적으로, 순서대로, 에러없이 패킷을 교환할 수 있도록 한다.
특징
- 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking 과정을 통해 연결을 해제한다.
- 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다.
네트워크 내 패킷 수가 과도하게 증가하지 않도록 방지한다.
- 신뢰성이 높은 전송을 하기 때문에 UDP보다 속도가 느리다.
- 양방향으로 동시에 통신하며, 각 연결이 Point to Point로 2개의 종단점이 존재한다.
- 일반적으로 데이터가 유실되면 안되는 로그인, 회원가입 등의 서비스에서 TCP를 사용한다.
📌 UDP(User Datagram Protocol) 정의
연결 지향적 프로토콜
- 연결을 위해 할당되는 논리적인 경로가 없다.
- 각가의 패킷은 다른 경로로 전송되며 독립적인 관계를 지닌다.
특징
- 비연결형 서비스로 데이터그램 방식을 제공한다. 따라서 데이터의 전송 순서가 뒤바뀔 수 있다.
- 데이터 수신 여부를 확인 하지 않는다.
- 3-way handshaking 같은 과정을 거치지 않는다.
- 신뢰성이 낮다. 흐름 제어가 없어서 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
- TCP보다 속도가 빠르다.
- 1:1, 1:N, N:N 통신이 가능하다.
- 스트리밍 서비스(영화, 음악 등)에 주로 사용한다.
'Computer Science > 1일 1주제(면접 대비)' 카테고리의 다른 글
MVC(혹은 MTV) 패턴이란? (0) | 2023.03.29 |
---|---|
TCP 3-way handshake (0) | 2023.03.27 |
HTTP와 HTTPS의 차이 (0) | 2023.03.27 |
웹 소켓이란? (0) | 2023.03.27 |
Gunicorn이란? (0) | 2023.03.24 |