Internet Printing Protocol
IPP (англ. Internet Printing Protocol — «протокол межсетевой печати», «протокол печати через Интернет») — сетевой протокол прикладного уровня для передачи документов на печать. Является перегруженной версией HTTP, то есть придаёт всем известному протоколу передачи гипертекста новое значение. Помимо расширенных функций управления печатью, поддерживает контроль доступа, аутентификацию и шифрование (SSL).
IPP | |
---|---|
Название | Internet Printing Protocol |
Уровень (по модели OSI) | Прикладной |
Семейство | TCP/IP |
Создан в | 1999 |
Порт/ID | 631/TCP |
Назначение протокола | Сетевая печать |
Спецификация | RFC 2565, RFC 2910 |
Основные реализации (клиенты) | компоненты операционных систем (драйверы сетевой печати) |
Основные реализации (серверы) | принт-серверы |
Типичный адрес принтера указывается так:
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 — значение атрибута;
- attribute-with-one-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 г.