Протокол TCP.

38
каф. ВТ, ТОГУ, г. каф. ВТ, ТОГУ, г. Хабаровск, вед. преп. Хабаровск, вед. преп. Шоберг А.Г. Шоберг А.Г. 1 03.07.22 03.07.22 Протокол Протокол TCP. TCP. Тема : Будут рассмотрены следующие вопросы: - функции протокола TCP; - структура TCP – сегмента; - фаза установления соединения; - фаза передачи данных; - фаза ликвидации соединения.

description

Протокол TCP. Тема:. Будут рассмотрены следующие вопросы:. - функции протокола TCP;. - структура TCP – сегмента;. - фаза установления соединения;. - фаза передачи данных;. - фаза ликвидации соединения. 1. Функции протокола TCP. 1.1. Базовая передача данных. - PowerPoint PPT Presentation

Transcript of Протокол TCP.

Page 1: Протокол  TCP.

каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск, вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1120.04.2320.04.23

Протокол Протокол TCP.TCP.Тема:

Будут рассмотрены следующие вопросы:

- функции протокола TCP;

- структура TCP – сегмента;

- фаза установления соединения;

- фаза передачи данных;

- фаза ликвидации соединения.

Page 2: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 22

1. 1. Функции протокола Функции протокола TCPTCP

1.1. Базовая передача данных

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

Page 3: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 33

1. Функции протокола 1. Функции протокола TCPTCP

1.2. Обеспечение достоверности

Модуль TCP обеспечивает защиту от повреждения, потери, дублирования и нарушения очередности получения данных.

Для выполнения этих задач все октеты в потоке данных сквозным образом пронумерованы в возрастающем порядке. Заголовок каждого сегмента содержит число октетов данных в сегменте и порядковый номер первого октета той части потока данных, которая пересылается в данном сегменте.

Page 4: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 44

1. Функции протокола 1. Функции протокола TCPTCP

1.2. Обеспечение достоверности

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

Нумерация октетов используется также для упорядочения данных в порядке очередности и обнаружения дубликатов

Page 5: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 55

1. Функции протокола 1. Функции протокола TCPTCP

1.3. Разделение каналов

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

Page 6: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 66

1. Функции протокола 1. Функции протокола TCPTCP

1.4. Управление соединениями

Соединение - это совокупность информации о состоянии потока данных, включающая сокеты, номера посланных, принятых и подтвержденных октетов, размеры окон.

Открытие соединения клиентом осуществляется вызовом функции OPEN, которой передается сокет, с которым требуется установить соединение. Функция возвращает имя соединения. Закрытие соединения клиентом производится с помощью функции CLOSE, которой передается имя соединения.

Page 7: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 77

1. Функции протокола 1. Функции протокола TCPTCP

1.4. Управление соединениямиРазличают два типа открытия соединения: активное и пассивное.

При активном:

TCP-модуль начинает процедуру установления соединения с указанным сокетом

При пассивном:

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

Page 8: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 88

1. Функции протокола 1. Функции протокола TCPTCP

1.4. Управление соединениямиПример:

Предположим, узел А желает установить соединение с узлом В.

1. В заголовке первого отправляемого из А в В TCP-сегмента (структуру TCP -сегмента мы рассмотрим чуть позже) содержится число (ISN), начиная с которого узел А будет нумеровать отправ-ляемые октеты (например 0).

А В

1. SYN, ISN запрос А->B A->B ACK, SYN, ISN2. +запрос B->A

3. ACK, данные B->A ok!+ данные от А

данные4. данные от В

Page 9: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 99

1. Функции протокола 1. Функции протокола TCPTCP

1.4. Управление соединениями

А В

1. SYN, ISN запрос А->B A->B ACK, SYN, ISN2. +запрос B->A

3. ACK, данные B->A ok!+ данные от А

данные4. данные от В

Так как про-токол TCP обеспечивает полнодуплексную передачу данных, то узел В в этом же сегменте устанавливает бит SYN, означающий запрос связи для передачи данных от В к А, и передает свой ISN (например 0)

2. В ответ на получение такого сегмента узел В откликается посылкой TCP-сегмента, в заголовке которого установлен бит ACK, подтверждающий установление соединения для получения данных от узла А.

Page 10: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1010

1. Функции протокола 1. Функции протокола TCPTCP

1.4. Управление соединениями

А В

1. SYN, ISN запрос А->B A->B ACK, SYN, ISN2. +запрос B->A

3. ACK, данные B->A ok!+ данные от А

данные4. данные от В

то узел А включает в свой сегмент полезные данные, нумерация которых начинается с номера ISN(A)+1. В заголовке этого же сегмента узел А устанавливает бит ACK, подтверждающий установ-ление связи B -> A, что позволяет хосту В включить в свой следующий сегмент полезные данные для А

3. Третий TCP-сегмент в сеансе посылается из А в В в ответ на сегмент, полученный из В. Так как соединение А -> В можно считать установленным (получено подтверждение от В),

Page 11: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1111

1. Функции протокола 1. Функции протокола TCPTCP

1.5. Управление потоком

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

Page 12: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1212

1. Функции протокола 1. Функции протокола TCPTCP

1.5. Управление потокомПротокол TCP формирует подтверждения не для каждого конкретного успешно полученного пакета, а для всех данных от начала посылки до некоторого порядкового номера ACK SN (Acknowledge Sequence Number) исключительно. В качестве

подтверждения успеш-ного приема, например, первых 2000 байт, высылается ACK SN = 2001: это означает, что все данные в байтовом потоке под номерами от ISN+1=1 до данного ACK SN -1 (2000) успешно получены

Page 13: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1313

1. Функции протокола 1. Функции протокола TCPTCP

1.5. Управление потокомВместе с посылкой отправителю ACK SN получатель объяв-ляет также “размер окна”, например - 6000. Значит отпра-витель может посылать данные с порядковыми номерами от текущего ACK SN = 2001 до (ACK SN + размер окна -1) = 8000, не дожидаясь подтверждения со стороны получателя.

Page 14: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1414

1. Функции протокола 1. Функции протокола TCPTCP

1.5. Управление потокомДопустим, в данный момент отправитель посылает тысяче-октетный сегмент с порядковым номером данных SN=4001. Если не будет получено новое подтверждение (новый ACK SN), отправитель будет посылать данные, пока он остается в пределах объявленного окна, то есть до номера 8001.

Page 15: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1515

2. Структура 2. Структура TCPTCP--сегментасегмента

Порт источника Порт назначения

Заполнитель

Порядковый номер подтверждения

0 16 31

Порядковый номер сегмента

Смещение

данных

Флаги Резерв

Контрольная сумма Указатель срочности

Размер окна

Опции

Данные

4 10 24

Формат ТСР сегмента представлен на рисунке

Page 16: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1616

2. Структура 2. Структура TCPTCP--сегментасегмента

«Порт источника» и «Порт назначения» - определяют передающее и приемное приложения, соответственно.

Page 17: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1717

2. Структура 2. Структура TCPTCP--сегментасегмента

«Порядковый номер сегмента» - определяет позицию первого байта данных сегмента в байтовом потоке источника при значении флага SYN=0 (в режиме передачи данных). В режиме установления соединения, когда флаг SYN установлен в 1, в этом поле содержится начальный номер последовательности номеров байтов данного потока (ISN – initial sequence number); значение номера первого байта данных этого потока будет ISN+1.

Page 18: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1818

2. Структура 2. Структура TCPTCP--сегментасегмента

«Порядковый номер подтверждения» - это поле в режиме с установленным флагом ACK (режим передачи данных) содержит порядковый номер байта данных, который передающий модуль ожидает получить от приемного узла; тем самым подтвер-ждается правильность приема всех предыдущих байтов. В режиме установления соединения (ACK=0) значение этого поля не учитывается.

Page 19: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 1919

2. Структура 2. Структура TCPTCP--сегментасегмента

«Смещение данных» - поле определяет длину заголовка сегмента в 32-битных словах; эта инфор-мация позволяет приемному модулю определить начало поля данных, т.к. заголовок может содержать опциональное поле переменной длины.

Page 20: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2020

2. Структура 2. Структура TCPTCP--сегментасегмента

«Резерв» - поле в настоящее время не используется и заполняется нулями.

Page 21: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2121

2. Структура 2. Структура TCPTCP--сегментасегмента

«Контрольные биты» - поле длиной 6 бит, каждый из которых является флагом; их последовательность и смысл следующие:

URG – флаг срочности передачи сегмента;

ACK – флаг указывающий на достоверность значений в поле «Порядковый номер подтверждения»PSH – включена функция «проталкивания» сегмен- та, т.е. модуль ТСР должен передать сегмент приложению немедленно

Page 22: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2222

2. Структура 2. Структура TCPTCP--сегментасегмента

«Контрольные биты»:

RST – указание приемному модулю разорвать соединение по причине каких-то аномалий; используется для перезагрузки соединенияSYN – флаг установления соединения, синхрони- зации порядковых номеров сегментов FIN – флаг, индицирующий, что у передающего модуля нет данных для передачи; передающее приложение остается в соединении с приемным и принимает данные последнего.

Page 23: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2323

2. Структура 2. Структура TCPTCP--сегментасегмента

«Размер окна» - поле определяет количество байтов, которое модуль TCP может принять (Wa).

Page 24: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2424

2. Структура 2. Структура TCPTCP--сегментасегмента

«Контрольная сумма» - значение этого поля рассчитывается по всему сегменту с дополнением его нулями до размера кратного 16 битам и 96 битным псевдозаголовком, включаемым перед заголовком TCP и содержащим сетевые адреса отправителя и получателя, тип протокола и длину ТCP сегмента. Эти дополнения используются только для расчета контрольной суммы и не передаются.

Page 25: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2525

«Указатель срочности» - значение этого поля при установленном флаге URG, будучи добавленным к значению поля «Порядковый номер сегмента», определяет последний байт срочных данных. Покольку приемный модуль ТСР передает приложению байты строго по порядку, то все байты, содержащиеся в приемном буфере, вплоть до байта с определенным, как указано выше номером, будут рассматриваться как срочные.

2. Структура 2. Структура TCPTCP--сегментасегмента

Page 26: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2626

2. Структура 2. Структура TCPTCP--сегментасегмента

«Опции» - поле используется для определения других, не предусмотренных заголовком, функций. Так например, это поле часто используется для передачи величины максимального размера сегмента (maximum segment size - MSS). В высокоскоростных сетях это поле используется для задания таких параметров как «Коэффициент масштабирования окна» (до 214) и «Временная метка». Последние важны в ситуации когда полный цикл нумерации байт может быть пройден за время жизни сетевого пакета. Наличие временных меток в каждом сегменте позволяет также вычислить время полного оборота (RTT).

Page 27: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2727

3. Фаза установки 3. Фаза установки соединениясоединенияФаза установления соединения,

предшествующая фазе передачи данных, содержит следующие действия

1. Хост А отправляет хосту Б запрос соединения посред-ством установки флага SYN и инициализирует значе-ние начального номера

нумерующей последова-тельности (Seq_no = m).

SYN, Seq_no = m

SYN, Seq_no = k, ACK, Ack_no = m+1

Seq_no = m+1, ACK, Ack_no = k+1

Хост А Хост Б

Page 28: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2828

3. Фаза установки 3. Фаза установки соединениясоединенияФаза установления соединения,

предшествующая фазе передачи данных, содержит следующие действия 2. Хост Б отвечает на этот

