최근 들어 스트리밍 미디어 서버 쪽 개발을 하고있습니다.
그때 사용하는 프로토콜이 RTSP입니다.
RTSP는 스트리밍 미디어 서버를 제어하기 위한 제어 프로토콜 중 하나입니다.
RTSP 클라이언트가 RTSP 서버에게 명령을 보내어서 스트림을 시작/정지/일시정지/재생 등을 할 수 있도록 합니다.
RTP는 아래와 같은 특징이 있습니다.
1. 스트림을 제어
시작/정지/일시정지/재생 등의 명령어를 제공합니다.
2. 실시간으로 데이터를 전송
스트리밍에서는 주로 오디오와 비디오 데이터를 전송합니다.
3. 네트워크 효율성
네트워크의 대역폭을 효율적으로 사용하게 됩니다.
4. 다양한 미디어 형식 제공
오디오/비디오의 여러가지 코덱을 지원합니다.
이번에는 RTSP 메시지 포맷에 대해 알아보겠습니다.
일반적으로 Request Message와 Response Message가 있습니다.
1. Request Message
요청의 경우 클라이언트가 서버로 송신하는 메시지입니다.
-----------------------------------------------------------------------------
<Method> <Request-URI> RTSP/<Version>
<Header>: <Header-Value>
...
<Header>: <Header-Value>
<Body>
-----------------------------------------------------------------------------
Method : 클라이언트가 수행하고자 하는 동작
메소드는 OPTIONS, ANNOUNCE, SETUP, DESCRIBE, RECORD, PLAY, PAUSE, TEARDOWN등이 있습니다.
Request-URI : 요청을 한 대상, 즉, 클라이언트쪽의 리소스 식별자
Version : RTSP 버전
Header : RTSP 헤더
Body : 본문 내용
ex)
-----------------------------------------------------------------------------
OPTIONS rtsp://10.10.10.10:1935/a/b RTSP/1.0
CSeq: 1
SETUP rtsp://10.10.10.10:1935/a/b/streamid=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
CSeq: 3
Session: c2e9f7e63f60b9d1b19ff13836b39be7_test
-----------------------------------------------------------------------------
2. Response Message
-----------------------------------------------------------------------------
RTSP/<Version> <Status-Code> <Reason-Phrase>
<Header>: <Header-Value>
...
<Header>: <Header-Value>
<Body>
-----------------------------------------------------------------------------
Version : RTSP 버전
Status-Code : 요청에 대한 결과 상태
(200, 403, 404 등)
Reason-Phrase : Status-Code의 의미
Header : RTSP 헤더
Body : 본문 내용
ex)
-----------------------------------------------------------------------------
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, 07 Aug 2024, 05:48:00 GMT
Session: c2e9f7e63f60b9d1b19ff13836b39be7_test
-----------------------------------------------------------------------------
RTSP의 자세한 내용은 아래를 참고하시기 바랍니다.
https://www.rfc-editor.org/rfc/rfc2326.html
오늘 포스팅은 여기까지 하겠습니다.
'네트워크 > 프로토콜' 카테고리의 다른 글
[프로토콜] RTMP 프로토콜 (2) | 2024.07.24 |
---|---|
[프로토콜] SNMP (Simple Network Management Protocol) (0) | 2024.03.25 |
[프로토콜] GTP ( GPRS Tunneling Protocol Tunneling) (0) | 2023.04.21 |
[프로토콜] NTP ( Network Time Protocol ) (0) | 2023.01.08 |
[프로토콜] RTP의 포트는 정해져있다? (0) | 2022.11.01 |