Скачиваний:
52
Добавлен:
01.05.2014
Размер:
152.06 Кб
Скачать

Протокол tcp Сегменты и потоки

Единицей данных для протокола TCPявляется сегмент. Информация, поступающая по протоколуTCPв рамках соединения от протоколов более высокого уровня, рассматривается протоколомTCPкак неструктурированный поток байтов.

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

Сегменты, посылаемые через соединение могут иметь разный размер. Оба участника соединения должны договариваться о максимальном размере посылаемого сегмента. Размер выбирается таким образом, чтобы при упаковке в IP-пакет сегмент помещался в него целиком без фрагментации, т.е. размер максимального сегмента не должен превосходить максимального размера поля данныхIP-пакета.

Соединения

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

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

Формально соединение – это набор параметров, характеризующий процедуру обмена данными между двумя процессами. К таким параметрам относятся:

согласованные размеры сегментов;

объемы данных, которые разрешено передавать без подтверждения;

начальные и текущие номера передаваемых байтов.

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

Установка связи по протоколу

Этапы, из которых состоит этот процесс таковы.

  • Узел-отправитель запрашивает соединение, посылая сегмент с установленным флагом синхронизации (SYN).

  • Узел-адресат подтверждает получение запроса, отправляя обратно сегмент с:

    • Установленным флагом синхронизации

    • Порядковым номером начального байта сегмента, который он может послать

    • Подтверждением, включающим порядковый номер следующего сегмента, который он ожидает получить

  • Запрашивающий узел посылает обратно сегмент с подтверждением номера последовательности и номером своего подтверждения (ACK).

Структура пакета протоколаTcp

Все пакеты протокола TCPимеют две части – заголовок и данные. В таблице приведены поля заголовкаTCP-пакета.

Source port – порт отправителя

TCPпорт узла-отправителя

Destination port – порт назначения

TCPпорт узла-получателя, определяет конечную точку соединения

Sequence number – порядковый номер

Номер последовательности пакета (для проверки получения всех байт соединения)

Acknowledgement number – номер подтверждения

Порядковый номер байта, который локальный узел планирует получить следующим

Datalength– длина данных

Длина TCP-пакета

Reserved – зарезервировано

Зарезервировано для будущего использования

Flags – флаги

Поле описывает содержимое сегмента

Window – окно

Показывает, сколько места доступно в настоящий момент в окне протокола TCP

Checksum – контрольная сумма

Проверяет, поврежден ли заголовок

Urgent pointer – указатель срочности

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

Важным является раскрытие значений бит поля флаги.

URG

Флаг важной информации

ACK

Номер байта, который должен прийти следующим

PSH

Этот сегмент требует выполнения операции push. Получатель должен передать эти данные прикладной программе как можно быстрее

RST

Прерывание связи

SYN

Флаг для синхронизации номеров сегментов, используется при установлении связи

FIN

Отправитель закончил посылку байтов

Соседние файлы в папке lecture1