logo
Выч

Сетевое программное обеспечение.

Основным элементом сетевого программного обеспечения служит NETBIOS - программное обеспечение, записаное в ПЗУ сетевых адаптеров, устанавливаемое на каждом компьютере сети, и позволяющее реализовать пять уровней протоколов передачи данных (включая сеансовый). NETBIOS'ом также принято называть сам интерфейс между сетевым программным обеспечением и программами персонального компьютера.

Для того, чтобы использовать сеть необходимо:

Команды NETBIOS'а формируются с использованием блока управления сетью - NCB (Network Control Block), который заполняется в соответствии со своей спецификацией. Формат блока NCB приведен в нижеследующей табл.7.1.

Табл.7.1.

Имя поля

Формат и назначение

NCB_COMMAND

DB 00H; поле команды

NCB_RETCODE

DB 00H; поле кода возврата

NCB_LSN

DB 00H; поле локального номера сеанса

NCB_NUM

DB 00H; номер вашего имени

NCB_BUFFER@

DD 00000000H; указатель на адрес буфера сообщения (смещение: сегмент)

NCB_LENGTH

DW 0000H; длина буфера NCB (в байтах)

NCB_CALLNAME

DB 16 DUP(0); имя локального или удаленного адаптера; для команды CHAIN SEND первые 2 байта показывают длину второго буфера, а следующие 4 байта - адрес второго буфера

NCB_NAME

DB 16 DUP(0); имя локального адаптера

NCB_RTO

DB 00H; значение тайм-аута для приема

NCB_STO

DB 00H; значение тайм-аута для передачи

NCB_POST@

DD 00000000H; указатель на post- подпрограмму (смещение: сегмент)

NCB_LANA_NUM

DB 00H; номер адаптера: для первого адаптера 00H, для второго - 01H

NCB_CMD_CPLT

DB 00H; поле состояния команды

NCB_RESERV

DB 14 DUP(0); резервная область

Адрес NCB помещают в регистровую пару ES:BX и вызывается программное прерывание INT 5Ch. Результаты выполнения команды помещаются либо в регистр AL, либо в поле кода возврата блока NCB.

Команды NCB делятся на четыре категории:

Перечень команд и их краткое содержание приведены в нижеследующей таблице.

Табл.7.2.

Название команды

Содержание команды

Общие команды.

RESET

Сброс

CANCEL

Прервать

ADAPTER STATUS

Получить состояние адаптера

Поддержка имен.

ADD NAME

Добавить имя

ADD GROUP NAME

Добавить групповое имя

DELETE NAME

Уничтожить имя

Поддержка сеансов.

CALL

Вызвать

LISTEN

Ждать вызов

HANG UP

Закрыть

SEND

Передать

CHAIN SEND

Передать последовательность

RECEIVE

Принять

RECEIVE ANY.

Принять от любого

SESSION STATUS.

Получить состояние сеанса

Поддержка дейтаграмм.

SEND DATAGRAM.

Передать дейтаграмму

SEND BROADCAST DATAGRAM.

Послать общую дейтаграмму

RECEIVE DATAGRAM.

Принять дейтаграмму

RECEIVE BROADCAST DATAGRAM.

Принять общую дейтаграмму

Каждая команда любой категории (за исключением команд RESET и CANCEL) в свою очередь может различаться в зависимости от режима ее использования - "ожидание" или "неожидание". Режим "ожидание" означает, что, когда вы вызываете команду, процессор ждет ее завершения, прежде чем взять следующую. Режим "неожидание" означает, что процессор обращается к следующей команде сразу после запуска предыдущей и что команда прерывается по post-адресу, когда ее выполнение завершается.

Каждая приведенная в табл.7.2. команда имеет определенный номер, который в шестнадцатеричном коде записывается в соответствующее поле блока NCB. После выполнения команды в NCB формируются соответствующие коды возврата результатов.

Например, команда ADAPTER STATUS (получить состояние адаптера) имеет номер 33h, если требуется ожидание ее завершения, и B3h, если ожидание не нужно. Эта команда возвращает информацию о состоянии локального или удаленного адаптера, имя которого указано в поле NCB_CALLNAME. Информация размещается по указанному в NCB_BUFFER@ адресу буфера, а поле длины NCB_LENGTH показывает число байтов в полученном ответе.

Порядок использования функций NETBIOS состоит в следующем:

Для передаваемых и принимаемых данных выделяется буфер, параметры которого указываются в NCB.