Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕротокол Telnet




Ёмул€ци€ удаленного терминала. ”даленный доступ к ресурсам сети

Telnet - это одна из самых старых информационных технологий Internet. ќна входит в число стандартов, которых насчитываетс€ три дес€тка на полторы тыс€чи рекомендуемых официальных материалов сети, называемых RFC (Request For Comments).

ѕод telnet понимают триаду, состо€щую из:

  • telnet-интерфейса пользовател€;
  • telnetd-процесса;
  • TELNET-протокола.

Ёта триада обеспечивает описание и реализацию сетевого терминала дл€ доступа к ресурсам удаленного компьютера.

¬ насто€щее врем€ существует достаточно большое количество программ - от Kermit до различного рода BBS (Belluten Board System), которые позвол€ют работать в режиме удаленного терминала, но ни одна из них не может сравнитьс€ с telnet по степени проработанности деталей и концепции реализации. ƒл€ того, чтобы оценить это, знакомство с telnet стоит начать с протокола.

ѕротокол Telnet

Telnet как протокол описан в RFC-854 (май, 1983 год). ≈го авторы J.Postel и J.Reynolds во введении к документу определили назначение telnet так:

"Ќазначение TELNET-протокола - дать общее описание, насколько это только возможно, двунаправленного, восьмибитового взаимодействи€, главной целью которого €вл€етс€ обеспечение стандартного метода взаимодействи€ терминального устройства и терминал-ориентированного процесса. ѕри этом этот протокол может быть использован и дл€ организации взаимодействий "терминал-терминал" (св€зь) и "процесс-процесс" (распределенные вычислени€)."

Telnet строитс€ как протокол приложени€ над транспортным протоколом TCP. ¬ основу telnet положены три фундаментальные идеи:

  • концепци€ сетевого виртуального терминала (Network Virtual Terminal) или NVT;
  • принцип договорных опций (согласование параметров взаимодействи€);
  • симметри€ св€зи "терминал-процесс".

ѕри установке telnet-соединени€ программа, работающа€ с реальным терминальным устройством, и процесс обслуживани€ этой программы используют дл€ обмена информацией спецификацию представлени€ правил функционировани€ терминального устройства или —етевой ¬иртуальный “ерминал (Network Virtual Terminal). ƒл€ краткости будем обозначать эту спецификацию NVT. NVT - это стандартное описание наиболее широко используемых возможностей реальных физических терминальных устройств. NVT позвол€ет описать и преобразовать в стандартную форму способы отображени€ и ввода информации. “ерминальна€ программа ("user") и процесс ("server"), работающий с ней, преобразовывают характеристики физических устройств в спецификацию NVT, что позвол€ет, с одной стороны, унифицировать характеристики физических устройств, а с другой обеспечить принцип совместимости устройств с разными возможност€ми. ’арактеристики диалога диктуютс€ устройством с меньшими возможност€ми.

≈сли взаимодействие осуществл€етс€ по принципу "терминал-терминал" или "процесс-процесс", то "user" - это сторона, инициирующа€ соединение, а "server" - пассивна€ сторона.

ѕринцип договорных опций или команд позвол€ет согласовать возможности представлени€ информации на терминальных устройствах. NVT - это минимально необходимый набор параметров, который позвол€ет работать по telnet даже самым допотопным устройствам, реальные современные устройства обладают гораздо большими возможност€ми представлени€ информации. ѕринцип договорных команд позвол€ет использовать эти возможности. Ќапример, NVT €вл€етс€ терминалом, который не может использовать функции управлени€ курсором, а реальный терминал, с которого осуществл€етс€ работа, умеет это делать. »спользу€ команды договора, терминальна€ программа предлагает обслуживающему процессу использовать Esc-последовательности дл€ управлени€ выводом информации. ѕолучив такую команду процесс начинает вставл€ть управл€ющие последовательности в данные, предназначенные дл€ отображени€.

