RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

COAP協(xié)議的雙層模型及其傳輸特性

jf_uPRfTJDa ? 來源:移動Labs ? 2023-11-20 10:19 ? 次閱讀

Labs 導(dǎo)讀

作為物聯(lián)網(wǎng)世界的主流協(xié)議之一,CoAP協(xié)議為低功耗受限設(shè)備的數(shù)據(jù)交互和網(wǎng)絡(luò)接入提供了可能,IETF在RFC7252中對其進(jìn)行了詳細(xì)的定義,本文結(jié)合CoAP協(xié)議在和家親中的應(yīng)用場景對其雙層模型及輸特性進(jìn)行介紹。

作者:毛小俊

單位:中國移動智慧家庭運營中心

和家親是中國移動面向智慧家庭用戶推出的智能連接類App,是物聯(lián)網(wǎng)在家庭應(yīng)用場景中的落地實踐。物聯(lián)網(wǎng)強調(diào)的是物與物之間的連接通信,在和家親中實現(xiàn)這種物物連接的就是Andlink協(xié)議,它是對多種主流物聯(lián)網(wǎng)協(xié)議的綜合運用,其中包含CoAP、MQTT、LwM2M、HTTP等協(xié)議,他們的簡單對比如下表所示。由于多個協(xié)議都涉及到CoAP,因此本文重點介紹CoAP協(xié)議雙層模型及其傳輸特性。

badfcf44-8743-11ee-939d-92fbcf53809c.png

Part 01和家親哪些場景用到了CoAP?

在和家親中,CoAP主要應(yīng)用在下述2個場景中:

LPWAN網(wǎng)絡(luò)(包括NB-IoT、LoRa、SigFox等)下,智能設(shè)備與家開平臺通過LwM2M協(xié)議進(jìn)行交互,LwM2M協(xié)議的底層便是基于UDP/UDP+DTLS傳輸層協(xié)議之上的CoAP協(xié)議。

Wi-Fi網(wǎng)絡(luò)下,配網(wǎng)是實現(xiàn)智能設(shè)備后續(xù)注冊、上線、管控的前提條件,配網(wǎng)過程中涉及到智能組網(wǎng)終端查找、發(fā)送入網(wǎng)請求、通知設(shè)備入網(wǎng)信息、設(shè)備入網(wǎng)成功廣播、智能組網(wǎng)終端密碼變更同步等步驟,這些步驟的交互即是通過CoAP協(xié)議完成。

bb05cfb4-8743-11ee-939d-92fbcf53809c.png

Part 02什么是CoAP協(xié)議?

CoAP協(xié)議(Constrained Application Protocol,標(biāo)準(zhǔn)文檔RFC7252),屬于應(yīng)用層協(xié)議,在M2M通信中的作用和互聯(lián)網(wǎng)中的HTTP類似,但在定義上只是實現(xiàn)了REST的一個子集,更重要區(qū)別是HTTP運行于TCP之上,而CoAP運行于UDP協(xié)議之上,由于UDP建立的是非可靠連接,在網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中,無論是請求還是響應(yīng),均存在丟包的風(fēng)險。那CoAP協(xié)議的傳輸如何保障可靠性呢?這就涉及到CoAP協(xié)議的雙層模型:

bb10e62e-8743-11ee-939d-92fbcf53809c.png

CoAP協(xié)議邏輯上分為Messaging Model和Request/Response Model,其中:

Messaging Model:處理端到端之間的數(shù)據(jù)交換,并為各報文類型提供重傳機制,來彌補傳輸過程中的不可靠性。通過CoAP消息頭部的Message ID建立請求與應(yīng)答消息之間的關(guān)聯(lián),實現(xiàn)可靠傳輸。

Request/Response Model:定義了Client側(cè)通過URI向服務(wù)端的資源發(fā)出操作請求和服務(wù)端響應(yīng)的規(guī)則。通過CoAP消息頭部的Token建立Request和Response關(guān)聯(lián),實現(xiàn)可靠響應(yīng)。

注意區(qū)分Request/Response Model中的Token和Messaging Model中的Message ID是兩個不同字段,如下圖[1]所示:

bb252bac-8743-11ee-939d-92fbcf53809c.png

下面分別從Request/Response Model和Messaging Model分析CoAP協(xié)議的傳輸特性。

