Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 독서
- SQL
- pandas
- oracle
- spring
- 명령어
- 후기
- 티스토리챌린지
- DBMS
- github
- java
- mssql
- IntelliJ
- mysql
- Javascript
- 책
- PostgreSQL
- springboot
- 자바
- MariaDB
- 리눅스
- git
- Python
- Kibana
- 인터페이스
- 네트워크
- 인덱스
- 오블완
- docker
- Linux
Archives
- Today
- Total
hanker
[Network] UDP(User Datagram Protocol)란? 본문
반응형
전송 계층에서 사용되는 프로토콜인 TCP에 대해서 알아보자.
1. UDP (User Datagram Protocol)
UDP는 인터넷 프로토콜 스위트의 전송 계층 프로토콜로, 단순하고 빠른 데이터그램 방식의 전송을 제공하는 비연결 지향 프로토콜이다.
특징
1-1. 비연결성 (Connectionless)
- 사전 연결 설정 없이 바로 데이터 전송 가능
- 3-way handshake와 같은 과정이 없다.
- 각 데이터그램은 독립적으로 전송된다.
1-2. 비신뢰성 전송
- 확인 응답 없음: 수신 여부를 확인하지 않는다.
- 재전송 없음: 패킷 손실 시 재전송하지 않는다.
- 순서 보장 없음: 도착 순서가 바뀔 수 있다.
- 오류 검출만 제공: 체크섬으로 오류만 검출하고 수정은 하지 않는다.
1-3. 빠른 전송 속도
- 연결 설정/해제 과정이 없어 지연 시간이 짧다.
- 헤더가 작아 오버헤드가 적다.
- 흐름 제어나 혼잡 제어가 없어 빠른 전송 가능
1-4. 단순한 프로토콜
- TCP보다 훨씬 간단한 구조를 가진다.
- 최소한의 프로토콜 메커니즘만 제공한다.
- 구현이 쉽고 리소스 사용량이 적다.
1-5. 데이터그램 방식
- 메시지 경계를 유지한다.
- 전체 메시지가 하나의 데이터그램으로 전송된다.
- 수신 측에서도 메시지 단위로 처리된다.
구분장점단점
구분 | 장점 | 단점 |
전송 속도 | - 매우 빠른 전송 속도 - 최소한의 지연 시간 - 연결 설정/해제 시간 없음 |
- 신뢰성 없는 전송 - 패킷 손실 가능 - 전송 보장 없음 |
오버헤드 | - 작은 헤더 크기 (8바이트) - 낮은 프로토콜 오버헤드 - 최소한의 처리 필요 |
- 오류 수정 기능 없음 - 재전송 메커니즘 없음 - 애플리케이션 레벨 처리 필요 |
연결 관리 | - 연결 상태 유지 불필요 - 리소스 효율적 - 즉시 데이터 전송 가능 |
- 연결 상태 확인 불가 - 수신자 준비 상태 알 수 없음 - 연결 종료 확인 없음 |
실시간성 | - 실시간 통신에 최적 - 지연 변동성 낮음 - 즉각적인 데이터 전달 |
- 품질 보장 없음 - 지터 제어 없음 - 패킷 순서 보장 없음 |
멀티캐스트 | - 브로드캐스트/멀티캐스트 지원 - 1:N 통신 효율적 - 네트워크 대역폭 절약 |
- 수신 확인 불가 - 개별 전송 제어 어려움 - 신뢰성 보장 없음 |
구현 복잡도 | - 단순한 프로토콜 구조 - 쉬운 구현 - 적은 코드량 |
- 애플리케이션 복잡도 증가 - 신뢰성 직접 구현 필요 - 오류 처리 로직 필요 |
리소스 사용 | - CPU 사용량 낮음 - 메모리 사용량 적음 - 시스템 부하 낮음 |
- 패킷 손실로 인한 재전송 - 중복 데이터 처리 필요 - 버퍼 관리 복잡 |
적용 분야 | - 스트리밍 서비스 적합 - 온라인 게임에 최적 - IoT 센서 통신 - DNS, DHCP 등 단순 서비스 |
- 파일 전송에 부적합 - 중요 데이터 전송 위험 - 트랜잭션 처리 부적절 - 보안 통신 제한적 |
2. UDP 헤더 구조
- Source Port (0-1 바이트)
- 16비트, 송신 프로세스의 포트 번호
- 범위: 0-65535
- Destination Port (2-3 바이트)
- 16비트, 수신 프로세스의 포트 번호
- 범위: 0-65535
- Length (4-5 바이트)
- 16비트, UDP 헤더와 데이터를 포함한 전체 길이
- 최소값: 8바이트 (헤더만 있는 경우)
- Checksum (6-7 바이트)
- 16비트, 오류 검출용
- IPv4에서는 선택적, IPv6에서는 필수
3. UDP 사용 예
3-1. 실시간 애플리케이션
- 음성/영상 통화: VoIP, 화상 회의
- 라이브 스트리밍: YouTube 라이브, Twitch 등
- 온라인 게임: FPS, MOBA 게임 등
3-2. 단순 요청-응답 서비스
- DNS: 도메인 이름 조회
- DHCP: IP 주소 할당
- SNMP: 네트워크 관리
- TFTP: 간단한 파일 전송
3-3. 브로드캐스트/멀티캐스트
- 네트워크 탐색: 로컬 네트워크의 장치 검색
- 시간 동기화: NTP
- 멀티미디어 배포: IPTV
3-4. IoT 및 센서 네트워크
- 센서 데이터 전송: 온도, 습도 등의 주기적 데이터
- 텔레메트리: 원격 측정 데이터
- 경량 통신: 제한된 리소스 환경
반응형
'Network' 카테고리의 다른 글
[Network] TCP(Transmission Control Protocol)란? (0) | 2025.05.12 |
---|---|
[Network] 네트워크의 각 계층별 데이터 캡슐화(encapsulation) (0) | 2025.05.11 |
[Network] 네트워크 계층별로 전송되는 데이터 단위 (PDU) (0) | 2025.05.10 |
[Network] 웰노운 포트란 (Well-Known Port) (0) | 2025.05.05 |
Network - 데이터 링크 계층의 작동 원리 (0) | 2024.12.25 |