《计算机应用》唯一官方网站 ›› 2025, Vol. 45 ›› Issue (4): 1263-1270.DOI: 10.11772/j.issn.1001-9081.2024040534
收稿日期:
2024-05-09
修回日期:
2024-08-30
接受日期:
2024-09-02
发布日期:
2025-04-08
出版日期:
2025-04-10
通讯作者:
倪龙强
作者简介:
杨定木(1999—),男(布依族),贵州安龙人,硕士研究生,主要研究方向:信息通信、智能决策
Dingmu YANG, Longqiang NI(), Jing LIANG, Zhaoyuan QIU, Yongzhen ZHANG, Zhiqiang QI
Received:
2024-05-09
Revised:
2024-08-30
Accepted:
2024-09-02
Online:
2025-04-08
Published:
2025-04-10
Contact:
Longqiang NI
About author:
YANG Dingmu, born in 1999, M. S. candidate. His research interests include information communication, intelligent decision-making.摘要:
协议转换通常用于解决不同协议之间的数据交互问题,它的本质是寻找不同协议字段之间的映射关系。传统的协议转换方法存在以下缺点:转换大多是在特定协议的基础上设计的,因而这些转换是静态的,灵活性较差,不适用于多协议转换的场景;一旦协议发生改变,就需要再次分析协议的结构和字段语义以重新构建字段之间的映射关系,从而产生指数级的工作量,降低了协议转换的效率。因此,提出基于语义相似度的通用协议转换方法,旨在通过智能的方法发掘字段间的映射关系,进而提高协议转换的效率。首先,通过BERT (Bidirectional Encoder Representations from Transformers)模型分类协议字段,并排除“不应该”存在映射关系的字段;其次,通过计算字段之间的语义相似度,推理字段之间的映射关系,进而构建字段映射表;最后,提出基于语义相似度的通用协议转换框架,并定义相关协议以进行验证。仿真实验结果表明:所提方法的字段分类精准率达到了94.44%;映射关系识别精准率达到了90.70%,相较于基于知识抽取的方法提高了13.93%。以上结果验证了所提方法的有可行性,该方法可以快速识别不同协议字段之间的映射关系,适用于无人协同中多协议转换的场景。
中图分类号:
杨定木, 倪龙强, 梁晶, 邱照原, 张永真, 齐志强. 基于语义相似度的协议转换方法[J]. 计算机应用, 2025, 45(4): 1263-1270.
Dingmu YANG, Longqiang NI, Jing LIANG, Zhaoyuan QIU, Yongzhen ZHANG, Zhiqiang QI. Protocol conversion method based on semantic similarity[J]. Journal of Computer Applications, 2025, 45(4): 1263-1270.
类型标签 | 类型 | 类型说明 |
---|---|---|
0 | 映射默认字段 | 字段值来源于其他报文的映射,当不存在映射值时,若字段是固定字段,则使用默认值填充, 例如HTTP的端口(port)字段;若是可选字段,直接舍弃,例如CoAP的请求参数(Uri-Query)字段 |
1 | 映射计算字段 | 字段值来源于其他报文的映射,当不存在映射值时,若字段是固定字段,按照指定的计算方法计算填充, 例如CoAP的报文编号(Message ID)字段,若是可选字段,直接舍弃 |
2 | 默认字段 | 字段值来源于默认值,例如HTTP的版本(Version)字段 |
3 | 计算字段 | 按照指定的计算方法计算字段值,例如报文长度字段 |
表1 字段类型说明
Tab. 1 Description of field types
类型标签 | 类型 | 类型说明 |
---|---|---|
0 | 映射默认字段 | 字段值来源于其他报文的映射,当不存在映射值时,若字段是固定字段,则使用默认值填充, 例如HTTP的端口(port)字段;若是可选字段,直接舍弃,例如CoAP的请求参数(Uri-Query)字段 |
1 | 映射计算字段 | 字段值来源于其他报文的映射,当不存在映射值时,若字段是固定字段,按照指定的计算方法计算填充, 例如CoAP的报文编号(Message ID)字段,若是可选字段,直接舍弃 |
2 | 默认字段 | 字段值来源于默认值,例如HTTP的版本(Version)字段 |
3 | 计算字段 | 按照指定的计算方法计算字段值,例如报文长度字段 |
类型 | 来源 |
---|---|
协议标准文档 | RFC 9110[ RFC 7641[ |
协议转换标准文档 | RFC 8075[ |
相关网页搜索 | MQTT协议等相关网页 |
表2 数据来源
Tab. 2 Data sources
类型 | 来源 |
---|---|
协议标准文档 | RFC 9110[ RFC 7641[ |
协议转换标准文档 | RFC 8075[ |
相关网页搜索 | MQTT协议等相关网页 |
字段名称 | 字段值 | 字段语义 | 分类标签 |
---|---|---|---|
Ver | 1 | 版本编号,指示协议的版本号 | 2 |
TKL | — | 用于指示Token字段的字节长度 | 3 |
Message ID | — | 报文编号,客户端和服务器 建立请求和响应报文之间的 一一对应关系。在同一次 会话中保持不变,会话结束后 将会被回收重复利用 | 1 |
Uri-Host | — | 请求将要发送到的服务器的 主机名 | 0 |
分隔符 | 0xFF | 分隔符,默认为0xFF,用于分隔 CoAP的首部和负载 | 2 |
Payload | — | 报文负载,有用的被交互的数据 | 0 |
Option-Length | — | Option Value字段的字节长度 | 3 |
Content- Format | 0 | 表示text/plain;charset=utf-8, 负载类型为文本数据,默认为 UTF8编码 | 0 |
42 | 表示application/octet-stream, 负载类型为二进制数据流 | 0 | |
Code | 0.01 | GET请求方法,用于访问获得 服务端的信息资源 | 0 |
4.04 | Not Found,服务器找不到资源 | 0 |
表3 CoAP部分字段的示例
Tab. 3 Examples of some fields in CoAP
字段名称 | 字段值 | 字段语义 | 分类标签 |
---|---|---|---|
Ver | 1 | 版本编号,指示协议的版本号 | 2 |
TKL | — | 用于指示Token字段的字节长度 | 3 |
Message ID | — | 报文编号,客户端和服务器 建立请求和响应报文之间的 一一对应关系。在同一次 会话中保持不变,会话结束后 将会被回收重复利用 | 1 |
Uri-Host | — | 请求将要发送到的服务器的 主机名 | 0 |
分隔符 | 0xFF | 分隔符,默认为0xFF,用于分隔 CoAP的首部和负载 | 2 |
Payload | — | 报文负载,有用的被交互的数据 | 0 |
Option-Length | — | Option Value字段的字节长度 | 3 |
Content- Format | 0 | 表示text/plain;charset=utf-8, 负载类型为文本数据,默认为 UTF8编码 | 0 |
42 | 表示application/octet-stream, 负载类型为二进制数据流 | 0 | |
Code | 0.01 | GET请求方法,用于访问获得 服务端的信息资源 | 0 |
4.04 | Not Found,服务器找不到资源 | 0 |
评价指标 | 值 |
---|---|
微平均精准率 | 94.44 |
微平均召回率 | 94.44 |
微平均F1值 | 94.44 |
表4 分类结果评估 (%)
Tab. 4 Evaluation of classification results
评价指标 | 值 |
---|---|
微平均精准率 | 94.44 |
微平均召回率 | 94.44 |
微平均F1值 | 94.44 |
CoAP | HTTP | 标签 | ||||
---|---|---|---|---|---|---|
字段名 | 字段值 | 字段语义 | 字段名 | 字段值 | 字段语义 | |
Content- Format | 50 | 表示application/json,负载类型为 JSON格式的二进制数据 | Content-Type | application/json | 负载的数据类型为二进制的 JSON格式 | 1 |
42 | 表示application/octet-stream, 负载类型为二进制数据流 | application/xml | 负载类型为XML格式的二进制数据 | 0 | ||
Code | 0.01 | GET请求方法,用于访问获得服务端的信息资源 | Method | GET | 根据URL获得服务器的资源 | 1 |
0.03 | POST请求方法,请求服务端创建新的资源 | PUT | PUT请求方法,请求服务端更新资源 | 0 | ||
2.04 | 表示Changed,说明请求已执行,资源已更新 | Status-Code | 200 | 表示OK,说明请求已执行 | 1 | |
204 | 表示No Content,说明请求已执行, 响应负载为空 | 1 | ||||
2.05 | 表示Content,说明请求已执行,响应负载不为空 | 200 | 表示OK,说明请求已执行 | 1 |
表5 CoAP与HTTP字段语义匹配的部分数据集
Tab. 5 Some datasets with CoAP and HTTP field semantic matching
CoAP | HTTP | 标签 | ||||
---|---|---|---|---|---|---|
字段名 | 字段值 | 字段语义 | 字段名 | 字段值 | 字段语义 | |
Content- Format | 50 | 表示application/json,负载类型为 JSON格式的二进制数据 | Content-Type | application/json | 负载的数据类型为二进制的 JSON格式 | 1 |
42 | 表示application/octet-stream, 负载类型为二进制数据流 | application/xml | 负载类型为XML格式的二进制数据 | 0 | ||
Code | 0.01 | GET请求方法,用于访问获得服务端的信息资源 | Method | GET | 根据URL获得服务器的资源 | 1 |
0.03 | POST请求方法,请求服务端创建新的资源 | PUT | PUT请求方法,请求服务端更新资源 | 0 | ||
2.04 | 表示Changed,说明请求已执行,资源已更新 | Status-Code | 200 | 表示OK,说明请求已执行 | 1 | |
204 | 表示No Content,说明请求已执行, 响应负载为空 | 1 | ||||
2.05 | 表示Content,说明请求已执行,响应负载不为空 | 200 | 表示OK,说明请求已执行 | 1 |
方法 | 精准率 | 召回率 | F1 |
---|---|---|---|
文献[ | 79.61 | 80.12 | 79.86 |
本文方法 | 90.70 | 95.12 | 92.86 |
表6 映射关系识别的精准率、召回率、F1值对比 (%)
Tab. 6 Comparison of precision, recall, and F1 value for mapping relationship identification
方法 | 精准率 | 召回率 | F1 |
---|---|---|---|
文献[ | 79.61 | 80.12 | 79.86 |
本文方法 | 90.70 | 95.12 | 92.86 |
HTTP | CoAP | ||
---|---|---|---|
字段名称 | 字段值 | 字段名称 | 字段值 |
Method | GET | Code | 0.01 |
POST | 0.03 | ||
DELETE | 0.04 | ||
PUT | 0.02 | ||
Status-Code | 200 | 2.02 | |
204 | |||
400 | 4.02 | ||
500 | |||
Uri-Path | * | Uri-Path | * |
Payload | * | Entity | * |
Accept | application/json | Accept | 50 |
application/octet-stream | 42 | ||
Content-Type | text/plain | Content-Format | 0 |
application/xml | 41 |
表7 HTTP与CoAP字段映射表(部分)
Tab. 7 HTTP and CoAP field mapping tables (part)
HTTP | CoAP | ||
---|---|---|---|
字段名称 | 字段值 | 字段名称 | 字段值 |
Method | GET | Code | 0.01 |
POST | 0.03 | ||
DELETE | 0.04 | ||
PUT | 0.02 | ||
Status-Code | 200 | 2.02 | |
204 | |||
400 | 4.02 | ||
500 | |||
Uri-Path | * | Uri-Path | * |
Payload | * | Entity | * |
Accept | application/json | Accept | 50 |
application/octet-stream | 42 | ||
Content-Type | text/plain | Content-Format | 0 |
application/xml | 41 |
字段名 | 字段 大小/B | 字段 默认值 | 字段语义 |
---|---|---|---|
Version | 1 | 1.0 | 版本编号,指示协议的版本号 |
Server | 1 | 0 | 应用标识符,区分不同报文的应用服务 |
CRC | 2 | — | CRC校验,检测数据传输的正确性 |
Src | 2 | — | 发送端ID,表示协议报文的发送地址 |
Des | 2 | — | 接收端ID,表示协议报文的目的地址 |
Length | 4 | — | 报文字节长度、协议头和协议体的总长度 |
Key | 变长 | — | 表示Value字段的标签 |
Value | 变长 | — | 表示报文负载的具体内容 |
表8 JSON协议字段说明
Tab. 8 JSON protocol field description
字段名 | 字段 大小/B | 字段 默认值 | 字段语义 |
---|---|---|---|
Version | 1 | 1.0 | 版本编号,指示协议的版本号 |
Server | 1 | 0 | 应用标识符,区分不同报文的应用服务 |
CRC | 2 | — | CRC校验,检测数据传输的正确性 |
Src | 2 | — | 发送端ID,表示协议报文的发送地址 |
Des | 2 | — | 接收端ID,表示协议报文的目的地址 |
Length | 4 | — | 报文字节长度、协议头和协议体的总长度 |
Key | 变长 | — | 表示Value字段的标签 |
Value | 变长 | — | 表示报文负载的具体内容 |
字段名 | 字段大小/B | 字段默认值 | 字段语义 |
---|---|---|---|
Server | 1 | 0 | 服务标识符,区分不同报文服务 |
TagNum | 1 | — | 报文负载的标签数量,根据它可计算报文的字节长度 |
CRC | 2 | — | 循环冗余校验,检测数据传输的正确性 |
Src | 2 | — | 发送方ID,表示报文的发送地址 |
Des | 2 | — | 接收方ID,表示报文的接收地址 |
Tag | 2 | — | 表示Value字段的类型或标签 |
Length | 2 | — | 表示Value字段的长度 |
Value | 变长 | — | 表示报文携带的负载内容 |
表9 TLV协议字段说明
Tab. 9 TLV protocol field description
字段名 | 字段大小/B | 字段默认值 | 字段语义 |
---|---|---|---|
Server | 1 | 0 | 服务标识符,区分不同报文服务 |
TagNum | 1 | — | 报文负载的标签数量,根据它可计算报文的字节长度 |
CRC | 2 | — | 循环冗余校验,检测数据传输的正确性 |
Src | 2 | — | 发送方ID,表示报文的发送地址 |
Des | 2 | — | 接收方ID,表示报文的接收地址 |
Tag | 2 | — | 表示Value字段的类型或标签 |
Length | 2 | — | 表示Value字段的长度 |
Value | 变长 | — | 表示报文携带的负载内容 |
TLV协议 | JSON协议 | ||||
---|---|---|---|---|---|
Server | Src | Des | Key | Value | |
Server | 0.911 6 | 0.498 2 | 0.560 6 | 0.489 7 | 0.637 5 |
Src | 0.525 2 | 0.870 0 | 0.828 0 | 0.380 6 | 0.525 0 |
Des | 0.542 0 | 0.840 6 | 0.861 0 | 0.430 6 | 0.593 9 |
Tag | 0.424 7 | 0.485 1 | 0.501 8 | 0.885 9 | 0.527 9 |
Value | 0.502 2 | 0.472 5 | 0.498 9 | 0.465 3 | 0.866 0 |
表10 JSON与TLV协议字段语义相似度
Tab. 10 JSON and TLV protocol field semantic similarity
TLV协议 | JSON协议 | ||||
---|---|---|---|---|---|
Server | Src | Des | Key | Value | |
Server | 0.911 6 | 0.498 2 | 0.560 6 | 0.489 7 | 0.637 5 |
Src | 0.525 2 | 0.870 0 | 0.828 0 | 0.380 6 | 0.525 0 |
Des | 0.542 0 | 0.840 6 | 0.861 0 | 0.430 6 | 0.593 9 |
Tag | 0.424 7 | 0.485 1 | 0.501 8 | 0.885 9 | 0.527 9 |
Value | 0.502 2 | 0.472 5 | 0.498 9 | 0.465 3 | 0.866 0 |
1 | 刘亚秋,胡铁楠,吕云蕾. 基于嵌入式技术的多协议转换系统研究[J]. 仪表技术与传感器, 2020(2):62-66, 70. |
LIU Y Q, HU T N, LYU Y L. Research on multi-protocol conversion system based on embedded technology[J]. Instrument Technique and Sensor, 2020(2): 62-66, 70. | |
2 | 宗娜. M2M通信中HTTP与CoAP的协议转换代理的研究与实现[D]. 北京:北京邮电大学, 2016:10-46. |
ZONG N. Research and implementation of the protocol conversion proxy of HTTP and CoAP in M2M communication[D]. Beijing: Beijing University of Posts and Telecommunications, 2016:10-46. | |
3 | 赵小虎,王宽,沈雪茹,等. 面向煤矿井下的多协议融合网关设计[J]. 工矿自动化, 2019, 45(1):6-12. |
ZHAO X H, WANG K, SHEN X R, et al. Design of multi-protocol fusion gateway for underground coal mine[J]. Journal of Mine Automation, 2019, 45(1): 6-12. | |
4 | ZAINUDIN A, SYAIFUDIN M F, SYAHRONI N. Design and implementation of node gateway with MQTT and CoAP protocol for IoT applications[C]// Proceedings of the 4th International Conference on Information Technology, Information Systems and Electrical Engineering. Piscataway: IEEE, 2019:155-159. |
5 | 朱家祺. 物联网通信协议转换技术的研究与实现[D]. 武汉:华中科技大学, 2022:9-35. |
ZHU J Q. Research and implementation of internet of things communication protocol conversion technology[D]. Wuhan: Huazhong University of Science and Technology, 2022:9-35. | |
6 | 苗力心. 软件定义协议转换关键技术研究[D]. 郑州:信息工程大学, 2020:25-43. |
MIAO L X. Research on key technologies of software-defined protocol conversion[D]. Zhengzhou: Information Engineering University, 2020:25-43. | |
7 | 林映利. 基于知识图谱的通信协议转换方法研究与应用[D]. 北京:北京交通大学, 2023:25-41. |
LIN Y L. Research and application of communication protocol conversion based on knowledge graph[D]. Beijing: Beijing Jiaotong University, 2023:25-41. | |
8 | SAITO K, NISHI H. Application protocol conversion corresponding to various IoT protocols[C]// Proceedings of the 46th International Conference on Annual Conference of the IEEE Industrial Electronics Society. Piscataway: IEEE, 2020:5219-5225. |
9 | DEVLIN J, CHANG M W, LEE K, et al. BERT: pre-training of deep bidirectional transformers for language understanding[C]// Proceedings of the 2019 International Conference on North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Stroudsburg: ACL, 2019:4171-4186. |
10 | REIMERS N, GUREVYCH I. Sentence-BERT: sentence embeddings using Siamese BERT-networks[C]// Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Stroudsburg: ACL, 2019: 3982-3992. |
11 | 中国电子协会. 机器人互操作通用规范: T/ [S/OL]. [2024-04-02].. |
Chinese Institute of Electronics. Robot-to-robot interoperability general specification: T/ [S/OL]. [2024-04-02].. | |
12 | 涂远来,周家乐,王慧锋. 基于BERT预训练模型的事故案例文本分类方法[J]. 华东理工大学学报(自然科学版), 2023, 49(4):576-582. |
TU Y L, ZHOU J L, WANG H F. Text classification method of accident cases based on BERT pre-training model[J]. Journal of East China University of Science and Technology, 2023, 49(4): 576-582. | |
13 | 杨飘,董文永. 基于BERT嵌入的中文命名实体识别方法[J]. 计算机工程, 2020, 46(4):40-45, 52. |
YANG P, DONG W Y. Chinese named entity recognition method based on BERT embedding[J]. Computer Engineering, 2020, 46(4): 40-45, 52. | |
14 | 段丹丹,唐加山,温勇,等. 基于BERT模型的中文短文本分类算法[J]. 计算机工程, 2021, 47(1):79-86. |
DUAN D D, TANG J S, WEN Y, et al. Chinese short text classification algorithm based on BERT model[J]. Computer Engineering, 2021, 47(1): 79-86. | |
15 | FIELDING R, NOTTINGHAM M, RESCHKE J. HTTP semantics: RFC 9110 [S/OL]. [2024-04-02].. |
16 | FIELDING R, NOTTINGHAM M, RESCHKE J. HTTP/1.1: RFC 9112 [S/OL]. [2024-04-02].. |
17 | SHELBY Z, HARTKE K, BORMANN C. The Constrained Application Protocol (CoAP): RFC 7252 [S/OL]. [2024-04-02].. |
18 | HARTKE K. Observing resources in the Constrained Application Protocol (CoAP): RFC 7641 [S/OL]. [2024-04-02].. |
19 | CASTELLANI A, LORETO S, RAHMAN A, et al. Guidelines for mapping implementations: HTTP to the Constrained Application Protocol (CoAP): RFC 8075 [S/OL]. [2024-04-02].. |
[1] | 肖锐, 刘明义, 涂志莹, 王忠杰. 基于社交媒体文本挖掘的个人事件检测方法[J]. 《计算机应用》唯一官方网站, 2022, 42(11): 3513-3519. |
[2] | 赵小虎, 赵成龙. 基于多特征语义匹配的知识库问答系统[J]. 计算机应用, 2020, 40(7): 1873-1878. |
[3] | 王元龙. 面向阅读理解的句子组合模型[J]. 计算机应用, 2017, 37(6): 1741-1746. |
[4] | 张硕望, 欧阳纯萍, 阳小华, 刘永彬, 刘志明. 融合《知网》和搜索引擎的词汇语义相似度计算[J]. 计算机应用, 2017, 37(4): 1056-1060. |
[5] | 杨武 李阳 卢玲. 基于用户角色定位的微博热点话题检测方法[J]. 计算机应用, 2013, 33(11): 3076-3079. |
[6] | 张怡文 岳丽华 张义飞 李青 程家兴. 基于共同用户和相似标签的好友推荐方法[J]. 计算机应用, 2013, 33(08): 2273-2275. |
[7] | 朱征宇 孙俊华. 改进的基于《知网》的词汇语义相似度计算[J]. 计算机应用, 2013, 33(08): 2276-2279. |
[8] | 李华 储荷兰 高旻. 中文网络评论观点词汇语义褒贬倾向性判断[J]. 计算机应用, 2012, 32(11): 3023-3033. |
[9] | 冯永 张洋. 结合匹配度和语义相似度的Deep Web查询接口模式匹配[J]. 计算机应用, 2012, 32(06): 1688-1691. |
[10] | 姜大庆 周勇 夏士雄. 基于语义描述与优化的网络性能数据聚类方法[J]. 计算机应用, 2012, 32(06): 1522-1525. |
[11] | 陈冰鑫 邱保志. 聚类消息中间件构造技术[J]. 计算机应用, 2012, 32(05): 1425-1428. |
[12] | 张玉芳 徐安龙. 改进的基因术语间语义相似度计算方法[J]. 计算机应用, 2012, 32(05): 1329-1331. |
[13] | 陈明 宋宝 唐小琦. 基于DSP和FPGA的网络转换网关[J]. 计算机应用, 2011, 31(10): 2617-2620. |
[14] | 韩仙玉 姜瑛. 针对构件测试本体的语义相似度计算方法[J]. 计算机应用, 2011, 31(06): 1487-1490. |
[15] | 陈俊 陈孝威. 移动IPv4/IPv6的虚拟机迁移过渡框架[J]. 计算机应用, 2011, 31(05): 1180-1183. |
阅读次数 | ||||||
全文 |
|
|||||
摘要 |
|
|||||