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

Транспортный уровень. Протокол управления передачей (Transmission Control Protocol — TCP)

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >

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

  • TCP — надежный ориентированный на соединение транспортный протокол. Он дополняет протоколы сетевого уровня свойствами, ориентированными на управление соединением и обеспечение надежности для обслуживания. TCP, – это протокол, ориентированный на поток.
  • В связи с тем что процессы передачи и приема могут производить и потреблять данные не на одной и той же скорости, TCP нуждается в буферной памяти для накопления пакетов.
  • На транспортном уровне TCP группирует несколько байтов в пакет, называемый сегментом, добавляет заголовок к каждому сегменту (с целью контроля) и доставляет сегмент на IP-уровень для передачи. Сегмент инкапсулируется и передается в IP-дейтаграмме.
  • TCP предлагает полное дуплексное обслуживание, где данные могут двигаться в обоих направлениях одновременно. Каждый TCP поэтому имеет буфер приема и передачи и посылает сегменты в оба направления.
  • В передаваемом блоке данных имеются два поля — порядковый номер байта и номер подтверждения байта. Эти два поля ссылаются на номер байта, а не на номер сегмента. Нумерация не обязательно начинается от 0, она начинается со случайного числа. TCP генерирует случайный номер между 0 и 232-1 для номера первого байта. Порядковый номер для каждого сегмента – это номер первого байта, переносимого в этом сегменте.
  • Для достижения управления потоком TCP применяет протокол "скользящего окна". При таком методе оба хоста используют окно для каждого соединения, окно выделяет небольшую часть буфера, содержащие байты, которые буфер может передать, прежде чем беспокоиться о подтверждении от другого хоста.
  • Окно приемника – это число байт, которое может накопить приемник. Окно передатчика — это число байт, которое может накопить передатчик. Если процесс приемника принимает данные быстрее, чем они поступают, размер окна может быть расширен (в буфер можно добавить свободные места). Если процесс приемника принимает данные медленнее, чем они поступают, размер окна приемника уменьшается (сжимается).
  • Серьезная проблема может возникнуть при работе со скользящим окном, когда какая-либо передающая прикладная программа медленно создает данные, либо приемная прикладная программа медленно принимает данные, либо имеют места оба случая. В любой из этих ситуаций результат заключается в посылке очень маленьких сегментов, которые уменьшают эффективность работы. Эта проблема называется синдромом "глупого окна".
  • TCP обеспечивает достоверность, используя контроль ошибок. Контроль ошибок включает в себя механизмы обнаружения: искаженных сегментов, потери сегментов, нарушения порядка следования сегментов, дублирования сегментов.
  • Обнаружение ошибок в TCP достигается с помощью использования трех простых инструментов: контрольной суммы, подтверждения и контроля по времени.
  • TCP задействует четыре таймера: повторной передачи, настойчивости, дежурный, времени ожидания.
  • TCP применяет таймер повторной передачи, который контролирует время повторной передачи и время ожидания подтверждения сегмента, чтобы контролировать потери или удаления сегментов.
  • Если TCP приемника решает, что он выполнил свою работу, и ждет, что TCP передатчика пришлет еще сегменты, TCP передатчика, не приняв подтверждение, ждут другой TCP для того, чтобы послать извещение о размере окна. И оба TCP могут продолжать ждать друг друга вечно. Чтобы ликвидировать эту ситуацию, TCP использует время настойчивости для каждого соединения.
  • Дежурный таймер применяется в некоторых реализациях для предотвращения длительных свободных соединений двух TCP.
  • Таймер времени ожидания используется после окончания соединения. Когда TCP закрывается, он реально не разъединяется.

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

  • TCP посылает сегмент 5:30:20. Он получает подтверждение 5:30:25. Каким будет новое значение RTT, если перед этим прошло 4 секунды?
  • TCP посылает сегмент 4:30:20. Он не получает подтверждения. В 4:30:25 он повторяет предыдущий сегмент. Он получает подтверждение в 4:30:27. Каково новое значение для RTT с алгоритмом вычисления RTT с учетом повторной передачи, если предыдущее RTT было 4 с.?
  • Каков максимальный размер TCP-заголовка?
  • Каков минимальный размер TCP-заголовка?
  • Если значение длины (HLEN) – 0111, сколько байт опции включено в сегмент?
  • Что можно сказать о сегменте TCP, в котором поле "управление" имеет одно из следующих значений:
    • 000000 ;
    • 000001 ;
    • 010001 ;
    • 000100 ;
    • 000010 ;
    • 010010.
  • Поле управления в TCP-сегменте — 6 бит. Мы можем составить 64 комбинации. Сколько из этих комбинаций корректны?
  • TCP начинает соединение, использующее начальный порядковый номер (ISN) 14 534 и устанавливающее соединение с ISN 21 732. Показать три TCP-сегмента, передаваемых во время установления соединения.
  • Продолжить предыдущее упражнение, показать содержимое сегментов передачи данных, если инициатор посылает сегмент, содержащий сообщение "Здравствуй, дорогой пользователь", и другая сторона отвечает: "Привет, я готов к передаче.".
  • Продолжить два предыдущих упражнения, показать содержимое сегментов во время отбоя соединения.
  • TCP посылает данные со скоростью 1 мегабайт в с (8 мегабит в с). Если порядковый номер начинается с 7000, через какое время порядковый номер станет равен 0?
  • Соединение TCP использует размер окна 10000 байт, а номер предыдущего подтверждения был 22 001. Он получил сегмент с подтверждающим номером 24 0001. Начертите диаграмму, показывающую ситуацию с окном перед передачей и после.
  • Повторите упражнение 12 при условии, что приемник изменил размер окна на 11000.
  • Повторите упражнение 12 при условии, что приемник изменил размер окна на 90000.
  • Насколько может уменьшить размер окна приемник в упражнении 12?

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

< Лекция 9 || Лекция 10: 123456 || Лекция 11 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

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

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

Р Алоев
Р Алоев
Россия
Татьяна Тренина
Татьяна Тренина
Россия, Челябинск