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) | Обеспечивается на уровне доступа к очередям |
Современные тенденции (Конвергенция)
В современных архитектурах четкие границы между этими протоколами стираются:
- Протокол Mosh (Mobile Shell): Замена SSH для мобильных сетей, позволяет роуминг между IP-адресами и сохраняет сессию при смене сети.
- Протокол gRPC / REST API: Вытесняют FTP для передачи файлов в микросервисной архитектуре.
- Протоколы управления контейнерами (CRI/O): Вместо RJE используются оркестраторы (Kubernetes), которые принимают “задание” (манифест поды) и распределяют его по кластеру.
Вывод: Основные пользовательские протоколы закладывают фундамент взаимодействия “человек-машина”. Если протоколы терминала обеспечивают интерактивность, а протоколы файлов — мобильность данных, то протоколы удаленного ввода заданий обеспечивают пакетную производительность. На практике современный администратор совмещает все три подхода: через SSH (терминал) загружает скрипт (SFTP) и ставит его в очередь (аналог RJE) на выполнение в рабочей станции или облачном кластере.