# Протоколы сетевой печати — IPP, RAW, LPD

## Обзор

|Протокол|Порт|RFC|Тип соединения|
|---|---|---|---|
|IPP|631|RFC 8011|HTTP/HTTPS (двунаправленный)|
|RAW (JetDirect)|9100|—|TCP (однонаправленный поток)|
|LPD/LPR|515|RFC 1179|TCP (устаревший)|

## IPP (Internet Printing Protocol)

IPP построен поверх HTTP (порт 631) или HTTPS (IPPS, порт 443/631).

Возможности:

- двунаправленная коммуникация: принтер сообщает статус задания, уровень тонера и ошибки;
- аутентификация (Basic, Digest, Negotiate);
- шифрование через TLS;
- управление очередью: пауза, отмена, приоритет;
- поддержка IPP Everywhere — печать без установки драйверов.

IPP используется в macOS (CUPS), Android, Windows 10+.

## RAW (JetDirect / порт 9100)

Простой TCP-поток: клиент открывает соединение на порт 9100 и передаёт PDL (PCL, PostScript, PDF).

Особенности:

- нет встроенной обратной связи о статусе;
- максимальная совместимость — поддерживают практически все принтеры;
- минимальные накладные расходы протокола;
- драйвер на стороне клиента формирует полный PDL.

## LPD/LPR

Протокол 1980-х годов (RFC 1179). Используется в legacy-окружениях.

Особенности:

- порт 515, TCP;
- очередь задаётся именем (queue name);
- ограниченные возможности управления;
- не поддерживает шифрование.

## Когда что использовать

|Ситуация|Рекомендуемый протокол|
|---|---|
|Современный принтер, нужен статус задания|IPP|
|Максимальная совместимость, legacy-устройство|RAW (9100)|
|Печать из UNIX/Linux без CUPS|LPD/LPR|
|Защищённая сеть, нужно шифрование|IPPS (IPP over TLS)|

## Как Принтум использует эти протоколы

ПринтМенеджер принимает задания от клиентов через установленные порты. Для отправки задания на физическое устройство ПринтМенеджер использует RAW (порт 9100) или IPP в зависимости от конфигурации принтера.

Протокол зависит от вендора и задаётся в карточке устройства (вкладка «Драйвер»). Для большинства устройств используется **socket** (порт 9100, аналог RAW): HP, Kyocera, Pantum, Sharp, Sindoh. Konica Minolta и Xerox поддерживают **socket** и **ipp**. Avison, Brother, Epson, Lexmark, Ricoh — **socket** и **http**. Протокол обновляется автоматически при изменении в интерфейсе и применяется после синхронизации. в Принтум.