NetBIOS

API, позволяющий приложениям на отдельных компьютерах обмениваться данными по локальной сети через сеансовый уровень

NetBIOS ( / ˈ t b ɒ s / ) — аббревиатура от Network Basic Input/Output System ( Сетевая базовая система ввода-вывода) . Она предоставляет службы, связанные с сеансовым уровнем модели OSI, позволяя приложениям на отдельных компьютерах взаимодействовать через локальную сеть . Как строго API , NetBIOS не является сетевым протоколом . Операционные системы 1980-х годов (в первую очередь DOS и Novell Netware) запускали NetBIOS через IEEE 802.2 и IPX/SPX с использованием протоколов NetBIOS Frames (NBF) и NetBIOS через IPX/SPX (NBX) соответственно. В современных сетях NetBIOS обычно работает поверх TCP/IP через протокол NetBIOS через TCP/IP (NBT). NetBIOS также используется для идентификации имен систем в TCP/IP (Windows).

История и терминология

NetBIOS — это API уровня операционной системы, который позволяет приложениям на компьютерах взаимодействовать друг с другом через локальную сеть (LAN). API был создан в 1983 году компанией Sytek Inc. для программного взаимодействия через технологию IBM PC Network LAN. [1] В IBM PC Network , как API, NetBIOS опирался на фирменные сетевые протоколы Sytek для взаимодействия по проводам. [2]

В 1985 году IBM пошла дальше с сетевой схемой Token Ring и выпустила эмулятор NetBIOS API компании Sytek, чтобы позволить приложениям NetBIOS из эпохи PC-Network работать через новое оборудование IBM Token Ring. Этот эмулятор IBM, названный NetBIOS Extended User Interface (NetBEUI), расширил базовый NetBIOS API, созданный Sytek, помимо прочего, возможностью работать с большей пропускной способностью узлов Token Ring. Одновременно IBM выпустила новый сетевой протокол NBF , чтобы позволить своему NetBEUI API (их улучшенному NetBIOS API) предоставлять свои услуги через Token Ring, в частности, на уровне IEEE 802.2 Logical Link Control .

В 1985 году Microsoft создала собственную реализацию API NetBIOS для своей сетевой технологии MS-Net . Как и в случае с Token Ring от IBM, услуги реализации NetBIOS от Microsoft предоставлялись через уровень управления логическими связями IEEE 802.2 по протоколу NBF. [3] Однако MS-Net поставлялась только OEM-производителям и фактически не была законченным продуктом, а также не была готова к общению в сети в той форме, в которой распространялась. В ней отсутствовала реализация уровней OSI с 1 по 4 ( физический , канальный , сетевой и транспортный уровни), и ожидалось, что OEM-производитель предоставит эти реализации (в виде части NetBIOS), чтобы сделать свою версию MS-Net законченным и готовым к использованию продуктом. MS-Net получал доступ к сети через собственный вариант NetBIOS от Microsoft, который был разделен на две части: часть нижнего уровня, которую должны были предоставить OEM-производители, реализовывала вызовы NetBIOS, зависящие от уровней 1-4, в то время как часть верхнего уровня, предоставленная Microsoft, была аппаратно- и протокольно-независимой. Эта реализация NetBIOS поддерживала полный API NetBIOS, но вызывалась путем вызова прерывания x86 0x2A вместо стандартного прерывания IBM 0x5C. Зависимость от OEM-производителей в реализации частей NetBIOS имела неприятный побочный эффект, заключавшийся в том, что различные OEM-версии MS-Net и NetBIOS, как правило, не могли взаимодействовать друг с другом. [4]

В 1986 году Novell выпустила Advanced Novell NetWare 2.0, включающую собственную эмуляцию NetBIOS API. Ее сервисы были инкапсулированы в протокол IPX/SPX NetWare с использованием протокола NetBIOS over IPX/SPX (NBX).

В 1987 году был опубликован метод инкапсуляции NetBIOS в пакеты TCP и UDP , NetBIOS через TCP/IP (NBT). Он был описан в RFC 1001 («Стандарт протокола для службы NetBIOS на транспорте TCP/UDP: концепции и методы») и RFC 1002 («Стандарт протокола для службы NetBIOS на транспорте TCP/UDP: подробные спецификации»). Протокол NBT был разработан для того, чтобы «позволить реализовать [приложения NetBIOS] практически на любом типе системы, где доступен набор протоколов TCP/IP», и «разрешить взаимодействие NetBIOS в Интернете».

После того как в 1987 году на рынке появился компьютер PS/2 , IBM выпустила программу поддержки ПК с локальной сетью (PC LAN Support Program), которая включала драйвер, предлагающий API NetBIOS.

Существует некоторая путаница между названиями NetBIOS и NetBEUI. NetBEUI возникло исключительно как прозвище для улучшенного эмулятора NetBIOS 1985 года от IBM для Token Ring. Название NetBEUI должно было умереть там, учитывая, что в то время реализации NetBIOS другими компаниями были известны просто как NetBIOS независимо от того, включали ли они расширения API, найденные в эмуляторе Token Ring. Однако для MS-Net Microsoft решила назвать свою реализацию протокола NBF «NetBEUI» — назвав свою реализацию транспортного протокола в честь улучшенной версии API от IBM. [ необходима цитата ] Следовательно, общий доступ к файлам и принтерам Microsoft через Ethernet часто продолжает называться NetBEUI, а название NetBIOS обычно используется только в отношении общего доступа к файлам и принтерам через TCP/IP . Точнее, первое — это NetBIOS Frames (NBF), а второе — NetBIOS через TCP/IP (NBT).

С момента своей первоначальной публикации в техническом справочнике IBM спецификация API NetBIOS стала фактическим стандартом в отрасли, несмотря на то, что изначально поддерживала максимум 80 ПК в локальной сети. Это ограничение было в целом преодолено в отрасли за счет перехода от NBF к NBT, в рамках которого, например, Microsoft смогла перейти на систему доменных имен (DNS) для разрешения имен хостов NetBIOS , ранее использовав сам протокол NBF, разделенный на сегменты локальной сети, для разрешения таких имен в клиент-серверных сетях Windows . [1]

Услуги

NetBIOS предоставляет три различные службы:

(Примечание: SMB , верхний уровень, представляет собой службу, которая работает поверх службы сеансов и службы датаграмм, и ее не следует путать с необходимой и неотъемлемой частью самого NetBIOS. Теперь она может работать поверх TCP с небольшим уровнем адаптации, который добавляет поле длины к каждому сообщению SMB; это необходимо, поскольку TCP предоставляет только службу потока байтов без понятия границ сообщений.)

Имя службы

Для того чтобы начать сеансы или распространять датаграммы, приложение должно зарегистрировать свое имя NetBIOS с помощью службы имен. Имена NetBIOS имеют длину 16 октетов и различаются в зависимости от конкретной реализации. Часто 16-й октет, называемый суффиксом NetBIOS, обозначает тип ресурса и может использоваться для указания другим приложениям, какой тип услуг предлагает система. [ необходима цитата ] В NBT служба имен работает на порту UDP 137 (также может использоваться порт TCP 137, но это случается редко).

Примитивы службы имен, предлагаемые NetBIOS:

  • Добавить имя – регистрирует имя NetBIOS.
  • Добавить имя группы – регистрирует имя «группы» NetBIOS.
  • Удалить имя – отменяет регистрацию имени NetBIOS или имени группы.
  • Найти имя – ищет имя NetBIOS в сети.

Протокол Интернета версии 6 (IPv6) не поддерживается протоколом разрешения имен NetBIOS. [5]

Служба распространения датаграмм

Режим датаграммы не требует установления соединения ; приложение отвечает за обнаружение и устранение ошибок. В NBT служба датаграммы работает на порту UDP 138.

Примитивы службы датаграмм, предлагаемые NetBIOS:

  • Отправить дейтаграмму — отправить дейтаграмму на удаленное имя NetBIOS.
  • Отправить широковещательную дейтаграмму — отправить дейтаграмму всем именам NetBIOS в сети.
  • Прием датаграммы – ожидание поступления пакета от операции отправки датаграммы.
  • Прием широковещательной дейтаграммы – ожидание поступления пакета от операции отправки широковещательной дейтаграммы.

Сессионное обслуживание

Режим сеанса позволяет двум компьютерам устанавливать соединение, позволяет сообщениям охватывать несколько пакетов и обеспечивает обнаружение и восстановление ошибок. В NBT служба сеанса работает на порту TCP 139.

Примитивы сеансовой службы, предлагаемые NetBIOS:

  • Вызов – открывает сеанс с удаленным именем NetBIOS.
  • Прослушивание – прослушивание попыток открытия сеанса с именем NetBIOS.
  • Повесить трубку – закрыть сеанс.
  • Отправить – отправляет пакет на компьютер на другом конце сеанса.
  • Send No Ack — то же, что Send, но не требует подтверждения.
  • Прием – ожидание поступления пакета от Отправителя на другом конце сеанса.

В оригинальном протоколе, используемом для реализации служб NetBIOS в PC-Network, для установления сеанса инициирующий компьютер отправляет запрос Open, на который отвечает подтверждением Open. Затем компьютер, начавший сеанс, отправит пакет Session Request, который вызовет пакет Session Accept или Session Reject.

Во время установленного сеанса каждый переданный пакет получает ответ либо с положительным подтверждением (ACK), либо с отрицательным подтверждением (NAK). NAK вызовет повторную передачу данных. Сеансы закрываются неинициирующим компьютером путем отправки запроса на закрытие. Компьютер, начавший сеанс, ответит ответом на закрытие, который вызовет последний пакет закрытия сеанса.

Имя NetBIOS против имени интернет-хоста

Когда NetBIOS работает совместно с интернет-протоколами (например, NBT), каждый компьютер может иметь несколько имен: одно или несколько имен служб имен NetBIOS и одно или несколько имен интернет-хостов.

Имя NetBIOS

Имя NetBIOS состоит из 16 символов ASCII, однако Microsoft ограничивает имя хоста 15 символами и резервирует 16-й символ как суффикс NetBIOS. [6] Этот суффикс описывает тип записи службы или имени, такой как запись хоста, запись главного браузера или запись контроллера домена или другие службы. Имя хоста (или короткое имя хоста) указывается при установке/настройке сети Windows, зарегистрированные суффиксы определяются отдельными службами, предоставляемыми хостом. Чтобы подключиться к компьютеру, работающему по протоколу TCP/IP, через его имя NetBIOS, имя должно быть преобразовано в сетевой адрес . Сегодня это обычно IP-адрес (преобразование имени NetBIOS в IP-адрес часто выполняется либо широковещательными рассылками, либо сервером WINS – сервером имен NetBIOS). Имя NetBIOS компьютера часто совпадает с именем хоста этого компьютера (см. ниже), хотя и усекается до 15 символов, но может также быть совершенно другим.

Имена NetBIOS представляют собой последовательность буквенно-цифровых символов. Следующие символы явно не допускаются:\/:*?"<>|. Начиная с Windows 2000, имена NetBIOS также должны были соответствовать ограничениям на имена DNS: они не могли состоять только из цифр, а символы дефиса («-») или точки («.») не могли быть первым или последним символом. Начиная с Windows 2000, Microsoft рекомендовала не включать символы точки («.») в имена NetBIOS, чтобы приложения могли использовать наличие точки для различения доменных имен от имен NetBIOS. [6]

Файл Windows LMHOSTS предоставляет метод разрешения имен NetBIOS, который можно использовать для небольших сетей, не использующих WINS-сервер.

Имя интернет-хоста

Имя NetBIOS машины Windows не следует путать с именем хоста Интернета компьютера (предполагая, что компьютер также является хостом Интернета в дополнение к тому, что является узлом NetBIOS, что не обязательно так). Обычно компьютер, на котором запущены протоколы Интернета (независимо от того, машина это Windows или нет), имеет имя хоста (иногда также называемое именем машины). Первоначально эти имена хранились и предоставлялись файлом hosts , но сегодня большинство таких имен являются частью иерархической системы доменных имен (DNS).

Обычно имя хоста компьютера Windows основано на имени NetBIOS и основном DNS-суффиксе, которые оба устанавливаются в диалоговом окне «Свойства системы». Также могут быть суффиксы, специфичные для подключения, которые можно просмотреть или изменить на вкладке DNS в Панель управления → Сеть → TCP/IP → Дополнительные свойства. Имена хостов используются такими приложениями , как telnet , ftp , веб-браузеры и т. д. Чтобы подключиться к компьютеру, работающему по протоколу TCP/IP, используя его имя, имя хоста должно быть преобразовано в IP-адрес , как правило, DNS-сервером. (Многие приложения на основе TCP/IP, включая три перечисленных выше, также могут работать с использованием только IP-адресов, но это не является нормой.)

Типы узлов

В Windows тип узла сетевого компьютера относится к способу разрешения имён NetBIOS в IP-адреса . Это предполагает, что существуют IP-адреса для узлов NetBIOS, что гарантируется только при работе NetBIOS через NBT; таким образом, типы узлов являются не свойством NetBIOS как такового, а свойством взаимодействия между NetBIOS и TCP/IP в среде ОС Windows. Существует четыре типа узлов.

  • B-узел: 0x01 Трансляция
  • P-узел: 0x02 Peer (только WINS)
  • M-узел: 0x04 Смешанный (широковещательный, затем WINS)
  • H-узел: 0x08 Гибрид (WINS, затем широковещательная передача)

Тип используемого узла отображается при открытии командной строки и вводе ipconfig /all . Реестр компьютера Windows также может быть настроен таким образом, чтобы отображать «неизвестно» для типа узла.

Суффиксы NetBIOS

Суффикс NetBIOS, также называемый конечным символом NetBIOS (endchar), является 16-м символом имени NetBIOS и указывает тип службы для зарегистрированного имени. Количество типов записей ограничено 255; некоторые часто используемые значения:

Для уникальных имен:

Для названий групп:

  • 00: Служба рабочей станции (имя рабочей группы/домена)
  • 1С: Контроллеры домена для домена (групповая запись до 25 IP-адресов)
  • 1E: Выборы службы браузера

Стек протоколов

В следующей таблице представлена ​​краткая история NetBIOS и связанных с ним протоколов. SMB был основным протоколом, который использовал NetBIOS. SMB обеспечивает общий доступ к файлам и принтерам Windows.

7Уровень приложенийWindows Chat , ClipBook Viewer , Microsoft HeartsМСБМСБМСБМСБМСБ
6Уровень представленияNetDDE
5Уровень сеансаNetBIOS (оригинальная «сетевая базовая система ввода-вывода»)NetBIOS ( фреймы NetBIOS , в Windows ошибочно обозначенные как «NetBEUI»)NetBIOS (NetBIOS через IPX/SPX)NetBIOS ( NetBIOS через TCP/IP )
4Транспортный уровеньIPX/SPXTCP / UDP-протоколTCP / UDP-протоколQUIC (через UDP )
3Сетевой уровеньIPXИСИСИС
2Уровень канала передачи данныхIEEE 802.2 на Ethernet , Token RingЛюбая ссылка, которая несет IPXЛюбая ссылка, которая несет IPЛюбая ссылка, которая несет IPЛюбая ссылка, которая несет IP
1Физический уровеньСеть IBM PCEthernet , Token Ring
Первая поддержкаWindows для рабочих групп 3.1Windows для рабочих групп 3.1Windows NT 3.5Виндовс 2000Windows 11 (для сервера требуется Windows Server 2022 Datacenter: Azure Edition)
Последняя поддержкаWindows XP (требуется ручная установка)Windows XP

Смотрите также

Ссылки

  1. ^ ab Sosinsky, Barrie (2009). Сетевая Библия . John Wiley & Sons . С. 528. ISBN 9780470543429.
  2. ^ "10. Оценка сетевых служб Windows - Оценка безопасности сети, 2-е издание [Книга]". www.oreilly.com . Архивировано из оригинала 20 апреля 2023 г. . Получено 20 апреля 2023 г. .
  3. ^ "Getaway hardware for protocols". www.networking-hardware.com . Архивировано из оригинала 26 марта 2023 г. Получено 20 апреля 2023 г.
  4. ^ "Early Microsoft Networks | OS/2 Museum" . Получено 4 сентября 2024 г. .
  5. ^ "[MS-WPO]: протокол управления WINS". learn.microsoft.com . 14 февраля 2019 г. Архивировано из оригинала 17 июня 2023 г. Получено 17 июня 2023 г. Поскольку протокол NetBIOS, определенный в [RFC1002], не поддерживает сопоставление имен NetBIOS и адресов IPv6, протокол удаленного административного интерфейса: WINS применяется только к адресам IPv4. Он не применяется к адресам IPv6.
  6. ^ ab "Соглашения об именовании в Active Directory для компьютеров, доменов, сайтов и подразделений". Microsoft . Архивировано из оригинала 22 декабря 2017 г. . Получено 19 декабря 2017 г. .

Дальнейшее чтение

  • Хаугдаль, Дж. Скотт (1990). Внутри NetBIOS . Architecture Technology Corp. ISBN 99914-57-34-8 
  • Зильбершатц, Абрахам; Гэлвин, Питер Баер; Ганье, Грег (2004). Концепции операционных систем . (7-е изд.). John Wiley & Sons. ISBN 0-471-69466-5 
  • Мейерс, Майкл (2004). «Управление сетями и устранение неполадок». McGraw-Hill. ISBN 978-0-07-225665-9 
  • Тамара Дин. Network+ Руководство по сетям , стр. 206 (NetBEUI)
  • Технический справочник по LAN: API 802.2 и NetBIOS
  • Реализация CIFS (от команды Samba , опубликовано под лицензией Open Publication License )
  • Сетевые протоколы NetBIOS, NetBEUI, NBF, SMB, CIFS
  • Эталонная модель взаимодействия открытых систем (OSI) для NBF, NBT и NBX
  • Файл LMHOSTS
  • Конечные символы/суффиксы NETBIOS – статья базы знаний Microsoft, описывающая список суффиксов NetBIOS.
  • Библиотека NetBIOS для Windows 7 в Visual Basic — Coder Bliss — Джон Ридхолм.
  • Ричард Шарп (8 октября 2002 г.). "Что такое SMB?". Архивировано из оригинала 2 декабря 2009 г. Получено 1 января 2012 г.
Retrieved from "https://en.wikipedia.org/w/index.php?title=NetBIOS&oldid=1243980739"