Internet Printing Protocol

Из Википедии, бесплатной энциклопедии

IPP
Название Internet Printing Protocol
Уровень (по модели OSI) Прикладной
Семейство TCP/IP
Создан в 1999
Порт/ID 631/TCP
Назначение протокола Сетевая печать
Спецификация RFC 2565, RFC 2910
Основные реализации (клиенты) компоненты операционных систем (драйверы сетевой печати)
Основные реализации (серверы) принт-серверы

IPP (англ. Internet Printing Protocol — «протокол межсетевой печати», «протокол печати через Интернет») — сетевой протокол прикладного уровня для передачи документов на печать. Является перегруженной версией HTTP, то есть придаёт всем известному протоколу передачи гипертекста новое значение. Помимо расширенных функций управления печатью, поддерживает контроль доступа, аутентификацию и шифрование (SSL).

Типичный адрес принтера указывается так:

http://server:631/printers/myprinter

На корневой странице (http://server:631/) может находиться веб-интерфейс управления, а также ссылки на область загрузки драйверов.

Чтобы посмотреть статус принтера, пользователь вводит в своём Web-браузере:

<имя-хоста>/printers/;

При использовании IIS, на клиентских машинах для аутентификации и просмотра URL по протоколу IPP требуется браузер Internet Explorer 5.01 и старше, поскольку только он поддерживает механизм аутентификации, используемый в IIS.

Использование IPP существенно упрощает установку принтера на локальной клиентской машине: достаточно указать URL/printers/ и выбрать предпочтительный для клиента принтер из списка. Далее следует “подключиться” (connect) к принтеру, после чего драйверы принтера будут загружены на удалённую машину и установлены на ней.
Для ОС Linux, достаточно просто подключиться к принтеру по URL. Более того, современные ОС на основе Linux c GUI, например Ubuntu, сами находят и подключают такие принтеры, имеющиеся в локальной сети.

Вместо стандартного IPP-порта 631/tcp часто используется 80/tcp (стандартный для HTTP). Для шифрованного трафика применяется либо 443/tcp (стандартный для HTTP over SSL), либо тот же 631.

Формат сообщения[править | править код]

коды состояния
Код Значение
0x0000 – 0x00FF Успешное выполнение
0x0100 – 0x01FF Информация
0x0200 – 0x02FF Перенаправление
0x0400 – 0x04FF Ошибка клиента
0x0500 – 0x05FF Ошибка сервера

Тело HTTP сообщения имеет Content-type: application/ipp и содержит следующие поля:

  • version-number (2 байта) — старший и младший номер версии протокола, текущее значение 0x0101;
  • operation-id или status-code (2 байта) — код операции (запрос) или код состояния (ответ);
  • request-id (4 байта) — уникальный номер для сопоставления запросов и ответов;
  • attribute-group — группа атрибутов, поле может включаться ноль или более раз:
    • begin-attribute-group-tag (1 байт) — указывает начало группы атрибутов и идентифицирует её тип;
    • attribute — ноль или более полей атрибутов:
      • attribute-with-one-value — атрибут с одним значением или первое значение атрибута, имеющего несколько значений:
        • value-tag (1 байт) — синтаксис атрибута (целое значение, перечисляемое, строка и т.д.);
        • name-length (2 байта) — длина имени атрибута в байтах;
        • name — имя атрибута;
        • value-length (2 байта) — длина значения атрибута в байтах;
        • value — значение атрибута;
      • additional-value — ноль или более полей значений атрибута:
        • value-tag (1 байт) — синтаксис атрибута;
        • name-length (2 байта) — 0x0000;
        • value-length (2 байта) — длина значения атрибута в байтах;
        • value — значение атрибута;
  • end-of-attributes-tag (1 байт) — 0x03, указывает конец полей атрибутов;
  • data — данные, необходимые для операции.

См. также[править | править код]

Ссылки[править | править код]

  • RFC 2565 — Internet Printing Protocol/1.0: Encoding and Transport (устарел).
  • RFC 2566 — Internet Printing Protocol/1.0: Model and Semantics (устарел).
  • RFC 2567 — Design Goals for an Internet Printing Protocol.
  • RFC 2568 — Rationale for the Structure of the Model and Protocol for IPP.
  • RFC 2569 — Mapping between LPD and IPP Protocols.
  • RFC 2910 — Internet Printing Protocol/1.1: Encoding and Transport.
  • RFC 2911 — Internet Printing Protocol/1.1: Model and Semantics.
  • IPP // Самсонов А. Протоколы сетевой печати. — 28 февраля 2006 г.