Идентифицирует приложение клиента, с которого отправлены пакеты. По возвращении данные передаются клиенту на основании номера порта источника.
Порт назначения
Идентифицирует порт, на который отправлен пакет.
Порядковый номер
Номер сегмента в общем потоке данных, номер данных и идентификатор TCP-сегмента.
Порядковый номер может нести в себе следующий смысл:
– если установлен флаг SYN, то это начальное значение порядкового номера — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь порядковый номер, равный ISN + 1;
– в противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот порядковый номер.
По нему определяется, куда вложить фрагмент в буфере при получении.
Поскольку поток TCP в общем случае может быть длиннее, чем число различных состояний этого поля, то все операции с номером последовательности должны выполняться по модулю 2^32. Это накладывает практическое ограничение на использование TCP.
Номер подтверждения
Смещение в общем потоке данных, которое показывает границу данных, подтверждаемых получателем. Поле заполняется в случае, если пакет представляет собой квитанцию – подтверждение о доставке.
Если установлен флаг ACK, то это поле содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.
Длина заголовка (смещение данных)
Это поле определяет размер заголовка пакета TCP в 4-байтных (32-разрядных) словах. Минимальный размер составляет 5 слов, максимальный — 15, что составляет 20 и 60 байт соответственно. Смещение считается от начала заголовка TCP.
Зарезервировано
Зарезервировано (6 бит) для будущего использования и должно устанавливаться в ноль.
Флаги (управляющие биты)
Это поле содержит 6 битовых флагов.
SYN
Синхронизация номеров последовательности, флаг установки соединения.
FIN
Признак завершения соединения.
RST
Признак сброса соединения.
PSH
Флаг проталкивания данных. Инструктирует получателя протолкнуть данные, накопившиеся в приемном буфере, в приложение пользователя.
URG
Флаг, указывающий, что передаются срочные данные (urgent). Если этот флаг установлен, то используется поле «Указатель срочных данных».
ACK
Флаг подтверждения (acknowledgement). Поле «Номер подтверждения» задействовано
Размер окна
Число, определяющее в байтах размер данных, которые отправитель пакета готов принять. Позволяет во время передачи установить другой размер окна.
Контрольная сумма
Считается по IP и TCP заголовку. Используется для нахождения ошибок, возникших во время передачи данных.
Указатель срочных данных
Номер байта внутри данных, с которого начинаются срочные данные (смещение). Поле принимается во внимание только для пакетов, в которых установлен флаг URG.
Опции
В некоторых случаях применяются для расширения протокола. Иногда используются для тестирования. После окончания дополнительных данных поле дополняется нулями до 32 битов.
Чем отличается сброс соединения от упорядоченного завершения?
Если вы отправили данные, а потом выдали команду на упорядоченное закрытие соединения, то данные, которые находятся в пути, будут переданы получателю, а затем получатель получит информацию о закрытии соединения. Иначе данные, которые не дошли в процессе передачи, будут уничтожены.
14.3 Установка соединения в TCP («Трехкратное рукопожатие»)
Сервер принимает запрос на установку соединения (пассивная сторона).
Клиент посылает запрос (активная сторона).
1) Когда выполняется установка соединения, клиент посылает на заданный порт пакет с флагом установки соединения (SYN). При этом, когда посылается пакет SYN, порядковый номер (SN) клиентом выбирается случайным образом и вписывается в пакет;
2) Сервер, получив запрос, отправляет на него ответ. В этом ответе устанавливаются флаги SYN, ACK. Тот IP адрес и порт, которые будут использоваться клиентом, берутся из ответного пакета, а для того чтобы сопоставить первый пакет и ответный пакет и нужен Random SN. Диапазон SN - Int32.
3) Получив пакет, клиент отправляет пакет с флагом ACK, после чего сервер переходит в состояние ESTABLISHED.
Уязвимость TCP:если какой-либо узел в глобальной сети начнет посылать подтверждения клиентам, указывая свои значения IP-адреса и порта, то это подтверждение клиент может получить раньше подтверждения, отправленного сервером, следовательно, клиент будет считать, что необходимо взаимодействовать с сервером, использую IP-адрес и порт злоумышленника.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление