일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Algorithm
- TypeScript
- 리트코드
- frontend
- Graph
- vscode
- Data Structure
- VIM
- 알고리즘
- Database
- network
- db
- 프로그래머스
- 안드로이드
- 백준
- 다이나믹 프로그래밍
- LeetCode
- CS
- 자바
- Javascript
- 그레이들
- react
- BFS
- Python
- DFS
- java
- DP
- Redux
- git
- 동적 계획법
Archives
- Today
- Total
늘 겸손하게
CS - Network - UDP 본문
UDP 통신이란?
- User Datagram Protocol의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜
- 비연결형, 신뢰성 없는 전송 프로토콜
- 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층
- Transport layer에서 사용하는 프로토콜
TCP와 UDP는 왜 나오게 됬는가?
- IP는 Host to Host(장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우 IP만으로는 한계가 존재
- IP 오류가 발생하면 ICMP에서 알려주지만 ICMP는 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야한다.
- 1번을 해결하기 위해 포트 번호 생김. 2번을 해결하기 위해 상위 프로토콜인 TCP와 UDP가 생김
- ICMP : 인터넷 제어 메세지 프로토콜로 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지를 전송받는데 쓰임
TCP와 UDP는 어떻게 오류를 해결하는가?
- TCP : 데이터의 분실, 중복, 순서가 뒤바뀜 등을 자동으로 보정해줘서 송수신 데이터의 정확한 전달을 할 수 있도록 해준다.
- UDP : IP가 제공하는 정도의 수준만을 제공하는 간단한 IP 상위 계층의 프로토콜이다. TCP와는 다르게 에러가 날 수도 있고, 재전송이나 순서가 뒤바뀔 수도 있어 이 경우, 어플리케이션에서 처리하는 번거로움이 존재
그러면 UDP는 왜 사용하나?
- UDP의 결정적인 장점은 데이터의 신속성이다. 데이터의 처리가 TCP보다 빠르다.
- 주로 실시간 방송과 온라인 게임에서 사용된다. 네트워크 환경이 안 좋을때, 끊기는 현상이 발생하는 이유.
DNS (Domain Name Service)에서 UDP를 사용하는 이유
- Request의 양이 작음 -> UDP Request에 담길 수 있다.
- 3 way handshaking으로 연결을 유지할 필요가 없다.
- Request에 대한 손실은 Application Layer에서 제어가 가능하다.
- DNS : port 53번
- 하지만, TCP를 사용할 때가 있다! 크기가 512(UDP 제한)이 넘을 때, TCP를 사용해야한다.
[ 1. UDP Header ]
- Source Port : 시작 포트
- Destination : 도착지 포트
- Length : 길이
- Checksum : 오류 검출 - 중복 검사
간단한 구조로, TCP보다 용량이 가볍고 송신 속도가 빠르게 작동됨.
그러나 확인 응답을 못하므로, TCP보다 신뢰도가 떨어짐.
UDP는 비연결성, TCP는 연결성으로 정의할 수 있음.
'Computer Science > Network' 카테고리의 다른 글
CS - Network - Blocking/Non-blocking & Synchronous/Asynchronous (0) | 2022.11.30 |
---|---|
CS - Network - 로드 밸런싱 (Load Balancing) (1) | 2022.09.26 |
CS - Network - TLS/SSL HandShake (0) | 2022.09.26 |
CS - Network - HTTP & HTTPS (1) | 2022.09.26 |
CS - Network - 대칭키 & 공개키 (0) | 2022.09.24 |