
本发明涉及数据网络
技术领域:
,尤其涉及一种基于overlay网络和编码技术的并行多路径传输方法。
背景技术:
:虽然互联网通信技术取得了举世瞩目的发展,也满足了用户对互联网的多样需求。但在特殊场景中,网络通信的吞吐率和可靠性仍无法满足实际的需求。例如,2020年春节期间,我国乃至全世界爆发了新冠肺炎病毒疫情。全国各类学校为响应号召实现“停课不停学”,纷纷采用在线教学模式。在线教学中同时段大量的在线直播课程给网络的吞吐量和可靠性提出了严峻的挑战;而直播课程中常出现的卡顿等导致了用户体验较差。因此,如何利用已有的基础设施,在不影响终端节点的情况下通过并行多路径传输来提升网络的可靠性和吞吐量就成为了重要问题。现有多路径传输技术包括mptcp、sctp、cmt-sctp等技术。以mptcp为例,该技术通过通信节点的多网卡接口来实现并行的多路径传输,有效提升了端到端的通信性能。不足之处在于mptcp需要终端节点具有异构的网卡资源(如wlan和有线等)和通信双方支持mptcp协议。2000年提出的sctp协议兼具了tcp和udp的优点,且可实现节点之间多数据流并行传输。但stcp协议需要协议栈的支持和上层应用更好的适配。华为技术有限公司的专利申请文件“一种实现多路径传输的方法、装置和系统”(公开号cn101047633a,申请号200610080568.4,申请日2006.6.17)公开了一种依托于报文优先级与发送路径的关系的多路径传输方法、装置和系统。该专利需要终端节点进行特殊处理,不具有透明性的特点。总体来看,已有技术都是基于终端节点进行多路径通信传输,或是需要专用设备、或是需要修改协议栈,或是需要应用的支持等。这些条件给多路径的实际部署和推广带来了挑战。技术实现要素:本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于overlay网络和编码技术的并行多路径传输方法,实现网络流量分流、降低拥塞。为解决上述技术问题,本发明所采取的技术方案是:基于overlay网络和编码技术的并行多路径传输方法,包括以下步骤:步骤1、源通信节点所在网络的网关节点截获发往外地网络的三层数据报文,待处理后多路径分发至覆盖网络节点;所述源通信节点所在网络的网关节点包括三个模块:收发模块、编码模块和调度模块;收发模块将截获的三层数据包放到缓存队列中,供编码和发送使用;编码模块负责将具有相同源目的地址的三层数据包载荷使用可擦除码的方式进行编码;所述可擦除码是将m个数据包(m1,m2,…,mm)编码成n>m个数据包(e1,e2,…,en);调度模块根据数据包的目的地址、sla、定制路由表选择多路径分发编码后的数据,每个路径分发的数据量根据调度协议来调整;步骤1.1、源通信节点所在网络的网关节点截获源发往外地网络的三层数据包并存储到源网关节点的缓存队列中;步骤1.2、从源网关节点的缓存队列中取出m个具有相同目的地址的数据包,对这些数据包的三层数据载荷进行可擦出编码,形成n个新数据包,且n>m;步骤1.3、查找定制路由表并根据调度算法,将n个新数据包的目的地址修改成下一跳的覆盖网络中间节点地址,将数据包真实的目的地址隐藏在tcpoption字段中;所述调度算法包括但不限于下列四种:(1)随机调度:从下一跳ip地址列表中随机选择一个作为下一跳转发地址;(2)基于队列长度的调度:针对每个下一跳地址设置一个计数器,用于统计近1s内转发至该下一跳的数据包个数;从下一跳地址列表中选择一个计数最小的ip地址作为下一跳转发地址;(3)基于吞吐率的调度:针对每个下一跳地址设置一个变量,用于统计近1s内发送数据包的比率;从下一跳地址列表中选择一个比率最小的ip地址作为下一跳转发地址;(4)基于效率的调度:针对每个下一跳地址发送探针包,获取到下一跳地址的往返时间,选择一个往返时间最短的ip地址作为下一跳转发地址;所述定制路由表部署在源网关节点、目的网关节点和覆盖网络的中间节点,用于上述节点之间的并行选路和转发三层数据报文;所述定制路由表包括通信真实目的ip地址列表和转发下一跳目的地址列表;路由表项最终确定由网络的管理员部署分配制定,或通过现有的ospf协议来协商;步骤1.4、将步骤1.3处理后的数据包路由至覆盖网络的中间节点;步骤2、处理后的数据包报文达到覆盖网络的中间节点后,该中间节点根据定制路由表,转发至覆盖网络的其他中间节点或者目的地网关节点;所述覆盖网络的中间节点由三层及以上任何设备组成,负责路由转发数据包,最终路由到目的通信节点所在网络的网关节点;步骤2.1、覆盖网络的中间节点从网络层获取处理后的数据包,解构数据包并获得tcpoption字段中的目的地址;步骤2.2、查询定制路由表,获得该数据包的下一跳地址;步骤2.3、重新构建三层数据包头,将目的地址写成下一跳地址,并发送至覆盖网络的其他中间节点或者目的网关节点;如果发送至覆盖网络的其他中间节点,则此中间节点根据定制路由表,继续转发,如果发送至目的网关节点则执行步骤3;步骤3、目的网关节点收到数据报文后,进行解码并重构后分发至目的网络的目的通信节点。步骤3.1:目的网关节点在网络层获取三层数据报文,存储到目的网关节点的缓存队列中;步骤3.2:从目的网关节点的缓存队列中取出m个具有相同源地址和目的地址的同组数据包,对该数据包的三层数据载荷进行解码,求出m个原始数据包;步骤3.3:将m个原始数据包中的tcpoption字段中的目的地址取出,写到ip首部的目的地址字段中进行重构;步骤3.4:将解码并重构过后的三层数据包发送至目的通信节点所在网络中,数据包将最终被路由至目的通信节点。采用上述技术方案所产生的有益效果在于:本发明提供的基于overlay网络和编码技术的并行多路径传输方法,(1)不需要终端节点支持,也就是对于终端节点来说是透明的;在透明性的前提下,多路径传输提升了网络通信的效率;(2)通过使用可擦除编码,提高了网络的鲁棒性,即少量丢包并不需要通过重传来解决;另一方面,由于通信传输是编码载荷,侧面也增加了通信的安全性;(3)源端网关节点通过实时调度算法可以优化网络资源的使用,从而实现高效充分的利用网络资源。附图说明图1为本发明实施例提供的基于overlay网络和编码技术的并行多路径传输方法进行数据传输的网络结构示意图;图2为本发明实施例提供的源网关节点的数据处理流程图;图3为本发明实施例提供的覆盖网络中间节点的数据处理流程图;图4为本发明实施例提供的目的网关节点的数据处理流程图。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。本实施例以图1所示的网络结构为例,使用本发明的基于overlay网络和编码技术的并行多路径传输方法在该网络中并行多路径传输数据。本实施例中,基于overlay网络和编码技术的并行多路径传输方法,包括以下步骤:步骤1、源通信节点所在网络的网关节点截获发往外地网络的三层数据报文,待处理后多路径分发至覆盖网络节点,如图2所示;所述源通信节点所在网络的网关节点包括三个模块:收发模块、编码模块和调度模块;收发模块将截获的三层数据包放到缓存队列中,供编码和发送使用;编码模块负责将具有相同源目的地址的三层数据包载荷使用可擦除码的方式进行编码;所述可擦除码是将m个数据包(m1,m2,…,mm)编码成n>m个数据包(e1,e2,…,en);本实施例以可擦除码中的reed-solomon编码为例进行编码,但不只局限reed-solomon编码,还可以是其他的可擦除码,如喷泉码、lrc编码等。调度模块根据数据包的目的地址、sla、定制路由表选择多路径分发编码后的数据,每个路径分发的数据量根据调度协议来调整;步骤1.1、源通信节点所在网络的网关节点截获源发往外地网络的三层数据包并存储到源网关节点的缓存队列中;步骤1.2、从源网关节点的缓存队列中取出m个具有相同目的地址的数据包,对这些数据包的三层数据载荷进行可擦出编码,形成n个新数据包,且n>m;步骤1.3、查找定制路由表并根据调度算法,将n个新数据包的目的地址修改成下一跳的覆盖网络中间节点地址,将数据包真实的目的地址隐藏在tcpoption字段中;所述调度算法包括但不限于下列四种:(1)随机调度:从下一跳ip地址列表中随机选择一个作为下一跳转发地址;(2)基于队列长度的调度:针对每个下一跳地址设置一个计数器,用于统计近1s内转发至该下一跳的数据包个数;从下一跳地址列表中选择一个计数最小的ip地址作为下一跳转发地址;(3)基于吞吐率的调度:针对每个下一跳地址设置一个变量,用于统计近1s内发送数据包的比率;从下一跳地址列表中选择一个比率最小的ip地址作为下一跳转发地址;(4)基于效率的调度:针对每个下一跳地址发送探针包,获取到下一跳地址的往返时间,选择一个往返时间最短的ip地址作为下一跳转发地址;所述定制路由表部署在源网关、目的网关和覆盖网络,用于上述节点之间的并行选路和转发三层数据报文;所述定制路由表包括通信真实目的ip地址列表和转发下一跳目的地址列表;路由表项最终确定由网络的管理员部署分配制定,或通过现有的ospf协议来协商;步骤1.4、将步骤1.3处理后的数据包路由至覆盖网络的中间节点;步骤2、处理后的数据包报文达到覆盖网络的中间节点后,该中间节点根据定制路由表,转发至覆盖网络的其他中间节点或者目的地网关节点,如图3所示;所述覆盖网络的中间节点由三层及以上任何设备构建,负责路由转发数据包,最终路由到目的通信节点所在网络的网关节点;步骤2.1、覆盖网络的中间节点从网络层获取处理后的数据包,解构数据包并获得tcpoption字段中的目的地址;步骤2.2、查询定制路由表,获得该数据包的下一跳地址;步骤2.3、重新构建三层数据包头,将目的地址写成下一跳地址,并发送至覆盖网络的其他中间节点或者目的网关节点;如果发送至覆盖网络的其他中间节点,则此中间节点根据定制路由表,继续转发,如果发送至目的网关节点则执行步骤3;步骤3、目的网关节点收到数据报文后,进行解码并重构后分发至目的网络的目的通信节点,如图4所示。步骤3.1:目的网关节点在网络层获取三层数据报文,存储到目的网关节点的缓存队列中;步骤3.2:从目的网关节点的缓存队列中取出m个具有相同源地址和目的地址的同组数据包,对该数据包的三层数据载荷进行解码,求出m个原始数据包;步骤3.3:将m个原始数据包中的tcpoption字段中的目的地址取出,写到ip首部的目的地址字段中进行重构;步骤3.4:将解码并重构过后的三层数据包发送至目的通信节点所在网络中,数据包将最终被路由至目的通信节点。本实施例中的网络结构包括源通信节点、源网关节点、覆盖网络的中间节点、目的网关节点和目的通信节点。源通信节点和目的通信节点均为网络中的普通通信节点;而源网关节点和目的网关节点则部署了本发明方法中的定制路由表、收发模块、编解码模块、调度模块等功能。覆盖网络的中间节点为普通三层以上设备即可,需要部署本发明中的转发模块。本发明中的并行多路径是集中在源网关和目的网关之间的多路径。此外,本发明的数据处理主要位于tcp/ip层之间,即可同时ip数据和tcp数据内容。本实施例中,源通信节点发送数据给目的通信节点,该数据的三层数据包在网络中经过如下模块和流程:三层数据包被源网关节点截获,并存储于其缓存队列中。后经过编码模块进行可擦除码编码,查找定制路由表和调度模块处理,发送至覆盖网络中。此时三层数据包的真实目的地址已经被隐藏在tcpoption字段中。路由至覆盖网络的中间节点后,中间节点根据真实目的地址查找定制路由表,修改数据包ip首部的目的地址,并继续路由该数据包。直至该数据包达到目的通信节点所在网络的网关节点。目的网关节点获取数据包后,放置其缓存队列中;待获取一定数量数据报文后,通过解码模块来获得原始三层数据包载荷;此外,将ip包头目的地址修改为真实目的地地址。直此恢复出原始真实数据包。该数据包将继续路由达到目的通信节点。上述流程不需要通信双方参与,实现了不需要通信端节点对现有tcp/ip协议栈进行修改和支持,进而实现并发多路径对终端的透明性。另外,覆盖网络可以由现有互联网中的节点担任,也可以不是新的定制设备。最后,本发明方法运行在网络层和传输层之间,即既需要获得数据包网络层信息,又需要数据包传输信息。在上述过程中,定制路由表部署在源网关节点、目的网关节点和覆盖网络的中间节点,用于上述节点之间的并行选路和转发三层数据包报文。定制路由表格式如下表一所示,其中转发下一跳目的地址列表为ip地址列表,即可以从多个下一跳地址中选择一个转发。路由表项目的确定由网络的管理员通知分配制定,也可以通过现有的ospf等协议来协商。本实施例通过静态方法对其进行配置。表1定制路由表通信真实目的ip地址转发下一跳目的地址106.57.57.70118.25.141.123106.57.57.70212.64.19.252……编解码模块主要对三数据包的载荷采用可擦除码进行编解码。编码过程如下:m个数据包的向量m=(m1,m2,…,mm),其中每个数据包的大小通过补齐实现相等。采用编码系数矩阵a,并将编码系数矩阵a与向量m相乘,得到编码后的向量e,具体如下公式所示:编码系数矩阵a中任何m个行向量都要求是线程无关的,也即任何m个行向量构成的矩阵都存在拟矩阵。解码过程就是从e中选择任意m个数据包,然后乘以对应的逆矩阵,就可以得到原始数据(m1,m2,…,mm)。这里的编码系数矩阵a和其逆矩阵簇都已经计算好,存储在源网关节点和目的网关节点中,直接供计算使用。另外,需要在tcpoption中来记录和标记组号和组内序列号。调度模块主要部署于源网关中,通过充分考虑网络的传输特点和实时调度,通过调度算法来最优利用网络资源。对某个三层数据包的调度发生在其下一跳具有多个ip地址的条件下。源网关的收发模块主要截获源通信节点往外部网络发送的数据包,将三层数据包放置到源网关的缓存队列中;同时,发送线程从缓存队里取出数据,交给数据编码模块和调度模块处理,将原始数据包的目的地址存储于tcpoption中,而现在目的地址为调度模块给出的地址。最后将数据包发送至网络中。目的网关的收发模块与源网关的模块功能相似,操作相发,即将tcpoption中的地址取去,放置到ip包头的目的地址中,进而恢复原始数据包并发送至网络中。覆盖网络的中间节点的转发模块主要用于路由数据包。具体为,收到ip包后,根据tcpoption的目的地址,查找定制路由表,从中选择下一跳目的地址作为ip包的目的地址,然后发送至网络中继续传输。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。当前第1页12