Сеансовый — NetBIOS interface

Транспортный — TCP и UDP 
 
Механизм адресации станций и программ протоколом NetBIOS
 
*одно постоянное имя (permanent name)
для адресации станций используются имена размером 16 байт. Каждая станция имеет одно постоянное имя (permanent name), которое образуется из аппаратного адреса добавлением к нему слева десяти нулевых байтов. Постоянное имя удалить нельзя, т.к. оно полностью определяется аппартным обеспечением станции.
 
*обычные имена
обычные имена служат для идентификации рабочей станции
 
*групповые имена
могут служить для посылки пакетов одновременно нескольким станциям в сети
 
 
Все команды NETBIOS можно разделить на несколько групп:
 
1. Для работы с именами:
    • добавить новое имя в таблицу имён станции (с ожиданием и без ожидания)
    • добавить новое групповое имя в таблицу станции
    • удалить имя из таблицы имён станции
2. Для приёма и передачи датаграмм:
    • передать одной или группе станций блок данных в виде датаграммы
    • передать всем станциям блок данных в виде датаграммы
    • принять блок данных
3. Для работы с каналами:
    • установить канал между двумя именами, заданными в блоке NCB
    • организовать канал с вызываемой стороны
    • закрыть канал
    • опросить состояние канала
4. Для приёма и передачи данных через каналы:
    • передать блок данных (до 64 Кб) по каналу
    • передать блок данных (до 64 Кб) по каналу без проверки доставки блока
    • передать два буфера (каждый по 64 Кб) по каналу как один блок
    • передать два буфера (каждый по 64 Кб) по каналу как один блок без проверки доставки блока
    • принять блок данных, переданный по каналу
    • принять блок данных, переданный по любому каналу, который организовала принимающая станция
5. Другие команды:
    • удалить все имеющиеся каналы и имена
    • отменить ранее запущенную команду
 

Формат блока NCB:
 
1
Cmd
код команды
1
CCode
код ошибки до выполнения команды
1
LocalSessionNumber
номер канала
1
NetworkNameNumber
номер имени
4
Buffer
дальний указатель на буфер данных
2
Size
длина буфера
16
CallName
имя станции-получателя
16
OurName
имя станции-отправителя
1
ReceiveTimeout
время ожидания завершения приёма пакета
1
SendTimeout
время ожидания завершения передачи пакета
4
PostRoutine
адрес POST-программы
1
AdapterNumber
номер сетевого адаптера
1
FinalCCode
код ошибки после выполнения команды
14
Reserved
рабочий буфер протокола NETBIOS
 

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

Приложения могут через netbios найти нужные им ресурсы, установить связь и послать или получить информацию.
 
NETBIOS использует:
    • для службы имен порт — 137
    • для службы дейтограмм — порт 138
    • для сессий — порт 139.
 
Любая сессия начинается с:
    1. NetBIOS-запроса
    2. задания IP-адреса и определения TCP-порта удаленного объекта
    3. обмен NetBIOS-сообщениями
    4. закрытие сессии
      Сессия осуществляет обмен информацией между двумя netbios-приложениями. Длина сообщения лежит в пределах от 0 до 131071 байт. Допустимо одновременное осуществление нескольких сессий между двумя объектами.
 
      Имена 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")
устанавливают связь посредством NetBIOS сервера имен (NBSN)
 
* узлы смешанного типа ("m")
устанавливают связь посредством NetBIOS сервера распределения дейтограмм (NBDD)
 
      В настоящее время (1985 г) разработана улучшенная версия протокола NetBIOS — NetBeui (NetBios extended user interface). Этот новый протокол используется операционными системами LAN manager, LAN server, Windows for Workgroups и Windows NT, а по своей функции занимает нишу протоколов TCP/IP, охватывая связной, сетевой и транспортный уровни. Здесь стандартизован формат пакетов NetBios, добавлены некоторые новые функции. netbuei базируется на протоколе OSI LLC2, вводит стандарт на формат кадра netbios (NDF) и использует NetBios в качестве интерфейса высокого уровня. Протокол обладает высоким быстродействием и служит для объединения небольших локальных сетей (20-200 ЭВМ) друг с другом или с главной ЭВМ. Этот протокол соответствует связному, сетевому и транспортному уровню модели OSI. В новых версиях NetBuei (3.0 и выше) снято ограничение на число одновременных сессий (254). Среди ограничений NetBuei следует назвать отсутствие внутренней маршрутизации и серьезные ограничения при работе в региональных сетях. По этой причине netbuei рекомендуется для локальных сетей (здесь они предпочтительнее других протоколов), а для внешних связей использовать, например, TCP/IP.

 
      Фирмы Microsoft и IBM совместно работали над сетевыми средствами для персональных компьютеров, поэтому стек протоколов NetBIOS/SMB является их совместным детищем. Средства NetBIOS появились в 1984 году как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network фирмы IBM, которая на прикладном уровне (рис. 1.6) использовала для реализации сетевых сервисов протокол SMB (Server Message Block).
Рис. 1.6. Стек NetBIOS / SMB
 
      Протокол NetBIOS работает на трех уровнях модели взаимодействия открытых систем: сетевом, транспортном (TCP и UDP) и сеансовом. NetBIOS может обеспечить сервис более высокого уровня, чем протоколы IPX и SPX, однако не обладает способностью к маршрутизации. Таким образом, NetBIOS не является сетевым протоколом в строгом смысле этого слова. NetBIOS содержит много полезных сетевых функций, которые можно отнести к сетевому, транспортному и сеансовому уровням, однако с его помощью невозможна маршрутизация пакетов, так как в протоколе обмена кадрами NetBIOS не вводится такое понятие как сеть. Это ограничивает применение протокола NetBIOS локальными сетями, не разделенными на подсети. NetBIOS поддерживает как дейтаграммный обмен, так и обмен с установлением соединений.
 
    Из-за большого количества приложений, которые используют функции API, предоставляемые NetBIOS, во многих сетевых ОС эти функции реализованы в виде интерфейса к своим транспортным протоколам. В NetWare имеется программа, которая эмулирует функции NetBIOS на основе протокола IPX, существуют программные эмуляторы NetBIOS для Windows NT и стека TCP/IP.
 
 
Источники: