Интернет магазин китайских планшетных компьютеров



Компьютеры - Rlogin

07 мая 2011


Оглавление:
1. Rlogin
2. Безопасность
3. Замены



Протокол RLOGIN — протокол прикладного уровня, часть стека TCP/IP. Позволяет пользователям UNIX подключаться к системам UNIX на других машинах и работать так же, как при прямом подключении терминала к машине. Этот протокол обеспечивает такой же сервис, как протокол TELNET.

Принцип работы протокола Rlogin

Установка связи

До установки соединения, клиент посылает серверу 4 множества символов, заканчивающиеся нулями:

  1. пустая строка,
  2. имя пользователя клиента,
  3. имя пользователя сервера,
  4. тип терминала и скорость.

Например:

<null>
bostic<null>
kbostic<null>
vt100/9600<null>

Сервер возвращает нулевой байт в подтверждение того, что он получил отправленные клиентом данные и теперь находится в режиме передачи данных.

От клиента серверу

Сначала клиент начинает операцию в режиме «cooked» . В этом режиме символы НАЧАЛО и КОНЕЦ принимаются клиентом и интерпретируются как начало и конец вывода с сервера на локальный терминал, в то время как остальные символы передаются на удалённый хост в том виде, в котором они были получены..

В режиме «raw», символы НАЧАЛО и КОНЕЦ не обрабатываются локально, а посылаются удаленному серверу как любой другой символ. Таким образом в режиме «raw» сервер определяет семантику символов НАЧАЛО и КОНЕЦ; они могут быть использованы для потокового управления или иметь совсем другие значения, никак не зависящие от их первоначального использования на клиенте.

Размер экрана

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

Если выше описанная операция прошла успешно, то как только на клиентской стороне меняются размерности экрана или окна, специальная 12-битовая последовательность посылается удаленному серверу, далее клиентский процесс, запущенный на сервере, должен нужным образом обработать эту информацию.

Управляющая последовательность изменения размера окна имеет длину в 12 байт, состоит из:

  1. magic cookie,
  2. после которых следует 2 байта, содержащие символ «s»,
  3. затем 8 байтов, содержащие 16-битовые значения количества символьных строк, количество символов на строку, количество пикселей в горизонтальной развертке и количество пикселей вертикальной развертки.
FF FF s s rr cc xp yp

Кроме флагов «ss» ничего не используется. В будущем могут появиться и другие для сообщений в целях управления.

От сервера клиенту

Данные с сервера посылаются клиенту как поток символов. Обычные данные просто выводятся на клиентский дисплей, но могут быть обработаны перед этим.

В поток символов сервер может вставить управляющий байт, затем создать указатель «срочных данных» TCP на этот байт. Когда клиент получает указатель, данные в потоке прямо до специального байта заносятся в буфер для возможного отображения их после обработки управляющего байта. Вот возможные значения управляющего байта:

  • 0x02 — клиент должен отменить все буферизированные данные, которые ещё не были выведены на экран
  • 0x10 — клиент должен переключиться в режим «raw»
  • 0х20 — клиент должен возобновить перехват символов и обработку символов НАЧАЛО и КОНЕЦ.
  • 0х80 — клиент должен ответить серверу, послав данные о размере окна

Все остальные значения управляющего байта игнорируются. Во всех случаях управляющий байт НЕ выводится на экран пользователя.

Завершение соединения

Когда TCP-соединение закрывается в любом из направлений, другой конец должен заметить это и провести закрытие со своей стороны, восстановив режимы терминалов и уведомив пользователя или процессы обрыва соединения.



Просмотров: 2868


<<< RIP (сетевой протокол)