Поскольку я не знаю, что еще, кроме отправки и получения ваших приложений, трудно узнать, что еще может ограничивать это, но вот несколько вещей, которые нужно попробовать. Я предполагаю, что вы используете IPv4, и я не программист Windows.
Максимизируйте размер пакета, который вы отправляете, когда используете надежное соединение. Для 100 Мбит Ethernet максимальный пакет составляет 1518, Ethernet использует 18 из этого, IPv4 использует 20-64 (обычно 20, подумано), а UDP использует 8 байтов. Это означает, что обычно вы должны иметь возможность отправлять 1472 байта полезной нагрузки UDP на пакет.
Если вы используете оборудование Gigabit Ethernet, которое поддерживает его, размер вашего пакета увеличивается до 9000 байт (гигантских кадров), поэтому отправка чего-то ближе к этому размеру должна ускорить процесс.
Если вы отправляете какие-либо подтверждения от слушателя отправителю, то постарайтесь убедиться, что они отправляются редко и могут подтверждать более одного пакета за раз. Постарайтесь удержать слушателя от необходимости много говорить, а также не позволяйте отправителю ждать, пока слушатель получит разрешение на продолжение отправки.
На компьютере, на котором работает приложение отправителя, рассмотрите возможность установки статической записи ARP для компьютера, на котором живет получатель. Без этого каждые несколько секунд может возникать пауза, пока делается новый запрос ARP, чтобы убедиться, что кэш ARP обновлен. Некоторые реализации ARP могут выполнить этот запрос задолго до истечения срока действия записи ARP, что уменьшит влияние, но некоторые - нет.
Отключите как можно больше пользователей сети. Если вы используете коммутатор Ethernet, вам следует сконцентрироваться на вещах, которые будут вводить трафик к компьютерам / сетевым устройствам, на которых запущены ваши приложения, и использовать их (в том числе широковещательные сообщения, например, многие запросы ARP). Если это концентратор, вы можете отключить всю сеть. Windows имеет тенденцию посылать постоянный поток мусора в сети, что во многих случаях бесполезно.
Могут быть установлены ограничения на пропускную способность сети, которую может иметь одно приложение или пользователь. Или могут быть ограничения на пропускную способность сети, которую ОС будет использовать самостоятельно. Вероятно, их можно изменить в реестре, если они существуют.
Чипы сетевого интерфейса нередко фактически не поддерживают максимальную пропускную способность сети все время. Существуют микросхемы, которые могут пропускать пакеты, потому что они заняты обработкой предыдущего пакета, а также некоторые, которые просто не могут отправлять пакеты настолько близко, насколько позволяют спецификации Ethernet. Кроме того, остальная часть системы может не справиться, даже если это так.