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