LoRaWAN協議 三 Server端資料協議

2022-07-18 07:27:14 字數 4300 閱讀 2431

其中ns和as是比不可少的,是完成lorawan協議的重要組成部分

ns是直接與gw通訊的伺服器,也是as和gw之間的橋梁

我所知道的工作有如下幾點:

驗證資料的合法性(校驗mic)

從gw的資訊中提取資料,整理成ns 的json資料報

將校驗合法的資料打包成新的json包上傳至as

otaa入網時向as傳送請求入***,然後再將入網資訊告訴as,當獲取as傳來的入網的資訊,告訴gw

gw 和 as之間的資料通道

有幾點需要注意的是ns端的資料不進行aes解密工作。

as是server端的資料處理中心

它的工作有如下幾點:

上行資料的解密

下行資料的加密

cs負責將as給的資料處理成使用者自定義的資料協議格式,也就是說,cs端必須是使用者來完成的,因為上面執行的是使用者的協議。這裡也就不再多說了。

以下是我在本地伺服器端通過抓到得來的資料,我們通過分析資料報來理解資料的走向已及現有的server端處理流程。抓包使用的是tcpdump。

1.ns->as資料

這是一幀從ns->as的資料,使用的是tcp方式,as的資料埠為4000。從data部分我們可以看出來,這是乙個未解密的資料。

15:30:53.662471 ip localhost.60795 > localhost.4000: flags [p.], seq 13:328, ack 14, 

win 442, options [nop,nop,ts val 414153 ecr 414145], length 315

0x0000: 4500 016f aee3 4000 4006 8ca3 7f00 0001

0x0010: 7f00 0001 ed7b 0fa0 5505 b988 2261 4f1b

0x0020: 8018 01ba ff63 0000 0101 080a 0006 51c9

0x0030: 0006 51c1 7b22 6170 7022 3a7b 226d 6f74

0x0040: 6565 7569 223a 2234 6137 3730 3032 3031

0x0050: 3631 3031 3622 2c22 6469 7222 3a22 7570

0x0060: 222c 2273 6571 6e6f 223a 3532 332c 2275

0x0070: 7365 7264 6174 6122 3a7b 2270 6f72 7422

0x0080: 3a32 2c22 7061 796c 6f61 6422 3a22 5645

0x0090: 7666 6f56 2b72 6631 5838 4177 316e 6c52

0x00a0: 7077 227d 2c22 6d6f 7465 7478 223a 7b22

0x00b0: 6672 6571 223a 3437 312e 352c 2264 6174

0x00c0: 7222 3a22 5346 3132 4257 3132 3522 2c22

0x00d0: 636f 6472 223a 2234 2f35 222c 2261 6472

0x00e0: 223a 6661 6c73 657d 2c22 6777 7278 223a

0x00f0: 5b7b 2265 7569 223a 2266 6666 6562 3832

0x0100: 3765 6266 3231 6130 3722 2c22 7469 6d65

0x0110: 223a 2232 3031 362d 3131 2d32 3454 3135

0x0120: 3a33 303a 3533 5a22 2c22 7469 6d65 6672

0x0130: 6f6d 6761 7465 7761 7922 3a66 616c 7365

0x0140: 2c22 6368 616e 223a 342c 2272 6663 6822

0x0150: 3a30 2c22 7273 7369 223a 2d37 392c 226c

0x0160: 736e 7222 3a2d 3136 2e35 7d5d 7d7d 00

提取其中的資料部分為:

,

"motetx": ,

"gwrx": []}

}

\x54 \x4b \xdf \xa1 \x5f \xab \x7f \x55

\xfc \x03 \x0d \x67 \x95 \x1a \x70

此時看到的payload因為是加密的,所以完全看不出來資料內容是什麼。

不過在這裡,我們可以看到,ns已經將gw上傳的資料做了一定的解析,封裝成了另外一種json格式,由此,我們不難得出,ns做的工作包括--base64解碼/mic校驗/gw資料報的重新組包

2.as->cs資料

這是一幀從as->cs的資料,使用的是tcp方式,cs的資料埠為5000。從data部分我們可以看出來,這是乙個已經解密完成的資料了。

15:30:53.663219 ip localhost.36774 > localhost.5000: flags [p.], seq 13:328, ack 13, 

win 342, options [nop,nop,ts val 414153 ecr 414140], length 315

0x0000: 4500 016f 928b 4000 4006 a8fb 7f00 0001

0x0010: 7f00 0001 8fa6 1388 2a2a 93a0 9d70 4aae

0x0020: 8018 0156 ff63 0000 0101 080a 0006 51c9

0x0030: 0006 51bc 7b22 6170 7022 3a7b 226d 6f74

0x0040: 6565 7569 223a 2234 6137 3730 3032 3031

0x0050: 3631 3031 3622 2c22 6469 7222 3a22 7570

0x0060: 222c 2273 6571 6e6f 223a 3532 332c 2275

0x0070: 7365 7264 6174 6122 3a7b 2270 6f72 7422

0x0080: 3a32 2c22 7061 796c 6f61 6422 3a22 4151

0x0090: 4944 4241 5547 4277 674a 4367 734d 4451

0x00a0: 3450 227d 2c22 6d6f 7465 7478 223a 7b22

0x00b0: 6672 6571 223a 3437 312e 352c 2264 6174

0x00c0: 7222 3a22 5346 3132 4257 3132 3522 2c22

0x00d0: 636f 6472 223a 2234 2f35 222c 2261 6472

0x00e0: 223a 6661 6c73 657d 2c22 6777 7278 223a

0x00f0: 5b7b 2265 7569 223a 2266 6666 6562 3832

0x0100: 3765 6266 3231 6130 3722 2c22 7469 6d65

0x0110: 223a 2232 3031 362d 3131 2d32 3454 3135

0x0120: 3a33 303a 3533 5a22 2c22 7469 6d65 6672

0x0130: 6f6d 6761 7465 7761 7922 3a66 616c 7365

0x0140: 2c22 6368 616e 223a 342c 2272 6663 6822

0x0150: 3a30 2c22 7273 7369 223a 2d37 392c 226c

0x0160: 736e 7222 3a2d 3136 2e35 7d5d 7d7d 00

提取其中的資料部分為:

,

"motetx": ,

"gwrx": []}

}

\x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 

\x09 \x0a \x0b \x0c \x0d \x0e \x0f

而此時,資料已經完全解密了,可以看到資料就是在as解密的,解密完再傳送給cs,cs再做進一步使用者協議的處理。

在這裡,我們可以看到,as已經將ns傳輸過來的json包的payload部分做了解密,然後再傳給了cs。所以解密工作是在as完成的。

LoraWAN協議中定義的三個類

所有的lorawan終端裝置都必須滿足class a的規定。個人理解為因為這是lora通訊中最基礎的協議 在lora通訊過程中,要實現基本的上行下行功能,以下是其中的上行訊息資料格式 上行資料的結構 資料頭 報頭 硬體層與網路連線的資料,使用者自定義傳輸資料,校驗位。下行資料格式和上行資料格式差不多...

LoRaWAN協議 四 入網方式概述

nwkskey devaddr deveui 其中lorawan入網方式有兩種 abp activation by personalization otaa over the air activation 下面就講述一下這兩種方式。abp方式是事先將入網資訊燒寫在裝置上,也就是說裝置上電已經入網了,...

LoRaWAN協議 一 架構解析

總體架構一共分為4部分 lorawan從底層到最後使用者拿到資料的通訊過程通訊大致可分為三段 mote gw mac層 gw server server 使用者 lora聯盟 規定了 mac層的通訊協議,只有在裝置 gw mote 共同遵守的mac層協議的前提下,不同硬體廠商的裝置才能互相接入。而g...