一、为什么通信协议中需要加数据转义呢?
可以使得通信的内容更加安全可靠,可以收发不定长的数据帧。
二、数据转义规则简介
假设:
一个通信协议,最基本的就是帧头(STX)和帧尾(ETX)。
当通信的接收方,接收到帧头(STX),就会知道通信的开始。
当通信的接收方,接收到帧尾(ETX),就会知道通信的结束。
但是在一帧数据中间出现帧头(STX)或者帧尾(ETX)的时候,就会出现数据丢失的现象。
为了避免数据丢失的现象发生,产生了数据转义规则。
三、数据转义规则具体内容
| 转义前 | 转义后 | |
|---|---|---|
| STX(帧头) | 0x41 | 0x2D,0x21 |
| ETX(帧尾) | 0x2B | 0x2D,0x0B |
| ESC(转义符) | 0x2D | 0x2D,0x0D |
在发送数据时:
遇到 0x41 时,发送 0x2D,0x21
遇到 0x2B 时,发送 0x2D,0x0B
遇到 0x2D 时,发送 0x2D,0x0D
在接收数据时:
遇到0x2D时,跳过不处理,而把该字节的后一个字节加上0x20。
数据通信协议中,为了确保数据的完整性和安全性,采用了数据转义规则。当帧内容中出现帧头STX、帧尾ETX或转义符ESC时,会进行特定的转义处理,如将STX转为0x2D, 0x21,ETX转为0x2D, 0x0B,ESC转为0x2D, 0x0D。接收端则根据规则还原数据,避免数据丢失。这种机制确保了通信过程中不定长数据帧的正确传输。
&spm=1001.2101.3001.5002&articleId=123422553&d=1&t=3&u=8bb4e560fc0647cdadfb9afbab4e7fd3)
850

被折叠的 条评论
为什么被折叠?



