DCAP

DCAP (англ. Data Link Switching Client Access Protocol — Протокол клиентского доступа к коммутации каналов передачи данных) — протокол, используемый между рабочими станциями и маршрутизаторами для транспортировки трафика SNA/NetBIOS посредством сеансов TCP.

DCAP
Название Data Link Switching Client Access Protocol
Уровень (по модели OSI) Прикладной
Создан в 1997
Порт/ID 1973/TCP
Спецификация RFC 2114

В больших сетях DCAP решает проблему расширяемости, существенно снижая количество узлов сети, которые подключаются к центральному маршрутизатору. Рабочие станции (DCAP-клиенты) и маршрутизатор (DCAP-сервер) образуют иерархическую структуру, устанавливая взаимоотношение Клиент/Сервер.

Обзор

Общая идея протокола DCAP

Рабочие станции (клиенты DCAP) и маршрутизатор (сервер DCAP), устанавливают отношения типа Клиент/Сервер. Рабочие станции подключаются только к серверу DCAP. В свою очередь, у сервера есть единственное равноправное соединение — с центральным роутером.

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

Для установки сеанса со стороны клиента рабочая станция отправляет прямой запрос к серверу по IP-адресу. В запросе содержатся MAC-адрес и SAP(Service Access Point) узла назначения. Рабочая станция может как указывать собственный MAC-адрес, так и запросить у сервера назначить таковой. IP-адрес сервера должен быть заранее прописан на рабочей станции. Если на рабочей станции указаны несколько серверов, то запрос может быть отправлен ко всем. Первый ответивший сервер будет выбран для дальнейшей работы.
Для установки сеанса со стороны сервера отправляется прямой запрос к рабочей станции. Для этого сервер заранее должен знать её MAC-адрес.

Формат сообщения

Сообщение
DCAP HeaderDCAP DataUser Data

DCAP Header (Заголовок) — первый блок сообщения — является обязательным для всех сообщений, передаваемых между клиентом DCAP и сервером. Имеет длину равную 4 байтам.
Блок DCAP Data. Структура блока и его размер основываются на указанном в заголовке типе сообщения. Данные DCAP используются для обработки сообщения. Блок не является обязательным.
User Data — содержит пользовательские данные, пересылаемые между клиентами и сервером. Размер этого блока переменный. Включается в сообщение только тогда, когда есть необходимые данные для передачи.

Заголовок сообщения

В заголовке указывается тип и длина сообщения.

Байт DCAP Packet Header
0ID ПротоколаНомер версии
1Тип сообщения
2Длина сообщения
3
  • ID Протокола занимает первые 4 бита первого байта. Это значение следует установить как «10002».Номер версии занимает следующие 4 бита. Значение следует установить как «00012».
  • Общая длина сообщения определяется, как сумма заголовка, тип DCAP Data и пользовательских данных.
  • Минимально возможный размер сообщения — 4 байта, то есть сообщение состоит только из заголовка.

Тип сообщения может принимать одно из следующих значений (указаны не все возможные значения):

ИмяЗначениеСмысл
CAN_U_REACH0x01Указывает, достижима ли данная станция
I_CAN_REACH0x02Положительный ответ на флаг CAN_U_REACH
I_CANNOT_REACH0x03Негативный ответ на флаг CAN_U_REACH
START_DL0x04Настройка сеанса для данных адресов
DL_STARTED0x05Успешное начало сеанса
START_DL_FAILED0x06Неудачное начало сеанса
XID_FRAME0x07Кадр XID
CONTACT_STN0x08Установить режим SABME с адресатом
STN_CONTACTED0x09Станция доступна — установить режим SABME
DATA_FRAME0x0AПослать SNA/NetBIOS дейтаграмму без установки соединения
INFO_FRAME0x0BI-Frame с установлением соединения
HALT_DL0x0CПрервать сеанс
HALT_DL_NOACK0x0DПрервать сеанс без получения подтверждения
DL_HALTED0x0EСеанс был прерван.
DGRM_FRAME0x11Дейтаграмма для схемы
CAP_XCHANGE0x12Возможности обмена сообщениями.
CLOSE_PEER_REQUEST0x13Запрос на разъединение.
CLOSE_PEER_RESPONSE0x14Ответ на CLOSE_PEER_REQUEST
PEER_TEST_REQ0x1DТестовый запрос на проверку соединения
PEER_TEST_RSP0x1EОтвет на проверку соединения

DCAP Data

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

Схема протокола

Следующая диаграмма показывает порядок обмена сообщениями между клиентом и сервером для нормального запуска и завершения сеанса.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.