BLE Mesh代理協(xié)議

  • 什么是代理協(xié)議?
  • 代理協(xié)議的作用?
  • 代理協(xié)議的原理?
  • 代理協(xié)議的實(shí)現(xiàn)過(guò)程?
  • 為什么會(huì)有代理協(xié)議?

1、原理:為什么要使用代理協(xié)議?

首先,要理解BLE Mesh協(xié)議是一個(gè)應(yīng)用程序,而不是BLE4.0、BLE5.2這種藍(lán)牙協(xié)議。通常的藍(lán)牙芯片或者支持藍(lán)牙功能的手機(jī),是沒(méi)有BLE Mesh協(xié)議的,即一般的藍(lán)牙功能不會(huì)包含BLE Mesh應(yīng)用。所以要使一個(gè)設(shè)備支持BLE Mesh,需要在芯片里面實(shí)現(xiàn)BLE Mesh協(xié)議棧,在手機(jī)或者電腦上的App中,實(shí)現(xiàn)BLE Mesh協(xié)議棧。

其次,要知道承載器,目前有且僅有兩種,Sig定義的廣播承載器(Advertising bearer)和GATT承載器(GATT bearer)。廣播承載器是通過(guò)發(fā)送藍(lán)牙廣播進(jìn)行通信,GATT承載器是通過(guò)建立GATT藍(lán)牙連接進(jìn)行通信。注意有個(gè)簡(jiǎn)稱(chēng),廣播承載器簡(jiǎn)稱(chēng)PB-ADV,GATT承載器簡(jiǎn)稱(chēng)PB-GATT。承載器可以理解為操作BLE進(jìn)行數(shù)據(jù)收發(fā)的一個(gè)結(jié)構(gòu)體對(duì)象。每一個(gè)支持藍(lán)牙m(xù)esh協(xié)議的終端,必須至少支持這兩種承載器中的一種。目前手機(jī)App只能以一種角色運(yùn)行,不能同時(shí)作為主機(jī)和從機(jī),即同時(shí)無(wú)法實(shí)現(xiàn)兩種承載器。手機(jī)App作為整個(gè)網(wǎng)絡(luò)的管理者(配網(wǎng)器),在手機(jī)App上使用的是GATT承載器,畢竟GATT承載器的通信可靠性要更好。一般的做法是手機(jī)APP連接上一個(gè)設(shè)備,然后通過(guò)這個(gè)設(shè)備去控制整個(gè)Mesh網(wǎng)絡(luò)。(可以支持多個(gè)GATT承載器,如子網(wǎng)模式下,APP端需要多個(gè)頁(yè)面支持)

最后,與手機(jī)APP端建立GATT連接的節(jié)點(diǎn)必須支持代理協(xié)議。在App上要操作除建立連接外的其他節(jié)點(diǎn),App只能發(fā)送消息給連接的節(jié)點(diǎn),連接的節(jié)點(diǎn)再給mesh網(wǎng)絡(luò)發(fā)送廣播將消息傳遞出去。這個(gè)連接的節(jié)點(diǎn)就必須同時(shí)與App建立GATT連接,又能使用PB-ADV發(fā)送廣播。所以,App與節(jié)點(diǎn)建立GATT承載器,然后通過(guò)該節(jié)點(diǎn)的廣播承載發(fā)送數(shù)據(jù)控制Mesh網(wǎng)絡(luò)的通信協(xié)議,就是BLE Mesh Proxy protocol。建立連接的設(shè)備相當(dāng)于手機(jī)APP的代理人,消息的收發(fā)都通過(guò)這個(gè)代理人進(jìn)行處理。

總結(jié):手機(jī)App端在mesh上的通信方式,只有一種,代理協(xié)議模式。不論是什么消息,必須走這個(gè)協(xié)議。

2、代理協(xié)議概述

代理協(xié)議使節(jié)點(diǎn)能夠通過(guò)面向連接的承載器發(fā)送和接收Network PDUs、mesh beaconsproxy configuration messagesProvisioning PDUs。Sig BLE Mesh協(xié)議中只有這四種消息。
例如,一個(gè)節(jié)點(diǎn)可以支持 GATT,但不能發(fā)送 Mesh Message AD 類(lèi)型廣播。 該節(jié)點(diǎn)將與另一個(gè)支持 GATT 承載器廣播承載器的節(jié)點(diǎn)建立 GATT 連接,使用 Proxy 協(xié)議在這些承載器之間轉(zhuǎn)發(fā)消息。

