Home

Page 9
Page 9
background image

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

Таким   образом,   к   трем   перечисленным   ранее   классам   данных,   которые 

передаются в рамках протокола Telnet, добавляется еще один:

• Команды,   передаваемые   клиентом  Telnet  на   сервер  Telnet  связанные   с 

управлением процессами, запущенными на управляемом узле и некоторые 
другие, менее важные команды, передаваемые только от клиента серверу.

Далее рассмотрим, каким образом сервер осуществляет вывод на монитор 

клиента. На первый взгляд кажется, что все очень просто – те байты, которые 
при   локальном   управлении   были   бы   напечатаны   на   консоли   пользователя, 
необходимо просто передать на Telnet клиент с помощью протокола Telnet, и они 
будут отображены на виртуальном терминале пользователя. Однако рассмотрим 
самый   простой   пример:   пусть   вывод   запущенного   приложения   является 
ЦВЕТНЫМ! Недостаточно просто передать байты, которые нужно отобразить на 
виртуальном   терминале   пользователя   с   помощью   протокола  Telnet,   так   как   в 
этом   случае   информация   о   цвете   символов,   безусловно,   утратится.   А   как 
передать   цветной   текст?   Для   решения   этой   задачи   еще   в   аппаратных 
терминалах,   которые   наш  Telnet  клиент   должен   эмулировать   применялась 
специальная техника, называемая  escape  – последовательности. Суть подхода 
весьма   несложна.   Очевидно,   что   не   все   128   символов   таблицы  NVT  ASCII 
являются отображаемыми на экране. Отображаемые символы начинаются только 
с   32-ого,   все   предыдущие   символы   являются   управляющими.   При   этом, 
передача   управляющих   символов   в   рамках   протокола  Telnet  так   же   является 
крайне необходимой, действительно, необходимо передавать  символ перехода 
курсора   на   новую   строку   (символ   10),   символ   возврата   курсора   в   первую 
позицию на строке (символ 13), символ BS (8). Однако среди первых 32 знаков 
таблицы  ASCII  есть   и   такие   символы,   которые   не   имеют   непосредственного 
смысла   при   отображении   на   экране,   например,   символ  escape  (27).   Вообще 
говоря,   комбинации   клавиш  Ctrl+Буква   передаются   с   помощью   кодов   1-26,   а 
передача таких комбинаций тоже полезна, так что символ escape не попадает в 
этот   набор   комбинаций.   Поэтому   в   аппаратных   терминалах     применялся 
следующий подход: терминалы  того или иного типа поддерживали некоторый 
набор escape последовательностей, т.е. комбинаций из символа escape и других, 
обычных   символов,   которые,   будучи   указанными   после   символа  escape,   не 
отображаются   непосредственно   на   экране,   а   выполняют   некоторые 
управляющие   функции,   например,   сообщают   цвет   следующего   символа.   С 
помощью таких escape последовательностей можно:

• гибко   управлять   положением   курсора   на   экране   виртуального   (или 

реального) терминала, указывая перед выводимым байтом начинающуюся 
с символа escape координату на экране

• перемещать курсор по экрану на одну позицию вверх, вниз, вправо или 

влево

• управлять цветом символов на экране
• заставлять символы мерцать (часто использовалось в старых терминалах)

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

Обратите внимание,  escape  последовательности использует  Telnet  сервер 

(НЕ  shell)   при   передаче   данных   на   терминал   пользователя   с   целью 
эффективного   форматирования   картинки,   которую   должен   получить 
пользователь.   Однако   к   ПРОТОКОЛУ  Telnet  escape  последовательности   не 
относятся   вовсе,   но   при   переговорах   в   момент   установления  Telnet 


Copyright © 2019 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.