2010-09-13 2 views
3

Я делаю a Java implementation из RFC 3550 (RTP), и я столкнулся с небольшой проблемой:RTP RFC (3550) интерпретация вопрос

В chapter 11 пункте 2 говорится, что:

(.. .) Участник НЕ ДОЛЖЕН предполагать, что исходный порт входящего пакета RTP или RTCP может использоваться в качестве порта назначения для исходящих пакетов RTP или RTCP. Когда пакеты данных RTP отправляются в обоих направлениях, пакеты RTCP SR каждого участника ДОЛЖНЫ быть отправлены на порт, указанный другим участником для приема RTCP. (...)

RTP не имеет механизма для информирования об этих адресах и портах (это зависит от SDP или другого протокола установки), что привело бы меня к пониманию этого параграфа как «если вы получая данные из неизвестного источника, просто отбросьте его ».

Но в section 6.3.3 в основном говорится, что при получении RTP или не-BYE RTCP-пакета с неизвестным SSRC в таблицу должен быть добавлен новый участник.

Так, чтобы подвести итог:

  1. Вы должны добавить новый участник, когда неизвестный SSRC получен;
  2. Вы не можете использовать IP/порт источника пакета в качестве адресата пакетов для этого участника;
  3. SDP не определяет SSRC, который будет использоваться каждым из участников RTP;
  4. Вы можете вручную добавить участников RTP (обнаруженных другими способами), но вы не знаете, что такое SSRC.

Таким образом, вопрос в миллион долларов: как же он должен обрабатывать неожиданные SSRC?

ответ

2
  1. Вы должны добавить нового участника при получении неизвестного SSRC -> Только после проверки в соответствии с разделом Раздел 6.2.1
  2. Вы не можете использовать IP/порт источника пакета в качестве адресата пакетов для этого участника -> Он говорит, что вы не можете ожидать, что пара RTP/RTCP конечной точки совпадает с парой конечной точки B (если не указано). (В разделе 11 RFC не говорит об IP-адресе.)
  3. SDP не определяет SSRC, который будет использоваться каждым из участников RTP -> Да, поскольку SSRC может быть изменен «на лету».
  4. Вы можете вручную добавить участников RTP (обнаруженных другими способами), но вы не знаете, что такое SSRC. ???

Так что вопрос в миллион долларов по-прежнему стоит миллион долларов. Будут исследовать и обновлять вас. Тем временем, если вы найдете ответы, пожалуйста, сообщите нам об этом.

0

С моей интерпретации RFC, ответ на ваш вопрос в разделе 6.3.3:

6.3.3, получающего RTP или Non-BYE RTCP Packet

Когда RTP или пакет RTCP принимается от участника, SSRC которого не находится в таблице-члене, SSRC добавляется в таблицу, а значение для членов обновляется после проверки участника, как описано в разделе 6.2.1.

Что касается какой записи следует считать действительным:

(...) Новые записи может быть рассмотрена не действует до тех пор, несколько пакетов, несущих новый SSRC не были получены (см Приложение А.1), или до тех пор, пока не будет получен пакет SDES RTCP, содержащий CNAME для этого SSRC. (...)

Могу ли я что-то упустить? ;)

+0

Большой вопрос заключается в том, как определить состав IP/Port этого нового участника - после его проверки - начиная с раздела 11, параграф 2 гласит, что источник IP/порт «НЕ ДОЛЖЕН» использоваться и «(.. .) пакеты ДОЛЖНЫ быть отправлены в порт, который другой участник указал для приема (...) ». Если это новый, неожиданный участник (что означает, не объявлено через SDP, возможно, кто-то нажал), как указано назначение IP/Port combo приема? – biasedbit

Смежные вопросы