Научная статья на тему 'ПРОТОКОЛ TCP И ЕГО АЛГОРИТМЫ (TAHOE, RENO, NEW RENO)'

ПРОТОКОЛ TCP И ЕГО АЛГОРИТМЫ (TAHOE, RENO, NEW RENO) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
272
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕТЬ / ПРОТОКОЛ / TCP / TAHOE / RENO / NEW RENO / ACK / NETWORK / PROTOCOL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Латыпов Э.Ф.

В статье рассматривается назначение TCP протокола. Описан принцип работы TCP, а также рассмотрены и описаны его алгоритмы - Tahoe, Reno, New Reno.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

TCP PROTOCOL AND ITS ALGORITHMS (TAHOE, RENO, NEW RENO)

The article indicates the purpose of the TCP protocol. The principle of TCP operation is described, and its algorithm is considered and used - Tahoe, Renault, New Reno.

Текст научной работы на тему «ПРОТОКОЛ TCP И ЕГО АЛГОРИТМЫ (TAHOE, RENO, NEW RENO)»

УДК 004.42

Латыпов Э.Ф. студент магистратуры Поволжский государственный университет телекоммуникаций и

информатики

научный руководитель: Малахов С.В., к.т.н.

доцент Россия, г. Самара

ПРОТОКОЛ TCP И ЕГО АЛГОРИТМЫ (TAHOE, RENO, NEW RENO)

Аннотация: В статье рассматривается назначение TCP протокола. Описан принцип работы TCP, а также рассмотрены и описаны его алгоритмы - Tahoe, Reno, New Reno.

Ключевые слова: сеть, протокол, TCP, Tahoe, Reno, New Reno, ACK.

Latypov E.F., master student Povolzhsky State University of Telecommunications and Informatics

Russia, Samara Scientific leader: Malakhov S. V.

Docent, c.t.s.

Annotation: The article indicates the purpose of the TCP protocol. The principle of TCP operation is described, and its algorithm is considered and used -Tahoe, Renault, New Reno.

Keywords: network, protocol, TCP, Tahoe, Reno, New Reno, ACK.

Протокол управления передачей (Transfer Control Protocol, сокращенно TCP) - один из основных протоколов передачи данных интернета, предназначенный для управления передачей данных. Задача TCP состоит в том, чтобы разбивать сообщения или файлы на более мелкие части (называемые пакетами данных), которые затем отправляются через Интернет. После, эти пакеты обрабатываются другим уровнем TCP, который собирает данные в полный файл.

TCP протокол также отвечает за проверку этого потока данных на наличие ошибок, для обеспечения доставки данных. Если ошибка будет обнаружена, TCP повторно передаст пакет(ы).

В настоящее время предложено и опробовано несколько разновидностей протокола TCP.

Каждая разновидность TCP (например, Tahoe, Reno, New Reno, SACK, и т.д.) определяет некоторую конфигурацию механизмов управления перегрузкой TCP. Заданное значение, которое представляет архитектурно-зависимую настройку, определяет конфигурацию TCP, соответствующую реализации TCP на конкретной платформе. Можно реализовать поведение этих разновидностей TCP и параметров настройки путем изменения отдельных атрибутов конфигурации TCP.

Однако на практике более эффективно сначала выбрать разновидность TCP и затем настроить отдельные параметры конфигурации по желанию.

Tahoe - это наиболее старая и широко распространенная версия алгоритма TCP, которая состоит из двух основных фаз: медленный запуск (Slow Start) и предотвращение перегрузки (Congestion Avoidance). Первоначально, когда соединение TCP начинает передавать данные, оно входит в медленную фазу запуска. Во время медленного запуска размер окна перегрузки растет экспоненциально, пока это не достигнет порога перегрузки медленного запуска (ssthresh). Как только это происходит, TCP переключается на фазу предотвращения перегрузки, в которой CWND растет линейно. Как правило, начальное значение CWND является конфигурируемым параметром.

