Команды протокола Telnet

Клавиатура должна иметь возможность ввода всех символов US ASCII, а также генерировать специальные стандартные функции управления терминалом (эти функции могут или при­сутствовать в реальном терминале, и тогда они должны пред­ставляться в стандартной форме команды, или отсутствовать, и тогда заменяться командой NO (No-Operation)):

• IP — Interrupt Process (прервать процесс). Данная команда реализует стандартный для многих систем меха­низм прерывания процесса выполнения задачи пользователя (<ctrl+c> в Unix-системах или <ctrl+Break> в MS-DOS). Следует заметить, что команда ip может быть использована и другим протоколом прикладного уровня, который может использовать Telnet;

• АО — Abort Output (прервать процесс выдачи). Многие системы позволяют остановить процесс, выдающий ин­формацию на экран. Здесь следует понять отличие данной команды от IP. При выполнении IP прерывается выполне­ние текущего процесса пользователя, но не происходит очистка буфера вывода, т. е. процесс может быть останов­лен, а буфер вывода будет продолжать передаваться на эк­ран. Обычно это происходит при взаимодействии по мед­ленным линиям связи;

• AYT — Are You There (вы еще здесь?). Назначение этой ко­манды — дать возможность пользователю убедиться, что в процессе работы по медленным линиям он не потерял связи с удаленной машиной. В силу буферизации ввода и вывода может оказаться, что пользователь будет продолжать вво­дить данные, а связь с удаленной машиной уже потеряна. В стандартной ситуации этот факт будет обнаружен только после нажатия клавиши <Enter>. Telnet дает возможность убедиться в наличии связи в любой момент времени;

• ЕС — Erase Character (удалить символ). Многие системы обеспечивают возможность редактирования командной строки путем введения символов «забой» или удаления по­следнего напечатанного символа на устройстве отображе­ния. В любом случае последний введенный в буфер символ удаляется. Команда ЕС призвана стандартизировать реали­зацию этого механизма;

• EL — Erase Line (удалить строку). Команда аналогична ЕС, но удаляет строку ввода целиком. Обычно выполнение этой команды приводит к очистке буфера ввода, так как при работе в режиме командной строки существует только одна строка ввода.

Команды Telnet имеют определенный формат. Команда — это 2-байтовая последовательность, состоящая из Esc-еимвола (255) IAC (Interpret as Command) и кода команды (240—255). Команды, связанные с процедурой согласования параметров се­анса, имеют 3-байтовый формат: третий байт — ссылка на уста­навливаемую опцию.

Интерфейс пользователя (Telnet) и демон (Telnetd). Для того чтобы протокол стал реально существующим стандартом, необходимы программные модули его реализации (в Unix-систе- мах такими программами являются Telnet и Telnetd).

Программа-сервер (Telnetd). Обычно Telnetd запускается через сервис Internet (inetd), в некоторых системах может быть запущен и вручную. Telnetd обслуживает ТСР-порт 23, но мо­жет быть запущен и на другой порт.

Принцип работы сервера заключается в том, что он «слу­шает» порт TCP и в случае поступления запроса на обслужива­ние назначает каждому удаленному клиенту псевдотерминал (pty) в качестве стандартного файла ввода (stdin), стандарт­ного файла вывода (stdout) и стандартного файла ошибок (stderr). При установке взаимодействия с удаленным клиен­том Telnetd обменивается командами настройки (эхо, обмен двоичной информацией, тип терминала, скорость обмена, пе­ременные окружения).

Надо сказать, что Telnetd реализует протокол Telnet частич­но. При работе по Telnet никогда не используется сигнал Go Ahead (GA). Двоичный режим передачи данных можно реально использовать только для одинаковых операционных сред.

Программа-клиент (Telnet) — это интерфейс пользователя для работы по протоколу Telnet. Программа работает в двух ре­жимах: в режиме командной строки (command mode) и в режиме удаленного терминала (input mode).

При работе в режиме удаленного терминала Telnet позволяет работать с буферизацией (line-by-line) или без нее (character-at- a-time). При работе без буферизации каждый введенный сим­вол немедленно отправляется на удаленную машину, с которой приходит «эхо». При буферизованном обмене введенные симво­лы накапливаются в локальном буфере и отправляются на уда­ленную машину пакетом. «Эхо» в последнем случае также ло­кальное.

Для переключения между режимом командной строки и ре­жимом терминала используют последовательность А], которая может быть изменена командами Telnet.

Таблица 6.2. Основные команды режима командной строки Telnet
Команда Назначение
open host [port] Начать Telnet-ceccnio с машиной host по порту port. Адрес машины можно задавать как в форме IP-адреса, так и в форме доменного адреса
close Завершить Telnet-сессию и вернуться в командный режим. Однако в некото­рых системах, если Telnet был вызван с аргументом, Close приведет к завер­шению работы Telnet
t quit| Завершить работу Telnet
z «Заморозить» Telnet-сессию и перейти в режим интерпретатора команд ло­кальной системы. Из этого режима можно выйти по команде Exit
mode type ?[command] help [command] Если значение type line, то используется буферизованный обмен данными, если character, то обмен не буферизованный Список команд или описание конкретной команды
send argument Данная команда используется для ввода команд и сигналов протокола Telnet, которые указываются в качестве аргумента. Например, send ао - посылает команду прервать выдачу на принтер NVT

 

Командный режим программы Telnet. В данный режим мож­но попасть по команде: