SRT (Secure Reliable Transport)
SRT는 실시간 비디오 스트리밍을 위해 Haivision에서 개발한 오픈 소스 전송 프로토콜
핵심 목표
- Low latency (낮은 지연 시간)
- Packet loss recover (패킷 손실 복구)
- Security (AES 암호화 지원)
기반 기술
UDP를 기반으로 함 (TCP 아님)
자체적인 ARQ(Automatic Repeat reQuest) 재전송 매커니즘 포함
전송 타이밍 제어(playback delay 설정)
네트워크 환경의 품질을 실시간 측정하여 조정
설계 철학
SRT는 다음과 같은 철학에 기반해 설계됨
- 실시간 스트리밍에 최적화: 방송, 스포츠, 원격 제작 등을 위한 저지연 전송을 목표
- UDP기반 + 신뢰성 확보: TCP의 높은 신뢰성과 UDP의 낮은 지연 사이에서 균형 추구
- 네트워크 품질 변화에 강인한 복원력: ARQ 기반 재전송, 네트워크 지터 버퍼, 패킷 타이밍 복원 기능
- 적응형 전송(Adpative Transmission)
- 안정성과 보안의 공존
ARQ (Automatic Repeat reQuest)
기본 동작 방식
- 송신자가 패킷을 보냄
- 수신자가 확인 응답(ACK)을 보냄
- ACK가 오지 않으면 재전송
종류
- Stop-and-Wait ARQ: 하나 보내고 ACK 기다림
- Go-Back-N ARQ: 여러개 보내고 문제 생기면 이후 전부 다시 보냄
- Selective Repeat ARQ: 손실된 패킷만 선택적으로 재요청 (SRT가 이 방식 사용)
ARQ와 Latency의 트레이드 오프
ARQ를 사용할 떄는 신뢰성과 지연 시간 사이에 명확한 트레이드오프가 존재
신뢰성 증가 - 패킷 손실이 있어도 재전송으로 복구 가능
지연 시간 증가 - 재전송 요청 -> RTT만큼 대기 발생
예시:
RTT가 100ms이고 패킷이 한번 손실되면, 복구까지 최소 100~200ms 지연이 추가됨
재전송 타이밍과 버퍼 크기가 지연의 주요 변수임
Live 방송에서는 너무 긴 지연은 수용 불가 -> SRT는 버퍼를 제한하고 손실 일부 허용