Part 03Messaging Model的可靠消息傳輸

上述介紹的中間CoAP定義了四種不同類型的報文:CON、NON、ACK、RST。其中CON報文需要接收方確認(rèn),即每一個CON報文都對應(yīng)一個頭部帶有相同Message ID的ACK報文或RST報文,如果在規(guī)定的時間內(nèi)請求方未收到ACK報文或RST報文,那么客戶端將啟動 “重傳機制”。發(fā)送方未收到ACK/RST報文可能有兩種原因:

CoAP請求丟失:CoAP請求已經(jīng)發(fā)出,但未到達(dá)服務(wù)端

CoAP響應(yīng)丟失:服務(wù)器已收到請求并返回響應(yīng)信息,但響應(yīng)未正確到達(dá)客戶端

與重傳機制相關(guān)的參數(shù)包括:ACK_TIMEOUT、ACK_RANDOM_FACTOR、MAX_RETRANSMIT、MAX_TRANSMIT_SPAN、MAX_TRANSMIT_WAIT

ACK_TIMEOUT:超時響應(yīng)等待時間,默認(rèn)2s。一個CON報文的初始等待時間為一個隨機數(shù),取值范圍是ACK_TIMEOUT到ACK_TIMEOUT*ACK_RANDOM_FACTOR之間。隨著重傳次數(shù)增加,每一次的等待時間均為前一次的2倍。

ACK_RANDOM_FACTOR:隨機系數(shù),默認(rèn)1.5。

MAX_RETRANSMIT:最大重傳次數(shù),固定值4次。

MAX_TRANSMIT_SPAN:第一次發(fā)出CON報文到最后一次重新發(fā)送的最長時間間隔。

MAX_TRANSMIT_WAIT:第一次發(fā)出CON報文到發(fā)送方放棄接收ACK或RST報文的最長時間間隔。

為進(jìn)一步說明Messaging Model重傳機制,以和家親中設(shè)備端向智能組網(wǎng)終端發(fā)送入網(wǎng)CON請求為例,假如在本次CON報文發(fā)送中

ACK_TIMEOUT=2s

ACK_RANDOM_FACTOR=1.5

首次超時響應(yīng)等待時間取t1=2.5s (2s<=t1<=2*1.5s)

由于網(wǎng)絡(luò)較差嘗試了4次重新發(fā)送都未收到ACK或RST響應(yīng)報文,可以得到如下圖所示的交互結(jié)果:

bb50d8ba-8743-11ee-939d-92fbcf53809c.png

需要注意的是上圖只是為了說明重傳機制的完整流程,只要CON消息發(fā)送后任意時刻,設(shè)備端收到來自服務(wù)端的ACK/RST消息,本次消息傳送便會終止。通過這種重傳機制,CoAP協(xié)議保證了端到端消息傳輸?shù)目煽啃浴?/p>

Part 04Request/Response Model的消息傳輸

Request/Response模型的交互方式類似于HTTP協(xié)議中的客戶端和服務(wù)端交互的C/S模型。

Request關(guān)注的是根據(jù)URI向服務(wù)端的資源發(fā)出操作請求,請求類型包括GET、POST、PUT 和 DELETE,但和HTTP不同的是不會先建立連接,而是通過CoAP消息進(jìn)行異步交互,Request和Response之間通過CoAP消息頭部的Token字段進(jìn)行匹配。

Response則根據(jù)Request類型和服務(wù)端當(dāng)前狀態(tài)的差異,分為Piggybacked Response、Separate Response、Non-confirmable Response3種不同類型:

? Piggybacked Response(附帶響應(yīng))

下圖[1]中展示了對于兩個GET請求,服務(wù)端返回附帶響應(yīng)的例子,一個成功,一個導(dǎo)致了4.04(資源未找到)。通過ACK報文回應(yīng)CON報文,是最通用的類型,屬于可靠響應(yīng)模式。

bb60fd26-8743-11ee-939d-92fbcf53809c.png

? Separate Response(獨立響應(yīng))

假如Server由于系統(tǒng)繁忙等原因無法直接給出數(shù)據(jù)響應(yīng),那么它就會立即發(fā)回一個空的ACK消息,服務(wù)端在數(shù)據(jù)準(zhǔn)備好后服務(wù)器端就會把它組裝成一個新的CON類型消息(這需要客戶端的ACK),進(jìn)行異步響應(yīng)。獨立響應(yīng)也屬于可靠響應(yīng)模式。下圖[1]中可以看到兩次交互中使用的Token一致,都是0x73;但是Message ID已經(jīng)變掉了,從0x7a10變成了0x23bb。

bb6c4be0-8743-11ee-939d-92fbcf53809c.png

? Non-confirmable Response(無需響應(yīng))

Client的請求如果是NON類型,Server一般也回NON類型消息,但服務(wù)器也有可能發(fā)送一個CON類型的消息作為響應(yīng)。適用于對響應(yīng)可靠性要求不高的場景。例如對溫度傳感器數(shù)據(jù)的重復(fù)讀取,并不需要每一次都成功。圖中[1]request和response使用了相同的Token:0x74。

bb76c1b0-8743-11ee-939d-92fbcf53809c.png

Part 05總結(jié)

CoAP協(xié)議目前在和家親的智能設(shè)備大網(wǎng)和局域網(wǎng)連接、管控中都起到了重要的連接作用。作為物聯(lián)網(wǎng)的主流協(xié)議之一,CoAP協(xié)議除了本身單獨使用之外,還是LwM2M協(xié)議的底層消息傳遞協(xié)議,和MQTT相比,CoAP更加輕量、開銷更低,在諸如和家親設(shè)備配網(wǎng)等場景中更加合適。在使用CoAP時結(jié)合場景選擇合適的Message和Request/Response模型對保障傳輸可靠性,提高客戶端和服務(wù)端的交互效率十分重要。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44557

    瀏覽量

    372760
  • ACK
    ACK
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    11144
  • RST
    RST
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    7394
  • CoAP
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    10588
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4221