2.1、代理角色

代理協(xié)議定義了兩個(gè)角色:代理服務(wù)器代理客戶端
代理服務(wù)器是支持使用代理協(xié)議的mesh承載器和至少一個(gè)其他mesh承載器的節(jié)點(diǎn)。 例如,代理服務(wù)器可以在廣播承載器和 GATT 承載器之間轉(zhuǎn)發(fā)mesh消息。
代理客戶端是支持使用代理協(xié)議的mesh承載器。 例如,代理客戶端可以使用 GATT 承載器將mesh消息發(fā)送到支持廣播承載器的節(jié)點(diǎn)。

為了能愉快的閱讀本文下面內(nèi)容,需要記住:代理服務(wù)器就是與App端建立GATT連接的節(jié)點(diǎn)。代理客戶端就是App端。

2.2、Proxy PDU

代理客戶端和代理服務(wù)器交換代理 PDU。 代理 PDU 可以包含網(wǎng)絡(luò) PDU、mesh廣播信標(biāo)、代理配置消息或配網(wǎng)PDU。 單個(gè)代理 PDU 可以包含完整的消息或消息的片段。 Proxy PDU 的大小由 Proxy 協(xié)議的用戶決定。 例如,GATT 承載器根據(jù) ATT_MTU 定義 Proxy PDU 的大小。目前我司已經(jīng)實(shí)現(xiàn)了短包和長(zhǎng)包兩種方式。

2.3、Proxy PDU format格式

Proxy PDU format.png

字段介紹:

  • SAR:占2位,表示BLE收到的消息是否需要分段重組。SAR全稱(chēng),Segmentation and Reassembly,指拆包組包機(jī)制。

  • MessageType:占6位,PDU中Data的消息類(lèi)型。

  • Data:可變長(zhǎng)度,數(shù)據(jù)部分,完整消息或者是分段消息內(nèi)容。

字段值的范圍介紹:

  1. SAR字段范圍 (2個(gè)位有且僅有4種情況)):

    SAR值(0b代表二進(jìn)制) 含義
    0b00 Data段包含的是完整消息
    0b01 Data段包含的是分段消息第一個(gè)數(shù)據(jù)
    0b10 Data段包含的是分段消息中間數(shù)據(jù)
    0b11 Data段包含的是分段消息最后一個(gè)數(shù)據(jù)
  2. Type字段范圍(目前有且僅有4種類(lèi)型):

    Type值 名稱(chēng) 含義
    0x00 Network PDU Data段包含是網(wǎng)絡(luò)數(shù)據(jù)
    0x01 Mesh Beacon Data段包含是Mesh Beacon廣播信標(biāo)
    0x02 Proxy Configuration Data段包含是代理配置消息
    0x03 Provisioning PDU Data段包含是配網(wǎng)消息
    0x04–0x3F 未用到 保留,供將來(lái)擴(kuò)展
  3. data段,純數(shù)據(jù),無(wú)需說(shuō)明。

2.4、Segmentation分段與組合

在mesh協(xié)議中一共有兩處消息的分段和組合:(1)配網(wǎng)器收發(fā)數(shù)據(jù)時(shí),會(huì)判斷是否因?yàn)镸TU導(dǎo)致的分段或組合,這個(gè)部分屬于承載層負(fù)責(zé)。(2)因底層傳輸層負(fù)載最大長(zhǎng)度的限制導(dǎo)致的分段與組合,底層傳輸層在處理來(lái)自上層傳輸層消息進(jìn)行消息發(fā)送時(shí),會(huì)判斷是否需要分段之后再交給網(wǎng)絡(luò)層進(jìn)行處理;底層傳輸層收到來(lái)自網(wǎng)絡(luò)層的消息時(shí),會(huì)判斷是否為完整消息,必須是消息完整后再交給上層傳輸層處理。

這里講的是承載層的分段與組合:

