Использования в протоколе TCP метода обработки окна
Нужны новые клиенты? Тогда Вам рекомендуем посмотреть этот раздел нашего сайта
_____
Использование окна в ТСР позволяет управлять скоростью передачи данных, выдерживая такое значение, при котором не наступает перезагрузка и потеря данных. В этой статье рассматривается процесс применения окна при передаче данных.
ИСПОЛЬЗОВАНИЕ ФИКСИРОВАННОГО РАЗМЕРА ОКНА.
Наиболее простая форма надежной передачи (передачи данных с предварительной установкой соединения), без учёта возникновения перегрузок в сети, заключается в подтверждении получателем каждого принятого сегмента данных, что гарантирует целостность передачи. В тоже время, если отправитель должен ждать прибытия уведомления после отправки каждого сегмента, то пропускная способность канала снижается прямо пропорционально величине времени RTT между отправкой данных и получением уведомления о приеме сегмента. Из-за этого большинство надёжных протоколов с установлением соединения позволяют передавать больше одного сегмента данных за раз.
Это может работать, поскольку существует свободный временной интервал после завершения отправителем передачи сегмента и до обработки отправителем любого принятого уведомления. В течение этого интервала отправитель может передать больше данных, при условии, что окно приёмника достаточно велико для передачи более чем одного сегмента за раз. Окно – это количество сегментов данных, которое позволяется передать отправителю без получения подтверждения от приёмника (см. рисунок).
Обработка окном позволяет определить количество неподтверждаемых сегментов, посылаемых приёмнику. Благодаря этому снижается задержка передачи. Задержка в данном случае – общее время, затраченное на передачу данных в одну сторону и передачу подтверждений обратно.
Пример: перебрасывание мячом
Представим, к примеру, двух человек стоящих па расстоянии 50 футов друг от друга. Один человек бросает мяч другому, и время этого действия занимает 3 секунды. Второй человек ловит мяч и бросает его обратно (уведомление!), и время полета мяча занимает 3 секунды. Время полета мяча туда н обратно или время полного обхода (round trip) заняло 6 секунд. Если повторить этот процесс три раза – получим 18 секунд. Теперь представим что у первого человека не один, а три мяча, и он бросает эти мячи один м другим. Время полета мячей до второго человека составит 3 секунды. Второй человек в качестве уведомления о приеме, бросает 1 мяч, и это занимает 3 секунды. Всего полит мячей туда и обратно занял 6 секунд, но мы, конечно, пренебрегаем временем обработки и некоторыми другими параметрами.
Эта процедура обгясняет процесс обработки окном в соединении TCP.
Базовый процесс, размер окна = 3
Шаг |
Действие |
Комментарии |
1. |
Отправитель и получатель обмениваются начальным размером окна в три сегмента до того как должно быть выслано подтверждение. |
Это происходит в течение процедуры установки соединения. |
2. |
Отправитель высылает сегменты 1, 2 и 3 приёмнику. | Отправитель передаёт сегменты, запускает таймер, и ждет подтверждение от приёмника. |
3. |
Приёмник принимает сегмент 1, 2, 3 возвращает АСК=4. | Приёмник уведомляет об успешном приёме предыдущих сегментов. |
4. |
Получатель принимает АСК=4 и передаёт сегменты 4, 5 и 6 на приёмник. | Отправитель передает сегменты, запускает таймер, и ждёт подтверждение от приёмника. |
5. |
Приёмник принимает сегмент 4, 5, 6 возвращает АСК=7. | Приёмник уведомляет об успешном приёме предыдущих сегментов. |
Номера, использованные в примере, упрощены для понимания материала. Эти номера фактически представляют собой октеты (байты) и будут увеличиваться до очень больших номеров, отображающих содержимое сегментов TCP, но не количество самих сегментов.