Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник1.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
8.36 Mб
Скачать

Протокол tcp

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

Р ис.6.14.

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

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

Адресом назначения, который использует протокол TCP, является номер (идентификатор) порта прикладной службы. Совокупность: «номер сети»+«номер узла»+«номер порта» однозначно определяет прикладной процесс и носит название сокета (socket).

Назначение номеров портов производится централизованно (например: 21 – FTP, 23 – telnet), либо локально (если это еще не стандартизовано). При локальном присвоении берется любой из еще не распределенных номеров (рис.6.15.).

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

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

Для организации надежной передачи данных предусматривается установление логического соединения между двумя прикладными процессами. Соединение в протоколе TCP идентифицируется парой сокетов (т.е. полных адресов процессов).

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

Рис 6.15.

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

Окно передачи.

Правильность передачи подтверждается квитанцией получателя. В TCP применяется частный случай квитирования – алгоритм скользящего окна.

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

Квитанции.

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

  • прием искаженного сегмента;

  • потерю сегмента;

  • потерю квитанции.

В качестве квитанции используется поле «номер подтверждения» в заголовке сегмента. В нем помещается число на единицу большее максимального номера байта в полученном сегменте (т.е. это номер следующего ожидаемого на приеме байта). Это число часто называют номером очереди.