Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 11:

Управление перегрузкой и основные алгоритмы работы TCP

Краткие итоги

  • Если пакеты поступают к маршрутизатору быстрее, чем он может их обработать, может возникнуть перегрузка и некоторые пакеты могут быть потеряны. Это может привести к перегрузке и увеличению пропадания пакетов, которое означает снова повторную передачу и большую перегрузку.
  • Чтобы избежать перегрузки, передатчик TCP использует две стратегии. Мы называем одну медленный старт и дополнительное увеличение и вторую — мультипликативное уменьшение.
  • При медленном старте TCP устанавливает размер окна перегрузки на максимальный размер сегмента. Для каждого сегмента, который подтвержден, TCP увеличивает размер окна перегрузки по одному максимальному размеру сегмента, пока он не достигнет порога половины разрешенного размера.
  • Дополнительное увеличение применяется TCP, чтобы избежать перегрузки до того, как она возникнет, — нужно замедлить этот экспоненциальный рост. После того как размер достигает порога, размер окна увеличивается на единицу для каждого подтверждения, даже если подтверждаются последовательные сегменты.
  • Стратегия мультипликативного уменьшения состоит в следующем: если окончилось контрольное время, размер текущего окна должен быть установлен на величину половины размера последнего окна перегрузки, размер окна перегрузки должен опять начинаться с единицы. Другими словами, передатчик медленно возвращается к начальной фазе.
  • Сегмент – это единица данных, передаваемых между устройствами, которые используют TCP. Формат сегмента состоит из 20–60-байтных заголовков и следующих за ними данных для прикладной программы. Заголовок – это 20 байт, если не имеет опций, и 60 байт, если состоит из нескольких полей.
  • Определены две категории опций: однобайтовая опция и многобайтовая опция. Первая категория имеет два типа опций: оконечная опция и нет операции. Вторая категория содержит три типа опций: размер максимального сегмента, коэффициент масштаба, а также метку времени.
  • В TCP передача, ориентированная на соединение, требует двух процедур: установления соединения и окончания соединения.
  • Для установления соединения может быть использована одна из процедур: установление соединения методом взаимодействия в три шага или методом взаимодействия в четыре шага.
  • TCP может запросить переустановление соединения для несуществующего порта.
  • Прикладная программа на передающей стороне может запросить операцию "протолкнуть" (push). Это означает, что передающий TCP не должен ждать заполнения окна. Он должен создать сегмент и послать его немедленно. Передающий TCP должен также установить push(PSH)-бит, чтобы сказать, что сегмент включает данные, которые должны быть доставлены к принимающей прикладной программе так быстро, как это возможно, и не ждать, пока поступят другие данные.
  • Каждый байт данных имеет позицию в потоке. Однако есть случаи, в которых прикладной программе нужно послать срочный байт.
  • Простейшая блок-схема TCP включает таблицу, называемую блоком управления передачей (transmission control blockTCB), установку таймера и три программных модуля.

Задачи и упражнения

  1. TCP-соединение находится в состоянии УСТАНОВЛЕНО (ESTABILISHED). Далее произошли следующие события:
    • получен сегмент FIN (ОТБОЙ);
    • получен сегмент ACK (ПОДТВЕРЖДЕНИЕ).
    В какое состояние перейдет соединение после этих событий? Какие действия произойдут при переходе?
  2. TCP-соединение находится в состоянии УСТАНОВЛЕНО (ESTABILISHED). Далее произошли следующие события:
    • приложение посылает сигнал "закрыть";
    • получен сегмент ACK (ПОДТВЕРЖДЕНИЕ).
    В какое состояние перейдет соединение после этих событий? Какие действия произойдут при переходе?
  3. TCP-соединение находится в состоянии ПРИЕМ (SYN-RCVD). Далее произошли следующие события:
    • приложение посылает сигнал "закрыть";
    • получен сегмент ОТБОЙ (FIN).
    В какое состояние перейдет соединение после этих событий? Какие действия произойдут при переходе?
  4. TCP-соединение находится в состоянии ПЕРЕДАЧА (SYNSENT). Далее произошли следующие события:
    • получен сегмент ПОДТВЕРЖДЕНИЕ ЗАПРОСА (SYN + ACK);
    • получен сегмент "закрыть".
    В какое состояние перейдет соединение после этих событий? Какие действия произойдут при переходе?
  5. TCP-соединение находится в состоянии ОЖИДАНИЕ ОКОНЧАНИЯ1 (FIN-WAIT1). Далее произошли следующие события:
    • получен сегмент ПОДТВЕРЖДЕНИЕ (ACK);
    • получен сегмент ОТБОЙ (FIN);
    • сработал тайм-аут.
    В какое состояние перейдет соединение после этих событий? Какие действия произойдут при переходе?
  6. Клиент использует TCP для того, чтобы послать данные серверу. Данные имеют размер 16 байт. Вычислите эффективность этой передачи на уровне TCP (отношение полезных байт к общему числу байт).
  7. Дан следующий TCP-заголовок в 16-ричном формате.
    05320017 00000001 00000000 500207АА 00000000
    • Какой номер исходного порта?
    • Какой номер пункта назначения?
    • Какой порядковый номер?
    • Какой подтверждающий номер?
    • Какова длина заголовка?
    • Какой тип сегмента?
    • Какой размер окна?

Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Алексей Гончаренко
Алексей Гончаренко
Россия
Айбек Куттымурат
Айбек Куттымурат
Казахстан, Алматы