информационно-новостной портал
Главная / Статьи / Информатика / Компьютерная сеть /

Примитивы сокетов для TCP

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

Примитивы сокетов для TCP/IP. Для работы с сокетами обычно используют примитивы, то есть минимальное действие, из которых может состоять операция: 1) Создать сокет – Socket – этот, приметив обязательно должен быть, выполнен как на клиенте, так и на сервере. 2) BIND- выполняет привязку сокета к локальному адресу. Обычно используется на сервере, для привязки порта к созданному сокету. Привязка означает, что сервер будет получать сообщения только на указанный адрес и порт. 3) Liston – тоже в основном применяется на сервере означает обозначить готовность оборудования к соединению. Вызов этого примитива требует от локальной о.с. выделить буфер для максимального количества соединения который может быть использован сервером. 4) Accept – блокировка вызывающей стороны до прибытия запроса для соединения. Примитив используется в основном со стороны сервера, по этому примитиву о.с. блокирует вызывающий процесс до прихода запроса на соединение, когда запрос приходит, то о.с. создаёт новый сокет с те меже свойствами, что у старого. Это делается для того, что бы сервер работал постоянно. 5) Connect – используется как на сервере, так и на клиенте, но чаще со стороны клиента. Означает попытка установить соединение. 6) Cend – послать через соединение некоторые данные. Receive – принять из точки соединения данные. 7) Close – приметив разорвать соединение.

Работа сокета со стороны клиента различается: 1) Сначала на клиенте создаётся сокет, но он явно не привязывается к локальному адресу машины, о.с. клиента выдаёт порт для соединения по умолчанию (1806). Далее идёт клиента попытка установить соединения с сервером, в этом случает транспортный протокол, требует, что бы сервер указал адрес, через который будет установлено соединение. Клиент блокируется до тех пор, пока не будет установлено соединение, после установке соединение идёт обмен сообщения, разрыв соединения может происходить как со стороны клиента, так и со стороны сервера.

Сохранная связь на основе сообщений. Кроме механизма сокетов существует другой механизм передачи сообщений это очереди. Сокеты работают только в сетях с протоколами TCP/IP, не пригодны при работе с высокоскоростными сетями. Сокеты не обладают средствами буферизации и синхронизации и привязаны к аппаратуре. Для исправления этих недостатков был предложен интерфейс передачи сообщений MPI, предполагает что связь происходит в пределах, какой – то группы процессов, каждая группа имеет свой идентификатор каждый процесс в группе то же имеет свой идентификатор это пара идентификаторов полностью определяет ими отправителя или получателя и используется вместо адреса, MPI предполагает использование высокоскоростных базовых сетей и в ней нет серверов для коммутации. На основе технологии MPI была предложена модель очереди сообщений. В основе этой модели лежит буфер или очередь, которую процессы помещают в свои сообщения, сообщения извлекаются из очереди или буфера по цепочки коммутации на практики сообщение непосредственно пересылается на сервер получателя. Каждые приложение имеет собственную очередь, в которую другие приложения могут помещать сообщения. Очередь может быть прочитана только тем приложением, с которым оно связано. В то же время несколько приложений могут использовать одну и ту же очередь.

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

Очередь сообщений омет следующие примитивы: 1) put – добавить сообщения в существующею очередь. 2) get – извлечь сообщение из очереди или приостановить до тех пор, пока в очереди не появится сообщения, а затем извлечь первое. 3) roll – проверить наличие сообщений в очереди и извлечь первое, из этих сообщений не блокируя работы. 4) notify – очистить очередь сообщений или переместить сообщения в другую очередь.

Архитектура очереди сообщений: Исходящей называется такая очередь в которую сообщения могут помещаться только на самой машине отправителя или из соседней машине отправителя. Очередью назначения называется очередь, в которую помещается уже прочитанное сообщение. Исходящей очередей и очередей назначения может быть несколько сообщения перемещаются из очереди в очередь. Для поддержки этих перемещений система содержит базу сетевых адресов, то есть адресов машин, на которых находится очереди назначения или исходящие. На практике эти адреса размещаются в базе аналогично системе DNS. Очереди управляются менеджерами, менеджер взаимодействует с приложениями получателя и отправителя, менеджер может работать как маршрутизатор и ретранслятор.

Брокеры – на практике нужно, что бы приложение понимало получаемое сообщение. Это означает, что каждое получаемое сообщение имеет соответствующий формат данных, нов  системе может быть добавлено приложение формат данных которого не совпадает с уже имеющемся. Для понимания нового формата в систему включается надстройка, которая конвертирует один формат в другой такая надстройка называется брокером. Брокер сообщений преобразовывает входящие сообщения в формат, который понимает получатель. В некоторых случаях брокеры выполняют роли шлюзов. Ядро брокеров составляет б.д. в которой описаны все форматы и правила преобразования этих форматов. В б.д. содержатся такие правила для преобразования этих форматов. Правила имеют вид утилит.

Просмотров: 1924 | Дата добавления: 05.03.2016