У меня есть простое приложение C#, которое использует многоадресную рассылку UDP в однопользовательском сценарии с одним отправителем. Цель состоит в том, чтобы как можно быстрее обеспечить доставку сообщений в локальной сетевой среде.UDP многоадресная работа под нагрузкой
Я использовал SocketAsyncEventArgs/SendAsync/ReceiveAsync, BeginSend/BeginReceive, Threads/Send/Receive и попробовал многоадресную рассылку PGM и UDP.
Каждая попытка реализации работает нормально для повторной доставки сообщений до 1000 сообщений с локальной отправкой, локальной приемкой. После этого производительность начинает снижаться экспоненциально. Если 1000 сообщений занимают несколько сотых доли секунды, 10 000 сообщений могут занимать от 2 до 10 секунд.
Есть ли у кого-нибудь опыт в высокопроизводительной многоадресной передаче UDP/PGM? Каков наилучший дизайн для максимальной пропускной способности?
Update
Прямо сейчас, это только одна программа, работающая на местном уровне - 1 приложение 1 отправителем и 1 приемник. Тестовые сообщения - 4 байта.
Спасибо за продуманную информацию. – Anton
Нет проблем. В настоящий момент я тоже в траншеях с этим материалом. :) –