С помощью RTSP/UDP, как сервер узнает, куда отправить ответ?
Хотя мне еще предстоит увидеть проигрыватель с поддержкой RTSP, который использует UDP для канала управления RTSP, RFC2326 позволяет использовать UDP. Однако в нем не указано, как клиент должен сообщить серверу, куда отправлять ответы RTSP. Есть ли какое-либо установленное соглашение для этого, или я собираюсь составить один?
2 ответа
Не тот ответ, который вы хотите услышать, но он вам действительно нужен? Как вы сказали, я не видел ни игроков, ни серверов. С сайта Мартина Стимерлинга, одного из авторов проекта RTSP 2:
В этом меморандуме описывается использование протокола RTSP через надежный протокол транспортного уровня на основе соединений, такой как TCP. RTSP может быть реализован через ненадежный транспортный протокол без установления соединения, такой как UDP. Хотя ничто в RTSP не исключает этого, дополнительное определение этой проблемной области необходимо рассматривать как расширение базовой спецификации.
Механизмы работы RTSP по UDP были исключены из этой спецификации. поскольку они были плохо определены в [RFC2326], и компромисс в размере и сложности этого меморандума для небольшого выигрыша в ограниченном пространстве проблем не считался оправданным.
К вашему сведению, последняя версия проекта RTSP 2 доступна здесь.
Ну, есть порт по умолчанию: 554. Но, если вы не можете использовать это, тогда да, вам придется сделать свое собственное соглашение.
Если вы углубитесь в эту проблему, вы также столкнетесь с проблемой обхода NAT, которая подразумевает, что 554 может быть преобразован в любой другой номер порта с помощью NAT. Это другая проблема, не рассматриваемая в данном RFC, но она реальна, и вам потребуется решение, если вы работаете на ipv4.