Реализация, особенности функционирования



TELNET строится как протокол приложения над транспортным протоколом TCP. В основу TELNET положены три фундаментальные идеи:

  • концепция сетевого виртуального терминала (Network Virtual Terminal), или NVT;
  • принцип договорных опций (согласование параметров взаимодействия);
  • симметрия связи "терминал-процесс";.

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

NVT –это стандартное описание наиболее широко используемых возможностей реальных физических терминальных устройств. Он позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации. Терминальная программа ("user") и процесс ("server"), работающий с ней, преобразовывают характеристики физических устройств в спецификацию NVT, что позволяет, с одной стороны, унифицировать характеристики физических устройств, а с другой – обеспечить принцип совместимости устройств с разными возможностями. Характеристики диалога диктуются устройством с меньшими возможностями.

Если взаимодействие осуществляется по принципу "терминал-терминал" или "процесс-процесс", то "user" – это сторона, инициирующая соединение, а "server" – пассивная сторона.

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

Симметрия взаимодействия по протоколу telnet позволяет в течении одной сессии программе-"user" и программе-"server" меняться местами. Это принципиально отличает взаимодействие в рамках telnet от традиционной схемы "клиент-сервер". Симметрия взаимодействия тесно связана с процессом согласования формы обмена данными между участниками telnet-соединения. Когда речь идет о работе на удаленной машине в режиме терминала, то возможности ввода и отображения информации определяются только конкретным физическим терминалом и договорной процесс сводится к заказу терминальной программой характеристик этого терминала. Гораздо сложнее обстоит дело, когда речь идет об обмене информацией между двумя терминальными программами в режиме "терминал-терминал". В этом случае каждая из сторон может выступать инициатором изменения принципов представления информации и здесь проявляется еще одна особенность протокола telnet: протокол не использует принцип "запрос-подтверждение", а применяет принцип "прямого действия". Это значит, что если терминальная программа хочет расширить возможности представления информации, то она делает это (например, вставляет в информационный поток Esc-последовательности), если в ответ она получает информацию в новом представлении, то это означает, что попытка удалась, в противном случае происходит возврат к стандарту NVT.

Опции

По умолчанию протокол предоставляет минимальную функциональность и набор расширяющих её опций. Принцип оговоренных опций требует проводить переговоры при включении каждой из опций: одна сторона инициирует запрос, а другая сторона может либо принять, либо отвергнуть предложение. Если запрос принимается, то опция немедленно вступает в силу. Опции описаны отдельно от протокола, их поддержка является произвольной для программного обеспечения. Клиенту протокола (сетевому терминалу) предписывается отвергать запросы на включение неподдерживаемых и неизвестных опций.

Принтер и клавиатура NVT

 

Принтер NVT имеет неопределённую ширину каретки и длину страницы и должен иметь представление всех 95 печатных символов US-ASCII (коды с 32 по 126). Управляющие символы имеют следующие значения:

Название Код (десятичный/шестнадцатеричный) Описание
NULL (NUL) * 0/0x00 Нет операции.
Line Feed (LF) * 10/0x0A Переводит принтер на следующую строку печати, оставаясь на той же горизонтальной позиции.
Carriage Return (CR) * 13/0x0D Перемещает принтер к левой границе текущей строки.
BELL (BEL) 7/0x07 Производит аудио или видеосигнал (но НЕ перемещает головку принтера).
Back Space (BS) 8/0x08 Перемещает головку принтера на один символ по направлению к левой границе.
Horizontal Tab (HT) 9/0x09 Перемещает принтер на следующую остановку горизонтальной табуляции. Остается неопределённым как сторона определяет и устанавливает эти остановки табуляции.
Vertical Tab (VT) 11/0x0B Перемещает принтер на следующую остановку вертикальной табуляции. Остается неопределённым как сторона определяет и устанавливает эти остановки табуляции.
Form Feed (FF) 12/0x0C Перемещает принтер к верхней части следующей страницы, оставаясь на той же горизонтальной позиции.

– поддержка действия символов, помеченных как *, обязательна. Прочие могут производить заданное действие или не производить никакого; одна сторона не обязана предполагать ничего определённого о поддержке конкретных необязательных управляющих символов другой стороной.

– последовательность «CR LF» должна обрабатываться как единый символ перевода строки и использоваться всякий раз, когда требуется их объединённое действие;

– последовательность «CR NUL» должна использоваться, когда необходим только возврат каретки, следует избегать использования символа CR в других контекстах.

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

 

1) каждая команда TELNET является многобайтовой последовательностью, начинающейся с кода \377 (десятичное: 255) «Interpret as Command» (IAC) и кода команды;

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

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

Название Код (десятичный/шестнадцатеричный) Описание
SE 240/0xF0 Завершает согласование, начатое командой SB.
NOP 241/0xF1 Нет операции.
Data Mark 242/0xF2 Синхронизация (Synch) обмена данными. Эта команда всегда сопровождается TCP Urgent notification.
Break 243/0xF3 Нажатакнопка «Break» или «Attention».
Interrupt Process 244/0xF4 Приостанавливает, прерывает, аварийно прекращает или завершает процесс.
Abort output 245/0xF5 Подавление вывода текущего процесса. Также отправляет сигнал Synch пользователю.
Are You There 246/0xF6 Отправляет обратно ответ терминала, состоящий из печатных символов.
Erase character 247/0xF7 Получатель должен удалить предыдущий символ, если это возможно.
Erase Line 248/0xF8 Стереть последнюю введённую строку, то есть все данные, полученные после последнего перевода строки.
Go ahead 249/0xF9 Ожидается передача данных.
SB 250/0xFA Начало согласования опции, требующего передачи параметров.
WILL опция 251/0xFB Указывает на желание исполнять или подтверждает, что сейчас исполняется указанная опция.
WON’T опция 252/0xFC Указывает на отказ начать или продолжить исполнять указанную опцию.
DO опция 253/0xFD Запрос на то, чтобы другая сторона исполнила или подтвердила исполнение указанной опции.
DON’T опция 254/0xFE Требование на то, чтобы другая сторона остановила исполнение или подтвердила то, что указанная опция более не исполняется.
IAC 255/0XFF Байт данных 255.

 

Безопасность

 

В протоколе не предусмотрено использование ни шифрования, ни проверки подлинности данных, поэтому он уязвим для любого вида атак, к которым уязвим его транспорт (т.е. протокол TCP). Для функциональности удалённого доступа к системе в настоящее время применяется сетевой протокол SSH, при создании которого упор делался именно на вопросы безопасности. Так что следует иметь в виду, что сессия Telnet весьма беззащитна, если только не осуществляется в полностью контролируемой сети или с применением защиты на сетевом уровне (различные реализации виртуальных частных сетей). По причине ненадёжности от Telnet как средства управления операционными системами давно отказались.


 


Дата добавления: 2018-08-06; просмотров: 370; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!