CN118041845A - 一种网络化实验箱实时双向交互实验支持系统 - Google Patents
一种网络化实验箱实时双向交互实验支持系统 Download PDFInfo
- Publication number
- CN118041845A CN118041845A CN202410286571.XA CN202410286571A CN118041845A CN 118041845 A CN118041845 A CN 118041845A CN 202410286571 A CN202410286571 A CN 202410286571A CN 118041845 A CN118041845 A CN 118041845A
- Authority
- CN
- China
- Prior art keywords
- data
- experiment
- box
- real
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000002474 experimental method Methods 0.000 title claims abstract description 214
- 230000002457 bidirectional effect Effects 0.000 title claims abstract description 37
- 230000003993 interaction Effects 0.000 title claims abstract description 33
- 230000006854 communication Effects 0.000 claims abstract description 114
- 238000004891 communication Methods 0.000 claims abstract description 110
- 238000004458 analytical method Methods 0.000 claims abstract description 14
- 239000000872 buffer Substances 0.000 claims description 78
- 230000004044 response Effects 0.000 claims description 72
- 238000007726 management method Methods 0.000 claims description 71
- 239000012634 fragment Substances 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 27
- 230000007246 mechanism Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 17
- 230000002452 interceptive effect Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 8
- 238000013499 data model Methods 0.000 claims description 7
- 230000006837 decompression Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000013144 data compression Methods 0.000 claims description 5
- 238000003491 array Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000012360 testing method Methods 0.000 claims 2
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000005259 measurement Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 230000007175 bidirectional communication Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络化实验箱实时双向交互实验支持系统,属于智能硬件在线实验技术领域,包括:实验箱、在线实验管理平台、仪器仪表、仪表通信网关,实验箱、在线实验管理平台、仪器仪表、仪表通信网关通过基于Websocket协议的实时双向交互实验通信协议RTBICP和基于VISA协议的分布式快速采集解析协议DQAPP实现实时双向交互。本发明通过实验箱、在线实验管理平台、仪器仪表的实时双向数据交互提高了实验教学智能化水平、效率和质量。
Description
技术领域
本发明涉及智能硬件在线实验技术领域,更具体的说是涉及一种网络化实验箱实时双向交互实验支持系统。
背景技术
在传统的高校实验教学中,师生通常使用硬件实验箱进行实验教学,这种方式存在一些问题。首先,实验教学效率和质量受限于实验指导资料的获取和实验准备的时间,学生在实验过程中需要查阅各种纸质的实验指导资料,这既耗时又可能导致信息更新的滞后性,而且纸质资料在知识传递效率和表现形式上也是大大低于多媒体互动资源的。其次,实验设置通常是静态的,不易根据不同的教学需求进行调整,限制了实验的灵活性和多样性。此外,实验监控和反馈不够及时,导致教师难以实时了解学生的实验进展和问题。因为数据的手动记录容易出错,实验数据的准确性和可靠性也难以保证。纸质实验报告的撰写和提交流程繁琐,实验资源的共享和管理也不够灵活,限制了资源的有效利用。最后,学生的自主学习能力和学术诚信难以得到有效培养和保障。
因此,提供一种网络化实验箱实时创想交互实验支持系统是本领域技术人员急需解决的问题。
发明内容
有鉴于此,本发明提供了一种网络化实验箱实时创想交互实验支持系统,通过实验箱、在线实验管理平台、仪器仪表的实时双向数据交互提高了实验教学效率和质量。
为了实现上述目的,本发明采用如下技术方案:
一种网络化实验箱实时双向交互实验支持系统,包括:实验箱、在线实验管理平台、仪器仪表和仪表通信网关,所述实验箱设置有通信客户端,所述在线实验管理平台设置有通信服务端,所述实验箱与所述在线实验管理平台通过所述通信客户端与所述通信服务端实现实时通信;所述在线管理平台与所述仪器仪表通过所述仪表通信网关实现实时通信;所述仪器仪表作为外设装置与所述实验箱连接。
优选的,所述实验箱的通信客户端与所述在线实验管理平台的通信服务端、所述仪表通信网关的通信客户端与在线实验管理平台的通信服务端均通过基于Websocket的实时双向交互实验通信协议RTBICP实现实时双向交互;所述仪表通信网关的VISA服务端与遵循标准VISA协议的仪器仪表通过基于VISA的分布式快速采集解析协议DQAPP实现实时双向交互。
优选的,基于Websocket的实时双向交互实验通信协议RTBICP定义的数据模型包括实验箱的状态、命令、响应、事件通知、实验任务;
用JSON对象表示实验箱状态,所述实验箱状态包含字段:实验箱唯一标识符、实验箱名称、实验箱总体状态、当前实验箱的配置和参数设置、传感器读数和过程变量的值;
用JSON对象表示发送给实验箱的控制命令,所述控制命令包含字段:命令标识符、目标实验箱、命令类型、携带的命令参数;
用JSON对象表示实验箱对命令的响应,所述响应包含字段:对应的请求标识符、响应代码、附带信息;
用JSON对象表示实验箱主动推送的事件通知,所述事件通知包含字段:事件类型、事件携带的数据;
用JSON对象表示实验任务,所述实验任务包含字段:实验任务编号、实验名称、实验类型、实验步骤、预期的实验结果。
优选的,基于Websocket的实时双向交互实验通信协议RTBICP使用JSON作为数据交换格式,所述数据的编码方式包括:
对于二进制数据:
1)先对数据进行Base64编码,得到ASCII字符串;
2)在JSON对象中添加一个data字段,值设置为Base64编码后的字符串;
3)接收端检测到data字段则先从Base64解码还原数据;
对于文本数据,直接在JSON对象中添加一个text字段,设置值为文本字符串;
对于图像、音视频数据,先进行编码,得到ASCII表示形式,在JSON对象中添加对应的字段,值为编码后的字符串;
对于整型、浮点型结构化数据,直接在JSON对象中添加对应的字段,并使用JSON本身支持的数字类型进行表示;
对于布尔类型数据,在JSON中布尔类型直接使用true和false来表示;
对于时间日期类型数据,使用字符串来表示日期和时间;
对于复杂的结构化数据,用JSON的对象和数组进行嵌套和组合,构建出所需的表达形式;
对于枚举类型、标识符常量等数据,在JSON中创建一个通用的数据字典、映射符号和具体值,在数据交换时通过引用字典项来表示抽象类型,使得双方数据含义保持一致。
优选的,所述基于Websocket的实时双向交互实验通信协议RTBICP包括:通信链路控制协议、数据帧控制协议、数据压缩和解压缩协议、实时加密和解密协议、实时校验和错误恢复协议、断点续传协议、多实验箱分布式并发通信管理协议。
优选的,基于VISA的分布式快速采集解析协议DQAPP包括:
采用时间戳和命令队列的机制,发送端发出的每个命令都会记录一个时间戳,并与命令本身一起存入命令队列中;
通过时间戳顺序匹配原则,当接收端发送的响应按照所述发送端发送命令的顺序返回时,将所述响应与命令队列中的相应命令匹配;
使用哈希表来根据响应匹配到的命令快速查找对应的解析函数,对所述响应进行解析;
当所述响应对应的数据量超过阈值时,使用动态缓冲区调整策略,初始分配一个基于历史数据或命令类型的缓冲区,并在采集数据超出时对缓冲区进行扩展,完成所述命令与所述响应的匹配;
所述接收端采用异步I/O操作来接收响应;
所述接收端被配置为同时接收多个发送端的响应。
优选的,所述通信链路控制协议包括:
发送端发送一个HTTP请求,请求升级到Websocket协议,若接收端收到请求后,返回一个HTTP 101Switching Protocols响应,则Websocket连接建立;
在Websocket连接建立后,发送端将数据封装在一个Websocket帧中,并发送给所述接收端,所述接收端收到所述Websocket帧后,解析所述Websocket帧,得到所述发送端发送的数据;
在Websocket通信过程中,若发生错误,则发送错误帧通知另一方;
在Websocket通信过程中,所述发送端按照预设时间间隔发送一个ping帧给所述接收端,所述接收端收到所述ping帧后,返回一个ping帧作为响应,若所述发送端在预设时间内没有收到ping帧,则判定为连接已经断开;
Websocket连接的关闭由任何一方发起,关闭的过程包括:
发起关闭的一方发送一个关闭帧给对方,收到关闭帧的一方在确认没有更多的数据要发送后,返回一个关闭帧作为对关闭的确认。
优选的,所述数据帧控制协议包括:
在WebSocket数据帧的头部,定义两个新的字段,一个字段来表示数据的类型,另一个字段来表示数据的长度;
在数据帧的负载部分,直接存储实际的数据内容;
在发送数据时,根据数据的类型和长度,动态地调整数据帧的结构。
优选的,所述实时校验和错误恢复协议包括:
在应用层将大型数据分片,并为每个分片分配一个唯一的序列号;
对每个分片使用校验算法计算校验值,并将校验值与分片一起发送;
接收端在收到每个分片后,立即计算校验值并与发送的校验值进行比较;若校验通过,则发送一个确认消息;若校验失败,则发送一个重传请求;
发送端维护一个未确认分片的列表,若在预定时间内没有收到某个分片的确认消息,则立即重传对应的分片;
并行传输多个分片,并根据网络状况动态调整并行度和分片大小;
在WebSocket连接上维护一个会话层状态,记录已发送、已确认和待重传的分片信息。
优选的,所述使用动态缓冲区调整策略,初始分配一个基于历史数据或命令类型的缓冲区,并在数据超出时进行扩展,包括:
(1)初始化环形缓冲区;
(2)数据接收:当数据开始接收时,数据被写入所述环形缓冲区的指针位置,所述环形缓冲区的指针随着数据的写入而移动;
(3)缓冲区检查:在数据写入时,检查环形缓冲区的剩余空间,若所述剩余空间小于第一预设值,则环形缓冲区的指针自动回绕到初始位置;
(4)动态扩展操作:若在数据接收过程中发现环形缓冲区小于第二预设值,则通过创建一个新的环形缓冲区,并将旧的环形缓冲区的数据复制到新的环形缓冲区中;
(5)检查和扩展速率匹配:将所述缓冲区检查和所述动态扩展操作,封装到一个单独的线程或异步任务中,来负责检查缓冲区的大小和重新分配缓冲区,所述线程或异步任务根据接收数据的通信速率,动态计算检查周期,以匹配数据接收速率的可变周期间隔来检查缓冲区的剩余空间,如果剩余空间小于第二预设值,则进行所述动态扩展操作;
(6)数据处理:当数据接收完成或达到预设量时,从所述环形缓冲区中读取数据进行处理。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种网络化实验箱实时双向交互实验支持系统,通过实验箱与在线实验管理平台的实时双向数据交互,学生可以迅速获取实验案例、指导书和多媒体实验指导资源,大大减少了准备时间和资料检索查阅时间,提高了实验教学的效率,丰富了资料的呈现形式。通过双向实时通信,在线实验管理平台远程控制实验设备,能够动态调整实验设置,根据不同的实验案例资源调整实验箱上的模块功能和初始数据、参数,提供更加丰富和多样化的实验体验。通过实时数据通信,实验箱可以实时监控与反馈,使得教师能够实时监控学生的实验过程,及时提供指导和反馈,提高实验技能,保证实验质量。实验数据的在线直接采集提高了数据的准确性和可靠性,有助于学生基于真实数据进行分析和报告编写。实验报告中的数据来自于对实验过程的直接采集,杜绝了直接抄袭别人实验报告的可能性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明的系统结构图;
图2为本发明的通信链路控制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种网络化实验箱实时双向交互实验支持系统,如图1所示,包括:实验箱、在线实验管理平台、仪器仪表、仪表通信网关,实验箱设置有通信客户端,在线实验管理平台设置有通信服务端,实验箱与在线实验管理平台通过通信客户端与通信服务端实现实时通信;在线管理平台与仪器仪表通过仪表通信网关实现实时通信;仪器仪表作为外设装置与实验箱连接,仪表通信网关可以在实验箱外独立设置也可以内置集成到实验箱中。
该系统主要是将硬件实验箱和与实验箱相连接的各种仪器仪表通过网络接入到一个在线的实验管理服务平台中,在实验过程中实验箱和仪器仪表与在线实验管理服务平台进行实时的双向数据交互,实验箱可以从平台上拉取各种实验案例、实验初始参数、实验指导书、实验多媒体指导资源、要填写的实验报告模版等辅助实验的在线电子资源。同时实验箱也可以实时采集实验中的过程数据提交到管理平台上,也可以在实验箱上在线填写实验报告实时提交到平台。管理平台也可以给实验箱主动下发各种命令,监控实验箱的状态。
在另一实施例中,实验箱的通信客户端与在线实验管理平台的通信服务端、仪表通信网关的通信客户端与在线实验管理平台的通信服务端均通过基于Websocket的实时双向交互实验通信协议RTBICP实现实时双向交互;仪表通信网关的VISA服务端与遵循标准VISA协议的仪器仪表通过基于VISA的分布式快速采集解析协议DQAPP实现实时双向交互。
该系统通过自定义的实验数据模型和高效的双向实时通信协议,将实验箱、仪器仪表与在线实验管理平台相连接,让实验箱和仪器仪表与在线实验管理平台进行控制命令和实验资源实验数据的交互。同时,该系统基于通用的VISA(Virtual InstrumentSoftware Architecture)协议进行改造,形成一个分布式快速采集解析协议,来采集各种仪器仪表的实验数据,具备良好的性能和扩展性,只要是符合VISA协议的仪器仪表均可接入本系统。
在另一实施例中,实验箱设置有通信客户端,在线实验管理平台设置有通信服务端,实验箱与在线实验管理平台通过通信客户端与通信服务端实现实验箱与在线实验管理平台实时通信;在线管理平台与仪器仪表通过仪表通信网关实现实时通信;仪器仪表作为外设装置与实验箱连接。
实验箱上的客户端通信装置负责通过直接与在线实现管理平台相连接进行通信,它采集实验箱数据,将实验过程数据、实验报告、实验箱状态实时发送到在线实验管理平台;并接收从在线实验管理平台发送到实验箱的控制命令和各种在线实验资源。
仪表通信网关设备作为仪器仪表与在线实验管理平台之间的中介,管理和路由来自多台仪器仪表的测量数据到在线实验管理平台。也负责将来自在线实验管理平台的读取测量数据的命令、参数转发给不同的仪器仪表。它主要通过扩展的VISA通信协议实时采集解析各种仪器仪表在实验过程中产生的测量数据。还包括了数据缓存、流量控制和初步处理,以优化通信效率。
在线实验管理平台上的实验通信服务装置,接收和处理来自实验箱和仪器仪表的数据。同时将控制命令、在线实验资源、实验案例、参数等数据推送给各个实验箱和仪器仪表。并提供一个用户界面,允许用户监测和控制实验箱和仪器仪表的转台。同时提供数据存储、分析和可视化功能。管理用户访问权限和实验配置。
本发明的核心是基于Websocket协议的实时双向交互实验通信协议RTBICP,(Real-Time Bidirectional Interactive Communication Protocol)和基于VISA协议的分布式快速采集解析协议DQAPP(Distributed Quick Acquisition and ParsingProtocol)。RTBICP协议的通信客户端分别由实验箱上的客户端通信装置和仪表通信网关实现,服务端由在线实验管理平台的实验通信服务装置实现。DQAPP协议的通信客户端由所有遵循VISA协议的仪器仪表本身实现,而其通信服务端由实验通信网关实现。
为了使得实验箱、网关、仪器仪表与在线实验管理平台之间实现实时双向交互,本发明设计并实现了一个新的通信协议,该协议是基于Websocket的实时双向交互实验通信协议,在实时双向交互过程中,实验箱、在试验管理平台、仪器既可以作为发送端,也可以作为接收端,例如,在实验过程中实验箱和仪器仪表与在线实验管理服务平台进行实时的双向数据交互,实验箱从平台上获取各种实验案例、实验初始参数、实验指导书、实验多媒体指导资源、要填写的实验报告模版等辅助实验的在线电子资源时,管理平台也可以给实验箱主动下发各种命令,监控实验箱的状态,实验箱作为接收端,在线实验管理平台作为发送端。同时实验箱也可以实时采集实验中的过程数据提交到管理平台上,也可以在实验箱上在线填写实验报告实时提交到平台,实验箱作为发送端,在线实验管理平台作为接收端。具体的协议描述如下:
数据模型和编码
使用JSON作为数据交换格式,以适配现有的Web生态,并提供跨平台支持和易于解析的特性。数据模型定义包括实验箱的状态、命令、响应和事件通知等。同时引入Schema版本控制,以一种URI方案表示,例如/v1/experiment/data指向版本1的数据接口。
数据模型如下:
实验箱状态,用JSON对象表示实验箱的当前状态,包含字段:实验箱唯一标识符、实验箱名称、实验箱总体状态、当前实验箱的配置和参数设置、传感器读数和过程变量的值;
控制命令,用JSON对象表示发送给实验箱的控制命令,包含字段:命令标识符、目标实验箱、命令类型、携带的命令参数;
响应,用JSON对象表示实验箱对命令的响应,包含字段:对应的请求标识符、响应代码、附带信息;
事件通知,用JSON对象表示实验箱主动推送的事件,包含字段:事件类型、事件携带的数据;
实验任务,用JSON对象表示实验任务,包含字段:实验任务编号、实验名称、实验类型、实验步骤、预期的实验结果。
实验箱和管理平台之间需要传输多种类型的数据,这些数据可通过如下编码方式封装在JSON中:
(1)二进制数据
1)先对数据进行Base64编码,得到ASCII字符串;
2)在JSON对象中添加一个data字段,值设置为Base64编码后的字符串;
3)接收端检测到data字段则先从Base64解码还原数据。
(2)文本数据
直接在JSON对象中添加一个text字段,设置值为文本字符串。
(3)图像、音视频数据
1)和二进制数据类似,先进行编码(如Base642),得到ASCII表示形式;
2)JSON对象中添加对应的字段,值为编码后的字符串。
(4)整型、浮点型等其他结构化数据
可以直接在JSON对象中添加对应的字段,并使用JSON本身支持的数字类型进行表示。
(5)布尔类型数据
在JSON中布尔类型可以直接使用true和false来表示。
(6)时间日期类型数据
JSON本身并没有内置的日期时间类型,使用字符串来表示日期和时间,常用的格式是ISO 8601标准的日期和时间格式。
(7)复杂的结构化数据
用JSON的对象和数组进行嵌套和组合,构建出所需的表达形式。例如:
嵌套对象:在一个对象中包含另一个对象;
数组嵌套:在一个数组中包含另一个数组;
对象和数组的组合:在一个对象中包含一个数组,或者在一个数组中包含多个对象。
(8)枚举类型、标识符常量等数据
在JSON中创建一个通用的数据字典,映射符号和具体值,在数据交换时通过引用字典项来表示这些抽象类型,使得双方数据含义保持一致。
在另一实施例中,为了实现实验箱、网关和在线实验管理平台之间的实时双向交互,我们设计实现了一种基于Websocket的实时双向通信协议。Websocket协议是一种在单个TCP连接上进行全双工通信的协议,它在浏览器和服务器之间建立持久连接,实现双向数据传输,使得数据可以快速地在客户端和服务器之间传输。整个通信协议由下列若干子协议组成:
(1)通信链路控制协议
1)连接建立
实验箱和在线实验管理平台之间的连接建立过程如下:
实验箱向在线实验管理平台发送一个HTTP请求,请求头中包含Upgrade:Websocket和Connection:Upgrade,表示请求升级到Websocket协议。
在线实验管理平台收到请求后,如果同意升级协议,则返回一个HTTP101Switching Protocols响应,响应头中也包含Upgrade:Websocket和Connection:Upgrade。
一旦服务器响应了HTTP 101,那么连接就被认为是一个持久的Websocket连接,接下来的所有数据都应该按照Websocket协议来传输。
2)数据传输
在Websocket连接建立后,实验箱和在线实验管理平台就可以通过这个连接进行数据传输。数据传输的过程如下:
实验箱向在线实验管理平台发送数据时,会将数据封装在一个Websocket帧中,帧的Payload data部分就是要发送的数据。
在线实验管理平台收到数据帧后,会解析帧的Payload data部分,得到实验箱发送的数据。
在线实验管理平台向实验箱发送数据也是同样的过程,只是数据的发送方和接收方相反。
3)连接关闭
Websocket连接的关闭可以由任何一方发起,关闭的过程如下:
发起关闭的一方发送一个包含关闭码和关闭原因的关闭帧给对方。
收到关闭帧的一方在确认没有更多的数据要发送后,返回一个关闭帧作为对关闭的确认。
一旦双方都发送了关闭帧,那么连接就被关闭,双方都不能再发送数据。
4)错误处理
在Websocket通信过程中,如果发生错误,例如连接断开、数据格式错误等,那么应该通过错误帧来通知对方。错误帧的Payload data部分应该包含错误码和错误描述,以便于对方了解发生了什么错误。
5)心跳检测
为了保持连接的活跃,避免因为长时间没有数据传输而被网络设备断开,我们在协议中引入了心跳检测机制。具体的做法是:实验箱每隔一定的时间(例如30秒)就发送一个ping帧给在线实验管理平台,在线实验管理平台收到ping帧后,返回一个ping帧作为响应。如果实验箱在规定的时间内没有收到ping帧,那么就认为连接已经断开。
(2)数据帧控制协议
本协议的帧结构是基于WebSocket的数据帧结构来实现优化。在WebSocket数据帧的头部,添加一个字段来表示数据的类型(例如,文本、二进制、图像等),另一个字段来表示数据的长度。在数据帧的负载部分,直接存储实际的数据内容。这样,在发送数据时,根据数据的类型和长度,动态地调整数据帧的结构,当数据类型和长度预先定义好时,接收方可以实现流式处理,即边接收边处理数据,而不需要等待所有数据到达后才开始处理。这对于大型数据传输尤其有利。同时,通过精确控制数据帧的大小,可以更有效地利用网络带宽,尤其是在网络条件变化时。发送方可以根据当前网络状况调整数据帧的大小,以避免拥塞和数据丢失。从而提高数据传输的效率。
具体实现方案如下:
1)数据帧头部:
在WebSocket数据帧的头部,我们可以定义两个新的字段:
DataType:一个枚举或整数字段,用于表示数据的类型(例如,文本、二进制、图像等)。
DataLength:一个整数字段,用于表示负载数据的长度。
2)数据帧负载:
在数据帧的负载部分,我们直接存储实际的数据内容。根据DataType字段的值,我们可以确定负载数据应该如何被处理(例如,作为文本解析、作为二进制数据处理等)。
3)动态调整数据帧:
在发送数据时,客户端或服务器会根据实际的数据内容和类型来设置DataType和DataLength字段。例如,如果发送的是文本数据,DataType会被设置为对应文本的枚举值,DataLength会被设置为文本数据的字节长度。
4)数据发送与接收:
发送方:在准备发送数据时,首先确定数据类型并计算数据长度。然后,构造数据帧头部,填充DataType和DataLength字段,并将实际数据附加到负载部分。最后,发送完整的数据帧。
接收方:在接收到数据帧时,首先解析头部的DataType和DataLength字段,以确定如何处理接下来的负载数据。然后,根据数据类型进行相应的解析或处理。
(3)数据压缩和解压缩协议
使用现有的数据压缩算法(例如,gzip、bzip2等)来进行扩展,以便嵌入到本通信协议中,实现实时的数据压缩和解压缩。在发送数据前,先将数据进行压缩,然后再发送。在接收数据后,先将数据进行解压缩,然后再处理。这样,可以在不影响数据质量的前提下,大幅度减少数据的大小,从而提高数据传输的效率。具体设计方案如下:
1)压缩算法
根据RFC 7692标准,选择Per-Message Deflate压缩扩展,这是基于Deflate算法的压缩扩展,适用于WebSocket消息。Deflate算法是一种结合了LZ77算法和Huffman编码的压缩算法,它能够有效地压缩文本和二进制数据。
2)实现数据的压缩和解压缩
在客户端和服务器端,实现压缩和解压缩的逻辑。在发送消息之前,数据将被压缩,而在接收消息后,数据将被解压缩。
3)通信链路嵌入压缩协议
在建立WebSocket连接时,在客户端和服务器端协商压缩算法。通过在WebSocket握手过程中发送适当的头部信息来实现,以指示双方支持Per-Message Deflate压缩扩展。
4)压缩数据的发送和接收
在WebSocket连接中,发送和接收数据时,需要根据协商的压缩扩展来处理数据。如果启用了压缩,发送方需要压缩数据帧的负载,接收方需要解压缩接收到的数据帧的负载。
5)优化压缩参数
根据实际的网络状况和数据特性,实时动态调整压缩算法的参数,如窗口大小和内存级别,以达到最佳的压缩效率和性能。
(4)实时加密和解密协议
基于现有的应用层数据加密算法(例如,AES、RSA等)和Websocket的传输层加解密机制,将Websocket的传输层的TLS/SSL加密结合应用层AES和RSA加密,在使用wss(WebSocket Secure)的基础上对数据进行加密和解密。这样,既保证了传输层的安全性,又保证了应用层的数据安全性,实现实时的数据加密和解密。在发送数据前,先将数据进行加密,然后再发送。在接收数据后,先将数据进行解密,然后再处理。这样,就可以在不影响数据传输效率的前提下,保证数据的安全性。
1)应用层数据加解密
为了实现适用于网络实时双向传输的数据加密和解密算法,本发明对应用层数据采用AES与RSA混合加密的方法。这种方法结合了AES的高效数据加密能力和RSA的安全密钥交换机制。以下是具体的实现步骤:
a、密钥生成与交换
服务器端:生成RSA密钥对(公钥和私钥),并将公钥发送给客户端。
客户端:生成一个随机的AES密钥(会话密钥),并使用服务器的RSA公钥加密此AES密钥,然后将加密后的AES密钥发送回服务器。
b、数据加密
客户端:使用AES会话密钥对要发送的数据进行加密,然后通过WebSocket发送加密数据。
服务器端:使用私钥解密接收到的加密AES密钥,然后使用该AES密钥解密接收到的加密数据。
c、数据解密
服务器端:接收到客户端发送的加密数据后,使用相同的AES会话密钥进行解密。
客户端:接收到服务器发送的加密数据后,使用之前生成的AES会话密钥进行解密。
2)传输层数据加解密
WebSocket协议本身支持TLS/SSL加密,即wss(WebSocket Secure)。在实现应用层数据加密和解密的同时,本发明使用wss来提供传输层的安全性,进一步提升性能和安全性。以下是具体的实现步骤:
a、使用wss进行连接:在客户端和服务器端,使用wss(而不是ws)作为WebSocket的URL模式。这样,所有的WebSocket数据帧都会在传输层进行加密和解密。
B、使用TLS/SSL证书:服务器端需要一个有效的TLS/SSL证书来提供wss服务。这个证书可以从证书颁发机构(CA)购买,也可以使用Let's Encrypt等服务生成一个免费的证书。
(5)实时校验和错误恢复协议
WebSocket协议在底层TCP协议的帮助下提供了基本的数据传输可靠性,包括数据校验和重传机制。TCP协议通过序列号、确认应答、校验和以及重传机制确保数据的正确传输。但是,在高延迟或高丢包率的网络环境下,应用层需要实现更高效的错误恢复策略,以减少等待TCP重传的时间。
本发明使用现有的数据校验算法(例如,CRC、校验和等)来结合Websocket协议,将应用层的大数据分成多个小片,然后并行传输。这样,即使某个数据片丢失,也只需要重传这个数据片,而不是整个数据。同时配合分片大小和并行度的自适应调整,实现在高延迟或高丢包率的网络环境下,实验数据的实时校验和错误恢复。在发送数据前,先计算数据的校验值,然后将校验值和数据一起发送。在接收数据后,先计算接收到的数据的校验值,然后和接收到的校验值进行比较,如果两者不一致,说明数据在传输过程中发生了错误,可以请求重新发送数据,从而实现错误的自动恢复。
在另一实施例中设计实现了一个结合了应用层的校验和WebSocket协议的特性的差错控制算法。以下是具体的实现步骤:
1)数据分片与序列化
将大型数据分片,并为每个分片分配一个唯一的序列号。这样,即使在高延迟的网络中,每个小片的传输和校验都会更快完成。
2)分片校验值计算
对每个数据分片使用CRC或其他校验算法计算校验值。将校验值与分片一起发送,确保每个分片在传输过程中的完整性。
3)确认机制
接收端在收到每个分片后,立即计算校验值并与发送的校验值进行比较。如果校验通过,则发送一个确认消息,包含分片的序列号。如果校验失败,则发送一个重传请求,也包含分片的序列号。
4)快速重传策略
发送端维护一个未确认分片的列表。如果在预定时间内没有收到某个分片的确认消息,立即重传该分片,而不是等待整个消息的超时重传。
5)并行传输与流控制
并行传输多个分片,可根据网络状况动态调整并行度和分片大小。在网络状况不佳时,减少并行度和分片大小,以减少丢包和重传的可能性。
6)会话层状态管理
在WebSocket连接上维护一个会话层状态,记录已发送、已确认和待重传的分片信息。这有助于在连接断开后快速恢复传输状态。
7)WebSocket连接优化
使用WebSocket的wss(加密)连接,确保数据传输的安全性。同时,实现心跳机制来维持连接的活跃性,并及时检测连接的健康状态。
(6)断点续传协议
在另一实施例中为了实现断点续传,本发明设计实现了一种结合WebSocket通信机制的断点续传协议。该协议允许在数据传输过程中发生中断时,能够从中断点重新开始传输,而不是从头开始,从而提高数据传输的效率和可靠性。
为了实现断点续传的功能,采取以下设计与实现方案:
1)文件分片
首先,需要将大文件分割成多个小片段(分片),每个片段可以单独传输。这样,即使在传输过程中发生中断,也只需要重新传输未成功的片段,而不是整个文件。
2)分片传输状态跟踪
服务器跟踪每个分片的传输状态,包括已经成功上传的分片和未完成的分片。这可以通过维护一个状态表来实现,记录每个分片的上传进度。
3)客户端和服务器的协议约定
客户端和服务器需要约定一个协议,用于传输分片以及传输过程中的状态信息。例如,客户端在发送分片时,需要在请求中包含分片的序号、总分片数、文件标识等信息。
4)断点续传逻辑
在客户端,需要实现断点续传的逻辑。当传输中断后,客户端可以查询服务器,获取已经上传的分片信息,然后继续上传剩余的分片。
5)数据完整性校验
为了确保数据的完整性,每个分片在传输完成后都应该进行校验。使用2.5节的实时校验协议来验证分片的完整性。如果校验失败,需要重新传输该分片。
6)WebSocket通信优化
使用WebSocket保持一个持久的连接,并实现实时的双向通信,使用wss(加密)连接,确保数据传输的安全性。同时,实现心跳机制来维持连接的活跃性,并及时检测连接的健康状态,进行文件的分片上传。
同时还在WebSocket连接中,实现如下优化策略:
流控制:根据网络状况动态调整分片的大小和传输速率。
错误处理:在传输过程中,如果遇到错误,可以立即进行重试或报告错误状态。
消息格式:定义用于断点续传协议的消息格式,用于传输分片数据以及控制信息,该格式不仅能够传输分片数据,还能够携带控制信息,如分片序号、重试请求等。
7)重连机制
在WebSocket连接意外断开时,客户端应该能够自动尝试重连,并在重连成功后继续之前的传输任务。
(7)多实验箱分布式并发通信管理协议
针对多个实验箱分布式地同时与在线实验管理平台之间进行实时双向通信,本发明进一步设计实现了一个管理协议。主要在上述协议内容基础上进一步扩充,扩充点包括:实现多实验箱的管理,增加实验箱的注册和注销机制,以及优化数据传输。
1)多实验箱管理:
在原有的数据模型基础上,增加一个字段boxes,用于存储当前在线的所有实验箱的状态。每个实验箱的状态包括box_id(实验箱编号)、box_name(实验箱名称)、status(实验箱状态码)、settings(实验箱配置参数)和messages(实验箱通知消息)等信息。当有新的实验箱上线或者已有的实验箱下线时,更新boxes字段。
2)实验箱注册和注销:
增加实验箱注册和注销的命令类型。当新的实验箱上线时,发送一个register命令,包含实验箱的box_id和box_name等信息。在线实验管理平台收到register命令后,将新的实验箱添加到boxes字段中。当实验箱下线时,发送一个unregister命令,包含实验箱的box_id。在线实验管理平台收到unregister命令后,将对应的实验箱从boxes字段中移除。
3)数据传输优化:
在原有的基于websocket的实时双向通信协议基础上,增加数据帧的优先级字段,用于控制数据帧的发送顺序。对于需要实时响应的高优先级命令,如start、stop等,应优先发送。对于低优先级的数据,如实验箱的状态更新,可以在网络带宽充足时发送。
在另一实施例中,基于各种仪器仪表通用的VISA(Virtual Instrument SoftwareArchitecture)协议,本发明设计实现了一个分布式快速采集解析实验仪器仪表测量数据的协议DQAPP(Distributed Quick Acquisition and Parsing Protocol),使得网关与多个实验仪器仪表进行通信,实时采集实验过程中与实验箱连接的仪器仪表的测量数据,该协议达到良好的性能和扩展性,只要是符合VISA协议的仪器仪表均可接入本网关。
为了实现仪器仪表和网关之间的实时双向通信,为了让任意符合VISA协议的仪器仪表均可方便地接入网关,本发明不对仪器仪表端的VISA协议做修改,而是在网关端对VISA协议进行改造,设计实现一种增强型协议,称为“仪器仪表分布式快速采集解析协议”。VISA协议是一种命令响应式的协议,返回的响应数据中并没有一个标识,来指明他返回的是什么数据,而这是基于先前发出的命令才知道返回的数据是什么,是根据命令类型来解析对应的返回数据的值的。在VISA协议的环境下,由于仪器仪表端是标准的VISA协议,他只能接受解析协议规定的命令,无法识别任何其他数据,而且返回的响应数据中除了测量数据本身,不包含任何其他信息,网关的服务端需要采用一种机制来确保响应数据能够与之前发送的命令正确匹配。
针对VISA协议的命令响应式特点。DQAPP协议在网关端采用了时间戳和命令队列的机制。每个发出的命令都会记录一个时间戳,并存入命令队列中,包含命令详情和其他元数据。网关通过顺序匹配原则,假设响应按照命令发送的顺序返回,从而将响应与命令队列中的相应命令匹配。为了处理大型数据响应,网关使用动态缓冲区调整策略,初始分配一个基于历史数据或命令类型的缓冲区,并在数据超出时进行扩展。此外,网关利用异步I/O操作和并发控制来处理多设备通信。这样就解决了VISA协议中命令和响应无法匹配的问题,确保响应数据的实时接收和正确匹配,从而提高了通信的效率、并发性和准确性。同时,由于协议增强都是在网关端实现的,所以这种协议的设计不会影响到仪器仪表的VISA协议处理,保证了与现有设备的兼容性,具体的实现方案如下:
1、时间戳和命令队列
时间戳:每当网关向仪器仪表发送一个命令时,它会记录一个时间戳。
命令队列:网关维护一个命令队列,每个命令项包含了命令本身、时间戳以及其他可能的元数据,如预期的响应类型或大小。
2、响应监听和匹配
监听响应:网关持续监听来自仪器仪表的响应。
顺序匹配:由于VISA协议通常是同步的,网关可以假设仪器仪表返回的响应是按照命令发送的顺序进行的。因此,网关可以根据命令队列中的顺序来匹配响应。
3、响应数据解析
在网关接收到响应之后,根据命令队列中的顺序来匹配,从命令队列中找到对应的命令,然后根据这个命令的类型来解析响应的数据。例如,如果命令的类型是“读取电压”,那么网关就知道响应的数据是一个电压值,可以直接将这个电压值解析出来。
在通过命令解析数据包时,采用一个哈希表结构,哈希表是键值对Key-Value的存储形式,Key是各种VISA命令,Value对应的解析函数。使用哈希表来根据响应匹配到的命令快速查找对应的解析函数,从而提高数据的解析效率。
以下是利用哈希表解析响应数据的具体步骤:
(1)定义匹配命令类型的响应数据缓存结构体;
(2)定义哈希表条目结构体;
(3)定义哈希表结构体;
(4)获取哈希表;
(5)哈希表查找解析函数;
(6)解析数据包;
3、动态缓冲区调整
标准的VISA协议,在网关端不知道仪器仪表返回的响应数据的长度,那么就会造成在网关端为接收响应数据而分配的数据缓冲区难以提前判断大小。本发明采用环形缓冲区(Ring Buffer)实现任意长度的响应数据的接收。
环形缓冲区是允许在不频繁分配内存的情况下,高效地使用内存来存储和管理数据流。具体环形缓冲区的实现如下:
(1)初始化环形缓冲区:首先,需要初始化一个足够大的环形缓冲区,这个缓冲区的大小应该基于经验值或者预估的最大可能接收数据量来设置。
(2)数据接收:当数据开始接收时,数据被写入环形缓冲区的当前位置。环形缓冲区的指针随着数据的写入而移动。
(3)缓冲区检查:在数据写入的同时,我们可以检查环形缓冲区的剩余空间。如果数据接近缓冲区的末尾,环形缓冲区的指针会自动回绕到开始位置,从而实现一个连续的循环。
(4)动态扩展:如果在数据接收过程中发现环形缓冲区即将满,将动态地扩展缓冲区。通过创建一个新的更大的环形缓冲区,并将旧缓冲区的数据复制到新缓冲区中来实现。
(5)检查和扩展速率匹配:将缓冲区检查和动态扩展操作,封装到一个单独的线程或者异步任务中,来负责检查缓冲区的大小和重新分配缓冲区。这个线程或者异步任务根据接收数据的通信速率,动态计算检查周期,以匹配数据接收速率的可变周期间隔来检查缓冲区的剩余空间,如果剩余空间不足,就立即扩大缓冲区的大小。这样,就可以保证检查和重新分配缓冲区的操作能够匹配得上接收数据的速度。
另外,为了避免频繁地重新分配缓冲区,将设置一个阈值,只有当剩余空间小于这个阈值时,才能进行重新分配。这样,就可以在一定程度上减少重新分配缓冲区的次数,从而提高效率。
(6)数据处理:当数据接收完成或达到一定量时,可以从环形缓冲区中读取数据进行处理。由于环形缓冲区是连续的,即使数据跨越了缓冲区的末尾和开始,也可以无缝地处理。
4、异步处理
异步接收:网关使用异步I/O操作来接收响应,这样即使在等待大型数据(如图像或音视频)的过程中,也不会阻塞其他命令的发送和接收。
5、多设备通信管理
在实际的实验过程中,还需要满足多个仪器仪表同时与网关进行命令-响应式的分布式通信需求,本发明在单个仪器仪表与网关进行数据通信的协议基础上,设计了一个基于增强型VISA协议的多设备通信管理协议。这个协议将在网关端进行实现,以便管理来自多个VISA兼容设备的通信。
(1)设备注册与识别
设备注册:每个仪器仪表在与网关首次通信时进行注册,网关为每个设备分配一个唯一的设备ID。
设备识别:在后续的通信中,每个仪器仪表的命令都需要携带这个设备ID,以便网关识别是哪个设备发出的命令。
(2)命令队列管理
命令队列:网关为每个仪器仪表维护一个单独的命令队列,用于管理和调度来自不同仪器仪表的命令。
命令调度:网关根据设备ID和命令的优先级进行命令调度,确保命令的有序执行。
(3)响应处理
响应匹配:网关接收到响应后,根据设备ID将响应与相应的命令匹配。
响应转发:匹配成功后,网关将响应转发给发出命令的仪器仪表的响应处理器。
(4)数据缓冲区管理
动态缓冲区:网关为每个设备动态分配不同的环形数据缓冲区,根据设备的数据类型和预期响应大小调整缓冲区大小。
缓冲区调整:如果预期响应大小未知,网关将使用一个默认大小的缓冲区,并在数据接收过程中动态调整缓冲区大小。
(5)异步通信
异步接收:网关使用异步I/O操作来接收来自仪器仪表的响应,以避免阻塞其他设备的通信。
事件通知:当响应接收完成或需要进一步处理时,网关通过事件通知机制通知相应的处理模块。
(6)错误与超时处理
错误检测:网关监控每个命令的执行状态,包括错误和超时。
重试机制:在发生错误或超时时,网关可以根据设定的策略自动重试或通知用户。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种网络化实验箱实时双向交互实验支持系统,其特征在于,包括:实验箱、在线实验管理平台、仪器仪表、仪表通信网关,所述实验箱设置有通信客户端,所述在线实验管理平台设置有通信服务端,所述实验箱与所述在线实验管理平台通过所述通信客户端与所述通信服务端实现实时通信;所述在线管理平台与所述仪器仪表通过所述仪表通信网关实现实时通信;所述仪器仪表作为外设装置与所述实验箱连接。
2.根据权利要求1所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述实验箱的通信客户端与所述在线实验管理平台的通信服务端、所述仪表通信网关的通信客户端与在线实验管理平台的通信服务端均通过基于Websocket的实时双向交互实验通信协议RTBICP实现实时双向交互;所述仪表通信网关的VISA服务端与遵循标准VISA协议的仪器仪表通过基于VISA的分布式快速采集解析协议DQAPP实现实时双向交互。
3.根据权利要求2所述的一种网络化试验箱实时双向交互实验支持系统,其特征在于,基于Websocket的实时双向交互实验通信协议RTBICP定义的数据模型包括实验箱状态、命令、响应、事件通知、实验任务;
用JSON对象表示实验箱状态,所述实验箱状态包含字段:实验箱唯一标识符、实验箱名称、实验箱总体状态、当前实验箱的配置和参数设置、传感器读数和过程变量的值;
用JSON对象表示发送给实验箱的控制命令,所述控制命令包含字段:命令标识符、目标实验箱、命令类型、携带的命令参数;
用JSON对象表示实验箱对命令的响应,所述响应包含字段:对应的请求标识符、响应代码、附带信息;
用JSON对象表示实验箱主动推送的事件通知,所述事件通知包含字段:事件类型、事件携带的数据;
用JSON对象表示实验任务,所述实验任务包含字段:实验任务编号、实验名称、实验类型、实验步骤、预期的实验结果。
4.根据权利要求2所述的一种网络化试验箱实时双向交互实验支持系统,其特征在于,基于Websocket的实时双向交互实验通信协议RTBICP使用JSON作为数据交换格式,所述数据的编码方式包括:
对于二进制数据:
1)先对数据进行Base64编码,得到ASCII字符串;
2)在JSON对象中添加一个data字段,值设置为Base64编码后的字符串;
3)接收端检测到data字段则先从Base64解码还原数据;
对于文本数据,直接在JSON对象中添加一个text字段,设置值为文本字符串;
对于图像、音视频数据,先进行编码,得到ASCII表示形式,在JSON对象中添加对应的字段,值为编码后的字符串;
对于整型、浮点型结构化数据,直接在JSON对象中添加对应的字段,并使用JSON本身支持的数字类型进行表示;
对于布尔类型数据,在JSON中布尔类型直接使用true和false来表示;
对于时间日期类型数据,使用字符串来表示日期和时间;
对于复杂的结构化数据,用JSON的对象和数组进行嵌套和组合,构建出所需的表达形式;
对于枚举类型、标识符常量等数据,在JSON中创建一个通用的数据字典、映射符号和具体值,在数据交换时通过引用字典项来表示抽象类型,使得双方数据含义保持一致。
5.根据权利要求2所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述基于Websocket的实时双向交互实验通信协议RTBICP包括:通信链路控制协议、数据帧控制协议、数据压缩和解压缩协议、实时加密和解密协议、实时校验和错误恢复协议、断点续传协议、多实验箱分布式并发通信管理协议。
6.根据权利要求2所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,基于VISA的分布式快速采集解析协议DQAPP包括:
采用时间戳和命令队列的机制,发送端发出的每个命令都会记录一个时间戳,并与命令本身一起存入命令队列中;
通过时间戳顺序匹配原则,当接收端发送的响应按照所述发送端发送命令的顺序返回时,将所述响应与命令队列中的相应命令匹配;
使用哈希表来根据响应匹配到的命令快速查找对应的解析函数,对所述响应进行解析;
当所述响应对应的数据量超过阈值时,使用动态缓冲区调整策略,初始分配一个基于历史数据或命令类型的缓冲区,并在采集数据超出时对缓冲区进行扩展,完成所述命令与所述响应的匹配;
所述接收端采用异步I/O操作来接收响应;
所述接收端被配置为同时接收多个发送端的响应。
7.根据权利要求5所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述通信链路控制协议包括:
发送端发送一个HTTP请求,请求升级到Websocket协议,若接收端收到请求后,返回一个HTTP 101Switching Protocols响应,则Websocket连接建立;
在Websocket连接建立后,发送端将数据封装在一个Websocket帧中,并发送给所述接收端,所述接收端收到所述Websocket帧后,解析所述Websocket帧,得到所述发送端发送的数据;
在Websocket通信过程中,若发生错误,则发送错误帧通知另一方;
在Websocket通信过程中,所述发送端按照预设时间间隔发送一个ping帧给所述接收端,所述接收端收到所述ping帧后,返回一个ping帧作为响应,若所述发送端在预设时间内没有收到ping帧,则判定为连接已经断开;
Websocket连接的关闭由任何一方发起,关闭的过程包括:
发起关闭的一方发送一个关闭帧给对方,收到关闭帧的一方在确认没有更多的数据要发送后,返回一个关闭帧作为对关闭的确认。
8.根据权利要求5所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述数据帧控制协议包括:
在WebSocket数据帧的头部,定义两个新的字段,一个字段来表示数据的类型,另一个字段来表示数据的长度;
在数据帧的负载部分,直接存储实际的数据内容;
在发送数据时,根据数据的类型和长度,动态地调整数据帧的结构。
9.根据权利要求5所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述实时校验和错误恢复协议包括:
在应用层将大型数据分片,并为每个分片分配一个唯一的序列号;
对每个分片使用校验算法计算校验值,并将校验值与分片一起发送;
接收端在收到每个分片后,立即计算校验值并与发送的校验值进行比较;若校验通过,则发送一个确认消息;若校验失败,则发送一个重传请求;
发送端维护一个未确认分片的列表,若在预定时间内没有收到某个分片的确认消息,则立即重传对应的分片;
并行传输多个分片,并根据网络状况动态调整并行度和分片大小;
在WebSocket连接上维护一个会话层状态,记录已发送、已确认和待重传的分片信息。
10.根据权利要求6所述的一种网络化实验箱实时双向交互实验支持系统,其特征在于,所述使用动态缓冲区调整策略,初始分配一个基于历史数据或命令类型的缓冲区,并在数据超出时进行扩展,包括:
(1)初始化环形缓冲区;
(2)数据接收:当数据开始接收时,数据被写入所述环形缓冲区的指针位置,所述环形缓冲区的指针随着数据的写入而移动;
(3)缓冲区检查:在数据写入时,检查环形缓冲区的剩余空间,若所述剩余空间小于第一预设值,则环形缓冲区的指针自动回绕到初始位置;
(4)动态扩展操作:若在数据接收过程中发现环形缓冲区小于第二预设值,则通过创建一个新的环形缓冲区,并将旧的环形缓冲区的数据复制到新的环形缓冲区中;
(5)检查和扩展速率匹配:将所述缓冲区检查和所述动态扩展操作,封装到一个单独的线程或异步任务中,来负责检查缓冲区的大小和重新分配缓冲区,所述线程或异步任务根据接收数据的通信速率,动态计算检查周期,以匹配数据接收速率的可变周期间隔来检查缓冲区的剩余空间,如果剩余空间小于第二预设值,则进行所述动态扩展操作;
(6)数据处理:当数据接收完成或达到预设量时,从所述环形缓冲区中读取数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410286571.XA CN118041845A (zh) | 2024-03-13 | 2024-03-13 | 一种网络化实验箱实时双向交互实验支持系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410286571.XA CN118041845A (zh) | 2024-03-13 | 2024-03-13 | 一种网络化实验箱实时双向交互实验支持系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118041845A true CN118041845A (zh) | 2024-05-14 |
Family
ID=90989187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410286571.XA Pending CN118041845A (zh) | 2024-03-13 | 2024-03-13 | 一种网络化实验箱实时双向交互实验支持系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118041845A (zh) |
-
2024
- 2024-03-13 CN CN202410286571.XA patent/CN118041845A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112910967B (zh) | 在不稳定网络环境中的大文件的网络传输 | |
US7966367B2 (en) | Web application execution method | |
US9516087B2 (en) | Managing data transfer using streaming protocols | |
CN106416179A (zh) | 实现扩展传输控制功能的传输加速器 | |
US8898311B2 (en) | Data communication method and information processing device | |
CN101536417B (zh) | 消除冗余连接的方法 | |
US11165843B2 (en) | Backfill of video stream | |
US20090103515A1 (en) | System and method for preserving socket connections over a wireless network | |
EP2528397B1 (en) | Method and apparatus for synchronization based on hypertext transfer protocol (http) | |
US9794354B1 (en) | System and method for communication between networked applications | |
CN110830460B (zh) | 一种连接建立方法、装置、电子设备及存储介质 | |
US20230362098A1 (en) | Rate Update Engine For Reliable Transport Protocol | |
US20220209894A1 (en) | Multi-Bit Feedback Protocol Systems and Methods | |
BR112014023248B1 (pt) | Método para transmitir dados, método para receber dados e dispositivo de comunicações | |
US10536560B2 (en) | System and method for implementing augmented object members for remote procedure call | |
CN102439935B (zh) | 媒体适配的方法和装置 | |
JP2014057149A (ja) | 通信装置、中継装置および通信方法 | |
CN118041845A (zh) | 一种网络化实验箱实时双向交互实验支持系统 | |
JP5726720B2 (ja) | Web情報取得方法および先読み代理サーバ | |
WO2015117677A1 (en) | Method and software for transmitting website content | |
CN117294390A (zh) | 基于前向纠错的数据传输方法、装置、电子设备和介质 | |
CN118077189A (zh) | 信息处理方法、装置、电子设备和计算机可读存储介质 | |
CN116074393A (zh) | 异构系统间数据通信方法、装置、电子设备和计算机介质 | |
CN114679586A (zh) | 帧内编码帧发送方法、装置、电子设备和计算机可读介质 | |
CN111770050A (zh) | 一种基于区块链技术的传感器接入及数据传输装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |