Надежный поток байтов
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2007 г. ) |
Надежный поток байтов является общепринятой парадигмой обслуживания в компьютерных сетях ; это относится к потоку байтов , в котором байты , поступающие из канала связи получателя, являются точно такими же и в том же порядке, какими они были, когда отправитель вставил их в канал.
Классическим примером надежного протокола передачи байтовых потоков является протокол управления передачей , один из основных строительных блоков Интернета .
Однако надежный поток байтов — не единственная парадигма надежного обслуживания , которую обеспечивают протоколы связи компьютерных сетей; другие протоколы (например, SCTP ) обеспечивают надежный поток сообщений, т. е. данные разделяются на отдельные блоки, которые предоставляются потребителю данных в виде дискретных объектов.
Механизм
[ редактировать ]Протоколы связи, которые реализуют надежные потоки байтов, как правило, на каком-то ненадежном нижнем уровне, используют ряд механизмов для обеспечения этой надежности. Протоколы автоматического запроса повторения (ARQ) играют важную роль в обеспечении надежности.
Все элементы данных идентифицируются порядковым номером , который используется как для обеспечения доставки данных объекту на другом конце в правильном порядке, так и для проверки потерянных элементов данных. Получатель отправляет обратно подтверждения для успешно полученных элементов данных; таймер времени отправителя вызовет тайм-аут, если подтверждение не будет получено в течение разумного прохождения туда и обратно , и (предположительно потерянные) данные будут затем переданы повторно . Чтобы убедиться, что элементы данных не повреждены, контрольная сумма используется ; один вычисляется у отправителя для каждого блока данных перед его отправкой и проверкой у получателя. Отправителю сообщаются ошибочные или недостающие данные, чтобы он мог передать их повторно. Любые дублированные элементы данных отбрасываются.
Блокировка начала линии
[ редактировать ]Блокировка начала строки может происходить в надежных потоках байтов: если пакеты переупорядочены или потеряны и их необходимо передать повторно (и, таким образом, они поступают не по порядку), данные из последовательно более поздних частей потока могут быть получены раньше, чем последовательно более ранние части. ручья; однако более поздние данные обычно не могут быть использованы до тех пор, пока не будут получены более ранние данные, что приводит к задержке в сети . Если несколько независимых сообщений более высокого уровня инкапсулируются и мультиплексируются в один надежный поток байтов, то блокировка начала строки может привести к тому, что полностью полученное сообщение, отправленное позже, будет обработано в ожидании доставки сообщения, отправленного ранее. [1] Это касается, например, HTTP/2 , который объединяет несколько пар запрос-ответ в один поток; HTTP/3 , который имеет структуру кадрирования прикладного уровня и использует дейтаграммную, а не потоковую транспортировку, позволяет избежать этой проблемы. [2] [3] Ухудшение задержки из-за блокировки начала линии зависит от базовой скорости потери пакетов и времени прохождения туда и обратно , причем более высокие потери приводят к худшей задержке. [4] [5] Без изменения абстракции потока сокращение потерь пакетов может снизить вред от блокировки начала строки; Альтернативой является реализация надежного потока байтов с использованием прямого исправления ошибок для отправки избыточных данных, чтобы можно было допустить определенный объем потерь без повторных передач. [1]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Бриско и др. 2016 , стр. 29–30.
- ^ Лэнгли и др. 2017 , с. 184, 186.
- ^ Маркс и др. 2018 , стр. 22–23.
- ^ Ноулан, Волински и Форд, 2013 , стр. 6.
- ^ Хейлигерс 2021 , с. 65.
- Ларри Л. Петерсон и Брюс С. Дэви, Компьютерные сети: системный подход, 3-е издание, Morgan Kaufmann Publishers, 1996, раздел 6.2.
- Стив Стейнке, Учебное пособие по сети, Elsevier, 2000, стр. 163.
Библиография
[ редактировать ]- Бриско, Боб; Брунстрем, Анна; Петлунд, Андреас; Хейс, Дэвид; Рос, Дэвид; Цанг, Инг-Джых; Йессинг, Штейн; Фэрхерст, Горри; Гриводз, Карстен; Вельцль, Майкл (2016). «Уменьшение задержки в Интернете: обзор методов и их преимуществ». Опросы и учебные пособия IEEE по коммуникациям . 18 (3): 2149–2196. дои : 10.1109/COMST.2014.2375213 . hdl : 2164/8018 . S2CID 206576469 .
- Хейлигерс, Яап (2021). Tor поверх QUIC (Диссертация).
- Лэнгли, Адам; Риддок, Алистер; Уилк, Алисса; Висенте, Антонио; Красич, Чарльз; Чжан, Дэн; Ян, Фань; Куранов, Федор; Светт, Ян; Айенгар, Джанардхан; Бейли, Джефф; Дорфман, Джереми; Роскинд, Джим; Кулик, Джоанна; Вестин, Патрик; Теннети, Раман; Шейд, Робби; Гамильтон, Райан; Васильев, Виктор; Чанг, Ван-Те; Ши, Чжунъи (2017). «Транспортный протокол QUIC». Материалы конференции Специальной группы ACM по передаче данных . стр. 183–196. дои : 10.1145/3098822.3098842 . ISBN 9781450346535 . S2CID 2768765 .
- Маркс, Робин; Вейнантс, Мартен; Квакс, Питер; Фаес, Аксель; Ламотт, Вим (2018). «Характеристики веб-производительности HTTP/2 и сравнение с HTTP/1.1» (PDF) . Веб-информационные системы и технологии . Конспекты лекций по обработке деловой информации. Том. 322. стр. 87–114. дои : 10.1007/978-3-319-93527-0_5 . hdl : 1942/26146 . ISBN 978-3-319-93526-3 . S2CID 52009597 .
- Ноулан, Майкл Ф.; Волински, Дэвид; Форд, Брайан (2013). Уменьшение задержки в цепях Tor с неупорядоченной доставкой . 3-й семинар USENIX по свободным и открытым коммуникациям в Интернете.