Протокол IPX. Организация блока ECB. Диагностический сервис IPX

Страницы работы

Фрагмент текста работы

Лекция №12

Протокол IPX

Организация блока ECB

Поля:

·  4-х байтный указатель на следующий ЕСВ;

·  4-х байтный указатель программы ESR;

·  однобайтный флаг состояния ЕСВ (inuse);

·  однобайтный код завершения запроса;

·  двубайтный сокет для приема-передачи;

·  4-х байтный рабочий буфер для IPX;

·  12 байт – рабочий буфер для драйвера адаптера;

·  6 байт – адрес для передачи пакета;

·  2 байта – количество фо\рагментов в пакете:

4 байта – адрес фрагмента;

2 байта – размер фрагмента и т. д.

Назначение полей

1.  Link – предназначен для организации списков, состоящих из блоков ЕСВ.

2.  ESRADDRES – содержит полный адрес программного модуля (сегмент:смещение), который получает управление при завершении процесса чтения или передачи пакета IPX. Этот модуль называется программой обслуживания события ESR (Event Service Routine). Если программа не использует ESR, то она пишет во второе поле 0. Тогда о завершении выполения операции чтения/передачи можно узнать по изменению содержимого поля inuse.

3.  Inuse – индикатор засершения операции приема/передачи пакета. Перед тем, как вызввать функцию IPX, программа записывает в inuse 0. Пока операция аередачи данных для конкретного ЕСВ не завершится, поле inuse = 0.

4.  CCode – после выполения функции IPX содержит код результата выполнения (например, 00 – пакет был принят без ошибок).

5.  Socket – содержит номер скета, связанного с данным ЕСВ. Если КСВ используется для приема, то это поле содержит номер сокета, на который выполнялся прием пакета. Если ЕСВ используется для передачи, то это поле содержит номер сокета передающей программы, но не номер соукта той программы, которая должна получить пакет.

6.  IPX Work Space – зарезервировано для использования драйверов  IPX. Программа не должна инициализировать или изменить содержимое этого поля, пока обработка ЕСВ не завершена.

7.  IMMADDRESS (IMMadiate ADDRESS) – непосредственный адрес. Содержит адрес узла в сети, в которой будет направлен пакет. Если пакет передается в пределах одной сети, это поле будет содержать адрес станции получателя (такой же, как и в заголовке IPX). Если пакет предназначен для другой сети и будет проходить через  мост, доанное поле будет содержать адрес этого моста в сети, из которой передается пакет.

8.  Fragment CNT – содержит количество фрагментов, на которые надо разбить принятый пакет или из которого надо собрать передаваемый пакет. За этим полем располагаются дискипторы форагментов, состоящие из указателя в формате поля размера фрагмента SIZE. Самый первый фрагмент не должен быть короче 30 байт.

Диагностический сервис IPX

Основная идея определения конфигурации сети (метод диагностического сервиса) заключается в том, что программа-клиент павылает запрос о конфигурации одновременно всем станциям данной сети на сокете 0456h, указав в качкства номера сети 0, а в качестве адреса станции назначения FFFFFFFFFFFFh (6 байт единиц). Анализируя приходящую от станций диагностическую информацию, программа-клиент может обнаружить в сети мосты и определить как номера подключенных к мостам сетей, так и сетевые адреса самих мостов.

Зная сетевой адрес мостов и номера подключенных к ним сетей, программа-клиент сможет посв\ылать запросы для поиска программы-сервера во все подключенные к мостам сети. Может посылать диагностические запросы на сокете 0456h и в другие сет с целью поиска имеющихся там мостов. Т. о. можно выяснить конфигурацию всей сети и установить связь в\с программой-сервером где бы она не находилась.

Драйвер протокола IPX и SPX обеспечивают 2 вида диагностического сервиса:

·  IPX-диагностика;

·  SPX-диагностика.

Для определения конфигурации сети нужна только IPX-диагностика. SPX-диагностика предназначена для определения производительности сети и для получения более полной информации о составе и конфигурации ПО рабечей станции.

Программа может посылать диагностические запросы мибо конкретной станции в сети, либо всем станциям, либо всем станциям за исключением перечисленных в списке. Для посылки диагностического запроса программа должна подготовить IPX-пакет, состоящий из обычного заголовка размером 30 байт и блока данных, имеющих следующую структуру:

·  количество станций, от которых не требуется получать диагностику;

·  адреса этих станций.

Если необходимо получить диагностику от всех станций в первом поле ставится 0.

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

Похожие материалы

Информация о работе