Протокол эмуляции удаленного доступа терминала Telnet
telnet Под telnet понимают триаду, состоящую из : telnet- интерфейса пользователя ; telnetd- процесса ; TELNET- протокола. Эта триада обеспечивает описание и реализацию сетевого терминала для доступа к ресурсам удаленного компьютера.
Протокол Telnet Telnet строится как протокол приложения над транспортным протоколом TCP. В основу telnet положены три фундаментальные идеи : концепция сетевого виртуального терминала (Network Virtual Terminal) или NVT; принцип договорных опций ( согласование параметров взаимодействия ); симметрия связи " терминал - процесс ".
При установке telnet- соединения программа, работающая с реальным терминальным устройством, и процесс обслуживания этой программы используют для обмена информацией спецификацию представления правил функционирования терминального устройства или Сетевой Виртуальный Терминал (Network Virtual Terminal).
NVT - это стандартное описание наиболее широко используемых возможностей реальных физических терминальных устройств. NVT позволяет описать и преобразовать в стандартную форму способы отображения и ввода информации. Терминальная программа ("user") и процесс ("server"), работающий с ней, преобразовывают характеристики физических устройств в спецификацию NVT, что позволяет, с одной стороны, унифицировать характеристики физических устройств, а с другой обеспечить принцип совместимости устройств с разными возможностями.
Характеристики диалога диктуются устройством с меньшими возможностями. Если взаимодействие осуществляется по принципу " терминал - терминал " или " процесс - процесс ", то "user" - это сторона, инициирующая соединение, а "server" - пассивная сторона.
NVT - это минимально необходимый набор параметров, который позволяет работать по telnet даже самым допотопным устройствам, реальные современные устройства обладают гораздо большими возможностями представления информации.
Симметрия взаимодействия по протоколу telnet позволяет в течении одной сессии программе -"user" и программе -"server" меняться местами. Это принципиально отличает взаимодействие в рамках telnet от традиционной схемы " клиент - сервер ". Симметрия взаимодействия тесно связана с процессом согласования формы обмена данными между участниками telnet- соединения.
Сетевой виртуальный терминал (NVT) Концепция сетевого виртуального терминала позволяет обеспечить доступ к ресурсам удаленной машины с любого терминального устройства. Под терминальным устройством понимают любую комбинацию физических устройств, позволяющих вводить и отображать информацию.
Синхронизация В локальных системах синхронизация работы процессов обычно реализуются через механизм прерываний или, как в Unix, механизм сигналов. Это означает, что система имеет возможность вмешаться в процесс обработки данных практически в любой момент времени. В контексте взаимодействия программы обработки данных и терминальной программы это означает возможность прервать программу обработки или очистить один из буферов с / без отображением ( я ) информации из него.
Команды telnet Команда - это 2- байтовая последовательность, состоящая из Esc- символа (255) IAC (Interpret as Command) и кода команды ( ). Команды, связанные с процедурой согласования параметров сеанса, имеют 3- х байтовый формат : третий байт - ссылка на устанавливаемую опцию.
Интерфейс пользователя (telnet) и демон (telnetd) Telnetd - это сервер, который обслуживает протокол TELNET. Обычно telnetd запускается через сервис Internet (inetd), в некоторых системах может быть запущен и вручную. Telnetd обслуживает TCP- порт 23, но может быть запущен и на другой порт.
Принцип работы сервера заключается в том, что он " слушает " порт TCP. В случае поступления запроса на обслуживание, telnetd назначает каждому удаленному клиенту псевдо терминал (pty) в качестве стандартного файла ввода (stdin), стандартного файла вывода (stdout) и стандартного файла ошибок (stderr). При установке взаимодействия с удаленным клиентом telnetd обменивается командами настройки ( эхо, обмен двоичной информацией, тип терминала, скорость обмена, переменные окружения ).
Telnet - это интерфейс пользователя для работы по протоколу TELNET. Программа работает в двух режимах : в режиме командной строки (command mode) и в режиме удаленного терминала (input mode). При работе в режиме удаленного терминала telnet позволяет работать с буферизацией (line-by-line) или без нее (character-at-a-time). При работе без буферизации каждый введенный символ немедленно отправляется на удаленную машину, откуда приходит " эхо ". При буферизованном обмене введенные символы накапливаются в локальном буфере и отправляются на удаленную машину пакетом. " Эхо " в последнем случае также локальное.