Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация Вычислительных Систем / Computer System Organization - Part2-Computer Networks.doc
Скачиваний:
51
Добавлен:
01.05.2014
Размер:
3.45 Mб
Скачать

Протокол tcp

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

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

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

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

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

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

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

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

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

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

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

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

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

Квитанции

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

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

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

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

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