一种基于多链路聚合的数据发送方法和装置

文档序号:1601346 发布日期:2020-01-07 浏览:23次 >En<

阅读说明:本技术 一种基于多链路聚合的数据发送方法和装置 (Data sending method and device based on multilink aggregation ) 是由 谢文龙 李云鹏 吕亚亚 王艳辉 于 2019-08-30 设计创作,主要内容包括:本发明提供了一种基于多链路聚合的数据发送方法和装置,涉及视联网技术领域,该方法包括:当第一队列中存有接收到的至少一个目标数据包时将至少一个目标数据包从第一队列复制到第二队列;清空第一队列;按照预设顺序和预设发送间隔将至少一个目标数据包从第二队列中依次发送至视联网设备。将目标数据包从第一队列复制到第二队列,清空第一队列,第二队列将目标数据包发送至视联网设备,数据包可同时入队和出队,保证数据包的发包效率;按照预设顺序和预设发送间隔将目标数据包发送至视联网设备,使不同通信链路对应的网卡发送的数据包数量及时间间隔相同,数据包能被均匀稳定地发送,可降低实时带宽的抖动程度,提高了视联网终端的播放流畅性。(The invention provides a data sending method and device based on multilink aggregation, which relate to the technical field of video networking and comprise the following steps: copying at least one target data packet from the first queue to the second queue when the at least one target data packet is received in the first queue; emptying the first queue; and sequentially sending at least one target data packet from the second queue to the video networking equipment according to a preset sequence and a preset sending interval. Copying the target data packet from the first queue to the second queue, emptying the first queue, sending the target data packet to the video networking equipment by the second queue, and enabling the data packet to be queued and dequeued simultaneously so as to ensure the packet sending efficiency of the data packet; the target data packets are sent to the video networking equipment according to the preset sequence and the preset sending intervals, so that the number and the time intervals of the data packets sent by the network cards corresponding to different communication links are the same, the data packets can be evenly and stably sent, the jitter degree of real-time bandwidth can be reduced, and the playing smoothness of the video networking terminal is improved.)

一种基于多链路聚合的数据发送方法和装置

技术领域

本发明涉及视联网技术领域,特别是涉及一种基于多链路聚合的数据发送方法和装置。

背景技术

随着视联网技术领域的发展,发送数据所需的实时带宽越来越大。目前在发送数据时,可采用多链路聚合的方式对数据进行发送,也即是每条链路分别与数据发送设备中的多张网卡一一对应,数据被分流后可以分配给各个网卡,进而每个网卡可以通过对应的链路进行数据发送。

但是,在采用上述多链路聚合的方式直接对数据进行发送的过程中,由于多张网卡之间相互独立,因此单位时间内每个网卡发送的数据量,以及同一张网卡在不同时间内发送的数据量均有较大的差异,从而导致数据发送过程中的实时带宽有很大的抖动,进而导致接收数据的视联网设备不能流畅的进行播放。

发明内容

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的基于多链路聚合的数据发送方法和装置。

为了解决上述问题,本发明实施例公开了一种基于多链路聚合的数据发送方法,应用于图传设备,所述图传设备通过至少两条通信链路与视联网设备连接,所述方法包括:

当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列;

清空所述第一队列;

按照预设顺序和预设发送间隔,通过所述至少两条通信链路,将所述至少一个目标数据包从所述第二队列中依次发送至所述视联网设备。

可选地,所述清空所述第一队列之后,还包括:

接收至少一个最新数据包;

按照所述至少一个最新数据包的接收顺序,将所述至少一个最新数据包存入所述第一队列;

将所述至少一个最新数据包作为所述至少一个目标数据包,并返回执行当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,所述预设顺序为所述至少一个目标数据包存入所述第二队列的先后顺序,所述按照所述预设顺序和所述预设发送间隔,通过所述至少两条通信链路,将所述至少一个目标数据包从所述第二队列中依次发送至所述视联网设备,包括:

从所述第二队列中剩余的所述目标数据包中,确定最先存入所述第二队列的目标数据包;

将所述最先存入所述第二队列的目标数据包发送至所述视联网设备;

