RTSP порт: вопросы и ответы
RTSP (Real Time Streaming Protocol) является популярным прикладным протоколом, используемым для управления потоковой передачей мультимедиа в режиме реального времени. Однако за 20 лет своего существования этот протокол пережил взлеты и падения, уступив лидерство более современным решениям вроде HTTP Adaptive Streaming.
История создания RTSP
RTSP был разработан в 1998 году организацией IETF с целью унифицировать управление потоковым видео и звуком. Изначально предполагалось, что RTSP будет использоваться в развлекательном IP-телевидении и трансляции событий. Однако в дальнейшем RTSP применялся в основном для IP-видеонаблюдения и интеграции с IP-камерами.
Сравнение RTSP и HTTP
На первый взгляд RTSP и HTTP очень похожи. Оба протокола используют текстовые команды и коды ответов, аналогичные структуре. Однако при ближайшем рассмотрении можно отметить несколько ключевых отличий:
- RTSP создан специально для управления потоковым видео и аудио в режиме реального времени. HTTP не предназначен для этого изначально.
- В RTSP и клиент, и сервер могут посылать команды. В HTTP запросы посылает только клиент.
- RTSP может использовать TCP и UDP, тогда как HTTP работает только поверх TCP.
- RTSP поддерживает возможности управления сессией и состоянием соединения, в HTTP это не предусмотрено.
Стандартные порты RTSP
По умолчанию RTSP использует TCP-порт 554 для передачи команд и управляющей информации. Для передачи мультимедийного трафика обычно задействуется отдельное соединение с помощью протоколов вроде RTP и RTCP. Однако в зависимости от реализации можно встретить и другие порты для RTSP, например:
- TCP 8554 - альтернативный RTSP-порт в некоторых приложениях.
- UDP 554 или 8554 - редко используемые RTSP-порты поверх UDP.
Кроме того, нередко применяется проброс RTSP-портов через брандмауэры или NAT для обеспечения работы IP-камер за этими устройствами. В таком случае на роутере пробрасываются TCP и UDP порты, необходимые для передачи RTSP и RTP.
Порты RTSP для IP-камер
Подавляющее большинство современных IP-камер поддерживает получение видеопотока по RTSP. При этом обычно используется стандартный TCP-порт 554, однако некоторые производители для своих моделей применяют нестандартные порты. Например:
- Камеры Dahua часто используют порты 554, 8554 или 8000 для RTSP.
- У IP-камер Hikvision RTSP-порт может быть 554, 34569, 8554 и др. в зависимости от прошивки.
Поэтому при настройке IP-камеры необходимо уточнять значение используемого RTSP порт камеры в ее документации или веб-интерфейсе.
Проброс портов для RTSP
При использовании RTSP за межсетевым экраном или роутером с NAT часто возникает необходимость настроить проброс портов, чтобы устройства из внешней сети могли получить доступ к камере. Для RTSP требуется пробросить как минимум TCP порт 554, а для получения видеопотока по RTP - диапазон UDP портов.
Например, в роутере можно настроить следующие правила проброса портов для RTSP:
Протокол | Внешний порт | Внутренний IP | Внутренний порт |
TCP | 554 | 192.168.1.101 | 554 |
UDP | 50000-50010 | 192.168.1.101 | 50000-50010 |
Благодаря таким правилам камера сможет отдавать видеопоток по RTSP даже из внутренней сети за NAT.
Безопасность портов RTSP
Использование стандартных портов вроде 554 и 8554 порой вызывает опасения за безопасность RTSP. Злоумышленники могут сканировать эти порты в поисках уязвимых камер. Поэтому иногда рекомендуют менять порты на нестандартные значения.
Однако смена RTSP портов не дает 100% гарантию безопасности. Надежнее использовать различные методы аутентификации, шифрование трафика и ограничение доступа к камерам по IP.
Нестандартные RTSP порты
Некоторые производители используют нестандартные порты в своих камерах и IP-видеорегистраторах для повышения безопасности или обхода блокировки портов провайдерами.
Вот примеры нестандартных TCP-портов RTSP, которые можно встретить в этих устройствах:
- 554, 8554 - стандартные порты
- 1935 - популярный нестандартный RTSP-порт
- 8080, 8000, 7001 и др. - произвольные значения
Статистические порты и RTSP
Некоторые сетевые устройства, такие как брандмауэры и программные коммутаторы, анализируют проходящий через них трафик для определения используемых портов и протоколов. Эта информация позволяет строить различные отчеты и статистику по прикладному трафику.
Поэтому RTSP как популярный протокол передачи видео обычно выделяется отдельной строкой в такой статистике наряду с HTTP, HTTPS, SMTP, POP3 и прочими протоколами.
Выбор портов при настройке IP-камер
При установке IP-камер зачастую возникает вопрос: какие порты лучше использовать для RTSP и получения потока? Вариантов здесь может быть несколько.
- Использовать стандартные порты 554 или 8554 для RTSP, что упростит подключение к IP-камере для большинства клиентов.
- Указать нестандартные порты, например, 8080 или 1935 для повышенной безопасности. Однако в этом случае придется настраивать проброс портов на роутере и менять порты в клиентском ПО.
- Включить RTSP через HTTP, используя стандартный HTTP-порт 80. Это упростит подключение через Интернет, но может снизить производительность.
HTTP-туннелирование RTSP
Достаточно часто для упрощения подключения используется HTTP-туннелирование RTSP через порт 80. Это позволяет обойти блокировки портов провайдерами и легче настроить проброс RTSP через NAT.
Однако у этого подхода есть и определенные минусы:
- Дополнительные накладные расходы на инкапсуляцию RTSP в HTTP.
- Ограничение производительности из-за использования HTTP вместо TCP.
- Не совместимо с некоторыми старыми IP-камерами.
Выбор UDP или TCP
Зачастую при настройке подключения возникает выбор: использовать для получения видеопотока от камеры TCP или UDP протокол. Каждый из вариантов имеет свои достоинства и недостатки.
При использовании RTSP через TCP гарантируется целостность и упорядоченность передаваемых данных за счет подтверждений и повторных запросов пакетов. Однако это приводит к некоторой задержке.
UDP обеспечивает минимальную задержку, но все же есть риск потери пакетов, что приведет к артефактам на изображении. Поэтому для IP-камер обычно рекомендуют отдавать предпочтение RTSP через TCP.