프로토콜(Protocol)이란?
프로토콜(Protocol)이란 컴퓨터나 네트워크 장치 간에 데이터를 송수신하기 위한 규칙과 절차를 의미한다.
쉽게 말해, 서로 다른 장치나 시스템이 원활하게 통신할 수 있도록 약속한 규칙이다.
프로토콜의 주요 역할
- 주소 지정(Addressing)
- 송신자와 수신자를 정확히 식별하기 위한 방법 제공 (예: IP 주소)
- 오류 제어(Error Control)
- 데이터가 손상 없이 전달되었는지 확인 (예: TCP의 오류 검출)
- 흐름 제어(Flow Control)
- 송신자와 수신자의 데이터 처리 속도 조절 (예: TCP의 윈도우 크기 조절)
- 세그먼트화(Segmentation)와 재조립(Reassembly)
- 데이터를 작은 조각으로 나누고 다시 합치는 과정 (예: TCP의 패킷 분할 및 조립)
- 라우팅(Routing)
- 최적의 경로를 찾아 데이터를 전달하는 역할 (예: IP 라우팅)
이러한 개념에서 중요한 것이 TCP와 UDP인데,
어플리케이션에서 이와 같은 설정들의 특징을 통해 웹 어플리케이션을 설계하는 것이 중요하다.
TCP란?
TCP란 Transmission Control Protocol로, 연결 지향적 프로토콜이다.
패킷이 손실되지 않고, 순서대로 작동하도록 보장한다.
- HTTP, HTTPS : 웹 브라우징
- FTP : 파일전송
- SMTP, POP3, IMAP : 전자 메일 전송
- SSH : 보안 접속
UDP란?
UDP란 User Datagram Protocol로, 신뢰성을 보장하지 않는 비연결형 프로토콜이다.
주로 데이터를 빠르게 전송하는 것이 중요한 애플리케이션에서 사용되며, 실시간 통신이나 스트리밍 서비스에서 운용된다.
- DNS(도메인 네임 시스템)
- 영상 스트리밍(주로 사용되는 OTT), 실시간 방송 서비스
TCP와 UDP의 선택 기준
이러한 특징들 때문에,
데이터의 신뢰성과 정확한 전송이 중요한 경우 TCP를 선택하고(데이터의 정확성과 순서를 중시),
빠른 전송 속도가 더 중요하거나 일부 데이터의 손실이 허용되는 경우 UDP를 선택한다(속도와 효율성을 중시).
REF
'백엔드' 카테고리의 다른 글
[Redis] Redis에서 삭제된 캐시 복구하는 방법 (0) | 2025.02.22 |
---|---|
[백엔드] Test의 종류 (0) | 2025.02.19 |
[백엔드] CSRF(Cross Site Request Forgery) 살펴보기 (0) | 2024.11.25 |
[GitHub] 깃허브 pull 에러 해결하기 : files would be overwritten by merge (0) | 2024.11.25 |
[AWS] AWS 배포 중 gradlew build Permission denied (0) | 2024.11.21 |