뚝딱햄 탈출기

[인터넷공학] Chap10. 전송 계층 : UDP, RTP, OSI TP의 서비스 프리미티브 본문

데이터 통신 & 컴퓨터 네트워크

[인터넷공학] Chap10. 전송 계층 : UDP, RTP, OSI TP의 서비스 프리미티브

hyrmzz1 2023. 6. 21. 16:39

인터넷 공학(2) 수업에 사용되는

쉽게 배우는 데이터 통신과 컴퓨터 네트워크 [3판] / 박기현 / 한빛 아카데미

교재에 대한 연습문제를 정리한 내용이다.


UDP 프로토콜

  • 하부의 IP 프로토콜을 이용해 전송 서비스를 지원하며, 작지만 빠른 전송이 가능함.
  • 인터넷에서 사용하는 프로토콜 중 구조가 가장 간단함.
  • 비연결형 서비스 제공. (TCP→ 연결형, IP & UDP→ 비연결형)
  • 신호 절차 없이 일방적으로 데이터 전달. 연결 설정이 없어 데이터가 손실되거나 순서가 뒤바뀔 수 있음.
  • 데이터의 신뢰성은 낮으나 TCP에 비해 속도가 빠름. => 실시간 스트리밍에 사용.
  • 헤더와 전송 데이터에 대한 체크섬 기능 제공. (TCP→ 헤더 + 데이터에 대한 체크섬 기능 제공, IP→ 헤더에 대한 체크섬 기능 제공.)
  • 전송한 데이터그램이 목적지까지 제대로 도착했는지 확인 X → TCP보다 신뢰성 낮음.

UDP 헤더

  • Source Port/Destination Port 필드는 송수신 프로세스에 할당된 네트워크 포트 번호.
  • 송수신 호스트에서 실행되는 네트워크 프로세스의 고유 구분자는 호스트의 IP 주소와 프로세스 포트 번호의 조합. (⇒ 전송 & 네트워크 계층에서 사용하는 주소 표현 방식 중 하나)
  • TCP와 UDP에서는 독립적으로 포트 번호가 관리되고 할당됨.
  • Length 필드는 프로토콜 헤더 포함한 UDP 데이터그램의 전체 크기.
  • Length 필드는 크기가 16비트이므로 데이터그램의 최대 크기는 이론상 65535바이트.
  • Checksum 필드는 프로토콜 헤더와 데이터에 대한 체크섬 값 제공 → 수신 프로세스가 데이터 변형 오류 감지 가능. (발견시 오류 해결 않고 해당 데이터그램 버림)
  • 체크섬 기능은 옵션이므로 필드 값이 0이면 송신 프로세스가 체크섬 계산 하지 않았다는 의미. → 수신 프로세스는 체크섬으로 오류 검출 기능 수행 X

UDP 헤더 구조

UDP 프로토콜의 데이터 전송

  • 비연결형 서비스를 이용해 데이터그램 전송. 각 데이터그램은 전송 과정에서 독립적으로 중개됨.
  • 데이터그램이 목적지까지 도착할 수 있도록 최선을 다하나, 반드시 목적지에 도착하는 것 보장하진 않음.
  • 슬라이딩 윈도우 프로토콜과 같은 흐름 제어 기능 제공 X → 버퍼 오버플로에 의한 데이터 분실 오류 발생 가능.
  • 오류 유형으로는 데이터가 목적지에 도착하지 못하는 데이터그램 분실과 데이터그램의 도착 순서가 바뀌는 도착 순서 변경으로 나뉨.

UDP 프로토콜의 전송 오류

  • 분실 오류 복구 기능 수행 X → 상위 계층 스스로 데이터 분실 확인해 복구해야 함.
  • 데이터의 순서 번호 기능 제공 X → 데이터그램 분실 여부 확인 불가 → 응용 프로그램에서 데이터 분실 감지하려면 순서 번호와 유사한 기능을 응용 프로그램 자체적으로 구현해야 함.
  • UDP에서는 각 데이터그램이 개별 전송 경로를 선택해 독립적으로 이동. → 데이터 순서 번호 기능 X → 도착 순서 변경 오류 해결 불가.

RTP 프로토콜 

  • 음성 및 영상 정보를 인터넷에서 실시간으로 서비스하면서 데이터그램 변형이나 분실 오류를 복구하는 기능이 상대적으로 덜 중요해졌음. 대신 데이터그램의 도착 순서, 수신한 패킷의 지터 분포의 균일성과 데이터 압축에 의한 전송 정보량의 최소화가 중요. → RTP: UDP에 데이터그램의 순서 번호 기능을 추가한 프로토콜. // RTP 필요성
  • 불규칙하게 수신되는 데이터 순서를 정렬하기 위해 타임 스탬프 방식 사용.
  • 프로토콜의 동작이 응용 프로그램의 라이브러리 형태로 구현되는 ALF 방식 사용.

