Skip to content

3.9 Основные пользовательские протоколы. Протоколы терминала. Протокол передачи файлов. Протоколы удаленного ввода заданий.

1. Протоколы терминала (Удаленный доступ)

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

Ключевые представители:

  • Telnet (Teletype Network):
    • Один из старейших протоколов (1969 г.).
    • Работает поверх TCP (порт 23).
    • Принцип NVT (Network Virtual Terminal) — стандартизирует представление символов (например, перевода строки CR-LF).
    • Недостаток: Передает данные в открытом виде (без шифрования). Логин и пароль можно перехватить сниффером. Практически не используется в открытых сетях.
  • SSH (Secure Shell):
    • Современный стандарт де-факто (порт 22).
    • Обеспечивает криптографическую защиту (симметричное шифрование, аутентификацию по ключам).
    • Предоставляет не только доступ к shell (командной строке), но и возможность проброса портов (туннелирование) и передачи файлов через встроенный протокол SFTP.
  • RDP (Remote Desktop Protocol) — от Microsoft:
    • Отличается от текстовых терминалов (SSH/Telnet) тем, что передает не текст, а графический интерфейс (пиксели экрана).
    • Использует сложные алгоритмы сжатия и кэширования битмапов для снижения трафика.
  • VNC (Virtual Network Computing) — протокол RFB:
    • Кроссплатформенный протокол для передачи “сырого” изображения рабочего стола.

2. Протоколы передачи файлов (File Transfer)

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

Ключевые представители:

  • FTP (File Transfer Protocol):
    • Классический протокол (порт 21 — управление, порт 20 — данные в активном режиме).
    • Использует два параллельных соединения: управляющее (команды) и канал данных.
    • Режимы: Активный (сервер сам подключается к клиенту для данных, проблема с NAT) и Пассивный (клиент инициирует оба соединения, решение для NAT).
    • Недостатки: Логин/пароль и сами файлы передаются в открытом виде. Поддерживает аутентификацию “Anonymous” для публичных архивов.
  • SFTP / SCP (SSH File Transfer Protocol / Secure Copy):
    • Работают поверх SSH (порт 22).
    • SFTP — это не просто “FTP с шифром”, а совершенно другой протокол, использующий одно мультиплексированное соединение (одна сессия на все команды и данные). Поддерживает операции с файловой системой (переименование, удаление, листинг) поверх защищенного канала.
  • TFTP (Trivial FTP):
    • Упрощенная версия, работает поверх UDP (порт 69).
    • Не требует аутентификации. Использует механизм “Stop-and-Wait” (отправил блок, жди подтверждение).
    • Применение: Загрузка операционных систем по сети (PXE-загрузка), резервное копирование конфигураций сетевого оборудования (Cisco IOS).
  • Протоколы на основе HTTP/HTTPS (WebDAV, прямой upload через REST API):
    • В современных веб-средах часто вытесняют FTP, так как проходят через файерволы и прокси (порт 443 открыт всегда).

3. Протоколы удаленного ввода заданий (Remote Job Entry — RJE)

Это исторически важная, но для современных пользователей менее очевидная группа. Она возникла в эпоху мейнфреймов (IBM System/360). Вместо интерактивной работы пользователь подготавливал задание (пакет данных + инструкции для компилятора и ОС) на локальной перфокарте или терминале и отправлял его на мощный центральный компьютер. Компьютер ставил задание в очередь (спулинг) и выполнял его в фоновом режиме, а результат возвращал пользователю (часто на печать).

Ключевые представители и механизмы:

  • Протоколы семейства NJE (Network Job Entry):
    • Использовался в сетях JES (Job Entry Subsystem) мейнфреймов IBM для пересылки джобов (JCL — Job Control Language) между узлами.
  • RJE в контексте раннего ARPANET:
    • Был одним из первых пользовательских протоколов, стандартизированных в RFC. Позволял удаленно использовать ресурсы суперкомпьютеров.
  • Эволюция в современность:
    • Сегодня функции RJE трансформировались в очереди печати (LPR/LPD — Line Printer Daemon) и системы пакетной обработки заданий в кластерах (например, Sun Grid Engine, SLURM).
    • Современный аналог удаленного запуска с ожиданием результата реализуется через связку SSH + передача скриптов, а также через очереди сообщений (Message Queues) в распределенных системах.

Сравнительная таблица характеристик

КритерийТерминалы (Telnet/SSH)Передача файлов (FTP/SFTP)Удаленный ввод заданий (RJE)
Основная цельИнтерактивное управление ОССинхронизация/обмен даннымиПакетное выполнение вычислительных задач
Поток данныхДуплексный (ввод и вывод текста)Полудуплексный/Симплексный (чтение/запись)Направленный (задание → хост, результат ← хост)
Сохранение состоянияСохраняет состояние сессииСтатeless (каждая команда независима для FTP)Очередь (Queue) — задания хранятся до исполнения
Время задержкиКритично (малая задержка)Важна пропускная способностьНе критично (выполняется в фоне)
БезопасностьВысокая (SSH) / Нулевая (Telnet)Высокая (SFTP) / Нулевая (FTP)Обеспечивается на уровне доступа к очередям

Современные тенденции (Конвергенция)

В современных архитектурах четкие границы между этими протоколами стираются:

  1. Протокол Mosh (Mobile Shell): Замена SSH для мобильных сетей, позволяет роуминг между IP-адресами и сохраняет сессию при смене сети.
  2. Протокол gRPC / REST API: Вытесняют FTP для передачи файлов в микросервисной архитектуре.
  3. Протоколы управления контейнерами (CRI/O): Вместо RJE используются оркестраторы (Kubernetes), которые принимают “задание” (манифест поды) и распределяют его по кластеру.

Вывод: Основные пользовательские протоколы закладывают фундамент взаимодействия “человек-машина”. Если протоколы терминала обеспечивают интерактивность, а протоколы файлов — мобильность данных, то протоколы удаленного ввода заданий обеспечивают пакетную производительность. На практике современный администратор совмещает все три подхода: через SSH (терминал) загружает скрипт (SFTP) и ставит его в очередь (аналог RJE) на выполнение в рабочей станции или облачном кластере.