NetBIOS

NetBIOS (Network Basic Input/Output System) — протокол для работы в локальных сетях на персональных ЭВМ типа IBM/PC, разработан в виде интерфейса, который не зависит от фирмы-производителя. Был разработан фирмой Sytek Corporation по заказу IBM в 1983 году. Он включает в себя интерфейс сеансового уровня (англ. NetBIOS interface), в качестве транспортных протоколов использует TCP и UDP.

Особенностью NetBIOS является возможность его работы поверх разных протоколов, самыми распространёнными/известными из которых являются NetBEUI, IPX и стек протоколов TCP/IP; причём если старые версии Windows ориентировались на более лёгкие в реализации и менее ресурсоёмкие NetBEUI и IPX, то современные Windows ориентируются на TCP/IP. При использовании NetBEUI и IPX NetBIOS сам обеспечивает надёжность доставки данных (функциональность SPX не использовалась), а при использовании TCP/IP надёжность доставки обеспечивает TCP, за что удостоился отдельного имени «NBT».

Интерфейс NetBIOS представляет собой типичный интерфейс взаимодействия приложений (API) для обеспечения сетевых операций ввода-вывода и управления низлежащим транспортным протоколом. Приложения, использующие NetBIOS API интерфейс, могут работать только при наличии протокола, допускающего использование такого интерфейса.

NetBIOS также определяет протокол, функционирующий на сеансовом/транспортном уровнях модели OSI. Этот протокол используется протоколами нижележащих уровней, такими как NBFP (NetBEUI) и NetBT для выполнения сетевых запросов ввода-вывода и операций, описанных в стандартном интерфейсном наборе команд NetBIOS. То есть, NetBIOS сам не поддерживает выполнения файловых операций. Эта функция возлагается на протоколы нижележащих уровней, а сам NetBIOS обеспечивает только связь с этими протоколами и NetBIOS API-интерфейс.

Пакет NETBIOS создан для использования группой ЭВМ. Поддерживает как режим сессий (работа через соединение), так и режим дейтаграмм (без установления соединения). 16-символьные имена объектов в NETBIOS распределяются динамически. NETBIOS имеет собственную DNS, которая может взаимодействовать с интернетовской. Имя объекта при работе с NETBIOS не может начинаться с символа *.

Приложения могут найти через NETBIOS нужные им ресурсы, установить связь и послать или получить информацию. NETBIOS использует для службы имен порт 137, для службы дейтаграмм — порт 138, а для сессий — порт 139. Любая сессия начинается с NETBIOS-запроса, задания IP-адреса и определения TCP-порта удаленного объекта, далее следует обмен NETBIOS-сообщениями, после чего сессия закрывается. Сессия осуществляет обмен информацией между двумя NETBIOS-приложениями. Длина сообщения лежит в пределах от 0 до 131071 байт. Допустимо одновременное установление нескольких сессий между двумя объектами. При организации IP-транспорта через NETBIOS IP-дейтаграмма вкладывается в NETBIOS-пакет. Информационный обмен происходит в этом случае без установления связи между объектами. Имена NETBIOS должны содержать в себе IP-адреса. Так, часть NETBIOS-адреса может иметь вид IP.**.**.**.**, где IP указывает на тип операции (IP через Netbios), а **.**.**.** — IP-адрес. Система NETBIOS имеет собственную систему команд (call, listen, hang up, send, receive, session status, reset, cancel, adapter status, unlink, remote program load) и примитивов для работы с дейтаграммами (send datagram, send broadcast datagram, receive datagram, receive broadcast datagram). Все оконечные узлы NETBIOS делятся на три типа:

  • широковещательные («b») узлы;
  • узлы точка-точка («p»);
  • узлы смешанного типа («m»).

IP-адрес может ассоциироваться с одним из указанных типов. B-узлы устанавливают связь со своим партнером посредством широковещательных запросов. P- и M-узлы для этой цели используют netbios сервер имен (NBNS) и сервер распределения датаграмм (NBDD).

NetBIOS обеспечивает:

  • регистрацию и проверку сетевых имен;
  • установление и разрыв соединений;
  • связь с подтверждением доставки информации;
  • связь без подтверждения доставки информации;
  • поддержку управления и мониторинга драйвера и сетевой карты.