Intel Pentium processor - технический обзор
Технический обзор
Главная -
Расширения ISO версии NETBIOS
Расширения ISO версии NETBIOS
Вследствие того, что интерфейс NETBIOS не был специально соз-
дан для протоколов ISO, он не обеспечивает оптимальное взаимодейст-
вие с этими протоколами. Фирмой CMC это несоответствие было умень-
шено как результат выбора транспортного уровня для стыка; тем не
менее, некоторые свойства протоколов ISO не могут быть поддержаны
стандартной версией NETBIOS.
В частности, прикладные программы не имеют прямого доступа к
точкам NSAP и TSAP для адресации; они не могут посылать срочные
данные и не могут явно показывать конец текста в сообщении. Чтобы
поддержать эти свойства, корпорация CMC расширила стандартную вер-
сию интерфейса NETBIOS с помощью своих продуктов TOP-NETBIOS.
Для получения доступа к этим расширениям ISO, прикладные прог-
раммы помещают специальную "подпись" в Блок управления сетью (NCB)
NETBIOS. Эта подпись помещается в первые четыре байта поля CALLNAME
Блока управления сетю (NCB). Она состоит из байта с двоичной вели-
чиной ноль, за которым следуют три байта с величинами (в коде
ASCII): для заглавной "I, заглавная "S" и заглавная "O". Так как
стандартная версия NETBIOS не позволяет именам начинаться с двоич-
ной величины ноль, прикладные программы, не являющиеся ISO, не бу-
дут использовать имя, начинающееся с подписи ISO, а прикладная
программа, не являющаяся ISO, не может запросить эти расширения ISO.
Более того, если прикладная программа ISO попытается исполь-
зовать расширение ISO в NETBIOS, не являющемся ISO, сетевой адаптер
(в большинстве случаев) просто "отвергнет" Блок управления сетью
(NCB), как имеющий неверное имя. Этот метод гарантирует, что только
прикладные программы ISO используют расширение ISO; кроме того, ес-
ли прикладная программа по ошибке попытается использовать сеть, не
являющуюся ISO, то не будет причинено никакого вреда.
Первое расширение ISO позволяет прикладным программам опреде-
лять Точку доступа к транспортной услуге (TSAP), когда они регист-
рируют имя. Обычно, интерфейс NETBIOS выбирает для них TSAP. Для
того, чтобы определить TSAP, прикладная программа помещает подпись
ISO в байтах от нуля до трех в поле CALLNAME Блока управления
сетью (NCB) по команде NCB "ADD NAME". Она также помещает указатель
на определенную TSAP в байтах с четырех до семи в поле CALLNAME
Блока управления сетью (NCB).
Этот указатель, как и все в NETBIOS, состоит из смещения и
сегмента. Четвертый байт содержит наименее значимый байт смещения,
пятый байт наиболее важен, байт шесть содержит наименее значитель-
ный байт сегмента и седьмой байт содержит наиболее значимый байт.
Указатель указывает на структуру Точки доступа к транспортной услу-
ге (TSAP), первый байт которой содержит длину TSAP. Байты, которые
фактически составляют TSAP, следуют за индикатором длины. По тради-
ции ISO индикатор длины не включается в подсчет. Остальная часть
Блока управления сетью (NCB), включая само имя, дублирует стандарт-
ную команду NETBIOS "ADD NAME". На рис.7-8 показан образец расши-
ренной версии ISO команды "ADD NAME".
---------------------
NCB_COMMAND ! 0x30 или 0xВ0 !
!-------------------!
NCB_RETCODE ! !
!-------------------!
NCB_LSN ! !
!-------------------!
NCB_NUM ! !
!-------------------!
NCB_BUFFER@ ! !
!-------------------!
NCB_LENGTH ! !
!-------------------!
! \0ISO ! -------- Длина
NCB_CALLNAME ! парам. TSAP---------! ! 2 ! TSAP
! ! ! !----- !
!-------------------! !---->!Байт 1! Величина
! Имя ! !------! TSAP
NCB_NAME !-------------------! !Байт 2!
! ! ! !
NCB_RTO !-------------------! --------
! !
NCB_STO !-------------------!
! необязательно !
NCB_POST@ !-------------------!
! 0 !
NCB_LANA_NUM !-------------------!
! !
NCB_CMD_CPLT ---------------------
Рис. 7-8. Расширенная версия ISO команды ADD NAME.
Второе расширение ISO позволяет прикладным программам вызы-
вать друг друга путем непосредственного определения удаленных NSAP
и TSAP. Обычно, естественно, NETBIOS ожидает, чтобы прикладные
программыв определили удаленное имя; затем он использует Протокол
динамического поименования для обнаружения имени этого адреса. Для
того, чтобы непосредственно (напрямую) использовать Точки NSAP и
TSAP, прикладная программа снова помещает подпись ISO в поле
CALLNAME Блока NCB. Следом за этой подписью она помещает указатель
на ту NSAP, которую она вызывает, а затем указатель на TSAP, кото-
рую она вызывает.
Оба этих указателя также определяются смещениями и сегмента-
ми. Указатель NSAP занимает байты с четвертого по седьмой в поле
NCB_CALLNAME, а указатель TSAP - байты с восьмого по одиннадцатый.
Каждый указатель указывает на индикатор длины, а сами байты NSAP и
TSAP немедленно следуют за указателем длины. На рис. 7-9 показан
образец расширенной версии ISO команды CALL.
---------------------
NCB_COMMAND ! 0x10 или 0x90 !
!-------------------!
NCB_RETCODE ! !
!-------------------!
NCB_LSN ! !
!-------------------! -------- Длина
NCB_NUM ! ! ! 15 ! NSAP
!-------------------! ---->!------!
NCB_BUFFER@ ! ! ! !Байт 1! Величина
!-------------------! ! !------! NSAP
NCB_LENGTH ! ! ! !Байт 2!
!-------------------! ! --------
! \0ISO ! ! -------- Длина
NCB_CALLNAME ! парам. NSAP--------- ! 2 ! TSAP
! парам. TSAP--------- !----- !
!-------------------! !---->!Байт 1! Величина
! lclname ! !------! TSAP
NCB_NAME !-------------------! !Байт 2!
! тайм-аут ! ! !
NCB_RTO !-------------------! --------
! тайм-аут !
NCB_STO !-------------------!
! необязательно !
NCB_POST@ !-------------------!
! 0 !
NCB_LANA_NUM !-------------------!
! !
NCB_CMD_CPLT ---------------------
Рис. 7-9. Расширенная версия ISO команды CALL.
Третье расширение ISO обеспечивает прикладные программы
услугами срочных данных. Оно также позволяет прикладной программе
явно определять, установлен ли (или нет) флаг конца передачи.
Чтобы использовать эти средства, прикладная программа помещает под-
пись ISO в SEND NCB. (Эти свойства не могут быть использованы в ко-
манде SEND CHAIN).
В байте четыре поля NCB_CALLNAME прикладная программа устанав-
ливает особые биты для обозначения того, использовать или не ис-
пользовать срочные данные и устанавливать или не устанавливать флаг
конца передачи. Установив четвертый менее значимый бит как один,
(xxxx1xxx), прикладная программа выбирает опцию установки флага
конца передачи; ноль (xxxx0xxx) обозначает дополнительные данные.
Подобным же образом, пятый наименее значимый бит выбирает срочную
(xxx1xxxx) или обычную (xxx0xxxx) отправку данных.
Для получения срочных данных, прикладная программа должна по-
местить подпись ISO в свои команды RECEIVE и RECEIVE ANY. Когда
NETBIOS возвращает NCB, он заполняет байт четыре поля NCB_CALLNAME
битами, о которых говорилось выше. Четвертый наименее значимый бит
обозначает конец передачи (xxxx1xxx или xxxx0xxx), а пятый наименее
значимый бит обозначает срочные данные (xxx1xxxx или xxx0xxxx)>
Подпись ISO также сообщает интерфейсу NETBIOS, что прикладная
программа может принять расширенный код возврата "Сообщение прерва-
но" (шестнадцатиричная величина 0x07). Интерфейс NETBIOS использует
этот нестандартный код возврата, когда он начал перекомпоновку со-
общения данных и получает срочные данные до того, как закончилось
сообщение. Очевидно, что NETBIOS не может преобразовать срочные
данные в текущее сообщение, поэтому он возвращает NCB (Блок управ-
ления сетью), который использовался для преобразования вместе с ко-
дом возврата "Сообщение прервано". Следующая команда RECEIVE или
RECEIVE ANY, которая будет завершена, будет содержать срочные дан-
ные, а затем следующий NXCB будет содержать остальную часть первого
сообщения.
Если прикладная программа не помещает подпись ISO в свои ко-
манды RECEIVE или RECEIVE ANY, и NETBIOS получает срочные данные,
NETBIOS все равно попытается отправить эти данные. Пока NETBIOS не
начал процесс перекомпоновки (преобразования) для этого NCB,он мо-
жет поместить в пакет полученные данные и возвратить завершенный
Блок управления сетью (NCB). Прикладная программа, естественно, не
будет знать о срочных данных. Если процесс перекомпоновки начался в
NCB, интерфейс NETBIOS не сможет использовать расширенный код возв-
рата, и ему придется экстренно прервать сеанс.
В данной главе было рассказано о взаимодействии протоколов
NETBIOS - ISO, разработанном корпорацией CMC. Вследствие прозрач-
ности этого интерфейса, как прикладные программы ISO, так и стан-
дартные прикладные программы для ПЭВМ IBM могут использовать
NETBIOS в качестве интерфейса для сети. Стандартные прикладные
программы ПЭВМ в состоянии осуществлять коммуникацию друг с другом,
а прикладные программы ISO на ПЭВМ в состоянии обмениваться данными
друг с другом и с обычными прикладными программами ISO в других
системах (системах на основе неперсональных ЭВМ).
20.05.2012