一种采用多卡发送数据的方法以及装置制造方法

文档序号:7980267阅读:268来源:国知局
一种采用多卡发送数据的方法以及装置制造方法
【专利摘要】本发明公开了一种采用多卡发送数据的方法以及装置,该方法包括:数据发送端接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区;当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中;从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。该方法能够保证及时、准确地向数据请求端发送请求获取的数据。
【专利说明】一种采用多卡发送数据的方法以及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤指一种采用多卡发送数据的方法以及装置。
【背景技术】
[0002]目前,主流的无线传输方式有两种:第三代移动通信(3rd_generation,3G)技术和无线保真(Wireless Fidelity,WIFI)技术,如果需要随时随地进行数据发送,则采用3G技术。
[0003]当数据发送端通过多张3G卡向数据请求端发送数据时,一般采用轮流发送的方式:假如共有3张3G卡,记为G1、G2、G3,将向数据请求端发送的数据分成若干个数据包,当第一个数据包通过Gl发送,那么,第二个数据包可以通过G2发送,第三个数据包可以通过G3发送,第四个数据包可以再通过Gl发送,以此类推。当每张3G卡的无线链路状况都良好时,这种轮流发送方式能够满足发送的要求;但是,如果某张3G卡的无线链路状况比较差,那么通过这张3G卡发送数据包的速度会非常慢甚至无法发送数据包,而数据请求端就会因为接收到这个数据包的时间延迟导致接收完整数据的效率降低,甚至会因为无法接收到这张3G卡发送的数据包而导致无法接受到完整的数据。可见,采用这种轮流发送方式发送数据的效率和准确率都非常低。
[0004]为了解决上述问题,采用负载均衡的发送方式发送数据:分别统计每张3G卡每次发送的数据量及所使用的时间,以此来计算每张3G卡的实际带宽,然后根据计算出的带宽来分配每张3G卡可以发送的数据量。这种根据3G卡之前发送的数据量来确定其现在可以发送的数据量的方式具有严重的滞后性,这就会影响数据发送的效率;并且,如果3G卡的无线链路状况不稳定,3G卡的实际带宽就会存在很大的波动,这就导致设备频繁地计算3G卡的实际带宽,不能准确地预测3G卡后期的实际带宽,也就不能准确地确定3G卡可以发送的数据量。可见,这种负载均衡的发送方式仍然不能解决轮流发送方式发送数据时效率和准确率非常低的问题。
[0005]综上所述,现有技术中数据发送端通过多张3G卡向数据请求端发送数据时,效率和准确率都非常低。

【发明内容】

[0006]本发明实施例提供一种采用多卡发送数据的方法以及装置,用以解决现有技术中存在的数据发送端通过多张3G卡向数据请求端发送数据时,效率和准确率都非常低的问题。
[0007]一种数据发送方法,包括:
[0008]数据发送端接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区;
[0009]当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中;[0010]从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。
[0011]一种采用多卡发送数据的装置,包括:
[0012]连接建立单元,用于接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区;
[0013]数据发送单元,用于当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中;从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。
[0014]本发明有益效果如下:
[0015]本发明实施例提供的采用多卡发送数据的方法以及装置,通过数据发送端接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区;当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中;从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。该方法中的每张3G卡都具有一个发送缓冲区,当接收到数据请求端发送的数据获取请求后,可以选用发送缓冲区的可用容量足够的3G卡向数据请求端发送数据,这样就能够实现每一个数据包都能够及时、准确地向数据请求端发送,从而保证了数据请求端可以及时、准确地接收到请求获取的数据。
【专利附图】

【附图说明】
[0016]图1为本发明实施例中采用多卡发送数据的方法的流程图;
[0017]图2为本发明实施例中优选的采用多卡发送数据的方法的流程图;
[0018]图3为本发明实施例中采用多卡发送数据的装置的结构示意图。
【具体实施方式】
[0019]针对现有技术中存在的数据发送端通过多张3G卡向数据请求端发送数据时,效率和准确率都非常低,本发明实施例提供一种采用多卡发送数据的方法,该方法的流程如图1所示,具体执行步骤如下:
[0020]S10:数据发送端接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区。
[0021]在本发明实施例中,采用多张3G卡向数据请求端发送数据,当数据请求端请求获取数据时,首先会请求建立通信连接,数据发送端在接收到数据请求端发送的连接建立请求后,将所有的3G卡分别与数据请求端建立通信连接,可以在建立通信连接的过程中为每张3G分配设定容量的发送缓冲区,也可以在建立通信连接后为每张3G卡分配设定容量的发送缓冲区,并向数据请求端返回连接建立响应通知数据请求端已经建立了通信连接。
[0022]可以为每张3G卡分配同样容量的发送缓冲区,也可以根据实际需要为每张3G卡分配不同容量的发送缓冲区。[0023]Sll:当接收到数据请求端发送的数据获取请求后,将数据请求端请求获取的待发送数据包加入到待发送队列中。
[0024]当数据发送端接收到数据请求端发送的数据获取请求后,将数据请求端请求获取的数据分成若干数据包,并将这些待发送数据包加入到待发送队列中,依次向数据请求客户端发送。
[0025]例如:当移动终端请求获取视频数据时,数据发送端就可以将所有的视频数据分成设定大小的数据包,然后加入到待发送队列中依次向数据请求端发送即可。
[0026]S12:从待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向数据请求端发送。
[0027]该方法中的每张3G卡都具有一个发送缓冲区,当接收到数据请求端发送的数据获取请求后,可以选用发送缓冲区的可用容量足够的3G卡向数据请求端发送数据,这样就能够实现每一个数据包都能够及时、准确地向数据请求端发送,从而保证了数据请求端可以及时、准确地接收到请求获取的数据。
[0028]下面以一个优选实施例来说明本发明方法,该方法的流程如图2所示,具体执行步骤如下:
[0029]S20:数据发送端接收数据请求端发送的连接建立请求。
[0030]数据请求端想要获取数据时,首先需要发送连接建立请求,才能建立通信连接。
[0031]S21:将每张3G卡分别与数据请求端建立通信连接,为每张3G卡分配相同容量的发送缓冲区并向数据请求端返回连接建立响应。
[0032]当然也可以每张3G卡分配不同容量的发送缓冲区,这可以依据实际情况确定分配的发送缓冲区的设定容量。
[0033]在将每张3G卡分别与数据请求端建立通信连接时,可以分别为每张3G卡创建一个套接字(Socket)与之绑定,也可以为每个Socket分配设定容量的发送缓冲区,也就相当于为与每个Socket对应的3G卡分配了设定容量的发送缓冲区。
[0034]S22:接收数据请求端发送的数据获取请求。
[0035]数据请求端在接收到连接建立响应后,发送数据获取请求,通过数据获取请求来请求获取数据,例如音频、视频等等数据。
[0036]S23:选定一张3G卡作为当前发送卡。
[0037]可以为所有的3G卡分配一个编号,当有3张3G卡时,可以分配编号G1、G2、G3,这时可以选定Gl、G2或者G3为当前发送卡;也可以选定发送缓冲区的最大容量最大的3G卡为当前发送卡;当然也可以按照其他的方法选定当前发送卡,在这里不再赘述。
[0038]当采用一张3G卡向数据请求端发送数据时,这张3G卡一直作为当前发送卡。
[0039]其中,S22和S23并没有严格的先后顺序,在这里仅仅以先执行S22后执行S23为例进行说明。
[0040]S24:判断发送任务是否关闭,若是,执行S31 ;否则,执行S25。
[0041]可以依据需要设置发送任务开启和发送任务关闭,当发送任务开启时,继续后续流程,当发送任务关闭时,流程结束。
[0042]S25:判断待发送队列中是否有待发送数据包,若是,执行S27 ;否则,执行S26。
[0043]可以首先确定待发送队列中是否有待发送数据包,然后再执行后续流程。[0044]S26:设定周期到期后,,执行S24。
[0045]可以依据实际需要设定周期,例如I毫秒、2毫秒、3毫秒等等,较佳的设定周期为2毫秒。
[0046]S27:从待发送队列中获取一个待发送数据包。
[0047]S28:判断当前发送卡的发送缓冲区的可用容量是否能够容纳待发送数据包,若是,执行S29 ;否则,执行S30。
[0048]S29:通过当前发送卡向数据请求端发送待发送数据包,执行S24。
[0049]S30:在所有3G卡中重新选取发送缓冲区的可用容量最大的3G卡作为当前发送卡,通过重新选取的当前发送卡向数据请求端发送待发送数据包,执行S24。
[0050]当采用一张3G卡向数据请求端发送数据时,重新选取的当前发送卡实际上没有改变,仍然通过这张3G卡发送数据。
[0051]S31:流程结束。
[0052]若当前发送卡的发送缓冲区的可用容量能够容纳待发送数据包,直接通过当前发送卡发送待发送数据包;若当前发送卡的发送缓冲区的可用容量不能够容纳待发送数据包时,重新选取发送缓冲的剩余容量最大的3G卡作为当前发送卡,并通过重新选取的当前发送卡向数据请求端发送数据。并在以后发送数据时,采用重新选取的当前发送卡进行发送待发送数据包。
[0053]具体的,通过重新选取的当前发送卡向数据请求端发送待发送数据包,具体包括:判断重新选取的当前发送卡的发送缓冲区的可用容量是否能够容纳待发送数据包;若是,通过重新选取的当前发送卡向数据请求端发送待发送数据包;否则,根据数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0054]具体的,根据数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向数据请求端发送待发送数据包,具体包括以下两种情况:
[0055]第一种情况:若数据请求端请求获取的待发送数据包为非实时数据包,将待发送数据包重新加入到待发送队列中,确定重新选取的当前发送卡的发送缓冲区的可用容量能够容纳待发送数据包时,通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0056]当客户请求获取的待发送数据包为非实时数据包时,例如日志信息等等,可以将该待发送数据包重新接入到待发送队列中,当确定重新选取的当前发送卡的发送缓冲区的可用容量能够容纳待发送数据包时,通过重新选取的当前发送卡发送该待发送数据包。
[0057]第二种情况:若数据请求端请求获取的待发送数据包为实时数据包,丢弃待发送队列中的部分待发送数据包,若待发送数据包未被丢弃,延迟设定的时间长度后且重新选取的当前发送卡的发送缓冲区的可用容量可以容纳待发送数据包时,通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0058]当客户请求获取的待发送数据包为实时数据包时,例如音频、视频等等数据,可以丢弃数据请求端请求获取的待发送数据包中部分不重要的待发送数据包,当该待发送数据包没有被丢弃时,延迟设定的时间长度且重新选取的当前发送卡的发送缓冲区的可用容量可以容纳待发送数据包时,通过重新选取的当前发送卡发送该待发送数据包。这样就可以保证用户可以接收到实时的数据的完整性和及时性。其中,延迟设定的时间长度可以依据实际需要进行设定。[0059]基于同一发明构思,本发明实施例提供一种采用多卡发送数据的装置,该装置的结构如图3所示,包括:
[0060]连接建立单元30,用于接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区;数据发送单元31,用于当接收到数据请求端发送的数据获取请求后,将数据请求端请求获取的待发送数据包加入到待发送队列中;从待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向数据请求端发送。
[0061]具体的,上述数据发送单元31,用于选定一张3G卡作为当前发送卡,针对从待发送队列中获取的每个待发送数据包,依次执行:判断当前发送卡的发送缓冲区的可用容量是否能够容纳待发送数据包;若是,通过当前发送卡向数据请求端发送待发送数据包;否贝U,在所有3G卡中重新选取发送缓冲区的可用容量最大的3G卡作为当前发送卡,通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0062]具体的,上述数据发送单元31,用于判断重新选取的当前发送卡的发送缓冲区的可用容量是否能够容纳待发送数据包;若是,通过重新选取的当前发送卡向数据请求端发送待发送数据包;否则,根据数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0063]具体的,上述数据发送单元31,具体用于:若数据请求端请求获取的待发送数据包为非实时数据包,将待发送数据包重新加入到待发送队列中,确定重新选取的当前发送卡的发送缓冲区的可用容量能够容纳待发送数据包时,通过重新选取的当前发送卡向数据请求端发送待发送数据包;若数据请求端请求获取的待发送数据包为实时数据包,丢弃待发送队列中的部分待发送数据包,若待发送数据包未被丢弃,延迟设定的时间长度后且重新选取的当前发送卡的发送缓冲区的可用容量可以容纳待发送数据包时,通过重新选取的当前发送卡向数据请求端发送待发送数据包。
[0064]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种采用多卡发送数据的方法,其特征在于,包括: 数据发送端接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区; 当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中; 从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。
2.如权利要求1所述的方法,其特征在于,从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送,具体包括: 选定一张3G卡作为当前发送卡,针对从所述待发送队列中获取的每个待发送数据包,依次执行: 判断所述当前发送卡的发送缓冲区的可用容量是否能够容纳所述待发送数据包; 若是,通过所述当前发送卡向所述数据请求端发送所述待发送数据包; 否则,在所有3G卡中重新选取发送缓冲区的可用容量最大的3G卡作为当前发送卡,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
3.如权利要求2所述的方法,其特征在于,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包,具体包括:` 判断重新选取的当前发送卡的发送缓冲区的可用容量是否能够容纳所述待发送数据包; 若是,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包; 否则,根据所述数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
4.如权利要求3所述的方法,其特征在于,根据所述数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包,具体包括: 若所述数据请求端请求获取的待发送数据包为非实时数据包,将所述待发送数据包重新加入到所述待发送队列中,确定所述重新选取的当前发送卡的发送缓冲区的可用容量能够容纳所述待发送数据包时,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包; 若所述数据请求端请求获取的待发送数据包为实时数据包,丢弃所述待发送队列中的部分待发送数据包,若所述待发送数据包未被丢弃,延迟设定的时间长度后且重新选取的当前发送卡的发送缓冲区的可用容量可以容纳所述待发送数据包时,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
5.一种采用多卡发送数据的装置,其特征在于,包括: 连接建立单元,用于接收到数据请求端发送的连接建立请求后,将至少一张第三代移动通信3G卡分别与所述数据请求端建立通信连接,其中,每张3G卡具有一个发送缓冲区; 数据发送单元,用于当接收到所述数据请求端发送的数据获取请求后,将所述数据请求端请求获取的待发送数据包加入到待发送队列中;从所述待发送队列中依次获取待发送数据包,并通过发送缓冲区的可用容量足够的3G卡作为当前发送卡向所述数据请求端发送。
6.如权利要求5所述的装置,其特征在于,所述数据发送单元,具体用于: 选定一张3G卡作为当前发送卡,针对从所述待发送队列中获取的每个待发送数据包,依次执行: 判断所述当前发送卡的发送缓冲区的可用容量是否能够容纳所述待发送数据包; 若是,通过所述当前发送卡向所述数据请求端发送所述待发送数据包; 否则,在所有3G卡中重新选取发送缓冲区的可用容量最大的3G卡作为当前发送卡,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
7.如权利要求6所述的装置,其特征在于,所述数据发送单元,具体用于:判断重新选取的当前发送卡的发送缓冲区的可用容量是否能够容纳所述待发送数据包; 若是,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包; 否则,根据所述数据请求端请求获取的待发送数据包的类型通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
8.如权利要求7所述的装置,其特征在于,所述数据发送单元,具体用于: 若所述数据请求端请求获取的待发`送数据包为非实时数据包,将所述待发送数据包重新加入到所述待发送队列中,确定所述重新选取的当前发送卡的发送缓冲区的可用容量能够容纳所述待发送数据包时,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包; 若所述数据请求端请求获取的待发送数据包为实时数据包,丢弃所述待发送队列中的部分待发送数据包,若所述待发送数据包未被丢弃,延迟设定的时间长度后且重新选取的当前发送卡的发送缓冲区的可用容量可以容纳所述待发送数据包时,通过重新选取的当前发送卡向所述数据请求端发送所述待发送数据包。
【文档编号】H04L29/08GK103516749SQ201210213392
【公开日】2014年1月15日 申请日期:2012年6月21日 优先权日:2012年6月21日
【发明者】高迎军, 张兴明, 傅利泉, 朱江明, 吴军, 吴坚 申请人:浙江大华技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1