Intel Pentium processor - технический обзор
Технический обзор
КОМАНДЫ ПОДДЕРЖКИ СЕАНСА
Эти команды образуют ядро NETBIOS, они несут ответствен-
ность за фактическую передачу информации (до 65535 байт по зап-
росу) в сети. Прикладная программа использует команды поддержки
сеанса для установления канала между двумя любыми именами в се-
ти, или даже внутри самой ПЭВМ. Заметьте, что имена используются
для инициации процесса, а NETBIOS возвращает номер в поле
NCB_LSN, которое и будет применяться с этого момента далее.
CALL/10H (ожидание) 90H (возврат). Открывает сеанс с другим
именем, определенным полем NCB_CALLNAME.
Команда CALL инициирует сеанс с именем, определенным в поле
NCB_CALLNAME, используя местное имя, предоставляемое полем
NCB_NAME. При вызове (командой CALL) другого имени, оно уже дол-
жно установить команду LISTEN. NETBIOS возвращает номер сеанса в
поле NCB_LSN. Необходимые для команды поля Блока управления сети
(NCB) включают поля: NCB_RTO, NCB_STO и NCB_POST@ (если выбрана
опция возврата (неожидания)).
LISTEN/11H (ожидание) 91H (возврат). Позволяет осуществлять
установку сеанса с именем, определенным в поле NCB_CALLNAME.
Выполенение команд CALL, LISTEN позволяет устанавливать се-
анс с именем в поле NCB_CALLNAME и с именем в поле NCB_NAME.
Поле NCB_CALLNAME может быть установлено с символами "*", -
в этом случае из команды CALL принимается любое имя. Имя, кото-
рое инициирует команду CALL, затем возвращается в поле
NCB_CALLNAME. Важно учесть, что уоманда LISTEN занимает ввод се-
анса. Требуемые поля включают: NCB_NAME, NCB_RTO, NCB_STO и поле
NCB_POST@ (если используется опция неожидания).
HANG UP/12H (ожидание) 92H (возврат). Закрывает сеанс с
другим именем.
Эта команда завершает сеанс и все ждущие кеоманды RECEIVE.
Команда HANG UP требует поля NCB_POST@ для опции неожидания.
SEND/14H (ожидание) 94H (возврат). Посылает данные по номе-
ру сеанса, показанному номером местного сеанса (LSN).
SEND NO_ACK/71H (ожидание) F1H (возврат). Обеспечивает ко-
манду SEND, которая не требует NO_ACK NETBIOS для передачи кви-
тирования данных. Доступна только в версии NETBIOS 2.2 и выше.
Команда SEND (надежно) передает буфер емкостью до 65535
байт, на который указывает NCB_BUFFER@ посредством сеанса, пока-
занного NCB_LSN. Несколько команд SEND могут выстраиваться в че-
редь. Если команда SEND не может завершиться, сеанс заканчивает-
ся и должен быть переустановлен.
CHAIN SEND/17H (ожидание) 97H (возврат). Подобна команде
SEND, за исключением того, что данные берутся из буферов для
указанного числа байт. Вместе в цепочку могут быть связаны два
буфера.
CHAIN SEND NO_ACK/72H (ожидание) F2H (возврат). Обеспечива-
ет команду CHAIN SEND, которая не требует NETBIOS для передачи
квитирования данных. Доступна только в версии NETBIOS 2.2 и выше.
NETBIOS посылает буферы как одно конкатенированное сообще-
ние, предел для размера которого состоявляет 65535 байт.
Поле NCB_CALLNAME используется для определения длины (пер-
вые 2 байта) и адреса (последующие 4 байта) второго буфера. Не-
обходимые для команды поля включают: NCB_BUFFER@, NCB_LENGTH,
NCB_CALLNAME (формат длины 0000H, формат адреса 00000000H) и по-
ле NCB_POST@, если используется опция неожидания.
RECEIVE/15H (ожидание) 95H (возврат). Получает данные из
определенной области. Могут быть определены величины тайм-аута.
Эта команда устанавливает адаптер для получения данных из
определенной области. Если объем получаемых данных превышает
доступный размер буфера, будет возвращен код 06H в поле
NCB_RETCODE. Требуемые поля включают: NCB_BUFFER@, NCB_LENGTH,
и поле NCB_POST@, если используется опция неожидания.
RECEIVE ANY/16H (ожидание) 96H (возврат). Получает данные
от любой станции, с которой был установлен сеанс. Подобна коман-
де RECEIVE, за исключением того, что эта команда позволяет полу-
чать данные от любого сеанса. Поле NCB_NUM (как возвращеное из
команд ADD NAME или ADD GROUP NAME) должно быть использовано
вместо имени. Требуемые поля такие же как и для команды RECEVE.
SESSION STATUS/34H (ожидание) B4H (возврат). Получает сос-
тояние всех активных сеансов для имени станции.
Эта команда возвращает информацию о состоянии всех активных
сеансов ддя данного локального имени (NCB_NAME) или для всех
локальных имен (если символ звездочки (*) является первым байтом
поля NCB_NAME). Требуемые поля включают NCB_BUFFER@, NCB_LENGTH,
и NCB_POST@, если используется опция неожидания.
Формат возвращаемой информации о состоянии является следую-
щим: 1 байт для количества сеансов, о которых дается отчет, 1
байт для количества сеансов с данным именем, 1 байт для количес-
тва ждущих команд дейтаграмм, 1 байт для количества ждущих ко-
манд RECEIVE ANY, 36 байт для информации о сеансе, которая вклю-
чает: 1 байт для номера местного сеанса, 1 байт для состояния
сеанса (01H - ждущая команда LISTEN, 02H - ждущая команда CALL,
03H - установка сеанса, 04H - ждущая команда HANG UP, 05H - за-
вершена команда HANG UP, 06H - экстренное прерывание сеанса);
16 байт для местного имени, 16 байт для удаленного имени, 1 байт
для количества ждущих команд RECEIVE и 1 байт для количества
ждущих команд SEND и CHAIN SEND.
20.05.2012