Предположим, что у меня есть m
UDP-потоки, уникально идентифицированные некоторым идентификатором (например, RSR SSRC). Мне нужно обработать их в n
связанных потоках, а ассоциация - 1-N
, то есть один поток UDP обрабатывается одним или несколькими потоками.Обработка нескольких потоков UDP
Какова разница в производительности сети стека ядра, если I:
Start
m
UDP серверов, каждый на другой порт. Каждый сервер обрабатывает один поток и подталкивает его к одному или нескольким связанным потокам.Запустите только один сервер. Все потоки обрабатываются одним портом, и этот поток подталкивает каждый поток данных рядом с одним или несколькими связанными потоками.
Я думаю, что дело доходит до вопроса: лучше ли открыть один порт или многие из них, где каждый получит пропорционально меньше данных?
Возможно ли, что один разъем может быть перегружен количеством входящих данных? Или, может быть, сокет, который является более логичным в ядре Linux, чем физическое, не так много делает, что сами данные, так что нет никакой реальной разницы?
Какое максимальное битрейт может обрабатывать один UDP-сокет (с увеличенным буфером)?
Я уверен, что лучше всего найду ответ, просмотрев сетевой код ядра, но, возможно, кто-то может дать ответ сразу, пожалуйста. Спасибо.
больше портов с каждым портом, предназначенным для определенного входящего потока UDP-пакетов. Linux будет буферизовать UDP-пакеты, поэтому маловероятно, что любые пакеты будут потеряны в ОС; однако пакеты могут быть потеряны где угодно до этого момента. Примечание. Я видел буфер Linux до 10 секунд UDP-пакетов данных GPS. – user3629249
Очень дорогая (100-е из K $ в год) система обмена сообщениями с крайне низкой задержкой, которую мы используем на работе, имеет настраиваемое свойство конфигурации, которое позволяет вам указать, сколько портов UDP оно прослушивает. Они рекомендуют вам профиль и настраиваются в соответствии с вашей рабочей нагрузкой и средой. Хороший совет, я думаю. –
@ AndyBrown System - вы имеете в виду программу? Как это написано? Возможно, это сетевой драйвер? – 4pie0