趙劉崗
(上海漢圖科技有限公司,上海 201210)
了解打印機系統的通信協議,是開發打印機系統的必要基礎,所以研究打印機系統的通信協議對打印機開發而言是非常重要的。而本文涉及多種打印機協議,其中提到的IPP協議作為打印機協議的工業標準是非常重要的一塊。
關于設備發現服務,需要提到mDNS/DNS-SD協議,很多系統的打印機發現是基于這個技術。例如,蘋果的AirPrint規范,Android的Mopria規范,Windows 10中發現IPP打印機等。
DNS-SD協議,基于DNS的服務發現主要用到DNS現有的三種類型記錄:PTR記錄、SRV記錄、TXT記錄,其中:
設備會先發送一個查詢PTR記錄的數據包到組播組,所查詢服務格式為:
服務實例確定后,通過查詢SRV記錄,查詢服務實例的主機名和端口號。客戶端先發送一個mDNS請求,然后具有對應服務實例的設備會響應SRV記錄,SRV記錄有這個服務實例對應的主機名和端口號。
服務實例除了所在設備的端口號和主機名這些信息以外,還可以提供更多的附加信息,服務實例的附加信息記錄在TXT記錄中,以“key=value”的格式記錄。
在計算機網絡中,組播DNS(mDNS)協議將主機名解析為無本地DNS的小型網絡中的IP地址,使用與單播DNS基本相同的編程接口,數據包格式和操作語義。
蘋果公司的AirPrint可以從iPad,iPhone,iPod touch和Mac進行即時打印,掃描和傳真無須安裝驅動程序或特定軟件。具有非常好的用戶使用體驗,iOS設備和Mac計算機中打印只需要最少硬件和軟件支持,為系統原生提供的功能,只需要打印機符合AirPrint規范即可。
AirPrint技術基于用于打印的Internet打印協議(IPP),用于打印機發現的Bonjour和通用的文檔打印的光柵格式(URF)和JPEG文件格式的打印照片。AirPrint進一步建議支持可移植文檔格式(PDF)用于增強文檔打印。AirPrint可在無線和有線網絡以及USB上運行,使用IPP USB打印協議。AirPrint是macOS首選打印機協議,也是iOS唯一支持的打印協議。
Mopria打印技術是Mopria聯盟制定的標準,提供了一種簡單而無縫的方式來打印,任何Mopria認證的打印機無須安裝任何其他軟件或驅動程序,無論打印機品牌如何,都可以輕松打印。安卓8及更高版本手機上的安卓默認打印服務采用了Mopria的核心打印技術。
Windows 10也支持Mopria認證的打印機,因此,當您安裝新打印機并且Windows更新不可用時,Windows將自動安裝Mopria認證的打印機。Windows通常還使用WSD打印協議,基于HTTP服務和SOAP的協議。
Mopria打印方式和蘋果公司的AirPrint十分類似,核心都是基于IPP打印協議,都提供了統一簡單的用戶使用方式,提高了用戶體驗,并且無須安裝驅動和軟件,具有即時發現即時打印的能力。
互聯網打印協議(IPP)是打印機的標準協議,已成為打印機行業事實上的工業標準,屬于應用層協議,主要用于網絡技術的打印。協議定義了規則用于編碼IPP操作,屬性和值放入“application/ipp”類型的MIME媒體中。它還定義了傳輸消息正文通過HTTP/HTTPS傳輸的Content-Type為“application/ipp”的規則。基于HTTPS的IPP通信方式稱為IPPS,它是基于了IPP和HTTPS的安全通信層,SSL/TLS提供了更好的打印安全性的保證。
IPP數據模型和操作語義Internet打印協議/1.1:模型和語義(RFC 8011)。IPP定義了一些操作,主要有Print-Job、Create-Job、Get-Printer-Attributes、Send-Document、Cancel-Job、Get-Job-Attributes等,根據名稱就大概能知道是什么含義。這里要說明的是Print-Job操作,附帶了需要打印的數據文件,而Create-Job和Send-Document是組合使用的操作,創建Job后再發送打印數據。
通常IPP協議的使用會結合打印機發現協議共同使用。用戶端設備首先會使用發現協議,發現打印機,得到和打印機通信方式(例如IPP打印服務),再使用IPP協議獲取打印機的設備狀態。在用戶發起打印任務時,設備向打印機創建打印任務并傳遞具體的打印參數,并將數據發送到打印機進行打印。
針對目前打印機系統的實際應用需要,本文研究了當前打印機系統的相關通信協議。當然具體的打印機開發,還涉及具體的協議開發工作。本文介紹的打印機相關通信協議可以為打印機系統開發的協議選擇提供指導作用。