Протокол NETBIOS
Хабаровск 2003
Министерство образования Российской Федерации Хабаровский государственный технический...
23 downloads
358 Views
428KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Протокол NETBIOS
Хабаровск 2003
Министерство образования Российской Федерации Хабаровский государственный технический университет
Протокол NETBIOS Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации»
Направление и специальности подготовки дипломированных специалистов: 654600 – Информатика и вычислительная техника; 220100 – Вычислительные машины, комплексы, системы и сети; 220200 – Автоматизированные системы обработки информации и управления; 220300 – Системы автоматизированного проектирования; 220400 – Программное обеспечение вычислительной техники и автоматизированных систем. Направление подготовки бакалавров: 552800 - Информатика и вычислительная техника
Хабаровск Издательство ХГТУ 2003
УДК 681.326(075) Протокол NETBIOS. Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации»/ Сост. А. Г. Шоберг, – Хабаровск: Изд-во Хабар. гос. техн. ун-та, 2003. – 16 с. Рассматриваются вопросы использования протокола передачи данных NetBios. В методических указаниях содержатся материалы, необходимые для самостоятельной подготовки студентов к выполнению лабораторных работ. В описание лабораторной работы включены цель работы, необходимое описание элементов протокола NETBIOS, порядок ее выполнения и правила оформления результатов. Методические указания разработаны в соответствии с рабочей программой и требованиями государственных образовательных стандартов высшего профессионального образования по направлению и специальности подготовки дипломированных специалистов: 654600 – «Информатика и вычислительная техника» и направлению подготовки бакалавров: 552800 – «Информатика и вычислительная техника». Работа составлена на кафедре "Вычислительная техника". Печатается в соответствии с решениями кафедры ВТ и методического совета института информационных технологий.
Главный редактор Л. А. Суевалова Редактор Компьютерная верстка Е. Н. Шоберг Лицензия на издательскую деятельность ЛР № 020526 от 23. 04. 97 Подписано в печать . . . Формат 60х84 1/16. Бумага писчая. Офсетная печать. Усл. печ. л. 0,8. Уч.-изд. л. 0,7. Тираж 70 экз. Заказ . С 79. Издательство Хабаровского государственного технического университета. 680035, Хабаровск, ул. Тихоокеанская, 136. Отдел оперативной полиграфии издательства Хабаровского государственного технического университета. 680035, Хабаровск, ул. Тихоокеанская, 136. ©
Издательство Хабаровского государственного технического университета, 2003
Министерство образования Российской Федерации Хабаровский государственный технический университет Утверждаю в печать Ректор ХГТУ проф. Иванченко С.Н. ___________________ "_____"____________2003г.
Протокол NETBIOS Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации» Направление и специальности подготовки дипломированных специалистов: 654600 – Информатика и вычислительная техника; 220100 – Вычислительные машины, комплексы, системы и сети; 220200 – Автоматизированные системы обработки информации и управления; 220300 – Системы автоматизированного проектирования; 220400 – Программное обеспечение вычислительной техники и автоматизированных систем. Направление подготовки бакалавров: 552800 - Информатика и вычислительная техника
Составитель: А. Г. Шоберг Рассмотрены и рекомендованы к изданию кафедрой "Вычислительная техника" "_____"____________2003г. Зав. кафедрой
Сай С.В.___________
Рассмотрены и рекомендованы к изданию методическим советом института информационных технологий "_____"____________2003г. Председатель совета
___________
Нормоконтролер
___________
Хабаровск Издательство ХГТУ 2003
Цель работы: Изучение сетевого протокола NETBIOS, подготовка программы обмена данных, передача данных между компьютерами. 1. Общие сведения При передаче информации по сети ключевым элементом является протокол. Именно протоколы определяют – как, когда и каким образом будут передаваться данные. Таким образом, протокол можно рассматривать, как набор правил, контролирующих обмен между данными между компьютерами. Основными элементами протоколов являются следующие: • Синтаксис (определяет формат данных и уровни сигналов); • Семантика (определяет управляющую информацию); • Синхронизация (определяет согласование скорости и последовательности обмена). Взаимодействие объектов сети требует решения многих задач. Современный подход предполагает не решение всех задач в едином модуле, а последовательное решение всех частных задач. Стек протоколов – это многоуровневая структура отдельных модулей, реализующих функции связи и обмена. На каждом уровне реализуются один или несколько протоколов. Существует достаточно много стеков протоколов, широко применяемых в сетях. Это и стеки, являющиеся международными и национальными стандартами, и фирменные стеки, получившие распространение благодаря распространенности оборудования той или иной фирмы. Использование в сети того или иного стека коммуникационных протоколов во многом определяет лицо сети и ее характеристики. В однородной сети все компьютеры используют один и тот же стек. В крупных корпоративных сетях, объединяющих различные сети, параллельно используются, как правило, несколько стеков. 2. Стек NETBIOS/SMB Этот стек широко используется в продуктах компаний IBM и Microsoft. На физическом и канальном уровнях этого стека используются все наиболее распространенные протоколы Ethernet, Token Ring, FDDI и другие. На верхних уровнях работают протоколы NetBEUI и SMB. Протокол блоков сообщений сервера SMB (Server Message Block) выполняет функции сеансового, представительного и прикладного уровней. SMB реализует файловый сервис, сервис печати и сервис передачи сообщений между приложениями. 3. Протокол NETBIOS Протокол NetBIOS (Network Basic Input/Output System) появился в 1984 году как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network фирмы IBM. В дальнейшем этот протокол был заменен протоколом расширенного пользовательского интерфейса NetBEUI - NetBIOS Extended User Interface. Для обеспечения совместимости приложений в качестве интерфейса к протоколу NetBEUI 3
был сохранен интерфейс NETBIOS. Протокол NetBEUI разрабатывался как эффективный протокол, потребляющий немного ресурсов, для использования в сетях, насчитывающих не более 200 рабочих станций. Этот протокол содержит функции, которые можно отнести к сетевому, транспортному и сеансовому уровням модели OSI, однако с его помощью невозможна маршрутизация пакетов. Это ограничивает применение протокола NetBEUI локальными сетями, не разделенными на подсети, и делает невозможным его использование в составных сетях. Некоторые ограничения NetBEUI снимаются реализацией этого протокола NBF (NetBEUI Frame). Отсутствует единый стандарта на протокол NETBIOS, поэтому в сетевом программном обеспечении разных фирм используются разные интерфейсы для вызова команд NETBIOS. Использование NETBIOS в большинстве случаев проще, чем использование других протоколов. 4. Адресация Для адресации компьютера (рабочей станции) используются имена размером 16 байт. Каждая станция имеет одно постоянное имя (permanent name), которое образуется из аппаратного адреса добавлением к нему слева десяти нулевых байт. Постоянное имя удалить нельзя, так как оно полностью определяется аппаратным обеспечением станции. Кроме постоянного имени протокол NETBIOS позволяет добавлять (и удалять) обычные имена и групповые имена. Обычные имена служат для идентификации рабочей станции, групповые могут служить для посылки пакетов одновременно нескольким станциям в сети. При добавлении обычного имени протокол NETBIOS опрашивает всю сеть для проверки уникальности имени. Групповое имя может быть одинаковое на нескольких станциях, поэтому при добавлении группового имени опрос сети не выполняется. После добавления нового имени этому имени присваивается номер имени (name number), который используется для передачи данных по сети. 5. Работа с протоколом NETBIOS Протокол NETBIOS предоставляет программам интерфейс для передачи данных с использованием дейтаграмм или виртуального канала связи. В первом случае пакеты доставляются независимо. Во втором случае маршрут прохождения пакетов устанавливается заранее. Для вызова NETBIOS программа должна создать в памяти управляющий блок - NCB (Network Control Block - сетевой управляющий блок). Адрес заполненного блока NCB передается прерыванию INT 5Ch. Есть также альтернативный интерфейс, реализованный в рамках прерывания INT 2Ah, который поддерживается эмулятором NETBIOS, разработанным фирмой Novell. 6. Проверка присутствия NETBIOS 4
Первое, что следует сделать программе, вызывающей NETBIOS, - проверить наличие в системе интерфейса NETBIOS. Сделать это можно с помощью прерываний. С помощью функции getvect() программа получает указатель на обработчик прерывания INT 5Ch. NETBIOS считается отсутствующим, если сегмент адреса равен нулю или F000h, обработчик прерывания не установлен. Ниже приведен фрагмент программы проверки присутствия NETBIOS с использованием прерывание INT 5Ch: void main(void) { void interrupt ( *int5C)(...); printf("Проверяем загружен ли NetBios.\n"); int5C = getvect(0x5c); if(FP_SEG(int5C) == 0x0000 || FP_SEG(int5C) == 0xF000) { printf("NetBios не загружен.\n"); } else printf("NetBios загружен.\n"); }
Другой способ проверки наличия интерфейса NETBIOS заключается в вызове прерывания INT 2Ah. Для этого нужно загрузить в регистр AH нулевое значение и вызвать прерывание. Если после возврата из прерывания в регистре AH попрежнему находится нуль, драйвер NETBIOS не установлен. Ниже приведен фрагмент программы проверки присутствия NETBIOS с использованием прерывание INT 2Ah: void main(void) { union REGS regs; printf("Проверка загружен ли NetBios.\n"); regs.h.ah = 0; int86(0x2a, ®s, ®s); if(regs.h.ah == 0) { printf("NetBios не загружен.\n"); } else printf("NetBios загружен.\n"); }
7. Вызов команд протокола NETBIOS Для вызова команд протокола NETBIOS необходимо: 1. подготовить блок NCB; 2. подготовить данные для вызова прерывания; 3. вызвать прерывание. Для вызова команд из программы, составленной на языке Си, можно воспользоваться средствами вызова программных прерываний, такими, как функция int86x(). 8. Формат блока NCB Формат блока NCB следующий: 5
typedef struct { byte NCB_COMMAND; byte NCB_RETCODE; byte NCB_LSN; byte NCB_NUM; void far *NCB_BUFFER_PTR; word NCB_LENGTH; byte NCB_CALLNAME[16]; byte NCB_NAME[16]; byte NCB_RTO; byte NCB_STO; void interrupt (*POST_FUNC)(void); byte NCB_ADAP_NUM; byte FINAL_NCB_RETCODE; byte NCB_RESERVE[14]; } NCB;
Поле NCB_COMMAND содержит код команды, которую необходимо выполнить. Существуют команды для работы с именами станций, для передачи и приема датаграмм, для работы на уровне каналов и некоторые другие. Поле NCB_RETCODE содержит код ошибки, возвращаемый NETBIOS до выполнения команды. Если, например, программа затребовала выполнение неправильной команды или задала для команды неправильные параметры, NETBIOS не будет выполнять такую команду и установит в поле NCB_RETCODE соответствующий код ошибки. Если же в этом поле после вызова NETBIOS находится нулевое значение, это еще не означает, что команда выполнилась правильно, однако она начала выполняться. Поле NCB_LSN (Local_Session_Number) содержит номер канала, установленного с другой программой. Это поле необходимо заполнять при выдаче команд передачи данных через каналы. Поле NCB_NUM (Network_Name_Number) содержит номер имени, который присваивается при добавлении обычного или группового имени. Это поле должно быть заполнено при приеме датаграмм. Поле NCB_BUFFER_PTR представляет собой дальний указатель в формате [сегмент:смещение] на буфер, который должен содержать данные перед выполнением передачи или на буфер, который будет использован для приема данных. Поле NCB_LENGTH определяет размер буфера, используемого для приема или передачи данных. Поле NCB_CALLNAME содержит имя станции, с которой станция желает установить канал для передачи данных. Поле NCB_NAME (Our_Name) должно содержать имя программы, под которым она будет принимать данные. В качестве этого имени может выступать обычное, групповое или постоянное имя.
6
Поля NCB_RTO (Reseive_TimeOut) и NCB_STO (Send_TimeOut) содержат интервал времени (измеряемый в 1/2 с), в течение которого ожидается завершение соответственно команд приема и передачи. Поле POST_FUNC - указатель на программу, которая получает управление после завершения команды. Эта программа (POST-программа) вызывается только в том случае, если в поле POST_FUNC был указан адрес программы. Если же это поле заполнить нулями, никакая программа вызываться не будет. Поле NCB_ADAP_NUM используется, если в станции установлено несколько сетевых адаптеров (в сетях Ethernet этого обычно не бывает). В этом поле указывается номер адаптера, для которого предназначена команда. Первый адаптер имеет номер 0, второй - 1. Поле FINAL_NCB_RETCODE содержит во время выполнения команды значение 0xFF. После завершения выполнения команды в это поле записывается код ошибки, который относится к выполнению команды в целом (в отличие от кода в поле NCB_RETCODE). Если ваша программа не задала адрес для программы в поле POST_FUNC, она должна опрашивать в цикле содержимое этого поля, ожидая, пока в нем не появится значение, отличное от 0xFF. Поле NCB_RESERVE зарезервировано для использования протоколом NETBIOS, программа не должна изменять его содержимое. 9. POST-программа POST-программа является программой обработки прерывания. Она получает управление в состоянии с запрещенными прерываниями. Регистры ES:BX содержат адрес блока NCB, который использовался при выполнении команды. В регистр AL записано значение из поля FINAL_NCB_RETCODE блока NCB. Требования к POST-программе - она должна сохранить регистры, установить регистр DS на сегмент данных. POST-программа должна работать как можно быстрее. Лучше всего если она будет использоваться только для установки флага, сигнализирующего основной программе о завершении выполнения команды. Перед завершением своей работы POST-программа должна восстановить содержимое всех регистров и выполнить команду возврата из прерывания IRET. 10. Команды NETBIOS Каждая команда NETBIOS реализована в двух вариантах - с ожиданием и без ожидания. Перед выполнением команды ее код должен быть записан в поле NCB_COMMAND блока NCB. Если программа не критична ко времени, можно выбрать вариант с ожиданием. В этом случае после вызова NETBIOS программа вновь получит управление только после завершения выполнения команды. Если по каким-либо причинам выполнение команды не может быть завершено, программа "зависнет". Программа, вызвавшая команду NETBIOS без ожидания, получает управление немедленно. Команда будет выполняться в фоновом режиме параллельно с работой вызвавшей ее программы. 7
На алгоритмическом языке Си список команд может выглядеть следующим образом: // Команды NETBIOS //Команды для работы с именами #define ADD_NAME 0xb0 #define ADD_NAME_WAIT 0x30 #define ADD_GROUP_NAME 0xb6 #define ADD_GROUP_NAME_WAIT 0x36 #define DELETE_NAME 0xb1 #define DELETE_NAME_WAIT 0x31 //Команды для передачи/приема дейтаграмм #define SEND_DATAGRAM 0xa0 #define SEND_DATAGRAM_WAIT 0x20 #define SEND_BCST_DATAGRAM 0xa2 #define SEND_BCST_DATAGRAM_WAIT 0x22 #define RECEIVE_DATAGRAM 0xa1 #define RECEIVE_DATAGRAM_WAIT 0x21 #define RECEIVE_BCST_DATAGRAM 0xa3 #define RECEIVE_BCST_DATAGRAM_WAIT 0x23 //Команды для работы с каналами #define CALL 0x90 #define CALL_WAIT 0x10 #define LISTEN 0x91 #define LISTEN_WAIT 0x11 #define HANG_UP 0x92 #define HANG_UP_WAIT 0x12 //Команды для передачи/приема по каналу #define SEND 0x94 #define SEND_WAIT 0x14 #define SEND_NO_ACK 0xf1 #define SEND_NO_ACK_WAIT 0x71 #define CHAIN_SEND 0x97 #define CHAIN_SEND_WAIT 0x17 #define CHAIN_SEND_NO_ACK 0xf2 #define CHAIN_SEND_NO_ACK_WAIT 0x72 #define RECEIVE 0x95 #define RECEIVE_WAIT 0x15 #define RECEIVE_ANY 0x96 #define RECEIVE_ANY_WAIT 0x16 //Дополнительные команды #define RESET 0x32 #define CANCEL 0x35 #define SESSION_STATUS 0xb4 #define SESSION_STATUS_WAIT 0x34 #define STATUS 0xb3 #define STATUS_WAIT 0x33 #define TRACE 0xf9 #define TRACE_WAIT 0x79 #define UNLINK 0x70
11. Выполнение отдельных команд Выполнение команд с ожиданием и без ожидания, с простым или групповым именем выполняются, как правило аналогично. 8
11.1. Работа с именами При добавлении имен команда добавляет указанное в поле NCB_NAME имя в таблицу имен, расположенную на рабочей станции. Имя должно быть уникальным в сети. Оно не может использоваться на других станциях ни как обычное, ни как групповое. Если длина имени меньше 16 байт, оно должно быть дополнено справа символами пробела. В процессе добавления имени NETBIOS посылает по сети запрос. Если такое имя уже используется на какойлибо станции, эта станция пришлет ответ. В этом случае команда завершается с ошибкой и имя добавлено не будет. После успешного выполнения команды NETBIOS присваивает имени номер и возвращает его в поле NCB_NUM блока NCB. Номер имени требуется для работы с датаграммами. При добавлении имени станции осуществляется опрос всей сети, занимающий довольно много времени. При удалении имен команда удаляет имя из таблицы имен рабочей станции, если оно не используется каким-либо каналом. Если же имя используется каналом, то оно помечается как назначенное для удаления и удаляется после закрытия канала. Если имя используется несколькими каналами, его можно удалить только после закрытия всех связанных с ним каналов. Если попытаться удалить имя, которое используется каналом, команда завершится с кодом ошибки 0xF. В этом случае перед удалением имени необходимо закрыть канал. Как только канал будет закрыт, связанное с ним имя будет автоматически удалено, если перед закрытием канала выполнялась попытка удалить имя. 11.2. Передача/Прием датаграмм С помощью команд приема и передачи датаграмм можно передавать и принимать пакеты без подтверждения. Длина сообщений, передаваемых при помощи команд данной группы, ограничена 512 байтами. Существуют команды для передачи и приема датаграмм по обычному, групповому имени, а также адресованных одновременно всем станциям в сети (Broadcast - широковещательном режиме). Для передачи датаграммы не надо создавать канал с принимающей станцией. При передаче и приеме заполняются адрес и размер буфера в NCB_BUFFER_PTR и NCB_LENGTH. Для передачи (Send) необходимо записать вызываемое имя в NCB_CALLNAME (не требуется для широковещательного режима). Номер станции, выдающей команду, записан в NCB_NUM. При приеме (Receive) NCB_CALLNAME не заполняется. Команды, работающие с именами, не могут принимать датаграммы, переданные в широковещательном режиме и наоборот. Имя может быть простым и групповым. Если перед вызовом команды в поле NCB_NUM блока NCB записать значение 0xFF, команда сможет принимать датаграммы от любой станции для любого имени. Если длина принятой дата9
граммы превышает значение, указанное в поле NCB_LENGTH, принятый блок данных будет усечен. Датаграмму переданную в широковещательном режиме примут только станции выдавшие команду широковещательного приема (в том числе и передающая станция). Если такую команду приема выдать несколько раз, то все буферы будут заполнены одинаковыми данными. 11.3. Работа с каналами Посредством команд виртуальные каналы могут создаваться, удаляться, а также может быть определено их состояние. При работе с каналами имена используются только для создания каналов. Далее, когда каналы уже будут созданы, для передачи данных используются номера каналов, а не имена или номера имен. Канал создается одновременно двумя станциями, одна из которых при этом находится в режиме приема запроса на создание канала, а другая передает такой запрос. Канал создается с любыми двумя именами, т.е. можно указывать и свое имя в качестве приемника. Команда передачи запроса (Call) устанавливает канал между двумя именами. В поле NCB_NAME указывается имя станции, которая устанавливает канал, в поле NCB_CALLNAME - имя станции, с которой устанавливается канал. Эти имена могут относиться к программам, работающим на одной или на разных станциях. Для успешного создания канала принимающая сторона должна выдать команду приема запроса (Listen). При создании канала указывается время тайм-аута для операций приема и передачи данных. Команда делает несколько попыток создать канал и в случае неудачи возвращает код ошибки. При работе с групповым именем команду Call следует выдать несколько раз, так как за один вызов создается только один канал. После создания канала поле NCB_LSN в NCB обеих станций будет содержать присвоенный номер канала. Его следует сохранить. Для команды Listen в поле NCB_CALLNAME указывается имя, с которым устанавливается канал. Если в первый байт имени записать символ "*", канал будет установлен с любой вызывающей станцией. Программа может выдать несколько команд Listen для создания одновременно нескольких каналов. Команда Hung_Up предназначена для закрытия канала, номер которого указан в поле NCB_LSN. Она должна быть выполнена с обеих сторон канала после заверш njя работы. Если канал занят, то выдается ошибка. Для команд передачи с ожиданием отводится 20 секунд на завершение. 11.4. Передача/Прием по каналам Данные могут передаваться (Send) несколькими способами: c ожиданием (Wait) и без него, с проверкой доставки (Ask) и без нее. Кроме того, можно передать два блока данных (Chain). При приеме используется вариант команды Receive. 10
С помощью команды Send программа может передать блок данных размером от 1 до 65535 байт по созданному ранее каналу. Номер канала должен быть записан в поле NCB_LSN. Адрес передаваемого блока данных и его длина должны быть записаны в поля NCB_BUFFER_PTR и NCB_LENGTH. Передачи данных с использованием каналов гарантирует не только доставку блоков данных, но и правильную последовательность, в которой эти блоки будут приняты. Если истекло время тайм-аута, заданного при создании канала, команда завершается с ошибкой. Для команды Chain_Send данные передаются как один блок. Общий размер передаваемых с помощью этой команды данных может достигать 2х64 К байт. Первый буфер задается, как при обычной передаче. Размер второго буфера должен быть записан в первые два байта поля NCB_CALLNAME, а его адрес занимает следующие четыре байта этого поля. Кроме выбранного канала можно получить данные от любого партнера (Receive_Any). Для этой команды вместо номера канала указывают номер имени, полученный вашей программой при добавлении имени. Если в поле NCB_NUM проставить значение 0xFF, эта команда будет принимать данные от любых партнеров для любых каналов, созданных на вашей станции. Если размер буфера недостаточен для записи принятых данных, команда возвращает код ошибки; в этом случае можно вызвать команду еще раз для того, чтобы получить данные, не поместившиеся в буфере при предыдущем вызове команды. 11.5. Дополнительные команды Reset - для установки NETBIOS в исходное состояние (удаляются все имеющиеся каналы и имена). С помощью этой команды можно также изменить максимальное количество доступных программе каналов и используемых одновременно блоков NCB. По умолчанию доступны шесть каналов и 12 блоков NCB. Cancel - Команда используется для отмены других запущенных команд. 12. Варианты заданий 1. Осуществить передачу файла посредством команд с ожиданием на одиночное имя, используя датаграммы. 2. Осуществить передачу файла посредством команд без ожидания на одиночное имя, используя датаграммы. 3. Осуществить передачу файла посредством команд с ожиданием на групповое имя (прием на несколько станций), используя датаграммы. 4. Осуществить передачу файла посредством команд без ожидания на групповое имя (прием на несколько станций), используя датаграммы. 5. Осуществить передачу файла посредством команд с ожиданием в широковещательном режиме, используя датаграммы. 6. Осуществить передачу файла посредством команд без ожидания в широковещательном режиме, используя датаграммы. 11
7. Принять датаграммы от любой станции для любого имени. 8. Осуществить передачу файла посредством команд с ожиданием без подтверждения приема на одиночное имя, используя канал. 9. Осуществить передачу файла посредством команд без ожидания и подтверждения на одиночное имя, используя канал. 10. Осуществить передачу файла посредством команд с ожиданием без подтверждения приема на групповое имя (прием на несколько станций), используя каналы. 11. Осуществить передачу файла посредством команд без ожидания и подтверждения приема на групповое имя (прием на несколько станций), используя каналы. 12. Осуществить передачу файла посредством команд с ожиданием и подтверждением приема на одиночное имя, используя канал. 13. Осуществить передачу файла посредством команд без ожидания с подтверждением приема на одиночное имя, используя канал. 14. Осуществить передачу файла посредством команд с ожиданием с подтверждением приема на групповое имя (прием на несколько станций), используя каналы. 15. Осуществить передачу файла посредством команд без ожидания с подтверждением приема на групповое имя (прием на несколько станций), используя каналы. 16. Принять данные от любого партнера для любого канала, созданного на станции. 17. Передать файл одной командой двумя блоками, с помощью команды Chain_Send с ожиданием и подтверждением имя любое. 18. Передать файл одной командой двумя блоками, с помощью команды Chain_Send без ожидания и подтверждения имя любое. 19. Передать файл одной командой двумя блоками, с помощью команды Chain_Send с ожиданием без подтверждения имя любое. 20. Передать файл одной командой двумя блоками, с помощью команды Chain_Send без ожидания и подтверждения имя любое. 13. Порядок выполнения лабораторной работы. 1. Изучить основы протокола NETBIOS. 2. Написать и отладить программы (клиент и сервер) для передачи данных между компьютерами в соответствии с заданным вариантом. Язык программирования по выбору (Ассемблер, С или др.) 3. Продемонстрировать преподавателю работу подготовленных программ в сети. 4. Подготовить отчет по лабораторной работе. 5. Ответить на вопросы преподавателя по данной тематике. 14. Контрольные вопросы 1. Определение протокола. 12
2. На каких уровнях модели взаимодействия открытых систем работает NETBIOS? 3. Какие задачи выполняются на отдельных уровнях модели взаимодействия открытых систем? 4. Какие группы команд присутствуют в NETBIOS? 5. Элементы блока NCB. 6. Назначение Post-программы. 7. Определение группового имени? 8. Определение широковещательного режима? 9. Как осуществить прием датаграммы от любой станции? 10. Как работает команда Chain_Send? 15. Содержание отчета. 1. 2. 3. 4. 5. 6. 7.
Титульный лист Цель и задачи работы Краткое описание протокола NETBIOS Описание подготовленной программы передачи данных. Текст программы. Выводы. Список литературы 16. Список литературы
1. Олифер В.Г., Олифер Д.А. Сетевые операционные системы. СПб:Питер., 1999 г., 544 с. 2. Олифер В.Г., Олифер Д.А. Компьютерные сети: принципы и технологии. СПб:Питер., 1999 г., 544 с. 3. Вычислительные машины, системы и сети: Учебник / А.П. Пятибратов, С.Н. Беляев, Г.М. Козырева и др.; под ред. Проф. Пятибратова. – М.: Финансы и статистика, 1991г. 4. Ларионов А.М. и др. Вычислительные комплексы, системы и сети/ А.М. Ларионов, С.А. Майоров, Г.И. Новиков: Учебник для вузов. Л.: Энергоатомиздат. Ленингр. отд-ние, 1987. 5. Бэрри Нанс. Компьютерные сети: Пер. с англ. – М.; БИНОМ, 1996. 6. Фролов А.Ф, Фролов Г.Ф. Библиотека Системного Программиста. Том 8 Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS, М.: Диалог-МИФИ, 1993, 160 стр.
13