—имметри€ взаимодействи€ по протоколу telnet позвол€ет в течении одной сессии программе-"user" и программе-"server" мен€тьс€ местами. Ёто принципиально отличает взаимодействие в рамках telnet от традиционной схемы "клиент-сервер". —имметри€ взаимодействи€ тесно св€зана с процессом согласовани€ формы обмена данными между участниками telnet-соединени€.  огда речь идет о работе на удаленной машине в режиме терминала, то возможности ввода и отображени€ информации определ€ютс€ только конкретным физическим терминалом и договорной процесс сводитс€ к заказу терминальной программой характеристик этого терминала. √ораздо сложнее обстоит дело, когда речь идет об обмене информацией между двум€ терминальными программами в режиме "терминал-терминал". ¬ этом случае кажда€ из сторон может выступать инициатором изменени€ принципов представлени€ информации и здесь про€вл€етс€ еще одна особенность протокола telnet. ѕротокол не использует принцип "запрос-подтверждение", а примен€ет принцип "пр€мого действи€". Ёто значит, что если терминальна€ программа хочет расширить возможности представлени€ информации, то она делает это (например, вставл€ет в информационный поток Esc-последовательности), если в ответ она получает информацию в новом представлении, то это означает, что попытка удалась, в противном случае происходит возврат к стандарту NVT.

ќбычно процесс согласовани€ форм представлени€ информации происходит в начальный момент организации telnet-соединени€.  аждый из процессов стараетс€ установить максимально возможные параметры сеанса. ќднако эти параметры могут быть изменены и позже, в процессе взаимодействи€ (например, после запуска прикладной программы).

¬ Unix-системах параметры терминалов обычно описаны в базе данных описани€ терминалов termcap. ѕри инициировании telnet-соединени€ обычно именно эти параметры используютс€ в процессе согласовани€ формы представлени€ данных. ѕри этом из одной системы в другую обычно передаетс€ значение переменной окружени€ TERM. ≈сли дл€ этого значени€ переменной TERM имеютс€ одинаковые описани€ в termcap, то проблем с представлением информации обычно не бывает; если терминал, заказанный в TERM, не определен, то беретс€ стандартный терминал системы. ѕри этом не все функции этого терминала будут задействованы. ¬ процессе договора останутс€ только те, которые поддерживаютс€ на обоих концах соединени€. „асто можно столкнутьс€ с ситуацией, когда значени€ переменных TERM на локальной и удаленной машинах совпадают, а информаци€ на экране отображаетс€ не так, как этого бы хотелось. —корее всего это вызвано различи€ми в описании данного устройства в базе данных termcap.

—етевой виртуальный терминал (NVT).  онцепци€ сетевого виртуального терминала позвол€ет обеспечить доступ к ресурсам удаленной машины с любого терминального устройства. ѕод терминальным устройством понимают любую комбинацию физических устройств, позвол€ющих вводить и отображать информацию. ƒл€ тех кто знаком с универсальными машинами серии EC, такое определение терминала не €вл€етс€ новым: в момент загрузки системы можно было назначить составную консоль, в которую могли входить устройство ввода с перфокарт и алфавитно-цифровое печатающее устройство (ј÷ѕ”). ¬ более ранних вычислительных комплексах такими терминалами могли быть системна€ печать и устройство чтени€ перфоленты (как на ћ»Ќ— -22) или телетайп (как на ћ-6000). ѕон€тно, что за таким пон€тием терминала стоит требование устойчивости системы, которое было основополагающим дл€ проекта ARPA.

¬ протоколе TELNET NVT определен как "двунаправленное символьное устройство, состо€щее из принтера и клавиатуры". ѕринтер предназначен дл€ отображени€ приход€щей по сети информации, а клавиатура - дл€ ввода данных, передаваемых по сети и, если включен режим "echo", вывода их на принтер. ѕо умолчанию предполагаетс€, что дл€ обмена информацией используетс€ 7-битовый US ASCII, каждый символ которого закодирован в 8-битовое поле. Ћюбое преобразование символов €вл€етс€ расширением стандарта NVT.

