Объясните про RTP/RTSP
От: sz36 Россия  
Дата: 25.09.13 22:23
Оценка:
Hi, All!

Волею судеб приходится разбираться с протоколами RTP/RTSP. Для экспериментов использую VLC Player, трафик со стороны клиента смотрю снифером. И понимаю, что некоторых вещей я не понимаю. Буду крайне признателен разъяснению на пальцах некоторых вопросов.

1) Я вижу, например, такую последовательность RTSP
SETUP rtsp://xxx.xxx/xxx.xxx:554/h264/ch3/main/av_stream/trackID=1 RTSP/1.0
CSeq: 5
Authorization: Basic YWRtaW46MTIzNDU=
User-Agent: LibVLC/2.0.8 (LIVE555 Streaming Media v2012.12.18)
Transport: RTP/AVP;unicast;client_port=56842-56843

RTSP/1.0 200 OK
Session: 1471912436
Transport: RTP/AVP;unicast;client_port=6970-6971;server_port=62376-62377;ssrc=57bb99f4
CSeq: 5

Клиент говорит серверу на каких портах он ждет данные, а сервер отвечает с каких портов он будет передавать. Но что означает client_port=6970-6971 в ответе сервера? При этом снифером я вижу, что со стороны клиента в обмене участвуют порты 56842, 56843, а порты 6970, 6971 не вижу вообще. То, что они не совпадают с клиентскими, значит ли, что сервер сидит за NAT'ом, и это результат трансляции? Зачем они клиенту?

2) Может ли работать RTP по UDP, если и сервер, и клиент сидят за NAT'ами? Предположим, что на серверной стороне прописан порт форвардинг 554 порта на нужный адрес, без этого вообще ничего не получится, но как быть с RTP портами, они же динамические? Если NAT только с одной стороны, то вроде бы я понимаю как, а вот если с двух — не могу понять как UDP пакеты пробивают себе дорогу. В моем случае, я то точно сижу за NAT, и видеоисточник, похоже, тоже. Читал про STUN, ни черта не понял, а кроме того, для этого нужен внешний сервер; можно предположить, что клиентский комп знает про это, но откуда видеокамера, маленькая тупая железная муму, может знать про STUN сервер?

3) В случае, если клиенту и видеоисточнику не удается снюхаться по UDP, видеопоток идет по TCP, иногда для этого открывается отдельное соединение, а иногда прямо в том же, на 554 порту. Правильно ли я понимаю, что в этом случае все преимущества RTP — некоторое снижение трафика, толерантность к затыкам на неустойчивом и/или узком канале, возможность потери и отбрасывания части фреймов, синхронизация в реальном времени — все это идет к чертовой бабушке?
Re: Объясните про RTP/RTSP
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 30.09.13 11:03
Оценка:
Здравствуйте, sz36, Вы писали:

S>Hi, All!


S> Волею судеб приходится разбираться с протоколами RTP/RTSP. Для экспериментов использую VLC Player, трафик со стороны клиента смотрю снифером. И понимаю, что некоторых вещей я не понимаю. Буду крайне признателен разъяснению на пальцах некоторых вопросов.


S>1) Я вижу, например, такую последовательность RTSP

Порты, которые указываются в SDP это те порты которые будут открыты для приёма траффика.

S>2) Может ли работать RTP по UDP, если и сервер, и клиент сидят за NAT'ами?

STUNT, Nat traversal. Если форвардинг, то надо указывать порт и внешний адрес прокси.

S>3) В случае, если клиенту и видеоисточнику не удается снюхаться по UDP, видеопоток идет по TCP, иногда для этого открывается отдельное соединение, а иногда прямо в том же, на 554 порту.

Почти. RTP/RTCP могут использоваться для динамического уменьшениея битрейта кодеков и снижения нагрузки на канал передачи. Но в целом, да RTP немного не нужен.
Sic luceat lux!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.