确定所述第二队列中是否存有剩余的所述目标数据包;

若所述第二队列中存有剩余的所述目标数据包,则返回执行所述从所述第二队列中剩余的所述目标数据包中,确定最先存入所述第二队列的目标数据包的步骤。

可选地,所述确定所述第二队列中是否存有剩余的所述目标数据包之后,还包括:

若所述第二队列中没存有剩余的所述目标数据包,则返回执行所述当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,所述目标数据包为全景相机数据包。

本发明还提供了一种基于多链路聚合的数据发送装置,应用于图传设备,所述图传设备通过至少两条通信链路与视联网设备连接,所述装置包括:

复制模块,用于当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列;

清空模块,用于清空所述第一队列;

发送模块,用于按照预设顺序和预设发送间隔,通过所述至少两条通信链路,将所述至少一个目标数据包从所述第二队列中依次发送至所述视联网设备。

可选地,所述装置还包括:

接收模块,用于接收至少一个最新数据包;

存入模块,用于按照所述至少一个最新数据包的接收顺序,将所述至少一个最新数据包存入所述第一队列;

调用模块,用于将所述至少一个最新数据包作为所述至少一个目标数据包,并调用所述复制模块以执行当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,所述预设顺序为所述至少一个目标数据包存入所述第二队列的先后顺序,所述发送模块包括:

第一确定子模块,用于从所述第二队列中剩余的所述目标数据包中,确定最先存入所述第二队列的目标数据包;

发送子模块,用于将所述最先存入所述第二队列的目标数据包发送至所述视联网设备;

第二确定子模块,用于确定所述第二队列中是否存有剩余的所述目标数据包;

第一调用子模块,用于若所述第二队列中存有剩余的所述目标数据包,则调用所述第一确定子模块以执行所述从所述第二队列中剩余的所述目标数据包中,确定最先存入所述第二队列的目标数据包的步骤。

可选地,所述发送模块还包括:

第二调用子模块,用于若所述第二队列中没存有剩余的所述目标数据包,则调用所述复制模块以执行所述当所述第一队列中存有接收到的所述至少一个目标数据包时,将所述至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,所述目标数据包为全景相机数据包。

本发明实施例包括以下优点:

在本发明实施例中,图传设备当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列,接着清空第一队列,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。在本发明实施例中,图传设备将目标数据包从第一队列复制到第二队列之后,可以清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入队和出队,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在保证基本的发包效率和延时要求的情况下,图传设备可以按照预设顺序和预设发送间隔,将目标数据包从第二队列中依次发送至视联网设备,保证了不同通信链路所对应的网卡在任意时间内发送的数据包数量及时间间隔相同,从而使得数据包能够被均匀稳定地发送,如此,可以降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到数据包,提高了视联网终端的播放流畅性。

附图说明

图1示出了本发明实施例一提供的一种基于多链路聚合的数据发送方法的方法流程图;

图2示出了本发明实施例二提供的一种基于多链路聚合的数据发送方法的方法流程图;

图3示出了本发明实施例二提供的另一种基于多链路聚合的数据发送方法的方法流程图;

图4示出了本发明实施例三提供的一种基于多链路聚合的数据发送装置的结构示意图;

图5示出了本发明实施例四提供的一种基于多链路聚合的数据发送装置的结构示意图;

图6是本发明的一种视联网的组网示意图;

图7是本发明的一种节点服务器的硬件结构示意图;

图8是本发明的一种接入交换机的硬件结构示意图;

图9是本发明的一种以太网协转网关的硬件结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例一

图1示出了本发明实施例一提供的一种基于多链路聚合的数据发送方法的方法流程图,应用于图传设备,图传设备通过至少两条通信链路与视联网设备连接,如图1所示,该方法包括:

步骤101,当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列。

在本发明实施例中,当图传设备在较短时间内接收到至少一个目标数据包时,可以按照各个目标数据包的接收顺序,将各个目标数据包存入第一队列,此时,第一队列中也即存有接收到的各个目标数据包,进而图传设备可以将各个目标数据包从第一队列复制到第二队列。其中,在一个较短的时间内,第一队列接收到了几个目标数据包,就将这几个目标数据包全部从第一队列复制到第二队列。