В TCP тайм-аут происходит, если исходный процесс TCP не получает подтверждение сегмента (ACK) в определенном периоде времени. Когда таймаут происходит, TCP сбрасывает значение CWND к его начальному значению, устанавливает ssthresh(значение порога, при котором TCP переходит из фазы медленного старта в фазу исключения перегрузки) в половину значения CWND, когда тайм-аут произошел и снова входит поэтапно в медленный запуск. TCP Tahoe использует быстрой ретранслирующий механизм, который использует получение определенного числа (обычно 3) дублирующегося ACK как признака потери сегмента. В таком случае TCP Tahoe ведет себя так, как будто тайм-аут произошел: ретранслирует недостающий сегмент, обновляет CWND и значения ssthresh, и входит в медленную фазу запуска. TCP Tahoe не поддерживает быстрое восстановление.

Смысл этого алгоритма заключается в удержании значения CWND в области максимально возможных значений. По существу эта оптимизация осуществляется с помощью потери пакетов. Если потери пакетов не происходит, значение CWND достигает значения window по умолчанию, задаваемого при конфигурации ТСР-драйвера. На рис. 1 показана эволюция CWND при потере пакетов.

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

рис.1

В TCP-Reno при нормальной ситуации размер окна меняется циклически. Размер окна увеличивается до тех пор, пока не произойдет потеря сегмента. TCP-reno имеет две фазы изменения размера окна: фаза медленного старта и фаза избегания перегрузки.

Результаты моделирования показывают, что каждое соединение обычно теряет около двух пакетов в каждом эпизоде перегрузки. Потери случаются, когда буфер полон и одно соединение увеличивает размер окна на единицу. Когда ячейки из этого нового пакета приходит в буфер, они обычно вызывают потерю ячеек, принадлежащих двум пакетам (конец пакета, пришедшего из другого соединения, и начала следующего). Итак, в среднем следует ожидать потерю трех пакетов на одно столкновение. В нашем примере двух соединений с RTT 40 мсек и 80 мсек, раз буфер полон и произошло столкновение, эпизод перегрузки длится 40 мсек. За время этого периода 80 мсек соединение увеличивает свое окно грубо 50% времени. То есть среднее число потерянных пакетов из-за этого увеличивается в 1.5 раза. Следовательно, всего 4.5 пакетов, или 2.25 пакетов на соединение теряется в среднем на один эпизод перегрузки.

New Reno является улучшением Reno, так как исправляет неэффективность, связанную с несколькими потерями в единственном окне данных. В случае, когда доступна опция выборочного подтверждения (SACK), отправитель знает, какие пакеты следует переслать повторно на фазе быстрого восстановления (Fast Recovery). В отсутствии опции SACK нет достаточной информации относительно пакетов, которые нужно послать повторно. При получении трех дублированных подтверждений (DUPACK) отправитель считает пакет потерянным и посылает его повторно. После этого отправитель может получить дополнительные дублированные подтверждения, так как получатель осуществляет подтверждение пакетов, которые находятся в пути, когда отправитель перешел в режим Fast Retransmit. В случае потери нескольких пакетов из одного окна отправитель получает новые данные, когда приходит подтверждение для повторно посланных пакетов. Если потерян один пакет и не было смены порядка пакетов, тогда подтверждение этого пакета будет означать успешную

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

SACK - эта разновидность использует опцию Selective Acknowledgment (SACK) TCP вместе с Reno для управления перегрузкой. Выборочный ACK используется для подтверждения только определенного сегмента, контрастирующего с регулярным ACK, который кумулятивен.

Когда получатель решает буферизовать неисправные сегменты и выборочно их подтверждает, отправитель может пропустить повторную передачу этих сегментов, когда происходит тайм-аут, при этом ретранслируются только те сегменты, которые все еще не подтверждены. Использование опции SACK повышает эффективность протокола.

Использованные источники:

1. Блек Ю. СетиЭВМ: Протоколы, стандарты, интерфейсы / Пер. с англ. -М.:Мир, 1990. -506с.

2. Fall, K. Simulation-based comparisons of Tahoe, Reno, and SACK TCP / K.Fall, S.Floyd / ACM SIGCOMM Computer Communication Review-1996.-vol. 2б(з).- pp. 5-21.

3. Mathis, M. The macroscopic behavior of the TCP congestion avoidance algorithm / M.Mathis, J.Semke, J.Mahdavi / ACM SIGCOMM Computer Communication Review.- 1997.- vol. 27(3).- pp. 67-82.

i Надоели баннеры? Вы всегда можете отключить рекламу.