запрос установкой флага ACK и определяет поле «Порядковый номер подтверждения» значе-нием на единицу большим m (Ack_no = m+1); однов-ременно, хост Б в своем ответе А отправляет запрос соединения (SYN) и также инициализирует значе-ние начального номера своей нумерующей последова-тельности (Seq_no = k).

SYN, Seq_no = m

SYN, Seq_no = k, ACK, Ack_no = m+1

Seq_no = m+1, ACK, Ack_no = k+1

Хост А Хост Б

Page 29: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 2929

3. Фаза установки 3. Фаза установки соединениясоединения

Фаза установления соединения, предшествующая фазе передачи данных, содержит следующие действия

3. Хост А отвечает на запрос соединения от хоста Б установкой флага ACK и подтверждением ожидания следующего байта данных с порядковым номером k+1 (Ack_no = k+1); при этом, значение поля «Порядко-вый номер сегмента» устанавливается в значе-ние m+1 (Seq_no = m+1).

SYN, Seq_no = m

SYN, Seq_no = k, ACK, Ack_no = m+1

Seq_no = m+1, ACK, Ack_no = k+1

Хост А Хост Б

Page 30: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3030

4. Фаза передачи данных4. Фаза передачи данных

t0

t3

Хост А Хост Б

Seq_no=0, Ack_no=2000, Win=2048, No data

Seq_no=2000, Ack_no=1, Win=1024, Data=2000-3023Seq_no=3024,

Ack_no=1, Win=1024, Data=3024-4047

Seq_no=1, Ack_no=4048, Win=512, Data=1-128

Win=1024, Data=4048-4559

Seq_no=4048, Ack_no=129,

t1

t2

t4

Пусть в момент t0 ТСР-модуль хоста В объявил величину своего окна равной 2048 байт и номер следующего ожи-даемого байта 2000. Такой размер окна поз-воляет хосту А от-править без подтверж-дения 2 Кбайта данных, однако в его выходном буфере име-ется лишь 1024 байта данных.

Page 31: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3131

4. Фаза передачи данных4. Фаза передачи данных

Хост А Хост Б

Seq_no=0, Ack_no=2000, Win=2048, No data

Seq_no=2000, Ack_no=1, Win=1024, Data=2000-3023Seq_no=3024,

Ack_no=1, Win=1024, Data=3024-4047

Seq_no=1, Ack_no=4048, Win=512, Data=1-128

Win=1024, Data=4048-4559

Seq_no=4048, Ack_no=129,

t1

t2

t4

Одновременно, он объ-являет величину свое-го окна равной 1024 байта и подтверждает, что номер ожидаемого первого байта от хоста Б должен быть равен 1. Хост Б задерживает выдачу подтверждения на прибывший сегмент данных, полагая, что у него появятся данные для отправки хосту А, вместе с которыми он отправит и подтвер-ждение.

Page 32: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3232

4. Фаза передачи данных4. Фаза передачи данных

Хост А Хост Б

Seq_no=0, Ack_no=2000, Win=2048, No data

Seq_no=2000, Ack_no=1, Win=1024, Data=2000-3023Seq_no=3024,

Ack_no=1, Win=1024, Data=3024-4047

Seq_no=1, Ack_no=4048, Win=512, Data=1-128

Win=1024, Data=4048-4559

Seq_no=4048, Ack_no=129,

t1

t2

t4

Тем временем, в момент t2 модуль ТСР хоста А снова получил от своего приложения 1024 байт данных и передал их хосту Б. После этого величина окна отправки на хосте А стала равной нулю и дальнейшая отправ-ка им данных до получения подтверж-дения от хоста Б ока-зывается невозмож-ной.

Page 33: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3333

4. Фаза передачи данных4. Фаза передачи данных

Хост А Хост Б

Seq_no=0, Ack_no=2000, Win=2048, No data

