Книга: TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)

13.9 Команды telnet

До широкого распространения сетей терминалы подключались непосредственно к компьютерам. Нажатие пользователем клавиши клавиатуры немедленно интерпретировалось операционной системой локального компьютера.

Существовали специальные клавиши управления, которые активизировали операционную систему или какую-то системную команду. Например, пользователь терминала ASCII мог одновременно нажать клавиши CONTROL и С (записывается как ^C) для указания операционной системе на завершение работы текущего приложения.

Во время сеанса telnet управляющие коды должны быть преобразованы в команды telnet и переданы на удаленный конец сетевого соединения в соответствующую операционную систему. Для этого клиентская программа telnet должна обрабатывать физические действия пользователя с клавиатурой, транслировать специальные управляющие символы в команды telnet и пересылать их на сервер telnet.

Команды telnet отмечаются байтом "интерпретировать как команду" (Interpret As Command — IAC), сопровождаемым одним или несколькими байтами кодов:

Байт Interpret As Command равен X'FF (десятичное 255).

Клиент telnet посылает серверу последовательности команды, чтобы указать на выполнение различных функций, например:

Прерывание (Break - BRK) Послать сигнал "прерывание" или "внимание" процессу удаленного приложения.
Прервать процесс (Interrupt Process — IP) Сигнал для удаленной операционной системы об остановке выполнения текущей удаленной прикладной программы (например, остановить зацикленную программу).
Прервать вывод (Abort Output — AO) Запросить у серверного приложения не посылать оставшиеся данные текущей операции.
Вы здесь? (Are You There? — AYT) Проверить, что сервер действительно работает.
Стереть символ (Erase Character — EC) Пользователь обычно исправляет ошибочно введенный в строке символ с помощью клавиш Backspace или Del. В режиме посимвольной пересылки ASCII ошибочный элемент данных уже был послан удаленному приложению, поэтому требуется ввод специальной команды ЕС.
Стереть строку (Erase One — EL) Запрос к удаленному приложению на уничтожение текущей строки.

Команды могут быть посланы даже после согласования параметров соединения, когда партнеры больше не находятся в режиме NVT. Но предположим, что партнеры согласовали обмен двоичными данными. Как будет тогда распознаваться последовательность символов команды? Ответ состоит в том, что всякий раз последовательность X'FF, возникая в данных; удваивается при отправке. Приемник устраняет дублирование. Когда он получает одиночный X'FF (или нечетное их число), становится ясно, что поступила команда.

Легко понять, как команды telnet должны использоваться разработчиком приложений клиент/сервер. Например, результатом щелчка мышью на кнопке STOP браузера WWW должна стать отправка команды Abort Output, завершающая загрузку большого по размеру изображения или документа.

Возможности telnet хорошо проявляются при анализе работы конечного пользователя как клиента, обращающегося к приложению на сервере. Важно отметить, что при использовании telnet в качестве инструментального средства разработки команды могут быть посланы в любом направлении обмена.

Оглавление книги


Генерация: 0.059. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз