Повторная передача утерянных пакетов

Повторпая передача утерянных пакетов играет важную роль в обеспечении протоколом TCP надежной доставки потока байтов. IP не информирует ТСР-отправи- теля, когда пакет теряется. Вместо этого отправитель должен предположить, что пакет был потеряй, на основе ответа (или отсутствия ответа) получателя. Получатель подтверждает прием данных от отправителя путем передачи пакетов квитирования — пакетов с установленным битом ACK и с числом подтверждения, указывающим следующий байт, ожидаемый в потоке байтов от отправителя. Если получатель имеет данные для передачи, подтверждение может быть возвращепо с данными. Отправитель делает вывод, что пакет был потеряй, двумя способами: но таймауту повторпой передачи или повторному подтверждению. Отправитель устанавливает таймер повторной передачи после передачи данных получателю. Если отсчет времеии таймером завершается до прибытия подтверждения, отправитель полагает, что пакет был утерян на пути к получателю. Выбор соответствующего значения таймаута повторной передачи (RTO — Retransmission TimeOut) — достаточно топкий процесс. Установка слишком малого значения RTO приводит к «ложпой тревоге», и отправитель панраспо повторно отправляет пакет, который в действительности не был утерян. Установка слишком большого значения RTO откладывает обнаружение утерянного пакета, что приводит к неоправданной задержке повторпой передачи пакета.

Правильное значение таймаута повторпой передачи зависит от расстояния между отправителем и получателем, а гакже от загруженности сети. Компьютеры, задержка при передаче данных между которыми составляет пять секунд, должны использовать большее значение RTO, чем Компьютеры, с задержкой 200 мс. Выбор нужного значения RTO определяется копкретпой ситуацией. TCP-отправитель может узнать нужное значение RTO, исследовав величину задержки при передаче данных получателю. TCP-отправитель оценивает время «прохождения данных туда и обратно» (RTT — Round Trip Time) — время между передачей пакета и получением подтверждения. На основе эгих измерений отправитель может оцепить средпее зпачение RTT, а также его дисперсию. Значение RTO устанавливается, исходя из значения RTT плюс пекая дополнительная величина, которая зависит от изменчивости измеренной задержки и позволяет избежать необоснованных повторных передач [PA00]. Оценка RTT становится тем точнее, чем интенсивнее обмен данными между отправителем и получателем.

В некоторых случаях отправитель может сделать вывод, что пакет был утерян, не дожидаясь истечения RTO перед повторной передачей. Допустим, отправитель посылает получателю несколько пакетов. При этом второй пакет был утеряп, а третий, четвертый и пятый пакеты достигли получателя. После получения первого пакета получатель отправляет АСК-пакет. Число подтверждения задается равным померу первого байта, ожидаемого во втором пакете. Однако поскольку второй пакет был утеряп, получатель принимает следующим третий пакет. Получатель отправляет еще один АСК-пакет. Число подтверждения но-ирежнему указывает на первый байт второго накета, поскольку это иоле устанавливается на основе получения непрерывного потока байтов. После поступления четвертого пакета получатель отправляет еще один АСК-пакет с тем же самым числом подтверждения. На этот момент отправитель получил три АСК-иакета с одинм и тем же числом подтверждения.

Получение пакетов повторного подтверждения дает возможность отправителю сделать вывод, что второй пакет данных был утеряп. Тем не менее, отправитель не должен реагировать слишком быстро. Возможно, что второй пакет был задержаи, но не утерян, т.е. третий и четвертый пакеты были доставлены не в том порядке. Получение трех повторпых АСК-пакетов (четырех идентичных подтверждений) является серьезным аргументом в пользу того, что второй пакет данных действительно был утеряп. Вместо того чтобы ожидать завершения работы таймера повторной передачи, отправитель выполняет быструю повторную передачу второго пакета. Быстрая повторная передача приводит к гораздо более быстрому восстановлению утерянного пакета. Вероятность быстрой повторной передачи по отношению к времени таймаута повторпой передачи зависит от множества факторов, включая длину передаваемых данных и степень загруженности соединения от отправителя к получателю.

По большей части механизм повторпой передачи сокращает задержку в восстановлении утерянного пакета без выполнения необоснованных повторпых передач. Однако повторные подтверждения имеют место и в тех случаях, когда пакеты от TCP-отправителя доставляются не в том порядке. Такие повторные подтверждения могут склонить TCP-отправителя к предположению, что пакет был утеряп. Выпадение пакета из установленного порядка следования может случиться, если IP-иакеты проходят через сеть к получателю но различным маршрутам. Например, предположим, что пакет 7 продвигается медленнее, чем пакеты 8, 9 и 10, в результате чего накет 7 прибывает после пакета 10. TCP-получатель передает повторные подтверждения при получении пакетов 8, 9 и 10. Третье повторное подтверждение приводит к повторпой передаче TCP-отправителем пакета 7. Беспорядочное поступление пакетов снижает производительность TCP. Хотя протокол IP не гараигиру- ет доставку пакетов в строго определенном порядке, пакеты имеют гепденцию прибывать упорядоченно. Однако изменения в маршрутах доставки и использование нескольких маршрутизаторов между парой хостов на практике ведут к изменению порядка следования пакетов.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100