UDP?
UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻인데 풀어 해석하면 아래와 같습니다.
데이터를 데이터그램 단위로 처리하는 프로토콜
여기서 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻으로, TCP와 달리 UDP는 비연결형 프로토콜입니다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 되고, 이러한 프로토콜을 UDP라고 합니다.
TCP와 달리 데이터의 신뢰성, 순서, 재전송을 보장하지 않지만, 빠른 전송 속도와 낮은 오버헤드가 특징입니다.
출처: https://mangkyu.tistory.com/15 [MangKyu's Diary:티스토리]
UDP는 사전 연결 설정을 하지 않는다. (Connectionless)
- TCP는 연결 시작 전에 3-way-handshake라는 사전 연결 설정을 한다.
- 하지만 UDP는 사전 연결 설정을 하지 않는다.
- 사전 연결 설정이 없기 때문에 TCP에 비해서 빠르다.
데이터그램과 세그먼트의 차이점
특장 | 데이터그램(Datagram) | 세그먼트(Segment) |
사용 프로토콜 | UDP와 같은 비연결형 프로토콜 | TCP와 같은 연결형 프로토콜 |
독립성 | 각 데이터그램은 독립적으로 전송되고 처리됨 | 세그먼트는 연결 상태에 의존하여 순서대로 조립 |
순서 보장 | 순서를 보장하지 않음 | 순서를 보장하며, 손실 시 재전송 |
신뢰성 | 데이터 신뢰성 보장하지 않음 | 데이터의 신뢰성 보장 |
용어 의미 | 독립적인 메시지 | 데이터 스트림의 일부를 나타냄 |
회고
UDP에 대해 알아보았다. 패킷, 데이터그램, 세그먼트 용어가 헷갈렸는데, 이제는 알 거 같다. 패킷은 데이터그램 또는 세그먼트를 포괄하는 개념으로 볼 수 있고, 데이터그램은 UDP에서, 세그먼트는 TCP에서 사용하는 패킷 이름이다. 단순히 외우지 말고 용어의 어원을 생각하면 이해가 쉽다.
데이터그램에서 Gram은 그리스어에서 온 단어로 "무언가 전달되는 것" 또는 "메시지"를 의미한다. 즉, 데이터그램은 데이터를 독립적으로 전달되는 메시지를 뜻한다. 다른 데이터그램에 의존하지 않는다. 즉, 순서에 의존하지 않는다. 그래서 독립적이다.
세그먼트는 데이터가 하나의 연속된 스트림으로 처리되며, 그 일부로 나뉜 조각(segment)이라는 의미를 가진다. 따라서 다른 세그먼트에 의존한다. 즉, 순서에 의존한다. TCP의 특성(연결 지향, 순서 보장, 신뢰성)을 반영한 용어로, 데이터그램과 차별화된다.
면접 대비
TCP와 달리 UDP는 연결 지향형이 아니고,
신뢰적인 데이터 전송을 보장하지 않습니다.
단지 체크섬을 통해 수신된 패킷의 오류 여부 정도만을 알 수 있습니다.
UDP는 TCP에 비해 기능이 별로 없기 때문에 적은 오버헤드로 빠른 전송이 가능 합니다.
따라서 일정 전송 요구량이 있고,
조금의 데이터 손실을 허용하는 스트링 애플리케이션에 어울립니다.
'외부활동 > JSCODE 네트워크' 카테고리의 다른 글
[4주차] UDP Checksum (0) | 2024.11.21 |
---|---|
TCP (0) | 2024.11.20 |
RESTful하게 개발한다는 건 뭘까? (0) | 2024.11.16 |
[3주차] REST API, 웹 보안 (0) | 2024.11.15 |
[3주차] 쿠키, 세션, 토큰, CORS (0) | 2024.11.15 |