네트워크

SDP

Keisa 2025. 2. 4. 11:40

개요

  • 목적: SDP는 멀티미디어 세션의 정보를 기술하는 데 사용됩니다.
    예를 들어, 어떤 미디어 스트림이 존재하는지, 미디어 유형, 포맷, 전송 프로토콜, 네트워크 연결 정보 등을 기술합니다.
  • 표준: RFC 4566에서 정의됩니다.
  • 특징: 텍스트 기반의 간단한 포맷으로, 사람이 읽기 쉽고 기계가 파싱하기도 용이합니다.

SDP 메시지 구성

SDP 메시지는 여러 개의 줄로 구성되며, 각 줄은 한 개의 문자(식별자)와 등호(=)로 시작한 뒤, 해당 값이 옵니다. 각 줄은 CRLF로 종료됩니다.

주요 필드는 다음과 같습니다:

  • v= (버전)
    • SDP 버전을 나타내며, 현재는 v=0이 사용됩니다.
  • o= (Origin)
    • 세션 생성자 및 세션 식별 정보를 포함합니다.
    • 형식:
o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

예시: o=- 0 0 IN IP4 127.0.0.1

 

 

  • s= (세션 이름)
    • 세션의 이름을 지정합니다.
    • 예시: s=RTSP Session
  • i= (세션 정보) (옵션)
    • 세션에 대한 추가 설명 정보를 제공할 수 있습니다.
  • u= (URI) (옵션)
    • 세션에 관련된 URI(예: 웹페이지 링크)를 명시할 수 있습니다.
  • e= (이메일 주소) (옵션)
    • 세션 관리자 또는 연락처 정보를 제공합니다.
  • p= (전화번호) (옵션)
    • 연락 가능한 전화번호 정보를 제공합니다.
  • c= (연결 정보)
    • 세션의 네트워크 연결 정보를 명시합니다.
    • 형식:
c=<nettype> <addrtype> <connection-address>

 

예시: c=IN IP4 127.0.0.1

  • b= (대역폭 정보) (옵션)
    • 세션의 대역폭 정보를 나타냅니다.
  • t= (시간 설명)
    • 세션의 시작 및 종료 시간을 기술합니다.
    • 형식:
t=<start-time> <stop-time>

 

예시: t=0 0 (영구 세션을 의미)

  • m= (미디어 설명)
    • 하나 이상의 미디어 스트림(예: 오디오, 비디오, 텍스트 등)을 기술합니다.
    • 형식:

 

m=<media> <port> <proto> <fmt> ...
m=video 0 RTP/AVP 96

여기서 96은 동적으로 할당된 RTP 페이로드 타입 번호를 의미합니다.

 

  • a= (속성)
    • 미디어 또는 세션에 대한 추가 속성 정보를 제공합니다.
    • 예시:
a=rtpmap:96 H264/90000

 

이는 페이로드 타입 96이 H.264 코덱을 사용하며, 90,000 Hz 타임스케일로 인코딩되었음을 나타냅니다.

SDP의 역할

  • 세션 설명: 클라이언트는 DESCRIBE 명령을 통해 서버로부터 SDP 정보를 받고, 이를 통해 미디어 스트림의 코덱, 전송 프로토콜, 포맷 등을 이해하게 됩니다.
  • 협상 기반: 클라이언트와 서버가 세션 정보를 공유함으로써, 클라이언트는 자신의 디코딩 능력과 네트워크 환경에 맞춰 스트리밍을 적절히 구성할 수 있습니다.

'네트워크' 카테고리의 다른 글

RTSP  (0) 2025.02.04
OpenSSL  (0) 2024.08.04
MySQL 구조  (0) 2024.07.25
프록시 서버 & 리버스 프록시 & 사이드카 패턴  (0) 2024.05.21
프로토콜  (0) 2024.05.16