Мультиплексирование и демультиплексирование с установлением логического соединения

Для того чтобы понять суть демультиплексирования в протоколе TCP, необходимо сначала подробнее рассмотреть ТСР-сокеты и процесс установления ТСР-соедине-ния. Отличие ТСР-сокета от UDP-сокета заключается в том, что ТСР-сокет идентифицируется при помощи не двух, а четырех составляющих: IP-адреса отправителя, номера порта отправителя, IP-адреса получателя и номера порта получателя. Все четыре компонента используются хостом-получателем в процессе демультиплексирования (направления в нужный сокет) получаемых сегментов. В отличие от протокола TCP, сегменты с разными IP-адресами или номерами порта отправителя будут переданы разным сокетам даже при совпадении IP-адресов и номеров портов получателя. Обратимся к программам, приведенным в разделе «Программирование ТСР-сокетов» главы 2. Эти программы обладают следующими особенностями.

□ Программа-сервер использует «впускающий» сокет с номером порта 6789, принимающий запросы от клиентов на установление ТСР-соединения.
□ Программа-клиент генерирует запрос на установление соединения командой

Socket clientSocket = new SocketC’serverHostName”, 6789);

□ Запрос на установление логического соединения представляет собой не что иное, как TCP-сегмент с номером порта 6789 и специальным битовым набором в заголовке (более подробное описание будет приведено в разделе «Протокол TCP — передача с установлением соединения» этой главы). Кроме того, сегмент также включает номер порта отправителя, определяемый программой-клиентом. Команда, приведенная выше, создает ТСР-сокет клиентского процесса, через который клиент осуществляет обмен информацией с сервером.
□ Получив запрос на установление соединения, серверный процесс создает сокет соединения командой

Socket connectionSocket = welcomeSocket.accept();

□ При обработке сегмента с запросом на установление логического соединения сервер использует четыре параметра: номер порта отправителя, IP-адрес отправителя, номер порта получателя и собственный IP-адрес. Создаваемый сокет соединения идентифицируется совокупностью этих четырех параметров. Все сегменты, содержащие в соответствующих полях значения, совпадающие с параметрами сокета соединения, направляются (демультиплексируются) в этот сокет. После того как TCP-соединение установлено, клиент и сервер могут начинать обмен данными.

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

35.png

Рисунок 3.5 иллюстрирует ситуацию открытия трех HTTP-сеансов с сервером В: двух сеансов клиентом С и одного клиентом А. Все три хоста, А, В и, С, имеют уникальные IP-адреса. Для двух HTTP-соединений хост С использует номера портов 26 145 и 7532. Поскольку хост А выбирает номера портов независимо от хоста С, возможна ситуация, когда для своего HTTP-соединения с сервером В хост А также использует порт с номером 26 145. Тем не менее процесс демультиплексирования будет выполняться сервером корректно, поскольку IP-адреса отправителей сегментов для хостов А и С различны.

Блог про Индию. Рассказы путешественников. Новости, фотографии, видео

Данная статья "Мультиплексирование и демультиплексирование с установлением логического соединения" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Мультиплексирование и демультиплексирование с установлением логического соединения" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Мультиплексирование и демультиплексирование с установлением логического соединения", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *