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 - дані, необхідні для операції.