Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Суконщиков, Сети ЭВМ и Телекоммуникаций.doc
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
12.95 Mб
Скачать

33.Протокол tcp

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

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

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

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

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

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

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

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

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

Квитанции

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

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

Механизм тайм-аута ожидания подтверждения

Когда протокол TCP передает сегмент с данными, он помещает его копию в очередь повторной передачи и запускает таймер для повторной передачи. Когда приходит подтверждение (на данный сегмент) сегм стирается, а таймер выкл.

Выбор тайм-аута

В протоколе TCP тайм-аут Та выбирается с помощью достаточно сложного адаптивного алгоритма:

• При каждой передаче засекается время до прихода квитанции (время оборота).

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

• В качестве Та выбирается среднее время оборота, умноженное на некоторый коэффициент. Практика показывает, что значение этого коэффициента должно превышать 2.

• При большом разбросе времени оборота в алгоритме выбора тайм-аута учитывается также и дисперсия этой величины.

Приостановка передачи

При полном заполнении входного буфера перегруженный узел-приемник указывает в своей квитанции нулевое окно. Даже после этого его партнер по соединению может направить на этот порт сообщение. Для этого оно должно сопровождаться пометкой «срочно» (в поле заголовка — «указатель срочности»). При поступлении такого срочного пакета порт обязан принять его даже путем вытеснения из буфера уже находящихся там данных. Ненулевое окно разрешает дальнейший приём данных.

Заголовок. Мин. длина - 20 байт

«Номер в последовательности» (Sequence number) - номер первого байта в текущем сегменте.

«Номер подтверждения» (Acknowledgment number) - номер следующего байта, который ожидает приемник. Тем самым подтверждается получение байтов с номерами до {AN-1}.

«Смещение данных» (Data offset) — указывает количество 32-битных слов в заголовке TCP.

«Резерв» (Reserved) - заполнено нулями и предназначено для будущего расширения протокола.

«Окно» (Window) - объявляет размер W окна в байтах.

«Контрольная сумма» (Checksum) - сумма всех 16 битовых слов заголовка и поля данных.

«Указатель срочности» (Urgent pointer) - используется совместно с флагом URG. Указывает размер в байтах поля срочных данных.

«Опции» - имеет переменную длину и может отсутствовать. Его размер всегда кратен 8 байтам. Здесь могут, к примеру, указываться: максимальный размер сегмента, дополнительные услуги и т.д.

«Выравнивание» (Padding) - заполнение нулями до 32-битовой длины.

Особенности протокола TCP

1. С помощью флага URG могут передаваться срочные данные.

2. Соединение является надежным за счет:

- использования режима обнаружения ошибок;

- присвоения порядковых номеров каждому байту сообщения

- использования тайм-аута ожидания подтверждения, по его истечении сегмент передается повторно.

3. Управление потоком путем использования окна передачи W.