본문 바로가기

CS/네트워크

11. UDP 프로토콜 & RTP 프로토콜 & OSI TP

쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 정리한 내용입니다

TCP와 UDP의 개념을 간단히 정리한 Github

 

GitHub - fhwmqkfl/YJs_TIL: YJ's Study Log

YJ's Study Log. Contribute to fhwmqkfl/YJs_TIL development by creating an account on GitHub.

github.com

1. UDP(User Datagram Protocol) 정의

TCP와 더불어 대표적인 전송 계층 프로토콜로 인터넷에서 사용하는 프로토콜 중 가장 간단한 구조를 가지고 있다.

- 비연결형 서비스 제공
- 헤더와 전송 데이터에 대한 체크섬 기능을 제공한다 -> 데이터의 변형 오류 검출기능은 없다
- Best Effort 전달 방식을 지원한다 -> 전송한 데이터그램이 목적지까지 제대로 갔는지는 확인하지 않는다. 

두번째, 세번째 특징으로 TCP보다 신뢰도가 떨어져 덜 선호되는듯 하지만, 데이터 전송 시간에 민감한 응용 환경에서는 UDP가 유리할 수 있다.

 

2. UDP의 헤더 구조

수행기능이 간단해 헤더에 포함되는 정보도 비교적 적으며, 프로토콜의 오버헤드 또한 작은 편이다

  • Source Port/Destination Port(송신/수신포트) : 송수신 프로세스에 할당된 네트워크 포트번호. 호스트에서 실행되는 프로세스 구분에 사용된다. 
  • Length(길이) : 프로토콜 헤더를 포함한 UDP 데이터그램의 전체크기이다. 단위는 바이트
  • Checksum(체크섬, Optional) : 프로토콜의 헤더와 데이터에 대한 체크섬값을 제공해 수신 프로세스가 데이터그램 변형 오류를 감지할 수 있다.

UDP의 데이터그램 전송

UDP는 비연결형 서비스로 각 데이터그램은 전송과정에서 독립적으로 전송되고, 독립적으로 중개된다. 

데이터그램이 목적지까지 도착하도록 최선을 다하지만 반드시 도착하는것을 보장하지 않으며, 버퍼오버플로에 의한 데이터 분실 오류가 발생할 수 있다 -> 항상 오류발생을 염두해야한다.

 

오류유형 1. 데이터그램 분실

전송과정에서 데이터가 분실되었을경우 데이터 분실을 감지하지 못한다. 따라서 데이터 분실을 감지하기위해 순서번호와 유사한 기능을 응용프로그램에서 자체적으로 구현해야 한다

 

오류유형 2. 도착 순서 변경

전송 순서가 뒤바뀌어 수신 프로세스에 도착한 경우이다(1,2,3,4 출발 -> 2,1,4,3 도착)

UDP는 데이터 순서 번호 기능이 없어 뒤바뀐 순서를 원래대로 해결하려면 UDP를 사용하는 응용 프로그램 내부에 순서 번호 기능이 구현되어야 한다

2. RTP(Real Time Protocol)

오늘날 실시간 스트리밍 서비스의 등장으로 TCP&UDP가 이 서비스에 맞춰 변화를 꾀하게 되었다

 

TCP&UDP는 실시간 서비스가 요구하는 전송 특성을 충분히 지원하지 못했다

- TCP는 패킷의 순서와 신뢰성이 강조되어, 실시간 환경에서는 부적합하다고 판단

- UDP는 빠른 데이터 전송이 가능하지만 데이터그램 순서를 보장하지 못한다는 문제가 있음

 

실시간 서비스를 제공하는 현실적인 대안으로 나온것이 빠른 UDP의 데이터그램에 순서 번호 기능을 추가하는 방법으로, 이러한 대표적인 예가 RTP이다. 

RTP의 특징
1. 불규칙하게 수신되는 데이터의 순서를 정렬하기 위해 타임스탬프 방식을 사용
2. 프로토콜의 동작이 응용 프로그램의 라이브러리 형태로 구현되는 ALF(Application Level Framing)방식을 이용해 프로토콜 내부에 위치하는 버퍼의 크기를 각 응용 프로그램마다 별도로 관리하기가 용이하다

RTP는 UDP위에서 구현되고 있다. UDP의 데이터그램 분실 & 도착 순서 변경과 같은 오류를 RTP에서 해결한다

1) 실시간 요구사항

실시간 서비스는 전통적인 인터넷 서비스와 다르게 전송시간을 가장 중요하게 여긴다. 

송신 호스트는 일정한 시간간격을 두고 데이터를 전송하지만 수신호스트에 전달되는 과정에서 간격이 불규칙하게 변한다. 

수신 호스트는 지연 버퍼를 이용해 시간 간격을 일정하게 보정하고 수신 프로세스에 전달해준다.

추가 개념 - 지터
데이터그램의 도착시간을 측정했을때 각 데이터그램의 도착 시간이 일정하지 않고 불규칙적으로 도착하는 정도

 2) RTP의 동작원리

RTP는 위 이미지처럼 프로그램 단위로 구성되는것이 아닌, 기능별로 개별적으로 구현된다

다수의 사용자가 하나의 세션에 참여해 서로 실시간 데이터를 전송하도록 지원하고 있다

만약 데이터 전송 과정에서 송수신 프로세스가 데이터를 직접 전송할 수 없는 상황이 되면
데이터를 중개해주는 릴레이라는 개념이 있는데, RTP는 믹서트랜슬레이터라는 두 종류의 RTP 릴레이를 지원하고 있다

3) RTP 헤더 구조

3. OSI TP 프로토콜

OSI에서 정의한 TP(Transport Protocol)는 5개의 클래스로 서비스를 분류하여 지원한다.

클래스 제공하는 서비스
클래스 0 기본 기능
클래스 1 기본 오류 복구 기능
클래스 2 멀티플렉싱 기능(목적지에서 다수포트 지원기능)
클래스 3 오류 복구, 멀티플렉싱 기능
클래스 4 오류 검출, 오류 복구, 멀티플렉싱 기능

 

TP가 상위 계층에 제공하는 전송 서비스에는 연결형과 비연결형이 있다. 

  • 연결형 서비스 :
    • 연결관련 : T-CONNECT, T-DISCONNECT
    • 데이터 : T-DATA(일단 데이터), T-EXPEDITED-DATA(긴급 데이터)
  • 비연결형 서비스 
    • 연결 설정과 해제 설정이 블필요해 데이터 전송을위한 T-UNITDATAS만 존재