Seq_no=2000, Ack_no=1, Win=1024, Data=2000-3023Seq_no=3024,

Ack_no=1, Win=1024, Data=3024-4047

Seq_no=1, Ack_no=4048, Win=512, Data=1-128

Win=1024, Data=4048-4559

Seq_no=4048, Ack_no=129,

t1

t2

t4

В момент t3 модуль ТСР хоста Б получил 128 байт данных для отп-равки; вместе с ними он отправляет подтверж-дение получения от хоста А двух сегментов данных, указывая Ack_no=4048. К этому моменту в буферной памяти модуля ТСР хос-та Б оказывается сво-бодными лишь 512 байт, поэтому он объявляет величину своего окна приема равной 512

Page 34: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3434

4. Фаза передачи данных4. Фаза передачи данных

Хост А Хост Б

Seq_no=0, Ack_no=2000, Win=2048, No data

Seq_no=2000, Ack_no=1, Win=1024, Data=2000-3023Seq_no=3024,

Ack_no=1, Win=1024, Data=3024-4047

Seq_no=1, Ack_no=4048, Win=512, Data=1-128

Win=1024, Data=4048-4559

Seq_no=4048, Ack_no=129,

t1

t2

t4

Когда хост А получит этот сегмент, он установит величину окна отсылки равной 512 байт и, несмотря на то, что в момент t4 в его буфере имеется 2048 байт данных, он сможет отослать только 512 байт и не перегрузит буфер хоста Б.

Page 35: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3535

5. Фаза ликвидации 5. Фаза ликвидации соединениясоединения

TCP- А

TCP- БFIN, Seq_no=4386

Аck_no=453

Data=303-452, Ack_no=4387

FIN, Seq_no=453, Ack_no=4387

Ack_no=454

Доставлены 150 байт

Хост А инициализирует процедуру разрыва соединения, отправляя сегмент с флагом FIN.

Page 36: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3636

5. Фаза ликвидации 5. Фаза ликвидации соединениясоединения

TCP- А

TCP- БFIN, Seq_no=4386

Аck_no=453

Data=303-452, Ack_no=4387

FIN, Seq_no=453, Ack_no=4387

Ack_no=454

Доставлены 150 байт

Модуль ТСР хоста Б подтверждает прием этого сегмента и пере-дает извещение о зап-росе на закрытие сое-динения своему прило-жению. Одновременно, располагая данными для хоста А, модуль ТСР хоста Б отправ-ляет сегмент со 150 байтами данных хосту А, и получает подтвер-ждение их приема.

Page 37: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3737

5. Фаза ликвидации 5. Фаза ликвидации соединениясоединения

TCP- А

TCP- БFIN, Seq_no=4386

Аck_no=453

Data=303-452, Ack_no=4387

FIN, Seq_no=453, Ack_no=4387

Ack_no=454

Доставлены 150 байт

Получив от своего приложения под-тверждение разрыва соединения прото-кольный модуль хоста Б отправляет встреч-ный сегмент FIN и получает на него под-тверждение

Page 38: Протокол  TCP.

20.04.2320.04.23каф. ВТ, ТОГУ, г. Хабаровск, каф. ВТ, ТОГУ, г. Хабаровск,

вед. преп. Шоберг А.Г.вед. преп. Шоберг А.Г. 3838

5. Фаза ликвидации 5. Фаза ликвидации соединениясоединения

TCP- А

TCP- БFIN, Seq_no=4386

Аck_no=453

Data=303-452, Ack_no=4387

FIN, Seq_no=453, Ack_no=4387

Ack_no=454

Доставлены 150 байт

Модуль TCP хоста А переходит в состояние ожидания и запус-кает таймер TIME_WAIT с начальным значением задержки равным удвоенному максимальному времени жизни сегмента. При достижении

этим таймером значения нуль, хост А ликви-дирует соединение и удаляет запись о нем из таблицы соеди-нений.