TCP와 UDP
TCP
(Transmission Control Protocol)
신뢰성이 높고 데이터의 순서를 보장하는 연결 지향적인 프로토콜
- TCP는 연결 지향적인 프로토콜 (connection-oriented)
➜ 데이터를 주고받기 전에 먼저 열결을 설정해야 한다. 이를 통해 신뢰성 있는 데이터 전송을 보장한다. - 연결 설정에는 3-way handshake 과정이 사용된다.
1. 클라이언트가 서버에게 연결 요청
2. 서버가 클라이언트에게 수락 응답
3. 클라이언트가 수락 응답을 확인 후 연결 성립 - 데이터 전송 중 데이터의 손실, 중복, 순서 변경 등을 방지하기 위해 흐름 제어와 혼잡 제어 기능이 있음
- 데이터의 순서를 보장하기 때문에 전송 순서대로 도착하며, 수신확인(Acknowledgement)을 통해 손실된 패킷을 다시 요청
- 신뢰성을 보장하기 위해 오버헤드가 발생하고, 높은 신뢰성이 필요한 애플리케이션에 적합
➜ ex) 파일 전송, 이메일, 웹 사이트 접속 등
UDP
(User Datagram Protocol)
연결 설정 없이 빠른 정송을 지향하는 비연결 지향적인 프로토콜
- UDP는 비연결 지향적인 프로토콜
➜ 데이터를 주고받기 전에 미리 연결을 설정하지 않음. 간단한 데이터 전송에 사용 - TCP보다 속도가 빠르고, 오버헤드가 적음
➜ 연결 설정이 없기 때문 - 신뢰성이 낮으며, 데이터 전송 중 손실이 발생하더라도 재전송 요청을 하지 않으며, 순서가 바뀔 수 있음
- 오디오, 비디오, 스트리밍, 온라인 게임 등에서 실시간 통신이 필요한 경우에 주로 사용.
➜ 손실된 데이터를 재전송해도 실시간성을 유지하는 것이 더 중요하기 때문
TCP와 UDP 비교
'컴퓨터 탐구' 카테고리의 다른 글
컴퓨터) 스택(Stack)과 큐(Queue) (0) | 2023.07.27 |
---|---|
컴퓨터) 웹 서버(Web Server)와 WAS(Web Application Serviece) (0) | 2023.07.27 |
컴퓨터) Spring MVC 에서의 예외 처리 기법 (0) | 2023.07.20 |
컴퓨터) REST API (0) | 2023.07.19 |
컴퓨터) CPU와 메모리 (0) | 2023.06.21 |