Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

Сетевая базовая система ввода-вывода (NETBIOS)

Глава 6: Microsoft и IBM


 Предыдущая страница    |    Следующая страница  
Добавить в избанное Обсудить в форуме Написать автору сайта Версия для печати

Историческая справка

          Когда в 1984 году было впервые объявлено о Сети ПЭВМ IBM (IBM PC Network), возник вопрос: какое сетевое программное обеспечение реализовала фирма IBM ? Своеобразный ответ на него дали компаниипродавцы ЛВС: они предложили Сети MICROSOFT (Microsoft Networks), думая, что именно это программное обеспечение используется в Сети ПЭВМ (PC Network). Принятие такого решения было обусловлено, в частности, еще и тем, что операционная система MS-DOS фирмы Microsoft стала PC-DOS для компании IBM. (Сети Microsoft (Microsoft Networks) безусловно являются продуктом изготовителей комплексного оборудования. Они не реализованы ни в какой определенной ЛВС - это обусловлено только фирмой-изготовителем комплексного оборудования).

          Та же история повторилась в апреле 1987 года, когда IBM объявила о создании OS/2 одновременно с фирмой Microsoft, которая заявила о своем новом продукте - Администраторе ЛВС (LAN Manager). В течение некоторого времени после этого события компания IBM не разглашала свою новинку - "стратегию спецпроцессора", пока не вышла на рынок с новым своим продуктом - Спецпроцессором ЛВС OS/2 IBM (IBM OS/2 LAN Server). И снова возникли затруднения - как же соотносятся эти два продукта - Спецпроцессор IBM и Администратор Microsoft?

          В настоящей главе рассказывается об эволюции Сетей Microsoft (Microsoft Networks) и Программы ЛВС ПЭВМ IBM (IBM PC LAN Program), начиная с оригинальной разработки и до их реализации в OS/2.

[начало] [оглавление]

 

Сети Microsoft (Microsoft Networks)

          Только после выпуска Сети ПЭВМ (PC Network) с модулированной передачей фирмы-продавцы и пользователи стали осознавать, что сетевое программное обеспечение в Сети ПЭВМ (которое позднее стало известно как NETBIOS) является несовместимым с Сетями Microsoft (Microsoft Networks) и оно не было создано фирмой Microsoft. В результате, поток продуктов, совместимых с Сетями Micrsoft, о котором объявили многие фирмы-продывцы ЛВС, никогда не был реализован.

          После выпуска cети ПЭВМ (PC Network) фирма Microsoft действительно изменила структуру пользовательских команд в Сетях Microsoft (Microsoft Networks), чтобы достигнуть более тесного соответствия с командами, используемыми IBM. (К примеру, команда CONNECT стала командой NET USE). Фактически, команды Сетей Microsoft являются в значительной степени "подмножеством" команд, используемых в Программе ЛВС ПЭВМ IBM (IBM PC LAN Program).

          Один из компонентов реализации IBM NETBIOS был написан фирмой Microsoft: это непопулярный в настоящее время передресатор. Он тесто связан с PC/MS-DOS в том смысле, что используется протокол Блока сообщений спецпроцессора (SMB) (см. Главу 5), хотя остальная часть Сетей Microsoft и NETBIOS спроектирована таким образом, чтобы обеспечить независимость как от операционной системы, так и от ЛВС. Сети Microsoft (Microsoft Networks) доступны как для Xenix (реализация UNIX, System V фирмой Microsoft), так и для MS-DOS. Переадресатор предназначен для того, чтобы запросы на услуги (например, открытие или распечатка файлов), которые обычно обрабатываются в местном "режиме", были, при необходимости, перехвачены, преобразованы в сетевой запрос и направлены для исполнения спецпроцессору.

          Подобно NETBIOS, Сети Microsoft (Microsoft Networks) предназначены для работы с MS-DOS 3.1 (на ней основан и спецпроцессор и рабочая станция) или же с более высокой версией этой операционной системы. Режимы коллективного использования файлов и режимы блокировки файлов идентичны. Аналогична и расширенная схема поименования: \\имя_спецпроцессора\каталог\файл
(\\server_name\directory\file).

[начало] [оглавление]

 

Сети Microsoft и NETBIOS

          Основное различие между ранней версией Сетей Мicrosoft (Microsoft Networks) и NETBIOS заключается в том, что Сети Microsoft предоставляют интерфейс транспортного уровня, в то время как интерфейс NETBIOS находится на сеансовом уровне. Сети Microsoft также включают специализированной программное обеспечение спецпроцессора и рабочей станции, тогда как Программа ЛВС IBM PC обеспечивает эти и другие функции, включая неспециализированный спецпроцессор.

          Транспортный уровень Сетей Microsoft используется для отправки сообщений через виртуальные каналы. По одному запросу может быть передано до 64 кбайт. Коммуникация (обмен данными) с транспортным уровнем осуществляется посредством прерывания 21H, функция 5BH (напомним, что NETBIOS использует прерывание 21H, функция 5CH). Коммуникация с транспортным уровнем производится посредством установки Блока управления транспортом (Transport Control Block, сокращенно TCB), а затем выполнения прерывания 21H. Блок управления транспортом аналогичен Блоку управления сообщениями (MCB) или Блоку управления сетью (NCB) в NETBIOS. Фактически, многие поля являются общими как для реализации TCB, так и для реализации NCB/MCB. На рис. 6-1 показана структура Блока управления транспортом (TCB).


ИМЯ ПОЛЯ ДЛИНА (байт) и ЗНАЧЕНИЕ
-------------------------------------------------------------------
! COMMAND ! 1 Поле команды !
! ! !
-------------------------------------------------------------------
! CID ! 1 Идентификатор команды !
! ! !
-------------------------------------------------------------------
! VCID ! 1 Идентификационный номер виртуального канала !
! ! !
-------------------------------------------------------------------
! LENGTH ! 2 Размер буфера данных !
! ! !
-------------------------------------------------------------------
! BADDR ! 4 Указаталь на адрес буфера сообщения !
! ! (смещение:сегмент) !
-------------------------------------------------------------------
! RES1 ! 2 Зарезервированное !
! ! !
-------------------------------------------------------------------
! LADDR ! 16 Местный адрес !
! ! !
-------------------------------------------------------------------
! RADDR ! 16 Удаленный адрес !
! ! !
-------------------------------------------------------------------
! ASYNC ! 4 Указатель на подпрограмму нотификации (объявления)!
! ! адреса (смещение:сегмент) !
-------------------------------------------------------------------
! LNET ! 4 Местный номер ЛВС !
! ! !
-------------------------------------------------------------------
! RNET ! 4 Удаленный номер ЛВС !
! ! !
-------------------------------------------------------------------
! RTO ! 1 Тайм-аут получения (шаг равен 500 мсек) !
! ! !
-------------------------------------------------------------------
! STO ! 1 Тайм-аут отправки (шаг равен 500 мсек) !
! ! !
-------------------------------------------------------------------
! RES2 ! 8 Зарезервированное !
! ! !
-------------------------------------------------------------------

Рис. 6-1. Блок управления транспортом (TCB).


          Как и для оригинального NETBIOS в Сети ПЭВМ с модулированной передачей (PC Network), сетевой уровень в Сетях Microsoft реализован лишь в минимальной степени. Имеется поддержка для иерархического адреса, состоящего из 4-байтового адреса сети и 16-байтового адреса станции. Также имеется низкоуровневая поддержка для услуги дейтаграмм, позволяющая отправлять/принимать неквитированные пакеты длиной до 512 байт. Изготовитель комплексного оборудования должен решить, как отобразить адреса станций в адресах сети и как реализовать алгоритм маршрутизации, если будет разработан шлюз.

          К сожалению, между Сетями Microsofdt и NETBIOS существует много различий, что затрудняет совместимость этих продуктов. Кроме уже упромянутых различий, несовместимыми являются и две схемы поименования. NETBIOS позоляет иметь несколько имен, динамически переназначать имена и транслировать их; в то сремя как в Сетях Microsoft требуется, чтобы администратор присваивал только одно логическое имя каждому физическому адресу.

          Несмотря на различия в обеих реализациях, у них есть один общий недостаток: обе основываются на MS-DOS для выполнения услуг в файловом процессоре. Другими словами, на них влияют недостатки операционной системы - однопользовательской и "однозадачной". В первой редакции данной книги мы написали следующее: "Не совсем ясно, сможет ли 'многозадачная' версия DOS решить эту проблему, потому что для успешной своей работы она более чем вероятно НЕ будет совместима с предыдущими версиями DOS,что полностью обезоружит пять миллионов владельцев ПЭВМ". Как оказалось, OS/2 поддерживает только некоторые команды DOS и лежащую в основе DOS файловую структуру, что не устраняет трудности в работе для любого спецпроцессора ЛВС, действующего под управлением OS/2. (Метод, имеющийся в DOS, - метод использования таблицы размещения (записей) файла (FAT) потребует проведения интенсивного табличного поиска при открытии, закрытии и поддержании файла).

          Некоторые фирмы-продавцы, объявившие о поддержке Сетей Microsoft, выпустили на рынок промышленные версии для своих сетей. Многие из них предлагают также и NETBIOS, т.к. Сети Microsoft включают "образец" эмулятора NETBIOS, который фирмы-изготовители комплексного оборудования могут предлагать наряду со своими продуктами. Получилось так, что первоначальная полезность Сетей Microsoft в чистой среде MS-DOS была некоторым образом ограничена. Первоначально Сети Microsoft были для ЛВС с комбинацией операционных систем DOS и Xenix.

[начало] [оглавление]

 

Администратор ЛВС

          С появлением Администратора ЛВС (LAN Manager) Microsoft (одновременно с PS/2 и OS/2), переадресатор стал называться Генератором запросов (Запросчиком), а NETBIOS стал интерфейсом прикладного программирования (API) для OS/2. Администратор ЛВС работает под управлением OS/2 на PC AT или PS/2 Модель 50 и выше с процессором 80286 или 80386. ПЭВМ рабочей стванции может действовать либо с МS-DOS и Программой ЛВС ПЭВМ (PC LAN Program), которая требует наличия NETBIOS, либо с OS/2 и новым интерфейсом прикладного программирования (API) NETBIOS. Администратор ЛВС OS/2 Microsoft (созданный совместно с 3Com) позволяет пользователям соединять системы ПЭВМ под управлением либо Microsoft OS/2, либо MS-DOS вместе в единую цепь. Системы под управлением Microsoft XENIX и XENIX Net могут быть также подсоединены к этой же сети.

          В подобной сети система на основе Microsoft OS/2 может работать одновременно и как рабочая станция и как спецпроцессор; Системы MS-DOS работающие в Сетях Microsoft, могут действовать как спецпроцессор или рабочая станция. Системы на основе XENIX могут работать и как спецпроцессор и как рабочая станция одновременно.

          Администратор ЛВС OS/2 Microsoft дает такие сетевые возможности, как прозрачное совместное использование файлов и печати, средства защиты пользователя и инструментальные средства управления сетью. Вследствие того, что Администратор ЛВС OS/2 Microsoft тесно связан с операционной системой MS OS/2, интерфейсы программирования работают во всей сети как прозрачные. Средство межпроцессовой коммуникации (IPC) облегчает процесс непосредственного обмена данными (коммуникации между прикладными программами, хотя они и находятся на разных машинах в сети. Разработчики прикладных программ смогут создать единую версию программного продукта, который может работать как на отдельной машине, так и на нескольких мамшинах, соединенных Администратором ЛВС OS/2 Microsoft. Такие фирмы как Novell и 3Com предложили свои собственные версии Средства межпроцессовой коммуникации (IPC) до OS/2.

          Администратор ЛВС OS/2 Microsoft полностью совместим с существующими продуктами Сетей Microsoft как для операционной системы MS-DOS, так и для XENIX. Это позволяет новым системам под управлением MS-DOS взаимодействовать с существующими сетями, поддерживающими Сети Microsoft.

          Большинство фирм-изготовителей комплексного оборудования, предлагающих Сети Microsoft (включая HEWLETT PACKARD, TandemTandem, DEC, Ungermann-Bass, 3Com/Bridge, AT&T, Nothern Telecom, AST Research, Apricot, Seimens, Bull, Intel, NEC Japan, XeroxXerox, SMT Goupil Research Machines и Digital Microsystems) также будут предлагать Администратор ЛВС Microsoft. Фирма IBM - заметное исключение из этого списка. Несмотря на то, что Сети Microsoft и Программа ЛВС ПЭВМ/NETBIOS имеют много общего, IBM не собирается поддерживвать Администратор ЛВС, планируя позже предложить программное обеспечение для Спецпроцессора ЛВС OS/2 (LAN Server). Еще одно различие между Microsoft и IBM - Расширенная версия OS/2 IBM (IBM OS/2 Extended Edition), которая стала собственной версией OS/2, созданной фирмой IBM. От изготовителей комплексного оборудования OS/2 Microsoft будет зависеть, оказать ли поддержку Расширенной версии IBM. Многие фирмы оснащают Стандартную версию дополнениями, например, пакетом APPC/PC.

[начало] [оглавление]

 

Взаимодействие Администратора ЛВС и API NETBIOS

          Интерфейсы прикладного программирования (API) для OS/2 Microsoft предоставляют доступ к сетевым функциям и используются языками высокого уровня. API обеспечивает два вида функций:

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

          Интерфейс прикладного программирования (API) Администратора ЛВС имеет те же ограничения, что и стандартный API DOS. API использует программную модель удаленного вызова процедуры, чтобы обеспечить управление удаленными спецпроцессорами и их ресурсами как местными. Такие вызовы принимают параметр имени спецпроцессора, который указывает цель операции. Для того, чтобы предотвратить несанкционированное использование, некоторые функции, вызванные удаленно, выполняются только, если запрашивающий пользователь имеет преимущество в управлении данным спецпроцессором.

          Управляющая программа (драйвер) NETBIOS - одна из категорий, определенная Интерфейсом прикладного программирования (API) Администратора ЛВС. Администратор ЛВС определяет и другие категории. Просто перечислим их.

Рабочая станция (WORKSTATION) - Информация о конфигурации рабочей станции.

Использование переназначения - Соединение удаленного (REDIRECT USE) устройства рабочей станции

Сообщения (MESSAGING) - Отправка и прием сообщений от пользователя к пользователю

Тревога (ALERT) - Управляет и поднимает тревогу в сети

Каналы (PIPES) - Двустроронняя коммуникация процессов

Почтовые участки (MAILSLOTS) - Односторонняя коммуникация процессов

Параметры пользователя - Сохраняет/восстанавливает (PROFILE) активное использование/совместное использование

Конфигурация (CONFIG) - Устанавливает элементы из файла LANMAN.INI

Спецпроцессор (SERVER) - Конфигурация спецпроцессора и статистические данные о нем

Совместное использование - Совместное использование файла (SHARES) и устройства спецпроцессора

Сеансы (SESSIONS) - Машинные сеансы спецпроцессора

Cоединения (CONNECTIONS) - Пользовательские соединения спецпроцессора

Файлы (FILES) - Открытые файлы спецпроцессора Регистрация (AUDITING) - Регистрация в контрольном журнале

Регистрация ошибок - Регистрация системных ошибок (ERROR LOGGING)

Символьные устройства - Соединения с удаленными (CHAR DEVICES) символьными устройствами

Очереди печати (PRINT QUEUES) - Очереди заданий системы буферизации потоков I/O

Задания печати (PRINT JOBS) - Задания печати системы буферизации

Назначения печати - Виртуальные устройства в (PRINT DESTINATIONS) системе буферизации

Разрешения на доступ - Разрешения на доступ к файлам (ACCESS PERMISSIONS) и другим ресурсам

Пользователи (USERS) - Разрешения на пользование файлами и групповое членство

Статистика (STATISTICS) - Статистические данные о работе рабочей станции и спецпроцессора

Удаленные (REMOTE) - Удаленные функции, такие как удаленное выполнение программы, копирование файлов и передвижение файлов

Смешанные (MISCELLANEOUS) - Время дня в сети и т.п.


          Доступ к управляющей программе NETBIOS осуществляется вызовом Enum. Вызовы Enum перечисляют тип ресурса, является ли он именами пользователей, заданиями в очереди, очередями в спецпроцессоре и т.д. Вызовы всегда возвращают целое число частей ответа фиксированной длины. Если буфер пользователя слишком мал,некоторые данные переменной длины не возвращаются, вероятнее всего,для последнего элемента, хотя это и не обязательно. Кодом возврата является "больше данных", включая и данные переменной длины. Этот пераметр показывает количество возвращенных "порций" фиксированной длины. Некоторые или все из них могут иметь только часть соответствующих переменных данных, возвращаемых вместе с ними.

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

Уровень 0
---------

struct netbios_info_0 {char nb_net_name [16] };
/* nb_net_name is 16 character NETBIOS name */

Уровень 1
---------

struct netbios_info_1 {char nb_ntet_name [16];
char nb_driver_name [9]; /* OS/2 device driver name */
unsigned byte nb_lana_num; /* lan adapter number */
unsigned short nb_driver_type; /* 1 = ncb, 2 = mcb */
unsigned short nb_net_status; /* bit 0 on = net started */
/* bits 14/15 opcodes as follows: */
/* 0 = net not opened */
/* 1 = open in regular mode */
/* 2 = open in privileged mode */
/* 3 = open in exclusive mode */
unsigned long nb_net_bandeidth; /* network bandwidth bits/s */
unsigned short nb_max_sess; /* max number of sessions */
unsigned short nb_max_ncbs; /* max number of outstanding ncbs */
unsigned short nb_max_names; /* max number of names */

[начало] [оглавление]


Вызовы процедур

Вызов процедуры NETBIOSENUM

Назначение: перечислить управляющие программы (драйверы) NETBIOS

Условие вызова

init far pascal NetBiosEnum(servername,level,
buf,buflen,intritsread,totalentries)
char far * servername; /* name of tart PC (null if local) */
char far * buf; /* pointer to info buffer */
unsigned short buflen; /* byte length of info buffer */
unsigned short far * entriesread; /* # of entries supplied on return */
unsigned short far * totalentries; /* total # of entries available */

Величина возврата

Содержимое буфера при возврате (формат для одного элемента) может быть одно из следующих:

Уровень 0 содержит "struct_netbios_info_0", Уровень 1 содержит "struct_netbios_info-1".

Возврат ошибки

Возврат функции 0 означает, что все нормально. Возможными возвратами ошибок могут быть следующие:

- сеть не начала работать;
- устройство не найдено;
- спецпроцессор не найден;
- сбой в обмене данными с удаленным спецпроцессором.

Вызов процедуры NETBIOSGETINFO

Назначение: Получение информации о данной управляющей программе (драйвере) NETBIOS.

Условие вызова

int far pascal netbiosgetinfo (servername,netdevname,level,buf,buflen)
int far pascal netbiosgetinfo (servername,netbiosname,level,buf,buflen)
char far * servername; /* name of target pc (null if local) */
char far * netbiosname; /* netbios network name */
short level; /* level of info requested */
char far * buf; /* pointer to info buffer */
unsigned short buflen; /* byte length of info buffer */

Уровень 1 содержит "struct netbios_info_1".

Возврат ошибки

Функция возвращает 0, если все нормально. Ниже возможны даны возможные возвраты онибок:

- слишком мал размер буфера для фиксированных полей;
- устройство не найдено;
- спецпроцессор не найден;
- сбой в обмене данными с удаленным спецпроцессором.

Вызов процедуры NETBIOSOPEN

Назначение: Получает handle для отправки управляющей программе NETBIOS.

Описание

          Вызов этой процедуры создает handle для отправки Блоков управления сетью (NCB) в управляющую программу (драйвер) NETBIOS. Программа может определить, какими эти имена являются, путем вызова NETBIOSENUM. Нулевая (пустая) строка может быть использована как имя устройства для скрытой ссылки на первую установленную управляющую программу NETBIOS.

NETBIOSOPT определяет открытые опции, которые включают в себя:

Режим доступа: 1. Обычный (регулярный)
(mask 0x3) 2. Привилегированный
3. Исключительный
          Режим доступа определяет каким образом пользователь хочет разделить доступ к управляющей программе NETBIOS с другими процедурами. В регулярном режиме драйвер (управляющая программа) может быть открыт любым количеством процедур. Помимо этих процессов, еще один процесс может открывать драйвер в привилегированном режиме. Один и только один процесс может открывать драйвер в исключительном режиме. В зависимости от режима доступа операции Блока управления сетью (NCB) ограничены.

Режим Описание

          Регулярный Не позволяет переустанавливать, получать широковещательные дейтаграммы, получать "от любого к любому" Блоки управления сетью (NCB), или использовать постоянные
имена в любом Блоке управления сетью (NCB).

          Превилеги- Не позвроляет переустанавливать или полурованный чать NCB "от любого к любому".

Исключительный Позволяет выполнять любые операции NCB.

Условие вызова

int far pascal netbiosopen (netbiosname, netreserved,
netopenopt, nethandle)
char far * netbiosname; /* Name of NETBIOS network */
char far * netreserved; /* reserved pointer; must be 0 */
unsigned short netopenopt; /* open options */
int far * nethandle; /* word for returned handle */

Возврат ошибки

Функция возвращает 0, если все нормально. Возможными возвратами ошибок являются:

- Управляющая программа (драйвер) NETBIOS не существует;
- неверная опция;
- открытый режим противоречит существующему;
- недоступны ресурсы системы.

HANDLES NETBIOS являются связями процесс-драйвер. Только тот процесс, который создал данный драйвер, может его использовать.

Вызов процедуры NETBIOSCLOSE

Назначение: Закрывает handle драйвера NETBIOS.

Описание

          Вызов этой процедуры завершает доступ к драйверу NETBIOS, делает "ошибочным" handle и отменяет все Блоки управления сетью, вызванные процессом, который создал данный идентификатор.

Условие вызова

int far pascal netbiosclose (nethandle, netreserved)
int nethandle; /* handle to close */
short netreserved; /* reserved, must be zero */

Возврат ошибки

Функция возвращает 0, если все нормально. Возможные возвраты
ошибок:

- неверный handle.

Вызов процедуры NETBIOSSUBMIT

Назначение

          Передает Блок управления сетью (NCB) драйверу NETBIOS. handle 0 относится к первому установленному драйверу NETBIOS. Этот драйвер автоматически подвергнут действию процедуры NETBIOSOPEN при необходимости (в регулярном режиме) сразу же, как только вызов NETBIOS обратится к нему используя идентификатор 0.

          NETNCB указывает на Блок управления сетью (NCB), который должен быть выполнен (несцепленный NCB) или на слово-связку, предшествующее NCB (сцепленный NCB).

NETNCBOPT определяет опции обработки NCB, которые включают:

Сцепление: 0 отдельных NCB передается
(mask 0x3) 1 отдельный NCB с повторением при ошибке
2 NCB сцепливаются с продолжением при ошибке
2 NCB сцепливаются с остановкой при ошибке

          Опции сцепления определяют, передается ли отдельный NCB или цепочка NCB. Отдельный Блок NCB может быть выполнен с опцией повторной передачи при ошибке, - в этом случае ядро сети выдает NCB установленное количество раз в ответ на следующие ошибки:

09H - нет доступных ресурсов;
12H - отказано в открытии сеанса;
21H - занят интерфейс.

          Сцепленные NCB должны быть в одном и том же сегменте и должны быть связаны 16-битовым указателем смещения, который предшествует NCB. Смещение 0xFFFF определяет конец сцепливания.

          Хотя может быть сцеплена любая последовательность команд NCB, не все возможности являются приемлимыми. Например, Вы не можете открыть сеанс и послать пакет данных по нему, связав команды SEND и CALL. Поле NCB_LSN, возвращенное по команде CALL NCB, должно быть скопировано в SEND NCB - ядро сети не поддерживает этого автоматически. Блоки управления сетью (NCB) в цепочке "с продолжением при ошибке" выполняются независимо один от другого, и вне зависимости от ошибок в цепочке; подобная цепочка просто обеспечивает быструю передачу набора Блоков NCB драйверу. Блоки, которые не были обработаны вследствие ошибки ранее в цепи, будут иметь свое поле NCB-CMD-CPLT установленное как 0xB (Команда отменена). Этот тип цепочки обычно должен иметь только режим ожидания. Неожидаемые Блоки NCB принимаются, но в этом случае именно немедленный (а не конечный) возврат определяет, продолжится или остановится процесс.

Условие вызова

int far pascal netbiossubmit (nethandle, netncbopt, netncb)
int nethandle; /* handle to issue ncb against */
unsigned short netncbopt; /* option flags */
struct ncb far * netncb; /* Address of NCB */

Функция возвращает 0, если все нормально. Возможными возвратами ошибок являются:

- неверный handle;
- неправильные опции;
- отказано в доступе;
- недоступны ресурсы драйвера;
- определенные NETBIOS коды немедленного возврата
(неожидаемый NCB);
- определенные NETBIOS коды конечного возврата
(режим ожидания NCB).

[начало] [оглавление]


Функционирование

          Ядро Сетей Microsoft (Microsoft Networks), используемое Администратором ЛВС (LAN Manager), поддерживает несколько управляющих программ (драйверов) NETBIOS посредством рассмотрения каждой как поименованного устанавливаемого драйвера устройства, который может быть открыт и закрыт. Прикладные программы, использующие один и тот же драйвер NETBIOS, могут получать совместный доступ к именам и сеансам, которые они создали, просто путем передачи номера имени или сеанса другому процессу. Это позволяет другим процессам посылать и получать данные от имени процессов-"владельцев", или же высвобождать совместно используемые имена и сеансы.

          В защищенном режиме Блоки управления сетью (NCB) NETBIOS обрабатываются также, как и под управлением MS-DOS 3.X, посредством прерывания 5C и 2A, за исключением следующего:

1. Поле NCB_POST@ теперь содержит handle семафора системы, а не подпрограмму асинхронной нотификации (объявления). Ядро сети освободит этот семафор, когда завершится режим неожидания NCB.Иденhandle семафора, равный 0, считается пустым и не освобождается.

2. Поля NCB_POST@ и NCB_BUFFER@ временно изменены ядром сети во время обработки Блока управления сетью (NCB). Прикладные программы не должны зависеть от величин этих полей, пока не будет завершен NCB.

3. Некоторые функции NCB не разрешены, в зависимости от режима доступа, определенного вызовом NETBIOSOPEN.

4. Процессы могут коллективно использовать ресурсы NETBIOS, которыми они располагают, просто путем передачи номеров требуемых имен и сеансов другим процессам (как об этом сказамно выше). Получающие процессы просто используют номера общих имен или сеансов в Блоках управления сетью (NCB), которые они создают. Такие процессы должны, безусловно,послать Блоки NCB против handle, которые они сами создали (процедурой NETBIOSOPEN), в этот же драйвер.

[начало] [оглавление]


Программа ЛВС ПЭВМ

          Программа ЛВС ПЭВМ IBM (IBM PC LAN Program), ранее носившая имя Программа Сети ПЭВМ IBM (IBM PC Network Program) была первоначально предназначена для работы с DOS 3.1 и Сетью ПЭВМ IBM (IBM PC Network) с модулированной передачей. Программа ЛВС ПЭВМ требует поддержки NETBIOS посредством Служебной Программы ЛВС ПЭВМ (PC LAN Support Program) и DOS 3.2 или выше, для работы в ЭКС Token-Ring.

          Программа ЛВС ПЭВМ (PC LAN Program) состоит из одного большого файла, который может быть вызван одним из четырех способов: пользователь выполняет команду NET START,а затем определяет переадресатор, получатель, отправитель или спецпроцессор. Первые три варианта (переадресатор,получатель, отправитель) предназначены для рабочих станций, а последний (спецпроцессор) является неспециализированным файловым процессором/процессором печати, который работает как фоновая задача на рабочей станции. На рис. 6-2 показан образец такой реализации, где одна ПЭВМ служит как файловый процессор, а другая - как процессор печати.

          Наиболее традиционный способ построения сети - с помощью переадресатора. Он перехватывает ввод/вывод диска и печатающего устройства рабочей станции и посылает его на спецпроцессор; пользователи также могут посылать сообщения на другие машины. Получатель, отправитель и спецпроцессор делают то же, что и переназначатель, но со следующими добавлениями: получатель получает и регистрирует сообщения на любом устройстве или файле; отправитель позволяет пользователю передавать файлы; спецпроцессор позволяет совместно использовать жесткие диски и печатающие устройства.

          Процедура установки управляется меню. Если установка произведена, с Программой Сети ПЭВМ (PC Network Program) можно работать либо набирая команды на клавиатуре по подсказке DOS, либо с помощью меню.

          Первоначальная версия программы ЛВС ПЭВМ подверглась жесткой критике - главным образом из-за проблем, связанных с производительностью. Эта проблема обусловлена тем, что, в отличие от NetWare фирмы Novell, Программа ЛВС ПЭВМ основывается на DOS для работы с файлами и печатью. Но с совершенствованием операционной системы и появлением OS/2, эта проблема потеряла свою остроту. Например, DOS 3.3 имеет дополнительно таблицу размещения записей файла (FAT) (команду FASTOPEN). Весия 1.3 Программы ЛВС ПЭВМ (PC LAN Program) имеет следующие свойства, которые облегчили по сравнению с первоначальной версией этой программы и проблему управления: контролируемый паролем доступ к спецпроцессору; централизированное определение ресурсов и управление ими, включая установку времени/даты на главном спецпроцессоре для синхронизации даты и времени на всех спецпроцессорах и рабочих станциях, для управления печатью, определения пользователей и привилегий, а также для управления меню выбора прикладных программ для отдельных пользователей; доступ администратора к ресурсам с любой рабочей станции, поддержка для удаленной загрузки программ и операционной системы (т.е. поддержка для рабочих станций, не имеющих дисков); возможность просматривать начавших сеанс пользователей, и, наконец, выбор печати, очередность и отображение состояния для удаленных рабочих станций. Версия 1.3 также обладает повышенной производительностью работы.

[начало] [оглавление]

 

Спецпроцессор ЛВС

          Спецпроцессор ЛВС OS/2 IBM (LAN Server) использует NETBIOS для обмена данными (коммуникации) в ЛВС. Спецпроцессор обеспечивает, как для прикладных программ DOS (посредством Программы ЛВС ПЭВМ), так и для прикладных программ OS/2, совместное использование ресурсов - дисков, печатающих устройств и подсоединенных устройств, плюс средства для определения, управления и руководства доступом к ресурсам ЛВС, наряду с повышенной защитой и управлением печатью (до восьми печатающих устройств). Эти преимущества сходны с теми, которые обеспечиваются Программой ЛВС ПЭВМ (PC LAN Program), за исключением того, что защита файлов снижена до файлового уровня. Для работы Спецпроцессора ЛВС требуется Расширеная версия OS/2 (Extended Edition). Спецпроцессор ЛВС также обеспечивает удаленнрое выполнение программ.

          Часть программного обеспечения Спецпроцессора ЛВС бала создана фирмой Microsoft (в основном переадресатор). Фирма IBM не реализовала многие из Интерфейсов прикладного программирования (API) Microsoft в Администраторе ЛВС (LAN Manager), в частности, Средства межпроцессовой коммуникации, которые несовместимы с Прикладной архитектурой систем (Systems Application Architecture - SAA). Вместо этого, для разработки распределенных прикладных программ необходимо использовать APPC/PC (Перспективное межпрограммное взаимодействие/ПЭВМ), включенное вместе с Расширеной Версией OS/2, особенно в ЭКС Token-Ring со смешанными ЭВМ. Для ЛВС ПЭВМ эта проблема не столь остра - в них можно использовать Администратор ЛВС или другие продукты на основе спецпроцессора, чтобы обеспечить совместимость продуктов. Крупные фирмы, такие как 3Com, Banyan и Novell, предлагают, по меньшей мере, некоторый уровень совместимости (как, например, APPC) с Расширенной Версией OS/2 и Спецпроцессором ЛВС OS/2.

          Таким образом, создается впечатление, что компания IBM рассматривает Спецпроцессор ЛВС как средство перехода от DOS к OS/2. В этом убеждает и тот факт, что Спецпроцессор ЛВС работает под управлением OS/2 и обслуживает как Программу ЛВС ПЭВМ (PC LAN Program) на основе DOS, так и эмулятор NETBIOS OS/2.


Предыдущая страница    |    Следующая страница


Добавить в избанное Обсудить в форуме Написать автору сайта Версия для печати

Опрос

Конкурсы
Реклама

 

Web дизайн: Бурлаков Михаил    

Web программирование: Бурлаков Михаил

Используются технологии uCoz