CN117459521A - 通信数据的流控传输方法及装置、主机设备、存储介质 - Google Patents

通信数据的流控传输方法及装置、主机设备、存储介质 Download PDF

Info

Publication number
CN117459521A
CN117459521A CN202311403769.3A CN202311403769A CN117459521A CN 117459521 A CN117459521 A CN 117459521A CN 202311403769 A CN202311403769 A CN 202311403769A CN 117459521 A CN117459521 A CN 117459521A
Authority
CN
China
Prior art keywords
transmission
flow control
data
file
frame
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
Application number
CN202311403769.3A
Other languages
English (en)
Inventor
叶浩城
蔡奕聪
邱裕丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Invic Software Technology Co ltd
Original Assignee
Shenzhen Invic Software Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Invic Software Technology Co ltd filed Critical Shenzhen Invic Software Technology Co ltd
Priority to CN202311403769.3A priority Critical patent/CN117459521A/zh
Publication of CN117459521A publication Critical patent/CN117459521A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例提供一种通信数据的流控传输方法及装置、主机设备,存储介质,所述方法包括:通过包括应用层、传输层、网络层和接口层的流控协议栈中应用层提供的文件传输接口获取待传输文件;其中,文件传输接口为面向用户侧的应用程序接口,网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,接口层用于向通信链路提供数据收发接口;在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;在传输阶段处于流控阶段时,基于流控协议数据格式将待传输文件封装成数据帧,将数据帧基于与目标从机群组间建立的通信链路进行流控式传输。

Description

通信数据的流控传输方法及装置、主机设备、存储介质
技术领域
本发明涉及数据传输技术领域,特别涉及一种通信数据的流控传输方法及装置、主机设备、计算机可读存储介质。
背景技术
随着网络技术的发展,人们步入了一个全新的信息时代,面对日益复杂的网络结构与逐渐增加的网络流量,越来越多的设备需要接入到网络,以方便终端管理各种各样的设备。然而,由于智能化设备的多样化及不同应用领域的特点,诸多设备被设计为并不支持某些网络传输协议,如很多嵌入式设备仅支持串口通信协议,只能一对一文件传输,比如,工业生产领域中,很多产线设备在装配组成生产线时主要考虑到其完成基本功能所需的一对一传输需求,从而这些产线设备在设计时即设计为通过端口连接入网,而随着后续智能化管理需求的提升,如需要对产线设备进行在线升级的管理时,需要将升级数据包向各产线设备逐一发送来完成,又如需要获得各产线设备的日志记录以做数据分析时,也需要逐一地从各产线设备导出其日志记录,等等,从而极大地增加了对这些设备进行集中网络化管理的难度。
发明内容
为了解决现有存在的技术问题,本发明实施例提供一种能够透传多级设备以实现多设备的集中网络化管理的通信数据的流控传输方法及装置、主机设备以及计算机可读存储介质。
本发明实施例的技术方案是这样实现的:
第一方面,提供一种通信数据的流控传输方法,包括:
通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口;
在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;
在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
第二方面,提供一种通信数据的流控传输装置,包括:
协议调度模块,用于通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口;
流控传输模块,用于在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
第三方面,提供一种主机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请任一实施例所述的通信数据的流控传输方法的步骤。
第四方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器本申请任一实施例所述的通信数据的流控传输方法的步骤。
上述实施例所提供的通信数据的流控传输方法,通过流控协议栈的架构设计,向上提供统一的文件传输接口,用户层可通过直接调用文件传输接口进行文件传输,向下提供统一的数据收发接口,将提供数据收发接口的接口层与提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式的网络层、提供对帧传输相关参数的帧头信息进行封装和解析的传输层进行分离,传输层与接口层分离,接口层独立地向通信链接提供数据收发接口,使得可通过数据收发接口适配不限于某一种通信类型的通信链路进行文件发送或接收,此外,文件传输流程可通过流控协议栈内的状态机进行控制,在需要向目标从机群组进行文件传输时,将待传输文件按照所定义的流控协议数据格式封装成数据帧,因此,可通过数据收发接口,结合采用流控方式将待传输文件封装成以目标从机群组作为接收方可统一接收和识别数据帧,基于与目标从机群组间建立的通信链路进行传输,而目标从机群组可以包括在基于端口连接的大量从机设备中选定的一个或者多个当前需要执行文件发送或接收的从机设备,如此,支持主机设备对多设备群组采用单播或广播方式来进行流控式文件传输,实现多设备的集中网络化管理。
上述实施例中,通信数据的流控传输装置、主机设备、以及计算机可读存储介质分别与对应的通信数据的流控传输方法实施例属于同一构思,从而与对应的通信数据的流控传输方法实施例具有相同的技术效果,在此不再赘述。
附图说明
图1为一实施例中流控协议栈的分层架构图;
图2为一通信数据的流控传输方法的可选应用场景图;
图3为一实施例中从机设备基于端口互联的拓扑图示意图;
图4为一实施例中通信数据的流控传输方法的流程图;
图5为一实施例中,一次文件传输流程中多个传输阶段形成的状态机示意图;
图6为一可选的具体示例中通信数据的流控传输方法的流程图;
图7为一实施例中文件传输装置的示意图;
图8为一实施例中主机设备的示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明的保护范围。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
在以下的描述中,涉及到“一些实施例”的表述,其描述了所有可能实施例的子集,但是应当理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在通信数据的网络传输中,通信类型的可选方式有很多种,发明人在研究中发现,由于不同设备间支持可选的通信类型不同,而二者之间又存在数据传输的需求的应用场景并不在少数。尤其是针对一些工业环境下诸多嵌入式设备而言,单一的嵌入式设备可能自身体积小、数据少,因而往往对其设计是通过端口连接进行数据传输,常见的接口类型可以如Uart(Universal Asynchronous Receiver/Transmitter,异步收发传输器)接口,USB接口等,总结来说,存在如下几个方面的问题:第一,目前主流的网络通信协议为以太网TCP/IP协议进行数据传输,然而对于工业环境中诸多采用端口连接的通信链路而言,并不适用。第二,目前的数据传输中,广播(Broadcast)是一种将数据包从发送方发送到网络中的所有接收方的传输方式。在广播传输中,发送方将数据包发送到广播地址,网络上的所有设备都能够接收和处理这些数据包。流控(SCTP,Stream Control Transmission Protocol)传输协议,是指是一种在网络连接两端(发送方和接收方)之间同时传输多个数据流的协议。因此,流控传输通常不支持广播方式传输,广播方式传输数据一般也不支持流控传输,从而对于工业环境中诸多采用端口连接的通信链路而言,无法实现一对多的集中网络化管理。第三,目前的传输协议均是依托于通信链路的流量带宽能力,在面对可配置通信类型的接口(串口)时,并未考虑接收方设备自身的带宽能力,从而容易出现传输丢包、出错等问题。
为了解决不同设备间支持可选的通信类型不同,而二者之间又存在数据传输的需求的应用场景中,多设备的集中网络化管理的问题,发明人提出了一种新的流控协议栈的架构设计,请参阅图1,流控协议栈的架构包括应用层、传输层、网络层和接口层,其中,流控协议栈的分层结构类比TCP/IP协议的分层结构,相对于OSI协议的七层模型进行了简化和优化。应用层,主要配置为用于按用户定义格式类型解析读取对应数据,负责管理文件数据,对文件进行字节流形式的拆解/拼接,完成数据加密、填充、解析等文件处理动作,如可包括文件管理、日志文件处理、固件文件处理、路由文件处理等文件处理功能。其中,应用层向用户侧提供统一的文件传输接口,提供用户调用以获得待传输文件后进行文件处理,文件处理可包括:在数据下发传输流程中对文件进行字节流拆解,在数据上报传输流程中对解封装后得到的文件字节流进行拼接以还原文件。网络层,主要配置为提供数据传输协议格式完成数据封装、数据帧校验等,确保数据的正确传输,如可包括43协议、Modbus协议等。接口层,主要配置为提供物数据收发接口,以完成端口管理功能。其中,网络层提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,协议管理相关参数用于负责帧内的数据内容、数据执行动作等方面的管理,如在数据下发传输流程中,根据协商得到的流控参数从应用层获取文件的字节流进行封装,将协议管理相关参数如需要协商的信息、所需要的配置信息等通过封装添加在帧头内,在数据上报传输流程中通过解封装获得字节流的对应管理相关参数以备拼接准确还原文件。传输层,主要配置为用于用户数据解析,根据功能码获取数据帧的传输数据,执行相应动作函数等,如可包括43协议解析、TLV模式解析、自定义函数等解析处理功能。其中,传输层提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,帧传输相关参数用于负责数据帧的传输,如根据协商得到的流控参数所确定的传输参数、确认数据帧接收无误管理、数据重发、接收超时等实现传输管理的相关参数。流控协议栈中,将网络层和传输层将数据管理功能和帧传输功能进行分离,并将传输层和接口层进行分离,通过接口层向外部的通信链路提供统一的数据收发接口,支持用户使用所需链路层来进行数据传输,不限于网络、端口、USB等各种通信链路的类型。
请参阅图2,为本申请实施例提供的一种通信数据的流控传输方法的可选的应用场景示意图,所述通信数据的流控传输方法实施的系统架构包括服务器10、主机设备20和从机设备30。主机设备20和从机设备30是指在具体的文件传输场景中的发送方和接收方,而并非是指二者是指不同的设备类型,需要说明的是,相同设备类型的主机设备20在一些文件传输场景中同样可以是接收方,也即作为一个从机设备,本申请所提供的流控协议栈的架构设计同时适应于主机设备20和从机设备30。其中,主机设备20通过运行实现本申请实施例所述的通信数据的流控传输方法的计算机程序,可实现从服务器10下载待传输文件后传输给指定的从机设备30,获取指定的从机设备30上传的指定类型数据并发送给服务器10等。该计算机程序的呈现形式包括但不限于各种应用程序(APP)、网页程序、小程序。在一个具体示例中,通信数据的流控传输方法对应的计算机程序是指搭载在各种软件平台中的小程序,可以方便地在各种操作系统的智能终端设备中应用,用户使用时无下载安装压力。
从机设备30可以包括各种不支持网络传输协议的嵌入式设备,多个从机设备30之间通过端口互联,通过端口连接的两个从机设备30之间可通过数据线实现数据通信。请参阅图3,为一可选示例中,多个从机设备30之间基于端口互联形成的一个从机群组的拓扑图示意图。主机设备20可通过用户在主机设备20的小程序界面中,根据多个从机设备30之间的端口连接关系进行配置得到从机群组内各从机设备之间的路由路径信息,如用户在主机设备20的小程序界面通过配置操作,设置从机设备a的端口号a1与从机设备b的端口号b1连接的信息,端口号a2与从机设备c的端口号c1连接,从机设备c的端口号c2与从机设备d的端口号d1连接的信息,如此,根据从机设备a、b、c的端口级联信息得到的路由路径信息可知,从机设备a为第一层级,即作为与主机设备20间直接数据传输,且作为主机设备20向从机群组内多个目标从机设备进行数据传输的主节点设备,主节点设备对任一从机设备的通信路径可基于路由路径信息得到,从机设备b、c为第二层级,从机设备d为第三层级。
请参阅图4,为本申请实施例提供的一种通信数据的流控传输方法的流程图,该通信数据的流控传输方法包括如下步骤。
S101,通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口。
应用层提供面向用户侧的应用程序(API)接口,用户仅需调用应用程序接口即可对用户侧进行文件的发送和接收。接口层与协议中其它层分离,向通信链路提供统一的数据收发接口,支持用户使用所需链路层来进行数据传输,不限于网络、端口、USB等各种通信链路的类型。流控协议数据格式,用于定义数据的封装格式,网络层基于统一的流控协议数据格式的标准,将应用层对待传输文件解析后得到的字节流封装成增加包含对协议管理相关参数的帧头的数据帧,以保证数据帧的准确可靠并对指定设备进行数据传输。传输层基于统一的流控协议数据格式的标准,将网络层传输过来的标准格式的数据帧进一步封装处理,增加包含帧传输相关参数的帧头信息,得到流控协议栈的协议标准下能够安全传输的自定义流控数据帧。需要说明的是,解析为与封装对应的逆操作,对于文件传输而言,可理解为发送方和接收方分别在相同的协议层内的动作,在此不做重复赘述。
S103,在一次文件传输流程中,基于状态机实时确定当前所处传输阶段。
状态机,是表示有限个状态以及能够根据控制信号在这些状态之间进行状态转移,协调相关信号动作,完成特定操作等行为的模型。将文件传输流程的规则分解为预设的多个传输阶段,设置各个传输阶段之间的状态变迁并利用状态机进行控制。
S105,在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
文件传输流程的传输阶段包括流控阶段,在流控阶段将获取到的待传输文件基于流控协议数据格式封装成数据帧后,通过数据收发接口基于通信链路进行流控式传输。需要进行文件传输的双方分别为主机设备和从机设备,目标从机群组,可以是需要接收文件的多个从机设备形成的设备群组,从机群组内可以包括原不支持某些特定网络通信协议而通过端口连接进行数据通信的从机设备。如以图3所示为例,主机设备通过获取到从机群组内各从机设备之间的路由路径信息,支持用户在从机群组中任意选定一个或同时选定多个从机设备来作为接收文件传输的对象,基于流控控制将数据帧发送给主节点设备后,由主节点设备根据选定接收文件的从机设备对应的通信路径同样采用流控方式进行发送,如此,主机设备将数据帧基于与主节点设备间的通信链路发送给主节点设备,再由主节点设备发送到选定的一个或多个从机设备,将单播方式、广播方式传输和流控传输进行了结合,对于工业环境中诸多采用端口连接的通信链路而言,便于实现一对多的集中网络化管理。
需要说明的是,这里提到的文件传输,并不限于主机设备向从机设备下发文件,也包括从机设备向主机设备上报数据,从机设备向主机设备上报数据的通信路径可采用半双工的传输方式进行。
上述实施例所提供的通信数据的流控传输方法,通过流控协议栈的架构设计,向上提供统一的文件传输接口,用户层可通过直接调用文件传输接口进行文件传输,向下提供统一的数据收发接口,将提供数据收发接口的接口层与提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式的网络层、提供对帧传输相关参数的帧头信息进行封装和解析的传输层进行分离,传输层与接口层分离,接口层独立地向通信链接提供数据收发接口,使得可通过数据收到接口适配不限于某一种通信类型的通信链路进行文件发送或接收,此外,文件传输流程可通过流控协议栈内的状态机进行控制,在需要向目标从机群组进行文件传输时,将待传输文件按照流控协议数据格式封装成数据帧,因此,可通过数据收发接口,结合采用流控方式将待传输文件封装成以目标从机群组作为接收方可统一接收和识别的数据帧,基于与目标从机群组间建立的通信链路进行传输,而目标从机群组可以包括在基于端口连接的大量从机设备中选定的一个或者多个当前需要执行文件发送或接收的从机设备,如此,支持主机设备对多设备群组采用单播或广播方式来进行流控式文件传输,实现多设备的集中网络化管理。
在一些实施例中,在所述流控阶段之前还包括协商阶段,所述方法还包括:
在所述传输阶段处于协商阶段时,与所述目标从机群组对流控参数进行协商,基于所述目标从机群组内多个从机设备共同接受的所述流控参数的取值动态确定当前流控参数;所述流控参数包括流控帧数量、流控帧间隔及流控帧长度。
文件传输流程中,在流控阶段之前设置有协商阶段。流控阶段,通过将待传输文件封装成数据帧采用流控控制的方式进行传输。流控控制是通过控制发送方发送数据的速率以与接收方的接收能力匹配,而流控参数则是指能够控制发送方发送数据的速率的相关参数。协商阶段,则是对目标从机群组内各从机设备允许接收数据发送的接收能力进行协商,以确保对多个从机设备进行流控式传输的过程中,数据发送的速率能够同时满足接收数据的多个从机设备的接收能力。其中,流控参数包括流控帧数量、流控帧间隔及流控帧长度,基于流控参数进行数据发送时,根据流控帧数量来确定一组流控的数据包内包含的数据帧的数量,也即一次连续发送的数据帧的数量,根据流控帧间隔来决定发送每一数据帧的快慢,根据流控帧大小来确定数据包的字节数。不同的从机设备接受数据传输的能力不同,主机设备通过与多个从机设备进行协商,以确定出多个从机设备均可接受的数据传输能力,以在所有从机设备可接受的数据传输能力的最大范围内,提升数据传输效率,也可最大程度地减少拥塞、数据丢失或传输错误等问题。
在一些实施例中,所述与所述目标从机群组对流控参数进行协商,基于所述目标从机群组内多个从机设备共同接受的所述流控参数的取值动态确定当前流控参数,包括:
向目标从机群组发送包含流控参数的协商数据帧;其中,所述协商数据帧为TLV格式的数据帧;
接收所述目标从机群组中从机设备分别基于响应所述协商数据帧返回的对应的协商结果,根据所述协商结果确定所述从机设备共同接受的所述流控参数的取值而动态地确定当前流控参数。
TLV(Tag LengthValue)格式是指基于TLV通讯协议进行数据封装的帧格式。其中,TLV格式的传输便于数据的规范和可拓展,但流控参数的协商也可以通过不限于TLV格式的其它自定义协议格式进行参数协商。其中,主机设备与从机设备之间对流控参数进行协商可以支持多种形式,在流控阶段之前设置协商阶段,主机设备通过与从机设备对流控参数进行协商,以确定各从机设备均可接受的流控参数取值来统一主机设备进行文件传输的速率。在一个具体示例中,可通过下发包含流控参数的默认值的协商数据帧到从机设备,当从机设备比对自身的流控参数与默认值一致时,可返回表达结果一致的响应指令到主机设备,当从机设备比对自身的流控参数与默认值不一致时,则可以按照择优选取参数的方式返回协商参数值到主机设备,协商参数值的确定方式可以是对应所述从机设备自身的流控参数与默认值相比得到的流控帧数量中较小者、流控帧间隔中较大者、流控帧长度中较小者;进一步的,主机设备接收到各从机设备返回的协商参数值,同样可以不同从机设备的协商参数值中流控帧数量中较小者、流控帧间隔中较大者、流控帧长度中较小者进行择优选取,可以理解的是,上述协商过程可以重复,直至得到各从机设备均能接受的协商结果作为当前流控参数。
通过协商动态地确定流控参数,当流控参数确定下来后,主机设备与从机设备之间的最大通信速度也就确定下来,确定最大通信速度带来的优势是:既可以避免因为主机设备发送数据帧的速度过快导致文件传输过程丢帧严重,重发次数过多的问题;又可以防止主机发送数据帧的速度太慢导致文件传输时间太长,优化传输效率。
在一些实施例中,在所述流控阶段之前还包括启动阶段,所述方法还包括:
在所述传输阶段处于启动阶段时,根据所述当前流控参数对数据传输参数进行配置;其中,所述数据传输参数包括根据所述流控帧数量确定一组流控的数据包内包含的帧数,根据所述流控帧长度确定所述数据包的字节数,根据所述流控帧间隔确定每一数据帧的发送速度。
文件传输流程中,在流控阶段之前设置有启动阶段。请参阅图5,为一次文件传输流程中多个传输阶段形成的状态机示意图,启动阶段位于协商阶段和流控阶段之间。在启动阶段,根据协商阶段动态地确定符合这些从机设备的数据传输能力的当前流控参数后,根据协商得到的当前流控参数配置本次文件传输对应的数据传输参数。其中,根据流控帧数量对数据帧进行组划分,将待传输文件的数据帧以组为单位进行传输,也即,一组流控的数据帧连续发送,当一组流控的数据帧发送成功结束后,再发送下一组流控的数据帧,如此,可减少传输过程中的错误率和重传率。
在一些实施例中,在所述传输阶段处于启动阶段时,还包括:
将所述待传输文件的预设文件信息发送给所述目标从机群组;其中,所述预设文件信息包括所述待传输文件的期望传输方向、大小、文件CRC校验码和文件类型;
在接收到所述目标从机群组根据所述预设文件信息返回的响应指令后,再进入所述流控阶段。
其中,待传输文件的期望传输方向、大小、文件CRC校验码和文件类型等均可作为协议管理相关参数,在发送方的网络层作为数据帧的帧头内信息进行封装。期望传输方向,表示当前对待传输文件的上行或下行传输的需求,根据用户在主机设备上的操作得到。在启动阶段,主机设备会将本次传输的待传输文件的期望传输方向、大小、文件CRC校验码和文件类型等预设文件信息发送给目标从机群组,待接收到目标从机群组内的各从机设备答复成功接收到此预设文件信息的响应指令后,再进入流控阶段执行将待传输文件向从机设备的发送。其中,预设文件信息用于供各从机设备在文件传输过程中,实时校对数据帧的准确性,可通过逐帧校对CRC,对校验不通过的数据帧丢弃,记录发送错误或失败的数据帧,以便于能够及时的对未成功接收的数据帧进行重发,根据用户在主机设备上的操作接收到的数据上报指令来进行指定类型数据的上报。
在一些实施例中,在所述流控阶段之后还包括查询阶段;其中,所述数据帧是以每一组流控包含的帧数进行连续发送,在一组流控的数据帧发送结束后,自动进入所述查询阶段;
在所述查询阶段内,向所述目标从机群组发送查询帧;
接收所述目标从机群组中各从机设备分别基于所述查询帧和对所述数据包进行CRC校验码比对所确定的接收失败的空洞帧序号,将所述空洞帧序号对应的数据帧进行重发;
重发结束后,再次向所述目标从机群组发送查询帧并判断当前组流控的数据帧的发送是否存在接收失败的空洞帧,直至所述目标从机群组对当前组流控的数据帧均接收成功;
返回进入流控阶段,执行下一组流控的数据帧的发送。
文件传输流程中,在流控阶段之后设置有查询阶段。将待传输文件的数据帧以组为单位进行传输,一组流控的数据帧发送后,主机设备向从机设备发送一查询帧,从机设备根据当前组的数据帧校对结果返回未成功接收到的数据帧的信息,主机设备将当前组流控中,所有从机设备未成功接收的数据帧的并集进行重发,从机设备再次校对,重复该过程直至当前组的流控的数据帧全部被从机设备成功接收,则当前组流控的数据帧发送结束。如此,对待传输文件的数据帧以组为单位进行发送和校验,数据帧的发送失败重发和校验可能会涉及多次循环,相应在流控阶段和查询阶段两个状态间多次循环,直至每一组流控的数据帧被从机设备成功接收。一组流控的数据帧发送结束后,再接着发送下一组流控的数据帧,直至整个待传输文件传输完成。需要说明的是,一组流控的传输中,可进一步引入重发终止的判断机制,当某个从机设备在重发多次后仍无法成功获取该组流控的数据帧时,主机设备可判断该对应的从机设备状态异常,将其退出当前的文件传输流程,重发次数可以是预设的固定值,通过重发终止的判断机制的引入,可以避免由于设备故障等不可预测的原因导致无限循环,确保个别设备故障的原因不会影响到其它设备的正常数据传输。
在一些实施例中,在所述流控阶段之后还包括完成阶段,所述方法还包括:
在所述传输阶段处于完成阶段时,所述目标从机群组内各从机设备返回所述待传输文件的总校验值的校对结果,根据所述校对结果确认当前所述待传输文件的传输是否完成。
文件传输流程中,在流控阶段之后设置有完成阶段。主机设备和从机设备除了在一组流控的数据帧的发送中,根据CRC校验码对是否存在失败的流控帧进行校验外,当整个待传输文件的发送完成后,将根据总的CRC校验码对待传输文件的发送进行整体校验,进一步确保文件传输的准确性。
可选的,在所述流控阶段之后还包括使能阶段,所述方法还包括:
在所述传输阶段处于使能阶段时,根据接收到的所述待传输文件的所述数据帧的数据帧解析结果,基于各数据帧对应的帧号和偏移地址还原文件,并将结果状态返回主机设备。
文件传输流程中,在流控阶段之后设置有使能阶段。文件通过封装成数据帧采用流控控制的方式进行传输的过程中,查询阶段和完成阶段的设置,了解所有从机丢失数据和异常从机,将丢失数据重新下发,提高重发效率,可多重确保文件传输的准确性,使能阶段的设置,接收方接收到数据帧后,可根据数据帧解析结果确定数据执行动作,按照数据执行动作来提取执行动作所需数据帧的序号并计算固件所需文件的偏移地址,根据偏移地址还原文件后再相应执行,通过将接收到的数据帧根据帧号和偏移地址进行还原,可再次了解所有从机丢失数据及异常从机,可进一步确保文件传输的准确性。
需要说明的是,本申请实施例提供的通信数据的流控传输方法中,各传输阶段对应的功能设置并不限于前述实施例所示,在一个文件传输流程中,基于状态机控制一个文件传输指令对应在各个传输阶段间的升级状态,且多个传输阶段可设置包括预设的相同功能模块,以确保在各个传输阶段均可实现对文件传输的管理,减少错误和提高效率。在一个可选示例中,相同功能模块主要包括如下:自动调整通信设备,是指根据从机设备对接收到数据帧的响应情况判断异常从机,对异常从机进行舍弃;接收协商帧复位,是指不同传输阶段均可根据协商参数的重新协商需求进行复位,复位后可重新回到协商阶段获得更新的流控参数;判断地址/功能码,是指根据数据帧解析结果来判断数据帧的准确性;重发管理,是指对待传输文件的重发控制;超时管理,是指待传输文件发送不成功超时的处理控制;数据上传与获取,是指从机设备可根据接收到的上报指令进行数据上报;数据收发,是指支持根据收发指令来实时收发待传输文件并进行传输管理。通过状态机控制一个文件传输指令在各个传输阶段间的升级状态时,不同传输阶段支持预设的相同功能模块执行,有利于及时发现各种文件传输中的错误,实现及时纠错、中断等数据处理动作,在文件执行之前即可判断异常,并并非要等文件执行中出错再判断出异常,以待传输文件为升级包为例,可提高升级包的准确性,节省升级时间,提高升级准确性和效率。
为了能够对通信数据的流控传输方法具有更加整体、完整的理解,请参阅图6,下面以一个具体示例进行说明,所述通信数据的流控传输方法包括如下步骤:
S21,提供流控协议栈的框架设计。
流控协议栈的分层结构类比TCP/IP协议,向上提供统一的文件传输接口,用户层只需要通过调用API接口即可进行文件的发送和接收,向下提供统一的数据收发接口,用户可在链路层实现各种形式的数据传输(包括但不限于串口,网口,WIFI等传输数据格式),同时协议内部分为两层,由网络层完成数据帧的管理(保证数据帧的准确可靠并对指定设备进行数据传输),由传输层完成数据帧传输的管理(根据解析数据结果进行数据传输过程的管理)。流控协议栈的框架设计兼容主、从机设备使用。
S22,协议调度流程的设计。
请再次参阅图5,一次文件传输流程,需要完成6个阶段:协商阶段、启动阶段、流控阶段、完成阶段、使能阶段、查询阶段,其中,查询阶段和流控阶段在基于流控控制进行数据帧发送过程中需要配合,按组并以协商的流控参数进行数据传输。不同传输阶段中,可根据通信情况将通信故障设备抛弃,对正常通信设备发送数据并校验,在完成数据传输后可通过接口查看设备升级结果。
S23,主、从设备根据上下行文件传输的需求,基于流控协议栈和协议调度流程以相应执行文件的传输。
在文件传输中,网络层可支持的功能包括:收发对应文件数据得到的字节流;流控参数的协商;接收协商帧状态复位完成复位,重新协商流控参数;流控模式数据传输;检查接收数据帧是否正确;数据传输状态上报;完成升级信号通知等功能。
传输层可支持的功能主要包括:完成整套协议的数据帧解析,包括解析协商阶段的协商数据帧,获取协商数据并对流控参数自行调整,使用协商结果对通信参数进行配置;完成数据帧超时重发;数据接收超时判断;在传输过程中识别并抛弃异常设备,正常设备的识别条件可以是用户注册及正常收发数据的设备,其它均为异常设备;记录管理文件大小,获取流控帧序号并计算固件所需文件偏移,结果状态返回通知网络层;记录未接收到的数据帧并告知网络层。
上述实施例提供的通信数据的流控传输方法,至少具备如下特点:
1、流控协议栈的设计兼容主、从设备,从而可结合广播传输和流控传输的特性,实现在群组设备中进行数据通信,支持主机设备对多设备群组采用单播或广播方式来进行流控式文件传输,实现多设备的集中网络化管理。
2、支持动态配置,可在每次运行后重新配置协议属性,基于群组设备中任一设备均可实现对群组内其它设备的可靠群发。
3、主、从机设备间可不限于网络、串口、USB等通信链路类型进行数据通信,提供主、从机之间流控参数协商机制,能够兼容所有设备的数据通信能力以最快速度传输,提高传输效率。
4、提供流控控制和查询机制,及时了解丢失数据和重发,识别并调整异常从机,提高传输准确性和传输效率。
请参阅图7,本申请实施例另一方面,还提供一种通信数据的流控传输装置,包括:协议调度模块201,用于通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口;流控传输模块202,用于在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
可选的,在所述流控阶段之前还包括协商阶段,流控传输模块202,还用于在所述传输阶段处于协商阶段时,与所述目标从机群组对流控参数进行协商,基于所述目标从机群组内多个从机设备共同接受的所述流控参数的取值动态确定当前流控参数;所述流控参数包括流控帧数量、流控帧间隔及流控帧长度。
可选的,流控传输模块202,还用于向目标从机群组发送包含流控参数的协商数据帧;其中,所述协商数据帧为TLV格式的数据帧;接收所述目标从机群组中从机设备分别基于响应所述协商数据帧返回的对应的协商结果,根据所述协商结果确定所述从机设备共同接受的所述流控参数的取值而动态地确定当前流控参数。
可选的,在所述流控阶段之前还包括启动阶段,流控传输模块202,还用于在所述传输阶段处于启动阶段时,根据所述当前流控参数对数据传输参数进行配置;其中,所述数据传输参数包括根据所述流控帧数量确定一组流控的数据包内包含的帧数,根据所述流控帧长度确定所述数据包的字节数,根据所述流控帧间隔确定每一数据帧的发送速度。
可选的,流控传输模块202,还用于将所述待传输文件的预设文件信息发送给所述目标从机群组;其中,所述预设文件信息包括所述待传输文件的期望传输方向、大小、文件CRC校验码和文件类型;在接收到所述目标从机群组根据所述预设文件信息返回的响应指令后,再进入所述流控阶段。
可选的,在所述流控阶段之后还包括查询阶段;其中,所述数据帧是以每一组流控包含的帧数进行连续发送,在一组流控的数据帧发送结束后,自动进入所述查询阶段;流控传输模块202,还用于在所述查询阶段内,向所述目标从机群组发送查询帧;接收所述目标从机群组中各从机设备分别基于所述查询帧和对所述数据包进行CRC校验码比对所确定的接收失败的空洞帧序号,将所述空洞帧序号对应的数据帧进行重发;重发结束后,再次向所述目标从机群组发送查询帧并判断当前组流控的数据帧的发送是否存在接收失败的空洞帧,直至所述目标从机群组对当前组流控的数据帧均接收成功;返回进入流控阶段,执行下一组流控的数据帧的发送。
可选的,在所述流控阶段之后还包括完成阶段,流控传输模块202,还用于在所述传输阶段处于完成阶段时,所述目标从机群组内各从机设备返回所述待传输文件的总校验值的校对结果,根据所述校对结果确认当前所述待传输文件的传输是否完成。
可选的,在所述流控阶段之后还包括使能阶段,流控传输模块202,还用于在所述传输阶段处于使能阶段时,根据接收到的所述待传输文件的所述数据帧的数据帧解析结果,基于各数据帧对应的帧号和偏移地址还原文件,并将结果状态返回主机设备。
上述实施例提供的通信数据的流控传输装置在实现文件传输过程中,仅以上述各程序模块的划分进行举例说明,在实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即可将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分方法步骤。另外,上述实施例提供的通信数据的流控传输装置与通信数据的流控传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参阅图8,本申请实施例的另一方面,还提供了一种主机设备,包括存储器211和处理器212,存储器211存储有计算机程序,计算机程序被处理器执行时,使得处理器212执行本申请上述任一实施例所提供的通信数据的流控传输方法的步骤。
本申请实施例另一方面,还提供一种存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请上述任一实施例所提供的通信数据的流控传输方法的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述计算机可读存储介质,可以是只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机、计算机,服务器,或网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。

