天天看點

[NFC]SNEP協定介紹SNEP簡介SNEP協定

如有轉載此文,請注明出處,文中引用的資料,如果有涉及到版權問題,還請告知,會立馬删除。

        依照消息處理的流程,LLCP的消息會封裝成SNEP,交由上層進行分析處理。此章節将重點介紹SNEP Spec中重要的部分。

        1.      SNEP簡介

        2.      SNEP協定

SNEP簡介

            SNEP(SimpleNDEF Exchange Protocol)是通過request/response的方式進行互動,對應的服務名稱(Service Name):urn:nfc:sn:snep,服務通路點(Service AccessPoint):4.

       SNEP支援分片傳輸,傳輸的第一個fragment必須包含完整的Header資訊,示意圖如下:

[NFC]SNEP協定介紹SNEP簡介SNEP協定

        分片傳輸示意圖如下:

[NFC]SNEP協定介紹SNEP簡介SNEP協定

        需要注意的是:

        1.      接收方收到第一個分片資訊後,需要回複continue PDU給發送方。發送方收到continue PDU後,會繼續傳輸剩餘的分片資訊。如果接收方不支援對應的Version,則不會回複continue PDU,并放棄接收後續資料。

        2.      SNEP中檢查Version時,如果Major不一緻時,可能會傳回unsupportedversion;如果隻是minor版本不一緻,則會采用低版本的協定進行溝通

SNEP協定

        主要從request和response兩個方面進行介紹。

        request和response的封包格式如下:

[NFC]SNEP協定介紹SNEP簡介SNEP協定
[NFC]SNEP協定介紹SNEP簡介SNEP協定

        由于Request/Response中的type字段都是由8bits資料表征其含義,是以整理了總表如下:

代碼 名稱 說明 解釋
00 Continue [Req]Send remain fragment Client請求Server發送剩餘分片資訊
01 Get [Req] Server should return a NDEF MSG 請求Server發送NDEF,此消息含Client能接收的最大消息長度
02 Put [Req]Server should accept a NDEF MSG 請求Server接收NDEF,理論上Server端不要支援此部分
03-7E Reserve --- ----
7F Reject [Req]Server should not send remaining msg 停止發送資料,此消息不含information field
80 Continue [Resp] Send remain fragment Server回複的消息過長時,會以frag的方式發送
81 Success [Resp] Operation Success 回複PUT時不含資訊域,回複GET時含資訊域
82-BF Reserve --- ---
C0 Not Found [Resp]Resource not found 不含資訊域
C1 Excess Data [Resp]Resource exceed max size 不含資訊域
C2 Bad request [Resp]malformed request 無法解析Request消息
C3-DF Reserve --- ---
E0 Not impelement [Resp]Unsupported functionality request 無法識别的request code
E1 Unsupported Version [Resp]version not support 不支援的版本資訊
E2-FE Reserve --- ---
FF Reject [Resp]don’t send remaining fragment 不在接收剩餘的分片資訊

        SNEP的協定比較簡單,是以介紹的篇幅會比較少。

繼續閱讀