Главная задача Интернета и его набора протоколов 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
(рис 12.2) Дистанционный loginКоманды или текст в форме сетевого виртуального терминала (
Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl+z, в то время как в других операционных системах — это Ctrl+d.
Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением
(рис 12.3) Концепция NVT
(рис 12.4) Формат символов данных
Чтобы послать символы управления между компьютером (от клиента к серверу и наоборот),
(рис 12.5) Формат управляющих символовТаблица 12.1. содержит список некоторых символов дистанционного управления и их значения.
| Символ | Десятичное значение | Двоичное значение | Смысл |
|---|---|---|---|
| EOF | 236 | 11101100 | Конец файла (End of file) |
| 239 | 11101111 | Конец записи (End record) | |
| SE | 240 | 11110000 | Конец подопции (Suboption end) |
| 241 | 11110001 | Нет обработки (No operation) | |
| DM | 242 | 11110010 | Метка данных (data mark) |
| BRK | 243 | 11110011 | Разрыв (Break) |
| IP | 244 | 11110100 | Прерывание процесса ( |
| AO | 245 | 11110101 | Остановка выхода ( |
| 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) |
| 255 | 11111111 | Интерпретация (следующего символа) как управления ( |
TELNET использует только одно TCP-соединение. Сервер задействует закрепленный порт 23, а клиент — кратковременный порт. Такое же соединение применяется для посылки данных и управляющих символов. TELNET достигает этого, вставляя управляющие символы в поток данных. Однако чтобы отличить данные от управляющих символов, каждая последовательность управляющих символов предваряется file1 ).
Cat file1
Однако имя файла неправильно набрано на клавиатуре ( filea вместо file1 ), и пользователь использует клавишу обратного перевода, чтобы скорректировать эту ситуацию.
Cat filea<backspace>1
Но неправильное выполнение TELNET-пользователь не может редактировать на месте, редактирование должно быть сделано на удаленном сервере. Символ обратного перевода переводится в два дистанционных символа ( ), которые внедряются в данные и посылаются к удаленному серверу. Что посылает сервер, показано на рис. 12.6.
(рис 12.6) Пример вставки
TELNET позволяет клиенту и серверу опции ведения переговоров перед и в течение использования услуги. Опция дополнительных свойств возможна для пользователя с более сложным терминалом. Пользователь с простым терминалом может использовать минимальные свойства. Таблица 12.2. показывает некоторые употребительные опции.
| Код | Опция | Смысловое значение |
|---|---|---|
| 0 | Binary (Двоичная) | Используется 8-битовый двоичный обмен |
| 1 | Echo (Эхо) | Эхо-данные, полученные на одной стороне для другой |
| 3 | Сигнал запрещения продвижения вперед после данных | |
| 5 | Status (состояние) | Запрос состояния TELNET |
| 6 | Timing mark (метка времени) | Определяет метку времени |
| 24 | Terminal type (тип терминала) | Настройка типа терминала |
| 32 | Terminal speed (скорость терминала) | Настройка скорости терминала |
| 34 | Line mode (режим линии) | Изменение режима линии |
GA – go ahead ). Мы будем обсуждать символ GA при обсуждении режимов TELNETЧтобы использовать любые опции, упомянутые в предыдущем разделе, сначала требуются переговоры между клиентом и сервером. Для этой цели применяются четыре управляющих символа; они показаны в таблице 12.3.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
|---|---|---|---|
| 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. Запрос содержит три символа: , DO и ECHO. Сервер принимает запрос и возможную опцию. Он информирует клиента посылкой трех символов одобрения: , WILL и ECHO.
(рис 12.11) Пример эхо-опции
Одно из интересных свойств TELNET — симметричность опции переговоров, в которой клиенту и серверу даны равные возможности. Это означает, что при начальной концепции протокол предполагает, что обе стороны используют простую реализацию TELNET без возможности каких-либо опций. Если одна сторона хочет иметь возможность применить опцию, она может предложить или запросить. Другая сторона имеет право одобрить предложение или отклонить запрос, если эта сторона не способна или не хочет использовать опцию. Это делает возможным расширение TELNET. Клиент или сервер может установить более сложную версию TELNET с большим количеством опций. Когда он соединяется с другой стороной, он может предложить или запросить эти новые опции. Если другая сторона поддерживает эти опции, они могут стать возможными, в противном случае они отклоняются.
Некоторые опции требуют дополнительной информации, например, для того чтобы определить тип или скорость терминала, переговоры включают строку или номер для определения терминала. В этом случае нужны два символа, указанные в Таблица 12.4., для проведения переговоров по субопциям.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
|---|---|---|---|
| SE | 240250 | 11110000 | Конец подопции |
| SB | 11111010 | Начало подопции |
Например, тип терминала – это настройка клиентом? показанная на рис. 12.12.
(рис 12.12) Пример переговоров о субопции
Некоторые символы управления могут применяться для управления удаленным сервером. Когда прикладная программа выполняется на местном компьютере, используются специальные символы для прерывания (остановки) программы (например, Ctrl+c ) или стирания последнего напечатанного символа (например, кнопка "удалить" или кнопка "возвращение на одну позицию назад") и так далее. Однако когда программа выполняется на удаленном компьютере, эти управляющие символы должны быть посланы в удаленную машину. Пользователь еще печатает те же самые последовательности, но они изменяются на специальные символы и посылаются к серверу. Таблица 12.5. показывает некоторые из символов, которые могут быть посланы серверу, чтобы управлять прикладной программой, которая выполняется там.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
| IP | 244 | 11110100 | Процесс прерывания |
| AO | 245 | 11110101 | Прекращение вывода |
| 246 | 11110110 | Вы там есть? | |
| EC | 247 | 11111111 | Стирание последнего символа |
| EL | 248 | 11111000 | Стирание линии |
Рассмотрим эти символы более детально.
Ctrl+c, операционная система вызывает функцию, и функция прерывает программу. Однако если программа продолжается на удаленной машине, соответствующая функция должна быть вызвана операционной системой удаленной машины. TELNET определяет IP (Например, рисунок 12.13 показывает, как прервать выполняющуюся бесконечно прикладную программу на стороне сервера. Пользователь напечатает Ctrl+c, а клиент TELNET посылает на сервер комбинацию
(рис 12.13) Пример прерывания прикладной программыЧтобы сделать символы управления эффективными, в специальных ситуациях TELNET использует передачу сигналов вне полосы. При такой передаче символам управления предшествует
Вообразим ситуацию, в которой прикладная программа, функционирующая на стороне сервера, зациклилась и не принимает больше входные данные. Пользователь хочет прервать прикладную программу, но программа не читает данные от буфера. TCP на стороне сервера нашел, что буфер полон, и послал сегмент, определяющий, что размер окна клиента должен быть равен нулю. Другими словами, TCP на стороне сервера объявляет, что больше не примет регулярный трафик. Чтобы исправить такую ситуацию, TCP нужно послать от клиента серверу срочный сегмент. Срочный сегмент отменяет регулярный механизм управления потоком. Хотя TCP обычно не принимает сегменты, он должен принять срочный сегмент.
Когда процесс TELNET (клиент или сервер) хочет послать вне полосы последовательность символов к другому процессу (клиент или сервер), он включает последовательность в поток данных и вставляет специальный символ, названный DM (Data
(рис 12.14) Сигнализация вне полосыЭтим способом символ управления (IP) доставляется вне полосы к операционной системе, которая использует соответствующую функцию, чтобы прервать функционирующую прикладную программу.
Символ, напечатанный пользователем, обычно посылают серверу. Однако иногда пользователь хочет иметь символы, интерпретируемые клиентом вместо сервера. В этом случае пользователь может использовать символ escape, обычно Ctrl +] (показанный как ^). Это — сигнал клиенту, указывающий, что команда — не для удаленного сервера, а для клиента. Рисунок 12.15. сравнивает прерывание прикладной программы удаленной стороны с прерыванием процесса клиента на местной стороне, с использованием символа ESC.
(рис 12.15) Два различных прерывания прикладной программыБольшинство реализаций TELNET работает в одном из трех режимов: заданный по умолчанию режим, символьный режим и режим линии.
Режим, заданный по умолчанию, используется, когда с помощью опции переговоров не запрошены никакие другие режимы. В этом режиме возвращение символов делается клиентом. Пользователь печатает символ, а клиент отображает символ на экране (или принтере), но не посылает его, пока не закончится вся строка. После посылки полной строки на сервер клиент ждет команду GA (go ahead) от сервера, перед принятием новой строки — от пользователя. Эта работа — полудуплексная. Полудуплексная работа не эффективна, когда связь в самом TCP является дуплексной, так что этот режим устаревает.
В символьном режиме каждый напечатанный клиентом символ посылается серверу. Сервер обычно обрабатывает символ, чтобы отобразить на экране клиента. В этом режиме отражение символа может быть отсрочено, если передача происходит длительное время (такое, как при спутниковой связи). Оно также создает перегрузку (трафика) для сети, потому что для каждого символа данных нужно послать три сегмента TCP:
Новый режим был предложен, чтобы компенсировать недостатки режима по умолчанию и символьного режима. В этом режиме, названном режимом строки, редактирование строки (повторение, стирание символа, стирание строки и так далее) делается клиентом. Затем клиент посылает целую строку серверу.
Хотя режим строки напоминает режим, заданный по умолчанию, это только внешнее сходство. Режим, заданный по умолчанию, работает в полудуплексном режиме; режим строки является дуплексным, с клиентом, посылающим одну строку за другой, без потребности во вмешательстве символа GA (иди дальше — go ahead) от сервера.
В этом разделе мы показываем два примера TELNET-взаимодействия между клиентом и сервером.
В этом примере мы используем режим по умолчанию, чтобы показать его концепцию и недостатки (несмотря на то, что он сегодня устарел). Клиент и север ведут переговоры о типе терминала и скорости терминала, и затем сервер проверяет пароль пользователя (рис. 12.16 ).
(рис 12.16) Пример 1
В этом примере мы покажем, как клиент переключается на символьный режим. Клиент запрашивает сервер, чтобы запустить в работу опции (рис. 12.17 ).
(рис 12.17) Пример 2
Обычно пользователь не использует команды TELNET так, как это определено выше. Как правило, операционная система (например, UNIX) определяет интерфейс с командами, дружественными пользователю. Пример из такого набора команд может быть найден в таблице 12.6. Заметим, что интерфейс отвечает за перевод команд, дружественных пользователю, к командам, определенным ранее в протоколе.
| Команда | Смысловое значение |
|---|---|
| Open | Связь к удаленному компьютеру |
| Close | Завершение связи |
| Display | Показ рабочих параметров |
| Mode | Изменение режима строки или символьного режима |
| Set | Установка рабочих параметров |
| Status | Отображение информации о состоянии |
| Send | Посылка специальных символов |
| quit | Выход из TELNET |
Клиент может послать команды серверу. Чтобы отличать команду от данных, команды должны начинаться с двух специальных символов — с двух FF16. Следующие 2 байта определяют FF16 символов, сервер может воспринять их неправильно. Однако, очень маловероятно, что эти два символа — часть потока данных.
Пока только одна команда была определена. Это — ss (FF16 ), следующие за ss и
1111 0011 0011 1100 1111 1111.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
(рис 12.2) Дистанционный loginКоманды или текст в форме сетевого виртуального терминала (
Механизм для доступа удаленного компьютера должен быть комплексным с учетом специфики каждой операционной системы. Например, для некоторых операционных систем знак конца — это Ctrl+z, в то время как в других операционных системах — это Ctrl+d.
Если мы хотим иметь доступ к любому удаленному компьютеру в мире, мы должны сначала знать специфику терминального эмулятора, используемую этим компьютером. TELNET решает эти проблемы определением
(рис 12.3) Концепция NVT
(рис 12.4) Формат символов данных
Чтобы послать символы управления между компьютером (от клиента к серверу и наоборот),
(рис 12.5) Формат управляющих символовТаблица 12.1. содержит список некоторых символов дистанционного управления и их значения.
| Символ | Десятичное значение | Двоичное значение | Смысл |
|---|---|---|---|
| EOF | 236 | 11101100 | Конец файла (End of file) |
| 239 | 11101111 | Конец записи (End record) | |
| SE | 240 | 11110000 | Конец подопции (Suboption end) |
| 241 | 11110001 | Нет обработки (No operation) | |
| DM | 242 | 11110010 | Метка данных (data mark) |
| BRK | 243 | 11110011 | Разрыв (Break) |
| IP | 244 | 11110100 | Прерывание процесса ( |
| AO | 245 | 11110101 | Остановка выхода ( |
| 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) |
| 255 | 11111111 | Интерпретация (следующего символа) как управления ( |
TELNET использует только одно TCP-соединение. Сервер задействует закрепленный порт 23, а клиент — кратковременный порт. Такое же соединение применяется для посылки данных и управляющих символов. TELNET достигает этого, вставляя управляющие символы в поток данных. Однако чтобы отличить данные от управляющих символов, каждая последовательность управляющих символов предваряется file1 ).
Cat file1
Однако имя файла неправильно набрано на клавиатуре ( filea вместо file1 ), и пользователь использует клавишу обратного перевода, чтобы скорректировать эту ситуацию.
Cat filea<backspace>1
Но неправильное выполнение TELNET-пользователь не может редактировать на месте, редактирование должно быть сделано на удаленном сервере. Символ обратного перевода переводится в два дистанционных символа ( ), которые внедряются в данные и посылаются к удаленному серверу. Что посылает сервер, показано на рис. 12.6.
(рис 12.6) Пример вставки
TELNET позволяет клиенту и серверу опции ведения переговоров перед и в течение использования услуги. Опция дополнительных свойств возможна для пользователя с более сложным терминалом. Пользователь с простым терминалом может использовать минимальные свойства. Таблица 12.2. показывает некоторые употребительные опции.
| Код | Опция | Смысловое значение |
|---|---|---|
| 0 | Binary (Двоичная) | Используется 8-битовый двоичный обмен |
| 1 | Echo (Эхо) | Эхо-данные, полученные на одной стороне для другой |
| 3 | Сигнал запрещения продвижения вперед после данных | |
| 5 | Status (состояние) | Запрос состояния TELNET |
| 6 | Timing mark (метка времени) | Определяет метку времени |
| 24 | Terminal type (тип терминала) | Настройка типа терминала |
| 32 | Terminal speed (скорость терминала) | Настройка скорости терминала |
| 34 | Line mode (режим линии) | Изменение режима линии |
GA – go ahead ). Мы будем обсуждать символ GA при обсуждении режимов TELNETЧтобы использовать любые опции, упомянутые в предыдущем разделе, сначала требуются переговоры между клиентом и сервером. Для этой цели применяются четыре управляющих символа; они показаны в таблице 12.3.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
|---|---|---|---|
| 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. Запрос содержит три символа: , DO и ECHO. Сервер принимает запрос и возможную опцию. Он информирует клиента посылкой трех символов одобрения: , WILL и ECHO.
(рис 12.11) Пример эхо-опции
Одно из интересных свойств TELNET — симметричность опции переговоров, в которой клиенту и серверу даны равные возможности. Это означает, что при начальной концепции протокол предполагает, что обе стороны используют простую реализацию TELNET без возможности каких-либо опций. Если одна сторона хочет иметь возможность применить опцию, она может предложить или запросить. Другая сторона имеет право одобрить предложение или отклонить запрос, если эта сторона не способна или не хочет использовать опцию. Это делает возможным расширение TELNET. Клиент или сервер может установить более сложную версию TELNET с большим количеством опций. Когда он соединяется с другой стороной, он может предложить или запросить эти новые опции. Если другая сторона поддерживает эти опции, они могут стать возможными, в противном случае они отклоняются.
Некоторые опции требуют дополнительной информации, например, для того чтобы определить тип или скорость терминала, переговоры включают строку или номер для определения терминала. В этом случае нужны два символа, указанные в Таблица 12.4., для проведения переговоров по субопциям.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
|---|---|---|---|
| SE | 240250 | 11110000 | Конец подопции |
| SB | 11111010 | Начало подопции |
Например, тип терминала – это настройка клиентом? показанная на рис. 12.12.
(рис 12.12) Пример переговоров о субопции
Некоторые символы управления могут применяться для управления удаленным сервером. Когда прикладная программа выполняется на местном компьютере, используются специальные символы для прерывания (остановки) программы (например, Ctrl+c ) или стирания последнего напечатанного символа (например, кнопка "удалить" или кнопка "возвращение на одну позицию назад") и так далее. Однако когда программа выполняется на удаленном компьютере, эти управляющие символы должны быть посланы в удаленную машину. Пользователь еще печатает те же самые последовательности, но они изменяются на специальные символы и посылаются к серверу. Таблица 12.5. показывает некоторые из символов, которые могут быть посланы серверу, чтобы управлять прикладной программой, которая выполняется там.
| Символ | Десятичное значение | Двоичное значение | Смысловое значение |
| IP | 244 | 11110100 | Процесс прерывания |
| AO | 245 | 11110101 | Прекращение вывода |
| 246 | 11110110 | Вы там есть? | |
| EC | 247 | 11111111 | Стирание последнего символа |
| EL | 248 | 11111000 | Стирание линии |
Рассмотрим эти символы более детально.
Ctrl+c, операционная система вызывает функцию, и функция прерывает программу. Однако если программа продолжается на удаленной машине, соответствующая функция должна быть вызвана операционной системой удаленной машины. TELNET определяет IP (Например, рисунок 12.13 показывает, как прервать выполняющуюся бесконечно прикладную программу на стороне сервера. Пользователь напечатает Ctrl+c, а клиент TELNET посылает на сервер комбинацию
(рис 12.13) Пример прерывания прикладной программыЧтобы сделать символы управления эффективными, в специальных ситуациях TELNET использует передачу сигналов вне полосы. При такой передаче символам управления предшествует
Вообразим ситуацию, в которой прикладная программа, функционирующая на стороне сервера, зациклилась и не принимает больше входные данные. Пользователь хочет прервать прикладную программу, но программа не читает данные от буфера. TCP на стороне сервера нашел, что буфер полон, и послал сегмент, определяющий, что размер окна клиента должен быть равен нулю. Другими словами, TCP на стороне сервера объявляет, что больше не примет регулярный трафик. Чтобы исправить такую ситуацию, TCP нужно послать от клиента серверу срочный сегмент. Срочный сегмент отменяет регулярный механизм управления потоком. Хотя TCP обычно не принимает сегменты, он должен принять срочный сегмент.
Когда процесс TELNET (клиент или сервер) хочет послать вне полосы последовательность символов к другому процессу (клиент или сервер), он включает последовательность в поток данных и вставляет специальный символ, названный DM (Data
(рис 12.14) Сигнализация вне полосыЭтим способом символ управления (IP) доставляется вне полосы к операционной системе, которая использует соответствующую функцию, чтобы прервать функционирующую прикладную программу.
Символ, напечатанный пользователем, обычно посылают серверу. Однако иногда пользователь хочет иметь символы, интерпретируемые клиентом вместо сервера. В этом случае пользователь может использовать символ escape, обычно Ctrl +] (показанный как ^). Это — сигнал клиенту, указывающий, что команда — не для удаленного сервера, а для клиента. Рисунок 12.15. сравнивает прерывание прикладной программы удаленной стороны с прерыванием процесса клиента на местной стороне, с использованием символа ESC.
(рис 12.15) Два различных прерывания прикладной программыБольшинство реализаций TELNET работает в одном из трех режимов: заданный по умолчанию режим, символьный режим и режим линии.
Режим, заданный по умолчанию, используется, когда с помощью опции переговоров не запрошены никакие другие режимы. В этом режиме возвращение символов делается клиентом. Пользователь печатает символ, а клиент отображает символ на экране (или принтере), но не посылает его, пока не закончится вся строка. После посылки полной строки на сервер клиент ждет команду GA (go ahead) от сервера, перед принятием новой строки — от пользователя. Эта работа — полудуплексная. Полудуплексная работа не эффективна, когда связь в самом TCP является дуплексной, так что этот режим устаревает.
В символьном режиме каждый напечатанный клиентом символ посылается серверу. Сервер обычно обрабатывает символ, чтобы отобразить на экране клиента. В этом режиме отражение символа может быть отсрочено, если передача происходит длительное время (такое, как при спутниковой связи). Оно также создает перегрузку (трафика) для сети, потому что для каждого символа данных нужно послать три сегмента TCP:
Новый режим был предложен, чтобы компенсировать недостатки режима по умолчанию и символьного режима. В этом режиме, названном режимом строки, редактирование строки (повторение, стирание символа, стирание строки и так далее) делается клиентом. Затем клиент посылает целую строку серверу.
Хотя режим строки напоминает режим, заданный по умолчанию, это только внешнее сходство. Режим, заданный по умолчанию, работает в полудуплексном режиме; режим строки является дуплексным, с клиентом, посылающим одну строку за другой, без потребности во вмешательстве символа GA (иди дальше — go ahead) от сервера.
В этом разделе мы показываем два примера TELNET-взаимодействия между клиентом и сервером.
В этом примере мы используем режим по умолчанию, чтобы показать его концепцию и недостатки (несмотря на то, что он сегодня устарел). Клиент и север ведут переговоры о типе терминала и скорости терминала, и затем сервер проверяет пароль пользователя (рис. 12.16 ).
(рис 12.16) Пример 1
В этом примере мы покажем, как клиент переключается на символьный режим. Клиент запрашивает сервер, чтобы запустить в работу опции (рис. 12.17 ).
(рис 12.17) Пример 2
Обычно пользователь не использует команды TELNET так, как это определено выше. Как правило, операционная система (например, UNIX) определяет интерфейс с командами, дружественными пользователю. Пример из такого набора команд может быть найден в таблице 12.6. Заметим, что интерфейс отвечает за перевод команд, дружественных пользователю, к командам, определенным ранее в протоколе.
| Команда | Смысловое значение |
|---|---|
| Open | Связь к удаленному компьютеру |
| Close | Завершение связи |
| Display | Показ рабочих параметров |
| Mode | Изменение режима строки или символьного режима |
| Set | Установка рабочих параметров |
| Status | Отображение информации о состоянии |
| Send | Посылка специальных символов |
| quit | Выход из TELNET |
Клиент может послать команды серверу. Чтобы отличать команду от данных, команды должны начинаться с двух специальных символов — с двух FF16. Следующие 2 байта определяют FF16 символов, сервер может воспринять их неправильно. Однако, очень маловероятно, что эти два символа — часть потока данных.
Пока только одна команда была определена. Это — ss (FF16 ), следующие за ss и
1111 0011 0011 1100 1111 1111.FF FB 01 ;FF FE 01 ;FF F4 ;FF F9.Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.