![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Механизм оптимизации длительности таймаута
В INTERNET (ввиду глобальности сети) нельзя заранее принять конкретное усредненное значение длительности тайм-аута. Если тайм-аут настроен на задержку, оптимальную для локальной сети, то скорее всего он будет слишком коротким для информационного обмена через глобальные сети. Большое же время ожидания снижает эффективность использования пропускной способности сети, поскольку отправитель может слишком долго ждать подтверждений. В основе механизма оптимизации длительности тайм-аута лежит измерение протоколом TCP (после отправки блока) времени до прихода квитанции (RTT, Round Trip Time время двойного прохода). Результаты измерений усредняются с более ранними значениями RTT. Длительность тайм-аута выбирается пропорционально усредненному RTT. Необходимо отметить, что при коэффициенте пропорциональности < 2 алгоритм адаптации неустойчив. Этот кратко рассмотренный упрощенный механизм (на практике он сложнее) позволяет TCP вычислить тайм-аут, оптимизирующий передачу информации в физических сетях с различными скоростью передачи данных, числом промежуточных ретрансляторов и показателями надежности каналов (вероятность ошибки или потери сообщения). Чтобы избежать этого, используется следующий прием: отправителю разрешается послать некоторое количество, например, N единиц информации (блоков) до получения квитанции на первый блок. После получения квитанции на первый блок разрешается отправить блок N+1 и т.д. Такая схема передачи данных называется методом скользящего окна, а число блоков N, передаваемых в сеть до получения квитанции на первый блок, размером окна, или просто окном. Протокол TCP реализует оконное управление квитированием на уровне байтов. На основе метода скользящего окна работает механизм группового квитирования, заключающийся в следующем. При установлении соединения счетчики последовательностей блоков у отправителя и получателя устанавливаются в одинаковые состояния (синхронизируются). Получатель, приняв подряд несколько следующих блоков, в ответном сообщении квитанции передает отправителю номер следующего байта данных, который он намерен принять (номер последнего байта в последнем корректно принятом блоке плюс единица). Размер TCP-окна равен произведению полосы пропускания канала и RTT. Достоинства такой схемы — надежность и простота программной реализации. Недостаток же в том, что при восстановлении порядка приема блоков или при утере некоторого блока в случае возникновения разрыва в принимаемой последовательности относительно высока вероятность, ненужной повторной ретрансляции фрагмента данных, следующего за разрывом.
Защита от перегрузок Управление квитированием методом «скользящего окна» предоставляет возможность управления потоком в целях предотвращения перегрузок в сети. Размер окна (поле «Размер длины «скользящего окна» в формате блока TCP) есть не что иное, как число байтов, направленных в сеть конкретным источником. Изменяя размер окна для множества источников информации, можно эффективно управлять числом блоков, существующих в сети, и посредством этого снимать перегрузки на отдельных ее участках. Этот механизм используется протоколом TCP для решения двух совершенно разнородных задач защиты сети от перегрузок. Первая задача — ликвидация перегрузки на промежуточных узлах сети. Ее решают маршрутизаторы, «испытывающие» перегрузку, направляя протоколам конечных станций требования на уменьшение размеров окон. Вторая задача — защита от перегрузки буфера самого протокола TCP, принимающего данные. Получатель, квитируя некоторую последовательность блоков, сообщает отправителю, какое количество байтов информации он готов бесконфликтно принять. Тем самым обеспечивается защита приемного устройства от перегрузки (особенно это важно в случаях, когда производительность источника и приемника информации существенно различаются). Этот метод называется декларацией приемного окна (window advertisement). Если отправитель «не справляется» с входящим потоком, то он может декларировать окно нулевого размера, отказываясь от приема информации.
![]() |