Главная страница
Навигация по странице:

  • M i c r o s o f t P r e s s

  • ISBN 5 - 3 1 8 - 0 0 7 2 5 - 2 ISBN 5 - 7 5 0 2 - 0 1 4 8 - 1

  • УДК 004.43 ББК 32.973.26-018

  • Ч А С Т Ь I.

  • Ч А С Т Ь I I I .

  • Приложение А.

  • Приложение С.

  • Как пользоваться прилагаемым компакт-диском

  • Ч А С Т Ь I УСТАРЕВШИЕСЕТЕВЫЕ APIо

  • прикладной

  • I J • l-\ •_ r-i Ш

  • Интерфейс Microsoft NetBIOS

  • Программирование в сетях Windows. Э. Джонс, Д. Оланд


    Скачать 2.88 Mb.
    НазваниеЭ. Джонс, Д. Оланд
    АнкорПрограммирование в сетях Windows.pdf
    Дата12.10.2017
    Размер2.88 Mb.
    Формат файлаpdf
    Имя файлаПрограммирование в сетях Windows.pdf
    ТипКнига
    #9346
    страница1 из 50
      1   2   3   4   5   6   7   8   9   ...   50

    A n t h o n y J o n e s
    J i m O h i u n d
    N
    e
    t
    w
    o
    r
    k
    P
    r
    o
    g
    r
    a
    m
    m
    l
    n
    f
    o
    r
    M i c r o s o f t ®
    W
    i
    n
    d
    o
    w
    s
    M i c r o s o f t P r e s s

    Э. Джонс, Д. Оланд
    Программирование
    в сетях
    Microsoft®
    W i n d o w s
    i ! " э :
    МАСТЕР-КЛАСС
    « . Р У С С К А Я РЕДАКЦИЯ
    о Москва • Санкт-Петербург ХарЩсов Минск
    2002

    |,К 004.43
    Ж 32.973.26-018
    иконе Э., Оланд Д ж .
    i 0 Программирование в сетях Microsoft Windows. Мастер-класс. / Пер. с англ. —
    Спб.: Питер, М: Издательско-торговый дом «Русская Редакция», 2002. — 608 стр.: ил.
    ISBN 5 - 3 1 8 - 0 0 7 2 5 - 2
    ISBN 5 - 7 5 0 2 - 0 1 4 8 - 1
    Книга знакомит читателя с многообразием сетевых функций ОС семей- ства Windows. Обсуждается разработка сетевых приложений на платформе
    Win32 с использованием интерфейсов программирования NetBIOS и Winsock,
    а также распространенных протоколов. На конкретных примерах рассмот- рены клиент-серверная модель; установка соединения и передача данных;
    регистрация и разрешение имен, в том числе применительно к Windows 2000
    и Active Directory; широковещание в сети; ATM; QoS и удаленный доступ.
    В приложениях содержится справочник команд NetBIOS (с указанием вход- ных и выходных параметров), сведения о новых функциях IP Helper, а так- же справочник кодов ошибок Winsock.
    Адресована как профессиональным программистам, так и новичкам, для которых станет удобным справочником и исчерпывающим пособием по использованию сетевых функций Windows
    Состоит из 15 глав, трех приложений и предметного указателя; прилагаемый компакт-диск содержит примеры программ.
    УДК 004.43
    ББК 32.973.26-018
    Подготовлено к изданию по лицензионному договору с Microsoft Corporation, Редмонд, Ва- шингтон, США
    Intel — охраняемый товарный знак компании Intel Corporation Active Directory, ActiveX,
    Authenticode, BackOffice, BizTalk, JScnpt, Microsoft, Microsoft Press, MSDN, MSN, NetMeeting,
    Outlook, Visual Basic, Win32, Windows и Windows NT являются товарными знаками или охра- няемыми товарными знаками корпорации Microsoft в США и/или других странах Все дру- гие товарные знаки являются собственностью соответствующих фирм
    Все названия компаний, организаций и продуктов, а также имена лиц и события, ис- пользуемые в примерах, вымышлены и не имеют никакого отношения к реальным компани- ям, организациям, продуктам, событиям и лицам, если особо не указано иное
    г
    © Оригинальное издание на английском
    1BN 0 - 7 3 5 6 - 0 5 6 0 - 2 (англ.) языке, Microsoft Corporation, 2000
    IBN 5 - 3 1 8 - 0 0 7 2 5 - 2 © Перевод на русский язык, Microsoft
    ' 5 - 7 5 0 2 - 0 1 4 8 - 1 Corporation, 2001

    Оглавление
    Введение XII
    Ч А С Т Ь I. УСТАРЕВШИЕ СЕТЕВЫЕ API 1
    ГЛАВА 1. Интерфейс NetBIOS 2
    Интерфейс Microsoft NetBIOS 3
    Номера LANA 4
    Имена NetBIOS 5
    Особенности NetBIOS 8
    Основы программирования NetBIOS 9
    Синхронный и асинхронный вызов 11
    Типичные процедуры NetBIOS 11
    Сервер сеансов: модель асинхронного обратного вызова 19
    Сервер сеансов: модель асинхронных событий 24
    Клиент сеанса NetBIOS 30
    Дейтаграммные операции 34
    Дополнительные команды NetBIOS 48
    Проверка состояния адаптера (команда NCBASTAT) 49
    Команда поиска имени (NCBFINDNAME) 51
    Сопоставление протоколов номерам LANA 51
    Рекомендации по выбору платформ 52
    Платформа Windows СЕ 52
    Платформа Windows 9x 52
    Для любых платформ 53
    Резюме 53
    ГЛАВА 2. Перенаправитель 54
    Универсальные правила именования 55
    Поставщик нескольких UNC 55
    Компоненты сетевого доступа 56
    Перенаправитель 57
    Протокол SMB 57
    Безопасность 59
    Дескрипторы безопасности 59
    Маркеры доступа 61
    Сетевая безопасность 61
    Реквизиты сеанса 61
    Пример 62
    Резюме 63
    ГЛАВА 3. Почтовые ящики 64
    Подробности внедрения почтовых ящиков 64
    Имена почтовых ящиков 65
    * Размеры сообщений 65 0С| Компиляция приложения 67
    Коды ошибок 67

    Оглавление
    )бщие сведения об архитектуре клиент-сервер 67
    Сервер почтовых ящиков 67
    Клиент почтовых ящиков 70 1,ополнительные API-функции почтовых ящиков 72
    Тлатформа и производит ельность 7 3
    Правила именования < 8 3 >
    7 3
    Неспособность отменить блокирующие запросы ввода-вывода 74
    Утечки памяти 76
    'езюме 77
    "ЛАВА 4. Именованные каналы 78
    [етали реализации именованных каналов 79
    Правила именования каналов 79
    Режимы побайтовый и сообщений 79
    Компиляция приложений 79
    Коды ошибок 80 1ростой сервер и клиент 80
    Детали реализации сервера 80
    Усовершенствованный сервер каналов 87
    Детали реализации клиента 95 1,ругие API-вызовы 98 1латформа и производительность 101
    'езюме 101
    Ч А С Т Ь I I . ИНТЕРФЕЙС ПРИКЛАДНОГО
    1РОГРАММИРОВАНИЯ WINSOCK 103
    "ЛАВА 5. Сетевые протоколы 104
    Характеристики протоколов 104
    Протокол, ориентированный на передачу сообщений 104
    Обмен данными, с соединением и без него 106
    Надежность и порядок доставки сообщений 1 Об
    Сорректное завершение работы 107
    Широковещание данных 108
    Многоадресное вещание 108
    Качество обслуживания 108
    Фрагментарные сообщения 109
    Маршрутизация 109
    Другие характеристики 109
    Тоддерживаемые протоколы 110
    Сетевые протоколы, поддерживаемые Win32 110
    Сетевые протоколы в Windows СЕ 112
    Информация о протоколе 112
    Зокеты Windows 116
    Простые сокеты 118
    Информация о платформах 118
    Winsock и модель OSI 119
    Зыбор соответствующего протокола 119 5
    езюме 120

    Оглавление VII
    ГЛАВА 6. Семейства адресов и разрешение имен 121
    Протокол IP 121
    Протокол TCP 121
    Протокол UDP 122
    Адресация 122
    Порядок байт 124
    Создание сокета 125
    Разрешениеимен 125
    Инфракрасные сокеты 128
    Адресация 128
    Разрешение имен 128
    Нумерация IrDA-устройств 129
    Опрос IAS 131
    Создание сокета 133
    Параметры сокета 133
    Протоколы IPX/SPX 13 3
    Адресация 133
    Создание сокета 134
    Разрешение имен 137
    Протоколы NetBIOS 137
    Адресация 137
    Создание сокета 139
    Протокол AppleTalk 140
    Адресация 140
    Создание сокета 148
    Протокол ATM 148
    Адресация 149
    Создание сокета 153
    Привязка сокета к SAP 154
    Разрешениеимен 155
    Дополнительные функции Winsock 2 155
    Резюме 156
    ГЛАВА 7. Основы Winsock 157
    Инициализация Winsock 157
    Проверка и обработка ошибок 159
    Протоколы с установлением соединения 160
    Серверные API-функции 1б0
    API-функции клиента 164
    Передача данных 168
    Потоковые протоколы 173
    Завершение сеанса 175
    Пример 176
    Протоколы, не требующие соединения 185
    Приемник 185
    Отправитель 187
    Протоколы, ориентированные на передачу сообщений 188
    Освобождение ресурсов сокета 189
    Пример 189

    ЛИ Оглавление
    1,ополнительные функции API
    Функция getpeername
    Функция getsockname
    Функция WSADuphcateSocket
    Функция TransmitFile
    \пя платформы Windows СЕ
    1ругие семейства адресов
    Протокол AppleTalk
    Инфракрасные сокеты
    Интерфейс с NetBIOS
    Протокол IPX/SPX
    Протокол ATM
    'езюме "ЛАВА 8. Ввод-вывод в Winsock
    'ежимы работы сокетов
    Блокирующий режим
    Неблокирующий режим
    Додели ввода-вывода сокетов
    Модель select
    Модель WSAAsyncSelect
    Модель WSAEventSelect
    Модель перекрытого ввода-вывода
    Модель портов завершения 'равнение моделей ввода-вывода
    Клиент
    Сервер
    5
    езюме "ЛАВА 9. Параметры сокета и команды управления
    SBOflOM-ВЫВОДОМ
    Тараметры сокета
    Уровень SOLJOCKET
    Уровень параметров SOLAPPLETALK
    Уровень параметров SOL IRLMP
    Уровень параметров IPPROTOJP
    Уровень параметров IPPROTOTCP
    Уровень параметров NSPROTO IPX
    Функции Ioctlsocket и WSAloctl
    Стандартные ioctl-команды
    Другие ioctl-команды
    Ioctl-команды Secure Socket Layer
    Ioctl-команды для ATM
    Резюме "ЛАВА 10. Регистрация и разрешение имен введение
    Модели пространства имен
    Перечень пространств имен
    Регистрация службы
    197 197 198 198 199 200 201 201 202 202 203 204 204 2 0 5 206 206 208 209 209 213 217 223 234 243 243 243 243 2 4 5 245 246 255 258 262 267 268 272 273 274 282 283 285 2 8 6 286 287 287 289

    F
    Определение класса службы
    Регистрация службы
    Запрос к службе
    Создание запроса
    Запрос к DNS
    Резюме
    ГЛАВА 11. Многоадресная рассылка
    Семантика многоадресной рассылки
    Свойства многоадресной рассылки
    Многоадресная рассылка в сетях IP
    Протокол IGMP
    Листовые узлы IP
    Реализация 1Р-рассылки
    Многоадресная рассылка в сетях ATM
    Листовые узлы ATM
    Корневые узлы ATM
    Оглавление
    Многоадресная рассылка с использованием Winsock
    Рассылка средствами Winsock 1
    Рассылка средствами Winsock 2
    Общие параметры Winsock
    Ограничение многоадресной рассылки
    Резюме
    ГЛАВА 12. Качество обслуживания
    Введение
    Протокол RSVP
    Сетевые компоненты
    Компоненты приложения
    Компоненты политики безопасности
    QoS и Winsock
    Структуры QoS
    Функции, вызывающие QoS
    Завершение QoS
    Объекты, относящиеся к поставщику
    Программирование QoS
    RSVP и типы сокетов
    Уведомления QoS
    Шаблоны QoS
    Примеры
    Одноадресный TCP
    Одноадресный UDP
    Многоадресный UDP
    ATM и QoS
    Резюме
    ГЛАВА 13. Простые сокеты
    Создание простого сокета
    Протокол ICMP
    Пример Ping при удаленном доступе
    IX
    289 293 299 301 304 307
    308
    308 311
    зп
    312 313 314 314 315 315 316 316 323 340 342 342 343 343 344 344 346 347 348 349 352 356 356 365 366 368 371 373 373 394 395 396 397 398 398 399 401

    Оглавление
    Программа Traceroute 411
    Протокол IGMP 412
    Использование IPJiDRINCL 414
    Резюме 424
    "ЛАВА 14. Интерфейс Winsock 2 SPI 425
    Основы SPI 426
    Соглашения SPI об именах 426
    Соответствие функций Winsock 2 API и SPI 426
    Поставщики транспортной службы 427
    Функция WSPStartup 428
    Описатели сокетов 433
    Поддержка модели ввода-вывода Winsock 435
    Модель select 437
    Расширенные функции 446
    Установка поставщиков транспортной службы 447
    Тоставщики службы пространства имен 453
    Установка поставщика пространства имен 453
    Реализация пространства имен 455
    Пример 461
    Отладочные функции отслеживания Winsock 2 SPI 466
    Резюме 467
    "ЛАВА 15. Элемент управления Winsock 468
    Свойства 468
    Методы 470
    События 471
    Пример (UDP-приложение) 472
    Пересылка UDP-сообщений 476
    Прием UDP-сообщений 477
    Получение информации от элемента Winsock 478
    Запуск UDP-приложения 478
    Состояние UDP-сокетов 479 11ример (TCP-приложение) 480
    СР-сервер 487
    TCP-клиент 489
    Получение информации о состоянии элемента управления Winsock 490
    Запуск TCP-приложения 490
    Состояние ТСР-сокетов 491
    Ограничения 491
    Гипичные ошибки 493
    Ошибка Local address in use 493
    Ошибка Invalid Operation at Current State 493
    Элемент управления Windows СЕ Winsock 494
    Пример 494
    Проблема с элементом управления
    VBCE Winsock 499
    Резюме 499

    Оглавление XI
    Ч А С Т Ь I I I . СЛУЖБА УДАЛЕННОГО
    ДОСТУПА (RAS) 500
    ГЛАВА 16. Клиент службы RAS 501
    Компиляция и компоновка 502
    Структуры данных и вопросы совместимости платформ 503
    Обновление DUN 1.3 и Windows 95 503
    Функция RasDial 503
    Синхронный режим 506
    Асинхронный режим 507
    Уведомление о состоянии 512
    Завершение соединения 513
    Телефонный справочник 514
    Добавление записей в телефонный справочник 522
    Переименование записи телефонного справочника 525
    Удаление записей из телефонного справочника 525
    Перечисление записей телефонного справочника 526
    Управление реквизитами пользователя 527
    Многоканальные подзаписи телефонного справочника 529
    Управление соединением 530
    Резюме 534
    Приложение А. Перечень команд NetBIOS 535
    Приложение В. Вспомогательные функции IP 549
    Возможности утилиты Ipconfig 549
    Освобождение и обновление IP-адресов 553
    Изменение IP-адреса 554
    Возможности утилиты Netstat 554
    Получение таблицы TCP-соединений 555
    Получение таблицы прослушиваемых портов UDP 556
    Получение статистики о протоколе IP 557
    Возможности утилиты Route 561
    Получение таблицы маршрутов 562
    Добавление маршрута 564
    Удаление маршрута 565
    Утилита ARP 565
    Добавление записи ARP 567
    Удаление записи ARP 567
    Приложение С. Коды ошибок Winsock 568
    От авторов 575
    Предметный указатель 576
    if



    Введение
    Перед вами книга, посвященная сетевым функциям Windows 9х, NT 4, 2000
    и СЕ Она предназначена в первую очередь опытным программистам и спе- циалистам по сетям Впрочем, для начинающих она может послужить полез- ным справочным пособием и даже вводным курсом по сетевым функциям
    О чем эта книга
    В книге три части, посвященные работе в сети с применением NetBIOS и пе- ренаправителя Windows, Winsock и RAS соответственно
    В главе 1 рассматривается NetBIOS По нашему опыту работы в команде поддержки разработчиков Microsoft мы знаем, что многие компании все еще используют эту технологию Между тем, до сих пор нет адекватного руковод- ства по написанию приложений NetBIOS для платформ Win32 В главе 1 так- же приводятся методы написания надежных и переносимых приложений (с учетом, что многие разработчики используют NetBIOS именно для связи с устаревшими системами)
    Главы 2-4 посвящены перенаправителю Windows, почтовым ящикам и именованным каналам Как вы знаете, почтовые ящики и именованные ка- налы основаны на перенаправителе Мы решили посвятить перенаправите- лю целую главу, чтобы предоставить читателю базовую информацию о том,
    как три эти технологии соотносятся друг с другом Почтовые ящики — это ненадежный однонаправленный ориентированный на сообщения интер- фейс прикладного программирования, не зависимый от доступных в систе- ме протоколов Именованные каналы обладают более широкими возможно- стями, обеспечивая надежную двустороннюю дейтаграммную или поточную передачу данных Эти каналы используют средства безопасности Windows
    NT за счет перенаправителя, на что не способен ни один другой сетевой API- интерфейс
    Вторая часть книги посвящена API-интерфейсу Winsock Глава 5 — это введение в Winsock, где рассказывается о наиболее распространенных про- токолах Winsock Все приложения Winsock должны создавать сокет для осу- ществления связи В этой главе мы приводим основную информацию о воз- можностях каждого протокола, а в главе б — подробное описание, как со- здать сокет и разрешить имя для каждого типа протокола
    В главе 7 — самое интересное Здесь мы представляем базовую модель про- граммирования клиент-сервер и описываем большинство функций Winsock,
    которые относятся к установлению и приему связи, передаче данных и г п
    Далее, в главе 8 рассказывается о методах ввода-вывода в Winsock Так как глава
    7 задумывалась как введение в указанную тему, в ней обсуждаются только про- стейшие методы ввода-вывода В главе 8, напротив, эти методы описаны под-

    Введение робно Если вы новичок в работе с Winsock, то главы 5-7 помогут вам овла- деть основами использования этого API-интерфейса
    Остальные главы этой части книги посвящены особым аспектам и воз- можностям Winsock Параметры сокетов и команды управления вводом-вы- водом рассмотрены в главе 9 Именно здесь вы найдете описание большинства команд, влияющих на работу сокета или даже протокола На- деемся, эта глава будет полезна, как в учебных, так и в справочных целях
    В главе 10 рассмотрена регистрация и разрешение имен служб в адреса базового протокола в Winsock 2 Это независимый от протокола метод Рас- пространение Windows 2000 и Active Directory придает данной главе особую значимость
    Глава 11 посвящена связи «точка — много точек>>, включая многоадресное
    IP- вещание и ATM В главе 12 описана захватывающая технология — Quality of Service (QoS), позволяющая гарантировать выделение пропускной способ- ности сети для приложений В главе 13 рассказывается о простых 1Р-соке- тах мы рассматриваем, как приложения Winsock могут использовать их для работы с протоколами ICMP и IGMP, а также другие аспекты программиро- вания при помощи простых сокетов
    В главе 14 описан интерфейс поставщика службы для Winsock — средства,
    при помощи которого программист может задать уровень между Winsock и поставщиками служб более низких уровней (например, TCP/IP) для управ- ления работой сокета и протокола, регистрацией и разрешением имен Этот сложный инструмент позволяет расширить функциональность Winsock
    И наконец, в главе 15 обсуждается элемент управления Microsoft Visual
    Basic для Winsock Мы решили включить эту главу в книгу, так как убедились,
    что многие разработчики до сих пор полагаются на Visual Basic и этот эле- мент Функциональность элемента Winsock ограничена и не позволяет ис- пользовать дополнительные новые свойства Winsock, но он незаменим для тех, кому требуется простая и легкая в использовании сетевая связь в Visual
    Basic
    Часть III посвящена клиентскому серверу удаленного доступа (Remote
    Access Server, RAS) Мы решили включить в книгу главу о RAS из-за популяр- ности Интернета и широкого распространения коммутируемого доступа к нему Возможность коммутируемого доступа в сетевом приложении очень полезна, так как упрощает работу пользователя с программой То есть конеч- ному пользователю не придется думать, как установить соединение, чтобы работать с сетевым приложением
    В конце книги — три приложения Приложение А — справочник по ко- мандам NetBIOS, который, по нашему мнению, для программистов бесценен
    В нем перечислены параметры ввода и вывода для каждой команды В при- ложении В описаны новые вспомогательные функции IP, выдающие полез- ную информацию о сетевой конфигурации текущего компьютера Приложе- ние С — справочник по кодам ошибок Winsock с подробным описанием от- дельных ошибок и возможных причин их возникновения

    XIV Введение
    Мы надеемся, что наша работа станет для вас ценным учебным и справоч- ным пособием. Думаем, что это наиболее полная книга о сетевом програм- мировании для Windows.
    Как пользоваться прилагаемым
    компакт-диском
    В тексте книги мы часто приводим примеры программ, иллюстрирующие ра- боту с обсуждаемыми сетевыми API-интерфейсами. Эти примеры записаны на прилагаемый компакт-диск. Для их установки вставьте компакт-диск в диско- вод, и программа Autorun запустит программу установки. Программу установ- ки можно также инициировать вручную, запустив файл PressCD.exe из корне- вого каталога компакт-диска. Вы вправе установить образцы кода на компь- ютер или работать с ними прямо с компакт-диска (из папки Examples\Chap- ters\Chapter XX).
    ПРИМЕЧАНИЕ Для работы с компакт-диском необходима 32-битная
    ОС Windows.
    Наряду с примерами программ в состав компакт-диска ыключена послед- няя версия Microsoft Platform SDK. Мы сделали это, потому что многие из наших примеров рассчитаны на современные заголовочные файлы и биб- лиотеки, которые появились только после Windows 2000 Beta 3.
    Поддержка
    Авторы приложили все усилия, чтобы обеспечить точность содержания кни- ги и прилагаемого к ней компакт-диска. Издательство Microsoft Press публи- кует постоянно обновляемый список исправлений и дополнений к своим книгам по адресу http://mspress.microsoft.com/support/.
    Многие определения функций и таблицы в книге адаптированы или пе- реизданы с разрешения и при активном участии группы документирования
    Microsoft Platform SDK. Часть материала основана на предварительно разра- ботанной документации и может претерпеть изменения. Информацию, об- новления и исправления ошибок по последней версии SDK см. на Web- узле MSDN по адресу: http://msdn.microsoft.com/developer/sdk/platform.asp.
    Если все же у вас возникнут вопросы или вы захотите поделиться свои- ми предложениями или комментариями, обращайтесь в издательство Mic- rosoft Press по одному из этих адресов:
    mspinput@microsoft.com
    Microsoft Press
    Attn: Network Programming for Microsoft Windows Editor
    One Microsoft Way
    Redmond, WA 98052-6399

    Ч А С Т Ь I
    УСТАРЕВШИЕ
    СЕТЕВЫЕ API
    о
    Первая часть издания посвящена сетевому интерфейсу NetBIOS, перенапра- вителю и типам использующих его сетевых соединений. Хотя в книге в ос- новном обсуждается программирование средствами Winsock, мы включили в нее часть I, так как устаревшие сетевые API имеют некоторые преимуще- ства перед Winsock.
    В главе 1 рассматривается интерфейс NetBIOS, который, как и Winsock,
    является независимым от протокола сетевым API. NetBIOS обеспечивает асинхронные вызовы, а также совместимость со старыми операционными системами типа OS/2, DOS и др. В главе 2 обсуждается перенаправитель, с которым связаны две следующие темы: почтовые ящики (глава 3) и имено- ванные каналы (глава 4). Перенаправитель обеспечивает независимый от транспорта ввод-вывод файлов. Почтовые ящики — это простой интерфейс,
    который помимо прочего поддерживает широковещание и однонаправлен- ное взаимодействие между компьютерами под управлением Windows. Нако- нец, именованные каналы дают возможность использовать двусторонний ка- нал связи, который поддерживает функции безопасности Windows.

    Г Л А В А
    Интерфейс NetBIOS
    Network Basic Input/Output System (NetBIOS) — стандартный интерфейс
    прикладного программирования (application programming interface, API),
    разработанный Sytek Corporation для IBM в 1983 г. NetBIOS определяет про- граммный интерфейс для сетевой связи, но не обусловливает физический способ передачи данных по сети. В 1985 г. IBM предприняла попытку сфор- мировать цельный протокол — создала NetBIOS Extended User Interface (Net-
    BEUI), интегрированный с интерфейсом NetBIOS. Программный интерфейс
    NetBIOS вскоре приобрел такую популярность, что поставщики ПО начали реализовать его для других протоколов, таких как TCP/IP и IPX/SPX. В на- стоящее время NetBIOS используют платформы и приложения во всем мире,
    включая многие компоненты Windows NT, Windows 2000, Windows 95 и
    Windows 98.
    ПРИМЕЧАНИЕ Windows СЕ не дает возможности использовать Net-
    BIOS API, хотя поддерживает транспортный протокол TCP/IP, имена
    NetBIOS и механизм их разрешения.
    В Win32 интерфейс NetBIOS обеспечивает обратную совместимость со старыми приложениями. В этой главе обсуждаются главные принципы про- граммирования с помощью NetBIOS, начиная с имен NetBIOS и номеров
    LANA. Мы рассмотрим основные услуги, предлагаемые NetBIOS, включая те,
    что обеспечивают связь с установлением соединения или без такового (дей- таграммные). В каждом разделе будет приведен простой клиент-серверный пример. Завершит главу обзор типичных ошибок. В приложении А вы най- дете список команд NetBIOS с обязательными параметрами и кратким опи- санием.
    Сетевая модель 0SI
    Модель Open Systems Interconnect (OSI) обеспечивает высокоуровне- вое представление сетевых систем. Ее семь уровней полностью опи- сывают фундаментальные сетевые концепции: от приложения до спо- соба физической передачи данных. Вот эти уровни:
    Я прикладной — предоставляет пользовательский интерфейс для передачи данных между программами;
    представительский — форматирует данные;
    Ш сеансовый — управляет связью между двумя узлами;

    I J l-\ •_# r-i
    Ш транспортный — обеспечивает передачу данных (надежную или ненадежную);
    И сетевой — поддерживает механизм адресации между узлами и маршрутизацию пакетов данных;
    канальный — управляет взаимодействием между узлами на физи- ческом уровне; отвечает за группировку данных, передаваемых по физическому носителю;
    II физический — физический носитель, ответственный за переда- чу данных в виде электрических сигналов.
    В этой модели NetBIOS относится к сеансовому и транспортному уровням.
    Интерфейс Microsoft NetBIOS
    Как уже упоминалось, существуют реализации NetBIOS API для разных сете- вых протоколов, что делает интерфейс независимым от протокола. Иначе говоря, если вы разработали приложение согласно спецификации NetBIOS,
    оно может использовать протоколы TCP/IP, NetBEUI или даже IPX/SPX. Эта полезная особенность позволяет корректно написанному приложению Net-
    BIOS выполняться почти на любом компьютере, независимо от физической сети. Однако есть несколько нюансов. Чтобы два приложения NetBIOS мог- ли связаться друг с другом по сети, они должны выполняться на рабочих станциях, имеющих по крайней мере один общий транспортный протокол.
    Например, если на компьютере Джона установлен только TCP/IP, а на ком- пьютере Мэри — только NetBEUI, приложения NetBIOS на компьютере Джо- на не смогут связаться с приложениями на компьютере Мэри.
    Кроме того, только определенные протоколы реализуют интерфейс Net-
    BIOS. Например, Microsoft TCP/IP и NetBEUI делают это по умолчанию, a IPX/
    SPX — нет. Поэтому Microsoft предлагает реализующую этот интерфейс вер- сию IPX/SPX, что следует учесть при проектировании сети. При установке протоколов обычно видно, поддерживает ли версия протокола IPX/SPX воз- можности NetBIOS. Например, вместе с Windows 2000 поставляется NWLink
    IPX/SPX/NetBIOS Compatible Transport Protocol — то, что этот протокол под- держивает NetBIOS, прямо вытекает из его названия. В Windows 95 и Win- dows 98 в окне свойств протокола IPX/SPX есть флажок, с помощью которо- го включается поддержка NetBIOS для IPX/SPX.
    Важно, что NetBEUI — немаршрутизируемый протокол. Если между кли- ентом и сервером есть маршрутизатор, приложения на этих компьютерах не смогут связаться. Маршрутизатор будет отбрасывать пакеты по мере их при- ема. TCP/IP и IPX/SPX — маршрутизируемые протоколы и не имеют такого ограничения. Так что если вы твердо запланировали использовать NetBIOS,
    задействуйте в сети по крайней мере один из маршрутизируемых транспор- тных протоколов. Характеристики протоколов и рекомендации по их выбо- ру мы приводим в главе 6.

    ЧАСТЬ I Устаревшие сетевые API
    Номера LANA
    Какое отношение имеют транспортные протоколы к NetBIOS с точки зре- ния программирования' Ключ к пониманию NetBIOS — номера сетевых
    адаптеров (LAN Adapter, LANA). В первоначальных реализациях NetBIOS
    каждому физическому сетевому адаптеру присваивалось уникальное значе- ние — номер LANA. В Win32 это стало проблематичным, так как рабочая станция может иметь и множество сетевых протоколов, и множество плат сетевого интерфейса.
    Номер LANA соответствует уникальным сочетаниям сетевого адаптера с транспортным протоколом. Так, если рабочая станция имеет две сетевых платы и два поддерживающих NetBIOS транспорта (например, TCP/IP и
    NetBEUI), будет присвоено четыре номера LANA. Номера могут соответство- вать сочетаниям адаптера с протоколом примерно следующим образом:
    0 — «TCP/IP — сетевой адаптер 1»;
    1 — «NetBEUI — сетевой адаптер 1»;
    2 — «TCP/IP — сетевой адаптер 2»;
    3 — «NetBEUI — сетевой адаптер 2».
    Номера LANA лежат в диапазоне от 0 до 9, и операционная система на- значает их без какого-либо определенного порядка Кроме LANA 0, который имеет особый смысл — это номер «по умолчанию» Когда появился интер- фейс NetBIOS, большинство операционных систем поддерживало един- ственный номер LANA и многие приложения были жестко запрограммиро- ваны на работу только с LANA 0. Для обратной совместимости вы можете вручную назначить LANA 0 конкретному протоколу
    В Windows 95 и Windows 98 можно открыть диалоговое окно свойств се- тевого протокола с помощью значка Network в Control Panel. Выберите вклад- ку Configuration в диалоговом окне Network, затем из списка компонентов —
    сетевой протокол и щелкните кнопку Properties Вкладка Advanced диалогово- го окна свойств для каждого протокола, поддерживающего NetBIOS, содержит флажок Set This Protocol To Be The Default Protocol Пометка флажка пере- страивает привязки протоколов так, чтобы протоколу по умолчанию был назначен LANA 0 Этот флажок можно пометить только для одного прото- кола Поскольку Windows 95 и Windows 98 поддерживают Plug-and-Play, не требуется явно задавать приоритет протоколов.
    Windows NT 4 допускает большую гибкость в установке NetBIOS На вклад- ке Services диалогового окна Network выберите NetBIOS Interface из списка
    Network Services и щелкните кнопку Properties. В диалоговом окне NetBIOS
    Configuration вы можете явно назначить номера LANA всем сочетаниям се- тевого интерфейса с транспортным протоколом В этом диалоговом окне сетевой интерфейс определяется именем его драйвера. Впрочем, имена про- токолов не всегда говорят сами за себя. На рис 1 -1 показано диалоговое окно
    NetBIOS Configuration. Оно свидетельствует: на компьютере установлено два сетевых адаптера и три транспортных протокола — TCP/IP (NetBT), NetBEUI
    (Nbf) и IPX/SPX (NwlnkNb). Щелкнув кнопку Edit, вы можете вручную назна- чить номера LANA для отдельных протоколов.

      1   2   3   4   5   6   7   8   9   ...   50


    написать администратору сайта