Лекция №15
15. Использование протокола NetBios
для передачи дейтограмм
Протокол NetBios – это разработка фирм Microsoft и IBM. Протокол NetBios реализует функции транспортного, сетевого и сеансного уровней. Уровни представления и прикладной реализуются протоколом SMB.
Для адресации станций в протоколе NetBios используются имена длиной в 16 байт. Каждая станция может иметь постоянное имя, обычное имя и групповое имя.
Постоянное имя – это адрес сетевого адаптера (6 байт) и добавленные слева 10 нулевых байт. Обычное имя – имя, которое присваивается станции пользователем. Групповое имя также присваивается пользователем. Обычное имя в сети является уникальным, а групповое имя можно присвоить нескольким станциям. При выполнении процедуры задания станции обычного имени, ей будет присвоен номер имени, размерностью 1 байт.
Обращение к протоколу NetBios осуществляется через прерывание 5Ch (int 5Ch).
Задание действия программе, реализующей протокол NetBios, можно осуществить с помощью сетевого управляющего блока (NCB).
Структуру сетевого управляющего блока можно представить следующим образом (табл. 15.1):
Таблица 15.1. Структура NCB
|
Название поля
| Размер поля
|
Код команды
| 1 байт
|
Код ошибки (возвращается протоколом NetBios до выполнения команды)
| 1 байт
|
Номер канала (при дейтограммной связи не заполняется)
| 1 байт
|
Номер имени станции (заполняется пользовательской программой)
| 1 байт
|
Адрес буфера данных
| 4 байта
|
Размер буфера данных
| 2 байта
|
Имя станции, с которой должен быть установлен сеанс связи/канал связи (при дейтограммной связи не заполняется)
| 16 байт
|
Имя данной станции (заполняется и при приеме, и при передаче)
| 16 байт
|
Интервал времени ожидания завершения команды приема (необходим для отслеживания процессов и определения, истекло ли время приема)
| 1 байт
|
Интервал времени ожидания завершения команды передачи (необходим для отслеживания процессов и определения, истекло ли время передачи)
| 1 байт
|
Указатель на программу, получающую управление после завершения команды (после завершения выполнения команды осуществляется переход к указанной программе)
| 4 байт
|
Номер сетевого адаптера (указывается в случае, если в компьютере установлено несколько сетевых адаптеров)
| 2 байта
|
Поле ошибки выполнения команды (заполняется протоколом NetBios после выполнения команды)
| 1 байт
|
Резервное поле (используется протоколом NetBios для хранения промежуточной информации)
| 14 байт
|