NVT предполагаетс€ буферизованным устройством. Ёто означает, что данные, вводимые с клавиатуры, не посылаютс€ сразу по сети, а собираютс€ в пакеты, которые отправл€ютс€ либо по мере заполнени€ буфера, либо по специальной команде. “ака€ организаци€ NVT призвана с одной стороны минимизировать сетевой трафик, а с другой обеспечить совместимость с реальными буферизованными терминалами. Ќапример, таковым и €вл€ютс€ терминалы ≈—-7920, из-за которых можно было потер€ть целый экран информации в случае зависани€ машины.

¬ моменты окончани€ печати на принтере NVT или отсутстви€ символов в буфере клавиатуры по сети должна посылатьс€ специальна€ команда GA (Go Ahead). —мысл этой команды заключаетс€ в следующем: в реальных компьютерах лини€ "терминал-процесс" находитс€ под управлением либо терминальной программы (ввод данных), либо печатающей программы. ѕосле выполнени€ своей функции кажда€ из них возвращает управление и освобождает линию. ќбычно это происходит при работе с полудуплексными устройствами, такими как IBM-2741. ƒл€ того, чтобы протокол позвол€л работать и с этими устройствами, введен сигнал GA.

ќстановимс€ более подробно на пон€ти€х принтера и клавиатуры в концепции NVT.

ѕринтер имеет неограниченные ширину и длину страницы и может отображать все символы US ASCII (коды с 32 - 127), расширенный набор символов (коды с 128 - 255), а также распознает управл€ющие коды (с 0 - 31 и 127). Ќекоторые из них имеют специальные значени€ (таблица 3.1).

“аблица 3.1, ќб€зательные коды

Ќазвание кода  од «начение
NULL   Ќет операции
ѕеревод строки Line Feed (LF)   ѕереход на другую строку c сохранением текущей позиции в строке
¬озврат каретки Carrige Return (CR)   ”станавливает в качестве текущей первую позицию текущей строки

–екомендованные коды

Ќазвание кода  од «начение
«вонок (BEL)   «вуковой сигнал
—двиг на одну позицию назад (BACK SPACE)   ѕеремещает каретку на одну позицию назад в текущей строке
√оризонтальна€ табул€ци€ Horizontal Tab (HT)   ѕеремещение к следующей позиции горизонтальной табул€ции
¬ертикальна€ табул€ци€ Vertical Tab (VT)   ѕеремещение курсора к следующей позиции вертикальной табул€ции
ѕрогон страницы Form Feed (FF)   ѕереход к новой странице

 лавиатура имеет возможность ввода всех символов US ASCII.  роме этого клавиатура может генерировать специальные стандартные функции управлени€ терминалом. —тандарт telnet определ€ет п€ть стандартных функций управлени€ терминалом. ¬ообще говор€, эти функции могут или присутствовать на реальном терминале, и тогда они должны представл€тьс€ в стандартной форме команды, или отсутствовать, и тогда замен€тьс€ командой NO (No-ќperation).

 оманда "ѕрервать процесс" (Interrupt Process - IP). ƒанна€ команда реализует стандартный дл€ многих систем механизм прерывани€ процесса выполнени€ задачи пользовател€ (Cntrl+C в Unix-системах или Cntrl+Break в MS-DOS). —ледует заметить, что команда IP может быть использована и другим протоколом прикладного уровн€, который может использовать telnet.

 оманда "ѕрервать процесс выдачи" (Abort Output - AO). ћногие системы позвол€ют остановить процесс, выдающий информацию на экран. «десь следует пон€ть отличие данной команды от IP. ѕри выполнении IP прерываетс€ выполнение текущего процесса пользовател€, но не происходит очистка буфера вывода, т.е. процесс может быть остановлен, а буфер вывода будет продолжать передаватьс€ на экран. ќбычно это происходит при взаимодействии по медленным лини€м св€зи. ѕользователи персональных компьютеров прекрасно знакомы с этой особенностью буферизованных устройств, когда возникают проблемы с остановкой печати: пользователь уже прервал печать и очистил по команде print /t буфер печати на компьютере, а лазерный принтер продолжает изводить бумагу лист за листом. Ёто типичный пример непродуманного подхода к процессу управлени€ терминальным устройством, который характерен дл€ разработчиков MS-DOS. ƒл€ того, чтобы избежать подобного казуса и существует команда AO. –еально проверить ее может любой пользователь медленного телефонного канала св€зи - дл€ этого можно запустить команду more дл€ просмотра большого файла, после этого по команде Cntrl+C прервать ее - выдача информации на экран будет продолжатьс€, и после этого выдать из командной строки telnet команду AO, что прервет выдачу.

 оманда "“ы еще здесь?" (Are You There - AYT). Ќазначение этой команды - дать возможность пользователю убедитьс€, что в процессе работы по медленным лини€м он не потер€л св€зи с удаленной машиной. ¬ силу буферизации ввода и вывода может оказатьс€, что пользователь может вводить данные, а св€зь с удаленной машиной уже потер€на. ¬ стандартной ситуации этот факт будет обнаружен только после нажати€ клавиши "Enter". Telnet дает возможность убедитс€ в наличии св€зи в любой момент времени.

 оманда "”далить символ" (Erase Character - EC). ћногие системы обеспечивают возможность редактировани€ командной строки путем введени€ так называемых символов "забой" или удалением последнего напечатанного символа на устройстве отображени€. ¬ любом случае последний введенный в буфер символ удал€етс€.  оманда EC призвана стандартизировать реализацию этого механизма.

 оманда "”далить строку" (Erase Line - EL). ƒанна€ команда аналогична EC, но удал€ет целую строку ввода. ќбычно выполнение этой команды приводит к очистке буфера ввода, т.к. при работе в режиме командной строки строка ввода только одна.

—инхронизаци€. ¬ локальных системах синхронизаци€ работы процессов обычно реализуютс€ через механизм прерываний или, как в Unix, механизм сигналов. Ёто означает, что система имеет возможность вмешатьс€ в процесс обработки данных практически в любой момент времени. ¬ контексте взаимодействи€ программы обработки данных и терминальной программы это означает возможность прервать программу обработки или очистить один из буферов с/без отображением(€) информации из него. »менно к этому типу взаимодействи€ относ€тс€ команды IP и AO. ќднако в сети сделать это не так просто, как в локальной вычислительной среде. ƒанные при передаче между машинами буферизуютс€ и обмен происходит пакетами. ≈сли бы команда "ѕрервать процесс" просто вставл€лась в последовательность символов в пакете, то это приводило бы к эффекту запаздывани€, т.е. после ввода пользователем команды "прервать процесс", а процесс будет продолжать выполн€тьс€ пока не доберетс€ до идентификатора команды IP в полученном пакете. –езультат - бесполезно потраченное врем€. ѕоэтому механизм синхронизации telnet состоит из использовани€ специальной формы пакета TCP (TCP Urgent notification) и команды DATA MARK (DM). —пециальна€ форма TCP пакета используетс€ дл€ изменени€ процедуры обработки пакетов. ќбычно пакет обрабатываетс€, начина€ с первого символа пакета последовательно. ¬ случае специальной формы пакета сначала происходит поиск "интересных" сигналов, а уже потом производитс€ обработка пакета по стандартному сценарию.  оманда DM обычно замыкает пакет и обозначает конец специальной обработки. ≈сли TCP-пакет содержит специальные символы до DM, то пор€док специальной обработки отмен€етс€, а DM воспринимаетс€ как команда No- Operation (NO). ≈сли специальные символы не найдены, то пор€док специальной обработки пакетов продолжаетс€. ¬ этом смысле интересными сигналами или символами €вл€ютс€ стандартные команды telnet IP, AO, AYT или другие команды, требующие немедленного выполнени€.

 оманды telnet имеют свой формат.  оманда - это 2-байтова€ последовательность, состо€ща€ из Esc-символа (255) IAC (Interpret as Command) и кода команды (240-255).  оманды, св€занные с процедурой согласовани€ параметров сеанса, имеют 3-х байтовый формат: третий байт - ссылка на устанавливаемую опцию.

—тандартным портом TCP дл€ telnet €вл€етс€ порт 23.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-07; ћы поможем в написании ваших работ!; просмотров: 1317 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

—тудент всегда отча€нный романтик! ’оть может сдать на двойку романтизм. © Ёдуард ј. јсадов
==> читать все изречени€...

754 - | 573 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.012 с.