CN112565402A - 数据传输方法、装置、设备及计算机可读存储介质 - Google Patents
数据传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112565402A CN112565402A CN202011397579.1A CN202011397579A CN112565402A CN 112565402 A CN112565402 A CN 112565402A CN 202011397579 A CN202011397579 A CN 202011397579A CN 112565402 A CN112565402 A CN 112565402A
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- destination address
- forwarding
- data transmission
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法、装置、设备及计算机可读存储介质,该方法包括步骤:获取待传输数据中的目的地址,判断目的地址是否为预存的本地地址;若目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对待传输数据进行接收的同时转发出去。本发明大大提高了数据在数据链路层传输的速度,避免给用户造成通信延迟,提高用户的体验感。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种数据传输方法、装置、设备及计算机可读存储介质。
背景技术
目前,数据在数据链路层中传播时,转发节点首先需要接收到所有的待转发的数据,再对其进行检测以判断数据是否完整,当数据完整时,再将其转发至下一个节点,这种转发模式使得数据在数据链路层中转发速度较慢,易给客户造成通信延迟,不利于业务的开展。
发明内容
本发明的主要目的在于提出一种数据传输方法、装置、设备及可读存储介质,旨在解决数据在数据链路层中转发较慢,给用户造成通信延迟的问题。
为实现上述目的,本发明提供了一种数据传输方法,所述数据传输方法包括:
获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址;
若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
若所述目的地址不是所述本地地址,则根据预存的路由表和所述目的地址确定所述待传输数据的转发路径,或将所有非传入路径确定为所述待传输数据的转发路径;
基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,所述基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
当确定转发路径之后,获取所述待传输数据的总载荷长度;
根据所述总载荷长度设定传输所述待传输数据时所需要的所述倒计数数值;
对所述待传输数据进行传输的同时按照所述倒计数数值进行倒计数。
进一步地,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之后,还包括:
若所述目的地址是所述本地地址,则接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述CRC数值与预设数值不相同,则所述待传输数据中不含有完整数据帧,从所述特殊关键词的下一个字节开始继续寻找下一个所述特殊关键词和获取下一个所述特殊关键词对应的所述总载荷长度,丢弃所述下一个字节和下一个所述特殊关键词之间的字节;
若所述CRC数值与预设数值相同,则所述待传输数据中含有完整数据帧,获取所述完整数据帧对应的业务数据。
进一步地,所述获取所述完整数据帧对应的业务数据的步骤包括:
获取所述完整数据帧的至少一个子消息;
根据所述子消息的ID分别为每个所述子消息构造虚拟业务解码器;
通过调用所述虚拟业务解码器对与所述虚拟业务解码器对应的所述子消息进行解码,得到业务数据。
进一步地,所述数据传输方法还包括:
若所述目的地址不是所述本地地址,则启动校验转发模式,接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述待传输数据含有所述完整数据帧,则基于所述转发路径将所述完整数据帧转发出去。
进一步地,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之前,还包括:
通过发送节点将所述待传输数据发送至所述本地地址对应的本地节点;
所述本地节点对所述待传输数据的所述特殊关键词进行检测,当检测到所述特殊关键词为预设关键词时,执行获取所述待传输数据中的目的地址的步骤。
此外,为实现上述目的,本发明还提供一种数据传输装置,所述数据传输装置包括:
获取模块,用于获取待传输数据中的目的地址;
判断模块,用于判断所述目的地址是否为预存的本地地址;
启动模块,用于若所述目的地址不是所述本地地址,则启动快速转发模式;
接收转发模块,用于在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
此外,为实现上述目的,本发明还提供一种数据传输设备,所述数据传输设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如上所述的数据传输方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有所述数据传输程序,所述数据传输程序被处理器执行时实现如上所述的数据传输方法的步骤。
本发明通过获取待传输数据中的目的地址,判断该目的地址是否为预存的本地地址,当目的地址不是本地地址时,启动快速转发模式在倒计数归零之前,再对待传输数据进行接收的同时转发出去,大大提高了待传输数据的转发速度,进一步地避免了给用户造成通信延迟,提高了用户的体验感。
附图说明
图1为实现本发明各个实施例一种设备的硬件结构示意图;
图2为本发明数据传输方法第一实施例的第一流程示意图;
图3为本发明数据传输方法第一实施例的第二流程示意图;
图4为本发明数据传输方法第一实施例的第三流程示意图;
图5为本发明待传输数据的结构图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种数据传输设备,参照图1,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图1即可为数据传输设备的硬件运行环境的结构示意图。本发明实施例数据传输设备可以是PC,便携计算机,服务器等设备。
如图1所示,该数据传输设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,数据传输设备还可以包括RF(Radio Frequency,射频)电路,传感器、WiFi模块等等。
本领域技术人员可以理解,图1中示出的数据传输设备结构并不构成数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据传输程序。其中,操作系统是管理和控制数据传输设备硬件和软件资源的程序,支持数据传输程序以及其它软件或程序的运行。
图1所示的数据传输设备,可用于回声的消除,用户接口1003主要用于侦测或者输出各种信息,如侦测目的地址和输出数据帧等;网络接口1004主要用于与后台服务器交互,进行通信;处理器1001可以用于调用存储器1005中存储的数据传输程序,并执行以下操作:
获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址;
若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
若所述目的地址不是所述本地地址,则根据预存的路由表和所述目的地址确定所述待传输数据的转发路径,或将所有非传入路径确定为所述待传输数据的转发路径;
基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,所述基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
当确定转发路径之后,获取所述待传输数据的总载荷长度;
根据所述总载荷长度设定传输所述待传输数据时所需要的倒计数数值;
对所述待传输数据进行传输的同时按照所述倒计数数值进行倒计数。
进一步地,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之后,处理器1001还用于调用存储器1005中存储的数据传输程序,并执行以下操作:
若所述目的地址是所述本地地址,则接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述CRC数值与预设数值不相同,则所述待传输数据中不含有完整数据帧,从所述特殊关键词的下一个字节开始继续寻找下一个所述特殊关键词和获取下一个所述特殊关键词对应的所述总载荷长度,丢弃所述下一个字节和下一个所述特殊关键词之间的字节;
若所述CRC数值与预设数值相同,则所述待传输数据中含有完整数据帧,获取所述完整数据帧对应的业务数据。
进一步地,所述获取所述完整数据帧对应的业务数据的步骤包括:
获取所述完整数据帧的至少一个子消息;
根据所述子消息的ID分别为每个所述子消息构造虚拟业务解码器;
通过调用所述虚拟业务解码器对与所述虚拟业务解码器对应的所述子消息进行解码,得到业务数据。
进一步地,所述数据传输方法还包括:
若所述目的地址不是所述本地地址,则启动校验转发模式,接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述待传输数据含有所述完整数据帧,则基于所述转发路径将所述完整数据帧转发出去。
进一步地,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之前,处理器1001还用于调用存储器1005中存储的数据传输程序,并执行以下操作:
通过发送节点将所述待传输数据发送至所述本地地址对应的本地节点;
所述本地节点对所述待传输数据的所述特殊关键词进行检测,当检测到所述特殊关键词为预设关键词时,执行获取所述待传输数据中的目的地址的步骤。
本发明通过获取待传输数据中的目的地址,判断该目的地址是否为预存的本地地址,当目的地址不是本地地址时,启动快速转发模式在倒计数归零之前,再对待传输数据进行接收的同时转发出去,大大提高了待传输数据的转发速度,进一步地避免了给用户造成通信延迟,提高了用户的体验感。
基于上述结构,提出本发明数据传输方法的各个实施例。
本发明提供一种数据传输方法。
参照图2,图2为本发明数据传输方法第一实施例的流程示意图。
在本实施例中,提供了数据传输方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中,数据传输方法包括:
步骤S100,获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址。
待传输数据是通过发起传输的节点对数据进行编码获得的,待传输数据中记录有帧头,目的地址,源地址,总载荷长度、有效载荷和校验模块。当获取到待传输数据时,即可获取待传输数据中的目的地址,该目的地址为接收并对该待传输数据进行解码的目的节点的目的地址。当前节点的地址为本地地址且当前节点预存有本地地址,当前节点接收到待传输数据后,判断待传输数据中的目的地址是否为本地地址。
步骤S200,若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
若当前节点判断待传输数据中的目的地址不是本地地址,即目的节点不是当前节点时启动快速转发模式时,开启快速转发模式,以将待传输数据转发出去。开启快速转发模式后,当前节点即可设置一个倒计数数值,并根据该倒计数数值进行倒计数,在倒计数归零之前将待传输数据转发出去。
需要说明的是,当当前节点获取到待传输数据中的目的地址时,并没有完全接收到完整的数据帧,此时当前节点处于正在接收待传输数据的过程中。
进一步地,参照图3,步骤S200还包括:
步骤S210,若所述目的地址不是所述本地地址,则根据预存的路由表和所述目的地址确定所述待传输数据的转发路径,或将所有非传入路径确定为所述待传输数据的转发路径。
当前节点判断待传输数据中的目的地址不是本地地址,即目的节点不是当前节点时,可以根据预存的路由表和目的地址确定转发路径,将待传输数据发送到与目的地址对应的非传入接口。路由表中记录了各个节点地址与非传入接口的对应关系,根据该对应关系即可确定转发路径。可通过路由表查找出该目的地址对应的非传入接口,并将待传输数据发送至该非传入接口。
可选择的,还可以将待传输数据广播式的发送到所有第二节点的非传入接口,将非传入路径均确定为转发路径,由下一个节点主动认领该待传输数据。
步骤S220,基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
当确定转发路径后,开始对待传输数据进行转发,对待传输数据进行转发的同时根据倒计数数值进行倒计数,在倒计数归零之前将待传输数据转发出去,若在倒计数归零的时候未将待传输数据完全的转发出去,即停止转发。
可以理解的是,待传输数据在未被当前节点完全接收的时候即开始了转发,也就是说当前节点的接收和转发是同时进行的。
进一步地,参照图4,步骤S220还包括,
步骤S221,当确定转发路径之后,获取所述待传输数据的总载荷长度。
启动快速转发模式后,获取待传输数据的总载荷长度,总载荷长度记录的是待传输数据的整帧的长度。
步骤S222,根据所述总载荷长度设定传输所述待传输数据时所需要的所述倒计数数值。
获取到待传输数据的总载荷长度之后,即刻根据该总载荷长度设定一个倒计数数值。设置该倒计数数值的目的在于传输数据的时候根据该倒计数数值进行倒计数,倒计数归零即刻停止对数据的传输。
需要说明的是,在一般情况下,倒计数数值的设定应满足对倒计数数值进行倒计数能够使完整的待传输数据转发出去。
步骤S223,对所述待传输数据进行传输的同时按照倒计数进行倒计数。
待传输数据转发与对倒计数数值计数是同步进行的,当待传输数据开始转发时,计数也开始,待传输数据完全的转发出去时倒计数恰能归零。当倒计数归零时,停止对待传输数据的发送。
本实施例通过获取待传输数据中的目的地址,判断该目的地址是否为本地地址,既是判断当前节点是否为目的节点,当当前节点不是目的节点时启动快速转发模式,将待传输数据快速地转发出去,在对待传输数据进行转发的同时,对倒计数数值进行计数,当倒计数归零时停止对待传输数据的转发,防止阻碍下一条待传输数据的转发,快速转发模式大大提高了待传输数据的转发速度,防止通信延迟给用户造成很大的不便,进一步地提高了用户的体验感。
进一步地,提出本发明数据传输方法的第二实施例。数据传输方法的第二实施例与数据传输方法的第一实施例的区别在于,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之后,还包括:
步骤a,若所述目的地址是所述本地地址,则接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度。
当检测到待传输数据的目的地址是本地地址时,停止对待传输数据的转发,将接收到的待传输数据进行缓存,
在缓存的待传输数据中寻找特殊关键词,特殊关键词应与预设关键词相同,预设关键词可以人为设置,再获取待传输数据的总载荷长度,总载荷长度应位于该特殊关键词的后一字节。
步骤b,采用CRC(Cyclic Redundancy Check,循环冗余校验)运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧。
依据特殊关键词后的总载荷长度找到总载荷长度对应的字节,利用CRC运算方法计算这些字节的CRC数值,计算过程在运算器中完成。根据CRC数值是否等于预设数值判断待传输数据是否含有完整的数据帧,即完整数据帧。
步骤c,若所述CRC数值与预设数值不相同,则所述待传输数据中不含有完整数据帧,从所述特殊关键词的下一个字节开始继续寻找下一个所述特殊关键词和获取下一个所述特殊关键词对应的所述总载荷长度,丢弃所述下一个字节和下一个所述特殊关键词之间的字节。
预设数值是发送节点利用CRC运算方法对总载荷长度对应的字节计算得出的,预设数值置放在总载荷长度对应的字节的后一位。
若通过CRC运算方法计算得出的CRC数值与预设数值不相等,则说明待传输数据在传输过程中出现了损坏或丢失,可以理解该待传输数据帧并不含有完整数据帧。待传输数据不含有完整数据帧的原因可能有在待传输数据传输过程中被下一条待传输数据插入,至使该待传输数据帧不完整。
接着从已经寻找到的特殊关键词的下一个字节开始继续寻找特殊关键词和该特征关键词对应的总载荷长度,并将已经寻找到的特殊关键词的下一个字节到再次寻找到的特殊关键词之间的字节丢失,包括已经寻找到的特殊关键词的下一个字节,不包括再次寻找到的特殊关键词。
步骤d,若所述CRC数值与预设数值相同,则所述待传输数据中含有完整数据帧,获取所述完整数据帧对应的业务数据。
当通过CRC运算方法计算得出的CRC数值与预设数值相等时,说明待传输数据中含有完整数据帧,且获取该完整数据帧,并对完整数据帧解码,得到完整数据帧对应的业务数据。
进一步地,步骤d中获取所述完整数据帧对应的业务数据的步骤包括:
步骤d1,获取所述完整数据帧的至少一个子消息。
当检测到待传输数据中的完整数据帧时,则采用protocol buffer解码器对第二待传输数据进行解码。
为了提升protocol buffer解码器的解码效率,以及对完整数据帧中数据的扩展需求,把完整数据帧的封装类型定义为union_message(成员函数),对于有三种设备互相连接通信的节点组中,可以存在六个union_message,且union_message可以包含一个或多个sub_message(子消息)。
protocol buffer解码器对完整数据帧的解码是按照层级处理的。首先解码获得的是union_message(成员函数),再对union_message解码后。得到的是一个或者若干个sub_message(子消息)。
步骤d2,根据所述子消息的ID分别为每个所述子消息构造虚拟业务解码器。
每个sub_message都对应一个ID(Identity document,身份标识号),需要说明的是每个sub_message对应的ID可以相同,也可以均不同。protocol buffer解码器根据一个统一的函数调用接口,未解码的sub_message,以及该sub_message对应的ID构造一个虚拟的业务解码器,以使得所有虚拟业务解码器仅在自身范围内对sub_message进行解码,而不影响其他sub_message的解码。
步骤d3,通过调用所述虚拟业务解码器对与所述虚拟业务解码器对应的所述子消息进行解码,得到业务数据。
用户通过查询ID调用与其对应的虚拟业务解码器,通过该虚拟业务解码器对该虚拟业务解码器对应的子消息进行解码,得到待传输数据。
由于每个sub_message对应一个虚拟业务解码器,所以对每个sub_message的解码都会互相独立,这种解码方式可以使得对sub_message的解码同时进行且互不干扰,有效的提高了解码的速率和准确率。
本实施例通过采用CRC运算方法计算总载荷长度对应的字节的CRC数值,并依据该CRC数值判断待传输数据中是否含有完整数据帧,当判断待传输数据不含有完整数据帧时,继续检测下一个关键词,判断下一个待传输数据是否含有完整数据帧,有效防止当对待传输数据转发出错时影响对之后接收到待传输数据是否含有完整待传输数据帧的检测,降低了资源浪费率。
进一步地,提出本发明数据传输方法的第三实施例。数据传输方法的第三实施例与数据传输方法的第一或第二实施例的区别在于,数据传输方法还包括:
步骤e,若所述目的地址不是所述本地地址,则启动校验转发模式,接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
步骤f,采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
步骤g,若所述待传输数据含有所述完整数据帧,则基于所述转发路径将所述完整数据帧转发出去。。
本实施例提供数据传输的另一种方法,,该方法与快速转发模式不同的是接收待传输数据的同时,对待传输数据进行缓存而不是转发出去。当当前节点判断待传输数据中的目的地址不是本地地址,即目的地址时可选择启动校验转发模式,校验转发模式就是当检测到待传输数据是含有完整数据帧时才将其转发至下一个节点。校验转发模式中检测待传输数据中是否含有完整数据帧的过程与第二实施例中阐述的目的节点判断待传输数据中是否含有完整数据帧的过程相同,在此不再赘述。
需要说明的是,同快速转发模式相同的是,当确定待传输数据的目的地址本不是本地地址后,也可根据目的地址确定转发路径,根据待传输数据的总载荷长度确定倒计数。当前节点在倒计数归零之前接收并缓存待传输数据。启动校验转发模式,以判断该待传输数据是否含有完整数据帧。
若该待传输数据中含有完整数据帧,则将待传输数据按照确定的转发路径转发出去;若该待传输数据不含有完整数据帧,则将不完整的缓存的待传输数据清空,以丢弃该待传输数据。
本实施例提供的数据传输方法通过对接收并缓存的的待传输数据是否含有完整数据帧进行检验,防止不完整的待传输数据转发出去,用户接收不到完整数据帧时不能使用,给用户造成不便,也减少了数据链路中传输资源的浪费。
进一步地,提出本发明数据传输方法的第四实施例。数据传输方法的第四实施例与数据传输方法的第一、第二或第三实施例的区别在于,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之前,还包括:
步骤h,通过发送节点将所述待传输数据发送至所述本地地址对应的本地节点。
数据在相互连接的设备间进行传输之前数据处于网络层,发起传输的节点及发送节点需对待传输的数据进行整体的封装。数据封装笼统的讲就是把数据映射到某个账封装协议的净荷中,形成封装协议的数据包。再将数据包编码成待传输数据发送至下一个节点,在本实施例中“下一个节点”指的就是当前节点,也是本地地址对应的本地节点。
本实施例使用protocol buffer编码器对待传输数据的数据包进行编码。编码的方式有很多种,其中,最简单的编码方式就是在数据包后面加上CRC校验字节,CRC检验字节表达的是第二实施例提到的预设数值,其作用是当数据的接收方接收到数据后进行CRC校验,以确定数据是否传输有误;如果数据传输量非常大,通过编码的方式将数据包进行压缩,并在数据包后面添加一个CRC校验字节,这样就可以发送信息量较大的数据包。
如图5所示,数据帧的结构包括帧头、待传输数据包和帧尾。帧头包括源地址和目的地址。待传输数据包包括中记录有载荷总长度,载荷总长度包括有效载荷和“0”填充,有效载荷是待传输数据包经过protocol buffer编码器编码后的压缩数据,“0”填充为了使载荷总长度为4的整数倍。帧尾是CRC校验单元,也就是差错控制信息单元。
步骤i,所述本地节点对所述待传输数据的所述特殊关键词进行检测,当检测到所述特殊关键词为预设关键词时,执行获取所述待传输数据中的目的地址的步骤。
本实施例阐述的数据传输方法是面向业务层面提出的,对于同一业务,待传输数据的数据帧头相同,当前节点即本地节点对待传输数据的帧头进行检测,以判断该待传输数据是不是本节点需要执行的业务,当待传输数据的数据帧头为本地节点预存的数据帧头时,本地节点才会接收待传输数据,否则拒绝接收该待传输数据。本地节点判断待传输数据中的数据帧头为预存帧头时,执行获取待传输数据中的目的地址,以判断本地节点是否为本地节点。
本实施例通过对待传输数据进行编码得到待传输数据包,可以将待传输的数据进行压缩,减小数据占用的空间,进一步地可以提高数据传输的速率。对待传输数据的数据帧头的检测,使得本实施例的数据传输的方法更加的面向业务层,而且若对一个待传输数据转发成功后,对相同数据帧头的待传输数据进行转发时会大大提高成功转发的概率。
此外,本发明实施例还提出一种数据传输装置,所述数据传输装置包括:
获取模块,用于获取待传输数据中的目的地址;
判断模块,用于判断所述目的地址是否为预存的本地地址;
启动模块,用于若所述目的地址不是所述本地地址,则启动快速转发模式;
接收转发模块,用于在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,所述接收转发模块还包括:
确定单元,用于若所述目的地址不是所述本地地址,则根据预存的路由表和所述目的地址确定所述待传输数据的转发路径,或将所有非传入路径确定为所述待传输数据的转发路径;
接收转发单元,用于基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
进一步地,所述接收转发单元还包括:
获取子单元,用于当确定转发路径之后,获取所述待传输数据的总载荷长度;
设定子单元,用于根据所述总载荷长度设定传输所述待传输数据时所需要的倒计数数值;
计数子单元,用于对所述待传输数据进行传输的同时按照所述倒计数数值进行倒计数。
进一步地,所述数据传输装置还包括:
接收缓存模块,用于若所述目的地址是所述本地地址,则接收并缓存所述待传输数据;
寻找模块,用于寻找所述待传输数据的特殊关键词;
所述获取模块还用于获取所述待传输数据的总载荷长度,
计算模块,用于采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值;
判断模块,用于依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
所述寻找模块还用于若所述CRC数值与预设数值不相同,则所述待传输数据中不含有完整数据帧,从所述特殊关键词的下一个字节开始继续寻找下一个所述特殊关键词;
所述获取模块还用于获取下一个所述特殊关键词对应的所述总载荷长度;
丢弃模块,用于丢弃所述下一个字节和下一个所述特殊关键词之间的字节;
所述获取模块还用于若所述CRC数值与预设数值相同,则所述待传输数据中含有完整数据帧,获取所述完整数据帧对应的业务数据。
进一步地,所述获取模块还用于获取所述完整数据帧的至少一个子消息;
所述获取模块还包括:
构造单元,用于根据所述子消息的ID分别为每个所述子消息构造虚拟业务解码器;
解码模块,用于通过调用所述虚拟业务解码器对与所述虚拟业务解码器对应的所述子消息进行解码,得到业务数据。
进一步地,所述启动模块还用于若所述目的地址不是所述本地地址,则启动校验转发模式;
所述接收缓存模块还用于接收并缓存所述待传输数据;
所述寻找模块还用于寻找所述待传输数据的特殊关键词;
所述获取模块还用于获取所述待传输数据的总载荷长度;
所述接收转发单元还用于若所述待传输数据含有所述完整数据帧,则基于所述转发路径将所述完整数据帧转发出去。
所述数据传输装置还包括:
发送模块,用于通过发送节点将所述待传输数据发送至所述本地地址对应的本地节点;
检测执行模块,用于所述本地节点对所述待传输数据的所述特殊关键词进行检测,当检测到所述特殊关键词为预设关键词时,执行获取所述待传输数据中的目的地址的步骤。
本发明所述数据传输装置实施方式与上述数据传输方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如上所述的数据传输方法的各个步骤。
需要说明的是,计算机可读存储介质可设置在数据传输设备中。
本发明计算机可读存储介质具体实施方式与上述数据传输方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据传输的方法,其特征在于,所述数据传输方法包括以下步骤:
获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址;
若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
2.如权利要求1所述的数据传输方法,其特征在于,若所述目的地址不是所述本地地址,则启动快速转发模式,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
若所述目的地址不是所述本地地址,则根据预存的路由表和所述目的地址确定所述待传输数据的转发路径,或将所有非传入路径确定为所述待传输数据的转发路径;
基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
3.如权利要求2所述的数据传输方法,其特征在于,所述基于所述转发路径,在倒计数归零之前,对所述待传输数据进行接收的同时转发出去的步骤包括:
当确定转发路径之后,获取所述待传输数据的总载荷长度;
根据所述总载荷长度设定传输所述待传输数据时所需要的所述倒计数数值;
对所述待传输数据进行传输的同时按照所述倒计数数值进行倒计数。
4.如权利要求1所述的数据传输方法,其特征在于,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之后,还包括:
若所述目的地址是所述本地地址,则接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述CRC数值与预设数值不相同,则所述待传输数据中不含有完整数据帧,从所述特殊关键词的下一个字节开始继续寻找下一个所述特殊关键词和获取下一个所述特殊关键词对应的所述总载荷长度,丢弃所述下一个字节和下一个所述特殊关键词之间的字节;
若所述CRC数值与预设数值相同,则所述待传输数据中含有完整数据帧,获取所述完整数据帧对应的业务数据。
5.如权力要求4所述的数据传输方法,其特征在于,所述获取所述完整数据帧对应的业务数据的步骤包括:
获取所述完整数据帧的至少一个子消息;
根据所述子消息的ID分别为每个所述子消息构造虚拟业务解码器;
通过调用所述虚拟业务解码器对与所述虚拟业务解码器对应的所述子消息进行解码,得到业务数据。
6.如权利要求4所述的数据传输方法,其特征在于,所述数据传输方法还包括:
若所述目的地址不是所述本地地址,则启动校验转发模式,接收并缓存所述待传输数据,并寻找所述待传输数据的特殊关键词和获取所述待传输数据的总载荷长度;
采用CRC运算方法计算所述总载荷长度对应的字节的CRC数值,依据所述CRC数值判断所述待传输数据中是否含有完整数据帧;
若所述待传输数据含有所述完整数据帧,则基于所述转发路径将所述完整数据帧转发出去。
7.如权利要求4所述的数据传输方法,其特征在于,所述获取待传输数据中的目的地址,判断所述目的地址是否为预存的本地地址的步骤之前,还包括:
通过发送节点将所述待传输数据发送至所述本地地址对应的本地节点;
所述本地节点对所述待传输数据的所述特殊关键词进行检测,当检测到所述特殊关键词为预设关键词时,执行获取所述待传输数据中的目的地址的步骤。
8.一种数据传输装置,其特征在于,所述数据传输装置包括:
获取模块,用于获取待传输数据中的目的地址;
判断模块,用于判断所述目的地址是否为预存的本地地址;
启动模块,用于若所述目的地址不是所述本地地址,则启动快速转发模式;
接收转发模块,用于在倒计数归零之前,对所述待传输数据进行接收的同时转发出去。
9.一种数据传输设备,其特征在于,所述数据传输设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如权利要求1至7中任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011397579.1A CN112565402B (zh) | 2020-12-02 | 2020-12-02 | 数据传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011397579.1A CN112565402B (zh) | 2020-12-02 | 2020-12-02 | 数据传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112565402A true CN112565402A (zh) | 2021-03-26 |
CN112565402B CN112565402B (zh) | 2022-10-28 |
Family
ID=75047664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011397579.1A Active CN112565402B (zh) | 2020-12-02 | 2020-12-02 | 数据传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112565402B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918487A (zh) * | 2021-10-22 | 2022-01-11 | 北京灵汐科技有限公司 | 数据包处理方法、数据包处理装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309849A (zh) * | 1998-02-24 | 2001-08-22 | 西加特技术有限责任公司 | 采用动态半双工保持环路的公平 |
CN102573116A (zh) * | 2012-02-07 | 2012-07-11 | 济南东之林智能软件有限公司 | 井下数据传输方法及系统 |
CN104468122A (zh) * | 2014-12-05 | 2015-03-25 | 中国航空工业集团公司第六三一研究所 | 一种通用飞行数据的加密方法 |
CN107959985A (zh) * | 2017-11-29 | 2018-04-24 | 珠海创飞芯科技有限公司 | 混合mesh网络构建方法、数据传输方法及装置 |
CN109565371A (zh) * | 2016-06-23 | 2019-04-02 | 奥兰治 | 针对marc/mamrc系统利用全双工中继器和有限反馈对数字信号的动态和选择性fd-dsdf传输 |
CN109921878A (zh) * | 2018-12-27 | 2019-06-21 | 深圳市钜桦科技有限公司 | 一种网络数据通信方法 |
CN111107022A (zh) * | 2019-12-20 | 2020-05-05 | 深圳前海微众银行股份有限公司 | 数据传输优化方法、设备及可读存储介质 |
-
2020
- 2020-12-02 CN CN202011397579.1A patent/CN112565402B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1309849A (zh) * | 1998-02-24 | 2001-08-22 | 西加特技术有限责任公司 | 采用动态半双工保持环路的公平 |
CN102573116A (zh) * | 2012-02-07 | 2012-07-11 | 济南东之林智能软件有限公司 | 井下数据传输方法及系统 |
CN104468122A (zh) * | 2014-12-05 | 2015-03-25 | 中国航空工业集团公司第六三一研究所 | 一种通用飞行数据的加密方法 |
CN109565371A (zh) * | 2016-06-23 | 2019-04-02 | 奥兰治 | 针对marc/mamrc系统利用全双工中继器和有限反馈对数字信号的动态和选择性fd-dsdf传输 |
CN107959985A (zh) * | 2017-11-29 | 2018-04-24 | 珠海创飞芯科技有限公司 | 混合mesh网络构建方法、数据传输方法及装置 |
CN109921878A (zh) * | 2018-12-27 | 2019-06-21 | 深圳市钜桦科技有限公司 | 一种网络数据通信方法 |
CN111107022A (zh) * | 2019-12-20 | 2020-05-05 | 深圳前海微众银行股份有限公司 | 数据传输优化方法、设备及可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918487A (zh) * | 2021-10-22 | 2022-01-11 | 北京灵汐科技有限公司 | 数据包处理方法、数据包处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112565402B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101806257B1 (ko) | 가입 통지를 구현하기 위한 방법 및 장치 | |
CN109117361B (zh) | 一种小程序的远程调试方法、相关设备及系统 | |
CN104468363B (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
CN104717186B (zh) | 一种在网络系统中传输数据的方法、装置及数据传输系统 | |
CN113366815B (zh) | 网络资源请求方法、装置、电子设备以及存储介质 | |
WO2021196589A1 (zh) | Mesh网络的数据传输方法、装置、网关及存储介质 | |
CN105430711B (zh) | 信息的传输方法、装置和设备 | |
JPS5836048A (ja) | 通信網システム | |
CN110191066B (zh) | 一种确定最大传输单元pmtu的方法、设备及系统 | |
US7746880B2 (en) | Method and arrangement relating to messaging | |
CN108848025B (zh) | 数据处理方法、智能网关、物联网系统 | |
US20110016190A1 (en) | Method and apparatus for realizing message service | |
JP6729918B2 (ja) | モノのインターネットにおけるsms処理方法、モビリティ管理ネットワークエレメント及びコンピュータプログラム | |
US20120079048A1 (en) | Providing remote application access using entitlements | |
KR101330900B1 (ko) | 가변 프레임 크기를 가진 링크 상에서 더 높은 데이터 레이트를 지원하는 장치 및 방법 | |
CN112565402B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
WO2023221452A1 (zh) | 报文处理系统、方法、设备和存储介质 | |
US8010103B2 (en) | Passive and active scanning in wireless network | |
CN114301576B (zh) | 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置 | |
CN114051013A (zh) | 一种通信数据传输方法及装置 | |
CN111245702B (zh) | 基于5gs的数据传输方法及装置、转发设备和upf通信设备 | |
CN109639698B (zh) | 一种数据处理方法及服务器 | |
CN103096273B (zh) | 一种上行短消息发送的方法、设备及系统 | |
KR20040008189A (ko) | 통신 시스템에서의 요구들 | |
CN114697269A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |