70785

TELNET – протокол и клиент-серверное приложение удаленного доступа

Лекция

Информатика, кибернетика и программирование

Команде предшествует префиксный байт 0xFF (255), называемый IAC (Interpret As Command), за ним идет байт кода команды, затем могут идти необязательные байты опций. Т.к. команды передаются по тому же соединению, что и данные...

Русский

2014-10-27

149.88 KB

1 чел.

Тема 3: TELNET –протокол и клиент-серверное приложение удаленного доступа

Общие сведения

TELNET (TELecommunications NETwork protocol или TErminaL over NETwork –г.) позволяет с хоста клиента в режиме текстового терминала взаимодействовать с login-shell сервера по TCP-соединению (порт 23). Telnet основан на NVT (Network Virtual Terminal, RFC-854) –простейшем абстрактном «эталонном» терминале, на который клиент и сервер проецируют реальные терминалы. Клиент и сервер в сеансе Telnet обмениваются короткими пакетами, содержащими представленные в коде NVT ASCII (7 bit) данные и команды (их около 20).

Команде предшествует префиксный байт 0xFF (255), называемый IAC (Interpret As Command), за ним идет байт кода команды, затем могут идти необязательные байты опций. Т.к. команды передаются по тому же соединению, что и данные (in-band signaling), то байты 255 в потоке данных должны для отличия от IAC дублироваться.

Сеанс начинается переговорами. В них стороны достигают консенсуса, используя право вето (команды запрета DONT и WONT). Они уточняют свойства и возможности партнера (например, размер окна терминала клиента), и соответственно устанавливают совместно используемые опции (их более 30), из которых важнейшие –режим передачи и тип терминала.

Клиент Telnet позволяет соединяться не только с Telnet-серверами, но и с любыми другими серверами, если они поддерживают обмен в коде ASCII. При этом, разумеется, переговоры об опциях не проводятся, а «диалог» с клиентом ведется «на языке» протокола данного сервера.

Диалог пользователя непосредственно с самой клиентской программой Telnet

Клиент Telnet позволяет вступать с ним в диалог, в ходе которого команды пользователя не пересылаются на удаленный хост, а воспринимаются самой клиентской программой. Диалоговый режим инициируется при вводе управляющего символа перехода в диалог (client escape character), для чего обычно служат клавиши «Ctrl» + «]». Используя команды диалога, пользователь может уточнить или изменить параметры текущего сеанса. Перечень воспринимаемых команд выводится на экран в ответ на команду help.

Команды протокола обмена между клиентом и сервером Telnet

(часть из них применяется редко)

Обозначение

Полное название

Десятичный код

Шестнадцате-ричный код

Описание

EOF

End-Of-File

EC

Конец файла

SUSP

Suspend process

ED

Приостановить текущий процесс

ABORT

Abort process

EE

Завершить процесс

EOR

End-Of-Record

EF

Конец записи

SE

Suboption End

F0

Конец определения субопции

NOP

No Operation

F1

Пустая команда

DM

Data Mark (synch signal)

F2

Метка начала данных (сигнальная команда)

BRK

Break

F3

Код клавиши break

IP

Interrupt Process

F4

Прервать процесс

AO

Abort Output

F5

Прекратить вывод

AYT

Are You There?

F6

Запрос активности

EC

Erase Character

F7

Стереть символ

EL

Erase Line

248

F8

Стереть строку

GA

Go Ahead

F9

Продолжить передачу (в симплексном режиме)

SB

Suboption Begin

FA

Начало определения субопции

WILL

Will

FB

«Могу использовать опцию»

WONT

Will not

FC

«Не буду использовать опцию»

DO

Do

FD

«Разрешаю партнеру использовать опцию»

DONT

Do Not

FE

«Партнеру не следует использовать опцию»

IAC

Interpret As Command

FF

Префиксный байт команды

Переговоры об опциях

Объявления в переговорах об опциях занимают три байта: байт IAC, за ним один из байтов WILL, DO, WONT или DONT и завершающий байт с идентификатором (номером) утверждаемой или отвергаемой опции. Возможны шесть вариантов диалога по поводу одной опции (так как отрицание опции одной стороной обязательно и для другой стороны):

