Telnet. Главление

Сетевые технологии: как устроен Интернет 

 

Telnet

 

Описание сервиса и протокола

TELNET - одна из самых старых информационных технологий Интернет. Основным назначением протокола является реализация сетевого терминала для доступа к ресурсам удаленного компьютера. Протокол TELNET обеспечивает двунаправленный восьмибитный канал передачи данных. Его главной задачей является создание стандартного метода взаимодействия терминальных устройств и терминал -ориентированных процессов через сеть:

схема клиент-сервер для Telnet

 

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

 

Протокол TELNET находится на сеансовом уровне модели OSI/ISO. Для обеспечения удаленного доступа к терминалу сервера стандартом резервируется порт 23.

Основу протокола составляют три базовые концепции:

  1. концепция "Сетевого Виртуального Терминала",

  2. принцип согласования параметров,

  3. симметрия терминалов и процессов.

Концепция "Сетевого Виртуального Терминала"

Когда устанавливается соединение, предполагается, что оно начинается и завершается на "Сетевом Виртуальном Терминале" (Network Virtual Terminal, NVT). NVT -- это воображаемое устройство, которое создает промежуточное стандартное представление канонического терминала. NVT является стандартным описанием наиболее широко используемых возможностей реальных физических терминальных устройств. NVT позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации.

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

Характеристики диалога определяются устройством с меньшими возможностями. В результате, "пользовательскому" и "серверному" узлам не нужно хранить информацию о характеристиках терминалов друг друга. Все узлы отображают характеристики своих устройств так, чтобы другой стороне казалось, что она имеет дело с NVT. Обычно, под "пользовательским" понимают узел, к которому подключен реальный терминал, а под "серверным" - который предоставляет некоторый сервис.

В качестве альтернативы можно считать "пользовательским" тот узел, который инициирует соединение:
 

Принцип согласования параметров

NVT - это минимально необходимый набор параметров, который позволяет работать даже самым примитивным устройствам. Реальные современные устройства обладают гораздо большими возможностями представления информации. Принцип согласования параметров позволяет использовать эти возможности. Например, NVT является терминалом, который не может использовать функции управления курсором, а реальный терминал, с которого осуществляется работа, возможно умеет это делать. Используя согласование параметров, терминальная программа предлагает обслуживающему процессу использовать управляющие последовательности для управления выводом информации. Получив такую команду процесс начинает вставлять управляющие последовательности в данные, предназначенные для отображения.

Протокол предлагает структуру дополнительных параметров "DO, DON'T, WILL, WON'T", позволяющую пользователю и серверу более точно договориться об используемых в соединении соглашениях.

Команда WILL XXX указывает на предложение отправляющей стороны использовать параметр XXX. DO XXX и DON'T XXX являются, соответственно, положительным и отрицательным ответом.

Аналогично, DO XXX посылается как предложение получающей стороне использовать параметр XXX. WILL XXX и WON'T XXX суть положительный и отрицательный ответы. Так как NVT это то, что остается, когда никакие параметры не используются, ответы DON'T и WON'T гарантируют, что соединение останется в состоянии, которое подходит обеим сторонам.

В отличие от других протоков сеансового уровня, таких как FTP или SMTP, команды передаются не английскими словами (или их сокращениями), а в виде восьмибитных последовательностей (байтов).

Так, команде DO соответствует байт 253, WON'T -- 252, и т.д.


Установка определенного параметра происходит так: один из участников соединения посылает другому запрос, предлагая использовать в сеансе работы определенный параметр. Если другая сторона соглашается, параметр немедленно вступает в силу. Если приходит отказ, используется то значение параметра, которое определяется для NVT. Обычно параметры согласуются вначале при установке соединения, хотя при работе одна из сторон может вновь изменить какие-либо параметры.

Симметрия терминалов и процессов

Симметрия терминалов и процессов отражает тот факт, что все управляющие команды протокола могут даваться любой стороной, участвующей в соединении. Разделения на "клиент" и "сервер" здесь нет.

Сетевой Виртуальный Терминал

Сетевой Виртуальный Терминал является двунаправленным символьным устройством. Он имеет устройство печати и клавиатуру. Устройство печати реагирует на поступающие данные, а клавиатура генерирует исходящие данные и пересылает на другой конец соединения, и, если требуется "эхо", также на печатающее устройство NVT.

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

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

Вот эти пять представлений:

Interrupt Process (IP)

Многие системы предоставляют функцию, которая прерывает выполнение процесса пользователя. Она часто используется, например, если пользователь считает, что его процесс попал в состояние бесконечного цикла. IP является стандартным представлением для вызова этой функции.

Abort Output (AO)

Многие системы предоставляют функцию, которая позволяет производящему вывод на терминал процессу продолжить выполнение не осуществляя этот вывод. AO есть стандартное представление этой функции. Так, некоторые подсистемы могут принимать от пользователя некоторую команду, а в ответ выводить одну или несколько строк текста и затем приглашение для ввода следующей команды. Если в середине этого вывода поступает AO, система может прекратить вывод текста и сразу вывести приглашение.

Are You There (AYT)

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

Erase Character (EC)

EC есть стандартное представление для функции, удаляющей последний введенный знак из потока данных, получаемого от пользователя. Эта функция обычно используется для исправления ошибок ввода.

Erase Line, (EL)

EL есть стандартное представление для функции, удаляющей все данные из из текущей строки ввода. Обычно используется для редактирования ввода с клавиатуры.

Печатающее устройство NVT

Печатающее устройство NVT имеет неограниченную ширину и длину страницы и может воспроизводить все 95 печатных символов набора USASCII (с кодами от 32 до 126). Из 33 управляющих кодов USASCII (0-31 и 127) и 128 кодов от 128 до 255, следующие имеют специальное значение для печатающего устройства NVT:

  • NULL (NUL) 0 - нет действия;

  • Line Feed (LF) 10 - перемещает принтер на следующую строку, сохраняя горизонтальную позицию;

  • Carriage Return (CR) 13 - перемещает принтер на левую границу текущей строки;

Кроме того, следующие коды должны оказывать определенный эффект на печатающее устройство NVT. Хотя никакая сторона не должна предполагать, что будут произведены какие-либо действия после передачи следующих кодов:

  • BELL (BEL) 7 - производит слышимый или видимый сигнал (головка печатающего устройства не перемещается);

  • Back Space (BS) 8 - перемещает печатающую головку на одну позицию влево;

  • Horizontal Tab (HT) 9 - перемещает печатающую головку к следующей горизонтальной метке табуляции;

  • Vertical Tab (VT) 11 - перемещает печатающую головку к следующей вертикальной метке табуляции;

  • Form Feed (FF) 12 - перемещает печатающее устройство к началу следующей страницы. Горизонтальная позиция не изменяется.
    Остальные коды не оказывают никакого действия на печатающее устройство NVT.

Клавиатура NVT может с помощью клавиш (комбинаций или последовательностей клавиш) производить все 128 кодов, входящих в USASCII. Кроме того, клавиатура NVT должна уметь генерировать некоторые дополнительные коды, такие как определенные ранее IP, AO, AYT, EC, EL и некоторые другие.

Структура команд TELNET

Все команды TELNET состоят минимум из двух знаков: экранирующий знак "Interpret as Command" (IAC), за которым следует код команды.:

 

Рисунок 1 

Команды, управляющие согласованием параметров состоят из трех знаков: третьим является код соответствующего параметра:

 

Рисунок 3

 

Коды параметров и их смысл описываются в различных RFC.

Вот некоторые команды TELNET:

 

НАЗВАНИЕ

КОД

ЗНАЧЕНИЕ

Interrupt Process

244

Функция IP

Abort output

245

Функция AO

Are You There

246

Функция AYT

Erase Character

247

Функция EC

Erase Line

248

Функция EL

WILL (код параметра)

251

Указывает на желание ввести в действие указанный параметр, или подтверждение что он уже действует

WON'T (код параметра)

252

Указывает на отказ принимать данный параметр

DO (код параметра)

253

Указывает на запрос на введение в действие указанного параметра

DON'T (код параметра)

254

Указывает на требование другой стороне вывести из действия указанный параметр

IAC

255

IAC


Итак, работу протокола TELNET можно вкратце охарактеризовать следующим образом: терминальная программа пользователя устанавливает TCP-соединение с некоторым сервисом. Данные, вводимые пользователем, передаются на другой конец соединения, а поступающие данные отображаются на терминале. Если ни одна из сторон не инициирует
процедуру согласования дополнительных параметров соединения, то используются базовые возможности, определяемые NVT.

Работа Telnet клиентов

В качестве примера опишем работу программы telnet, входящей в поставку ОС Windows. Эта программа предназначена для взаимодействия с другим узлом сети по протоколу TELNET. Чтобы запустить программу, войдите в меню Пуск и выберите пункт «Выполнить».

 

Введите в строке ввода имя команды 'telnet' и нажмите Enter.

 

Появится консольное окно Windows, в котором выполняется программа telnet:

 

"Escape Character is 'Ctrl+]'" означает, что для прерывания сеанса работы и возврата к приглашению telnet можно использовать комбинацию клавиш Ctrl+].

Команды TELNET

Рассмотрим основные команды:

  • open <имя узла> [номер порта] Устанавливает соединение с удаленным узлом сети <имя узла>. Если порт не указан, программа свяжется с TELNET-сервером, работающим на стандартном порту 23. При этом telnet будет осуществлять процедуру согласования дополнительных параметров. Если вторым параметром указан номер порта, то telnet не
    будет делать предположения, что на другом конце соединения выполняется TELNET-сервер и не будет инициировать согласование параметров. В этом случае дополнительные параметры могут быть согласованы по инициативе другой стороны. Таким образом, с помощью программы
    telnet можно подключаться к любому сервису, работающему поверх протокола TCP.

  • close Завершает текущее соединение.

  • quit Завершает работу программы telnet.

  • set/unset. С помощью этих команд можно устанавливать некоторые параметры, используемые в соединении, такие как символ прерывания сеанса (по умолчанию 'Ctrl+]'), тип используемого терминала и некоторые другие.

Пример сеанса работы TELNET

Рассмотрим сеанс работы программы для подключения к Нью-Йоркской Государственной Библиотеке. Установим соединение с узлом nysl.nysed.gov командой open:


После установки соединения наш компьютер станет удаленным терминалом узла nysl.nysed.gov и дальнейшая работа будет происходить точно так же, как если бы мы находились непосредственно у терминала этого компьютера.

На приглашение "login:":


 

введем "catalog" и нажмем Enter:


 

На экране появится некоторая общая информация о каталоге:

Следуя инструкции, нажмем клавишу Enter.

Мы попадем в основное меню поисковой системы:

Навигация осуществляется нажатием подсвеченного символа в названии элемента меню. Нажмем клавишу B (BEGIN). Появится меню, предлагающее выбрать тему для поиска:

Нажмем клавишу 1 (LIBRARY CATALOG), затем Enter.

Появится меню с выбором типа поиска:

Нажатием клавиши 2 выберем поиск по ключевым словам (PIC8) и автору и нажмем Enter. Появится форма поиска:

В качестве ключевого слова введем 'EINSTEIN' (PIC10) и нажмем Enter.

Появится список книг, удовлетворяющих критерию поиска:

Для завершения сеанса работы нажмем клавишу E (END) и подтвердим свое желание отключиться от сервера нажатием Y (YES):

После этого сеанс работы будет завершен:


Дата последнего обновления страницы 28.07.2020
Сайт создан по технологии «Конструктор сайтов e-Publish»
Версия для слабовидящих
Размер шрифта Шрифт Межсимвольный интервал Межстрочный интервал Цветовая схема Изображения