[NFC]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信息,示意圖如下:

         

        分片傳輸示意圖如下:


        需要注意的是:

        1.      接收方收到第一個分片信息後,需要回復continue PDU給發送方。發送方收到continue PDU後,會繼續傳輸剩餘的分片信息。如果接收方不支持對應的Version,則不會回覆continue PDU,並放棄接收後續數據。

        2.      SNEP中檢查Version時,如果Major不一致時,可能會返回unsupportedversion;如果只是minor版本不一致,則會採用低版本的協議進行溝通



SNEP協議

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

        request和response的封包格式如下


        由於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的協議比較簡單,所以介紹的篇幅會比較少。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章