АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Установление соединения

Читайте также:
  1. Английская буржуазная революция. Установление республики в Англии.
  2. Ароматические соединения
  3. Божественное установление поста
  4. В 2. Сварка в твердом состоянии: условия образования сварного соединения, примеры.
  5. В регуляции уровня сахара в крови принимают участие следующие соединения: 1) глюкагон; 2) инсулин; 3) пролактин; 4) тестостерон; 5) эстрадиол.
  6. Водород. Изотопы водорода. Соединения водорода с металлами и неметаллами. Вода, пероксид водорода.
  7. Выбор и расчёт посадок шпоночного соединения
  8. Выявленных связей и соотношений, установление состава эндогенных и
  9. Задания открытой формы на установление правильной последовательности и соответствия
  10. Идентификация и установление подлинности пользователя.
  11. Идентификация и установление подлинности электронных документов – цифровая подпись.
  12. Какие межклеточные соединения обеспечивают синхронное функционирование рабочих кардиомиоцитов?

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

Соединение между двумя устройствами производится в три этапа (см. рис. 1).

Во-первых, узел-отправитель инициализирует установление связи, посылая узлу-получателю запроса синхронизации SYN (1).


Рис. 2. Установление соединения

Во-вторых, узел-получатель подтверждает запрос синхронизации и задает свои параметры синхронизации ACK (2).

В-третьих, узлу-получателю посылается подтверждение, что обе стороны готовы к тому, чтобы соединение было установлено (3).

Такой механизм получил название трехэтапного установления связи
(Three-way handshake). Оба узла должны согласовать начальные номера последовательности передаваемых частей информации, что происходит через обмен сегментами синхронизации (SYN) и подтверждения (ACK).

Синхронизация требует, чтобы каждая сторона послала собственный начальный номер последовательности и получила подтверждение от другой стороны. Каждая сторона, получив начальный номер последовательности от другой стороны, отвечает подтверждением ACK. Например, последовательность, соответствующая рис.1, будет следующей:

Узел-отправитель (A) инициализирует соединение, посылая сегмент SYN узлу-получателю (B), в котором указывает номер своей последовательности Sequence Number, например SECА = 101.

Получив сегмент инициализации соединения, узел B делает запись принятого номера последовательности 101 и формирует ответ в виде ACK В = 101 + 1 = 102. Ответ ACK В = 102 означает, что хост B получил сегмент данных, включая байт с номером 101, и ожидает следующий байт с номером 102. Одновременно хост B формирует начальный номер своей последовательности данных, например SECВ = 51.

Узел A, получив сегмент от B со значениями ACK В = 102, SECВ = 51, формирует ответ ACK А = 52, SECА = 102, который завершает процесс соединения.

Передача данных

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

Размер скользящего окна (Window) заголовка сегмента TCP (рис. 2) определяет, сколько байт данных передается в одной порции неподтвержденных данных. Последовательность сегментов передаваемых данных представляет собой последовательность байт. Поэтому и размер окна в заголовке сегмента задается в количестве передаваемых байт. Узел-получатель передает отправителю подтверждение ACK, когда примет указанное в окне количество байт данных.

На рис. 3 приведен пример, когда размер окна составляет 3000 байт, а каждый передаваемый сегмент содержит 1500 байт, что соответствует максимальному размеру кадра Ethernet Уровня 2.


Рис. 3. Процесс передачи байт данных

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

Если какой-то сегмент в процессе передачи был потерян, например, из-за перегрузки сети, то узел-получатель в ответе укажет начальный номер потерянного сегмента (рис. 4), чтобы этот сегмент был передан повторно. При этом размер окна может быть уменьшен до 1500 байт, т. е. до размера одного передаваемого сегмента.

Перегрузка буферов данных может произойти по следующим причинам:

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

Несколько узлов одновременно посылают сообщения одному узлу-получателю.

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


Рис. 4. Перегрузка в процессе передачи байт данных

Когда получатель вновь сможет обрабатывать дополнительные данные, он посылает индикатор "готов". Если этот индикатор получен, отправитель может продолжить передачу.

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


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)