Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выч.маш.сист.и сети2 Учебное пособие.doc
Скачиваний:
134
Добавлен:
24.09.2019
Размер:
2.12 Mб
Скачать

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

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