Опубликован: 11.08.2008 | Уровень: специалист | Доступ: платный
Лекция 12:

Протоколы прикладного уровня. TELNET

Переговоры по подопциям

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

Таблица 12.4. NVT-символы настройки подопций
Символ Десятичное значение Двоичное значение Смысловое значение
SE 240250 11110000 Конец подопции
SB 11111010 Начало подопции

Например, тип терминала – это настройка клиентом? показанная на рис. 12.12.

Пример переговоров о субопции

Рис. 12.12. Пример переговоров о субопции

Управляющий сервер

Некоторые символы управления могут применяться для управления удаленным сервером. Когда прикладная программа выполняется на местном компьютере, используются специальные символы для прерывания (остановки) программы (например, Ctrl+c ) или стирания последнего напечатанного символа (например, кнопка "удалить" или кнопка "возвращение на одну позицию назад") и так далее. Однако когда программа выполняется на удаленном компьютере, эти управляющие символы должны быть посланы в удаленную машину. Пользователь еще печатает те же самые последовательности, но они изменяются на специальные символы и посылаются к серверу. Таблица 12.5. показывает некоторые из символов, которые могут быть посланы серверу, чтобы управлять прикладной программой, которая выполняется там.

Таблица 12.5. Символы, которые используются прикладными программами, выполняемыми на сервере
Символ Десятичное значение Двоичное значение Смысловое значение
IP 244 11110100 Процесс прерывания
AO 245 11110101 Прекращение вывода
AYT 246 11110110 Вы там есть?
EC 247 11111111 Стирание последнего символа
EL 248 11111000 Стирание линии

Рассмотрим эти символы более детально.

  • IP (прерывание процесса). Когда программа выполняется в местном компьютере, пользователь может прервать (остановить) программу, если, например, она зациклилась. Пользователь может нажать комбинацию Ctrl+c, операционная система вызывает функцию, и функция прерывает программу. Однако если программа продолжается на удаленной машине, соответствующая функция должна быть вызвана операционной системой удаленной машины. TELNET определяет IP (interrupt process — процесс прерывания) управляющим символом, который читается и интерпретируется как соответствующая команда для вызова функции прерывания в удаленной машине.
  • AO (abort output – остановка вывода). Это то же самое, что и IP, но он позволяет процессу продолжаться, не порождая вывод. Это полезно, если процесс имеет другой результат в дополнение к созданию вывода. Пользователь хочет получить этот результат, но без внешнего вывода. Например, большинство команд в UNIX генерирует вывод и имеет состояние выхода. Пользователь может хотеть сохранить состояние выхода для будущего использования, но не интересуется выходными данными.
  • AYT (Are you there? — Вы там есть?). Этот символ управления используется, чтобы определить, функционирует ли все еще удаленная машина, особенно после долгого молчания сервера. Когда этот символ получен, сервер обычно посылает акустический или визуальный сигнал, чтобы подтвердить, что он функционирует.
  • EC (Erase character — стирание символа). Когда пользователь посылает данные с клавиатуры на местную машину, клавиша удаления или возврата на один символ может стереть последний напечатанный символ. Чтобы сделать то же самое в удаленной машине, TELNET определяет управляющий символ EC.
  • EL (Erase line — стирание линии). Это используется, чтобы стереть текущую линию в удаленном хосте.

Например, рисунок 12.13 показывает, как прервать выполняющуюся бесконечно прикладную программу на стороне сервера. Пользователь напечатает Ctrl+c, а клиент TELNET посылает на сервер комбинацию IAC и IP.

Пример прерывания прикладной программы

Рис. 12.13. Пример прерывания прикладной программы

Передача сигналов вне полосы

Чтобы сделать символы управления эффективными, в специальных ситуациях TELNET использует передачу сигналов вне полосы. При такой передаче символам управления предшествует IAC, и удаленному процессу посылают сигнал неисправности.

Вообразим ситуацию, в которой прикладная программа, функционирующая на стороне сервера, зациклилась и не принимает больше входные данные. Пользователь хочет прервать прикладную программу, но программа не читает данные от буфера. TCP на стороне сервера нашел, что буфер полон, и послал сегмент, определяющий, что размер окна клиента должен быть равен нулю. Другими словами, TCP на стороне сервера объявляет, что больше не примет регулярный трафик. Чтобы исправить такую ситуацию, TCP нужно послать от клиента серверу срочный сегмент. Срочный сегмент отменяет регулярный механизм управления потоком. Хотя TCP обычно не принимает сегменты, он должен принять срочный сегмент.

Когда процесс TELNET (клиент или сервер) хочет послать вне полосы последовательность символов к другому процессу (клиент или сервер), он включает последовательность в поток данных и вставляет специальный символ, названный DM (Data Marker – знак данных). Однако чтобы вызвать другую сторону для обработки последовательности неисправностей, он создает сегмент TCP с установкой срочного бита, срочность указывается символом DM. Когда TCP получает сегмент, он читает данные и удаляет любые данные, предшествующие символу управления (например, IAC и IP.). Когда он достигает символа DM, остающиеся данные обработаются обычным образом. Другими словами, символ DM используется как символ синхронизации, который переключает TCP от срочного режима получения к нормальному режиму и восстанавливает синхронизацию на двух концах (рис. 12.14 ).

Сигнализация вне полосы

Рис. 12.14. Сигнализация вне полосы

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

Наталья Шульга
Наталья Шульга
Здравствуйте. Актуален ли данный курс?
Мария Архипова
Мария Архипова
Выдаётся ли диплом о проф переподготовке по данному курсу в настоящее время? Спасибо.
Максим Петров
Максим Петров
Россия, Москва, СГИ, 2000
Иван Вязников
Иван Вязников
Россия, г.Липецк