使用代理協(xié)議發(fā)送的消息可能比單個(gè)代理 PDU的MTU 大。 為了使這樣的消息能夠被傳輸,使用了分段和重組。

  • 當(dāng)發(fā)送小于或等于 Proxy PDU 最大大小的消息時(shí),SAR 字段應(yīng)設(shè)置為 0b00,Data 字段應(yīng)包含完整的消息。

  • 當(dāng)發(fā)送的消息大于代理 PDU 的最大大小時(shí),該消息將被分成多個(gè)段,這些段將填充每個(gè)代理 PDU。 這些段應(yīng)按順序發(fā)送,第一個(gè)段的 SAR 字段應(yīng)設(shè)置為 0b01,最后一個(gè)段的 SAR 字段應(yīng)設(shè)置為 0b11,所有其他段的 SAR 字段應(yīng)設(shè)置為 0b10。

2.5、Proxy filtering代理過(guò)濾

為了減少代理客戶端和代理服務(wù)器之間交換的網(wǎng)絡(luò) PDU 的數(shù)量,可以使用代理過(guò)濾器。

代理服務(wù)器實(shí)例化的網(wǎng)絡(luò)接口的輸出過(guò)濾器可以由代理客戶端配置。 這允許代理客戶端明確請(qǐng)求僅接收具有特定目標(biāo)地址的mesh消息。 例如,訂閱了組地址的代理客戶端可能只想接收發(fā)往其元素之一的單播地址和該組地址的數(shù)據(jù)包。 因此,代理客戶端可以完全控制它使用代理協(xié)議接收的數(shù)據(jù)包。

代理過(guò)濾器可以是白名單過(guò)濾器或黑名單過(guò)濾器。

  • 白名單過(guò)濾器有一個(gè)關(guān)聯(lián)的白名單,它是代理客戶端感興趣的目標(biāo)地址列表。 白名單過(guò)濾器會(huì)阻止除已添加到白名單中的所有目標(biāo)地址。

  • 黑名單過(guò)濾器有一個(gè)關(guān)聯(lián)的黑名單,它是代理客戶端不想接收的目標(biāo)地址的列表。 黑名單過(guò)濾器接受除已添加到黑名單的地址之外的所有目標(biāo)地址。

  • 具有空列表的白名單過(guò)濾器是默認(rèn)過(guò)濾器類(lèi)型。 代理客戶端可以更改過(guò)濾器類(lèi)型以及配置代理過(guò)濾器中的地址。

舉個(gè)例子,網(wǎng)絡(luò)中存在A、B、C三個(gè)節(jié)點(diǎn)。

  • 如果設(shè)置過(guò)濾器類(lèi)型為白名單模式,將A的地址添加到白名單列表,那么只能收到A節(jié)點(diǎn)的消息,B和C節(jié)點(diǎn)的消息會(huì)被過(guò)濾掉。

  • 如果設(shè)置過(guò)濾器類(lèi)型為黑名單模式,那么A節(jié)點(diǎn)的消息就會(huì)被過(guò)濾掉,只能接收到B和C節(jié)點(diǎn)的消息。

2.6、Proxy configuration messages

除了Network PDUs、mesh beaconsProvisioning PDU,代理客戶端和代理服務(wù)器可以使用代理協(xié)議交換proxy configuration messages代理配置消息。

代理配置消息用于配置代理過(guò)濾器。

代理配置消息的格式與網(wǎng)絡(luò) PDU 的格式相同相同。

  • CTL 字段應(yīng)設(shè)置為 1。代表控制消息Control Message。

  • TTL 字段應(yīng)設(shè)置為 0。代表不轉(zhuǎn)發(fā),只讓與手機(jī)APP連接的代理節(jié)點(diǎn)處理。

  • DST 字段應(yīng)設(shè)置為未分配的地址。

TransportPDU 字段的格式應(yīng)如下表所示,并應(yīng)使用網(wǎng)絡(luò)密鑰NetworkKey中定義的主安全憑證和代理隨機(jī)數(shù)proxy nonce進(jìn)行保護(hù)。

Proxy TransportPDU字段格式如下:

字段名稱(chēng) 長(zhǎng)度(字節(jié)) 含義
Opcode 1 消息操作碼
Parameters 可變的 消息參數(shù)

Proxy TransportPDU操作碼字段的值定義如下:

Opcode 含義
0x00 Set Filter Type 代理客戶端發(fā)送,用于設(shè)置代理過(guò)濾器類(lèi)型
0x01 Add Addresses To Filter 代理客戶端發(fā)送,用于添加地址到代理過(guò)濾列表
0x02 Remove Addresses From Filter 代理客戶端發(fā)送,用于移除代理過(guò)濾列表中的地址
0x03 Filter Status 代理服務(wù)器與客戶端用于確認(rèn)過(guò)濾列表消息的狀態(tài)
0x04–0xFF 保留 供以后擴(kuò)展

Parameters參數(shù)的值,需要根據(jù)每一種操作做具體的分析,下面內(nèi)容做詳細(xì)闡述。

2.6.1、Set Filter Type設(shè)置過(guò)濾器類(lèi)型

代理客戶端可以發(fā)送設(shè)置過(guò)濾器類(lèi)型消息來(lái)更改代理過(guò)濾器類(lèi)型并清除代理過(guò)濾器列表。

參數(shù)定義如下,只有一個(gè)參數(shù)FilterType:

字段 長(zhǎng)度(字節(jié)) 含義
FilterType 1 代理過(guò)濾器類(lèi)型

參數(shù)FilterType的值定義如下:

含義
0x00 白名單過(guò)濾器
0x01 黑名單過(guò)濾器
0x02–0xFF 禁止使用

2.6.2、Add Addresses to Filter添加地址到過(guò)濾器

Add Addresses to Filter 消息由代理客戶端發(fā)送以將目標(biāo)地址添加到代理過(guò)濾器列表。

AddressArray數(shù)組中包含的元素是地址,一個(gè)地址的長(zhǎng)度為2字節(jié),參數(shù)定義如下:

字段 長(zhǎng)度(字節(jié)) 含義
AddressArray 2 * N 地址列表,其中 N 是此消息中的地址個(gè)數(shù)。

AddressArray 字段包含要添加到代理過(guò)濾器列表的地址序列。 它可以包含單播地址、虛擬地址和組地址的任意組合??梢砸淮涡蕴砑佣鄠€(gè)地址。AddressArray 中的每個(gè)地址都是一個(gè) 16 位值,因此使用 16 位虛擬地址而不是Label UUID。

2.6.3、Remove Addresses from Filter移除過(guò)濾器中的地址

從過(guò)濾器中刪除地址消息由代理客戶端發(fā)送以從代理過(guò)濾器列表中刪除目標(biāo)地址。

參數(shù)跟添加消息一樣:

字段 長(zhǎng)度(字節(jié)) 含義
AddressArray 2 * N 地址列表,其中 N 是此消息中的地址個(gè)數(shù)。

AddressArray 字段包含要從代理過(guò)濾器列表中刪除的地址序列。 它可以包含單播地址、虛擬地址或組地址的任意組合。可以一次性刪除多個(gè)地址。

2.6.4、Filter Status過(guò)濾器狀態(tài)

代理服務(wù)器發(fā)送過(guò)濾器狀態(tài)消息以報(bào)告代理過(guò)濾器的狀態(tài)。

參數(shù)定義如下:

字段 長(zhǎng)度(字節(jié)) 含義
FilterType 1 黑名單過(guò)濾器還是白名單過(guò)濾器
ListSize 2 代理過(guò)濾器中地址的個(gè)數(shù)

FilterType的值已經(jīng)在2.6.1中定義過(guò)了。

2.7、Proxy Server behavior代理服務(wù)器行為

