Internet Printing Protocol
# Internet Printing Protocol

IPP im TCP/IP-Protokollstapel :
| Anwendung | IPP | IPP | IPP | IPP | IPP |
| HTTP |||||
| Transport | TCP | TCP | TCP | TCP | TCP |
| Port | 631 | 631 | 631 | 631 | 631 |
| Internet | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) | IP (IPv4, IPv6) |
| Netz-Zugang | Ethernet | Token Bus | Token Ring | FDDI | … |
Das Internet Printing Protocol (IPP) stellt Druckdienste über ein Netzwerk, wie z. B. das Internet oder ein lokales Netzwerk, zur Verfügung. Im Unterschied zu anderen Druckprotokollen beinhaltet IPP alle notwendigen Mechanismen wie Authentifizierung, Zugriffsberechtigungen, Verschlüsselung, Accounting, Statusrückmeldungen in einem einzigen routingfähigen Protokoll.
IPP basiert auf HTTP 1.1. Dadurch können alle Erweiterungen, die für HTTP vorgesehen sind, auch für IPP verwendet werden. Dazu gehört z. B. der Einsatz von TLS, um die Verbindung zu sichern. Nach dem Client-Server-System stellt ein Client, meist eine Anwendung, eine Anfrage an einen Druckserver, der nach Übertragung die Daten auf einem Drucker ausgibt.
Das Protokoll wurde erstmals 1999 in der Version 1.0 vorgestellt. Die Entwicklung des Protokolls wird durch die IPP Workgroup geführt, die eine Arbeitsgruppe der IEEE ist und PWG Normen verabschiedet. Diese Normen beschreiben zum Beispiel die Konformitätsanforderungen für Implementierungen der Protokollversionen 2.0 (2009), 2.1 und 2.2 (2015). Ziele sind dabei die Unterstützung für 3D-Druck, Scanner, Autokalibrierende Ausgaben und den Druck ganz ohne Treiber (IPP Everywhere™).
IPP wird unter anderem von Anwendungen wie CUPS verwendet. Darüber hinaus bietet Windows ab Windows 2000 eine integrierte aber unvollständige Unterstützung (zum Beispiel ohne Verschlüsselung und ohne Übermittlung von Benutzernamen für einige Aktionen, was zu Fehlern führt) für IPP in der Version 1.0.

## IPP Everywhere

Unter dem Marketing-Namen „IPP Everywhere™“ hat die Printer Working Group (PWG) der IEEE-ISTO (kurz für IEEE Industry Standards and Technology Organization) 2016 eine Spezifikation für das Drucken ohne Druckertreiber (englisch driverless printing) definiert, die auf IPP ab Version 2.0 aufbaut. Version 1.1 von IPP Everywhere wurde 2020 spezifiziert. Vergleichbare Schnittstellen sind etwa AirPrint oder Wi-Fi Direct Print.
Zu den Voraussetzungen zählen die IPP Job and Printer Extensions sowie DNS-SD (was wiederum Multicast DNS voraussetzt) zum Auffinden des Druckers. Das Protokoll definiert eine Reihe von Attributen, die der Drucker dem Client meldet, damit dieser weiß, was der Drucker an Funktionen und Möglichkeiten bietet. So kann die Drucker-Software (in der Spezifikation als Client bezeichnet; beispielsweise CUPS, ein Druckertreiber im Betriebssystem oder ein Druckerserver) abfragen, ob der Drucker z. B. ein Farbdrucker ist, ob er Duplex bietet und welches Papierformat vorhanden ist. Alle IPP-Everywhere-konformen Drucker müssen das Datenformat (englisch document format) PWG Raster Format unterstützen. In Version 1.0 noch empfohlen, müssen seit Version 1.1 der IPP-Everywhere-Spezifikation Farbdrucker das JPEG File Interchange Format (JFIF) unterstützen und auch EXIF-Metadaten von z. B. Digitalkameras verarbeiten können. Die Unterstützung von PDF in Version 1.7 ist empfohlen. Die Formate werden in Form von MIME-Attributen zwischen Drucker und Client ausgetauscht.
Der Standard soll es unnötig machen, für jeden Drucker einen eigenen Treiber bereitstellen zu müssen, da es mit IPP Everywhere möglich ist, jeden konformen Drucker ohne zusätzlichen Gerätetreiber bzw. spezifischer PPD für z. B. CUPS verwenden zu können.