CN112671771B - 数据传输方法、装置、电子设备及介质 - Google Patents
数据传输方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112671771B CN112671771B CN202011551166.4A CN202011551166A CN112671771B CN 112671771 B CN112671771 B CN 112671771B CN 202011551166 A CN202011551166 A CN 202011551166A CN 112671771 B CN112671771 B CN 112671771B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- packet
- data packet
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000007175 bidirectional communication Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008521 reorganization Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 230000006854 communication Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本申请实施例公开了一种数据传输方法、装置、电子设备及介质。该方法包括:将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。上述方案能够将数据量较大的目标传输数据分为子数据包发送,再进行重组,实现大数据量的目标传输数据的有效发送和及时处理。
Description
技术领域
本申请实施例涉及数据传输技术领域,尤其涉及一种数据传输方法、装置、电子设备及介质。
背景技术
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。
由于目前通信协议的某些限制,导致无法实现某些功能或业务实现不灵活。不能支持大于4K数据包的传输,传输的数据包的数据量有限,难以满足当前数据传输的需求。
发明内容
本发明实施例提供一种数据传输方法、装置、电子设备及介质,以实现大数据量的数据包的传输。
在一个实施例中,本申请实施例提供了一种数据传输方法,该方法包括:
将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;
根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
在另一个实施例中,本申请实施例还提供了一种数据传输装置,该装置包括:
分包模块,用于将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;
数值确定模块,用于根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
数据传输模块,用于将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
在又一个实施例中,本申请实施例还提供了一种电子设备,包括:一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例任一项所述的数据传输方法。
在再一个实施例中,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例中任一项所述的数据传输方法。
本申请实施例中,将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值,从而使数据包能够基于底层传输协议成功传输,根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;从而根据传输协议中分包字段的数值确定子数据包的信息,将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组,从而还原目标传输数据为整个数据包,实现大数据量数据包的传输,并且便于数据接收端进行处理。
附图说明
图1为本发明一种实施例提供的数据传输方法的流程图;
图2为本发明一种实施例提供的通信模型示意图;
图3为本发明另一实施例提供的数据传输方法的流程图;
图4为本发明另一实施例提供的四字节对齐格式示意图;
图5为本发明一种实施例提供的数据传输装置的结构示意图;
图6为本发明一种实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明一种实施例提供的数据传输方法的流程图。本申请实施例提供的数据传输方法可适用于对数据进行传输的情况。典型的,本申请实施例适用于在目标传输数据大于单次传输数据量限制的情况。该方法具体可以由数据传输装置执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在能够实现数据传输方法的电子设备中。参见图1,本申请实施例的方法具体包括:
S110、将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值。
其中,预设数据量阈值为底层传输方式或传输介质所决定的数据长度限制。如果目标传输数据大于预设数据量阈值,则通过底层链路传输无法将目标传输数据直接传输至数据接收端。因此,需要将目标传输数据分为预设数量个子数据包,以使子数据包满足小于或等于预设数据量阈值的要求,实现数据的成功传输。
在本申请实施例中,每个子数据包的大小可以根据实施情况确定,只要满足子数据包小于或等于预设数据量阈值即可,预设数量根据每个子数据包的大小确定,每个子数据包的大小越小,预设数量越大。
S120、根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度。
示例性的,子数据包的格式如表1所示:
表1
其中,Header为头文件,其中包括传输协议,传输协议中包括分包字段,用于确定子数据包的个数和数据长度,以便于后续对子数据包进行重组。PDU为协议数据单元,其中为子数据包的数据。PDU格式如表2所示。
表2
其中,URI为统一资源标志符,用于标识PDU数据的业务类型。Date为PDU数据,Signature为签名数据,可以采用MAC签名算法进行签名。
针对各子数据包,根据子数据包的分包信息,设置传输协议中分包字段的数值,例如数据长度、是否还有后续子数据包、子数据包相对于第一个子数据包的偏移量等。根据传输协议中分包字段的数值,从而能够确定子数据包是否已传输完成,以及目标传输数据分成的全部子数据包的数据长度等,以便进一步根据上述信息对子数据包进行重组。
S130、将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
示例性的,将各子数据包依次发送至数据接收端,接收端接收到子数据包后,对传输协议中的分包字段进行解析,确定子数据包是否传输完成,以及子数据包相对于第一个子数据包的偏移量等,并根据解析出的数据,以及最大数据量阈值,对预设数量个子数据包进行重组。重组后的子数据包的总数据量小于或等于最大数据量阈值。在本申请实施例中,最大数据阈值可以为为232字节,也就是传输协议中设置的数据长度为32bits。
本申请实施例中,将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值,从而使数据包能够基于底层传输协议成功传输,根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;从而根据传输协议中分包字段的数值确定子数据包的信息,将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组,从而还原目标传输数据为整个数据包,实现大数据量数据包的传输,并且便于数据接收端进行处理。
本申请实施例的通信模型如图2所示,其中,Device1为设备1,Device2为设备2,设备1和设备2可以进行双向通信,可以是设备1为数据发送端,设备2为数据接收端,也可以是设备2为数据发送端,设备1为数据接收端,数据发送端和数据传输端的协议格式相同。无论哪一设备为数据发送端哪一设备为数据接收端,本申请实施例中的数据传输方法均适用。在图2中,业务API主要接收目标传输数据,业务PDU确定目标传输数据的业务类型,封装PDU数据,并进行签名。传输层对目标传输数据进行分包,设置协议,蓝牙链路进行数据传输。需要说明的是,这里的传输方式不限于蓝牙传输,同样可以用于其他非蓝牙设备之间的通信,并不局限于某一个具体的应用场景。
图3为本发明另一实施例提供的数据传输方法的流程图。本申请实施例为对上述实施例的进一步优化,未在本申请实施例中详细描述的细节详见上述实施例。参见图3,本申请实施例提供的数据传输方法可以包括:
S210、将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值。
S220、若子数据包为预设数量个子数据包中的最后一个,则将所述分包字段中分包标志的数值设置为第一数值,否则,将所述分包字段中的分包标志的数值设置为第二数值。
示例性的,本申请实施例中的传输协议的协议结构可以如表3所示:
表3
其中,传输协议中各字段的四字节对齐格式如图4所示。传输协议详解如表4所示。
表4
在本申请实施例中,分包标志即为传输协议中的字段MF,如果当前子数据包为最后一个子数据包,则MF设置为第一数值,例如为0,如果当前子数据包不是最后一个子数据包,也就是还有后续的子数据包,则MF设置为第二数值,例如为1。
S230、确定子数据包的起始字节距离第一个子数据包起始字节的偏移字节数。
在本申请实施例中,偏移量的数值即为传输协议中的字段Fragment Offset,用于确定当前子数据包的起始字节距第一个子数据包起始字节的偏移字节数。
S240、根据所述偏移字节数,确定所述分包字段中偏移量的数值。
示例性的,可以设置偏移量的数值的一个单位代表8个字节,也就是偏移字节数为偏移量的数值乘以8。
S250、将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
在本申请实施例中,将所述第一个子数据包至最后一个子数据包进行重组,包括:根据最后一个子数据包的偏移量的数值,以及最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;或者,根据第一个子数据包至最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;根据所述目标传输数据的数据长度,对所述第一个子数据包至最后一个子数据包进行重组。将所述第一个子数据包至最后一个子数据包进行重组,包括:根据最后一个子数据包的偏移量的数值,以及最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;或者,根据第一个子数据包至最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;根据所述目标传输数据的数据长度,对所述第一个子数据包至最后一个子数据包进行重组。
示例性的,如果数据接收端接收到第一个子数据包,也就是检测到FragmentOffset为0的子数据包。并且数据接收端接收到最后一个子数据包,也就是检测到MF为0的子数据包,则说明子数据包传输完成,此时对第一个子数据包至最后一个子数据包进行重组。具体的,在子数据包重组时,需要确定整个数据包的数据长度,从而根据整个数据包的数据长度对接收到的子数据包定位查找进行组合。整个数据包即为目标传输数据。整个数据包的数据长度确定方式可以为:将最后一个子数据包的偏移量数值,加上最后一个子数据包的数据长度,或者将每个子数据包的数据长度相加。
本申请实施例,通过设置分包标志以及偏移量,从而使数据接收端能够根据分包标志以及偏移量准确地确定第一个子数据包、最后一个子数据包、子数据包是否已传输完成,以及整个数据包的长度等,从而及时对子数据包进行重组,得到整个数据包。
在本申请实施例中,所述传输协议中的分包字段还包括连接标识;相应地,所述方法还包括:针对不同的客户端,生成不同的连接标识,用于所述数据接收端根据所述连接标识对发送目标传输数据的客户端进行辨别。
示例性的,连接标识即为传输协议中字段Connection Id,该字段由数据接收端统一分批,或者由数据发送端随机生成。由于一个设备中可能存在多个客户端,因此可以针对各客户端,生成不同的Connection Id,从而使接收端确定目标传输数据是由哪一个客户端发送,实现发送端的精细化识别。
在本申请实施例中,所述传输协议中的分包字段还包括源数据包事务号和目的数据包事务号;相应地,所述方法还包括:若数据发送端和数据接收端双向通信,则对所述源数据包事务号和所述目的数据包事务号进行分别独立设置。
示例性的,当数据发送端发送目标传输数据时,针对每个子数据包,设置源数据包事务号,以对子数据包进行标识,源数据包事务号随着子数据包的数量依次递增,当子数据包重发时,源数据包事务号不变。如果数据发送端和数据接收端双向通信,则发送的源数据包事务号和回复的源数据包事务号分开设置,独立维护,以保持子数据包顺序清楚。
本申请实施例的方案,能够支持多路连接,可以实现完整的双向对等通信,数据发送端和数据接收端每个数据包的格式统一,支持数据包乱序,并且支持大数据量传输(数据最大~=4G)。
图5为本发明一种实施例提供的数据传输装置的结构示意图。该装置可适用于对数据进行传输的情况。典型的,本申请实施例适用于在目标传输数据大于单次传输数据量限制的情况。该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备中。参见图5,该装置具体包括:
分包模块310,用于将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;
数值确定模块320,用于根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
数据传输模块330,用于将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
在本申请实施例中,所述最大数据量阈值为2^32字节。
在本申请实施例中,所述数值确定模块320,包括:
第一设置单元,用于若子数据包为预设数量个子数据包中的最后一个,则将所述分包字段中分包标志的数值设置为第一数值;
第二设置单元,用于否则,将所述分包字段中的分包标志的数值设置为第二数值。
在本申请实施例中,所述数值确定模块320,包括:
偏移字节数确定单元,用于确定子数据包的起始字节距离第一个子数据包起始字节的偏移字节数;
偏移量确定单元,用于根据所述偏移字节数,确定所述分包字段中偏移量的数值。
在本申请实施例中,所述装置还包括:
第一子数据包确定单元,用于若检测到存在子数据包对应的偏移量的数值为零,则确定该子数据包为第一个子数据包;
第二子数据包确定单元,用于若检测到存在子数据包对应的分包标志的数值为第一数值时,则确定该子数据包为最后一个子数据包;
重组单元,用于将所述第一个子数据包至最后一个子数据包进行重组。
在本申请实施例中,所述重组单元,具体用于:
根据最后一个子数据包的偏移量的数值,以及最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;或者,根据第一个子数据包至最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;
根据所述目标传输数据的数据长度,对所述第一个子数据包至最后一个子数据包进行重组。
在本申请实施例中,所述传输协议中的分包字段还包括连接标识;
相应地,所述装置还包括:
连接标识生成模块,用于针对不同的客户端,生成不同的连接标识,用于所述数据接收端根据所述连接标识对发送目标传输数据的客户端进行辨别。
在本申请实施例中,所述传输协议中的分包字段还包括源数据包事务号和目的数据包事务号;
相应地,所述装置还包括:
若数据发送端和数据接收端双向通信,则对所述源数据包事务号和所述目的数据包事务号进行分别独立设置。
本申请实施例所提供的数据传输装置可执行本申请任意实施例所提供的数据传输方法,具备执行方法相应的功能模块和有益效果。
图6为本发明一种实施例提供的电子设备的结构示意图。图6示出了适于用来实现本申请实施例的示例性电子设备412的框图。图6显示的电子设备412仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,电子设备412可以包括:一个或多个处理器416;存储器428,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器416执行,使得所述一个或多个处理器416实现本申请实施例所提供的数据传输方法,包括:
将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;
根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
电子设备412的组件可以包括但不限于:一个或者多个处理器或者处理器416,存储器428,连接不同设备组件(包括存储器428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,处理型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备412典型地包括多种计算机设备可读存储介质。这些存储介质可以是任何能够被电子设备412访问的可用存储介质,包括易失性和非易失性存储介质,可移动的和不可移动的存储介质。
存储器428可以包括易失性存储器形式的计算机设备可读存储介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机设备存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁存储介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光存储介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据存储介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图6中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID设备、磁带驱动器以及数据备份存储设备等。
处理器416通过运行存储在存储器428中的多个程序中其他程序的至少一个,从而执行各种功能应用以及数据处理,例如实现本申请实施例所提供的一种数据传输方法。
本发明一种实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行数据传输方法,包括:
将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;
根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的存储介质的任意组合。计算机可读存储介质可以是计算机可读信号存储介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的设备、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形存储介质,该程序可以被指令执行设备、装置或者器件使用或者与其结合使用。
计算机可读的信号存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号存储介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行设备、装置或者器件使用或者与其结合使用的程序。
计算机可读存储介质上包含的程序代码可以用任何适当的存储介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (6)
1.一种数据传输方法,其特征在于,所述方法包括:
将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;其中,所述预设数据量阈值为底层传输方式或传输介质所决定的数据长度限制;
根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组;
其中,所述根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组的过程包括:
若检测到存在子数据包对应的偏移量的数值为零,则确定该子数据包为第一个子数据包;
若检测到存在子数据包对应的分包标志的数值为第一数值时,则确定该子数据包为最后一个子数据包;
根据最后一个子数据包的偏移量的数值,以及最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;或者,根据第一个子数据包至最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;
根据所述目标传输数据的数据长度,对所述第一个子数据包至最后一个子数据包进行重组;
其中,所述传输协议中的分包字段还包括连接标识;
相应地,所述方法还包括:
针对不同的客户端,生成不同的连接标识,用于所述数据接收端根据所述连接标识对发送目标传输数据的客户端进行辨别;其中,所述连接标识由数据发送端随机生成;
其中,所述传输协议中的分包字段还包括源数据包事务号和目的数据包事务号;
相应地,所述方法还包括:
若数据发送端和数据接收端双向通信,则对所述源数据包事务号和所述目的数据包事务号进行分别独立设置;
其中,所述源数据包事务号随子数据包的数量依次递增,当所述子数据包重发时,所述源数据包事务号不变;
其中,所述数据发送端和所述数据接收端独立维护和管理各自的事务号;若所述数据发送端和所述数据接收端双向通信,则每端的发送的源数据包事务号和回复的源数据包事务号单独分开,独立维护。
2.根据权利要求1所述的方法,其特征在于,根据所述预设数量个子数据包,确定传输协议中分包字段的数值,包括:
若子数据包为预设数量个子数据包中的最后一个,则将所述分包字段中分包标志的数值设置为第一数值;
否则,将所述分包字段中的分包标志的数值设置为第二数值。
3.根据权利要求1所述的方法,其特征在于,根据所述预设数量个子数据包,确定传输协议中分包字段的数值,包括:
确定子数据包的起始字节距离第一个子数据包起始字节的偏移字节数;
根据所述偏移字节数,确定所述分包字段中偏移量的数值。
4.一种数据传输装置,其特征在于,所述装置包括:
分包模块,用于将目标传输数据分为预设数量个子数据包,其中所述目标传输数据的数据量大于预设数据量阈值;其中,所述预设数据量阈值为底层传输方式或传输介质所决定的数据长度限制;
数值确定模块,用于根据所述预设数量个子数据包,确定传输协议中分包字段的数值;其中,所述分包字段的数值用于确定子数据包的个数和数据长度;
数据传输模块,用于将携带有传输协议的预设数量个子数据包发送至数据接收端,以使数据接收端根据传输协议中分包字段的数值以及最大数据量阈值,对所述预设数量个子数据包进行重组;
第一子数据包确定单元,用于若检测到存在子数据包对应的偏移量的数值为零,则确定该子数据包为第一个子数据包;
第二子数据包确定单元,用于若检测到存在子数据包对应的分包标志的数值为第一数值时,则确定该子数据包为最后一个子数据包;
重组单元,用于根据最后一个子数据包的偏移量的数值,以及最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;或者,根据第一个子数据包至最后一个子数据包的数据长度,确定所述目标传输数据的数据长度;根据所述目标传输数据的数据长度,对所述第一个子数据包至最后一个子数据包进行重组;
其中,所述传输协议中的分包字段还包括连接标识;
相应地,所述装置还包括:
连接标识生成模块,用于针对不同的客户端,生成不同的连接标识,用于所述数据接收端根据所述连接标识对发送目标传输数据的客户端进行辨别;其中,所述连接标识由数据发送端随机生成;
其中,所述传输协议中的分包字段还包括源数据包事务号和目的数据包事务号;
相应地,所述装置还包括:
若数据发送端和数据接收端双向通信,则对所述源数据包事务号和所述目的数据包事务号进行分别独立设置;
其中,所述连接标识由所述数据接收端统一分配或者由所述数据发送端随机生成;所述源数据包事务号随子数据包的数量依次递增,当所述子数据包重发时,所述源数据包事务号不变;
其中,所述数据发送端和所述数据接收端独立维护和管理各自的事务号;若所述数据发送端和所述数据接收端双向通信,则每端的发送的源数据包事务号和回复的源数据包事务号单独分开,独立维护。
5.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一项所述的数据传输方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551166.4A CN112671771B (zh) | 2020-12-24 | 2020-12-24 | 数据传输方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551166.4A CN112671771B (zh) | 2020-12-24 | 2020-12-24 | 数据传输方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671771A CN112671771A (zh) | 2021-04-16 |
CN112671771B true CN112671771B (zh) | 2024-01-19 |
Family
ID=75409968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551166.4A Active CN112671771B (zh) | 2020-12-24 | 2020-12-24 | 数据传输方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671771B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113141409A (zh) * | 2021-04-28 | 2021-07-20 | 深圳希施玛数据科技有限公司 | 一种数据传输方法、装置、终端设备及可读存储介质 |
CN115774753A (zh) * | 2021-09-09 | 2023-03-10 | 华为技术有限公司 | 数据同步方法及设备 |
CN114390096A (zh) * | 2021-12-29 | 2022-04-22 | 中国电信股份有限公司 | 一种基于NB-IoT的数据传输方法、设备及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200408234A (en) * | 2002-11-12 | 2004-05-16 | Inst Information Industry | QoS router for effectively processing fragmented packets and method thereof |
JP2006013911A (ja) * | 2004-06-25 | 2006-01-12 | Nippon Telegr & Teleph Corp <Ntt> | ストリームデータ転送方法、装置、プログラム、および記録媒体 |
CN101729542A (zh) * | 2009-11-26 | 2010-06-09 | 上海大学 | 基于网络数据包的多协议信息解析的系统 |
CN102428742A (zh) * | 2009-05-20 | 2012-04-25 | 高通股份有限公司 | 事务管理 |
JP2015104033A (ja) * | 2013-11-27 | 2015-06-04 | シャープ株式会社 | ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム |
CN106210091A (zh) * | 2016-07-18 | 2016-12-07 | 百融(北京)金融信息服务股份有限公司 | 标识生成和管理方法及系统 |
CN107342861A (zh) * | 2017-07-14 | 2017-11-10 | 银联商务有限公司 | 一种数据处理方法、装置及系统 |
CN109861916A (zh) * | 2018-10-31 | 2019-06-07 | 深圳向云科技有限公司 | 一种数据处理方法及相关设备 |
-
2020
- 2020-12-24 CN CN202011551166.4A patent/CN112671771B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200408234A (en) * | 2002-11-12 | 2004-05-16 | Inst Information Industry | QoS router for effectively processing fragmented packets and method thereof |
JP2006013911A (ja) * | 2004-06-25 | 2006-01-12 | Nippon Telegr & Teleph Corp <Ntt> | ストリームデータ転送方法、装置、プログラム、および記録媒体 |
CN102428742A (zh) * | 2009-05-20 | 2012-04-25 | 高通股份有限公司 | 事务管理 |
CN101729542A (zh) * | 2009-11-26 | 2010-06-09 | 上海大学 | 基于网络数据包的多协议信息解析的系统 |
JP2015104033A (ja) * | 2013-11-27 | 2015-06-04 | シャープ株式会社 | ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム |
CN106210091A (zh) * | 2016-07-18 | 2016-12-07 | 百融(北京)金融信息服务股份有限公司 | 标识生成和管理方法及系统 |
CN107342861A (zh) * | 2017-07-14 | 2017-11-10 | 银联商务有限公司 | 一种数据处理方法、装置及系统 |
CN109861916A (zh) * | 2018-10-31 | 2019-06-07 | 深圳向云科技有限公司 | 一种数据处理方法及相关设备 |
Non-Patent Citations (3)
Title |
---|
Updated Specification of the IPv4 ID Field;J. Touch等;《IETF 》;20130228;全文 * |
卢晓丽、等.《计算机网络基础与实践》.北京理工大学出版社,2020,第208-209页. * |
吴功宜、等.《计算机网络技术教程 自顶向下分析与设计方法 第2版》.机械工业出版社,2020,182-184. * |
Also Published As
Publication number | Publication date |
---|---|
CN112671771A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112671771B (zh) | 数据传输方法、装置、电子设备及介质 | |
US8009672B2 (en) | Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections | |
WO2020236274A1 (en) | System and method for facilitating efficient event notification management for a network interface controller (nic) | |
US7412488B2 (en) | Setting up a delegated TCP connection for hardware-optimized processing | |
US7580406B2 (en) | Remote direct memory access segment generation by a network controller | |
US8180928B2 (en) | Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney | |
US6321269B1 (en) | Optimized performance for transaction-oriented communications using stream-based network protocols | |
US6697366B1 (en) | Ethernet memory management system and methods for operation thereof | |
US20040013117A1 (en) | Method and apparatus for zero-copy receive buffer management | |
US20230118176A1 (en) | Data transmission method and apparatus, computer-readable storage medium, electronic device, and computer program product | |
US20060174058A1 (en) | Recirculation buffer for semantic processor | |
US20060271680A1 (en) | Method For Transmitting Window Probe Packets | |
CN110581812A (zh) | 一种数据报文的处理方法和装置 | |
US6819681B1 (en) | Systems and methods for predicting data fields in layered protocols | |
US7773620B2 (en) | Method, system, and program for overrun identification | |
US20050283545A1 (en) | Method and system for supporting write operations with CRC for iSCSI and iSCSI chimney | |
US20070130364A1 (en) | Techniques to determine an integrity validation value | |
WO2020063501A1 (zh) | 传输确认报文的方法和通信设备 | |
US20040240388A1 (en) | System and method for dynamic assignment of timers in a network transport engine | |
CN109600203B (zh) | 一种sdap pdu中携带重映射节点包序列号的方法 | |
US7787497B1 (en) | System for grouping attributes in packets in a radius protocol | |
CN116567657A (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
CN106060158B (zh) | 一种判断目标设备的状态的方法和装置 | |
CN107888341B (zh) | 一种数据传输方法及装置 | |
CN117062102A (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 |