LINUX.ORG.RU

Передача данных по сети с низкой задержкой

 ,


0

3

Допустим, необходимо передавать поток данных примерно на 700 кбайт/сек по Wi-Fi между двумя устройствами (условия более-менее благоприятные в виде отсутствия обилия сетей вокруг и использования не самых китайских Wi-Fi модулей). При этом допускается иногда терять часть данных, зато первоочередным моментом является низкая задержка (менее 100 мс).

Как следует подходить к данной задаче? Вероятно, использовать UDP. А какой размер пакета? Ограничиться безопасными с точки зрения MTU 1200 байтами? Или передавать больше, забив на фрагментацию? Может быть есть какие-то особые настройки ядра (передающая система полностью под моим контролем, принимающая нет) и конкретных сокетов для уменьшения задержки?

Я кое-что сделал и у меня получилась задержка 150-200 мс в сети (то есть от первого send до последнего recv). Хочу её уменьшить и мне интересно в какую сторону копать.

★★★★★

На фрагментацию точно забивать не стоит, особенно если оборудование не супер умное. Можно на обеих сторонах поиграться с размерами буфера сокета(можно через опции сокета задать, а не глобально на всю систему менять). Ещё, можно сервер по ядрам развешать (опять же это можно сделать из кода сервера, но освободить полностью ядра от других процессов можно только из вне или с правами админа).

Я бы написал для текущей сети тест с помощью какого нить udpreplay или просто tcpdump, который шлёт примерно интересующий тебя набор данных(можно увеличить в 1.5-2 раза), и посмотреть, что можно выжать из конфига без полезной нагрузки а там уже ориентироваться далее.

pon4ik ★★★★★
()
Последнее исправление: pon4ik (всего исправлений: 1)

Что-то очень странное при конфигурации точка->wi-fi->точка и такой низкой пропускной полосе, без промежуточных роутеров, загруженных свитчей, таких бешенных задержек быть не должно.

Смотри в сторону своего софта, мб фаерволов в системе, или своего приложения.

По wi-fi могу посоветовать таки посмотреть на состояние канала: использовать передатчики/приемники с макс числом антен, использовать 2.4GHz вместо 5, использовать более мощные передатчики, выбирать каналы wi-fi которые вообще никем не заняты или заняты по минимуму.

Но это это вряд ли все, чтобы именно wi-fi мог быть причиной таких бешенных задержек радиоусловия должны быть довольно сильно ужасными=)

Dudraug ★★★★★
()
Ответ на: комментарий от intelfx

Очевидно ж, чем меньше частота, то тем выше способность радиоволны проходить преграды/преодолевать расстояния.

Dudraug ★★★★★
()
Ответ на: комментарий от anonymous

Я как бы не говорил, что 5 лучше 2.4, это не так. 5 рулят. Но очевидно, что 2.4 через пару стенок лучше проходит чем 5.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

нужно погонять iperf3 на всех доступных частотах, тогда будет инфа сотка

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.