СЕТЕВОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

 

Основным элементом сетевого программного обеспечения служит 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 с именем абонента в поле имени NCB_NAME и кодом команды ADD NAME,

· вызывается NETBIOS через прерывание INT 5Ch,

· посылаются данные абоненту используя сеанс, предварительно создав NCB для команды CALL, и вызывается INT 5Ch,

· проверяется код возврата в регистре AL, когда команда завершается,

· формируются команды передачи или чтения,

· передача (или прием) данных завершается командой HANG UP.

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