Открыть сервис

Протокол IPP

Internet Printing Protocol (IPP) — это сетевой протокол прикладного уровня, предназначенный для удалённой печати и управления принтерами через IP-сети, включая интернет. Разработан как замена более старым и менее функциональным протоколам (таким как LPD/LPR и SMB-печать), обеспечивая стандартизированный интерфейс для отправки заданий на печать, мониторинга состояния устройств и очередей, а также управления конфигурацией принтеров. IPP базируется на архитектуре клиент-сервер, использует HTTP как транспортный протокол и поддерживает шифрование, аутентификацию и расширенные возможности, такие как двусторонняя печать, сортировка и использование разных типов носителей.

История

Разработка IPP началась в середине 1990-х годов как совместный проект компаний Novell, Xerox и других участников, стремившихся создать универсальный протокол для печати, который мог бы работать в гетерогенных сетях (включая Unix, Windows и macOS). Первая версия спецификации, IPP/1.0, была опубликована в 1996 году в виде экспериментального RFC (Request for Comments) — RFC 2566. В 1999 году вышла стабильная версия IPP/1.1, описанная в RFC 2910 и RFC 2911, которая стала основой для широкого внедрения.

В 2000-х годах протокол развивался под эгидой рабочей группы PWG (Printer Working Group), которая выпустила ряд расширений, включая поддержку аутентификации (RFC 3381), шифрования через TLS (RFC 3510) и стандартизацию форматов данных (например, PDF/A). В 2010-х годах IPP был адаптирован для использования в облачных сервисах печати (Google Cloud Print, Apple AirPrint), что привело к появлению версии IPP Everywhere, официально стандартизированной в 2013 году (PWG 5100.14). Эта версия упростила настройку принтеров, исключив необходимость в установке драйверов для большинства современных устройств.

Архитектура и принцип работы

IPP работает по схеме «запрос-ответ» поверх протокола HTTP (порты 631/TCP для незащищённого соединения и 443/TCP для HTTPS). Клиент (например, драйвер принтера в операционной системе или приложение) отправляет HTTP-запросы с данными в формате MIME (Multipurpose Internet Mail Extensions), содержащими команды IPP и файлы для печати. Сервер (принтер или сервер печати) обрабатывает запрос и возвращает ответ с кодом состояния и дополнительной информацией.

Основные операции

Протокол поддерживает несколько базовых операций, каждая из которых имеет уникальный идентификатор (Operation ID):

  • Print-Job — отправка задания на печать с передачей данных документа.
  • Validate-Job — проверка возможности выполнения задания без фактической печати.
  • Cancel-Job — отмена отправленного задания.
  • Get-Job-Attributes — получение атрибутов конкретного задания (статус, размер, время создания).
  • Get-Printer-Attributes — получение характеристик принтера (поддерживаемые форматы, разрешение, наличие бумаги).
  • Create-Job — создание пустого задания для последующей отправки данных (используется для потоковой печати).

Модель данных

IPP использует модель атрибутов, которые делятся на три группы:

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

Каждый атрибут имеет имя, тип данных (целое число, строка, дата, массив) и значение. Стандартные атрибуты определены в RFC 3380 и дополнениях PWG.

Версии и расширения

IPP/1.1

Базовая версия, поддерживающая все основные функции печати. Использует HTTP/1.1 и может работать как с незащищённым, так и с защищённым соединением. Поддерживает аутентификацию по протоколам HTTP Basic, Digest и Kerberos.

IPP 2.0

Опубликована в 2012 году (PWG 5100.14). Включает поддержку IPP Everywhere, что позволяет принтерам автоматически рекламировать свои возможности в сети через протокол DNS-SD (Bonjour). Клиенты могут обнаруживать принтеры без предварительной настройки и печатать без установки драйверов, используя универсальные форматы (PDF, JPEG, PWG Raster).

IPP 2.1 и 2.2

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

IPP Everywhere

Стандарт, принятый в 2013 году, который стал обязательным для сертификации принтеров в рамках программы Mopria (альянс производителей мобильных устройств и принтеров). IPP Everywhere определяет минимальный набор функций, которые должен поддерживать принтер: печать в форматах PDF, JPEG и PWG Raster, а также возможность обнаружения через DNS-SD. Это позволяет устройствам iOS, Android, Windows и macOS печатать без установки драйверов.

Применение

В операционных системах

  • Linux — IPP является основным протоколом для печати в системе CUPS (Common Unix Printing System), которая используется по умолчанию в большинстве дистрибутивов. CUPS поддерживает как клиентскую, так и серверную часть IPP.
  • macOS — начиная с версии OS X 10.5 (Leopard), Apple использует CUPS, что обеспечивает полную поддержку IPP. AirPrint, встроенный в iOS и macOS, базируется на IPP Everywhere.
  • Windows — начиная с Windows 8, встроенная поддержка IPP позволяет печатать на принтерах, поддерживающих этот протокол, без установки дополнительных драйверов. В Windows 10 и 11 IPP используется для облачной печати через Microsoft Universal Print.
  • Android — через сервисы Mopria, которые поддерживают IPP Everywhere для печати на совместимых принтерах.

В корпоративных сетях

IPP используется в серверах печати (например, PaperCut, Printix) для централизованного управления заданиями, учёта расхода ресурсов и обеспечения безопасности. Протокол позволяет администраторам настраивать квоты, ограничивать доступ к принтерам и вести аудит печати.

В облачных сервисах

  • Google Cloud Print (закрыт в 2020 году) — использовал IPP для взаимодействия между облачными серверами и принтерами.
  • Microsoft Universal Print — облачный сервис печати, который использует IPP в качестве основного протокола для отправки заданий.
  • Apple AirPrint — базируется на IPP Everywhere и позволяет печатать с устройств Apple без предварительной настройки.

Безопасность

IPP поддерживает несколько механизмов защиты:

  • Шифрование — через HTTPS (TLS/SSL) на порту 443. Рекомендуется использовать для предотвращения перехвата данных.
  • Аутентификация — поддерживаются методы HTTP Basic (с передачей пароля в открытом виде, не рекомендуется), Digest (хеширование пароля) и Kerberos (в корпоративных средах).
  • Авторизация — на основе атрибутов задания (например, имя пользователя) или через списки контроля доступа (ACL) на сервере.
  • Целостность — через цифровые подписи (необязательно, поддерживается в расширениях PWG).

Несмотря на наличие механизмов безопасности, в реальных сетях IPP часто используется без шифрования (на порту 631), что делает его уязвимым для атак типа «человек посередине» (MITM). Для повышения безопасности рекомендуется использовать VPN или туннелирование.

Критика и ограничения

  • Сложность реализации — полный стек IPP требует значительных ресурсов для встраивания в недорогие принтеры, что иногда приводит к неполной поддержке стандарта.
  • Производительность — использование HTTP/1.1 может приводить к задержкам при передаче больших файлов, особенно на медленных сетях. В версии IPP 2.2 добавлена поддержка HTTP/2 для улучшения скорости.
  • Совместимость — некоторые старые принтеры не поддерживают IPP, что требует использования эмуляции или прокси-серверов.
  • Безопасность по умолчанию — многие производители поставляют принтеры с включённым IPP без шифрования, что создаёт риски для конфиденциальности документов.

Интересные факты

  • IPP является единственным протоколом печати, который официально стандартизирован IETF (Internet Engineering Task Force) и PWG.
  • В 2020 году Google объявила о закрытии Google Cloud Print, рекомендовав пользователям переходить на IPP Everywhere.
  • Протокол поддерживает печать на нескольких языках описания страниц (PCL, PostScript, PDF), но для IPP Everywhere обязательным является только PWG Raster — простой растровый формат, который могут обрабатывать даже недорогие принтеры.
  • В России IPP используется в государственных информационных системах, например, в Единой системе межведомственного электронного взаимодействия (СМЭВ) для печати документов.

Источники

  • RFC 2910: Internet Printing Protocol/1.1: Encoding and Transport
  • RFC 2911: Internet Printing Protocol/1.1: Model and Semantics
  • PWG 5100.14: IPP Everywhere
  • PWG 5100.19: IPP 2.0
  • CUPS Software Manual (Apple Inc.)
  • Microsoft Docs: Internet Printing Protocol (IPP) in Windows

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →