Функционирование протокола tcp
TCP – это транспортный протокол, с помощью которого устанавливаются сеансы передачи данных между процессами прикладных программ, запускаемых клиентами сети. TCP предназначен для надежной доставки данных, для чего осуществляется контроль за правильностью приема фреймов и выполняется управление потоком данных. Для решения этих задач в протоколе предусмотрено упорядочение фреймов и подтверждение их приема.
Два взаимодействующих устройства задают порядковый номер для каждом переданного фрейма, и этот номер записывается в заголовок фрейма TCP Порядковый номер не только показывает местоположение фрейма в потом фреймов, но и указывает на длину данных, содержащихся в этом фрейме. Получив фрейм, принимающий узел проверяет порядковый номер и убеждается в том, что получен правильный фрейм в правильной очередности. Если узел назначения принимает фрейм, он передает подтверждение передающему узлу. Пакет подтверждения не только свидетельствует об успешном приеме фрейма, но и содержит порядковый номер следующего фрейма передачу которого ожидает принимающий узел.
Количество байтов данных, переданных во фрейме, называется скользящим окном (slidingwindow), поскольку это количество может увеличиваться или уменьшаться в процессе обмена информацией по взаимному соглашению между взаимодействующими узлами.
Размер скользящего окна определяется, узлами динамически, при этом учитываются два фактора:
-
текущий сетевой трафик;
-
размер буфера (обычно в памяти), который в данный момент может выделить каждый узел для хранения фреймов, ожидающих обработки данным узлом.
Основные функции протокола TCP аналогичны функциям Транспортами уровня модели OSI. Он должен отслеживать запросы на установление сеансов связи, устанавливать сеансы с другими TCP-узлами, передавать и принимать данные, а также закрывать коммуникационные сеансы. Фрейм 1Я содержит заголовок и полезную нагрузку (рис. 6.1) и называется TCP сегментом.
Заголовок TCP имеет минимальную длину 20 байт и содержит поля, описанные ниже.
Порт источника (SourcePort) – некоторый порт TCP (называемый также сокетом или сеансом в других протоколах), подобный виртуальному каналу между двумя коммуникационными процессами на разных узлах (рис. 6.2). Для обеспечения совместимости некоторым портам TCP (также называемым "хорошо известными портами") назначаются определенные задачи. Назначение портов TCP и их описание можно найти в RFC 1700. Наличие механизма портов TCP означает, что в определенный момент времени в течение одного сеанса связи между двумя взаимодействующими узлами может выполняться обмен данными между несколькими процессами. Например, по одному порту может передаваться; состояние сети, а по другому – сообщения электронной почты или файлы. Порт источника – это порт TCP на передающем устройстве. Некоторые обычно используемые порты TCP перечислены в табл. 6.1.
Порт назначения (DestinationPort) – некоторый порт TCP на принимающем устройстве (см. рис. 6.2), участвующий в обмене информацией для некоторого прикладного процесса (например, при передаче файлам).
Порядковый номер (SequenceNumber) – 32-разрядный последовательный номер, назначаемый каждому фрейму в процессе передачи данных. С его помощью протокол TCP обеспечивает надежность приема всех фреймов. Порядковый номер также используется для обнаружения дубликатов фрейма и для расположения фреймов в нужном порядке после того, как они были переданы по разным сетевым маршрутам или каналам.
Подтвержденный номер (AcknowledgementNumber) – число, подтверждающее получение фрейма и передаваемое протоколом TCP исходному узлу после проверки порядкового номера фрейма. Если подтвержденный номер не отправляется обратно, то выполняется повторная передача фрейма.
Смещение (Offset) или Длина заголовка (HeaderLength) – число, определяющее длину заголовка. С его помощью можно быстро определить начало данных, передаваемых во фрейме.
Флаги/управление (Flags/control) – два флага в этом поле используются для обозначения начала (SYN) и конца (FIN) полного потока данных. Другие флаги представляют собой управляющую информацию (например, для сброса соединения или для отображения активности поля указателя срочности).
Окно (Window) – информация, используемая механизмом управления потоком данных. Окно содержит количество байтов, которые можно передать до того момента, как исходный узел получит подтверждение приема фрейма. По достижении этого числа включается управление потоком, прекращающее передачу до тех пор, пока не будет получено подтверждение. Например, если размер окна равен 64 байтам, то управление потоком включается в тот момент, когда будут переданы 65 байт без подтверждения, посланного передающему узлу. Если скорость сети мала из-за высокого трафика, размер окна может быть увеличен для того, чтобы управление потоком не включалось без необходимости. Размер окна может быть и уменьшен, если принимающий узел отвечает медленно (например, когда на рабочей станции возникает высокая нагрузка на шину или центральный процессор из-за того, что локальное приложение занимает эти ресурсы). Иногда задержки так велики, что выделенное поле окна не может вместить все значение размера окна. Хотя размер окна обычно определяется автоматически взаимодействующими узлами, его может также задать администратор сети, настраивающий оптимальную производительность сети на медленных или быстрых каналах связи. Это можно сделать для уменьшения числа повторных передач от ошибочно работающих программ или при перегрузке сети, а также для исправления ошибок передачи со стороны прикладных программ, плохо работающих в сети.
Контрольная сумма (Checksum) – 16-разрядный циклический код с избыточностью (CRC), вычисляемый путем сложения всех полей заголовка и поля полезной нагрузки (сумма всех полей TCP-сегмента). Сумма вычисляется с использованием логической операции дополнения до единицы, т. е. двоичные разряды каждого поля меняют значение на противоположное (например, двоичный 0 меняется на двоичную 1, а двоичная 1 меняется на двоичный 0). Таким образом, перед сложением двух полей (например, ОНО и 10110110) их значения меняются на обратные (1001 и 01001001), а затем складываются. Общая сумма будет CRC-суммой, которая записывается во фрейм передающим узлом. Принимающий узел также вычисляет контрольную сумму и сравнивает полученное значение со значением, записанным в поле фрейма. Если значения различаются, то фрейм отбрасывается и принимающий узел запрашивает повторную передачу фрейма. В дополнение к значению контрольной суммы используются адреса источника и назначения, которые должны совпадать с теми адресами, которые указаны в IP-заголовке фрейма в качестве подтверждения того, что фрейм послан по заданному адресу.
Указатель срочности (UrgentPointer) – это поле заголовка, представляющее собой предупреждение для принимающего узла о том, что передаются срочные данные. Оно также указывает на конец срочных данных в последовательности пересылаемых фреймов. Назначение этого поля – заранее дать информацию о том, сколько данных еще будет передано в логически связанной последовательности из нескольких фреймов.
Опции (Options) – поле фрейма, которое может содержать дополнительную информацию о передаваемых данных, а также дополнительные флаги.
Заполнение (Padding) – поле, используемое в тех случаях, когда дополнительные данные отсутствуют или их слишком мало, чтобы обеспечить требуемую длину заголовка, которая должна быть кратна 32.
Примечание
Следует заметить, что данные, фактически передаваемые в ТСР-сегментах называются полезной нагрузкой. Она представляет собой исходные данные пересылаемые от передающего узла к принимающему. Также нужно сказать том, что порты TCP и IP поддерживают полудуплексные и дуплексные коммуникации.
Подтверждения протокола TCP могут создать в сети заметный дополнительный трафик, особенно, если средний размер скользящего окна относительно мал. Именно поэтому некоторые типы приложений, для которых не требуется уровень надежности, обеспечиваемый протоколом TCP (с помощью механизмов упорядочения и подтверждения), используют протокол UserDatagramProtocol (UDP).
- Оглавление
- Структуризация локальных сетей
- Основная технология на рабочих местах Ethernet/FastEthernet
- Варианты соединения узлов разделяемого сегмента 10 Мбит/сек
- Основные ограничения при построении малых сетей на коаксиальном кабеле
- Сегментация сети:
- С мостами
- С коммутаторами
- На стеке сегментирующих хабов
- Микросегментация к отдельному порту коммутатора
- Иерархическая сеть здания на коммутаторах
- Кольцевая магистраль на базе fddi/Ethernet
- Звездообразная магистраль на коммутаторах. Резервирование и дублирование магистралей
- Маршрутизатор
- Брандмауэр (firewall)
- Маршрутизаторы как средство объединения логических сетей
- Объединение подсетей «одноруким» маршрутизатором
- Планирование корпоративных кс
- В чем состоит планирование сети
- При стратегическом планировании сети, какие решения нужно принять по четырем группам вопросов
- Многослойное представление корпоративной сети
- Стратегические проблемы построения транспортной системы корпоративной сети
- Классификация сетей по радиусу действия
- Ресурсы корпоративной сети
- Определение типа сети. Четыре основных сетевых характеристик
- Четыре группы устройств, играющих основную роль при объединении сетей
- Причины, обусловившие появление локальных и глобальных сетей
- Интеграция локальных и глобальных сетей
- Передача данных между локальными и глобальными сетями
- Введение в проектирование сетей
- Взаимодействие локальных и глобальных сетей
- Эталонная модель взаимодействия открытых систем osi. Семиуровневая модель взаимодействия osi.
- Взаимодействие между стеками протоколов
- Применение модели osi
- Типы сетей
- Методы передачи данных в локальных сетях
- Глобальные сетевые коммуникации
- Методы передачи данных в глобальных сетях
- Isdn (Цифровая сеть связи с комплексными услугами)
- Методы передачи физического сигнала
- Типы коммуникационной среды
- Высокоскоростные технологии с использованием витой пары и оптоволоконного волокна
- Беспроводные технологии
- Сетевое передающее оборудование
- Сетевые адаптеры
- Повторители
- Модули множественного доступа
- Концентраторы
- Маршрутизаторы
- Мосты –маршрутизаторы
- Коммутаторы
- Мультиплексоры
- Серверы доступа
- Протоколы локальных сетей и их применение в сетевых ос
- Протоколы локальных сетей и их применение в сетевых ос
- Протокол tcp/ip и различные серверные системы
- Повышение производительности локальных сетей
- Прошлое, настоящее и будущее протокола tcp
- Функционирование протокола tcp
- Функционирование протокола ip
- Ip как протокол без установления соединения
- Сравнение архитектуры стека tcp/ip и эталонной модели osi
- Методы передачи информации в глобальных сетях
- Методы передачи информации в сетях х.25
- Соединения х.25
- Структура фрейма х.25
- Использование сетей х.25
- Сети с ретрансляцией кадров (framerelay)
- Технология атм
- Компоненты сетей атм
- Характеристика сетей атм
- Области применения атм
- Применение технологии атм при построении локальных сетей
- Применение технологии атм при построении глобальных сетей
- Технологии беспроводных сетей
- Современные технологии беспроводных сетей
- Технологии радиосетей
- Сетевые технологии с использованием инфракрасного излучения
- Направленный луч
- Ненаправленная передача
- Отражение
- Микроволновые сетевые технологии
- Беспроводные сети на базе низкоорбитальных спутников Земли
- Совместная передача речи, видеоизображений и данных
- Технология передачи изображений
- Технологии создания аудиофайлов
- Передача мультимедийной информации в локальных и глобальных сетях
- Проектирование глобальных сетей, поддерживающих мультимедийные приложения
- Базовые принципы проектирования локальных и глобальных сетей
- Факторы, влияющие на структуру локальных и глобальных сетей
- Анализ существующей топологии и ресурсов
- Принципы проектирования локальных сетей
- Принципы проектирования глобальных сетей