CN113890852A - 数据发送方法、装置、设备及介质 - Google Patents
数据发送方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113890852A CN113890852A CN202110974597.XA CN202110974597A CN113890852A CN 113890852 A CN113890852 A CN 113890852A CN 202110974597 A CN202110974597 A CN 202110974597A CN 113890852 A CN113890852 A CN 113890852A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- data packet
- receiving end
- sent
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Abstract
本发明实施例提供了一种数据发送方法,属于通信技术领域,旨在提高数据传输的效率,所述方法包括:确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;将所述至少一个待发送数据包发送给所述接收端。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据发送方法、装置、设备及介质。
背景技术
相关技术中,需要在多个设备之间进行视频数据、图像数据、文件等数据的传输(例如,需要将数据从发送端传输到目的终端),用户往往需要更高的数据传输效率,以达到数据的快速传输。
其中,发送端和目的终端可以位于不同的网络。一方面,在发送端和目的终端所处网络之间布设网闸的情况下,相关技术中,未考虑网闸对数据包的要求,导致网闸设备接收到的数据包超过一定大小时,网闸对数据包的摆渡效率低下,而使得大量数据累积在网闸处,导致目的终端不能及时收到数据因而不能及时进行数据处理。另一方面,在发送端和目的终端之间未布设网闸的情况下,在目的终端所处的网络与发送端所处的网络之间存在性能差异时,发送端一次发送的数据过多也会导致发送端发送的部分数据拥堵在目的终端所处的网络中,使得目的终端不能及时收到数据因而不能及时进行数据处理。为此,相关技术通过硬件升级提升接收端的数据处理能力,但硬件成本一般都比较高,且硬件升级周期长,数据处理能力受硬件瓶颈的限制。此外,接收端的数据处理能力不足的问题只在数据传输的高峰时段才会出现,硬件升级的收益并不明显。
发明内容
鉴于上述问题,提出了本发明实施例的一种数据发送方法、装置、设备及介质,以便克服上述问题或者至少部分地解决上述问题。
为了解决上述问题,本发明的第一方面,公开了一种数据发送方法,所述方法包括:
确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;
根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;
将所述至少一个待发送数据包发送给所述接收端。
可选地,所述组包条件包括第一组包条件和第二组包条件,其中,所述第一组包条件和所述第二组包条件中的一项根据所述直接接收端确定,另一项根据所述间接接收端确定。
可选地,所述根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包,包括:
数据组包步骤:将所述多条数据中的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,或直至所述多条数据中不存在所述待组包数据;所述待组包数据为所述多条数据中尚未加入任何数据包的数据;
将当前数据包作为一个待发送数据包;
其中,若所述多条数据中存在待组包数据,将空的数据包作为新的当前数据包,重复所述数据组包步骤。
可选地,所述组包条件包括第一组包条件和第二组包条件;所述对所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,包括:
将所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述第一组包条件或第二组包条件。
可选地,所述组包条件包括第一组包条件和第二组包条件;所述根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包,包括:
若存在待组包数据,从所述多条数据中取出当前待组包数据;所述当前待组包数据为所述多条数据中尚未加入任何数据包的待组包数据中的一条数据;
判断加入当前待组包数据后当前数据包的第一参数值是否满足第一组包条件;
如果满足,将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
如果不满足,判断加入当前待组包数据后当前数据包的第二参数值是否满足第二组包条件;
如果满足,则将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
否则,重新执行所述若存在待组包数据,从多条数据中取出当前待组包数据的步骤;
若不存在待组包数据,将当前数据包作为一个待发送数据包。
可选地,所述组包条件包括第一组包参数对应的第一组包条件和第二组包参数对应的第二组包条件;所述方法还包括:
在所述多条数据的数据类型为第一类型的情况下,将所述第一组包参数确定为最优字节数,将所述第二组包参数确定为最大数据条数;
在所述多条数据的数据类型为第二类型的情况下,将所述第一组包参数确定为最大数据条数,将所述第二组包参数确定为最优字节数;
其中,所述最优字节数对应的第一组包条件,是根据所述接收端所能接收的单个数据包的最优总字节数确定的;所述最大数据条数对应的第二组包条件,是根据所述接收端所能接收的单个数据包的最大总数据条数确定的。
可选地,所述直接接收端为网闸,所述间接接收端为视图库;所述将所述至少一个待发送数据包发送给所述接收端,包括:
确定与所述直接接收端所处的网络适配的通信协议;
按照所述通信协议,将所述至少一个待发送数据包发送给所述直接接收端,以使所述直接接收端将接收到的待发送数据包发送给所述间接接收端。
可选地,将所述至少一个待发送数据包发送给所述接收端,包括:
每得到一个待发送数据包,生成针对该待发送数据包的单包发送请求,基于所述单包发送请求,将得到的一个待发送数据包发送给所述接收端;或,
生成与待发送数据包集合中各待发送数据包一一对应的单包发送请求,基于各所述单包发送请求,将各待发送数据包发送给所述接收端,其中,所述待发送数据包集合包括所述至少一个待发送数据包。
可选地,所述直接接收端为网闸,所述间接接收端为视图库;所述方法还包括:
获取针对所述直接接收端和/或所述间接接收端所能接收的单个数据包的参数值;
根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定所述组包条件。
本发明实施例的第二方面,公开了一种数据发送装置,所述装置包括:
数据集合确定模块,用于确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;
组包模块,用于根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;
发送模块,用于将所述至少一个待发送数据包发送给所述接收端。
本发明实施例的第三方面,还公开了一种电子设备,包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如第一方面实施例所述的数据发送方法。
本发明实施例的第四方面,还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明第一方面实施例所述的数据发送方法。
本发明实施例包括以下优点:
本申请根据直接接收端和/或间接接收端所能接收的单个数据包的参数值确定出组包条件,按照组包条件将待发送数据集合中待发送给接收端的多条数据进行组包,得到待发送数据包,这样,待发送数据包的参数满足组包条件,也即满足包括直接接收端和/或间接接收端在内的整个数据链路对单个数据包的参数要求,使得发送端发送给接收端的数据包是适配接收端的数据处理能力的,从而保证在不进行硬件升级的情况下即可使直接接收端和/或间接接收端能够对接收到的数据进行及时处理,提高了接收端处理数据的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种数据发送方法的实施环境图;
图2是本发明实施例中的一种数据发送方法的步骤流程图;
图3是本发明实施中一种数据发送方法的操作流程示意图;
图4是本发明实施中的一种数据组包的步骤流程图;
图5是本发明实施中的以待发送的数据为视频数据为例的数据组包的步骤流程图;
图6是本发明实施中一种数据发送装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(SLAM)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
在上述各个领域中,需要应用到数据传输技术,一般而言,数据传输需要在多个设备之间进行音视频流数据、图像数据的传输,基于上述各个领域快速高效的业务需求,往往需要更高的数据传输效率,以达到数据的快速传输。
为此,本申请实施例提供了一种数据发送方法,下面对本申请实施例提供的数据发送方法及其实施环境进行说明。
参照图1所示,示出了本申请实施例的数据发送方法的实施环境图,如图1所示,示出了两种实施环境。
其中,如实施环境A所示,发送端和目的终端可以位于不同的网络,例如,发送端所处的网络可以是第一网络,而目的终端所处的网络可以是第二网络,其中,第一网络和第二网络的保密等级不同,且两者通过网闸隔离。发送端发送的数据需要经由网闸传输给目的终端。此种情况下,网闸便可以称之为直接接收端,而目的终端可以称为间接接收端。数据传输效率便受到网闸(直接接收端)和目的终端(间接接收端)的数据传输能力的共同影响。
其中,如实施环境B所示,发送端和目的终端可以位于不同的网络,例如,发送端所处的网络可以是目的终端所处网络的下级网络,此种情况下,可以理解为是发送端需要向位于上级网络的目的终端上传数据,此种情况下,目的终端即为本实施例所述的直接接收端,数据传输效率便受到目的终端的数据传输能力的影响。
其中,无论是实施环境A还是实施环境B,发送端发送的数据均能直接或间接被传输给目的终端,数据传输效率受数据传输链路上各设备的影响。下面,结合图1,对本申请实施例的数据发送方法进行介绍。参照图2,图2示出了本申请实施例的数据发送方法的步骤流程,该数据发送方法具体可以应用于发送端,该数据发送方法包括以下步骤:
步骤S201:确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据。
其中,接收端包括直接接收端和/或间接接收端。
本申请具有直接接收端和/或间接接收端,其中,在数据传输链路中,若数据不需要经由其他设备中转,便可以直接到达目的终端,则此种情况下,目的终端为直接接收端;若数据需要经由其他设备中转才能到达目的终端,则其他设备称为直接接收端,而目的终端称为间接接收端。可理解的是,当接收端包括间接接收端时,其也必然包括直接接收端,间接接收端的数量可多于一个。
如图1所示,在实施环境A中,网闸便可以称为直接接收端,目的终端便可以称为间接接收端,在实施环境B中,目的终端便可以称为直接接收端。需要说明的是,上述的目的终端是数据需要最终到达的终端,例如,数据A需要由发送端传送给终端B处理,则终端B称为目的终端。
本实施例中,待发送的数据可以是来自外部传输给发送端的数据,也可以是发送端自己采集的数据。待发送数据集合中的数据可以是实时数据或非实时数据,其中,实时数据可以是指实时采集的视频数据、图像数据等。此种情况下,发送端可以将实时采集的数据实时传输给目的终端,以供目的终端处理。
其中,待发送数据集合中的多条数据各自的大小可以是不同的,进一步,待发送数据集合中的多条数据可以按照采集时间或进入待发送数据集合时间的先后顺序排列,对多条数据进行发送时,也可以按照排序先后进行发送。
步骤S202:根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包。
其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的。
本实施例中,组包条件可以是预先配置的,其可以根据直接接收端和/或间接接收端所能接收的单个数据包的参数值确定。具体地,该参数值可以是指单个数据包的大小,或者,单个数据包中包含的数据条数的数量,用于描述数据包的大小的上限。为保证数据发送效率,发送端以数据包的形式对数据进行发送。若数据包过小,则发送效率低;若数据包过大,超出接收端的处理能力,也会导致数据传输效率低。
本实施例中,可以根据单个数据包的参数值确定组包条件,例如,将单个数据包的数据大小的上限作为组包条件,或者,将单个数据包中数据条数的上限作为组包条件,又或者,同时将单个数据包的数据大小的上限以及数据包中数据条数的上限作为组包条件。
其中,组包条件可以反映接收端能接收的单个数据包的最优总字节数和/或最大总数据条数。其中,如上所述,接收端可以是直接接收端和/或间接接收端。
其中,组包条件由直接接收端和/或间接接收端决定,具体的,由直接接收端和/或间接接收端中作为瓶颈的一方决定,也可由二者共同决定。例如,直接接收端能够接收的单个数据包的最大总数据条数是500条,间接接收端能够接收的单个数据包的最大总数据条数是400条,则组包条件中的最大总数据条数要求为400条。再例如,直接接收端能够接收的单个数据包的最优总字节数是1000k、即直接接收端在单个数据包中总字节数为1000k时对数据包处理效率最高,间接接收端能够接收的单个数据包的最优总字节数是800k、即间接接收端在单个数据包中总字节数为800k时对数据包处理效率最高,则可兼顾二者性能,将组包条件中的最优总字节数设置为900k。再例如,直接接收端能够接收的单个数据包的最大总数据条数是500条、对最优总字节数无要求,间接接收端能够接收的单个数据包的最优总字节数是800k,对最大总数据条数无要求,则将组包条件中的最大总数据条数设置为500条,最优总字节数设置为800k。
具体实现时,发送端可以按照组包条件对多条数据进行组包,得到满足组包条件的待发送数据包。其中,对多条数据进行组包时,在部分数据组合后得到的组合数据包未满足组包条件的情况下,可以从一条数据中拆分出部分数据合并到组合数据包中,从而得到满足组包条件的待发送数据包。
通过组包便可以得到至少一个待发送数据包,其中,至少一个待发送数据包可以是满足组包条件的数据包,当然,在一些实际情况中,至少一个待发送数据包中可以允许个别待发送数据包不满足组包条件。无论何种情况,得到的至少一个待发送数据包中的大部分数据包满足组包条件,即可以匹配接收端的处理性能要求。
步骤S203:将所述至少一个待发送数据包发送给所述接收端。
本实施例中,由于至少一个待发送数据包可以是符合接收端的数据传输性能的数据包,则可以将多个待发送数据包发送给接收端。在一种情况下,若接收端仅包括直接接收端,例如是上级网络的目的终端,则在将多个待发送数据包发送给目的终端时,发送给目的终端的每个待发送数据包均是符合直接接收端的数据传输性能的,如此,避免了由于请求数据包过大,目的终端不能及时处理,而引起的数据拥堵在网络中导致数据传输效率低的问题。在又一种情况下,若接收端包括直接接收端和间接接收端,例如,包括目的终端和目的终端所在网络设置的网闸,则在将多个待发送数据包发送给网闸时,每个待发送数据包均是符合网闸的数据传输性能的,如此,避免了由于请求数据包过大导致数据大量堆积在网闸处,不能及时发送给目的终端的问题。
下面,以实施环境A和实施环境B为例,对本申请实施方案的优点予以示例性说明:
其中,以待发送数据为实时采集的视频数据为例,相关技术中,发送端是实时发送视频数据的,即以视频流的形式将实时采集的视频数据经由网闸发送给目的终端。此种情况下,发送给网闸的视频流会因同一时间传输的音视频过大或过多而拥堵在网闸处,因而不能及时发送给目的终端。
而采用本申请实施例的技术方案,可以将一段时间内要发送的实时视频数据作为待发送数据集合,对待发送的多条数据按照网闸的数据传输能力,比如,按照网闸单次接收的数据包的大小或数据的数量,对多条数据进行重新组包,从而得到满足网闸单次接收的数据包的大小或数量的待发送数据包,即这些待发送数据包是符合网闸的传输处理能力的,使得网闸能够快速转发这些数据包,而减少待发送数据包拥堵在网闸处的概率,从而使得待发送数据包能及时快速被转发到目的终端,以使目的终端可以及时处理数据,提高了目的终端处理数据的效率。
以上仅为方便理解,以在实施环境A中实时传输视频数据为例,通过与相关技术的对比,说明了本申请的技术方案的优点。实际中,在实施环境B中本申请技术方案所能达到的优点可以参照实施环境A所述,并且传输实时视频数据和传输已录制好的视频数据、以及其他类型的数据,均可以采用本申请的数据发送方法,也均能达到数据及时传输的技术目的。
可见,采用本申请实施例的技术方案至少可以达到以下效果:
第一、避免数据传输的拥堵,提高数据传输的效率。
由于按照组包条件,对待发送数据集合中待发送的多条数据进行重新组包,这样,重新组包后得到的待发送数据包的参数适配接收端(直接接收端或间接接收端)接收单个数据包的要求,使得发送端发送出去的数据包是适配接收端的数据传输能力的,从而接收端可以及时处理待发送数据包,避免数据包拥堵在网络中的问题,进而提高了数据传输的效率和接收端处理数据的效率。
第二、提高了目的终端进行业务处理的实时性。
由于发送端发送出去的数据包是适配接收端的数据传输能力的,则无论接收端是直接接收端还是间接接收端,均能及时接收到待发送数据包,从而可以对待发送数据包及时处理,降低业务处理的时延,提高业务处理的实时性。例如,目的终端对发送的实时视频中的人脸进行识别时,可以降低人脸识别的时延,提高人脸识别实时性。
第三、提高了发送端发送数据的合理性。
由于发送端根据接收端能接收的单个数据包参数值,对相应数量的数据进行组包并发送,避免了发送端一次发送的数据过多,提高了发送端发送数据的合理性;且发送端是根据接收端的接收性能(接收端能接收的单个数据包参数值)进行数据发送的,发送端执行的数据发送的过程与接收端所处的实际数据接收场景适配,扩展了整个数据发送过程的适用场景。
第四、实现了对网络带宽的充分利用。
由于发送端发送出去的绝大部分待发送数据包均是符合组包条件的,如此,在网络中传输的多个待发送数据包的大小均衡,避免了在网络中传输数据的过程中,一段时间发生的数据包较大时导致网络带宽不足,另一段时间发送的数据包较小,网口带宽又未充分利用的问题,从而在数据传输的过程中充分利用了网络带宽,避免网络资源的浪费。
第五、降低设备硬件成本。
由于可以将待发送的多条数据按照接收端的数据传输能力进行重新组包,因而,本实施例的数据发送方法能够灵活的根据设备的传输性能进行合理的配置,以达到效率最优的数据传输效果,能够灵活的根据实施环境的传输情况,进行合理的配置,不存在硬件传输瓶颈,降低了硬件成本,可以适应相对较复杂的跨网环境。
第六、可以提升在数据传输链路上的整体数据传输效率。
由于根据直接接收端和/或间接接收端所能接收的单个数据包的参数值确定出组包条件,按照组包条件将待发送数据集合中待发送给接收端的多条数据进行组包,得到待发送数据包,这样,待发送数据包的参数满足组包条件,也即满足包括直接接收端和/或间接接收端在内的整个数据链路对单个数据包的参数要求,使得发送端发送给接收端的数据包是适配接收端的数据处理能力的,从而保证在不进行硬件升级的情况下即可使直接接收端和/或间接接收端能够对接收到的数据进行及时处理,提高了接收端处理数据的效率。
下面,分三个部分对本申请实施例涉及的组包条件的确定、数据组包的过程以及数据发送的过程,分别进行介绍。
1.1组包条件的确定。
本申请的组包条件可以根据直接接收端和/或间接接收端所能接收的单个数据包的参数值确定,直接接收端和间接接收端可以认为是位于数据传输链路上的设备,如此,使得所发送的数据可以与数据传输的链路上的设备的性能相适应,提高数据传输的效率。
本实施例中,组包条件可以是预先配置的,其可以是指对数据集合中的多条数据进行组包时所依据的参数值,该组包条件可以反映接收端一次所能接收的数据包的大小或数量。其中,如上所述,接收端可以是直接接收端和/或间接接收端,例如,接收端指数据要到达的目的终端或者目标终端所在网络设置的网闸。
其中,组包条件可以是直接接收端所能接收的单个数据包参数值,或者,组包条件可以是间接接收端所能接收的单个数据包参数值;或者,组包条件可以是直接接收端和间接接收端均能接收的单个数据包参数值,此种情况下,可以同时满足直接接收端和间接接收端的性能要求。
在一些实施例中,组包条件可以包括第一组包条件和/或第二组包条件,例如,组包条件可以同时包括第一组包条件和第二组包条件,或者,组包条件可以为第一组包条件或第二组包条件。其中,所述第一组包条件和所述第二组包条件中的一项根据直接接收端所能接收的单个数据包的参数值确定的,另一项根据间接接收端所能接收的单个数据包的参数值确定的。
其中,在组包条件包括第一组包条件和第二组包条件的情况下,表征数据链路上的接收端既包括直接接收端又包括间接接收端。
相应地,在一些实施例中,在接收端包括直接接收端和间接接收端的情况下,发送端可以获取针对所述直接接收端和/或所述间接接收端所能接收的单个数据包的参数值,接着根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定所述组包条件。
具体地,可以根据直接接收端能接收的单个数据包的参数值确定所述组包条件,或者,可以根据间接接收端所能接收的单个数据包的参数值确定所述组包条件,或者可以根据直接接收端和间接接收端所能接收的单个数据包的参数值确定组包条件。
下面,对如何确定第一组包条件和第二组包条件进行说明:
其中,在一种示例中,组包条件具体地可以包括第一组包参数或第二组包参数。在一种示例中,可以通过以下方式确定组包条件具体是第一组包条件还是第二组包条件。具体实现时,可以先确定多条数据各自的数据类型,根据数据类型,确定所述组包条件。
在一种示例中,可以先确定多条数据各自的数据类型;接着根据确定出的多条数据的数据类型,确定组包条件具体是第一组包参数还是第二组包参数。
实际中,多条数据中,部分数据的类型可能是第一类型,而其余数据的数据类型可能是第二类型,则在确定多条数据的数据类型时,可以确定每种数据类型下所包含的数据的数量或占比比例,进而根据包含的数据的数量或占据比例,确定组包条件。
相应地,在包含的数据的数量最多或占据比例达到预设比例的数据类型为第一类型的情况下,可以将组包条件确定为第一组包参数,第一组包参数可以是最优字节数。在包含的数据的数量最多或占据比例达到预设比例的数据类型为第二类型的情况下,可以将组包条件确定为第二组包参数,第二组包参数可以是最大数据条数。
需要说明的是,在又一种示例中,组包条件的确定也可以根据具体的实施环境确定,例如,在具有网闸的场景下,组包条件可以是网闸单次能够处理的最优字节数对应的条件,而在未布设有网闸的场景下,组包条件可以是目的终端单次能够处理的最大数据条数对应的条件。
当然,在一些实施例中,组包条件可以同时包括第一组包参数对应的第一组包条件和第二组包参数对应的第二组包条件。
此种情况下,在包含的数据的数量最多或占据比例达到预设比例的数据类型为第一类型的情况下,第一组包参数确定为最优字节数,将所述第二组包参数确定为最大数据条数;在包含的数据的数量最多或占据比例达到预设比例的数据类型为第二类型的情况下,可以将第一组包参数确定为最大数据条数。其中,所述第二类型不同于所述第一类型,将所述第二组包参数确定为最优字节数。
本实施例中,所述最优字节数对应的第一组包条件是根据所述接收端所能接收的单个数据包的最优总字节数确定的,所述最大数据条数对应的第二组包条件是根据所述接收端所能接收的单个数据包的最大总数据条数确定的。
其中,最优字节数用于表征接收端所能接收的单个数据包的总字节数,最大数据条数用于表征接收端所能接收的单个数据包的总数据条数。在实施环境A下,即数据传输链路上存在直接接收端和间接接收端的情况下,最优字节数可以由直接接收端确定,而最大数据条数可以由间接接收端确定。如此,可以同时满足数据传输链路上直接接收端和间接接收端的性能要求。
本实施例中,第一类型可以是指视频类型,第二类型可以是指文本数据类型,一般而言,在数据为音视频类型时,一条数据所占的字节数较多,因而在累加数据时,按照最优字节数进行累加,使得所得到的数据包很容易达到最优字节数,从而提高组包效率。在数据为文本数据类型时,一条数据所占的字节数较小,一般需要较多的数据才能达到最佳的字节数,因此按照最大数据条数进行累加时,可以对加入到数据包的数据条数进行计数即可,当加入到数据包的数据条数达到了最大数据条数,即可表征数据包中的数据的字节数也达到了要求,这样,采用计数的方式相比统计字节数而言,简单快捷,从而可以保证组包效率。
当然,在一些实际情况中,待发送数据集合中的多条数据中可能存在部分数据是视频类型的,部分数据是文本数据类型的,则具体实现时,可以在待发送数据集合中为视频类型的数据条数所占的比例大于预设比例时,确定组包条件为最优字节数对应的条件,若未大于预设比例,则可以确定组包条件为最大数据条数对应的条件。其中,预设比例可以根据实际情况设置,例如设置为0.6或0.7。
1.2数据组包的过程。
参照图3所示,示出了本申请实施例的数据发送方法中进行数据组包的整体流程示意图,结合图3所示,对本申请实施例的如何根据组包条件,对所述多条数据进行组包进行介绍。在一种示例中,可以按照以下数据组包步骤进行组包:
数据组包步骤:将所述多条数据中的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,或直至所述多条数据中不存在所述待组包数据;所述待组包数据为所述多条数据中尚未加入任何数据包的一条数据。
将当前数据包作为一个待发送数据包。
其中,若所述多条数据中存在待组包数据,将空的数据包作为新的当前数据包,重复所述数据组包步骤。
其中,本实施例所述的组包条件可以是上述的第一组包条件或第二组包条件。
本实施例中,对于首次数据组包,可以对多条数据进行逐条累加,直至累加后得到的数据的数据包的参数值满足所述组包条件,将所得到的数据包作为一个待发送数据包。接着,对所述多条数据中的剩余数据,可以重复执行以上步骤:将剩余的多条数据中尚未加入任何数据包的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足组包条件,或者,直至所述多条数据中不存在所述待组包数据。此种情况下,表征满足以下条件:
其一:当前数据包已经满足组包条件。
其二:当前数据包未满足组包条件,但是多条数据中已不存在待组包数据了,实际中可能是对多条数据已经组包完毕。
在得到待发送数据包后,还要对剩余的待组包数据进行组包,即重复以上步骤。
当然,也可以对剩余的待组包数据进行检测,若剩余的待组包数据即使组包到一起也不满足组包条件,可以理解为是剩余的数据的总大小或总条数未达到组包条件,此种情况下,可以将剩余的不满足组包条件的数据组合为一个待发送数据包。
本实施例中,在每次组包时,可以获取一个空的数据包作为当前数据包,然后将数据加入到空的数据包中,直至空的数据包满足组包条件后,又获取一个新的空的数据包,接着按照上述的数据组包步骤,针对该新的空的数据包进行组包。
本实施例中,待发送数据集合中的多条数据可以按照采集时间的先后顺序进行排序,如此,可以按照时间的先后顺序,执行上述数据组包步骤。
需要说明的是,在将多条数据逐条加入当前数据包后,可以从待发送数据集合中删除该被组包的数据。
如图3所示,待发送数据集合中有23条数据,获得一个空的数据包作为当前数据包,在进行遍历、累加时,前面三条数据加入到空的数据包所组合成的数据包达到组包条件,从而得到待发送数据包1,并从待发送数据集合中删除该前面三条数据。
接着,再对待发送数据集合中的剩余数据进行遍历,如图3所示,可以对剩余的20条数据进行遍历,按照上述方式不断进行数据组包,从而不断地得到多个满足组包条件的待发送数据包。如图3所示,可以得到待发送数据包2至待发送数据包5。
其中,在每得到一个符合组包条件的待发送数据包时,均可以判断剩余数据组合而成的数据包是否符合组包条件,若符合,则表征还可以对剩余数据进行组包,若不符合,则表示剩余数据组合而成的数据包无法达到组包条件,进而可以将剩余数据加入到一个空的数据包作为一个待发送数据包。
如图3所示,在得到待发送数据包5后,剩余的2条数据组合而成达不到组包条件的要求,如此,可以将剩余的2条数据组包,即第22条数据和第23条数据为待发送数据包6。
通过以上步骤,便可以将待发送数据集合中的多个数据进行重新组包,从而得到多个待发送数据包。如图3所示,可以将待发送数据集合中的23条数据重新组包为6个待发送数据包,其中,前面的5个待发送数据包的参数符合组包条件,后面的1个待发送数据包未达到组包条件。
需要说明的是,以上图3仅为示例性说明,不代表对本申请的具体限制。
在一种实施例中,组包条件包括第一组包条件和第二组包条件的情况下,如何进行数据组包进行介绍。
其中,在对所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件时,可以对所述多条数据中尚未加入任何数据包的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述第一组包条件或第二组包条件。
相应地,在每得到一个符合组包条件的待发送数据包时,均可以判断剩余数据组合而成的数据包是否符合第一组包条件或第二组包条件,如果不符合,则将剩余的待组包数据加入到空的数据包。
采用本申请实施例的技术方案时,在组包过程中,在当前数据包不满足第一组包条件且第二组包条件时,便会进行下一步的组包,反之,如果组包过程中,当前数据包只要满足第一组包条件和第二组包条件之一,便会结束组包,由此,得到的待发送数据包中可以既包括满足第一组包条件的数据包也可以包括满足第二组包条件的数据包。
由于第一组包条件和第二组包条件中的一者由直接接收端确定,另一者由间接接收端确定,则可以认为是待发送数据包可以均衡地满足传输连路上的设备对数据传输的性能要求,从而达到更加均衡更加高效的数据传输目的。
相应地,在包括第一组包条件和第二组包条件的情况下,根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包,可以通过如图4所示的步骤流程图中的步骤进行:
具体地,若存在待组包数据,从所述多条数据中取出当前待组包数据;所述当前待组包数据为所述多条数据中尚未加入任何数据包的待组包数据中的一条数据。当然,实际中,这个当前待组包数据可以在遍历多条数据时当前遍历到的数据。接着,进入以下的组包环节:
步骤S401:判断加入当前待组包数据后当前数据包的第一参数值是否满足第一组包条件。
本实施例中,在每将一条当前待组包数据加入到当前数据包之前,或者,在每将当前待组包数据加入到当前数据包之后,均可以判断当前数据包的第一参数值是否满足第一组包条件。
其中,由于本实施例中,组包条件包括第一组包条件和第二组包条件,实际中,第一组包条件可以是最优字节数,第二组包条件可以是最大数据条数,或者,第一组包条件可以是最大数据条件,第二组包条件可以是最有字节数。本实施例中,在将最优字节数和最大数据条数作为组包条件的情况下,可以确定最优字节数和最大数据条数的优先级,优先级高的作为第一组包条件、优先级低的作为第二组包条件。
本实施例中,如果当前数据包满足第一组包条件,则进入步骤S402,如果不满足则进入步骤S403;
步骤S402:将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤。
其中,如果当前数据包满足第一组包条件,表征当前数据包已经符合了数据发送需求,则可以结束组包,将当前数据包作为待发送数据包,接着返回到数据组包步骤,进行剩余数据的组包,即:将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤。
例如,以第一组包条件为最优字节数为例,当前数据包的字节数若满足了最优字节数,则可以停止向当前数据包中累加新的数据,直接将当前数据包作为一个待发送数据包,接着开始进行新的待发送数据包的组包。
步骤S403:判断加入当前待组包数据后当前数据包的第二参数值是否满足第二组包条件。
其中,如果当前数据包不满足第一组包条件,表征当前数据包不符合数据发送需求,此种情况下,可以继续判断当前数据包是否满足第二组包条件。例如,当前数据包的字节数若不满足最优字节数,则判断当前数据包的数据条数是否满足最大数据条数。
其中,如果满足,则表征当前数据包符合另一尺度下的数据发送需求,因而可以进入步骤S404,如果不满足,则表示当前数据包既不符合第一组包条件也不符合第二组包条件,则进入步骤S405。
示例地,在当前数据包的数据条数满足最大数据条数(第二组包条件)时,则可以停止向当前数据包中累加新的数据,直接将当前数据包作为一个待发送数据包,接着开始进行新的待发送数据包的组包。
步骤S404:将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤。
其中,如果当前数据包满足第二组包条件,表征当前数据包已经符合了数据发送需求,则可以结束组包,将当前数据包作为待发送数据包,接着返回到数据组包步骤,进行剩余数据的组包,即返回将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤以及之后的步骤。
步骤S405:重新执行所述若存在待组包数据,从多条数据中取出当前待组包数据的步骤;若不存在待组包数据,将当前数据包作为一个待发送数据包。
如果当前数据包不满足第二组包条件时,则从若存在待组包数据,从多条数据中取出当前待组包数据的步骤开始重复执行以上步骤。当然,也可以判断是否存在待组包数据,如果全部组包完毕,则不存在待组包数据,则可以结束组包,将当前数据包作为待发送数据包。如果存在待组包数据,则返回数据组包步骤,对剩余数据按照上述方式进行组包。
例如,如果当前数据包不满足最大数据条数时,则可以继续向当前数据包中加入数据,然后回到步骤S401。
其中,在该实施例中,组包条件包括第一组包条件和第二组包条件,此种情况下,可以根据多条数据的数据类型,确定第一组包条件和第二组包条件的具体类型。
例如,在包含的数据的数量最多或占据比例达到预设比例的数据类型为第一类型的情况下,所述第一组包条件为最优字节数,所述第二组包条件为最大数据条数;在包含的数据的数量最多或占据比例达到预设比例的数据类型为第二类型的情况下,所述第一组包条件为最大数据条数,所述第二组包条件为最优字节数。
例如,包含的数据的数量最多的是第一类型,则可以将第一组包条件确定为最优字节数,第二组包条件为最大数据条数。若包含的数据的数量最多的是第二类型,则可以将第二组包条件确定为最优字节数,第一组包条件为最大数据条数。
如上所述,第一类型可以是视频类型,第二类型可以是文本数据类型,具体地,如上述示例所述,在待发送数据集合中为视频类型的数据的条数最多或者所占的比例高于预设比例时,可以认为待发送数据集合的类型为视频类型,此种情况下,表征待发送数据集合中视频类型的数据占了大多数,则可以确定最优字节数的优先级高于最大数据条数的优先级,即,第一组包条件为最优字节数,第二组包条件为最大数据条数。
当然,在待发送数据集合中为视频类型的数据的条数不是最大的或者所占的比例低于预设比例时,或者,可以认为是待发送数据集合中为文本数据类型的数据的条数最多或者所占的比例高于预设比例,此种情况下,表征待发送数据集合中文本数据类型的数据占了大多数,则可以确定最大数据条数的优先级高于最优字节数的优先级,即,第一组包条件为最大数据条数,第二组包条件为最优字节数。
采用此种情况下的数据组包,所得到的多个待发送数据包中,部分待发送数据包可以满足第一组包条件,而其余部分待发送数据包可以满足第二组包条件。可以使得一个组包的数据包只要满足最优字节数和最大数据条数的二者之一,便可以作为一个待发送数据包,由此可以提高组包的效率,从而减小组包所消耗的时长,使得接收端可以及时接收待发送数据包,从而提高了发送数据的效率,特别是在发送实时数据时,接收端可以更加实时地完成数据处理,避免数据处理的滞后。
为方便理解本申请,下面给出一个实施过程中具体的示例,以说明一种方式下的组包。参照图5所示,示出了以待发送的多个数据是视频数据为例的数据组包的步骤流程示意图,如图5所示,在数可以通过以下步骤进行数据组包:
步骤S501:将所述多条数据中尚未加入任何数据包的待组包数据逐条加入一个空的数据包。
步骤S502:在每加入一条数据到空的数据包之后,判断得到的当前数据包的字节数是否达到最优字节数。
若达到最优字节数,则直接将当前数据包作为一个待发送数据包,然后返回到步骤S501,对剩余的数据进行组包。
步骤S503:若未达到最优字节数,则可以继续将下一条待组包数据添加至当前数据包中。
步骤S504:再判断当前数据包的数据条数,是否达到最大数据条数。
本实施例中,在向当前数据包中累加新的数据后,可以判断累加新的数据后的当前数据包的数据条数是否达到最大数据条数。
其中,在当前数据包的数据条数达到最大数据条数的情况下,则直接将当前数据包作为一个待发送数据包,然后返回到步骤S501,获得新的空的数据包,然后对剩余的数据进行新的组包。
步骤S505:若未达到最大数据条数,则可以继续将剩余数据逐条加入到当前数据包,然后进行步骤502的判断,直到当前数据包的字节数满足最优字节数,或者,当前数据包的数据条数满足最大数据条数,或者,当前数据包既不满足最优字节数和最大数据条数但是已经没有剩余的数据可供加入当前数据包。
需要说明的是,上述示例仅是示例性说明实施过程中可以采用的数据组包过程,在实际应用中,可以基于上述数据组包过程进行灵活变动,例如在待发送的数据是文本数据时,可以先判断组包后得到的数据包的数据条数是否到达最大数据条数,然后再判断是否达到最优字节数。
1.3数据发送的过程。
在一种具体实现中,通过以上两种情况下的组包,可以得到待发送数据包,其中,在将多个待发送数据包发送给接收端时,由于是将待发送数据包直接发送给直接接收端,因而可以确定与直接接收端所处的网络适配的通信协议;并按照所述通信协议,将多个待发送数据包发送给所述直接接收端,以使所述直接接收端将接收到的待发送数据包发送给所述间接接收端。
如图1所示,由于实际中可能存在两种实施环境,这样实际中在一次数据传输中,可能存在直接接收端和间接接收端,而在实际的数据传输中,一般发送出去的数据首先到达直接接收端,则针对每种实施环境,可以匹配与直接接收端所处的网络适配的通信协议。如在实施环境A中发送待发送数据包,则直接接收端所处的网络为网闸设备所处的网络,如在实施环境B中发送待发送数据包,则直接接收端所处的网络为与提供待发送数据集合的网络不同的另一网络。
其中,通信协议可以是直接接收端所在网络所使用的通信协议,例如,直接接收端是网闸时,则可以按照网闸所处的网络的通信协议对每个待发送数据包进行封装,从而将封装后的待发送数据包发送给直接接收端,以使网闸将接收到的待发送数据包发送给视图库。
实际中,通信协议可以是指发送端和直接接收端共同完成通信或服务所必须遵循的规则和约定。本实施例中,通信协议可以包括TCP/IP协议、NetBEUI协议、IPX/SPX协议等。
在发送端发送待发送数据包时,其发送的方式可以包括两种,分别为以下两种数据发送方式:
发送方式一:每得到一个待发送数据包时,生成针对该待发送数据包的单包发送请求,基于所述单包发送请求,将得到的一个待发送数据包发给所述接收端。
发送方式二:生成与待发送数据包集合中各待发送数据包一一对应的单包发送请求,基于各所述单包发送请求,将各待发送数据包发送给所述接收端,其中,待发送数据包集合包括至少一个待发送数据包。
实际中,可以采用上述发送方式一或发送方式二进行发送,其中,在采用发送方式一发送待发送数据包时,可以每组包得到一个待发送数据包,便生成针对该待发送数据包的单包发送请求,该单包发送请求用于请求传输单个的待发送数据包。这样,当发送端组包得到一个数据包,便将该数据包即时发送给接收端,达到实时动态发送目的。在一种示例中,在单包发送请求中可以携带单个待发送数据包的总字节数、总数据条数等参数信息,以向接收端指示该待发送数据包的属性。
其中,在采用发送方式二发送待发送数据包时,可以对待发送数据集合中的多条数据重新组包完成后,将组包完成后得到的多个待发送数据包作为待发送数据包集合,从而生成与待发送数据包集合中各待发送数据包一一对应的单包发送请求,其中,可以每间隔预设时间均匀从待发送数据包集合中提取出待发送数据包后携带在对应的单包发送请求中进行发送,即在发送第i个待发送数据包后的预设时间后发送第i+1个待发送数据包。例如,待发送数据包集合中有50条待发送数据包,则单包发送请求有50个,从而利用50个单包发送请求发送50个待发送数据包。
当然,在又一实施例中,可以生成针对待发送数据包集合的数据发送请求,该数据发送请求可以用于一次性请求发送待发送数据包集合中的多个待发送数据包。具体地,在基于数据发送请求发送多个待发送数据包时,可以每间隔预设时间均匀从待发送数据包集合中提取出待发送数据包进行发送,即在发送第i个待发送数据包后的预设时间后发送第i+1个待发送数据包。
采用此种发送方式时,可以达到一个数据发送请求发送多个待发送数据包的目的,即一次请求便可以传输多个数据包,减少了接收端和发送端之间传输数据包时发送的发送请求的次数,由此,可以减少接收端对数据包发送请求的响应次数,进而降低了接收端的工作负载,从而提高接收端的数据处理能力。
在一种示例中,数据发送请求中可以携带待发送列表中多个待发送数据包的包个数、每个待发送数据包的包序列号等信息,以向接收端指示本次具体要发送多少个待发送数据包以及每个待发送数据包的包序列号,以便接收端根据包个数、包序列号对未接收到的待发送数据包进行重传。
当然,若接收端检测到某个待发送数据包未接收到,则可以向发送端请求重传丢失的待发送数据包,发送端则可以向接收端重传丢失的待发送数据包。此种情况下,发送端在发送每个待发送数据包后,可以缓存已发送的待发送数据包一段预设时长,以便后续向接收端重传丢失的数据包。
采用本申请实施例的技术方案,相比于前述实施例,还具有以下优点:
第一:可以达到较高的组包效率。
由于在待发送数据集合中多条数据的数据类型为视频类型时,可以按照最优字节数进行组包,如此,可以很快地使一个待发送数据包满足最优字节数要求,而在待发送数据集合中多条数据的数据类型为文本数据类型时,可以按照最大数据条数进行组包,如此,可以对加入到数据包的数据条数进行计数即可,采用计数的方式相比频繁统计字节数而言,简单快捷,从而可以保证组包效率。
此外,在一种实施例中,可以在待发送数据集合中的多条数据既包括视频类型的数据又包括文本数据类型的数据时,可以确定最大数据条数和最优字节数的优先级,按照优先级进行组包,如此,可以使得待发送数据包只要满足最大数据条数和最优字节数之一者时便表征组包成功,这样,可以更快地得到一个待发送数据包,从而得到更高的组包效率。
第二:提高数据传输的实时性。
由于可以按照上述发送方式一发送待发送数据包,即每组包得到一个待发送数据包,即可以生成该待发送数据包的单包发送请求,从而将该待发送数据包发送给接收端,由此,在进行实时数据的传输时,可以缩短组包和发送之间的时延,使得接收端可以及时接收到组包的数据,以便及时处理,从而提高业务处理的实时性。
第三:降低接收端的数据传输负载。
由于也可以按照上述发送方式二发送待发送数据包,即得到多个待发送数据包后,可以通过一个多包发送请求发送多个数据包,因而减少了接收端和发送端之间进行请求发送的次数,由此,可以减少接收端对数据包发送请求的响应次数,进而降低了接收端的工作负载,从而提高接收端的数据处理能力。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6所示,示出了本发明实施例的一种数据发送装置的结构框图,如图6所示,所述装置具体可以包括以下模块:
数据集合确定模块601,用于确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;
组包模块602,用于根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件用是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;
发送模块603,用于将所述至少一个待发送数据包发送给所述接收端。
可选地,所述组包条件包括第一组包条件和第二组包条件,其中,所述第一组包条件和所述第二组包条件中的一项根据所述直接接收端确定,另一项根据所述间接接收端确定。
可选地,所述组包模块602,具体可以包括以下子模块:
累加子模块,用于执行数据组包步骤:将所述多条数据中的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,或直至所述多条数据中不存在所述待组包数据;所述待组包数据为所述多条数据中尚未加入任何数据包的一条数据;
确定子模块,用于将当前数据包作为一个待发送数据包;
重复执行子模块,用于若所述多条数据中存在待组包数据,将空的数据包作为新的当前数据包,重复所述数据组包步骤。
可选地,所述组包条件包括第一组包条件和第二组包条件;
所述累加子模块,具体用于将所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述第一组包条件或第二组包条件。
可选地,所述组包条件包括第一组包条件和第二组包条件;所述所述组包模块602包括以下模块:
判断单元,用于若存在待组包数据,从所述多条数据中取出当前待组包数据;所述当前待组包数据为所述多条数据中尚未加入任何数据包的待组包数据中的数据;
第一判断单元,用于加入当前待组包数据后当前数据包的第一参数值是否满足第一组包条件;
第一执行单元,用于当前数据包的第一参数值满足第一组包条件,将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
第二判断单元,用于当前数据包的第一参数值不满足第一组包条件满足,则判断加入当前待组包数据后当前数据包的第二参数值是否满足第二组包条件;
第二执行单元,用于如果当前数据包的第二参数值满足第二组包条件,则将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
第三执行单元,用于如果当前数据包的第二参数值不满足第二组包条件,则重新执行所述若存在待组包数据,从多条数据中取出当前待组包数据的步骤,以及用于若不存在待组包数据,将当前数据包作为一个待发送数据包。
可选地,所述组包条件包括第一组包参数对应的第一组包条件和第二组包参数对应的第二组包条件;
所述装置还包括以下模块:
数据类型确定模块,用于在所述多条数据的数据类型为第一类型的情况下,将所述第一组包条件确定为最优字节数,将所述第二组包条件确定为最大数据条数;在所述数据类型为第二类型的情况下,将所述第一组包条件确定为最大数据条数,将所述第二组包条件确定为最优字节数;
其中,所述最优字节数对应的第一组包条件,是根据所述接收端所能接收的单个数据包的最优总字节数确定的;所述最大数据条数对应的第二组包条件,是根据所述接收端所能接收的单个数据包的最大总数据条数确定的。
可选地,所述直接接收端为网闸,所述间接接收端为视图库;
所述发送模块603,具体可以包括以下单元:
协议确定单元,用于确定与所述直接接收端所处的网络适配的通信协议;
发送单元,用于按照所述通信协议,将所述至少一个待发送数据包发送给所述直接接收端,以使所述直接接收端将接收到的待发送数据包发送给所述间接接收端。
可选地,所述发送模块603,具体可以包括以下单元:
第一发送单元,用于每得到一个待发送数据包时,生成针对该待发送数据包的单包发送请求,基于所述单包发送请求,将得到的一个待发送数据包发给所述接收端;或,
第二发送单元,用于生成与待发送数据包集合中各待发送数据包一一对应的单包发送请求,基于各所述单包发送请求,将各待发送数据包发送给所述接收端,其中,所述待发送数据包集合包括所述至少一个待发送数据包。
可选地,所述直接接收端为网闸,所述间接接收端为视图库;所述装置还包括:
获取模块,用于获取针对所述直接接收端和/或所述间接接收端所能接收的单个数据包的参数值;
确定模块,用于根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定所述组包条件。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本发明实施例还提供了一种电子设备,该电子设备可以用于执行数据发送方法,可以包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器被配置为执行所述的数据发送方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的数据发送方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据发送方法、装置、设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种数据发送方法,其特征在于,所述方法包括:
确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;
根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;
将所述至少一个待发送数据包发送给所述接收端。
2.根据权利要求1所述的方法,其特征在于,所述组包条件包括第一组包条件和第二组包条件,其中,所述第一组包条件和所述第二组包条件中的一项根据所述直接接收端确定,另一项根据所述间接接收端确定。
3.根据权利要求1或2所述的方法,其特征在于,所述根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包,包括:
数据组包步骤:将所述多条数据中的待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,或直至所述多条数据中不存在所述待组包数据;所述待组包数据为所述多条数据中尚未加入任何数据包的数据;
将当前数据包作为一个待发送数据包;
其中,若所述多条数据中存在待组包数据,将空的数据包作为新的当前数据包,重复所述数据组包步骤。
4.根据权利要求3所述的方法,其特征在于,所述组包条件包括第一组包条件和第二组包条件;所述对所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述组包条件,包括:
将所述多条数据中待组包数据逐条加入当前数据包,直至当前数据包的参数值满足所述第一组包条件或第二组包条件。
5.根据权利要求1或2所述的方法,其特征在于,所述组包条件包括第一组包条件和第二组包条件;所述根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包,包括:
若存在待组包数据,从所述多条数据中取出当前待组包数据;所述当前待组包数据为所述多条数据中尚未加入任何数据包的待组包数据中的一条数据;
判断加入当前待组包数据后当前数据包的第一参数值是否满足第一组包条件;
如果满足,将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
如果不满足,判断加入当前待组包数据后当前数据包的第二参数值是否满足第二组包条件;
如果满足,则将当前待组包数据加入当前数据包,将当前数据包作为一个待发送数据包,将空的数据包作为新的当前数据包,重复执行若存在待组包数据,所述从多条数据中取出当前待组包数据的步骤;
否则,重新执行所述若存在待组包数据,从多条数据中取出当前待组包数据的步骤;
若不存在待组包数据,将当前数据包作为一个待发送数据包。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述组包条件包括第一组包参数对应的第一组包条件和第二组包参数对应的第二组包条件;所述方法还包括:
在所述多条数据的数据类型为第一类型的情况下,将所述第一组包参数确定为最优字节数,将所述第二组包参数确定为最大数据条数;
在所述多条数据的数据类型为第二类型的情况下,将所述第一组包参数确定为最大数据条数,将所述第二组包参数确定为最优字节数;
其中,所述最优字节数对应的第一组包条件,是根据所述接收端所能接收的单个数据包的最优总字节数确定的;所述最大数据条数对应的第二组包条件,是根据所述接收端所能接收的单个数据包的最大总数据条数确定的。
7.根据权利要求1-6任一所述的方法,其特征在于,所述直接接收端为网闸,所述间接接收端为视图库;所述将所述至少一个待发送数据包发送给所述接收端,包括:
确定与所述直接接收端所处的网络适配的通信协议;
按照所述通信协议,将所述至少一个待发送数据包发送给所述直接接收端,以使所述直接接收端将接收到的待发送数据包发送给所述间接接收端。
8.根据权利要求1-7任一所述的方法,其特征在于,将所述至少一个待发送数据包发送给所述接收端,包括:
每得到一个待发送数据包,生成针对该待发送数据包的单包发送请求,基于所述单包发送请求,将得到的一个待发送数据包发送给所述接收端;或,
生成与待发送数据包集合中各待发送数据包一一对应的单包发送请求,基于各所述单包发送请求,将各待发送数据包发送给所述接收端,其中,所述待发送数据包集合包括所述至少一个待发送数据包。
9.根据权利要求1-7任一所述的方法,其特征在于,所述直接接收端为网闸,所述间接接收端为视图库;所述方法还包括:
获取针对所述直接接收端和/或所述间接接收端所能接收的单个数据包的参数值;
根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定所述组包条件。
10.一种数据发送装置,其特征在于,所述装置包括:
数据集合确定模块,用于确定待发送数据集合,所述待发送数据集合包括待发送给接收端的多条数据,所述接收端包括直接接收端和/或间接接收端;
组包模块,用于根据组包条件,对所述多条数据进行组包,得到至少一个待发送数据包;其中,所述组包条件是根据所述直接接收端和/或间接接收端所能接收的单个数据包的参数值确定的;
发送模块,用于将所述至少一个待发送数据包发送给所述接收端。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如权利要求1-9任一所述的数据发送方法。
12.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1-9任一所述的数据发送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110974597.XA CN113890852A (zh) | 2021-08-24 | 2021-08-24 | 数据发送方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110974597.XA CN113890852A (zh) | 2021-08-24 | 2021-08-24 | 数据发送方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113890852A true CN113890852A (zh) | 2022-01-04 |
Family
ID=79011357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110974597.XA Pending CN113890852A (zh) | 2021-08-24 | 2021-08-24 | 数据发送方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113890852A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124850A (zh) * | 2022-01-26 | 2022-03-01 | 浙江宇视系统技术有限公司 | 一种网络通信方法及装置、存储介质 |
WO2023213089A1 (zh) * | 2022-05-06 | 2023-11-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及终端设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104184553A (zh) * | 2014-09-02 | 2014-12-03 | 广东欧珀移动通信有限公司 | 低功耗蓝牙数据传输方法、装置以及设备 |
CN105100140A (zh) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 文件传输方法和系统 |
CN108924205A (zh) * | 2018-06-25 | 2018-11-30 | 北京旷视科技有限公司 | 数据传输方法、装置、电子设备、网闸适配器 |
CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
CN110035016A (zh) * | 2019-02-26 | 2019-07-19 | 北京钰安信息科技有限公司 | 一种数据传输方法及装置 |
CN110391870A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 速率匹配的方法和装置,以及解速率匹配的方法和装置 |
WO2020001192A1 (zh) * | 2018-06-29 | 2020-01-02 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN110750486A (zh) * | 2019-09-24 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | Rdma数据流控方法、系统、电子设备及可读存储介质 |
CN110912830A (zh) * | 2018-09-17 | 2020-03-24 | 杭州海康威视系统技术有限公司 | 传输数据的方法和装置 |
-
2021
- 2021-08-24 CN CN202110974597.XA patent/CN113890852A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100140A (zh) * | 2014-05-04 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 文件传输方法和系统 |
CN104184553A (zh) * | 2014-09-02 | 2014-12-03 | 广东欧珀移动通信有限公司 | 低功耗蓝牙数据传输方法、装置以及设备 |
CN110391870A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 速率匹配的方法和装置,以及解速率匹配的方法和装置 |
CN108924205A (zh) * | 2018-06-25 | 2018-11-30 | 北京旷视科技有限公司 | 数据传输方法、装置、电子设备、网闸适配器 |
WO2020001192A1 (zh) * | 2018-06-29 | 2020-01-02 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
US20200396169A1 (en) * | 2018-06-29 | 2020-12-17 | Huawei Technologies Co., Ltd. | Data Transmission Method, Computing Device, Network Device, and Data Transmission System |
CN110912830A (zh) * | 2018-09-17 | 2020-03-24 | 杭州海康威视系统技术有限公司 | 传输数据的方法和装置 |
CN109474642A (zh) * | 2019-01-08 | 2019-03-15 | 郑州云海信息技术有限公司 | 基于以太网udp协议数据传输方法、装置、设备及介质 |
CN110035016A (zh) * | 2019-02-26 | 2019-07-19 | 北京钰安信息科技有限公司 | 一种数据传输方法及装置 |
CN110750486A (zh) * | 2019-09-24 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | Rdma数据流控方法、系统、电子设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124850A (zh) * | 2022-01-26 | 2022-03-01 | 浙江宇视系统技术有限公司 | 一种网络通信方法及装置、存储介质 |
WO2023213089A1 (zh) * | 2022-05-06 | 2023-11-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读介质及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113890852A (zh) | 数据发送方法、装置、设备及介质 | |
CN111030945B (zh) | 容灾方法、容灾网关、存储介质、装置以及系统 | |
CN113259391B (zh) | 应用于多级节点网络的数据传输方法和装置 | |
CN111526606B (zh) | 用于数据传输的方法及装置、智能家居设备、存储介质 | |
CN112491983A (zh) | 基于区块链的智能合约调度方法、装置、设备及存储介质 | |
CN102164182B (zh) | 一种网络协议识别设备和方法 | |
CN107317764A (zh) | 流量负载均衡的方法和系统 | |
CN113472719A (zh) | 基于数据摆渡的网闸的协议解析的方法、设备和存储介质 | |
CN104618365A (zh) | 协议报文处理方法、装置及终端 | |
CN113453025A (zh) | 数据获取方法及装置 | |
CN111385328B (zh) | 业务请求的处理方法、系统及电子设备 | |
CN111555984B (zh) | 用于数据传输的方法及装置、智能家居设备、存储介质 | |
Mahmood et al. | Effect of heterogeneous traffic on quality of service in 5G network | |
CN105897767A (zh) | 调度方法、调度响应方法及设备和系统 | |
CN111311150B (zh) | 配送任务分组方法、平台、电子设备及存储介质 | |
CN110557679B (zh) | 一种视频内容识别方法、设备、介质和系统 | |
CN114816755A (zh) | 调度方法及调度装置、处理核、电子设备、可读介质 | |
JP6915362B2 (ja) | 転送装置、転送方法及びプログラム | |
CN105847171A (zh) | 网络设备过载保护方法 | |
CN108200152B (zh) | 用于网购系统的优化疏导方法及装置 | |
CN106162258A (zh) | 一种音视频传输过载的控制方法及装置 | |
CN113301398A (zh) | 信息处理方法及系统、服务端设备、客户端设备 | |
Mukherjee et al. | Automated deep learning model partitioning for heterogeneous edge devices | |
CN111294553A (zh) | 处理视频监控业务信令的方法、装置、设备和存储介质 | |
CN114143300B (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 |