Claims (10)

1.一种通信数据的流控传输方法,其特征在于,包括:
通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口;
在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;
在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
2.如权利要求1所述的通信数据的流控传输方法,其特征在于,在所述流控阶段之前还包括协商阶段,所述方法还包括:
在所述传输阶段处于协商阶段时,与所述目标从机群组对流控参数进行协商,基于所述目标从机群组内多个从机设备共同接受的所述流控参数的取值动态确定当前流控参数;所述流控参数包括流控帧数量、流控帧间隔及流控帧长度。
3.如权利要求2所述的通信数据的流控传输方法,其特征在于,所述与所述目标从机群组对流控参数进行协商,基于所述目标从机群组内多个从机设备共同接受的所述流控参数的取值动态确定当前流控参数,包括:
向目标从机群组发送包含流控参数的协商数据帧;其中,所述协商数据帧为TLV格式的数据帧;
接收所述目标从机群组中从机设备分别基于响应所述协商数据帧返回的对应的协商结果,根据所述协商结果确定所述从机设备共同接受的所述流控参数的取值而动态地确定当前流控参数。
4.如权利要求2所述的通信数据的流控传输方法,其特征在于,在所述流控阶段之前还包括启动阶段,所述方法还包括:
在所述传输阶段处于启动阶段时,根据所述当前流控参数对数据传输参数进行配置;其中,所述数据传输参数包括根据所述流控帧数量确定一组流控的数据包内包含的帧数,根据所述流控帧长度确定所述数据包的字节数,根据所述流控帧间隔确定每一数据帧的发送速度。
5.如权利要求4所述的通信数据的流控传输方法,其特征在于,在所述传输阶段处于启动阶段时,还包括:
将所述待传输文件的预设文件信息发送给所述目标从机群组;其中,所述预设文件信息包括所述待传输文件的期望传输方向、大小、文件CRC校验码和文件类型;
在接收到所述目标从机群组根据所述预设文件信息返回的响应指令后,再进入所述流控阶段。
6.如权利要求5所述的通信数据的流控传输方法,其特征在于,在所述流控阶段之后还包括查询阶段;其中,所述数据帧是以每一组流控包含的帧数进行连续发送,在一组流控的数据帧发送结束后,自动进入所述查询阶段;
在所述查询阶段内,向所述目标从机群组发送查询帧;
接收所述目标从机群组中各从机设备分别基于所述查询帧和对所述数据包进行CRC校验码比对所确定的接收失败的空洞帧序号,将所述空洞帧序号对应的数据帧进行重发;
重发结束后,再次向所述目标从机群组发送查询帧并判断当前组流控的数据帧的发送是否存在接收失败的空洞帧,直至所述目标从机群组对当前组流控的数据帧均接收成功;
返回进入流控阶段,执行下一组流控的数据帧的发送。
7.如权利要求1所述的通信数据的流控传输方法,其特征在于,在所述流控阶段之后还包括完成阶段,所述方法还包括:
在所述传输阶段处于完成阶段时,所述目标从机群组内各从机设备返回所述待传输文件的总校验值的校对结果,根据所述校对结果确认当前所述待传输文件的传输是否完成;和/或,
在所述流控阶段之后还包括使能阶段,所述方法还包括:
在所述传输阶段处于使能阶段时,根据接收到的所述待传输文件的所述数据帧的数据帧解析结果,基于各数据帧对应的帧号和偏移地址还原文件,并将结果状态返回主机设备。
8.一种通信数据的流控传输装置,其特征在于,包括:
协议调度模块,用于通过包括应用层、传输层、网络层和接口层的流控协议栈中所述应用层提供的文件传输接口获取待传输文件;其中,所述文件传输接口为面向用户侧的应用程序接口,所述网络层用于提供对协议管理相关参数的帧头信息进行封装和解析的流控协议数据格式,所述传输层用于提供对帧传输相关参数的帧头信息进行封装和解析的流控协议数据格式,所述接口层用于向通信链路提供数据收发接口;
流控传输模块,用于在一次文件传输流程中,基于状态机实时确定当前所处传输阶段;在所述传输阶段处于流控阶段时,基于所述流控协议数据格式将所述待传输文件封装成数据帧,将所述数据帧基于与目标从机群组间建立的通信链路进行流控式传输。
9.一种主机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序;所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8任一项所述通信数据的流控传输方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8任一项所述通信数据的流控传输方法的步骤。
CN202311403769.3A 2023-10-26 2023-10-26 通信数据的流控传输方法及装置、主机设备、存储介质 Pending CN117459521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311403769.3A CN117459521A (zh) 2023-10-26 2023-10-26 通信数据的流控传输方法及装置、主机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311403769.3A CN117459521A (zh) 2023-10-26 2023-10-26 通信数据的流控传输方法及装置、主机设备、存储介质

Publications (1)

Publication Number Publication Date
CN117459521A true CN117459521A (zh) 2024-01-26

Family

ID=89595994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311403769.3A Pending CN117459521A (zh) 2023-10-26 2023-10-26 通信数据的流控传输方法及装置、主机设备、存储介质

Country Status (1)

Country Link
CN (1) CN117459521A (zh)

Similar Documents

Publication Publication Date Title
US8369244B2 (en) Method for operating an ethernet-capable field-bus device
US9692859B2 (en) Software upgrade using layer-2 management entity messaging
CN111083161A (zh) 数据传输的处理方法及装置、物联网设备
CN112769598B (zh) 一种网络通信系统及其通信实现方法
CN110808948B (zh) 远程过程调用方法、装置及系统
CN113852644B (zh) 一种确定性网络设备识别认证装置及方法
CN112838940A (zh) 一种网络控制器框架和数据处理方法
CN113347681A (zh) 数据传输方法、装置、存储介质及电子装置
CN110430110B (zh) 一种现场总线网关及其协议转换方法
CN115174370B (zh) 一种分布式混合数据确定性传输装置及方法
CN117459521A (zh) 通信数据的流控传输方法及装置、主机设备、存储介质
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
CN114576828B (zh) 通信管理方法、分歧箱、多联机空调系统及存储介质
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
CN112019491B (zh) 一种报文处理方法及系统
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
Cisco Designing SDLC, SDLLC, and QLLC Internetworks
US20220137604A1 (en) Coordination Device and Method for Providing Control Applications via a Communication Network for Transmitting Time-Critical Data
CN101754055A (zh) 网元标识自动设置方法、标识管理服务器及代理网元
CN105991448B (zh) 一种邻居发现的方法和装置
CN117376342A (zh) 文件传输方法、装置、主机设备及系统、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination