Основные протоколы интернет

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

Разбить на страницы
Показывать лекцию целиком

Главная задача Интернета и его набора протоколов TCP/IP — это обеспечить сервис для пользователя. Например, пользователь хочет иметь возможность выполнять различные прикладные программы на удаленном сайте и создать результат, который может быть передан к его местному сайту. Один из путей удовлетворения такой потребности — создать различные прикладные программы клиент-сервер для каждой услуги. Уже доступны программы передачи файлов (FTP и TFTP), электронной почты (SMTP) и так далее. Однако все конкретные программы клиентсервер для каждого применения описать невозможно.

Лучшее решение — общецелевая программа клиент-сервер, которая позволяет пользователю иметь доступ к любой прикладной программе на удаленном компьютере. После входа в систему пользователь может использовать услуги, доступные на удаленном компьютере, и принимать результаты на местном компьютере.

TELNET — это сокращение от Terminals NETwork. Это стандартный протокол TCP/IP для услуг виртуального терминала. TELNET дает возможность устанавливать соединение с удаленным компьютером таким образом, что создается впечатление, как будто местный терминал – это терминал удаленной системы.

Концепция

TELNET основан на концепциях, которые обсуждаются ниже.

Внешняя среда с разделением времени

TELNET был разработан в эпоху, когда большие операционные системы, такие как UNIX, работали с внешней средой по принципу разделения времени. Согласно этому принципу, большой компьютер поддерживал множество пользователей, предоставляя им часть общего времени. Взаимодействие между пользователем и компьютером осуществляется с помощью терминала, который обычно состоит из комбинации клавиатуры, монитора и мышки. Даже микрокомпьютер может моделировать терминал с помощью терминального эмулятора.

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

Логин

В среде с разделением времени пользователь — это часть системы с некоторыми правами и, вероятно, с паролем. Каждый полномочный пользователь имеет идентификатор и пароль. Пользовательская идентификация определяет пользователя как часть системы. Для доступа к системе пользователь начинает сеанс с пользовательского идентификатора (id) или с регистрационного имени (login name). Система помогает проверке пароля, чтобы предотвратить доступ к ресурсу неполномочного пользователя.

Местный логин

Когда пользователь входит в местную систему с разделением времени, это называется местный логин. Как только пользователь напечатает некое слово на терминале или рабочей станции, выполняющей эмуляцию терминала, сразу начинает работать терминальная программа (драйвер), которая распознает значение введенных символов. Терминальный драйвер передает символы операционной системе, в рамках этой системы комбинация символов интерпретируется и вызывает желаемую прикладную программу или утилиту (рис. 12.1 ).

(рис 12.1) Местный login

Однако этот механизм не такой простой, как кажется, потому что операционная система может назначить специальные значения для специальных символов. Скажем, в UNIX некоторые комбинации символов имеют специальное значение, например, комбинации управляющих символов с символом "z", которые означают прекращение действия; комбинации управляющих символов с символом "c" означают остановку; и так далее. Несмотря на то что эти специальные ситуации не создают никаких проблем в местном вхождении в систему (login), потому что терминальный эмулятор и терминальный драйвер знают точно значение каждого символа и комбинации символов, они могут создавать проблемы при удаленном входе в систему. Какой процесс должен интерпретировать специальные символы? Клиент или сервер? Эта ситуация будет рассмотрена в этой лекции позднее.

Удаленный логин

Когда пользователь хочет иметь доступ к прикладной программе или утилите, размещенным на удаленном компьютере, он выполняет дистанционный вход в систему (логин). Здесь TELNET берет на себя функции клиента и сервера. Пользователь посылает сигнал нажатия кнопки терминальному драйверу, где местная операционная система принимает символы и интерпретирует их. Эти символы посылает TELNET-клиент, который преобразует символы к универсальному набору, называемому символы виртуального сетевого терминала (Network Virtual Terminal Characters), и доставляет их к местному стеку протоколов TCP/IP (рис. 12.2 ).

(рис 12.2) Дистанционный login

Команды или текст в форме сетевого виртуального терминала (NVT) перемещаются через Интернет и прибывают на стек протоколов TCP/IP в удаленной машине. Здесь символы доставляются операционной системе и проходят к TELNET-серверу, который преобразует их в символы, понятные удаленному компьютеру. Однако символы не могут пройти прямо на операционную систему, потому что удаленная операционная система не разработана для получения трактовки этих символов от TELNET. Она спроектирована так, чтобы принимать символы от драйвера терминала. Решение, добавляющее необходимое программное обеспечение, называется псевдотерминальным драйвером, который преобразовывает поступившие символы как символы, поступающие от местного терминала. Операционная система затем предает символы к соответствующей прикладной программе.

Сетевой виртуальный терминал (NVT)

Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl+z, в то время как в других операционных системах — это Ctrl+d.

Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением универсального интерфейса, называемого NVT (Network Virtual Terminal — виртуальный сетевой терминал). Для каждого интерфейса TELNET переводит символы (данные или команды), которые получает от местного терминала, в NVT-форму и доставляет их в сеть. С другой стороны, сервер TELNET переводит команды из формы NVT в форму, доступную удаленному компьютеру. Все иллюстрации этой концепции смотрите на рисунке 12.3.

(рис 12.3) Концепция NVT

Набор символов NVT

Символы данных

NVT набор символов обычно использует набор, называемый NVT ASCII. Это 8-битовый набор символов, в котором семь младших бит такие же, как в US ASCII, имеющие старший бит — 0 (рис. 12.4. ). Хотя возможно посылать 8-битовый ASCII (с высшим разрядом, установленным в 0 или 1), это должно быть согласовано между клиентом и сервером с использованием опции "переговоры".

(рис 12.4) Формат символов данных

Символы дистанционного управления

Чтобы послать символы управления между компьютером (от клиента к серверу и наоборот), NVT использует 8-битовый набор символов, в которых высший разряд установлен в 1 (рис. 12.5. ).

(рис 12.5) Формат управляющих символов

Таблица 12.1. содержит список некоторых символов дистанционного управления и их значения.

Некоторые NVT-символы дистанционного управления
Символ Десятичное значение Двоичное значение Смысл
EOF 236 11101100 Конец файла (End of file)
EOR 239 11101111 Конец записи (End record)
SE 240 11110000 Конец подопции (Suboption end)
NOP 241 11110001 Нет обработки (No operation)
DM 242 11110010 Метка данных (data mark)
BRK 243 11110011 Разрыв (Break)
IP 244 11110100 Прерывание процесса (Interrupt process)
AO 245 11110101 Остановка выхода (Abort output)
AYT 246 11110110 Вы есть? (Are you there?)
EC 247 11110111 Вычеркнуть символ (Erase character)
EL 248 11111000 Вычеркнуть линию (Erase line)
GA 249 11111001 Пройти вперед (Go ahead)
SB 250 11111010 Начинается подопция (Suboption begin)
WILL 251 11111011 Соглашение для допущения опции (Agreement to enable option)
WONT 252 11111100 Отказ от допустимости опции (Refusal to enable)
DO 253 11111101 Утверждение запроса опции (Approval to option request)
DONT 254 11101110 Отклонение запроса опции (Denial of option request)
IAC 255 11111111 Интерпретация (следующего символа) как управления (Interpret (the next character) as control)

Вставка документа

TELNET использует только одно TCP-соединение. Сервер задействует закрепленный порт 23, а клиент — кратковременный порт. Такое же соединение применяется для посылки данных и управляющих символов. TELNET достигает этого, вставляя управляющие символы в поток данных. Однако чтобы отличить данные от управляющих символов, каждая последовательность управляющих символов предваряется специальным управляющим символом, называемым "интерпретировать как управляющий". Например, предположим, пользователь хочет послать последовательность символов данных к удаленному серверу для отображения файла ( file1 ).

Cat file1

Однако имя файла неправильно набрано на клавиатуре ( filea вместо file1 ), и пользователь использует клавишу обратного перевода, чтобы скорректировать эту ситуацию.

Cat filea<backspace>1

Но неправильное выполнение TELNET-пользователь не может редактировать на месте, редактирование должно быть сделано на удаленном сервере. Символ обратного перевода переводится в два дистанционных символа ( IAC EC ), которые внедряются в данные и посылаются к удаленному серверу. Что посылает сервер, показано на рис. 12.6.

(рис 12.6) Пример вставки

Опции

TELNET позволяет клиенту и серверу опции ведения переговоров перед и в течение использования услуги. Опция дополнительных свойств возможна для пользователя с более сложным терминалом. Пользователь с простым терминалом может использовать минимальные свойства. Таблица 12.2. показывает некоторые употребительные опции.

Опции
Код Опция Смысловое значение
0 Binary (Двоичная) Используется 8-битовый двоичный обмен
1 Echo (Эхо) Эхо-данные, полученные на одной стороне для другой
3 Suppress go ahead (Продвижение вперед запрещено) Сигнал запрещения продвижения вперед после данных
5 Status (состояние) Запрос состояния TELNET
6 Timing mark (метка времени) Определяет метку времени
24 Terminal type (тип терминала) Настройка типа терминала
32 Terminal speed (скорость терминала) Настройка скорости терминала
34 Line mode (режим линии) Изменение режима линии
  • Binary (двоичная). Опция позволяет приемнику интерпретировать каждый 8-битовый символ, за исключением IAC, как двоичные данные. Когда IAC получен, следующий символ или символы интерпретируются как команды. Однако если получены два последовательных символа IAC, первый удаляется, а второй интерпретируется как данные.
  • Echo (эхо). Эта опция позволяет серверу получать эхо-данные от клиента. Это означает, что каждый символ, посланный клиентом к серверу, возвращается в виде "эха" назад на экран терминала. В этом случае пользовательский терминал обычно не отображает символы на экране, когда они напечатаны, а ожидает, пока получит их от сервера.
  • Suppress go ahead (продвижение вперед запрещено). Эта опция запрещает продвижение символа вперед ( GA – go ahead ). Мы будем обсуждать символ GA при обсуждении режимов TELNET
  • Status (состояние). Эта опция разрешает пользователю или процессу, выполняемому на машине клиента, иметь состояние опции, доступной на сайте сервера.
  • Timing mark (метка времени). Эта опция позволяет одной стороне ставить марку времени, которая указывает, что все предыдущие полученные данные обработаны.
  • Terminal type (тип терминала). Эта опция позволяет клиенту послать тип своего терминала.
  • Terminal speed (скорость терминала). Эта опция позволяет клиенту повысить скорость своего терминала.
  • Line mode (режим линии). Эта опция позволяет клиенту переключать режимы линии. Мы будем обсуждать режимы линии позже.
  • Опции переговоров

    Чтобы использовать любые опции, упомянутые в предыдущем разделе, сначала требуются переговоры между клиентом и сервером. Для этой цели применяются четыре управляющих символа; они показаны в таблице 12.3.

    NVT-символы настройки для опций переговоров
    Символ Десятичное значение Двоичное значение Смысловое значение
    WILL 251 11111011
  • Предложение для запуска
  • Принятие запроса на запуск
  • WONT 252 11111100
  • Отказ запросу на запуск
  • Предложение для отключения
  • Принятие запроса на отключение
  • DO 253 11111101
  • Одобрение предложения на запуск
  • Требование на запуск
  • DONT 254 11111110
  • Неодобрение предложения на за пуск
  • Одобрение предложения на блокировку
  • Требование на отключение
  • Запуск опций

    Некоторые опции могут быть запущены только сервером, некоторые — только клиентом, а некоторые — обеими сторонами.

    Сторона может запустить опцию, если она имеет право для этого. Предложение может быть принято и не принято другой стороной. Предлагаемая сторона посылает команду WILL, которая означает "Я запущу опцию?". Другая сторона может в ответ послать команду DO, которая означает "Пожалуйста, запускай" (рис. 12.7. ). Ответом будет команда WILL, которая означает "Запускаю".

    (рис 12.7) Предложение на запуск опции

    В другом варианте вторая сторона может передать команду WONT, которая означает "Не запущу опцию" (рис. 12.8 ).

    (рис 12.8) Запрос на запуск опции

    Отключение опции

    Сторона может предложить отключить опцию. Другая сторона может принять предложение; может не принять предложение. Предлагающая сторона посылает команду WONT, которая означает "Я больше не хочу использовать эту опцию". Ответ может быть команда DONT, которая означает "Больше не используйте ее". Рис. 12.9 показывает предложение для блокировки опции.

    (рис 12.9) Предложение на отключение опции

    Также запрашивающая сторона посылает команду DONT, которая означает "Я больше не буду использовать эту опцию". Рис. 12.10 показывает запрос на блокировку опции.

    (рис 12.10) Запрос на отключение опции

    Пример

    Рисунок 12.11 показывает пример переговоров об опции. В этом примере клиент хочет, чтобы сервер повторил каждый символ, посланный серверу. Другими словами, когда символ напечатан на клавиатуре пользовательского терминала, его нужно передать на сервер и отослать обратно на экран пользователя, прежде чем обработать. Опция "эхо" должна быть обеспечена сервером, потому что это сервер посылает символы назад к терминалу пользователя. Поэтому клиент должен послать запрос от клиента к серверу, используя команду DO. Запрос содержит три символа: IAC, DO и ECHO. Сервер принимает запрос и возможную опцию. Он информирует клиента посылкой трех символов одобрения: IAC, WILL и ECHO.

    (рис 12.11) Пример эхо-опции

    Симметрия

    Одно из интересных свойств TELNET — симметричность опции переговоров, в которой клиенту и серверу даны равные возможности. Это означает, что при начальной концепции протокол предполагает, что обе стороны используют простую реализацию TELNET без возможности каких-либо опций. Если одна сторона хочет иметь возможность применить опцию, она может предложить или запросить. Другая сторона имеет право одобрить предложение или отклонить запрос, если эта сторона не способна или не хочет использовать опцию. Это делает возможным расширение TELNET. Клиент или сервер может установить более сложную версию TELNET с большим количеством опций. Когда он соединяется с другой стороной, он может предложить или запросить эти новые опции. Если другая сторона поддерживает эти опции, они могут стать возможными, в противном случае они отклоняются.

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

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

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

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

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

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

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

    Знак ESC

    Символ, напечатанный пользователем, обычно посылают серверу. Однако иногда пользователь хочет иметь символы, интерпретируемые клиентом вместо сервера. В этом случае пользователь может использовать символ escape, обычно Ctrl +] (показанный как ^). Это — сигнал клиенту, указывающий, что команда — не для удаленного сервера, а для клиента. Рисунок 12.15. сравнивает прерывание прикладной программы удаленной стороны с прерыванием процесса клиента на местной стороне, с использованием символа ESC.

    (рис 12.15) Два различных прерывания прикладной программы

    Режим работы

    Большинство реализаций TELNET работает в одном из трех режимов: заданный по умолчанию режим, символьный режим и режим линии.

    Режим, заданный по умолчанию

    Режим, заданный по умолчанию, используется, когда с помощью опции переговоров не запрошены никакие другие режимы. В этом режиме возвращение символов делается клиентом. Пользователь печатает символ, а клиент отображает символ на экране (или принтере), но не посылает его, пока не закончится вся строка. После посылки полной строки на сервер клиент ждет команду GA (go ahead) от сервера, перед принятием новой строки — от пользователя. Эта работа — полудуплексная. Полудуплексная работа не эффективна, когда связь в самом TCP является дуплексной, так что этот режим устаревает.

    Символьный режим

    В символьном режиме каждый напечатанный клиентом символ посылается серверу. Сервер обычно обрабатывает символ, чтобы отобразить на экране клиента. В этом режиме отражение символа может быть отсрочено, если передача происходит длительное время (такое, как при спутниковой связи). Оно также создает перегрузку (трафика) для сети, потому что для каждого символа данных нужно послать три сегмента TCP:

  • пользователь вводит символ, который посылает серверу;
  • сервер признает полученный символ и повторяет символ назад (в одном сегменте);
  • клиент подтверждает получение отображенного на экране символа.
  • Режим строки

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

    Хотя режим строки напоминает режим, заданный по умолчанию, это только внешнее сходство. Режим, заданный по умолчанию, работает в полудуплексном режиме; режим строки является дуплексным, с клиентом, посылающим одну строку за другой, без потребности во вмешательстве символа GA (иди дальше — go ahead) от сервера.

    Примеры

    В этом разделе мы показываем два примера TELNET-взаимодействия между клиентом и сервером.

    Пример 1

    В этом примере мы используем режим по умолчанию, чтобы показать его концепцию и недостатки (несмотря на то, что он сегодня устарел). Клиент и север ведут переговоры о типе терминала и скорости терминала, и затем сервер проверяет пароль пользователя (рис. 12.16 ).

    (рис 12.16) Пример 1

    Пример 2

    В этом примере мы покажем, как клиент переключается на символьный режим. Клиент запрашивает сервер, чтобы запустить в работу опции SUPPRESS GO AHEAD и ECHO (рис. 12.17 ).

    (рис 12.17) Пример 2

    Пользовательский интерфейс

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

    Пример команд интерфейса
    Команда Смысловое значение
    Open Связь к удаленному компьютеру
    Close Завершение связи
    Display Показ рабочих параметров
    Mode Изменение режима строки или символьного режима
    Set Установка рабочих параметров
    Status Отображение информации о состоянии
    Send Посылка специальных символов
    quit Выход из TELNET

    Команды от клиента на сервер

    Клиент может послать команды серверу. Чтобы отличать команду от данных, команды должны начинаться с двух специальных символов — с двух FF16. Следующие 2 байта определяют тип команды. Обратите внимание, что, если клиент посылает поток данных, начинающийся с двух FF16 символов, сервер может воспринять их неправильно. Однако, очень маловероятно, что эти два символа — часть потока данных.

    Пока только одна команда была определена. Это — ss (screen size — размер экрана), команда, используемая для объявления размера окна экрана. Клиент посылает два символа из всех единиц ( FF16 ), следующие за ss и

  • сопровождаемые 2 байтами, которые показывают число символов в строке,
  • сопровождаемые 2 байтами, которые показывают число символов в столбце,
  • сопровождаемые 2 байтами, которые показывают число пикселей (элементы картинки) в X (горизонтальном) направлении,
  • сопровождаемые 2 байтами, которые показывают число пикселей в Y (вертикальном) направлении.
  • Краткие итоги

  • TELNET — приложение клиент-сервер, которое позволяет пользователю войти в удаленную машину, и предоставляет доступ пользователю к удаленной системе.
  • Когда пользователь обращается к удаленной системе с помощью процесса TELNET, программа работает в системе с разделением времени.
  • Оконечный драйвер правильно интерпретирует нажатия клавиши на местном терминале или на терминальном эмуляторе. Для выполнения тех же действий на удаленном терминале требуется применение специальной программы.
  • TELNET использует систему сетевого виртуального терминала (NVT), чтобы кодировать символы в местной системе. В машине сервера NVT расшифровывает символы в форму, приемлемую для удаленной машины.
  • NVT использует набор символов для данных и набор символов для дистанционного управления.
  • TELNET символы управления вставляются в поток данных и предваряются идентификатором, таким как символ управления (IAC).
  • Опции — это операции, которые улучшают процесс TELNET.
  • TELNET позволяет путем переговоров устанавливать условия передачи между клиентом и сервером перед и в течение использования услуги.
  • Некоторые опции могут быть позволены только серверу, некоторые — только клиенту и некоторые — обоим.
  • Опция разрешается или блокируется с помощью предложения или запроса.
  • Опция, которая нуждается в дополнительной информации, требует использования символов подопции.
  • Символы управления могут быть использованы для того, чтобы работать с удаленным сервером.
  • При передаче сигналов вне полосы команды посылаются в неисправном режиме строки.
  • В режиме, заданном по умолчанию, клиент посылает серверу одну строку в один момент времени и ждет символ разрешения (GA), прежде чем может быть принята от пользователя новая строка.
  • В символьном режиме клиент посылает серверу один символ в один момент времени.
  • В режиме строки клиент посылает серверу одну строку в один момент времени, одну за другой, без необходимости вмешательства символа GA.
  • Пользователь обычно не обращается непосредственно к TELNET. Действует дружественное пользователю программное обеспечение как интерфейс между TELNET и пользователем.
  • Задачи и упражнения

  • Покажите последовательность бит, посылаемую от клиента TELNET при двоичной передаче 1111 0011 0011 1100 1111 1111.
  • Если TELNET использует символьный режим, сколько символов послано назад и вперед между клиентом и сервером для того, чтобы скопировать один в другой файл, называемый файл2 в UNIX?
  • Какое минимальное число бит посылает TCP для завершения задачи в упражнении 2?
  • Какое минимальное число бит посылается к уровню звена данных (использующему Ethernet) для завершения задачи в упражнении 2?
  • Каково отношение полезных бит к общему числу бит в упражнении 4?
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим по умолчанию.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в режим строки.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим строки.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима строки в режим по умолчанию.
  • Интерпретируйте следующие последовательности символов (в шестнадцатеричной системе), полученные TELNET клиентом или сервером:
  • FF FB 01 ;
  • FF FE 01 ;
  • FF F4 ;
  • FF F9.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Страницы:

    Главная задача Интернета и его набора протоколов TCP/IP — это обеспечить сервис для пользователя. Например, пользователь хочет иметь возможность выполнять различные прикладные программы на удаленном сайте и создать результат, который может быть передан к его местному сайту. Один из путей удовлетворения такой потребности — создать различные прикладные программы клиент-сервер для каждой услуги. Уже доступны программы передачи файлов (FTP и TFTP), электронной почты (SMTP) и так далее. Однако все конкретные программы клиентсервер для каждого применения описать невозможно.

    Лучшее решение — общецелевая программа клиент-сервер, которая позволяет пользователю иметь доступ к любой прикладной программе на удаленном компьютере. После входа в систему пользователь может использовать услуги, доступные на удаленном компьютере, и принимать результаты на местном компьютере.

    TELNET — это сокращение от Terminals NETwork. Это стандартный протокол TCP/IP для услуг виртуального терминала. TELNET дает возможность устанавливать соединение с удаленным компьютером таким образом, что создается впечатление, как будто местный терминал – это терминал удаленной системы.

    Концепция

    TELNET основан на концепциях, которые обсуждаются ниже.

    Внешняя среда с разделением времени

    TELNET был разработан в эпоху, когда большие операционные системы, такие как UNIX, работали с внешней средой по принципу разделения времени. Согласно этому принципу, большой компьютер поддерживал множество пользователей, предоставляя им часть общего времени. Взаимодействие между пользователем и компьютером осуществляется с помощью терминала, который обычно состоит из комбинации клавиатуры, монитора и мышки. Даже микрокомпьютер может моделировать терминал с помощью терминального эмулятора.

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

    Логин

    В среде с разделением времени пользователь — это часть системы с некоторыми правами и, вероятно, с паролем. Каждый полномочный пользователь имеет идентификатор и пароль. Пользовательская идентификация определяет пользователя как часть системы. Для доступа к системе пользователь начинает сеанс с пользовательского идентификатора (id) или с регистрационного имени (login name). Система помогает проверке пароля, чтобы предотвратить доступ к ресурсу неполномочного пользователя.

    Местный логин

    Когда пользователь входит в местную систему с разделением времени, это называется местный логин. Как только пользователь напечатает некое слово на терминале или рабочей станции, выполняющей эмуляцию терминала, сразу начинает работать терминальная программа (драйвер), которая распознает значение введенных символов. Терминальный драйвер передает символы операционной системе, в рамках этой системы комбинация символов интерпретируется и вызывает желаемую прикладную программу или утилиту (рис. 12.1 ).

    (рис 12.1) Местный login

    Однако этот механизм не такой простой, как кажется, потому что операционная система может назначить специальные значения для специальных символов. Скажем, в UNIX некоторые комбинации символов имеют специальное значение, например, комбинации управляющих символов с символом "z", которые означают прекращение действия; комбинации управляющих символов с символом "c" означают остановку; и так далее. Несмотря на то что эти специальные ситуации не создают никаких проблем в местном вхождении в систему (login), потому что терминальный эмулятор и терминальный драйвер знают точно значение каждого символа и комбинации символов, они могут создавать проблемы при удаленном входе в систему. Какой процесс должен интерпретировать специальные символы? Клиент или сервер? Эта ситуация будет рассмотрена в этой лекции позднее.

    Удаленный логин

    Когда пользователь хочет иметь доступ к прикладной программе или утилите, размещенным на удаленном компьютере, он выполняет дистанционный вход в систему (логин). Здесь TELNET берет на себя функции клиента и сервера. Пользователь посылает сигнал нажатия кнопки терминальному драйверу, где местная операционная система принимает символы и интерпретирует их. Эти символы посылает TELNET-клиент, который преобразует символы к универсальному набору, называемому символы виртуального сетевого терминала (Network Virtual Terminal Characters), и доставляет их к местному стеку протоколов TCP/IP (рис. 12.2 ).

    (рис 12.2) Дистанционный login

    Команды или текст в форме сетевого виртуального терминала (NVT) перемещаются через Интернет и прибывают на стек протоколов TCP/IP в удаленной машине. Здесь символы доставляются операционной системе и проходят к TELNET-серверу, который преобразует их в символы, понятные удаленному компьютеру. Однако символы не могут пройти прямо на операционную систему, потому что удаленная операционная система не разработана для получения трактовки этих символов от TELNET. Она спроектирована так, чтобы принимать символы от драйвера терминала. Решение, добавляющее необходимое программное обеспечение, называется псевдотерминальным драйвером, который преобразовывает поступившие символы как символы, поступающие от местного терминала. Операционная система затем предает символы к соответствующей прикладной программе.

    Сетевой виртуальный терминал (NVT)

    Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl+z, в то время как в других операционных системах — это Ctrl+d.

    Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением универсального интерфейса, называемого NVT (Network Virtual Terminal — виртуальный сетевой терминал). Для каждого интерфейса TELNET переводит символы (данные или команды), которые получает от местного терминала, в NVT-форму и доставляет их в сеть. С другой стороны, сервер TELNET переводит команды из формы NVT в форму, доступную удаленному компьютеру. Все иллюстрации этой концепции смотрите на рисунке 12.3.

    (рис 12.3) Концепция NVT

    Набор символов NVT

    Символы данных

    NVT набор символов обычно использует набор, называемый NVT ASCII. Это 8-битовый набор символов, в котором семь младших бит такие же, как в US ASCII, имеющие старший бит — 0 (рис. 12.4. ). Хотя возможно посылать 8-битовый ASCII (с высшим разрядом, установленным в 0 или 1), это должно быть согласовано между клиентом и сервером с использованием опции "переговоры".

    (рис 12.4) Формат символов данных

    Символы дистанционного управления

    Чтобы послать символы управления между компьютером (от клиента к серверу и наоборот), NVT использует 8-битовый набор символов, в которых высший разряд установлен в 1 (рис. 12.5. ).

    (рис 12.5) Формат управляющих символов

    Таблица 12.1. содержит список некоторых символов дистанционного управления и их значения.

    Некоторые NVT-символы дистанционного управления
    Символ Десятичное значение Двоичное значение Смысл
    EOF 236 11101100 Конец файла (End of file)
    EOR 239 11101111 Конец записи (End record)
    SE 240 11110000 Конец подопции (Suboption end)
    NOP 241 11110001 Нет обработки (No operation)
    DM 242 11110010 Метка данных (data mark)
    BRK 243 11110011 Разрыв (Break)
    IP 244 11110100 Прерывание процесса (Interrupt process)
    AO 245 11110101 Остановка выхода (Abort output)
    AYT 246 11110110 Вы есть? (Are you there?)
    EC 247 11110111 Вычеркнуть символ (Erase character)
    EL 248 11111000 Вычеркнуть линию (Erase line)
    GA 249 11111001 Пройти вперед (Go ahead)
    SB 250 11111010 Начинается подопция (Suboption begin)
    WILL 251 11111011 Соглашение для допущения опции (Agreement to enable option)
    WONT 252 11111100 Отказ от допустимости опции (Refusal to enable)
    DO 253 11111101 Утверждение запроса опции (Approval to option request)
    DONT 254 11101110 Отклонение запроса опции (Denial of option request)
    IAC 255 11111111 Интерпретация (следующего символа) как управления (Interpret (the next character) as control)

    Вставка документа

    TELNET использует только одно TCP-соединение. Сервер задействует закрепленный порт 23, а клиент — кратковременный порт. Такое же соединение применяется для посылки данных и управляющих символов. TELNET достигает этого, вставляя управляющие символы в поток данных. Однако чтобы отличить данные от управляющих символов, каждая последовательность управляющих символов предваряется специальным управляющим символом, называемым "интерпретировать как управляющий". Например, предположим, пользователь хочет послать последовательность символов данных к удаленному серверу для отображения файла ( file1 ).

    Cat file1

    Однако имя файла неправильно набрано на клавиатуре ( filea вместо file1 ), и пользователь использует клавишу обратного перевода, чтобы скорректировать эту ситуацию.

    Cat filea<backspace>1

    Но неправильное выполнение TELNET-пользователь не может редактировать на месте, редактирование должно быть сделано на удаленном сервере. Символ обратного перевода переводится в два дистанционных символа ( IAC EC ), которые внедряются в данные и посылаются к удаленному серверу. Что посылает сервер, показано на рис. 12.6.

    (рис 12.6) Пример вставки

    Опции

    TELNET позволяет клиенту и серверу опции ведения переговоров перед и в течение использования услуги. Опция дополнительных свойств возможна для пользователя с более сложным терминалом. Пользователь с простым терминалом может использовать минимальные свойства. Таблица 12.2. показывает некоторые употребительные опции.

    Опции
    Код Опция Смысловое значение
    0 Binary (Двоичная) Используется 8-битовый двоичный обмен
    1 Echo (Эхо) Эхо-данные, полученные на одной стороне для другой
    3 Suppress go ahead (Продвижение вперед запрещено) Сигнал запрещения продвижения вперед после данных
    5 Status (состояние) Запрос состояния TELNET
    6 Timing mark (метка времени) Определяет метку времени
    24 Terminal type (тип терминала) Настройка типа терминала
    32 Terminal speed (скорость терминала) Настройка скорости терминала
    34 Line mode (режим линии) Изменение режима линии
  • Binary (двоичная). Опция позволяет приемнику интерпретировать каждый 8-битовый символ, за исключением IAC, как двоичные данные. Когда IAC получен, следующий символ или символы интерпретируются как команды. Однако если получены два последовательных символа IAC, первый удаляется, а второй интерпретируется как данные.
  • Echo (эхо). Эта опция позволяет серверу получать эхо-данные от клиента. Это означает, что каждый символ, посланный клиентом к серверу, возвращается в виде "эха" назад на экран терминала. В этом случае пользовательский терминал обычно не отображает символы на экране, когда они напечатаны, а ожидает, пока получит их от сервера.
  • Suppress go ahead (продвижение вперед запрещено). Эта опция запрещает продвижение символа вперед ( GA – go ahead ). Мы будем обсуждать символ GA при обсуждении режимов TELNET
  • Status (состояние). Эта опция разрешает пользователю или процессу, выполняемому на машине клиента, иметь состояние опции, доступной на сайте сервера.
  • Timing mark (метка времени). Эта опция позволяет одной стороне ставить марку времени, которая указывает, что все предыдущие полученные данные обработаны.
  • Terminal type (тип терминала). Эта опция позволяет клиенту послать тип своего терминала.
  • Terminal speed (скорость терминала). Эта опция позволяет клиенту повысить скорость своего терминала.
  • Line mode (режим линии). Эта опция позволяет клиенту переключать режимы линии. Мы будем обсуждать режимы линии позже.
  • Опции переговоров

    Чтобы использовать любые опции, упомянутые в предыдущем разделе, сначала требуются переговоры между клиентом и сервером. Для этой цели применяются четыре управляющих символа; они показаны в таблице 12.3.

    NVT-символы настройки для опций переговоров
    Символ Десятичное значение Двоичное значение Смысловое значение
    WILL 251 11111011
  • Предложение для запуска
  • Принятие запроса на запуск
  • WONT 252 11111100
  • Отказ запросу на запуск
  • Предложение для отключения
  • Принятие запроса на отключение
  • DO 253 11111101
  • Одобрение предложения на запуск
  • Требование на запуск
  • DONT 254 11111110
  • Неодобрение предложения на за пуск
  • Одобрение предложения на блокировку
  • Требование на отключение
  • Запуск опций

    Некоторые опции могут быть запущены только сервером, некоторые — только клиентом, а некоторые — обеими сторонами.

    Сторона может запустить опцию, если она имеет право для этого. Предложение может быть принято и не принято другой стороной. Предлагаемая сторона посылает команду WILL, которая означает "Я запущу опцию?". Другая сторона может в ответ послать команду DO, которая означает "Пожалуйста, запускай" (рис. 12.7. ). Ответом будет команда WILL, которая означает "Запускаю".

    (рис 12.7) Предложение на запуск опции

    В другом варианте вторая сторона может передать команду WONT, которая означает "Не запущу опцию" (рис. 12.8 ).

    (рис 12.8) Запрос на запуск опции

    Отключение опции

    Сторона может предложить отключить опцию. Другая сторона может принять предложение; может не принять предложение. Предлагающая сторона посылает команду WONT, которая означает "Я больше не хочу использовать эту опцию". Ответ может быть команда DONT, которая означает "Больше не используйте ее". Рис. 12.9 показывает предложение для блокировки опции.

    (рис 12.9) Предложение на отключение опции

    Также запрашивающая сторона посылает команду DONT, которая означает "Я больше не буду использовать эту опцию". Рис. 12.10 показывает запрос на блокировку опции.

    (рис 12.10) Запрос на отключение опции

    Пример

    Рисунок 12.11 показывает пример переговоров об опции. В этом примере клиент хочет, чтобы сервер повторил каждый символ, посланный серверу. Другими словами, когда символ напечатан на клавиатуре пользовательского терминала, его нужно передать на сервер и отослать обратно на экран пользователя, прежде чем обработать. Опция "эхо" должна быть обеспечена сервером, потому что это сервер посылает символы назад к терминалу пользователя. Поэтому клиент должен послать запрос от клиента к серверу, используя команду DO. Запрос содержит три символа: IAC, DO и ECHO. Сервер принимает запрос и возможную опцию. Он информирует клиента посылкой трех символов одобрения: IAC, WILL и ECHO.

    (рис 12.11) Пример эхо-опции

    Симметрия

    Одно из интересных свойств TELNET — симметричность опции переговоров, в которой клиенту и серверу даны равные возможности. Это означает, что при начальной концепции протокол предполагает, что обе стороны используют простую реализацию TELNET без возможности каких-либо опций. Если одна сторона хочет иметь возможность применить опцию, она может предложить или запросить. Другая сторона имеет право одобрить предложение или отклонить запрос, если эта сторона не способна или не хочет использовать опцию. Это делает возможным расширение TELNET. Клиент или сервер может установить более сложную версию TELNET с большим количеством опций. Когда он соединяется с другой стороной, он может предложить или запросить эти новые опции. Если другая сторона поддерживает эти опции, они могут стать возможными, в противном случае они отклоняются.

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

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

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

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

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

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

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

    Знак ESC

    Символ, напечатанный пользователем, обычно посылают серверу. Однако иногда пользователь хочет иметь символы, интерпретируемые клиентом вместо сервера. В этом случае пользователь может использовать символ escape, обычно Ctrl +] (показанный как ^). Это — сигнал клиенту, указывающий, что команда — не для удаленного сервера, а для клиента. Рисунок 12.15. сравнивает прерывание прикладной программы удаленной стороны с прерыванием процесса клиента на местной стороне, с использованием символа ESC.

    (рис 12.15) Два различных прерывания прикладной программы

    Режим работы

    Большинство реализаций TELNET работает в одном из трех режимов: заданный по умолчанию режим, символьный режим и режим линии.

    Режим, заданный по умолчанию

    Режим, заданный по умолчанию, используется, когда с помощью опции переговоров не запрошены никакие другие режимы. В этом режиме возвращение символов делается клиентом. Пользователь печатает символ, а клиент отображает символ на экране (или принтере), но не посылает его, пока не закончится вся строка. После посылки полной строки на сервер клиент ждет команду GA (go ahead) от сервера, перед принятием новой строки — от пользователя. Эта работа — полудуплексная. Полудуплексная работа не эффективна, когда связь в самом TCP является дуплексной, так что этот режим устаревает.

    Символьный режим

    В символьном режиме каждый напечатанный клиентом символ посылается серверу. Сервер обычно обрабатывает символ, чтобы отобразить на экране клиента. В этом режиме отражение символа может быть отсрочено, если передача происходит длительное время (такое, как при спутниковой связи). Оно также создает перегрузку (трафика) для сети, потому что для каждого символа данных нужно послать три сегмента TCP:

  • пользователь вводит символ, который посылает серверу;
  • сервер признает полученный символ и повторяет символ назад (в одном сегменте);
  • клиент подтверждает получение отображенного на экране символа.
  • Режим строки

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

    Хотя режим строки напоминает режим, заданный по умолчанию, это только внешнее сходство. Режим, заданный по умолчанию, работает в полудуплексном режиме; режим строки является дуплексным, с клиентом, посылающим одну строку за другой, без потребности во вмешательстве символа GA (иди дальше — go ahead) от сервера.

    Примеры

    В этом разделе мы показываем два примера TELNET-взаимодействия между клиентом и сервером.

    Пример 1

    В этом примере мы используем режим по умолчанию, чтобы показать его концепцию и недостатки (несмотря на то, что он сегодня устарел). Клиент и север ведут переговоры о типе терминала и скорости терминала, и затем сервер проверяет пароль пользователя (рис. 12.16 ).

    (рис 12.16) Пример 1

    Пример 2

    В этом примере мы покажем, как клиент переключается на символьный режим. Клиент запрашивает сервер, чтобы запустить в работу опции SUPPRESS GO AHEAD и ECHO (рис. 12.17 ).

    (рис 12.17) Пример 2

    Пользовательский интерфейс

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

    Пример команд интерфейса
    Команда Смысловое значение
    Open Связь к удаленному компьютеру
    Close Завершение связи
    Display Показ рабочих параметров
    Mode Изменение режима строки или символьного режима
    Set Установка рабочих параметров
    Status Отображение информации о состоянии
    Send Посылка специальных символов
    quit Выход из TELNET

    Команды от клиента на сервер

    Клиент может послать команды серверу. Чтобы отличать команду от данных, команды должны начинаться с двух специальных символов — с двух FF16. Следующие 2 байта определяют тип команды. Обратите внимание, что, если клиент посылает поток данных, начинающийся с двух FF16 символов, сервер может воспринять их неправильно. Однако, очень маловероятно, что эти два символа — часть потока данных.

    Пока только одна команда была определена. Это — ss (screen size — размер экрана), команда, используемая для объявления размера окна экрана. Клиент посылает два символа из всех единиц ( FF16 ), следующие за ss и

  • сопровождаемые 2 байтами, которые показывают число символов в строке,
  • сопровождаемые 2 байтами, которые показывают число символов в столбце,
  • сопровождаемые 2 байтами, которые показывают число пикселей (элементы картинки) в X (горизонтальном) направлении,
  • сопровождаемые 2 байтами, которые показывают число пикселей в Y (вертикальном) направлении.
  • Краткие итоги

  • TELNET — приложение клиент-сервер, которое позволяет пользователю войти в удаленную машину, и предоставляет доступ пользователю к удаленной системе.
  • Когда пользователь обращается к удаленной системе с помощью процесса TELNET, программа работает в системе с разделением времени.
  • Оконечный драйвер правильно интерпретирует нажатия клавиши на местном терминале или на терминальном эмуляторе. Для выполнения тех же действий на удаленном терминале требуется применение специальной программы.
  • TELNET использует систему сетевого виртуального терминала (NVT), чтобы кодировать символы в местной системе. В машине сервера NVT расшифровывает символы в форму, приемлемую для удаленной машины.
  • NVT использует набор символов для данных и набор символов для дистанционного управления.
  • TELNET символы управления вставляются в поток данных и предваряются идентификатором, таким как символ управления (IAC).
  • Опции — это операции, которые улучшают процесс TELNET.
  • TELNET позволяет путем переговоров устанавливать условия передачи между клиентом и сервером перед и в течение использования услуги.
  • Некоторые опции могут быть позволены только серверу, некоторые — только клиенту и некоторые — обоим.
  • Опция разрешается или блокируется с помощью предложения или запроса.
  • Опция, которая нуждается в дополнительной информации, требует использования символов подопции.
  • Символы управления могут быть использованы для того, чтобы работать с удаленным сервером.
  • При передаче сигналов вне полосы команды посылаются в неисправном режиме строки.
  • В режиме, заданном по умолчанию, клиент посылает серверу одну строку в один момент времени и ждет символ разрешения (GA), прежде чем может быть принята от пользователя новая строка.
  • В символьном режиме клиент посылает серверу один символ в один момент времени.
  • В режиме строки клиент посылает серверу одну строку в один момент времени, одну за другой, без необходимости вмешательства символа GA.
  • Пользователь обычно не обращается непосредственно к TELNET. Действует дружественное пользователю программное обеспечение как интерфейс между TELNET и пользователем.
  • Задачи и упражнения

  • Покажите последовательность бит, посылаемую от клиента TELNET при двоичной передаче 1111 0011 0011 1100 1111 1111.
  • Если TELNET использует символьный режим, сколько символов послано назад и вперед между клиентом и сервером для того, чтобы скопировать один в другой файл, называемый файл2 в UNIX?
  • Какое минимальное число бит посылает TCP для завершения задачи в упражнении 2?
  • Какое минимальное число бит посылается к уровню звена данных (использующему Ethernet) для завершения задачи в упражнении 2?
  • Каково отношение полезных бит к общему числу бит в упражнении 4?
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим по умолчанию.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в режим строки.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из символьного режима в режим строки.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима по умолчанию в символьный режим.
  • Покажите последовательность символов обмена между клиентом TELNET и сервером для переключения из режима строки в режим по умолчанию.
  • Интерпретируйте следующие последовательности символов (в шестнадцатеричной системе), полученные TELNET клиентом или сервером:
  • FF FB 01 ;
  • FF FE 01 ;
  • FF F4 ;
  • FF F9.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Вернуться к учебному плану