Отправитель

Получатель

Комментарий

1

WILL

DO

Отправитель хочет применить у себя опцию. Получатель с этим согласен.

2

WILL

DONT

Отправитель хочет применить у себя опцию. Получатель с этим не согласен.

3

DO

WILL

Отправитель хочет, чтобы получатель применил опцию. Получатель с этим согласен.

4

DO

WONT

Отправитель хочет, чтобы получатель применил опцию. Получатель с этим не согласен.

5

WONT

DONT

Отправитель не хочет применить опцию. Получатель с этим согласен.

6

DONT

WONT

Отправитель не хочет, чтобы получатель применил опцию. Получатель с этим согласен.

Опции

Различные версии Telnet могут поддерживать десятки различных опций (в RFC-1700, Assigned Numbers, 1994, указаны 42 опции Telnet), важнейшие из них приведены ниже.

Иденти-фикатор

Название опции

Оговариваемое право или действие

Номер RFC

0

BINARY TRANSMISSION

Пересылать двоичные данные

856

1

ECHO

Управлять эхо-выводом

857

3

SUPPRESS GO AHEAD

Отказаться от буферизации ввода

858

5

STATUS

Сообщить статус

859

6

TIMING MARK (TM)

Синхро-маркер (от клиента к серверу и обратно)

860

24

TERMINAL TYPE

Сообщить тип терминала

1091

31

NAWS (Negotiate About Window Size)

Сообщить размер окна терминала

1073

32

TSPEED (Terminal Speed)

Сообщить скорость терминала

1079

33

LFLOW (Remote Flow Control)

Управлять потоком вывода на месте

1372

34

LINEMODE

Установить построчный режим

1184

36

ENVIRON (Environment)

Сообщить переменные окружения

1408

Субопции

В опциях часто надо уточнить параметры с помощью субопций (RFC-1091). Так, в опции TERMINAL TYPE клиент должен сообщить серверу конкретный тип. Сначала командой <IAC, WILL, TERMINAL TYPE> (255, 251, 24) клиент предлагает сообщить тип.

Сервер может дать согласие <IAC, DO, TERMINAL TYPE> (255, 253, 24), а затем запросить тип двумя командами <IAC, SB, TERMINAL TYPE, “1”, IAC, SE> (байты 255, 250, 24, 1, 255, 240). Здесь за префиксом IAC идет команда «начало определения субопции» SB (250), за ней байт TERMINAL TYPE (24) указывает какой опции принадлежит субопция, затем признак «1» означает «сообщи тип». За вторым префиксом IAC идет команда «конец определения субопции» SE (240).

Если у клиента терминал IBMPC, он ответит 11 байтами: <IAC, SB, TERMINAL TYPE, “0”, “I”, “B”, “M”, “P”, “C”, IAC, SE>. Четвертый байт “0” –это признак, предшествующий названию терминала.

«Официальный» список допустимых терминалов дан в Assigned Numbers RFC. В Unix разрешены любые, известные серверу –они перечислены в файле termcap или terminfo.

Четыре возможных режима передачи

  1.  Half-duplex. Этот простейший режим был заложен в NVT. Клиент буферизует ввод с клавиатуры, пока не получит от сервера команду GA (Go Ahead). Он сам выполняет эхо-печать, а серверу посылает лишь окончательно отредактированные с клавиатуры строки. Режим неэффективен и практически не применяется.
  2.  Character-at-a-time. Посимвольный обмен с удаленным управлением эхо-выводом. Вводимые символы по одному пересылаются серверу, а тот высылает эхо-символ. Для установления этого режима на сервере должна действовать опция SUPPERSS GO AHEAD, а управление эхо-выводом должно быть передано серверу (RFC-858).
  3.  Line-at-a-time (kludge-line или old-line-by-line). Условно-строчный режим: для него нет опции и стороны косвенным путем договариваются передавать от клиента не отдельные символы, а полностью сформированные строки. Условно-строчный режим должен быть инициирован либо сервером (он предлагает опцию DO TIMING MARK), либо со стороны клиента самим пользователем.
  4.  Linemode. Современный построчный режим, регламентированный специальной опцией LINEMODE (RFC-1184).

Сигнальная команда DM (Data Mark)

Команды Telnet могут в обе стороны передаваться как внеочередные байты, то есть в режиме urgent mode TCP (с флагом URG в сегменте), чтобы они могли быть приняты получателем даже в тех случаях, когда его модуль TCP приостановил прием. Сторона, сгенерировавшая команду Telnet, извещает партнера о наличии внеочередных байтов, и тот сразу начинает считывать из входного потока, игнорируя все байты, кроме команд Telnet, последняя из которых –это DM (Data Mark – метка начала данных), т.е. заключительный внеочередной байт, говорящий партнеру, что следом за ним в потоке идут обычные данные.

Синхро-маркер (опция TM –Timing Mark)

В Telnet предусмотрен и другой индикатор срочного байта. Это т.н. синхро-маркер (timing mark), передаваемый в виде специальной опции TM. В частности, он исользуется в режиме LINEMODE в случаях, когда клиент отсылает серверу код нажатой пользователем клавиши прерывания (например, Ctrl+C).

Telnet-клиент в ОС Unix

Запуск telnet-клиента в Unix-подобных ОС осуществляется выполнением команды “telnet” (/usr/bin/telnet, /bin/telnet).

В случае выполнения команды без параметров, программа telnet входит в диалоговый режим, в котором вы можете выполнять специальные команды программы telnet (рекомендуется выполнить команду help).

Если в командной строке указано имя (или IP-адрес) хоста, telnet сразу же попытается установить TCP-соединение с 23 портом указанного хоста, и после установления соединения входит в режим обмена информацией с сервером (вы можете выйти в диалоговый режим программы telnet, нажав управляющую комбинацию клавиш, по умолчанию это «Ctrl» + «]»). Также в командной строке можно указать номер порта сервера, с которым вы хотите установить соединение (если он отличается от 23).

План работы по теме 3.

  1.  Изучить сообщаемые преподавателем сведения (см. Введение в тему 3).
  2.  Ознакомиться с особенностями клиента telnet на одной из доступных Unix-платформ (например, в Linux). Законспектировать смысл ключей командной строки. Желательно ознакомиться с man telnet. Запустить telnet и выполнить команду help, изучить команды диалогового режима.
  3.  Используя изученный telnet-клиент, зайти по telnet на рекомендованный преподавателем или по желанию избранный хост (на который имеется login) в отладочном режиме (toggle options и/или toggle netdata, toggle prettydump и проч.) (для тестирования можно устанавливать соединение с вашим собственным хостом - localhost, 127.0.0.1). Проанализировать этап переговоров об опциях после установления соединения. Законспектировать обмен командами между клиентом и сервером и прокомментировать его. Определить основные параметры сеанса, установленные в ходе переговоров об опциях между данным клиентом и данным сервером: тип терминала, режим передачи, и т.п.
  4.  Применив в диалоге с telnet-клиентом команду mode или set (или их аналоги), изменить те или иные параметры обмена в сеансе, например, режим передачи.
  5.  Используя telnet-клиент зайти на отличный от 23 порт какого-либо хоста (например, 21 –FTP, 25 – SMTP или другой по выбору). Набирая команды соответствующего протокола (если он вам известен), попытаться «поддержать обмен» на языке протокола этого сервера.

Контрольные вопросы.

  1.  В Internet используется большое разнообразие клиентов и серверов telnet. Перечислите свойства протокола telnet, которые гарантируют их совместимость.
  2.  Переговоры об опциях проводятся единожды в начале сеанса, или же клиент и сервер могут их инициировать и в ходе сеанса?
  3.  Каковы недостатки протокола telnet в смысле безопасности?
  4.  Можно ли работать по протоколу telnet поверх протокола UDP? (Да/Нет, почему?)
  5.  Какая управляющая комбинация клавиш по умолчанию используется в клиентах telnet?
  6.  (Вопрос «сверх программы») Telnet-опция SUBLIMINAL-MESSAGES описана в RFC-1097 (B.Miller, 01.04.1989). Она позволяет (если принята клиентом telnet после переговоров с сервером) воздействовать на подсознание пользователя неявно отображаемыми сообщениями от сервера, то есть строками текста, воспроизводимыми «в режиме 25 кадра». За этой опцией закреплен номер 257. Ее формат таков: <IAC, SB, SBULIMINAL-MESSAGE> <длительность скрытого кадра в мс> <частота скрытых кадров в мс> <”содержание кадра”> <IAC, SE>. Рекомендуем ознакомиться с RFC-1097 и высказать преподавателю обоснованное личное суждение о практической применимости этой опции.


 

А также другие работы, которые могут Вас заинтересовать

57953. Подорож героїв казки Г.К. Андерсена «Снігова Королева» по країні Синтаксис 221 KB
  Але перш ніж розпочати наш урок пропонуємо вам визначити капітана кожної команди експерта який буде слідкувати за роботою кожного учня в групі а також визначитися із назвою команди клас розподілений на 3 команди.
57954. Англія. Бінарний урок всесвітньої історії – англійської мови 180.5 KB
  Мета: Всесвітня історія ознайомити учнів з особливостями розвитку капіталістичних відносин в Англії особливостями Реформації в Англії та основними напрямками зовнішньої політики в 16 ст. Після уроку учні зможуть: Називати час правління Єлизавети...
57955. Антарктида 80 KB
  Мета навчальна: закріпити та узагальнити знання і вміння учнів з теми: «Антарктида»; поглибити їх знання за допомогою цікавих фактів про вивчений об’єкт, вдосконалювати вміння та навички роботи з картою, формувати нестандартне мислення...
57956. Антарктида і Антарктика. Загальні відомості. Відкриття та сучасні наукові дослідження 248 KB
  Сформувати поняття «Антарктика»; сприяти формуванню в учнів знань про географічне положення; поглибити і систематизувати знання про відкриття та сучасні дослідження Антарктиди в рамках міжнародного співробітництва; продовжити формування навичок встановлювати закономірності поширення природних умов
57957. Антарктида. Своєрідність географічного положення. Відкриття материка. Льодовиковий покрив 33 KB
  Мета уроку: дати поняття Антарктика и Антарктида льодовий материк планети; вивчити загальні відомості про материк: своєрідність ГП материка його розміри; розглянути відкриття Антарктиди та сучасні наукові дослідження материка...
57958. встралия – самый маленький материк Земли 60.5 KB
  Перед началом соревнования вам ребята надо потренироваться повторить изученный материал о природе Австралии. На протяжении трех уроков вы составляли вопросы об особенностях природы Австралии теперь у вас есть возможность задать их своим одноклассникам и выслушать ответы. Какой остров расположен к северу от Австралии Правила игры: В течение изучения материка ученики составляют вопросы по параграфам. По плану ФГП ученики сравнивают физикогеографическое положение Австралии с ФГП...
57959. ГЕОГРАФІЧНОГО ПОЛОЖЕННЯ. ІСТОРІЯ ВІДКРИТТЯ І ДОСЛІДЖЕННЯ. ГЕОЛОГІЧНА БУДОВА. ФОРМИ РЕЛЬЄФУ ТА КОРИСНІ КОПАЛИНИ АВСТРАЛІЇ 108 KB
  Мета: сформувати в учнів загальне уявлення про своєрідність та особливості природи Австралії; продовжити формування навичок учнів складати характеристику географічного положення материка за планом відшукувати закономірності розташування форм рельєфу та корисних копалин...
57960. Передня Азія в давнину 54.5 KB
  Мета: повторити, закріпити, узагальнити знання учнів з історії Передньої Азії: географічне положення, утворення, розквіт та загибель імперій, культуру та релігійні уявлення. Продовжувати формування навичок узагальнювати, порівнювати, аналізувати історичний матеріал.
57961. Основы объектно-ориентированного программирования. Первое знакомство со средой Visual Studio. Создание консольного приложения с помощью языка Visual Basic. Net 367 KB
  Цель: Сформировать у учащихся представление о среде программирования Visul Studio; Освоить основные приемы создания и запуска на выполнение консольного приложения его редактирования и сохранения; Получить практические навыки работы в среде программирования...