步骤102,清空第一队列。

在本发明实施例中,在将至少一个目标数据包从第一队列复制到第二队列后,第二队列中存有至少一个目标数据包,则图传设备清空第一队列,第一队列此时可以继续接收新的数据包。

步骤103,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。

其中,预设顺序可以是至少一个目标数据包存入第二队列的先后顺序,预设发送间隔可以是每两个目标数据包之间的发送时间间隔,该预设发送间隔可以是提前设置好的。每条通信链路分别与图传设备中的多张网卡一一对应连接,视联网设备与图传设备中的多张网卡一一对应进行通信连接,则目标数据包可以通过图传设备中的多张网卡将目标数据包发送至视联网设备。

在本发明实施例中,当有四条通信链路时,图传设备按照预设顺序和预设发送间隔,将第二队列中第一个需要发送的数据包通过第一个网卡对应的通信链路发送至视联网设备,将第二队列中第二个需要发送的数据包通过第二个网卡对应的通信链路发送至视联网设备,将第二队列中第三个需要发送的数据包通过第三个网卡对应的通信链路发送至视联网设备,将第二队列中第四个需要发送的数据包通过第四个网卡对应的通信链路发送至视联网设备,然后,将第二队列中第五个需要发送的数据包通过第一个网卡对应的通信链路发送至视联网设备,将第二队列中第六个需要发送的数据包通过第二个网卡对应的通信链路发送至视联网设备,将第二队列中第七个需要发送的数据包通过第三个网卡对应的通信链路发送至视联网设备,将第二队列中第八个需要发送的数据包通过第四个网卡对应的通信链路发送至视联网设备,以此类推。

另外,在实际应用中,为了使队列中数据包的调用不会出现冲突,需要对队列进行加锁,使得加锁后的队列在同一时间,只能进行入队或者出队中的一者,而不能同时进行入队和出队。而发明人在进行构思时发现,如果仅采用一个队列将至少一个目标数据包按照预设发送间隔进行发送,由于队列使用时需要进行加锁,因此无法同时进行数据包的入队和出队,也即是向队列中存入数据包的同时不能从该队列中发出已存的数据包,且从该队列中发出数据包的同时也不能向该队列中存入新的数据包,这样一来,将严重影响数据包的发包效率,导致严重的延时问题。而在本发明实施例中,可以将目标数据包从第一队列复制到第二队列,此时清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在此基础上,通过按照预设顺序和预设发送间隔,将至少一个目标数据包从第二队列中依次发送至视联网设备,可以在保证基本的发包效率和延时要求的情况下,将目标数据包均匀稳定地发送给视联网设备,如此,可以在数据发送过程中,降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到目标数据包,因此,目标数据包中的数据也可以被流畅地进行播放。

在本发明实施例中,图传设备当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列,接着清空第一队列,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。在本发明实施例中,图传设备将目标数据包从第一队列复制到第二队列之后,可以清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在保证基本的发包效率和延时要求的情况下,图传设备可以按照预设顺序和预设发送间隔,将目标数据包从第二队列中依次发送至视联网设备,保证了不同通信链路所对应的网卡在任意时间内发送的数据包数量及时间间隔相同,从而使得数据包能够被均匀稳定地发送,如此,可以降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到数据包,提高了视联网终端的播放流畅性。

实施例二

图2示出了本发明实施例二提供的一种基于多链路聚合的数据发送方法的方法流程图,应用于图传设备,图传设备通过至少两条通信链路与视联网设备连接,如图2所示,该方法包括:

步骤201,当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列。

在本发明实施例中,第一队列接收至少一个目标数据包,并将接收到的所有目标数据包从第一队列复制到第二队列。例如当第一队列中存有接收到的一个目标数据包时,就将这一个目标数据包从第一队列复制到第二队列;再例如当第一队列中存有接收到的两个目标数据包时,就将这两个目标数据包从第一队列复制到第二队列。

