На одном конце у вас есть TCP, который гарантирует, что пакеты прибывают и что они приходят в порядке. Он также предназначен для обычного интернета с алгоритмами управления перегрузкой, которые «хорошо играют» в трафике. На другом конце спектра у вас есть UDP, который не гарантирует время прибытия и порядок пакетов, а также позволяет отправлять большие данные получателю. Где-то посередине у вас есть надежные программы на основе UDP, такие как UDT , которые предлагают индивидуальные алгоритмы и надежность управления перегрузкой, но с большей скоростью и гибкостью.
Однако мне нужна возможность отправлять большие порции данных по UDP (больше, чем размер UDP-датаграммы 64 КБ), но без учета надежности каждой отдельной дейтаграммы. Идея состоит в том, что большие данные разбиваются на дейтаграммы определенного размера (<= 64 000 байтов), вероятно, с некоторыми данными заголовка, прикрепленными спереди и отправленными по сети. На принимающей стороне эти дейтаграммы считываются и сохраняются. Если датаграмма не поступает, все датаграммы, связанные с этой передачей, просто выбрасываются клиентом. </p>
Большинство реализаций "надежного UDP" пытаются поддерживать надежность каждой дейтаграммы, но меня интересует только целое, и если я не получаю целое, это не имеет значения - отбросьте все это и ждать следующего. Мне придется копать глубже, но это может быть возможно с помощью пользовательских алгоритмов контроля заторов в UDT. Однако есть ли протоколы с таким подходом?