티스토리 뷰

반응형

실시간 전송 프로토콜이란?

실시간 전송 프로토콜이란? 실시간 전송 프로토콜은 라이브 데이터의 일관된 전달을 위해 최적화된 오디오 또는 비디오 데이터를 전송하도록 설계된 네트워크 표준입니다. 인터넷 전화, VoIP 및 비디오 통신에 사용됩니다. 일대일 통화 또는 일대다 회의에 사용할 수 있습니다. 실시간 전송 프로토콜은 1996년 RFC 1889와 함께 IETF 에 의해 표준화되었습니다 . RFC 3550에 의해 2003년에 업데이트되었습니다. IETF는 인터넷을 통해 라이브 또는 실시간 비디오를 전송하기 위해 RTP를 설계했습니다. 모든 네트워크 데이터는 패킷 이라는 개별 묶음으로 전송 됩니다. 인터넷의 분산 특성으로 인해 일부 패킷이 다른 시간 간격으로 도착하거나 잘못된 순서로 도착하거나 전혀 전달되지 않을 수 있습니다. 이러한 것을 패킷이라고도 하죠. 실시간 전송 프로토콜은 통화 품질에 심각한 영향을 미치지 않으면서 이러한 문제를 보상할 수 있습니다. 모든 데이터를 수신하는 것보다 빠른 패킷 전달을 선호합니다. 이렇게 하면 비디오 스트림이 일관되고 재생을 버퍼링하거나 중지하는 대신 항상 재생되는 데 도움이 됩니다. 이 차이를 설명하기 위해 사용자가 인터넷에서 비디오를 보고 싶어 한다고 상상해 보세요. 비디오 스트리밍 서비스는 RTP를 사용하여 비디오 데이터를 컴퓨터로 보냅니다. 일부 데이터 패킷이 손실된 경우 실시간 전송 프로토콜이 이 오류를 수정하고 비디오에서 몇 프레임 또는 오디오의 일부가 손실될 수 있습니다. 이것은 보는 사람이 알아차리지 못할 정도로 짧을 수 있습니다. 대신 비디오의 정확한 사본을 저장하려는 경우 HTTP 와 같은 다른 프로토콜을 사용 하면 비디오를 정확하게 다운로드할 수 있습니다. 패킷이 손실된 경우 패킷 재전송을 요청하여 다운로드가 느려지지만 완전히 정확합니다. RTCP는 미디어 스트림에 대한 정보를 발신자에게 다시 보내기 위해 실시간 전송 프로토콜과 함께 사용됩니다. RTCP는 주로 클라이언트가 지터, 패킷 손실 및 왕복 시간과 같은 서비스 품질 데이터를 전송하는 데 사용됩니다 . 서버는 이 정보를 사용하여 다른 코덱이나 스트림 품질로 전환할 수 있습니다. 이 데이터는 많은 사람들이 스트림에 연결되어 있을 때 제어 신호를 보내거나 참가자에 대한 정보를 수집하는 데 사용할 수도 있습니다. 실시간 전송 프로토콜은 특정 코덱이나 신호를 정의하지 않으며 데이터 유형에 대해 다른 표준을 사용합니다. SIP, H.323 또는 XMPP 와 같은 여러 신호 프로토콜을 사용할 수 있습니다. 멀티미디어는 G.711, MP3, H.264 또는 MPEG2를 포함한 거의 모든 코덱이 될 수 있습니다. 보안 실시간 전송 프로토콜은 RTP에 암호화를 추가합니다. 다른 사람이 해독할 수 없도록 미디어 스트림을 보호하는 데 사용할 수 있습니다. 그렇다면 실시간 전송 프로토콜을 사용하는 애플리케이션은 무엇일까요? 실시간 전송 프로토콜은 일반적으로 미디어 스트림을 라이브로 전달하거나 매우 많은 사용자가 동시에 수신해야 할 때 사용됩니다. VoIP는 미디어 전송을 위해 RTP를 사용합니다. 그들은 종종 SIP를 사용하여 통화를 시작 및 제어하고 SRTP로 통화를 암호화합니다. 실시간 전송 프로토콜을 사용하는 VoIP 서버의 예로는 Asterisk, 3CX 및 기타 PBX 소프트웨어가 있습니다. 대부분의 인터넷 기반 음성 및 화상 회의 서비스는 RTP를 사용합니다. 이러한 서비스는 종종 실시간 전송 프로토콜을 기본 미디어 전송 방법으로 사용하고 그 위에 편의 기능과 표준을 추가합니다. 몇 가지 예로는 Microsoft Teams , Apple FaceTime , Cisco WebEx 및 WhatsApp 이 있습니다. Zoom 회의 는 RTP의 가까운 파생물을 사용합니다. 다음으로 실시간 스트리밍 프로토콜은 실시간 전송 프로토콜을 기반으로 하며 서버와 클라이언트 간에 비디오를 전송하는 데 사용할 수 있습니다. VideoLAN은 널리 사용되는 RTSP서버입니다. 많은 보안 카메라는 또한 비디오 보안 서버에 의해 저장될 RTSP로 비디오 전송을 지원합니다. 일부 라이브 TV 또는 스트리밍 서비스는 많은 시청자에게 방송하기 쉽도록 RTSP를 구현합니다. 대부분의 최신 주문형 비디오 스트리밍 서비스는 사전 캐싱을 위해 RTP를 사용하지 않고 DASH를 사용하도록 전환했습니다. 이러한 실시간 전송 프로토콜의 기술적 세부 사항에 대해서 알아보자면 RTP는 대부분 UDP 패킷을 사용합니다. UDP는 전달을 보장하지 않고 빠르고 간단한 데이터 전송을 위해 설계되었기 때문입니다. 실시간 전송 프로토콜은 TCP 와 함께 사용할 수 있지만 RTP 의 시간에 민감한 특성이 TCP가 속도 대신 안정성을 강조하는 것과 대조되기 때문에 권장되지 않습니다. 모든 포트 번호는 RTP와 함께 사용할 수 있습니다. 일반적으로 1024에서 65535의 높은 포트 범위에 있습니다. RTP는 짝수 포트 이고 RTCP는 다음 홀수 포트 입니다. Internet Assigned Numbers Authority 는 RTP용 포트 5004와 RTCP용 포트 5005를 등록했으며 많은 응용 프로그램에서 이를 표준으로 사용할 것입니다. RTP 패킷에는 다음이 포함됩니다. 손실된 패킷을 감지하는 데 사용되는 시퀀스 번호, 특정 미디어 코덱을 설명하는 페이로드 식별 각 IP 프레임의 시작과 끝을 표시하는 프레임 표시, 프레임의 발신자를 식별하는 소스 식별, 타임스탬프를 사용하여 단일 스트림 내에서 서로 다른 지연 지터를 감지하고 이를 보상하는 인트라미디어 동기화입니다. 더불어 부적절하게 구현된 실시간 전송 프로토콜 서버에는 보안 취약성이 존재합니다. RTP는 본질적으로 암호화되거나 인증되지 않습니다. 이를 활성화하지 않으면 미디어 스트림이 녹음, 스푸핑 또는 중간자 공격에 노출될 수 있습니다. 따라서 실시간 전송 프로토콜을 사용하는 VoIP 시스템을 적절하게 구성하고 보호하는 것이 매우 중요합니다. RTP는 또한 미디어 스트림이나 이에 연결된 클라이언트를 중단시킬 수 있는 분산 서비스 거부 공격에 취약합니다. RTP를 사용하는 특정 서비스는 소프트웨어에 고유한 취약점이 있을 수 있습니다. 지금까지 실시간 전송 프로토콜의 정의와 세부 사항에 대해서 설명해드렸습니다.

반응형
댓글