실시간 서비스의 요구 사항

  • 송신 프로세스가 전송한 데이터의 전송 간격이 수신 프로세스에 그대로 유지되도록 하는 것이 중요. 대부분 특정 데이터가 정해진 시간 안에 반드시 도착하도록 요구함.
  • 실시간 서비스와 관련하여 송신 호스트가 전송한 데이터는 데이터그램 사이의 시간 간격이 일정한 상태로 출발하나 인터넷을 거쳐 수신 호스트에 전달되는 과정에서 간격이 불규칙하게 변함. 수신 호스트는 지연 버퍼를 이용해 시간 간격을 일정하게 보정한 후 수신 프로세스에 전달.
  • 수신 호스트에서 간격 보정을 위해 지연 버퍼에 저장되는 시간이 필요. → 수신 프로세스에 첫 번째 데이터가 전달되는 시점은 조금 늦춰짐.
  • 전송 지연에 영향을 미치는 요소에는 대역, 네트워크의 구조, 라우팅 방식, 전송 프로토콜의 종류 등이 있음.
  • 지터 분포란 데이터그램의 도착 시간을 측정하였을 때 각 데이터그램의 도착 시간이 일정하지 않고 불규칙적으로 도착하는 정도를 나타냄.

RTP의 데이터 전송

  • RTP는 실시간 서비스 제공을 위해 작고 빠른 전송 기능을 제공하는 UDP 위에서 구현됨.
  • 데이터그램 분실이나 도착 순서 변경과 같은 전송 오류는 RTP 자체에서 해결.
  • RTP는 다수의 사용자가 하나의 세션에 참여해 서로 실시간 데이터를 전송하도록 지원함.
  • RTP 릴레이는 데이터 전송과정에서 송수신 프로세스가 직접 데이터를 전송할 수 없는 상황 발생시 데이터를 중개하는 기능.
  • 믹서는 여러 송신 프로세스로부터 RTP 데이터그램 스트림을 받아 이들을 적절히 조합해 새로운 데이터그램 스트림을 생성.
  • 트랜슬레이터는 입력된 각 RTP 데이터그램을 하나 이상의 출력용 RTP 데이터그램으로 만들어 주는 장치. 이 과정에서 데이터 형식 변할 수 있음.

RTP 고정 헤더 구조와 각 필드의 의미

  • Padding은 RTP 페이로드의 마지막에 패딩 데이터의 존재 여부를 나타냄. 응용 환경에서 페이로드의 크기가 특정 크기의 배수가 되어야 할 때 사용.
  • Extension은 고정 헤더의 마지막에 확장 헤더가 더 이어짐을 의미함.
  • CSRC Count는 CSRC 구분자의 개수를 표시함.
  • Marker는 보통 데이터 스트림의 경계점을 표시하는데 사용함. 비디오 페이로드에서 Marker는 프레임의 마지막을 표시하기 위해 1로 지정됨.
  • Payload Type은 헤더 다음에 이어지는 RTP 페이로드의 유형을 나타냄.
  • Sequence Number는 Timestamp 필드 값이 동일한 페이로드에 대해 패킷 손실이나 순서 변경과 같은 오류를 검출할 수 있도록 함. 일반적으로 동시에 생성된 일련의 연속 패킷들은 동일한 Timestamp 값을 가지며, 순서 번호는 RTP 패킷 단위(= 데이터그램)로 1씩 증가.
  • Timestamp는 RTP 페이로드에 포함된 데이터의 생성 시기를 나타냄. 송신 프로세스에서 사용하는 클록에 의해 발생.
  • SSRC Identifier는 임의의 세션 내에서 RTP 페이로드의 발신지가 어디인지 구분하는 고유 번호.

RTP 고정 헤더 구조

 

RTP 제어 프로토콜

  • RTP 제어 프로토콜을 RTP 데이터 전송 프로토콜과 구분하기 위해 RTCP라 부름.
  • 데이터 전송 프로토콜은 세션 참가자 사이의 멀티캐스트 기능을 이용한 사용자 데이터의 전송을 담당하나, RTCP는 제어 관련 기능 수행.
  • RTCP는 RTP처럼 UDP를 하부 전송 계층으로 사용. 세션 참가자는 RTCP 패킷을 다른 모든 멤버에게 주기적으로 전송.
  • RTCP는 세션에서의 데이터 분배 과정에서 발생하는 서비스 품질에 관한 피드백 기능(QoS) 지원.
    (RTP는 QoS와 지원 예약 기능 보장 X)
  • RTCP 패킷에는 RTCP 송신 프로세스에 관한 구분자 정보가 포함되며, 서로 다른 세션에서 발신된 스트림 정보들을 서로 연관시키는 근거를 제공함.

OSI TP의 서비스 프리미티브

  • TP(전송 계층)가 상위 계층에 제공하는 전송 서비스에는 연결형과 비연결형이 있음.
  • 연결 설정과 연결 해제는 T-CONNECT와 T-DISCONNECT로 정의됨.
  • 데이터는 일반 데이터를 의미하는 T-DATA와 긴급 데이터를 의미하는 T-EXPEDITED-DATA로 정의됨. 
  • 비연결형 서비스는 연결 설정과 해제 과정 불필요 → 데이터 전송만을 위한 T-UNITDATA 프리미티브만 존재.
  • T-DISCONNECT를 이용한 연결 해제는 한쪽의 요구에 의해 연결이 해제됨. (승낙 등의 과정 불필요)
Comments