|
|||||||||||||||||||
|
Сетевая базовая система ввода-вывода (NETBIOS)Глава 1: ВведениеИсторическая справкаСетевая базовая система ввода-вывода (NETBIOS) представляет собой высокоуровневый интерфейс программирования для локальных вычислительных сетей (LAN) IBM. Он был создан фирмой Sytek.Inc для широкополосной Сети IBM PC. Основу NETBIOS составляют три продукта: кольцевая сеть с эстафетной передачей (Token-Ring),эмулятор NETBIOS (который позволяет работать с прикладными программами, первоначально созданными для Сети ПЭВМ (PC Network), в кольцевой сети с эстафетной передачей - Token-Ring) и Служебная программа ЛВС ПЭВМ (PC LAN Support Program). Последняя включает в себя управляющую программу (драйвер) NETBIOS. Слцужебная программа ЛВС ПЭВМ объединяет эмулятор NETBIOS для работы в Сети ПЭВМ (PC Network) с модулированной передачей, Сети ПЭВМ (PC Network) с немодулированной передачей, а также адаптеры Noken-Ring. Эта программа действует на компьютерах серии Personal System/2. Многие разработчики программного обеспечения для локальных вычислительных сетей (ЛВС) ожидают, чтобы NETBIOS под управлением DOS 3.Х (здесь и далеее: 3.Х означает версия 3.1 или более поздняя) стал стандартным интерфейсом для ЛВС ПЭВМ (PC LAN), что остановило бы распостранение нестандартных, "индивидуальных" интерфейсов и протоколов, таких как, например, Сетевые системы Ксерокс (Xerox Network Systems (XNS), Протокол управления передачей ARPANET (Transmission Control Protocol), Межсетевой протокол ARPANET (Internetwork Protocol) - TCP/IP. NETBIOS не стал бы фактическим стандартом для ЛВС ПЭВМ, если бы он не был предложен IBM. Вследствие того, что NETBIOS был создан как открытый интерфейс в сети ПЭВМ IBM, он все-таки может стать стандартом, по крайней мере как интерфейс сеансового уровня (это пятый уровень взаимодействия компонентов сети в модели соединения открытых систем; подробно см. далее). Однако, несмотря на широкое распостранение NETBIOS, он еще не стал стандартом.
Определение протокола Протоколы представляют
собой просто набор условий (правил),которые регламентируют формат
и процедуры обмена информацией между двумя или несколькими независимыми
устройствами или процессами. Протокол имеет три важнейших элемента:
синтаксис, семантику и синхронизацию (timing). Синтаксис протокола
определяет поля; например, может быть 16-байтовое поле для адресов,
32-байтовое поле для контрольных сумм и 512 байт на пакет. Семантика
протокола придает этим полям значение: например, если адресное поле
состоит из всех адресов, это "широковещательный" пакет.
Синхронизация - количество битов в секунду - это скорость передачи
данных. Она важна не только на самых низких уровнях протокола, но
и на высших. Существует несколько проблем, связанных с транспортными протоколами. Одна из них заключается в структуре адресации: должна ли она быть простой (одна область адресации для взаимосвязанной системы) или иерархической (древовидная структура адресов такая, как сеть, станция или гнездо в станции)? Что представляет собой область адресации системы - сколько узлов или ПЭВМ могут логически быть адресованы в системе? Количество ПЭВМ, подключаемых к системе намного меньше,чем область адресации. Каков должен быть размер единицы данных? В этом вопросе необходимо компромиссное решение, потому что большие единицы данных могут "покоробить" систему, а передача маленьких единиц может быть неэкономична. Имеет ли система некоторый способ контроля ошибок? Если происходят какие-либо неполадки,сможет ли система протоколов показать, в чем состоит проблема, и сможет ли она исправить эту ошибку? Каким образом синхронизируются пакеты в уровнях протокола? Предположим, что-то неисправимо повредило чей-либо пакет данных или записало в неправильный файловый процессор - будет ли обеспечена защита? Имеется ли управление протоколами для контроля распределения ресурсов и анализа производительности системы? Как мы увидим далее, NETBIOS удовлетворяет многим, но не всем этим требованиям. Сеть ПЭВМ и кольцевая сеть с эстафетной передачей Прикладные программы,написанные в NETBIOS для Сети ПЭВМ (PC Network), будут работать с эмулятором кольцевой эстафетной сети (Token-Ring), но эти две сети по-разному реализуют свои протоколы. Например,прикладные программы NETBIOS, предлагаемые IBM, включают Программу ЛВС ПЭВМ IBM (PC LAN), Спецпроцессор асинхронной связи и Программу SNA 3270 (сетевая архитектура систем). Важное различие заключается в том, что NETBIOS в Сети ПЭВМ полностью содержится на Адаптере сети ПЭВМ, в то время как в эстафетной кольцевой сети (Token-Ring) он полностью содержится в самой рабочей ПЭВМ. Также учтите, что в реализации эстафетной кольцевой сети не имеется ни сетевого, ни транспортного уровня протокола. Существуют разногласия по поводу того, может ли реализация эстафетной кольцевой сети (Token-Ring) действовать столь же эффективно без специализированного со-процессора NETBIOS. Испытания, произведенные IBM, показали по меньшей мере двукратное увеличение производительности Token-Ring с эмулятором Token-Ring NETBIOS. СЕТЬ ПЭВМ ЭКС ПЭВМ (Token-Ring) ----------------------------------------------------------------- ----------------------------------------------------------------- --------------------------- Рис1-2. Реализация NETBIOS. ПРИМЕЧАНИЕ: Здесь и далее: "ЭКС" - эстафетная кольцевая сеть (Token-Ring) CSMA/CD - Множественный доступ с контролем несущей и обнаружением конфликтов LLC - Управление логическим каналом MAC - Управление доступом к носителям
Программа ЛВС IBM PCПрограмма "Локальная вычислительная сеть ПЭВМ IBM" (IBM PC LAN Program) (бывшая Программа Сети ПЭВМ IBM ) (IBM PC Network Program) является примером прикладной программы, которая основывается для своей работы на NETBIOS. Она реализует протокол "Блок сообщения спецпроцессора" (SMB). Программа ЛВС ПЭВМ IBM дает пользователю функции рабочей станции (переадресатор, получатель и отправитель сообщений) и неспециализированные функции спецпроцессора (функции рабочей станции и спецпроцессора). Переадресатор (созданный Microsoft и включенный IBM в Программу ЛВС ПЭВМ ) перехватывает запросы из DOS с целью определения, предназначен ли запрос отдаленному ресурсу. Получатель позволяет рабочей станции получать текстовые сообщения от других пользователей, а отправитель - посылать сообщения другим пользователям. Спецпроцессор является неспециализированным файловым процессором, который позволяет пользователю совместно с другими пользователями в сети использовать жесткие диски и печатающие устройства, относящиеся к его/ее ПЭВМ.
Проект стандарта OSI - Соединение открытых системРассматривая NETBIOS, будет полезно изучить предложенный Международной организацией по стандартизации проект стандарта взаимодействия открытых систем. Эта модель представляет собой архитектуру соединения и взаимодействия вычислительной техники в неоднородной среде. Модель охватывает не только ЛВС, но и другие сети, например сети типа Х.25 - ARPANET, TELENET и сети больших ЭВМ. Большинство комитетов по стандартизации, включая Институт инженеров по электротехнике и радиоэлектронике (IEEE) и ИСО (Межународную организацию по стандартизации) создали специальную семантику и синтаксис протоколов для реализации различных уровней. Модель ИСО представлена семью уровнями протокола, как это показано на рис.1-3. Каждый уровень обслуживает непосредственно расположенный над ним и базируется на лежащем под ним уровне (за исключением, естественно, самого нижнего уровня - физического). Ниже кратко описываются каждый из этих уровней. Первый уровень - физический. Он состоит из потока бит, посылаемых и получаемых из сети данных. В него входит скорость передачи (2,5 мегабайт/сек в Сети ПЭВМ, 4 мегабайт/сек в ЭКС Token-Ring) и схемы кодирования (обе сети используют кодирование Manchester, сеть ПЭВМ - в канале модулированной передачи, ЭКС - в канале немодулированной передачи). Второй уровень - канальный. Этот уровень определяет значение структуры потока бит. Формат пакета, который описывает второй уровень, передается в сети, используя услуги первого уровня. ЭКС использует протокол управления логическим каналом (LLC) - IEEE 802.2 и протокол управляющей процедуры (DLC) IEEE 802.5. Третий уровень - сетевой. Он ответственен за маршрутизацию и коммутацию данных в ЛВС и взаимосвязанных ЛВС. Он должен распознавать адреса в сети и осуществлять маршрутизацию информации (пакетов) в соответствующих сетях или передавать их на транспортный уровень для дальнейшей интерпретации. Третий уровень - одно из слабых мест в NETBIOS. При создании NETBIOS не учитывалась возможность его работы в условиях взаимодействия сетей, поэтому в нем отсутствуют свойства, необходимые для эффективного поддержания этой функции. Сетевое взаимодействие между Сетью ПЭВМ и ЭКС Token-Ring, (поддерживаемое Программой соединения IBM) (IBM Interconnect Program), осуществляется прикладной программой, которая резидентно находится в ПЭВМ в качестве шлюза и передает имена между системами и пакеты между сеансами (способом передачи с буферизацией). Заметьте, чтоПрограмма соединения IBM может соединять только две ЛВС. Четвертый уровень - транспортный. Он несет ответственность за надежную передачу информации между станциями в сети. Этот уровень реализует такие свойства, как квитирование, номера последовательности (упорядочение) и истечение времени ожидания события. В Сети ПЭВМ (с модулированной передачей) NETBIOS использует специальные протоколы Sytek для реализации транспортных протоколов. Пятый уровень - сеансовый - является самым высоким для NETBIOS. На этом уровне происходит взаимодействие между NETBIOS и рабочей ПЭВМ. Сеансовый уровень поддерживает идентификацию (поименование) и устанавливает сеансы или логические каналы между двумя именами в сети или даже двумя именами в ПЭВМ. Как и сетевой и транспортный уровень, сеансовый уровень в NETBIOS является собственной (специфичной) реализацией. Интерфейс для NETBIOS представляет собой бесплатную открытую информацию, и многие фирмы-продавцы программного обеспечения, такие как Novell или 3Com предлагают для своих сетей эмуляторы NETBIOS. Так как интерфейс для рабочей ЭВМ остается тем же, для фактических равноправных протоколов в уровнях могут быть использованы любые протоколы. Шестой уровень - уровень представления данных. Он не входит в NETBIOS. Этот уровень ответственен за согласование синтаксиса, который будет использован при передачи информации в и из прикладного (седьмого) уровня. Уровень представления данных включает форматы символов, например, EBCDIC и другие форматы для представления чисел или файловых форматов. Он может осуществлять преобразование , если формат прикладного уровня несовместим с форматом прикладного уровня другой ПЭВМ или услуги в сети. Уровень представления в Сети ПЭВМ или в ЭКС виртульно является несуществующим. До некоторой степени, PC-DOS является частью этого уровня, т.к. она представляет собой формат, используемый для взаимодействия с прикладными программами. Однако, PC-DOS не способна узнавать формат других файлов или символов, отличных от ее собственных. Седьмой уровень - прикладной. Он несет ответственность за предоставление конечному пользователю услуг. Примерами прикладных программ являются Программа ЛВС ПЭВМ IBM и Программа соединения IBM PC (см.выше). Программа ЛВС ПЭВМ IBM основывается на PC-DOS 3.Х и NETBIOS. Она дает оконечному пользователю услуги печати и файла в сети.
------------------- ------------------- Рис 1-3. Проект стандарта соединения открытых систем.
Обмен данными между уровнямиВ модели взаимодействия открытых систем каждый уровень обменивается данными с уровнем, лежащим ниже его; добавляется заголовок сообщения, а затем пакет данных передается следующему уровню. Этот процесс продолжается до тех пор, пока пакет не достигнет физического уровня. Тогда оформленный пакет целиком посылается в сеть в виде потока бит. Когда поток бит достигает получающего узла, он становится неоформленным на канальном уровне. Если этот уровень узнает пакет данных, и адрес указан правильно, он передаст пакет вверх следующему уровню. Данный процесс продолжается, пока пакет данных не достигнет прикладного уровня. Хотя и возможно посылать тысячи байт данных в секунду через физический и канальный уровень, реальный объем посылаемых данных невелик, вследствие оформления и добавления заголовков.
Взаимодействие уровнейКак показано на рис.1-4, уровень "N" взаимодействует с уровнями "N-1" и "N+1" посредством параметров, которые посылаются в и из этих уровней. Каждый уровень предоставляет лежащему выше уровню услуги. Протоколы усиливают равноправный обмен данными внутри уровня протокола: каждый объект уровня обменивается данными с объектом другого уровня. Уровень протокола передает пакет лежащему под ним уровню, до тех пор, пока он не пройдет через сеть и получающий узел. Уровень "N" знает только то,что происходит на уровнях "N-1" и "N+1". Это означает,что разработчики системы могут легко изменять уровни протокола для приспособления к новым стандартам и новым протоколам, так как они в минимальной степени влияют на систему. Коллективное использование информации в ЛВС на основе NETBIOS требует наличия трех важнейших элементов программного обеспечения: 1). PC-DOS 3.Х; 2). самого NETBIOS; 3). подпрограммы переадресатора сообщений. На рис 1-5 показан способ соединения этих трех компонентов в систему. NET, доступный из прикладной программы или программы переназначения через прерывание 2AH, является частью Программы ЛВС ПЭВМ IBM. Полная реализация Программы Сети ПЭВМ показана на правой стороне рисунка; файловый процессор и процессор печати показаны на заднем плане. Прикладная программа может выполнять одну из трех операций, касающихся сети: пользовательская прикладная программа (например,система подготовки текстов) вызовет DOS и заставит подпрограмму переадресатора послать ввод-вывод в/из спецпроцессора через программу NET; многопользовательская система подготовки текстов будет использовать вызовы расширенной версии DOS для блокировки/разблокировки файлов; специализированная прикладная программа спецпроцесора вызовет NETBIOS непосредственно, используя прерывание 5CH. Четвертая опция для прикладной программы - непосредственно вызвать файловый процессор/процессор печати (если он реализован) через Программу ЛВС ПЭВМ, используя прерывание 2AH или 2FH. Краткий обзор функций, продоставляемых прерываниями 2FH, 21H и 2AH дан на рис.1-6. В последующих главах будет подробно описано прерывание 5СH NETBIOS. Регистр AX
----------------------------------------------- Прерывание 2A ----------------------------------------------- Прерывание 21 -----------------------------------------------
Реализации NETBIOSВажно учесть, что опцией NETBIOS, доступной для ЭКС Token-Ring,является эмуляция NETBIOS, содержащаяся на оригинальной плате Адаптера Сети ПЭВМ. Следовательно, хотя фактические используемые на разных уровнях протоколы могут быть различными в ЭКС (Token-Ring, к примеру) и Сети ПЭВМ, пользователь или программист видит ОДИНАКОВЫЕ интерфейсы и работу системы, за исключением того, что время получения ответа в ЭКС Token-Ring меньше. В ЭКС Token-Ring рабочий процессор должен оперировать протоколами, в то время как в Сети ПЭВМ IBM (IBM PC) процессор на плате 80188 выполняет обработку протоколов. Интересно, что проверка работы NETBIOS на обеих сетях показала, что производительность (скорость передачи данных) в ЭКС Token-Ring в два раза выше, чем в сети ПЭВМ. Это обусловлено потерями между четыремя микропроцессорами в Адаптере Сети ПЭВМ и способом программирования оригинальных протоколов NETBIOS. Рабочая ЭВМ осуществляет обмен данными с NETBIOS через Блок управления сетью (NCB) (также именуемый Блоком управления сообщений в Справочном руководстве по Адаптеру сети ПЭВМ IBM Token-Ring). Об этом блоке в деталях будет рассказано в Главе 2. Если этот блок установлен рабочей ЭВМ, он прерывает NETBIOS для услуги. Затем NETBIOS вызывет услугу, запрошенную рабочей ЭВМ (хотя некоторые услуги, например, запрос на выполнение местного диагностирования или на получение адреса адаптера, могут и не потребовать протоколы). На практике, NETBIOS вызывает два уровня протокола - сеансовый и канальный (уровни 5 и 2 в модели соединения открытых систем). В данной реализации NETBIOS фирмой Sytek, рабочая ЭВМ осуществляет обмен данными только с сеансовым уровнем, но в действительности некоторые запросы просто передаются канальному уровню. Канальный уровень предоставляет
Сети ПЭВМ или ЭКС Token-Ring протокол доступа к каналу (LAP в терминологии
сети ПЭВМ). В этом заключается существенное различие между двумя сетями
в отношении реализации NETBIOS. ЭКС Token-Ring обеспечивает управляющую
процедуру (DLC) стандарта IEEE 802.2 и управление доступом к носителям
(MAC) стандарта 802.5 - вызовы NETBIOS непосредственно переводятся
в кадры 802.2 и 802.5, обходя любые сетевые или Сеть IBM PC обеспечивает собственную управляющую процедуру (DLC) и управление доступом к носителям (MAC) стандарта 802.5 (Множественный доступ с контролем несущей и обнаружением конфликтов -CSMA/CD и формат кадра). Протокол доступа к каналу Сети ПЭВМ (LAP) предоставляет услугу для протокола передачи пакетов (PTP). Этот протокол реализует сетевой уровень в Сети ПЭВМ и обеспечивает маршрутизацию, обнаружение адреса и услугу по передаче неквитированных пакетов (дейтаграмм). Протокол передачи пакетов (PTP) используется протоколом надежного потока (RSP) и транспортным протоколом дейтаграмм (DTP). Протокол передачи пакетов (PTP) является слабым местом в оригинальной Сети ПЭВМ, потому что функция маршрутизации представляет собой простейшую схему установки соответствия между именами. Этот протокол не располагает средствами для реализации межсетевого взаимодействия,что затрудняет создание шлюзов между двумя сетями и делает эти шлюзы функционально ограниченными. Например, Программа соединения Сети ПЭВМ с ЭКС может соединить две сети вместе, но максимальное количество услуг между ними будет равно всего 16. Протокол надежного потока (RSP) Сети ПЭВМ находится на транспортном уровне. Он обеспечивает безошибочные виртуальные услуги связи с другими пользователями через сквозное квитирование и повторную передачу. Этот протокол предоставляет протоколу управления сеансами (SMP) услуги транспортного уровня. Транспортный протокол дейтаграмм (DTP) также находится на этом уровне. Он обеспечивает услуги квитированных дейтаграмм между объектами сеансового уровня, включая протокол пользовательских дейтаграмм (UDP) и протокол управления и диагностирования (DMP). Сеансовый уровень дает рабочий доступ к нескольким протоколам. Протокол управления сеансами (SMP) обеспечивает поддержку пользовательских сеансов между узлами. Этот протокол позволяет пользователям устанавливать связь с именованным процессом. Он ответственен за взаимодействие с протоколом управления именами (NMP) в пределах местного узла с целью определения адреса именованного процесса. Если начальный протокол управления сеансами установит узел назначения, он может обмениваться данными с этим протоколом внутри узла назначения с целью предоставления услуг сеансового уровня. Кроме поименования протокол пользовательских дейтаграмм (UDP) обеспечивает поддержку для дейтаграмм между двумя именами (узлами). Протокол управления именами сети ПЭВМ (NMP) осуществляет связывание "родственнных" узлов и адресов сети внутри всей локальной сети. Этот протокол (NMP) предоставляет все виды услуг по управлению именами,включая переадресацию удаленных имен в адреса сети. Функционирование этой части протокола служит одной из причин того, что в начале работы требуется довольно длительное время, чтобы стать частью сети NETBIOS - узел будет передавать свое имя многократно, пока не "удостоверится", что все прочие станции получат это имя. Это также происходит и в том случае, когда протокол управления сеансами (SMP) устанавливает связь с другим именем. Одним из наиболее интересных протоколов сети ПЭВМ является протокол управления и диагностирования (DMP). Он предоставляет информацию по состоянию (статусу) и диагностике. Этот протокол может через сеть запрашивать другие платы адаптера с целью выяснения их статуса/состояния.
Версии NETBIOSВерсии NETBIOS до появления Служебной программы ЛВС IBM (так называемая Support Program IBM LAN) были обозначены как "Версии номер 1.Х". Служебная программа ЛВС IBM, версия 1.00, имеет версию NETBIOS 2.0; служебная программа, версия 1.01, - версию NETBIOS 2.1, а служебная программа, версия 1.02, версию NETBIOS 2.2. Эта информация важна, так как позднее мы будем рассматривать дополнительные команды и функции, включенные в последние версии. NETBIOS ИЛИ APPC/PC ? Подобно большинству высокоуровневых протоколов, NETBIOS не зависит от аппаратного обеспечения, что позволяет использовать его на разнообразных системах. Однако, в связи с введением IBM для ЭКС Token-Ring Перспективной системы межпрограммного взаимодействия для ПЭВМ ("Advanced Program-to-Progran Communication", "APPC/PC"), будущее NETBIOS представляется неопределенным. Важность APPC для разработчиков прикладных программ для ЭВМ IBM весьма велика, потому что фирма IBM предлагает свою новую систему для каждой большой компьтерной серии, активно рекламиуя ее как "открытый" интерфейс. Расширенная версия OS/2 для PS/2 включает в себя APPC/PC. Преимуществом NETBIOS является то, что он уже установленна сотнях ЛВС ПЭВМ, в то время, как APPC/PC придется догонять NETBIOS в период с 1988 по 1990 год. Кроме того. NETBIOS имеет еще одно достоинство, - оно заключается в том, что APPC содержит протоколы сетевой архитектуры систем (SNA), которые потребляют большую часть ресурсов системы (ОЗУ + ЦПУ). Для ПЭВМ эти расходы будет необходимо снизить; причем данную проблему можно решить, при условии широкого использования более мощных ЭВМ серии PS/2 или совместимых с ними. Разработка прикладных программ для NETBIOS в ЭКС потребует интерфейса со спецпроцессорами и щлюзами в "стиле" ПЭВМ (смотри Главу 5). Однако, это также означает, что такие прикладные программы, возможно, не будут подходить для других больших систем, которые IBM поддерживает в ЭКС, например System/36 и 9370. В стратегическом отношении APPC превосходит NETBIOS, который расчитан на тактическое (ближайшее) применение, если только IBM не разработает эмулятор NETBIOS для неперсональных ЭВМ, что, впрочем, представляется маловероятным. Как считает IBM, назначение APPC состоит в том, чтобы стать "одной архитектурой для межпрограммного взаимодействия программ общего назначения"; кроме того, APPC должна обеспечивать универсальную связь (соединение), т.е. соединять "все со всем". Более того, стоимость установки APPC невелика, а функциональность - высока. APPC является основой для разработки распределенных прикладных программ. Подведя итог, можно сказать следующее: используйте NETBIOS для проддержки традиционных прикладных программ для ПЭВМ, а APPC/PC для прикладных программ взаимодействия ПЭВМ с большой ЭВМ и прикладных программ взаимодействия равноправных ЭВМ; либо применяййте NETBIOS для ЛВС только персональных компьютеров, а APPC/PC для смешанных сред, которые поддерживают прикладные программы IBM рабочей ЭВМ, например программы, попадающие в разряд Прикладной архитектуры систем (SAA) IBM. Предыдущая страница | Следующая страница |
|
Web дизайн: Бурлаков Михаил
Web программирование: Бурлаков Михаил