當(dāng)代理客戶端連接到代理服務(wù)器時(shí),一個(gè)新的承載器的實(shí)例通過(guò)網(wǎng)絡(luò)層接口連接到網(wǎng)絡(luò)層。(網(wǎng)絡(luò)層接口:C和java語(yǔ)言中由回調(diào)函數(shù)實(shí)現(xiàn),iOS中叫委托協(xié)議;意思就是數(shù)據(jù)能逐層傳遞處理。)

  • 一旦連接后,代理服務(wù)器將代理過(guò)濾器初始化為白名單過(guò)濾器,白名單為空。

  • 如果代理過(guò)濾器是白名單過(guò)濾器,則在從代理客戶端接收到有效的Mesh消息后,代理服務(wù)器應(yīng)將該消息的SRC字段中包含的單播地址添加到白名單中。

  • 如果代理過(guò)濾器是黑名單過(guò)濾器,則在從代理客戶端接收到有效的Mesh消息后,代理服務(wù)器應(yīng)將消息的SRC字段中包含的單播地址從黑名單中刪除。

  • 一旦連接后,代理服務(wù)器應(yīng)向代理客戶端發(fā)送每個(gè)已知子網(wǎng)的安全網(wǎng)絡(luò)信標(biāo)。

  • 在成功處理具有 IV Index字段或Flags字段的新值的Secure Network Beacon(安全網(wǎng)絡(luò)信標(biāo))后,代理服務(wù)器應(yīng)將此安全網(wǎng)絡(luò)信標(biāo)發(fā)送到代理客戶端。

  • 當(dāng)代理服務(wù)器被添加到一個(gè)新的子網(wǎng)時(shí),它應(yīng)該為那個(gè)子網(wǎng)發(fā)送一個(gè)安全網(wǎng)絡(luò)信標(biāo)給代理客戶端。

  • 當(dāng)代理客戶端接收到安全網(wǎng)絡(luò)信標(biāo)后,代理服務(wù)器應(yīng)按照安全網(wǎng)絡(luò)信標(biāo)行為中的定義對(duì)其進(jìn)行處理。

  • 發(fā)送代理配置消息時(shí),代理服務(wù)器應(yīng)將 SRC 字段設(shè)置為其主要元素的單播地址,并且 SEQ 字段應(yīng)使用其主要元素的序列號(hào)。

  • 如果代理服務(wù)器接收到 Set Filter Type 消息,則應(yīng)根據(jù)消息請(qǐng)求中的參數(shù),設(shè)置代理過(guò)濾器類(lèi)型,并清除代理過(guò)濾器列表。然后,代理服務(wù)器應(yīng)以Filter Status(過(guò)濾器狀態(tài))消息進(jìn)行響應(yīng)。

  • 如果代理服務(wù)器接收到一個(gè)添加地址到過(guò)濾器消息,那么它應(yīng)該將這些地址添加到代理過(guò)濾器列表中并且應(yīng)該用一個(gè)過(guò)濾器狀態(tài)消息來(lái)響應(yīng)。如果消息中包含的一個(gè)或多個(gè)地址已經(jīng)在列表中,則代理服務(wù)器不應(yīng)添加這些地址。如果代理服務(wù)器在代理過(guò)濾器列表中的空間不足,代理服務(wù)器不應(yīng)添加這些地址。如果 AddressArray 字段包含未分配的地址,代理服務(wù)器將忽略該地址。

  • 如果代理服務(wù)器接收到從過(guò)濾器中刪除地址消息,它將從代理過(guò)濾器列表中刪除這些地址,并應(yīng)以過(guò)濾器狀態(tài)消息進(jìn)行響應(yīng)。 如果消息中包含的一個(gè)或多個(gè)地址不在列表中,代理服務(wù)器將忽略這些地址。 如果 AddressArray 字段包含未分配的地址,代理服務(wù)器將忽略該地址。

  • 在接收到帶有意外 SAR 字段值的消息時(shí),代理服務(wù)器應(yīng)斷開(kāi)連接。

  • 在接收到消息類(lèi)型字段設(shè)置為保留供將來(lái)使用的值的消息時(shí),代理服務(wù)器應(yīng)忽略此消息。

  • SAR 傳輸?shù)某瑫r(shí)時(shí)間為 20 秒。 當(dāng)超時(shí)到期時(shí),代理服務(wù)器將斷開(kāi)連接。

相關(guān)知識(shí)點(diǎn):

有效的Mesh消息,怎么判斷消息是否有效?能正常被網(wǎng)絡(luò)密鑰以解密算法解析,解析后的數(shù)據(jù)依符合協(xié)議要求。

主元素地址與節(jié)點(diǎn)地址:通常說(shuō)的節(jié)點(diǎn)的單播地址,指的就是主元素的地址。一個(gè)節(jié)點(diǎn)可能有多個(gè)元素,每個(gè)元素地址都不一樣。一個(gè)節(jié)點(diǎn)占用的地址個(gè)數(shù)并非一個(gè),有多少個(gè)元素,就要占用多個(gè)地址。舉例:節(jié)點(diǎn)依次包含三個(gè)元素A,B,C;依據(jù)當(dāng)前網(wǎng)絡(luò)中地址的分配情況,假如元素A的地址為0x0001,節(jié)點(diǎn)中其他的元素地址往回加一,則B元素為0x0002、C元素為0x0003。節(jié)點(diǎn)的地址也就是節(jié)點(diǎn)中主元素的地址,主元素就是第一個(gè)元素,為0x0001。如果此時(shí),再添加一個(gè)設(shè)備,新添加節(jié)點(diǎn)的地址需要從0x0004開(kāi)始,如果也是三個(gè)元素,那么新節(jié)點(diǎn)占用0x0004,0x0005,0x0006三個(gè)地址。

SRC字段:包含的值是源地址,是發(fā)出消息節(jié)點(diǎn)的地址。

ATT_MTU:全稱(chēng)Attribute Protocol Maximum Transmission Unit,屬性協(xié)議最大傳輸單位。

IV Index:相關(guān)的內(nèi)容太長(zhǎng),可以點(diǎn)擊上方安全網(wǎng)絡(luò)行為的鏈接。

SEQ,全稱(chēng)Sequence Number,序列號(hào)。用于記錄消息的編號(hào),消息發(fā)送時(shí)自動(dòng)加一,根據(jù)每個(gè)節(jié)點(diǎn)標(biāo)識(shí)進(jìn)行對(duì)應(yīng)存儲(chǔ)。

2.8、Proxy Client behavior代理客戶端行為

代理客戶端可以發(fā)送代理配置消息來(lái)配置代理過(guò)濾器。

發(fā)送代理配置消息時(shí),代理客戶端應(yīng)將 SRC 字段設(shè)置為其主要元素的單播地址,并且 SEQ 字段應(yīng)使用其主要元素的序列號(hào)。 代理客戶端可以在收到過(guò)濾器狀態(tài)消息時(shí)確定代理過(guò)濾器列表的狀態(tài)。

在接收到帶有意外 SAR 字段值的消息時(shí),代理客戶端應(yīng)斷開(kāi)連接。

在接收到消息類(lèi)型字段設(shè)置為保留供將來(lái)使用的值的消息時(shí),代理客戶端應(yīng)忽略此消息。

SAR 傳輸?shù)某瑫r(shí)時(shí)間為 20 秒。 當(dāng)超時(shí)到期時(shí),代理客戶端將斷開(kāi)連接。

2.9、消息流程圖MSC(message sequence chart)

下方流程圖說(shuō)明了由 Proxy Client 配置,Proxy Server 執(zhí)行的黑名單過(guò)濾的流程圖。

黑名單過(guò)濾流程圖.png

2.10、具體消息解析舉例

2.10.1、例一

BLE收到:

0x0303FC02DDCCF821169A72D02A0978747CFC6739A8A08B13A1A7944EDE4D3D533B27794E5898169572112201E3CD6A1F4804FBB5A618A07719C52E90C651B81A43B4

收到消息后,不會(huì)管設(shè)備處于什么狀態(tài),也不知道是誰(shuí)發(fā)過(guò)來(lái)的數(shù)據(jù)。全部按照代理協(xié)議進(jìn)行處理:

第一步,取第一個(gè)字節(jié)高兩位,第一字節(jié) data[0]為0x03,SAR = data[0] >> 6。計(jì)算出SAR為0。依據(jù)2.3中代理PDU的格式,這個(gè)消息為完整消息。

第二步,取第一個(gè)字節(jié)低6位,PduType = data[0] & 0x3F。計(jì)算出PduType為3。依據(jù)2.3中代理PDU的格式,這個(gè)消息為配網(wǎng)消息。

第三步,依據(jù)配網(wǎng)協(xié)議中的定義,處理從第二字節(jié)到結(jié)束的數(shù)據(jù)。這里就進(jìn)入到配網(wǎng)協(xié)議處理了,配網(wǎng)協(xié)議看之前寫(xiě)過(guò)的內(nèi)容

2.10.2、例二

BLE收到:

0x003EBB5242C5F1E3FDFB18251C5942BFE8EC25CC767D1E1AE1FDD9C73CC0 networkKey: F9B024F55B95EFA75F6B2B8D8D3A3F5C

收到消息后,不會(huì)管設(shè)備處于什么狀態(tài),也不知道是誰(shuí)發(fā)過(guò)來(lái)的數(shù)據(jù)。全部按照代理協(xié)議進(jìn)行處理:

按照例一中同樣的做法,計(jì)算出:SAR為0,PduType為0。依據(jù)代理PDU的格式,我們知道這是一個(gè)Network PDU類(lèi)型的完整消息。到這里就會(huì)將消息傳遞給網(wǎng)絡(luò)層進(jìn)行下一步處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容