Протоколы надежной передачи данных с конвейеризацией

Протокол rdt 3.0 является корректным с точки зрения функционирования, однако вряд ли нашлось бы много пользователей, которых бы устроило качество обслуживания этого протокола, особенно в современных высокоскоростных компьютерных сетях. Главной проблемой протокола rdt 3.0 является то, что он относится к протоколам с ожиданием подтверждений.

Для того чтобы лучше понять последствия ожидания, представим себе следующую ситуацию. Пусть имеется пара хостов, как показано на рис. 3.16, один из которых находится в Санкт-Петербурге, а другой в Новосибирске.

Время оборота между хостами при условии, что распространение сигнала происходит со скоростью света, составляет приблизительно 30 мс. Предположим, что хосты соединены между собой каналом связи со скоростью передачи R = 1 Гбит/с = = 109 бит/с. Если размер пакета, включая заголовок и данные, L = 1000 байт = = 8000 бит, то время фактической передачи пакета по каналу:

t(пер) = L/R = (8000 бит/пакет) / (10^9 бит/с) = 8 мкс.

315.png

Обратимся к рис. 3.17, а. Если с помощью нашего протокола передающая сторона начнет передачу пакетов в момент времени t = 0, то при t = L/R = 8 мкс последний бит окажется в канале. Распространение пакета в канале займет 15 мс; таким образом, последний бит пакета достигнет принимающей стороны в момент времени t = = RTT/2 + L/R = 15,008 мс. Считая размеры квитанций достаточно малыми для того, чтобы временем их передачи можно было пренебречь, и предполагая, что начало отправки квитанции совпадает с окончанием приема пакета, получаем, что квитанция достигает передающей стороны в момент времени t = RTT + L/R = = 30,008 мс. С этого момента передающая сторона может начинать передачу следующего пакета.

Таким образом, оказывается, что в каждом периоде длительностью 30,008 мс передача пакета занимает лишь 0,008 мс. Если ввести коэффициент полезности как долю времени, в течение которого ведется передача пакетов, то полезность передающей стороны

U(перед) = (L/R) / (RTT + L/R) = 0,008/30,008 = 0,00027.

316.png

Другими словами, передающая сторона активна в течение лишь 0,0027 % общего времени. Кроме того, наши расчеты говорят о том, что передача данных ведется со скоростью 1000 байт за 30,008 мс, что составляет 267 Кбит/с — величину, в тысячи раз меньшую скорости, обеспечиваемой каналом связи. Представьте, каким разочарованием для администратора сети было бы закупить дорогостоящую линию связи и получить столь низкое качество обслуживания! Этот пример наглядно демонстрирует, каким образом сетевые протоколы могут «тормозить» передачу, обеспечиваемую аппаратно. Обратите внимание на то, что мы не учли время, затрачиваемое на обработку данных протоколами более низких уровней передающей и принимающей сторон, а также задержки обработки и ожидания, которые могли иметь место при передаче пакетов. Включение этих факторов в модель показало бы еще большую несостоятельность нашего протокола с точки зрения полезности.

Устранение описанного недостатка производится весьма несложным способом: вместо отправки каждого нового пакета после получения квитанции для предыдущего осуществляется передача группы пакетов без ожидания квитанций, как показано на рис. 3.16, б. На рис. 3.17, б видно, что передача трех пакетов подряд приводит к трехкратному повышению полезности по сравнению с нашим протоколом. Поскольку пакеты, передающиеся группами, удобно изображать в виде конвейера, данный способ передачи получил название передачи с конвейеризацией. Применение конвейеризации в протоколах надежной передачи данных приводит к следующим последствиям.

□ Увеличивается диапазон порядковых номеров, поскольку все передаваемые пакеты (за исключением повторных передач) должны быть однозначно идентифицируемы.

317.png

□ Появляется необходимость в увеличении буферов на передающей и принимающей сторонах. Так, размер буфера передающей стороны должен быть достаточным для того, чтобы хранить все переданные пакеты, для которых ожидается получение квитанций. На принимающей стороне может возникнуть необходимость в буферизации успешно принятых пакетов, о чем будет сказано далее.

Диапазон порядковых номеров и требования к размерам буферов зависят от действий, предпринимаемых протоколом в ответ на искажение, потерю и задержку пакета. В случае конвейеризации существуют два метода исправления ошибок: возвращение на N пакетов назад и выборочное повторение.

удаление бородавок

Данная статья "Протоколы надежной передачи данных с конвейеризацией" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Протоколы надежной передачи данных с конвейеризацией" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *