ZuboLom.ru

Программирование в протоколе NetBios

Последовательность команд для посылки датаграм:

Рабочая станция АРабочая станция Б
1. Добавить имя А1. Добавить имя Б
2. Послать сообщение на Б2. Получить сообщение
3. Получить сообщение3. Послать сообщение на А
4. Удалить имя А4. Удалить имя Б


Последовательность команд NetBios при работе в режиме сессии:

Рабочая станция АРабочая станция Б
1. Добавить имя А1. Добавить имя Б
2. Ждать запроса на образование запроса2. Запрашивать образование сессии
3. Послать сообщение на Б3. Получить сообщение
4. Получить сообщение4. Послать сообщение на А
5. Удалить сессию5. Удалить сессию
6. Удалить имя А6. Удалить имя Б


В настоящее время существует два альтернативных метода для доступа к API NetBios: через int 5Ch или через int 2Ah. Оба этих интерфейса доступны в эмулятор NetBios фирмы Novell. В MS Windows доступ к NetBios (NetBEUI) реализуется через int 2ah. Первое, что необходимо сделать в программе использующей NetBios это проверить установлен ли он:

через int 5Ch

void NetBios (void)
{
sregs,es = FP_SEG(&ncb);
sregs,bx = FP_OFF(&ncb);
int86x(0x5c, ®s, ®s, &sregs);
}


Для работы в Windows, необходимо использовать функцию WinApi NetBios (адрес NCB).


Команды NetBios

Все команды NetBios можно разделить на следующие группы:

  • Команды для работы с именами;
  • Команды для приема и передачи датаграм;
  • Команды для работы с сессиями (каналами);
  • Команды для приема и передачи данных через каналы.

Все команды могут выполняться в режиме с ожиданием и без ожидания завершения команды.

  1. Команды для работы с именами:
    NB_WAddName (0x30) – с ожиданием
    NB_AddName (0xB0) – без ожидания
    NB_WAddGroupName (0x36)
    NB_AddGroupName (0xB6)
    NB_WDdeleteName (0x31)
    NB_WDdeleteName (0xB1)
  2. Команды для приема и передачи датаграм:
    NB_WSendDatagram (0x20)
    NB_SendDatagram (0xA0)
    NB_WSendBroadCastDatagram (0x22)

    NB_SendBroadCastDatagram (0xA2)
    NB_WRecieveDatgarm (0x21)
    NB_RecieveDatgarm (0xA1)
    NB_WRecieveBroadCastDatagram (0x23)
    NB_RecieveBroadCastDatagram (0xA3)
  3. Команды для работы с каналами:
    NB_WCall (0x10)
    NB_Call (0x90)
    NB_WListen (0x11)
    NB_Listen (0x91)

Модель ISO/OSI и стек протоколов