AFAIK, наиболее надежные протоколы передачи, такие как TCP, имеют тенденцию использовать какой-либо метод (например, потерю пакетов) для определения размера узкого места.
Однако в моем случае пропускная способность узкого места составляет известное значение 100 Мбит / с и не используется другими устройствами.
Но этот канал имеет очень высокий коэффициент потери пакетов. 7%, если быть точным, и часто концентрируется в небольших промежутках времени. Это означает, что TCP часто предполагал, что пакеты были потеряны из-за перегрузки, и снижал мою скорость передачи. Но на самом деле это обычное повреждение пакетов.
В результате я не могу использовать даже 1/10 моего узкого места на 100 Мбит / с. Он не сильно улучшается даже с такими протоколами, как KCP, который справляется с потерями пакетов гораздо менее агрессивно, чем TCP.
Есть ли какой-нибудь протокол, который не пытается «угадать» узкое место с потерей пакетов? Для меня это бесполезная функция, которая сильно ограничивает мою пропускную способность.
Скорость передачи в TCP контролируется алгоритмом управления перегрузками отправителя. Для TCP разработано несколько алгоритмов управления перегрузками. Вам следует рассмотреть различные варианты и попробовать их в вашем случае.
Кроме того, в TCP существует множество настраиваемых параметров, которые могут помочь в вашей ситуации.
Например, алгоритм BBR, разработанный компанией Google, может стать решением вашей проблемы. Более подробно о нем можно прочитать в статье Medium.