Надежный поток байтов

В порядке и надежной доставке побайтовых данных

Надежный поток байтов — это распространенная парадигма обслуживания в компьютерных сетях ; он относится к потоку байтов , в котором байты , выходящие из канала связи у получателя, являются точно такими же и находятся в точно таком же порядке, какими они были, когда отправитель вставил их в канал.

Классическим примером надежного протокола передачи потоков байтов является протокол управления передачей , один из основных строительных блоков Интернета .

Однако надежный поток байтов — это не единственная надежная парадигма обслуживания , которую предоставляют протоколы компьютерной сетевой связи; другие протоколы (например, SCTP ) обеспечивают надежный поток сообщений, т. е. данные разделяются на отдельные блоки, которые предоставляются потребителю данных в виде дискретных объектов.

Механизм

Протоколы связи, реализующие надежные потоки байтов, как правило, на некотором ненадежном нижнем уровне, используют ряд механизмов для обеспечения этой надежности. Протоколы автоматического запроса на повторение (ARQ) играют важную роль в достижении надежности.

Все элементы данных идентифицируются порядковым номером , который используется как для того, чтобы убедиться, что данные доставлены сущности на другом конце в правильном порядке, так и для проверки потерянных элементов данных. Получатель отправляет обратно подтверждения для элементов данных, которые были успешно получены; таймер на отправителе вызовет тайм-аут , если подтверждение не получено в течение разумного времени приема-передачи , и (предположительно потерянные) данные будут затем повторно переданы . Чтобы проверить, что никакие элементы данных не повреждены, используется контрольная сумма ; она вычисляется на отправителе для каждого блока данных перед его отправкой и проверяется на получателе. Ошибочные или отсутствующие данные сообщаются отправителю, чтобы он мог повторно передать их. Любые дублированные элементы данных отбрасываются.

Блокировка начала очереди

Блокировка начала очереди может возникнуть в надежных потоках байтов: если пакеты переупорядочены или потеряны и должны быть переданы повторно (и, таким образом, прибыть не по порядку), данные из последовательно более поздних частей потока могут быть получены до последовательно более ранних частей потока; однако более поздние данные обычно не могут быть использованы до тех пор, пока не будут получены более ранние данные, что приводит к задержке в сети . Если несколько независимых сообщений более высокого уровня инкапсулируются и мультиплексируются в один надежный поток байтов, то блокировка начала очереди может привести к обработке полностью полученного сообщения, которое было отправлено позже, для ожидания доставки сообщения, которое было отправлено ранее. [1] Это влияет, например, на HTTP/2 , который кадрирует несколько пар запрос-ответ в один поток; HTTP/3 , который имеет конструкцию кадрирования на уровне приложений и использует датаграмму , а не потоковый транспорт, избегает этой проблемы. [2] [3] Ухудшение задержки из-за блокировки начала очереди зависит от базовой скорости потери пакетов и времени приема-передачи , при этом более высокие потери приводят к большей задержке. [4] [5] Без изменения абстракции потока, уменьшение потери пакетов может уменьшить вред от блокировки начала очереди; альтернативой является реализация надежного потока байтов с использованием прямого исправления ошибок для отправки избыточных данных, чтобы можно было допустить определенную потерю без повторных передач. [1]

Смотрите также

Ссылки

  1. ^ аб Бриско и др. 2016, стр. 29–30.
  2. ^ Лэнгли и др. 2017, стр. 184, 186.
  3. ^ Маркс и др. 2018, стр. 22–23.
  4. ^ Нолан, Волински и Форд 2013, стр. 6.
  5. ^ Heijligers 2021, стр. 65.
  • Ларри Л. Петерсон и Брюс С. Дэви, Компьютерные сети: системный подход, 3-е издание, Morgan Kaufmann Publishers, 1996, раздел 6.2.
  • Стив Стейнке, Учебное пособие по сети, Elsevier, 2000, стр. 163.

Библиография

  • Briscoe, Bob; Brunstrom, Anna; Petlund, Andreas; Hayes, David; Ros, David; Tsang, Ing-Jyh; Gjessing, Stein; Fairhurst, Gorry; Griwodz, Carsten; Welzl, Michael (2016). «Сокращение задержки в Интернете: обзор методов и их достоинств». IEEE Communications Surveys & Tutorials . 18 (3): 2149– 2196. doi : 10.1109/COMST.2014.2375213. hdl : 2164/8018 . S2CID  206576469.
  • Хейлигерс, Яап (2021). Tor поверх QUIC (Диссертация).
  • Лэнгли, Адам; Риддок, Алистер; Уилк, Алисса; Висенте, Антонио; Красич, Чарльз; Чжан, Дэн; Ян, Фань; Куранов, Федор; Суэтт, Ян; Айенгар, Джанардхан; Бейли, Джефф; Дорфман, Джереми; Роскинд, Джим; Кулик, Джоанна; Вестин, Патрик; Теннети, Раман; Шейд, Робби; Гамильтон, Райан; Васильев, Виктор; Чанг, Ван-Дэ; Ши, Чжунъи (2017). "Транспортный протокол QUIC". Труды конференции Специальной группы по интересам ACM по передаче данных . стр.  183–196 . doi : 10.1145/3098822.3098842 . ISBN 9781450346535. S2CID  2768765.
  • Маркс, Робин; Вейнантс, Маартен; Куакс, Питер; Фейс, Аксель; Ламотт, Вим (2018). "Характеристики производительности веб-сервера HTTP/2 и сравнение с HTTP/1.1" (PDF) . Веб-информационные системы и технологии . Конспект лекций по обработке деловой информации. Том 322. С.  87–114 . doi :10.1007/978-3-319-93527-0_5. hdl : 1942/26146 . ISBN 978-3-319-93526-3. S2CID  52009597.
  • Нолан, Майкл Ф.; Волински, Дэвид; Форд, Брайан (2013). Сокращение задержки в сетях Tor с помощью неупорядоченной доставки. 3-й семинар USENIX по свободным и открытым коммуникациям в Интернете.
Получено с "https://en.wikipedia.org/w/index.php?title=Надежный_поток_байтов&oldid=1209848440"