原文標(biāo)題:技術(shù) | COAP協(xié)議的雙層模型及其傳輸特性

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OSI七層模型中各層的協(xié)議 OSI七層模型的優(yōu)勢與不足

    功能。以下是OSI七層模型中各層的協(xié)議: 物理層(Physical Layer) : 主要負(fù)責(zé)傳輸比特流,即實際的數(shù)據(jù)信號傳輸和物理連接的建立。 協(xié)
    的頭像 發(fā)表于 11-24 10:54 ?259次閱讀

    物聯(lián)網(wǎng)常用協(xié)議及應(yīng)用場景

    、Ethernet、NFC、 Zigbee、Bluetooth、GPRS、3G/4G/5G等。這些協(xié)議能夠確保在網(wǎng)絡(luò)上傳輸的數(shù)據(jù)的安全性和可靠性。 通訊協(xié)議:主要是運行在傳統(tǒng)互聯(lián)網(wǎng)TCP/IP
    的頭像 發(fā)表于 11-12 11:01 ?578次閱讀

    MQTT協(xié)議網(wǎng)關(guān)的工作原理及功能特性

    的數(shù)據(jù)傳輸。本文將詳細(xì)探討 MQTT協(xié)議網(wǎng)關(guān) 的工作原理、功能特性及其在物聯(lián)網(wǎng)應(yīng)用中的重要作用。 一、MQTT協(xié)議網(wǎng)關(guān)的工作原理 1、連接設(shè)
    的頭像 發(fā)表于 09-18 17:00 ?474次閱讀
    MQTT<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)的工作原理及功能<b class='flag-5'>特性</b>

    有損傳輸及其特性介紹

    電子發(fā)燒友網(wǎng)站提供《有損傳輸及其特性介紹.pdf》資料免費下載
    發(fā)表于 08-12 14:24 ?1次下載

    集總電路元件及其特性

    電子發(fā)燒友網(wǎng)站提供《集總電路元件及其特性.pdf》資料免費下載
    發(fā)表于 08-12 09:33 ?0次下載

    請問InDTU IHDMP協(xié)議使用的CRC校驗使用的什么參數(shù)模型?

    InDTU IHDMP協(xié)議使用的CRC校驗使用的什么參數(shù)模型?
    發(fā)表于 07-25 06:39

    京準(zhǔn)電鐘 | NTP網(wǎng)絡(luò)時間同步協(xié)議原理及其應(yīng)用介紹

    京準(zhǔn)電鐘 NTP網(wǎng)絡(luò)時間同步協(xié)議原理及其應(yīng)用介紹
    的頭像 發(fā)表于 06-12 15:22 ?501次閱讀
    京準(zhǔn)電鐘 | NTP網(wǎng)絡(luò)時間同步<b class='flag-5'>協(xié)議</b>原理<b class='flag-5'>及其</b>應(yīng)用介紹

    什么是CAN總線協(xié)議?它有哪些特性和應(yīng)用?

    、實時性強、抗干擾能力強等優(yōu)點,逐漸發(fā)展成為現(xiàn)代工業(yè)通信的重要標(biāo)準(zhǔn)之一。本文將對CAN總線協(xié)議的基本概念、特性、工作原理、應(yīng)用領(lǐng)域等方面進(jìn)行詳細(xì)介紹。
    的頭像 發(fā)表于 05-27 16:32 ?1291次閱讀

    SMBus協(xié)議的工作原理和應(yīng)用特性

    任務(wù)提供一條控制總線。SMBus協(xié)議的出現(xiàn),極大地簡化了系統(tǒng)內(nèi)部設(shè)備之間的連接方式,提高了系統(tǒng)的穩(wěn)定性和可靠性。本文將詳細(xì)介紹SMBus協(xié)議的工作原理、應(yīng)用特性及其在電腦系統(tǒng)中的應(yīng)用。
    的頭像 發(fā)表于 05-24 15:50 ?2259次閱讀

    網(wǎng)絡(luò)傳輸協(xié)議有幾種?

    網(wǎng)絡(luò)傳輸協(xié)議是一種規(guī)定計算機在網(wǎng)絡(luò)中進(jìn)行通信的規(guī)則或標(biāo)準(zhǔn)。常見的網(wǎng)絡(luò)傳輸協(xié)議有以下幾種: 1. TCP/IP協(xié)議:TCP/IP(
    的頭像 發(fā)表于 04-02 16:04 ?1427次閱讀

    osi七層模型各層功能及協(xié)議簡述

    OSI七層模型是一種將計算機網(wǎng)絡(luò)通信分為七個層次,并定制了每個層次的功能和協(xié)議的標(biāo)準(zhǔn)模型。這個模型的設(shè)計是為了使不同的計算機網(wǎng)絡(luò)設(shè)備和系統(tǒng)能夠進(jìn)行互操作。以下是對每個層次的功能和
    的頭像 發(fā)表于 02-04 18:06 ?2149次閱讀

    osi七層模型各層功能及協(xié)議 osi七層模型有哪些

    中的功能和任務(wù)。該模型由七層組成,每一層都有各自的功能和協(xié)議,可以實現(xiàn)不同層之間的通信和數(shù)據(jù)傳輸。下面將詳細(xì)介紹每一層的功能和常用的協(xié)議。 第一層:物理層(Physical Layer
    的頭像 發(fā)表于 01-25 11:03 ?1.3w次閱讀

    TTL與非門的電壓傳輸特性 TTL與非門的靜態(tài)輸入與輸出特性

    TTL與非門的電壓傳輸特性 TTL與非門的靜態(tài)輸入與輸出特性 TTL與非門的動態(tài)特性? TTL與非門是一種基本的邏輯門電路,用于將兩個輸入信號進(jìn)行邏輯與運算,并輸出結(jié)果。TTL(雙晶體
    的頭像 發(fā)表于 01-23 13:52 ?4654次閱讀

    osi七層模型各層功能及協(xié)議

    OSI(Open Systems Interconnection)七層模型是一種將計算機網(wǎng)絡(luò)通信協(xié)議劃分為七個不同層次的模型,每層都有其特定的功能和協(xié)議。下面將詳細(xì)介紹每個層次的功能及
    的頭像 發(fā)表于 01-10 18:06 ?2248次閱讀

    藍(lán)牙協(xié)議版本解析:不同類型的藍(lán)牙協(xié)議及其作用

    到2.1:經(jīng)典藍(lán)牙協(xié)議 藍(lán)牙1.0: 首次引入藍(lán)牙技術(shù),支持?jǐn)?shù)據(jù)傳輸速率為1 Mbps,主要應(yīng)用在耳機和手機等簡單設(shè)備的連接。 藍(lán)牙2.0: 引入了增強數(shù)據(jù)傳輸速率(3 Mbps)和快速連接建立的
    的頭像 發(fā)表于 12-28 11:17 ?2202次閱讀
    RM新时代网站-首页