как по tcp передавать Real Video/Audio?
От: Nigoro  
Дата: 07.12.04 14:01
Оценка:
Привет всем.
Сеть может обладать такими свойствами
1. некоторые пакеты (~50%) приходят с задержкой до 100ms.
2. возможны дропы — потери пакетов.

При наличии свойства 1 скорость передачи некоторого потока по tcp упала в 3 раза — 70 Kbytes/sec.
(210 Kbytes/sec — идеальная сеть). Замерял по заснифаному трафику. WindowSize = 64000, чего вполне должно
хватать: 64/210 ~ 0.3 то есть окно передаётся примерно за 300ms, 100ms задержка с которой приходят акноледжменты
не должна задерживать окно. Впрочем, пробовал увеличить окно — лучше не стало. В чём проблема?

Даже если разберусь с 1. то что потом делать с дропами? Ждать ретрансмиссии недопустимо.

Как вообще решают проблему передачи real-time data по tcp? Нельзя ли как-то замутить свой чуток
подправленный tcp/ip стэк?

Заранее благодарен, Nigoro.
Re: как по tcp передавать Real Video/Audio?
От: Программер  
Дата: 07.12.04 19:44
Оценка:
Здравствуйте, Nigoro, Вы писали:

N>Привет всем.

N>Сеть может обладать такими свойствами
N> 1. некоторые пакеты (~50%) приходят с задержкой до 100ms.
Такая сеть. Что плохо
N> 2. возможны дропы — потери пакетов.
TCP-протокол создает надежные соединения, т.е. недошедшие пакеты пересылаются.

N> Даже если разберусь с 1. то что потом делать с дропами? Ждать ретрансмиссии недопустимо.

Вполне может быть

N> Как вообще решают проблему передачи real-time data по tcp? Нельзя ли как-то замутить свой чуток

N> подправленный tcp/ip стэк?

Замутить, конечно, можно. Но есть вещи, с которыми надо считаться:
1) Здесь надо искать компромисс между пропускной способностью сети и качеством. Если сети не хватает — снизте битрейт.
2) Надо понимать, что данные все равно пойдут с некоторой задержкой. См. включения на ТВ — корреспондент слышит ведущего с некоторой задержкой

Удачи!
Re: как по tcp передавать Real Video/Audio?
От: Maxim S. Shatskih Россия  
Дата: 07.12.04 20:15
Оценка:
Надо забыть про самописные ляпы, и пользоваться протоколом RTP. Он поверх UDP.

Примеры кода — на www.live.com.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[2]: как по tcp передавать Real Video/Audio?
От: Nigoro  
Дата: 08.12.04 09:57
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Надо забыть про самописные ляпы, и пользоваться протоколом RTP. Он поверх UDP.


MSS>Примеры кода — на www.live.com.

Через tcp туннелируются RTP и RTSP (два коннекта). Туннелировать стали не от хорошей жизни,
кастомер хочет коннектится к серверу через HTTP прокси.
В лане конечно передача реалтайм данных через HTTP туннель работает нормально, ну а в реальной сети херово (смотрите пред. пост).
Интересно встречался ли кто-то с подобной ситуацией и что он с этой ситуацией делал?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.