El Protocolo de impresión por Internet ( IPP ) es un protocolo de comunicación especializado que se utiliza entre dispositivos cliente (ordenadores, teléfonos móviles, tabletas, etc.) e impresoras (o servidores de impresión ). El protocolo permite a los clientes enviar uno o más trabajos de impresión a la impresora o al servidor de impresión conectados a la red y realizar tareas como consultar el estado de una impresora , obtener el estado de los trabajos de impresión o cancelar trabajos de impresión individuales.
Al igual que todos los protocolos basados en IP , IPP puede ejecutarse localmente o a través de Internet . A diferencia de otros protocolos de impresión, IPP también admite control de acceso , autenticación y cifrado , lo que lo convierte en un mecanismo de impresión mucho más capaz y seguro que los anteriores.
IPP es la base de varios programas de certificación de logotipos de impresoras, incluidos AirPrint , IPP Everywhere [1] y Mopria Alliance , y cuenta con el respaldo de más del 98 % de las impresoras que se venden en la actualidad. [2]
El IPP comenzó como una propuesta de Novell para la creación de un proyecto de protocolo de impresión de Internet en 1996. El resultado fue un borrador escrito por Novell y Xerox llamado Lightweight Document Printing Application (LDPA), derivado de ECMA-140: Document Printing Application (DPA). Casi al mismo tiempo, IBM propuso públicamente algo llamado HyperText Printing Protocol (HTPP), y tanto HP como Microsoft habían comenzado a trabajar en nuevos servicios de impresión para lo que se convirtió en Windows 2000. Cada una de las empresas decidió iniciar un proyecto de protocolo de impresión de Internet común en el Printer Working Group (PWG) y negoció una sesión de IPP de tipo birds-of-a-feather (o BOF) con los directores de área de aplicación en el Internet Engineering Task Force (IETF). La sesión BOF en diciembre de 1996 [ cita requerida ] mostró suficiente interés en desarrollar un protocolo de impresión, lo que llevó a la creación del grupo de trabajo IETF Internet Printing Protocol (ipp) [3] , que concluyó en 2005.
El trabajo sobre IPP continúa en el grupo de trabajo del Protocolo de Impresión de Internet PWG con la publicación de 23 estándares candidatos, 1 RFC IETF nuevo y 3 actualizados, y varios documentos de registro y mejores prácticas que proporcionan extensiones a IPP y soporte para diferentes servicios, incluyendo impresión 3D, escaneo, fax, servicios basados en la nube y administración general del sistema y de los recursos.
IPP/1.0 se publicó como una serie de documentos experimentales (RFC 2565, [4] RFC 2566, [5] RFC 2567, [6] RFC 2568, [7] RFC 2569, [8] y RFC 2639 [9] ) en 1999.
IPP/1.1 se publicó como borrador de norma en 2000, con documentos de apoyo en 2001, 2003 y 2015 (RFC 2910, [10] RFC 2911, [11] RFC 3196, [12] RFC 3510 [13] RFC 7472 [14] ). IPP/1.1 se actualizó como norma propuesta en enero de 2017 (RFC 8010, [15] RFC 8011, [16] ) y luego se adoptó como Estándar de Internet 92 (STD 92, [17] ) en junio de 2018.
IPP 2.0 se publicó como un estándar candidato de PWG en 2009 (PWG 5100.10-2009, [18] ) y definió dos nuevas versiones de IPP (2.0 para impresoras y 2.1 para servidores de impresión) con requisitos de conformidad adicionales más allá de IPP 1.1. Un estándar candidato posterior lo reemplazó en 2011 y definió una versión 2.2 adicional para impresoras de producción (PWG 5100.12-2011, [19] ). Esta especificación se actualizó y se aprobó como un estándar PWG completo (PWG 5100.12-2015, [20] ) en 2015.
IPP Everywhere se publicó en 2013 y proporciona una base común para que las impresoras admitan la denominada impresión "sin controlador" desde dispositivos cliente. Se basa en IPP y especifica reglas adicionales para la interoperabilidad, como una lista de formatos de documentos que las impresoras deben admitir. En 2016 se publicó un manual de autocertificación y un conjunto de herramientas correspondientes que permiten a los fabricantes de impresoras y a los implementadores de servidores de impresión certificar sus soluciones según la especificación publicada y aparecer en la página de impresoras IPP Everywhere que mantiene el PWG.
El protocolo IPP se implementa mediante el protocolo de transferencia de hipertexto (HTTP) y hereda todas las funciones de seguridad y transmisión de HTTP. Por ejemplo, la autorización puede realizarse mediante el mecanismo de autenticación de acceso Digest de HTTP, GSSAPI o cualquier otro método de autenticación HTTP. El cifrado se proporciona mediante la capa de protocolo TLS , ya sea en el modo siempre activo tradicional utilizado por HTTPS o mediante la extensión HTTP Upgrade a HTTP (RFC 2817 [21] ). Se pueden utilizar certificados de clave pública para la autenticación con TLS. La transmisión se admite mediante la fragmentación HTTP. El documento que se va a imprimir se envía normalmente como una secuencia de datos.
IPP admite varios formatos de documentos a imprimir.El PWG definió un formato de imagen llamado PWG Raster específicamente para este propósito. Otros formatos incluyen PDF o JPEG , dependiendo de las capacidades de la impresora de destino. [22]
IPP utiliza el modelo tradicional cliente-servidor, en el que los clientes envían mensajes de solicitud IPP con el tipo de medio MIME "application/ipp" en solicitudes HTTP POST a una impresora IPP. Los mensajes de solicitud IPP constan de pares clave-valor que utilizan una codificación binaria personalizada seguida de una etiqueta de "fin de atributos" y cualquier dato del documento necesario para la solicitud (como el documento que se va a imprimir). La respuesta IPP se envía de vuelta al cliente en la respuesta HTTP POST, nuevamente utilizando el tipo de medio MIME "application/ipp".
Entre otras cosas, el IPP permite al cliente:
IPP utiliza TCP con el puerto 631 como su puerto conocido .
Los productos que utilizan el Protocolo de impresión de Internet incluyen Universal Print de Microsoft, [23] CUPS (que es parte de Apple macOS y muchas distribuciones BSD y Linux y es la implementación de referencia para la mayoría de las versiones de IPP [24] ), Novell iPrint y versiones de Microsoft Windows a partir de MS Windows 2000. [ 25] Windows XP y Windows Server 2003 ofrecen impresión IPP a través de HTTPS . Windows Vista , Windows 7 , [26] Windows Server 2008 y 2008 R2 también admiten la impresión IPP sobre RPC en la zona de seguridad "Media-Baja".