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

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

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

Контроль ошибок

TCP — достоверный протокол транспортного уровня. Это означает, что прикладная программа доставляет поток данных к TCP, к прикладной программе на другом конце в порядке, без ошибок и без потери любой части или дублирования.

TCP обеспечивает достоверность, используя контроль ошибок. Контроль ошибок включает в себя механизмы обнаружения:

  • искаженных сегментов;
  • потери сегментов, нарушения порядка следования сегментов;
  • дублирования сегментов.

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

Обнаружение и коррекция ошибок

Обнаружение ошибок в TCP достигается с помощью использования трех простых инструментов: контрольной суммы, подтверждения и контроля по времени (time-out). Каждый сегмент включает в себя поле контрольной суммы, которое используется для проверки искаженности сегмента. Если сегмент искажен, он удаляется пунктом назначения TCP. TCP применяет метод подтверждения для получения сведений о том, что сегмент достиг пункта назначения неискаженным. Отрицательное подтверждение не используется в TCP. Если сегмент не подтвержден, прежде чем окончится контрольное время, это считается признаком искажения или потери и сегмент будет передан повторно.

Искаженный сегмент

Рис. 10.10 показывает прибытие искаженного сегмента на пункт назначения.

Искаженный сегмент

Рис. 10.10. Искаженный сегмент

В этом примере источник посылает сегменты с 1 до 3, каждый по 200 байт. Последовательность номеров начинается с 1201 в сегменте 1.

TCP приемника принимает сегменты 1 и 2 , используя контрольную сумму, находит, что они свободны от ошибок. Он подтверждает принятие сегментов 1 и 2, используя номер 1 601, который означает, что получены нормально и неискаженно байты 1201 до 1600 и ожидается получения байта 1601. Однако он нашел, что сегмент 3 искажен, и удаляет сегмент 3. Заметим, что, хотя он получил байты 1601 до 1800 в сегменте 3, пункт назначения не считает его полученным, потому что этот сегмент искажен. После того как сработает счетчик времени для сегмента 3, источник TCP передаст повторно сегмент 3. После получения сегмента 3 пункт назначения посылает подтверждение для байта 1801, которое указывает, что он получил байты от 1201 до 1800 неповрежденными и в пределах заданного времени.

Потеря сегмента

Рис. 10.11. показывает случай потери сегмента. Ситуация точно та же, как и при искаженном сегменте. Другими словами, от точки источника и до пункта назначения действия при потере сегмента те же, что и при его искажении. Разница в том, что искаженный сегмент удаляется конечным пунктом назначения; потерянный сегмент удаляется любым промежуточным узлом и не достигает конечного пункта.

Потерянный сегмент

Рис. 10.11. Потерянный сегмент

Дублированный сегмент

Дублированный сегмент, например, может быть создан источником TCP, когда до окончания контрольного времени не прибыло подтверждение. Обработка дублированного сегмента — простой процесс для пункта назначения TCP. Пункт назначения TCP ждет продолжения потока байт. Когда прибывает пакет, который содержит тот же порядковый номер, что и другой полученный сегмент, пункт назначения удаляет пакет.

Сегмент с нарушением порядка

TCP использует услуги IP, протокола сетевого уровня, не обеспечивающего достоверности, не ориентированного на соединение. TCP-сегмент инкапсулируется в IP-дейтаграмму. Каждая дейтаграмма — независимая единица. Маршрутизаторы могут послать каждую дейтаграмму по любому маршруту, найденному ими по ситуации. Одна дейтаграмма может следовать маршрутом с короткой задержкой; другая может следовать маршрутом с длительной задержкой. Если дейтаграмма прибывает с нарушением порядка, сегменты TCP, которые инкапсулированы в дейтаграмме, с высокой степенью вероятности будут в беспорядке.

Обработка сегментов с нарушением порядка пунктом назначения очень проста: он не подтверждает сегмент с нарушением порядка, пока не примет все сегменты, которые предшествуют ему. Конечно, если подтверждение задержано, в TCP-источнике может закончиться контрольное время и сегмент может быть выслан повторно. Дубликат затем будет удален пунктом назначения.

Потеря подтверждения

Рис. 10.12. показывает потерю подтверждения, которое посылается пунктом назначения. Потеря подтверждения может быть даже не замечена источником TCP. TCP использует систему накопленного подтверждения. Каждое подтверждение относится ко всей предыдущей информации, до последнего переданного байта.

Например, если пункт назначения посылает подтверждение (ACK) сегмента с номером подтверждения 1801, это предполагает, что байты с 1201 до 1800 приняты. Если конечный пункт предварительно посылал подтверждение для байта 1601 и оно потеряно, то эта потеря подтверждения не учитывается.

Потерянное подтверждение

Рис. 10.12. Потерянное подтверждение
< Лекция 9 || Лекция 10: 123456 || Лекция 11 >
Евгений Виноградов
Евгений Виноградов

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

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

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

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993