Министерство образования Российской Федерации Хабаровский государственный технический университет Утверждаю в печать Рек...
17 downloads
237 Views
206KB 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
Министерство образования Российской Федерации Хабаровский государственный технический университет Утверждаю в печать Ректор ХГТУ проф. Иванченко С.Н. ___________________ "_____"____________2003г.
Протокол IPX Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации» Направление и специальности подготовки дипломированных специалистов: 654600 – Информатика и вычислительная техника; 220100 – Вычислительные машины, комплексы, системы и сети; 220200 – Автоматизированные системы обработки информации и управления; 220300 – Системы автоматизированного проектирования; 220400 – Программное обеспечение вычислительной техники и автоматизированных систем. Направление подготовки бакалавров: 552800 - Информатика и вычислительная техника
Составитель: А. Г. Шоберг Рассмотрены и рекомендованы к изданию кафедрой "Вычислительная техника" "_____"____________2003г. Зав. кафедрой
Сай С.В.___________
Рассмотрены и рекомендованы к изданию методическим советом института информационных технологий "_____"____________2003г. Председатель совета
___________
Нормоконтролер
___________
Хабаровск Издательство ХГТУ 2003
Протокол IPX
Хабаровск 2003
Министерство образования Российской Федерации Хабаровский государственный технический университет
Протокол IPX Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации»
Направление и специальности подготовки дипломированных специалистов: 654600 – Информатика и вычислительная техника; 220100 – Вычислительные машины, комплексы, системы и сети; 220200 – Автоматизированные системы обработки информации и управления; 220300 – Системы автоматизированного проектирования; 220400 – Программное обеспечение вычислительной техники и автоматизированных систем. Направление подготовки бакалавров: 552800 - Информатика и вычислительная техника
Хабаровск Издательство ХГТУ 2003
УДК 681.326(075) Протокол IPX. Методические указания к лабораторной работе по дисциплине «Сети и телекоммуникации»/ Сост. А. Г. Шоберг, – Хабаровск: Изд-во Хабар. гос. техн. ун-та, 2003. – 16 с. Рассматриваются вопросы использования протокола передачи данных IPX. В методических указаниях содержатся материалы, необходимые для самостоятельной подготовки студентов к выполнению лабораторных работ. В описание лабораторной работы включены цель работы, необходимое описание элементов протокола IPX, порядок ее выполнения и правила оформления результатов. Методические указания разработаны в соответствии с рабочей программой и требованиями государственных образовательных стандартов высшего профессионального образования по направлению и специальности подготовки дипломированных специалистов: 654600 – «Информатика и вычислительная техника» и направлению подготовки бакалавров: 552800 – «Информатика и вычислительная техника». Работа составлена на кафедре "Вычислительная техника". Печатается в соответствии с решениями кафедры ВТ и методического совета института информационных технологий.
Главный редактор Л. А. Суевалова Редактор Компьютерная верстка Е. Н. Шоберг Лицензия на издательскую деятельность ЛР № 020526 от 23. 04. 97 Подписано в печать . . . Формат 60х84 1/16. Бумага писчая. Офсетная печать. Усл. печ. л. 0,8. Уч.-изд. л. 0,7. Тираж 70 экз. Заказ . С 79. Издательство Хабаровского государственного технического университета. 680035, Хабаровск, ул. Тихоокеанская, 136. Отдел оперативной полиграфии издательства Хабаровского государственного технического университета. 680035, Хабаровск, ул. Тихоокеанская, 136. ©
Издательство Хабаровского государственного технического университета, 2003
Цель работы: Изучение сетевого протокола IPX, подготовка программы обмена данных, передача данных между компьютерами. 1.Общие сведения Протокол IPX (Internetwork Packet Exchange) предоставляет возможность программам, запущенным на рабочих станциях, обмениваться короткими пакетами данных без подтверждения их приема. В общем смысле IPX является датаграммным протоколом транспортного уровня. В значительной мере данный протокол используется в сетях Novell Netware. IPX относится к маршрутизируем протоколам, т. е. ориентирован на межсетевое взаимодействие компьютеров. Протокол не квитирует полученные дейтаграммы и не обеспечивает правильную доставку. Квитирование - это один из известных методов обеспечения надежной связи. Для каждого пакета отправитель ожидает от приемника так называемую «положительную квитанцию» - служебное сообщение, извещающее о том, что пакет был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого пакета передатчик запускает таймер, и если по его истечению положительная квитанция на получена, то кадр считается утерянным. Передача данных протоколом является негарантированной в смысле того, что приемник не предусматривает подтверждения успешного получения пакета передатчику. Однако он позволяет определить, был ли пакет передан. Подтверждение о передаче пакета передается источником своей прикладной программе 2. Программы клиент и сервер В сети какой-либо компьютер может принимать запросы на обслуживание от других рабочих станций, которые, в данном случае, являются клиентами. Компьютер, который обслуживает запросы, называется сервером. В сети может быть несколько серверов и несколько клиентов. Различные программы, запущенные одновременно на одном компьютере могут являться и клиентами, и серверами. После выполнения очередного запроса программа-сервер переходит в состояние ожидания. Она ждет пакет данных от клиента. В зависимости от содержимого этого пакета сервер может выполнять различные действия, в соответствии с логикой работы программы. Например, она может принимать дополнительные пакеты данных или передать свои пакеты. Для того чтобы создавать программы-серверы и программы-клиенты, нам необходимо научиться выполнять две задачи: Для того чтобы передавать данные по сети необходимо иметь или написать самим программы клиент и сервер, которые должны содержать выполнить следующие операции: 1. Определение наличия драйвера протокола; 3
2. Инициализация сервера и клиента, соответственно; 3. Прием и передача данных. 3. Проверка наличия драйвера Первое, что должна сделать программа, желающая работать в сети с протоколом IPX, - проверить, установлен ли драйвер протокола. Затем необходимо получить адрес вызова этого драйвера (точку входа). В дальнейшем программа вызывает драйвер при помощи команды дальнего вызова процедуры по адресу точки входа драйвера IPX. Для того чтобы проверить, загружен ли драйвер IPX, необходимо загрузить в регистр АХ значение 7A00h и вызвать прерывание INT 2Fh. Если после возврата из прерывания в регистре AL будет значение FFh, драйвер IPX загружен. Адрес точки входа для вызова API драйвера при этом будет находиться в регистровой паре ES:DI. Если же содержимое регистра AL после возврата из прерывания INT 2Fh будет отлично от FFh, драйвер IPX / SPX не загружен. Эта же процедура может быть представлена на языке Ассемблера следующим образом: ;Вызов прерывания mov ax, 7a00h int 2fh ;Если драйвера нет cmp al, ffh jne _ipx_init_exit ;Адрес точки входа mov word ptr ipx_entry+2, es mov word ptr ipx_entry, di
4. Инициализация сервера и клиента Программа-сервер или программа-клиент идентифицировали себя в сети при помощи сокета. Для хранения сокета используется двухбайтовое слово, так что диапазон возможных значений простирается от 0 до FFFFh. Однако нельзя использовать произвольные значения. Некоторые значения зарезервированы для использования определенными программами. Сокеты от 4000h до 8000h распределяются динамически. Диапазон сокетов, распределяемых фирмой Novell разработчикам программного обеспечения, расположен выше значения 8000h. При обмене данными сервер принимает пакеты на сокете, значение которого известно программам-клиентам. Сами же программы-клиенты могут использовать либо то же самое значение сокета, либо получать свой сокет динамически. Динамически распределяемые сокеты выдаются программам на время их работы по специальному запросу. Перед началом работы программа должна запросить сокет у протокола IPX, а перед завершением - освободить его. Клиент может сообщить серверу свой сокет путем передачи его в пакете данных. После определения сокета необходимо узнать сетевой адрес станцийполучателей. Для того чтобы клиент мог послать запрос серверу, необходимо 4
кроме сокета сервера знать его сетевой адрес - номер сети и адрес рабочей станции в сети. Если программа-клиент знает только сокет программы-сервера, но не знает его сетевой адрес, последний можно запросить у сервера, послав запрос во все станции одновременно. Такой запрос в пределах одного сегмента сети можно выполнить, если в качестве адреса рабочей станции указать специальное значение FFFFFFFFFFFFh (все единицы). Это "широковещательный" (broadcast) адрес. Клиент посылает такой запрос на известный ему сокет программы-сервера. Его принимают все программы на всех рабочих станциях, ожидающие пакеты на данном сокете. Программа-сервер может определить свой собственный сетевой адрес (выполнив вызов соответствующей функции IPX) и послать его клиенту. Адрес клиента программа-сервер может взять из заголовка принятого пакета. 5. Передача и прием данных Для приема или передачи пакета прикладная программа должна: 1. подготовить пакет данных, включая его заголовок; 2. подготовить блок управления событием ECB (Event Control Block); 3. передать его адрес соответствующей функции IPX и вызвать ее. Функции IPX, принимающие или передающие пакет, не выполняют ожидания завершения операции, а сразу возвращают управление вызвавшей их программе. Прием или передача выполняются сетевым адаптером автономно и асинхронно по отношению к программе, вызвавшей функцию IPX для передачи данных. После того, как операция передачи данных завершилась, в соответствующем поле блока ECB устанавливается признак. Программа может периодически проверять ECB для обнаружения признака завершения операции. В блоке ECB можно указать адрес процедуры, которая будет вызвана при завершении выполнения операции передачи данных. В этом случае прикладная программа не будет тратить время на периодическую проверку блока ECB. 6. Формат передаваемого пакета Каждый пакет состоит из заголовка и блока данных. Станция, которая будет передавать пакет данных, должна записать в заголовке адрес назначения и свой собственный. Заголовок пакета может быть описан следующей структурой: struct _IPXHeader { unsigned char Checksum[2]; unsigned char Length[2]; unsigned char TransportControl; unsigned char PacketType; unsigned char DestNetwork[4]; unsigned char DestNode[6]; unsigned char DestSocket[2]; unsigned char SourceNetwork[4]; unsigned char SourceNode[6]; 5
unsigned char SourceSocket[2]; } IPXHeader;
Необходимо отметить, что по адресу младшего байта записывается старший байт данных. Поле Checksum предназначено для хранения контрольной суммы передаваемых пакетов. Оно заполняется автоматически, так как проверка данных производится драйвером сетевого адаптера. Поле Length определяет общий размер пакета – количество байт в заголовке и данных. Длина заголовка фиксирована и составляет 30 байт. Количество байт передаваемых данных варьируется от 0 до 546. Следовательно, максимальное число, записываемое в поле Length составляет 576. Пакеты длиной менее 30 байтов автоматически отбраковываются. Пакет с нулевым количеством данных может служить для поддержки связи. Поле TransportControl служит счетчиком мостов, которые проходит пакет на своем пути. Перед передачей пакета содержимое этого поля автоматически обнуляется. Поле PacketType определяет тип передаваемого пакета. При использовании IPX тип пакета равен 4 (для протокола SPX тип равен 5). Далее следует записать сетевые адреса приемника и передатчика. Сетевой адрес состоит из номера сети, адреса станции в сети и идентификатора программы на рабочей станции - сокета. Номер сети - это номер сегмента сети. Если в общей сети есть мосты, каждая отдельная сеть, подключенная через мост, имеет свой уникальный номер сети. Адрес станции - это число, которое является уникальным для каждой рабочей станции. Поля DestNetwork, DestNode, DestSocket – сеть, рабочая станция и сокет приемника, а также поля SourceNetwork, SourceNode, SourceSocket для передатчика должны быть полностью заполнены до передачи пакета. «Полностью» означает – все байты. Поле Data в пакете содержит передаваемые данные. Максимальная длина этого поля 546 байт. 7. Формат блока ECB Блок ЕСВ состоит из фиксированной части размером 36 байт, а также массива дескрипторов, описывающих отдельные фрагменты пакетов данных. Некоторые поля заполняются различно для приема или передачи. В комментариях, символ "s" ( Send) обозначает поля, которые должна установить прикладная программа при использовании ECB для отсылки пакета. Буква "r" ( Receive) обозначает поля, которые должна установить прикладная программа при использовании ECB для получения пакета. Символ "t" ( Time) обозначает поля, которые должна установить прикладная программа при использовании Блока ECB для планирования события во времени. "Старший- младший" определяет порядок следования байтов. Принятый порядок следования байт "младшийстарший", поэтому при работе с этими полями следует внимательным. 6
Структура ЕСВ на языке С может быть описана следующим образом: struct ECB { void far *Link; void far (*ESRAddress)(void); /* s r t */ unsigned char InUse; unsigned char CCode; unsigned int Socket; /* s r старший-младший */ unsigned char IPXWorkspace[4]; unsigned char DriverWorkspace[12]; unsigned char ImmAddress[6]; /* s старший-младший */ unsigned int FragmentCnt; /* s r */ struct { void far *Address; unsigned int Size; } Packet[2]; };
Поле Link предназначено для организации списков, состоящих из блоков ECB. Драйвер IPX использует это поле для объединения переданных ему блоков ECB в списки, записывая в него полный адрес в формат [сегмент:смещение]. После того, как IPX выполнит выданную ему команду и закончит все операции над блоком ECB, программа может распоряжаться полем Link по своему усмотрению. В частности, она может использовать это поле для организации списков или очередей свободных или готовых для чтения блоков ECB. Поле ESRAddress содержит полный адрес программного модуля (в формате [сегмент:смещение]), который получает управление при завершении процесса чтения или передачи пакета IPX. Этот модуль называется программой обслуживания события ESR (Event Service Routine). Если программа не использует ESR, она должна записать в поле ESRAddress нулевое значение. В этом случае о завершении выполнения операции чтения или передачи можно узнать по изменению содержимого поля InUse. Поле InUse является индикатором завершения операции приема или передачи пакета. Перед тем как вызвать функцию IPX, программа записывает в поле InUse нулевое значение. Пока операция передачи данных, связанная с данными ECB, не завершилась, поле InUse содержит ненулевые значения: FFh - ECB используется для передачи пакета данных; FEh - ECB используется для приема пакета данных, предназначенного программе с определенным сокетом; FDh - ECB используется функциями асинхронного управления событиями AES (Asynchronous Event Sheduler), ECB находится в состоянии ожидания истечения заданного временного интервала; FBh - пакет данных принят или передан, но ECB находится во внутренней очереди IPX в ожидании завершения обработки. Программа может постоянно опрашивать поле InUse, ожидая завершения процесса передачи или приема данных. Как только в этом поле окажется 7
нулевое значение, программа может считать, что запрошенная функция выполнена. Поле CCode после того, как в поле InUse появится нулевое значение, будет содержать код результата выполнения функции. Если принимался пакет, в поле CCode могут находиться следующие значения: 00h - пакет был принят без ошибок; FFh - указанный в ECB сокет не был предварительно открыт программой; FDh - переполнение пакета (это может быть в случае, если поле количества фрагментов в пакете FragmentCnt равно нулю, или если буферы, описанные дескрипторами фрагментов, имеют недостаточный размер для записи принятого пакета); FCh - запрос на прием данного пакета был отменен специальной функцией драйвера IPX. Если ECB использовался для передачи пакета, в поле CCode после завершения передачи могут находиться следующие значения: 00h - пакет был передан без ошибок (протокол не обеспечивает гарантированной доставки, так что этот признак весьма условен); FFh - пакет невозможно передать физически из-за неисправности в сетевом адаптере или сети; FEh - пакет невозможно доставить по назначению, так как станция с указанным адресом не существует или неисправна; FDh - неверный пакет, из-за длины (меньше 30 байт), или поле количества фрагментов в пакете FragmentCnt равно нулю, или т.п.; FCh - запрос на передачу данного пакета был отменен специальной функцией драйвера IPX. Поле Socket содержит номер сокета, связанный с данным ECB. При приеме - сокет принимающей программы, при передаче - сокет передающей программы. Поле IPXWorkspase зарезервировано для использования драйвером IPX. Программа не должна инициализировать или изменять содержимое этого поля, пока обработка ECB не завершена. Поле DriverWokspace зарезервировано для использования драйвером сетевого адаптера. Программа не должна инициализировать или изменять содержимое этого поля пока обработка ECB не завершена. Поле ImmAddress (непосредственный адрес) содержит адрес узла в сети, в который будет направлен пакет. Если пакет передается в пределах одной сети, поле ImmAddress будет содержать адрес станции-получателя (такой же, как и в заголовке пакета IPX). Если же пакет предназначен для другой сети и будет проходить через мост, поле ImmAddress будет содержать адрес этого моста в сети, из которой предается пакет. Поле FragmentCnt содержит количество фрагментов, на которые надо разделить принятый пакет, или из которых надо собрать передаваемый пакет. В простейшем случае весь пакет, состоящий из заголовка и данных, может 8
представлять собой непрерывный массив. Однако часто хранятся отдельно данные и заголовок пакета. Механизм фрагментации позволяет избежать пересылок данных или непроизводительных потерь памяти. Можно указать отдельные буферы для приема данных и для заголовка пакета. Если сами принимаемые данные имеют какую-либо структуру, можно распределить отдельные блоки по соответствующим буферам. Значение, записанное в поле FragmentCnt, не должно быть равно нулю. Если в этом поле записано значение 1, весь пакет вместе с заголовком записывается в один общий буфер. Сразу вслед за полем FragmentCnt располагаются дескрипторы фрагментов, состоящие из указателя в формате [сегмент:смещение] на фрагмент Address и поля размера фрагмента Size. Если программе надо разбить принятый пакет на несколько частей, она должна установить в поле FragmentCnt значение, равное количеству требуемых фрагментов. Затем для каждого фрагмента необходимо создать дескриптор, в котором указать адрес буфера и размер фрагмента. Аналогичные действия выполняются и при сборке пакета перед передачей из нескольких фрагментов. При этом самый первый фрагмент не должен быть короче 30 байт, так как там должен находиться заголовок пакета IPX. 8. Основные функции Основными функциями IPX являются следующие IPXOpenSocket 0x00 IPXCloseSocket 0x01 IPXGetLocalTarget 0x02 IPXSendPacket 0x03 IPXListenForPacket 0x04 IPXSheduleEvent 0x05 IPXCancelEvent 0x06 IPXGetIntervalMaker 0x08 IPXGetInternetworkAddress 0x09 IPXRelinquishControl 0x0A IPXDisconnectFromTarget 0x0B
Для выполнения функций можно использовать регистры общего назначения процессора, при этом в ВХ записывается номер функции. 8.1. Работа с сокетами Перед началом передачи пакетов программа должна получить свой идентификатор - сокет. Функция IPXOpenSocket предназначена для получения сокета. Сокеты являются ограниченным ресурсом, поэтому программы должны заботиться об освобождении сокетов. Когда вы открываете (запрашиваете у IPX) сокет, вы должны указать тип сокета - короткоживущий или долгоживущий. Короткоживущие сокеты освобождаются (закрываются) автоматически после завершения программы. Долгоживущие сокеты можно закрыть только с помощью специально предназначенной для этого функции IPXCloseSocket. Такие сокеты больше всего подходят для использования резидентными программами 9
или драйверами. Более того, для резидентных программ, работающих с IPX, вы просто обязаны использовать долгоживущие сокеты, так как в противном случае при завершении программы (и при оставлении ее резидентной в памяти) все открытые программой сокеты будут автоматически закрыты. В этом случае после активизации резидентная программа останется без сокетов. IPXOpenSocket – открытие сокета. При вызове: BX - 00h. AL - Тип сокета: 00h - короткоживущий; FFh - долгоживущий. DX-Запрашиваемый номер сокета или 0000h, если требуется получить динамический номер сокета. Байты номера сокета находятся в обратном порядке. После завершения: AL-Код завершения: 00h - сокет открыт; FFh - этот сокет уже был открыт раньше; FEh переполнилась таблица сокетов. DX- присвоенный номер сокета. IPXCloseSocket - функция закрывает заданный в регистре DX сокет, короткоживущий или долгоживущий: При вызове: BX - 01h. DX - номер закрываемого сокета. После завершения: Регистры не используются. 8.2. Работа с сетевыми адресами Для работы с полным адресом можно использовать такую структуру: struct NET_ADDRESS { unsigned char Network[4]; unsigned char Node[6]; unsigned char Socket[2];
Так как станция-приемник может находиться в другой сети и прежде чем достигнуть цели, пакет может пройти один или несколько мостов. Поле непосредственного адреса ImmAddress блока ECB должно содержать либо адрес станции назначения (если передача происходит в пределах одной сети), либо адрес моста (если пакет предназначен для рабочей станции, расположенной в другой сети)., функция IPXGetLocalTaget. IPXGetLocalTaget вычисляет непосредственный адрес, помещаемого в поле ImmAddress блока ECB перед передачей пакета, т. е. адрес той станции в данной сети, которая получит передаваемый пакет, используя указанный в буфере размером 12 байт полный сетевой адрес, состоящий из номера сети, адреса станции в сети и сокета приложения. При вызове: BX - 02h. ES:SI - указатель на буфер длиной 12 байт, содержащий полный сетевой адрес станции, на которую будет послан пакет. ES:DI - указатель на буфер длиной 6 байт, в который будет записан непосредственный адрес, т. е. адрес той станции, которой будет передан пакет. Это может быть адрес моста. После завершения: AL - код завершения: 00h - непосредственный адрес был успешно вычислен; FAh - непосредственный адрес вычислить невозможно, так как к указанной станции нет ни одного пути доступа по сети. CX - время пересылки пакета до станции назначения (только если AL равен нулю) в тиках системного таймера. IPXGetInternetworkAddress определяет свой сетевой адрес. В буфер не записывается сокет, потому что считается, что сокет программа знает, так как она его открывала. При вызове: BX - 09h. ES:SI - Указатель на буфер длиной 10 10
байт; в него будет записан адрес станции, на которой работает данная программа. После завершения: -Регистры не используются. 8.3. Прием и передача пакетов IPXListenForPacket используется для приема пакетов, в адресе назначения которых указан сокет, совпадающий с номером сокета, подготовленного в блоке ECB и предварительно открытого с помощью функции IPXOpenSocket. Одновременно программа может подготовить некоторое количество блоков ECB (максимальное количество определяется в конфигурационном файле драйвера параметром IPX SOCKETS), и для каждого вызвать функцию IPXListenForPackets. Эта функция сразу возвращает управление вызвавшей ее программе, не дожидаясь прихода пакета. Получение пакета вызывает передачу управления ESR программе, если адрес таковой записан в ECB, кроме того признак результата записывается в поле InUse. При вызове: BX -04h. ES:DI - Указатель на заполненный блок ECB. Необходимо заполнить поля:ESRAddress; Socket; FragmentCnt; указатели на буферы фрагментов Address; размеры фрагментов Size. После завершения: -Регистры не используются. После приема пакета в поле CCode могут находиться следующие значения: 00h-пакет был принят без ошибок; FFh-указанный в ECB сокет не был предварительно открыт программой; FDh-переполнение пакета: либо поле количества фрагментов в пакете FragmentCnt равно нулю, либо буферы, описанные дескрипторами фрагментов, имеют недостаточный размер для записи принятого пакета; FCh-запрос на прием данного пакета был отменен специальной функцией драйвера IPX. IPXSendPacket ставит блок ECB в очередь на передачу, а сама передача пакета происходит асинхронно по отношению к вызову. Момент завершения передачи пакета определяется по передаче управления ESR-программе или по признаку в поле InUse. При вызове: BX - 03h. ES:DI - Указатель на заполненный блок ECB. Необходимо заполнить поля: ESRAddress; Socket ImmAddress; FragmentCnt; указатели на буферы фрагментов Address; размеры фрагментов Size. После завершения: Регистры не используются. После передачи пакета в поле CCode могут находиться следующие значения: 00h-пакет был передан без ошибок; FFh - пакет невозможно передать физически из-за неисправности в сетевом адаптере или в сети; FEh - пакет невозможно доставить по назначению, так как станция с указанным адресом не существует или неисправна; FDh сбойный пакет по какой-либо причине; FCh-запрос на передачу данного пакета был отменен специальной функцией драйвера IPX. IPXRelinquishControl выделяет драйверу IPX процессорное время, необходимое для его правильной работы. Эта функция должна вызываться в циклах ожидания приема и передачи пакетов. При вызове: BX - 0Ah. После завершения: Регистры не используются. Описанных выше функций достаточно для реализации обмена данными. 9. Варианты заданий 1. Переслать файл от сервера к клиенту. Без подтверждения. 11
2. Терминал для пересылки символьных строк от клиента к серверу и обратно. 3. Реализовать широковещательный режим передачи файла на несколько компьютеров. 4. Переслать файл от сервера к клиенту. С подтверждением доставки. 5. Реализация эхо-протокола. Передаются символьные строки серверу. Затем они же передаются обратно и отображаются на экране. 6. Переслать файл от клиента к серверу. Без подтверждения. 7. Реализовать широковещательный режим передачи символьных строк на несколько компьютеров. 8. Переслать файл от сервера к клиенту. С подтверждением доставки. 9. Реализовать передачу команд управления движением объекта на другом компьютере (влево, вверх, вниз, вправо). 10. Порядок выполнения лабораторной работы. 1. Изучить основы протокола IPX. 2. Написать и отладить программы (клиент и сервер) для передачи данных между компьютерами в соответствии с заданным вариантом. Язык программирования по выбору (Ассемблер, С или др.) 3. Продемонстрировать преподавателю работу подготовленных программ в сети. 4. Подготовить отчет по лабораторной работе. 5. Ответить на вопросы преподавателя по данной тематике. 11. Контрольные вопросы 1. Основные характеристики протокола IPX. 2. Адресация при использовании протокола IPX. 3. Формат пакета данных IPX. 4. Формат сетевого адреса. 5. Поля пакета, заполняемые при передаче и приеме. 6. Определение точки входа в API драйвера IPX. 7. Использование и распределение сокетов 8. Формат блока ЕСВ. 9. Назначение и использование поля InUse. 10. Основные функции API драйвера IPX для работы с сокетами. 11. Основные функции API драйвера IPX для работы с сетевыми адресами. 12. Основные функции API драйвера IPX для приёма и передачи. 12. Содержание отчета. 1. 2. 3. 4. 5.
Титульный лист Цель и задачи работы Краткое описание протокола NETBIOS Описание подготовленной программы передачи данных. Текст программы. 12
6. Выводы. 7. Список литературы 13. Список литературы 1. Фролов А.Ф, Фролов Г.Ф. Библиотека Системного Программиста. Том 8. Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS, М.: Диалог-МИФИ, 1993, 160 стр. 2. Олифер В.Г., Олифер Д.А. Сетевые операционные системы. СПб:Питер., 1999 г., 544 с. 3. Олифер В.Г., Олифер Д.А. Компьютерные сети: принципы и технологии. СПб:Питер., 1999 г., 544 с. 4. Вычислительные машины, системы и сети: Учебник / А.П. Пятибратов, С.Н. Беляев, Г.М. Козырева и др.; под ред. Проф. Пятибратова. – М.: Финансы и статистика, 1991г. 5. Ларионов А.М. и др. Вычислительные комплексы, системы и сети/ А.М. Ларионов, С.А. Майоров, Г.И. Новиков: Учебник для вузов. Л.: Энергоатомиздат. Ленингр. отд-ние, 1987.
13