图传设备可以通过判断第一队列中数据包的数量是否大于零,以确定第一队列中是否存有接收到的至少一个目标数据包。其中,若第一队列中数据包的数量大于零,则确定第一队列中存有接收到的至少一个目标数据包;若第一队列中数据包的数量等于零,则确定第一队列中没存有接收到的至少一个目标数据包。

另外,在步骤201之前,图传设备首先可以进行初始化服务操作,然后创建一个线程以执行本发明实施例中的各个步骤,本发明实施例的队列数据处理均在同一个线程中完成。

步骤202,清空第一队列。

在本发明实施例中,在将至少一个目标数据包从第一队列复制到第二队列后,第二队列中存有至少一个目标数据包,则图传设备清空第一队列,第一队列此时可以继续接收新的目标数据包。

步骤203,接收至少一个最新数据包。

在本发明实施例中,图传设备在清空第一队列后,可以接收至少一个最新数据包。

步骤204,按照至少一个最新数据包的接收顺序,将至少一个最新数据包存入第一队列。

在本发明实施例中,图传设备按照至少一个最新数据包的接收顺序,将先接收的最新数据包最先存入第一队列,再将第二个接收的最新数据包存入第一队列。

步骤205,将至少一个最新数据包作为至少一个目标数据包,并返回执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤。

在本发明实施例中,将至少一个最新数据包作为至少一个目标数据包,表示,该最新数据包就是目标数据包,图传设备返回进行步骤201,将该至少一个目标数据包从第一队列复制到第二队列,并进行后续步骤202至205,以此循环。

步骤206,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。

在本发明实施例中,图传设备按照至少一个目标数据包存入第二队列的先后顺序和预设的每两个目标数据包之间的发送时间间隔,通过至少两条通信链路,将该至少一个目标数据包从第二队列中依次发送至视联网设备。

另外,在实际应用中,为了使队列中数据包的调用不会出现冲突,需要对队列进行加锁,使得加锁后的队列在同一时间,只能进行入队或者出队中的一者,而不能同时进行入队和出队。而发明人在进行构思时发现,如果仅采用一个队列将至少一个目标数据包按照预设发送间隔进行发送,由于队列使用时需要进行加锁,因此无法同时进行数据包的入队和出队,也即是向队列中存入数据包的同时不能从该队列中发出已存的数据包,且从该队列中发出数据包的同时也不能向该队列中存入新的数据包,这样一来,将严重影响数据包的发包效率,导致严重的延时问题。而在本发明实施例中,可以将目标数据包从第一队列复制到第二队列,此时清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在此基础上,通过按照预设顺序和预设发送间隔,将至少一个目标数据包从第二队列中依次发送至视联网设备,可以在保证基本的发包效率和延时要求的情况下,将目标数据包均匀稳定地发送给视联网设备,如此,可以在数据发送过程中,降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到目标数据包,因此,目标数据包中的数据也可以被流畅地进行播放。

在本发明实施例中,步骤203和步骤206同时在步骤202之后执行,也即是图传设备在清空第一队列之后,可以接收至少一个最新数据包并存入第一队列,同时,按照预设顺序和预设发送间隔,将至少一个目标数据包从第二队列中依次发送至视联网设备,使得在进行目标数据包在第二队列中发送至视联网设备的过程的同时,第一队列可以接收至少一个最新的数据包,也即是,使得可以实现数据包同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在此基础上,通过按照预设顺序和预设发送间隔,将至少一个目标数据包从第二队列中依次发送至视联网设备,可以在保证基本的发包效率和延时要求的情况下,将目标数据包均匀稳定地发送给视联网设备,如此,可以在数据发送过程中,降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到目标数据包,因此,目标数据包中的数据也可以被流畅地进行播放。

在本发明实施例中,图3示出了本发明实施例二提供的另一种基于多链路聚合的数据发送方法的方法流程图,如图3所示,步骤206具体包括:

步骤2061,预设顺序为至少一个目标数据包存入第二队列的先后顺序,从第二队列中剩余的目标数据包中,确定最先存入第二队列的目标数据包。

在本发明实施例中,图传设备从第二队列中所有的目标数据包中,确定第一队列最先复制进第二队列的目标数据包,也即是最先存入第二队列的目标数据包。

步骤2062,将最先存入第二队列的目标数据包发送至视联网设备。

在本发明实施例中,每条通信链路分别与图传设备中的多张网卡一一对应,视联网设备与图传设备中的多张网卡进行通信连接,则目标数据包可以通过图传设备中的多张网卡发送至视联网设备。对于任意一条通信链路,图传设备将第一队列最先复制进第二队列的目标数据包,也即是将最先存入第二队列的目标数据包通过该通信链路对应的网卡发送至视联网设备。

步骤2063,确定第二队列中是否存有剩余的目标数据包。

在本发明实施例中,图传设备在将最先存入第二队列的目标数据包发送至视联网设备后,确定第二队列中是否存有视联网设备剩余的目标数据包。

其中,图传设备可以通过判断第二队列中数据包的数量是否大于零,以确定第二队列中是否存有视联网设备剩余的目标数据包。其中,若第二队列中数据包的数量大于零,则第二队列中存有剩余的目标数据包;若第二队列中数据包的数量等于零,则第二队列中没存有剩余的目标数据包。

步骤2064,若第二队列中存有剩余的目标数据包,则返回执行从第二队列中剩余的目标数据包中,确定最先存入第二队列的目标数据包的步骤。

在本发明实施例中,在第二队列中存有剩余的目标数据包的情况下,也即是在第二队列中数据包的数量大于零的情况下,图传设备返回步骤2061,并接着执行步骤2062和2064,直至第二队列中没存有剩余的目标数据包,也即是直至第二队列中数据包的数量等于零。

步骤2065,若第二队列中没存有剩余的目标数据包,则返回执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤。

在本发明实施例中,在第二队列中没有存有剩余的目标数据包的情况下,也即是在第二队列中数据包的数量等于零的情况下,图传设备返回进行步骤201,将至少一个目标数据包从第一队列复制到第二队列,并进行后续步骤202至2065,直至图传设备出现第二队列没存有剩余的目标数据包的情况,则再次返回步骤201,并进行后续步骤202至2065,以此循环。

可选地,目标数据包可以为全景相机数据包,相应的,目标数据包中的数据可以为全景相机拍摄的视频数据。当然,目标数据包还是包括其他数据的数据包,本发明实施例对此不做限定。

示例的,移动指挥车中可以接入全景相机,全景相机与图传设备连接,全景相机将拍摄到的数据通过图传设备中的网卡传输至位于移动指挥车之外的指挥中心。其中,全景相机的码率(数据传输时单位时间传送的数据位数)在15至30兆。需要采用本发明实施例中的多链路聚合的数据发送方法对数据包进行发送,每条链路对应一张网卡,全景相机与图传设备中的六张网卡通信连接,指挥中心与图传设备中的六张网卡通信连接。若图传设备一秒内需要发送15*1024=15360个数据包,图传设备有六张网卡,也即是有六条通信链路,则每张网卡一秒内需要发送15*1024/6=2560个数据包,则一个数据包的发送时间和一个发送间隔时间的总时间是1/2560=0.00039秒,也即0.39毫秒,假设一个数据包的发送时间可以为0.29毫秒,则一个发送间隔时间为0.39—0.29=0.1毫秒,因此可以将0.1毫秒设为预设发送间隔。那么,图传设备按照至少一个目标数据包存入第二队列的先后顺序,以及预设发送间隔0.1毫秒,分别通过六条通信链路,将该15360个数据包从图传设备的第二队列中依次发送至指挥中心,其中,每条通信链路对应的网卡可以完成2560个数据包的发送。

在本发明实施例中,图传设备当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列,接着清空第一队列,之后接收至少一个最新数据包,按照至少一个最新数据包的接收顺序,将至少一个最新数据包存入第一队列,将至少一个最新数据包作为至少一个目标数据包,并返回执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤,并按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。在本发明实施例中,图传设备将目标数据包从第一队列复制到第二队列之后,可以清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在保证基本的发包效率和延时要求的情况下,图传设备可以按照预设顺序和预设发送间隔,将目标数据包从第二队列中依次发送至视联网设备,保证了不同通信链路所对应的网卡在任意时间内发送的数据包数量及时间间隔相同,从而使得数据包能够被均匀稳定地发送,如此,可以降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到数据包,提高了视联网终端的播放流畅性。

实施例三

图4示出了本发明实施例三提供的一种基于多链路聚合的数据发送装置的结构示意图,应用于图传设备,图传设备通过至少两条通信链路与视联网设备连接,该数据发送装置300包括:

复制模块301,用于当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列;

清空模块302,用于清空第一队列;

发送模块303,用于按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。

在本发明实施例中,图传设备通过复制模块,当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列,接着通过清空模块,清空第一队列,然后通过发送模块,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。在本发明实施例中,图传设备将目标数据包从第一队列复制到第二队列之后,可以清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在保证基本的发包效率和延时要求的情况下,图传设备可以按照预设顺序和预设发送间隔,将目标数据包从第二队列中依次发送至视联网设备,保证了不同通信链路所对应的网卡在任意时间内发送的数据包数量及时间间隔相同,从而使得数据包能够被均匀稳定地发送,如此,可以降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到数据包,提高了视联网终端的播放流畅性。

实施例四

图5示出了本发明实施例四提供的一种基于多链路聚合的数据发送装置的结构示意图,应用于图传设备,图传设备通过至少两条通信链路与视联网设备连接,该数据发送装置400包括:

复制模块401,用于当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列;

清空模块402,用于清空第一队列;

发送模块403,用于按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备。

可选地,参见图5,该数据发送装置400还包括:

接收模块404,用于接收至少一个最新数据包;

存入模块405,用于按照至少一个最新数据包的接收顺序,将至少一个最新数据包存入第一队列;

调用模块406,用于将至少一个最新数据包作为至少一个目标数据包,并调用复制模块以执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,预设顺序为至少一个目标数据包存入第二队列的先后顺序,参见图5,发送模块403包括:

第一确定子模块4031,用于从第二队列中剩余的目标数据包中,确定最先存入第二队列的目标数据包;

发送子模块4032,用于将最先存入第二队列的目标数据包发送至视联网设备;

第二确定子模块4033,用于确定第二队列中是否存有剩余的目标数据包;

第一调用子模块4034,用于若第二队列中存有剩余的目标数据包,则调用第一确定子模块以执行从第二队列中剩余的目标数据包中,确定最先存入第二队列的目标数据包的步骤。

可选地,参见图5,发送模块403还包括:

第二调用子模块4035,用于若第二队列中没存有剩余的目标数据包,则调用复制模块以执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤。

可选地,目标数据包为全景相机数据包。

在本发明实施例中,图传设备通过复制模块,当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列,接着通过清空模块,清空第一队列,通过发送模块,按照预设顺序和预设发送间隔,通过至少两条通信链路,将至少一个目标数据包从第二队列中依次发送至视联网设备,并在通过发送模块的同时通过接收模块,接收至少一个最新数据包,接着通过存入模块,按照至少一个最新数据包的接收顺序,将至少一个最新数据包存入第一队列,通过执行模块,将至少一个最新数据包作为至少一个目标数据包,并返回执行当第一队列中存有接收到的至少一个目标数据包时,将至少一个目标数据包从第一队列复制到第二队列的步骤。其中,图传设备将目标数据包从第一队列复制到第二队列之后,可以清空第一队列,然后,第二队列可以将目标数据包依次发送至视联网设备,与此同时,第一队列可以去接收新的数据包,也即是,可以实现数据包的同时入第一队列和出第二队列,从而可以保证数据包的发包效率和延时情况维持在符合需求的正常水平。在保证基本的发包效率和延时要求的情况下,图传设备可以按照预设顺序和预设发送间隔,将目标数据包从第二队列中依次发送至视联网设备,保证了不同通信链路所对应的网卡在任意时间内发送的数据包数量及时间间隔相同,从而使得数据包能够被均匀稳定地发送,如此,可以降低实时带宽的抖动程度,进而视联网设备也能够均匀稳定地接收到数据包,提高了视联网终端的播放流畅性。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。

视联网采用实时高清视频交换技术,可以在一个网络系统上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统系统,通过电视或电脑实现高清品质视频播放。

为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:

视联网所应用的部分技术如下所述:

网络技术(Network Technology)

视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。

交换技术(Switching Technology)

视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换系统,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。

服务器技术(Server Technology)

视联网和统一视频系统上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频系统流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。

储存器技术(Storage Technology)

统一视频系统的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。

网络安全技术(Network Security Technology)

视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。

服务创新技术(Service Innovation Technology)

统一视频系统将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频系统,获得丰富多彩的各种形态的多媒体视频服务。统一视频系统采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。

视联网的组网如下所述:

视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。

如图6所示,视联网分为接入网和城域网两部分。

接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。

其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。

类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。

其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。

城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。

由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。

形象地称,接入网部分可以组成统一视频系统(虚线圈中部分),多个统一视频系统可以组成视联网;每个统一视频系统可以通过城域以及广域视联网互联互通。

1、视联网设备分类

1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。

1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。

各接入网设备的具体硬件结构为:

节点服务器:

如图7所示,主要包括网络接口模块501、交换引擎模块502、CPU模块503、磁盘阵列模块504;

其中,网络接口模块501,CPU模块503、磁盘阵列模块504进来的包均进入交换引擎模块502;交换引擎模块502对进来的包进行查地址表505的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器506的队列;如果包缓存器506的队列接近满,则丢弃;交换引擎模502轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块504主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块503主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表505(包括下行数据包地址表、上行数据包地址表、数据包地址表)的配置,以及,对磁盘阵列模块504的配置。

接入交换机:

如图8所示,主要包括网络接口模块(下行网络接口模块601、上行网络接口模块602)、交换引擎模块603和CPU模块604;

其中,下行网络接口模块601进来的包(上行数据)进入包检测模块605;包检测模块605检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块603,否则丢弃;上行网络接口模块602进来的包(下行数据)进入交换引擎模块603;CPU模块604进来的数据包进入交换引擎模块603;交换引擎模块603对进来的包进行查地址表606的操作,从而获得包的导向信息;如果进入交换引擎模块603的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器607的队列;如果该包缓存器607的队列接近满,则丢弃;如果进入交换引擎模块603的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器607的队列;如果该包缓存器607的队列接近满,则丢弃。

交换引擎模块603轮询所有包缓存器队列,在本发明实施例中分两种情形:

如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;

如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。

码率控制模块608是由CPU模块604来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。

CPU模块604主要负责与节点服务器之间的协议处理,对地址表606的配置,以及,对码率控制模块608的配置。

以太网协转网关

如图9所示,主要包括网络接口模块(下行网络接口模块701、上行网络接口模块702)、交换引擎模块703、CPU模块704、包检测模块705、码率控制模块708、地址表706、包缓存器707和MAC添加模块709、MAC删除模块410。

其中,下行网络接口模块701进来的数据包进入包检测模块705;包检测模块705检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;

下行网络接口模块701检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。

以太网协转网关中其他模块的功能与接入交换机类似。

终端:

主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。

1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。

2、视联网数据包定义

2.1接入网数据包定义

接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。

如下表所示,接入网的数据包主要包括以下几部分:

DA SA Reserved Payload CRC

其中:

目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种数据包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;

源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;

保留字节由2个字节组成;

payload部分根据不同的数据报的类型有不同的长度,如果是各种数据包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;

CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。

2.2城域网数据包定义

城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。

本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。

如下表所示,城域网的数据包主要包括以下几部分:

DA SA Reserved 标签 Payload CRC

即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。

基于视联网的上述特性,提出了本发明实施例的核心构思之一,在图传设备中将第一队列中的目标数据包从第一队列复制到第二队列,清空第一队列,并且按照预设顺序和预设时间间隔将第二队列中的目标数据包发送至视联网设备,可以使得互联网设备均匀地接收目标数据包,进而保证视联网终端实现流畅的播放。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种基于多链路聚合的数据发送方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据传输优化方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!