传输报文的方法、代理服务器和计算机可读存储介质与流程

文档序号:16464164发布日期:2019-01-02 22:42阅读:272来源:国知局
传输报文的方法、代理服务器和计算机可读存储介质与流程

本发明涉及通信领域,尤其涉及一种传输报文的方法、代理服务器和计算机可读存储介质。



背景技术:

多路径传输控制协议(multipathtransportcontrolprotocol,mptcp)是一种利用多条路径并发传输的传输层协议,可以提高端到端的吞吐率,增加网络利用率,且增加冗余性。mptcp协议可参见rfc6824。

mptcp完全兼容传输控制协议(transportcontrolprotocol,tcp),在tcp的基础上新增了tcp选项头,以实现mptcp建链、拆链和数据传输等功能。mptcp典型的应用场景可以是在接入网中,也可以是在企业网中。

下面就接入网举例说明。参见图1是现有技术中混合接入的业务场景示意图。电脑通过无线保真(wirelessfidelity,wifi)或有线网络与家庭网关(homegateway,hg)连接,移动终端通过长期演进(longtermevolution,lte)网络或wifi与混合接入汇聚节点(hybridaccessaggregationpoint,haap)连接。

在混合接入(bondingaccess,ba)场景下,数字用户线路(digitalsubscriberline,dsl)、移动通信网络(例如:lte)和wifi等多条链路连接,也就是说,hg和haap之间可以通过以下方式连接,如:wifi、dsl和lte。移动终端和haap之间可以通过wifi/lte连接。

图2是现有技术中mptcp在混合接入场景下的信令流程示意图,移动终端通过hg与haap和服务器连接,在hg与haap之间的连接网络有lte和dsl。移动终端向服务器发送三个tcp包,分别是tcp1、tcp2、tcp3。

其中,服务器与haap之间采用tcp;haap与hg之间采用mptcp;hg与移动终端之间采用tcp。

在ba场景下应用mptcp,一方面,多链路绑定,提高了吞吐率;另一方面,流量随着链路状态的变化动态调节。

现有技术中,在接入网中或企业网,需要传输封装有udp报文的ip报文。为穿越mptcp网络,需要将udp头替换为mptcp头,并且对mptcp封装结构(即mptco头的结构)进行扩展以将ip报文中用于路由的信息增加到已扩展结构的mptcp头中。即通过修改标准的mptcp封装结构,实现udp报文穿越mptcp网络。修改标准的mptcp封装结构会导致兼容性的问题,例如:接收端无法识别修改后的mptcp头,从而导致无法还原出udp报文。



技术实现要素:

本发明实施例提供了一种传输报文的方法,可以解决现有技术中兼容性较差的技术问题,从而能够还原出完整的udp报文。

本发明实施例还提供了一种传输报文的方法,可以解决现有技术中兼容性较差的技术问题,从而能够还原出完整的udp报文。

本发明实施例还提供了一种代理服务器,可以解决现有技术中兼容性较差的技术问题,从而能够还原出完整的udp报文。

本发明实施例还提供了一种代理服务器,可以解决现有技术中兼容性较差的技术问题,从而能够还原出完整的udp报文。

本发明实施例还提供了一种计算机可读存储介质,可以解决现有技术中兼容性较差的技术问题,从而能够还原出完整的udp报文。

第一方面,本发明实施例提供一种传输报文的方法,所述方法包括:

第一代理服务器建立与第二代理服务器之间的多路径传输控制协议mptcp隧道,所述mptcp隧道包括多条传输控制协议tcp连接;

第一代理服务器接收到封装有用户数据包协议udp报文的网协ip报文后,为所述封装有udp报文的ip报文封装mptcp头;

第一代理服务器通过所述mptcp隧道的tcp连接发送封装有mptcp头的ip报文。

结合第一方面,在第二种可能的实现方式中,所述多条tcp连接均没有可用窗口;

第一代理服务器通过所述mptcp隧道的tcp连接发送封装有mptcp头的ip报文,包括:

第一代理服务器基于每条tcp连接的当前拥塞窗口数目,计算所述多条tcp连接的当前拥塞窗口比例;

第一代理服务器按照所述当前拥塞窗口比例扩大所述多条tcp连接的当前拥塞窗口数目;

第一代理服务器通过扩大当前拥塞窗口数目的tcp连接,发送封装有mptcp头的ip报文。

结合第一方面,在第二种可能的实现方式中第一种情况时,所述第一代理服务器通过扩大当前拥塞窗口数目的tcp连接,发送封装有mptcp头的ip报文,包括:

第一代理服务器按照所述多条tcp连接的优先级确定发送所述ip报文的tcp连接;

第一代理服务器通过所述发送所述ip报文的tcp连接,发送封装有mptcp头的ip报文。

结合第一方面,在第三种可能的实现方式中,所述多条tcp连接存在可用窗口;

所述第一代理服务器通过所述mptcp隧道的tcp连接发送封装有mptcp头的ip报文,包括:

第一代理服务器依据存在可用窗口的tcp连接的优先级确定传输ip报文的tcp连接;

第一代理服务器通过所述传输ip报文的tcp连接,发送封装有mptcp头的ip报文。

结合第一方面,在第四种可能的实现方式中,所述第一代理服务器为所述封装有udp报文的ip报文封装mptcp头,包括:

所述封装有udp报文的ip报文长度大于所述mptcp隧道的最大分块长度mss,第一代理服务器根据mss对封装有udp报文的ip报文进行分片,得到分片后ip报文;

第一代理服务器对所述分片后ip报文封装mptcp头。

结合第一方面,在第五种可能的实现方式中,所述第一代理服务器是混合接入汇聚节点haap,所述第二代理服务器是家庭网关。

结合第一方面,在第六种可能的实现方式中,所述第一代理服务器与所述第二代理服务器分别为不同企业网的接入路由器。

结合第一方面,在以上可能的实现方式中所述方法还包括:

所述tcp连接上发生丢包时,第一代理服务器降低发生丢包的tcp连接的当前拥塞窗口数目。

第二方面,本发明实施例提供一种传输报文的方法,所述方法包括:

第二代理服务器建立与第一代理服务器之间的多路径传输控制协议mptcp隧道,所述mptcp隧道包括多条传输控制协议tcp连接;

第二代理服务器通过所述mptcp隧道的tcp连接,接收到封装有mptcp头的网协ip报文;

第二代理服务器依据所述mptcp头对所述ip报文排序,基于所述ip报文的ip报文头解析得到udp报文。

结合第二方面,在第一种可能的实现方式中,所述基于所述ip报文的ip报文头解析得到udp报文,包括:

去除排序后ip报文的mptcp头得到分片后ip报文;

重组所述分片后ip报文后,基于重组后ip报文的ip报文头解析得到udp报文。

第三方面,本发明实施例提供一种代理服务器,所述代理服务器包括建立模块、封装模块和发送模块;

所述建立模块,用于建立与第二代理服务器之间的多路径传输控制协议mptcp隧道,所述mptcp隧道包括多条传输控制协议tcp连接;

所述封装模块,用于接收到封装有用户数据包协议udp报文的网协ip报文后,为所述封装有udp报文的ip报文封装mptcp头;

所述发送模块,用于通过所述mptcp隧道的tcp连接发送封装有mptcp头的ip报文。

结合第三方面,在第二种可能的实现方式中,所述多条tcp连接均没有可用窗口;

所述发送模块,具体用于基于每条tcp连接的当前拥塞窗口数目,计算所述多条tcp连接的当前拥塞窗口比例;

按照所述当前拥塞窗口比例扩大所述多条tcp连接的当前拥塞窗口数目;

通过扩大当前拥塞窗口数目的tcp连接,发送封装有mptcp头的ip报文。

结合第三方面,在第二种可能的实现方式中第一种情况时,所述发送模块,具体用于按照所述多条tcp连接的优先级确定发送所述ip报文的tcp连接;通过所述发送所述ip报文的tcp连接,发送封装有mptcp头的ip报文。

结合第三方面,在第三种可能的实现方式中,所述多条tcp连接存在可用窗口;

所述发送模块,具体用于依据所述存在可用窗口的tcp连接的优先级确定传输ip报文的tcp连接;通过所述传输ip报文的tcp连接,发送封装有mptcp头的ip报文。

结合第三方面,在第四种可能的实现方式中,所述封装模块,具体用于所述封装有udp报文的ip报文长度大于所述mptcp隧道的最大分块长度mss时,根据mss对封装有udp报文的ip报文进行分片,得到分片后ip报文;对所述分片后ip报文封装mptcp头。

结合第三方面,在第五种可能的实现方式中,所述第一代理服务器是混合接入汇聚节点haap,所述第二代理服务器是家庭网关。

结合第三方面,在第六种可能的实现方式中,所述第一代理服务器与所述第二代理服务器分别为不同企业网的接入路由器。

结合第三方面,在以上可能的实现方式中,所述代理服务器还包括控制模块,用于所述tcp连接上发生丢包时,降低发生丢包的tcp连接的当前拥塞窗口数目。第四方面,本发明实施例提供一种代理服务器,所述代理服务器包括建立模块、接收模块和解析模块;

所述建立模块,用于建立与第一代理服务器之间的多路径传输控制协议mptcp隧道,所述mptcp隧道包括多条传输控制协议tcp连接;

所述接收模块,用于通过所述mptcp隧道的tcp连接,接收到封装有mptcp头的网协ip报文;

所述解析模块,用于依据所述mptcp头对所述ip报文排序,基于所述ip报文的ip报文头解析得到udp报文。

结合第四方面,在第二种可能的实现方式中,所述解析模块,具体用于去除排序后ip报文的mptcp头得到分片后ip报文;重组所述分片后ip报文后,基于重组后ip报文的ip报文头解析得到udp报文。

本申请的第五方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的第六方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请的第七方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从上述技术方案中可以看出,第一代理服务器建立第一代理服务器与第二代理服务器之间的mptcp隧道,mptcp隧道包括多条tcp连接;第一代理服务器接收到封装有udp报文的ip报文后,为封装有udp报文的ip报文封装mptcp头;第一代理服务器通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。在传输ip报文是采用标准的mptcp封装结构,解决了兼容性较差的技术问题,从而能够还原出完整的udp报文。

附图说明

从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。

图1是现有技术中接入网的业务场景示意图;

图2是现有技术中mptcp在混合接入场景下的信令流程示意图;

图3是本发明实施例中传输报文的方法流程示意图;

图4是本发明实施例中发送封装有mptcp头的ip报文的流程示意图;

图5是本发明实施例中在tcp连接上调度资源传输ip报文的示意图;

图6是本发明实施例中ip报文基于mss分片示意图;

图7是本发明另一个实施例中传输报文的方法流程示意图;

图8是本发明实施例中利用mptcp隧道传输udp报文示意图;

图9是本发明实施例中代理服务器的结构示意图;

图10是本发明另一个实施例中代理服务器的结构示意图;

图11是本发明再一个实施例中代理服务器的结构示意图。

具体实施方式

在本发明实施例中,首先建立第一代理服务器与第二代理服务器之间的多mptcp隧道。然后,第一代理服务器在接收到封装有udp报文的ip报文后,并不改变mptcp封装结构,而是为封装有udp报文的ip报文封装mptcp头。最后,通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。接收端可以识别标准的mptcp封装结构,因此解决了兼容性较差的技术问题,进而能够还原出完整的udp报文。

参见图3是本发明实施例中传输报文的方法流程示意图,图3中的步骤可以应用于发送封装有mptcp头的ip报文的发送端,即第一代理服务器。具体包括:

s301、第一代理服务器建立与第二代理服务器之间的mptcp隧道,mptcp隧道包括多条tcp连接。

mptcp可以应用于接入网,也可以应用于企业网。接入网是指骨干网络到移动终端之间的所有设备。企业网是指覆盖企业范围的网络。企业之间可以直接通过企业网传输数据。

下面就mptcp应用于不同的场景分别进行说明。

mptcp的应用场景在接入网中,可以在移动终端与服务器之间建立mptcp隧道,建立mptcp隧道的目的在于传输封装有mptcp头的ip报文。

移动终端与网关之间采用tcp;hg与haap之间采用mptcp;haap与服务器之间采用tcp。那么,具体可以在happ与网关之间建立mptcp隧道。当网关为hg时,则在happ与hg之间建立mptcp隧道。相应的,第一代理服务器可以是haap,第二代理服务器可以是hg。

mptcp的应用场景在企业网中,企业网之间的接入路由器采用mptcp,那么就可以在企业网之间的接入路由器之间建立mptcp隧道。第一代理服务器可以是一个企业对应的第一接入路由器,第二代理服务器可以是另一个企业对应的第二接入路由器。即,第一代理服务器与所述第二代理服务器分别为不同企业网的接入路由器。

当然在其他的网络中,网络设备之间采用mptcp,就可以在该网络设备之间建立mptcp隧道,以便传输ip报文。

s302、第一代理服务器接收到封装有udp报文的ip报文后,为封装有udp报文的ip报文封装mptcp头。

为了通过mptcp隧道的tcp连接传输封装有udp报文的ip报文,需要为封装有udp报文的ip报文封装mptcp头。接收端接收到封装有mptcp头的ip报文后,可以依据mptcp头对接收到的ip报文进行排序,从而获得udp报文。

s303、第一代理服务器通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。

mptcp隧道包括多条tcp连接,可以从多条tcp连接中选择出一条或二条以上,通过所选择的tcp连接,发送封装有mptcp头的ip报文。本文中多条tcp连接是指二条以上tcp连接,其中包括两条tcp连接。

由于第一服务器与第二服务器可以通过多条tcp连接传输数据,tcp连接可以包括dsl、移动通信网络和/或wifi等网络链路。因此mptcp隧道适用于dsl、移动通信网络、wifi等网络。

本发明实施例中,首先在第一代理服务器与第二代理服务器之间建立mptcp隧道,第一代理服务器为封装有udp报文的ip报文封装mptcp头。然后,第一代理服务器通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。由于利用标准的mptcp结构封装ip报文,因此解决了兼容性较差的技术问题,进而能够还原出完整的udp报文。

在tcp连接中通过拥塞窗口承载数据。拥塞窗口包括传输中窗口和可用窗口。传输中窗口是正在传输承载数据的窗口,可用窗口是目前没有传输承载数据的窗口。当tcp连接存在可用窗口,则说明该tcp连接有可用资源。当tcp连接没有可用窗口,则说明该tcp连接没有可用资源。

在本发明一个可选的实施例中,mptcp隧道包括的多条tcp连接均没有可用窗口,则说明每条tcp连接均没有可用资源。

参见图4是本发明实施例中发送封装有mptcp头的ip报文的流程示意图,具体包括:

401、第一代理服务器基于每条tcp连接的当前拥塞窗口数目,计算多条tcp连接的当前拥塞窗口比例。

首先确定每条tcp连接的当前拥塞窗口数目,例如第一tcp连接的当前拥塞窗口数目是10,第二tcp连接的当前拥塞窗口数目是6。

然后,计算该多条tcp连接的当前拥塞窗口比例。例如:第一tcp连接和第二tcp连接均没有可用窗口。第一tcp连接与第二tcp连接的当前拥塞窗口比例是10/6。

402、第一代理服务器按照当前拥塞窗口比例扩大多条tcp连接的当前拥塞窗口数目。

按照之前计算得到的当前拥塞窗口比例,扩大tcp连接的当前拥塞窗口数目。例如,第一tcp连接与第二tcp连接的当前拥塞窗口比例是10/6。第一tcp连接的当前拥塞窗口数目的扩大的窗口数目是5,则第二tcp连接的当前拥塞窗口数目的扩大的窗口数目是3。

这样,第一tcp连接的可用窗口数目为5,第二tcp连接的可用窗口数目为3。显然,扩大当前拥塞窗口数目后,当前拥塞窗口比例保持不变。

403、第一代理服务器通过扩大当前拥塞窗口数目的tcp连接,发送封装有mptcp头的ip报文。

经过扩大后的当前拥塞窗口数目,tcp连接均存在可用窗口,则可以在tcp连接的可用窗口中发送封装有mptcp头的ip报文。

在本发明实施例中,按照当前拥塞窗口比例扩大多条tcp连接的当前拥塞窗口数目,这样就可以在tcp连接没有可用窗口的情况下,扩大tcp连接的当前拥塞窗口数目,以发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,多条tcp连接均没有可用窗口,在对该多条tcp连接扩大当前拥塞窗口数目后,第一代理服务器可以按照tcp连接预先设定的优先级,确定发送ip报文的tcp连接;然后,通过发送ip报文的tcp连接,发送封装有mptcp头的ip报文。

例如,第一tcp连接和第二tcp连接均没有可用窗口,第一tcp连接的优先级高于第二tcp连接的优先级。第一代理服务器可以先确定第一tcp连接为发送ip报文的tcp连接,然后通过第一tcp连接的扩大后当前拥塞窗口发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,多条tcp连接均没有可用窗口,在对该多条tcp连接扩大当前拥塞窗口数目后,第一代理服务器可以随机确定tcp连接作为发送ip报文的tcp连接。然后,通过发送ip报文的tcp连接的tcp连接,发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,传输ip报文的tcp连接上发生丢包时,则说明目前的tcp连接并不稳定,则第一代理服务器可以降低发生丢包的tcp连接的当前拥塞窗口数目,以降低丢包的可能性。

在本发明一个可选的实施例中,mptcp隧道包括的多条tcp连接存在可用窗口,则说明有tcp连接存在可用资源。

首先,第一代理服务器在多条tcp连接中,可以依据预先设置tcp连接的优先级,在存在可用窗口的tcp连接中确定传输ip报文的tcp连接。然后通过传输ip报文的tcp连接发送封装有mptcp头的ip报文。

下面结合图5详细说明依据tcp连接的资源调度封装后的ip报文。图5是本发明实施例中在tcp连接上调度资源传输ip报文的示意图。

在第一代理服务器和第二代理服务器之间有两条tcp连接,tcp1和tcp2。

在第一代理服务器和第二代理服务器之间建立mptcp隧道后,对于ip流会在tcp1和tcp2上各有一个tcp子流相对应。预设tcp1的优先级大于tcp2的优先级。

tcp连接上包括拥塞窗口。tcp1的当前拥塞窗口的可用窗口数目和tcp2的当前拥塞窗口的可用窗口数目均为零,也就是说tcp1和tcp2均没有可用资源。

为了保证正常传输ip流,需要扩大当前的拥塞窗口。

首先基于每条链路的当前拥塞窗口数目,计算tcp1和tcp2的当前拥塞窗口比例,即15/10。

其次,按照15/10扩大tcp1的当前拥塞窗口数目和tcp2的当前拥塞窗口数目。如,tcp1的扩大窗口数目为3,tcp2的扩大窗口数目为2。tcp1扩大后的拥塞窗口等于18,tcp2扩大后的拥塞窗口等于12。

最后,按照扩大后的当前拥塞窗口传输数据。可以将6、7和8号包调度到tcp1,将9和10号包调度到tcp2。

其中,在tcp连接上有可用资源即tcp连接的可用窗口的数目不为零,则按照tcp连接的优先级调度ip报文到tcp连接上。

也就是说,一种情况是:tcp1和tcp2的可用窗口的数目均不为零,则tcp1有可用资源,tcp2也有可用资源。那么,可以按照tcp连接的优先级调度,由于tcp1的优先级高于tcp2的优先级,即先将ip报文调度到tcp1的可用资源,然后再将ip报文调度到tcp2的可用资源。具体调度ip报文数据量是依据tcp连接的可用窗口确定的。

在本发明一个可选的实施例中,考虑到封装有udp报文的ip报文太长,在一个正常的数据块中无法一次性完成ip报文的传输。

那么,第一代理服务器就可以根据mptcp隧道的最大分块长度(maxsegmentsize,mss)对封装有udp报文的ip报文进行分片,得到分片后ip报文。最后,对分片后ip报文封装mptcp头。

参见图6是本发明实施例中ip报文基于mss分片示意图,服务器收到ip承载的报文后,由于封装有udp报文的ip报文的长度大于mptcp隧道的mss,因此需要对封装有udp报文的ip报文进行分片。

例如:封装有udp报文的ip报文长度为1500,mss为1000,则分片为1000和520两个报文。一个ip包分片为两个ip包,由于每个ip包均有一个ip头,因此两个报文的总长度会膨胀20个字节。

也就是说,将图6中封装有udp报文的ip报文分为ip承载的udp1和ip承载的udp2。将分片后的两个ip报文调度到tcp上,例如将ip承载的udp1调度到tcp1上,将ip承载的udp2调度到tcp2上。

在hg上,根据ip头的长度字段,从tcp字节流中恢复出完整的ip报文。即得到ip承载的udp1和ip承载的udp2。

在用户处依据mptcp确定ip包的顺序后,重组ip承载的udp1和ip承载的udp2,得到udp报文。

参见图7是本发明另一个实施例中传输报文的方法流程示意图,图7中的步骤可以应用于接收封装有mptcp头的ip报文的接收端,例如第二代理服务器。具体包括:

s701、第二代理服务器建立与第一代理服务器之间的mptcp隧道,mptcp隧道包括tcp连接。

mptcp可以应用于接入网,也可以应用于企业网。接入网是指骨干网络到移动终端之间的所有设备。企业网是指覆盖企业范围的网络。企业之间可以直接通过企业网传输数据。

下面就mptcp应用于不同的场景分别进行说明。

mptcp的应用场景在接入网中,可以在移动终端与服务器之间建立mptcp隧道,建立mptcp隧道的目的在于传输udp报文。

mptcp的应用场景在企业网中,企业网之间的接入路由器采用mptcp,那么就可以在企业网之间的接入路由器之间建立mptcp隧道。第一代理服务器可以是一个企业对应的第一接入路由器,第二代理服务器可以是另一个企业对应的第二接入路由器。即,第一代理服务器与所述第二代理服务器分别为不同企业网的接入路由器。

当然在其他的网络中,网络设备之间采用mptcp,就可以在该网络设备之间建立mptcp隧道,以便传输ip报文。

s702、第二代理服务器通过mptcp隧道的tcp连接,接收到封装有mptcp头的ip报文。

通过mptcp隧道的tcp连接,可以接收到由发送端发送的封装有mptcp头的ip报文。

s703、第二代理服务器依据mptcp头对ip报文排序,基于ip报文的ip报文头解析得到udp报文。

传输ip报文的tcp连接不同,接收到ip报文的先后顺序也是不同的。接收到多个封装有mptcp头的ip报文。可以依据mptcp头对接收到的ip报文排序,然后基于ip报文的ip报文头解析得到udp报文。

在本发明实施例中,第二代理服务器建立与第一代理服务器之间的mptcp隧道,在通过mptcp隧道接收到ip报文后,依据mptcp头对ip报文排序,最终得到udp报文。在传输ip报文是采用标准的mptcp封装结构,解决了兼容性较差的技术问题,从而在接收端能够还原出完整的udp报文。

在本发明一个可选的实施例中,考虑到封装有udp报文的ip报文太长,在一个正常的数据块中无法一次性完成ip报文的传输。因此,在发送端依据mptcp隧道的mss对封装有udp报文的ip报文进行分片。那么,接收端接收到的ip报文需要重组。

具体来说:第二代理服务器去除排序后ip报文的mptcp头得到分片后ip报文。分片后ip报文,即重组之前的ip报文。最后,重组分片后ip报文,再基于重组后ip报文的ip报文头解析得到udp报文。

参见图8是本发明实施例中利用mptcp隧道传输udp报文示意图。

其中,第一代理服务器可以是haap,第二代理服务器可以是hg。首先,在haap与hg之间建立mptcp隧道。

服务器端需要传输的udp报文包括udp1和udp2。

在haap中,ip报文封装mptcp头后,将封装后的ip报文调度到tcp连接上,穿越mptcp隧道。其中,封装后的ip报文包括mptcp报文头、ip报文头和udp。

在hg中,去除从mptcp隧道收到的ip报文的mptcp头后进行排序,udp1报文排在udp2报文之前。

依据ip报文头先解析udp1报文,然后再解析udp2报文,最终得到udp1和udp2。

参见图9是本发明实施例中代理服务器的结构示意图,图9中的代理服务器可以应用于发送封装有mptcp头的ip报文的发送端。具体包括建立模块901、封装模块902和发送模块903。

建立模块901,用于建立与第二代理服务器之间的mptcp隧道,mptcp隧道包括tcp连接。

mptcp可以应用于接入网,也可以应用于企业网。接入网是指骨干网络到移动终端之间的所有设备。企业网是指覆盖企业范围的网络。企业之间可以直接通过企业网传输数据。

下面就mptcp应用于不同的场景分别进行说明。

mptcp的应用场景在接入网中,可以在移动终端与服务器之间建立mptcp隧道,建立mptcp隧道的目的在于传输封装有mptcp头的ip报文。

移动终端与网关之间采用tcp;hg与haap之间采用mptcp;haap与服务器之间采用tcp。那么,具体可以在happ与网关之间建立mptcp隧道。当网关为hg时,则在happ与hg之间建立mptcp隧道。相应的,第一代理服务器可以是haap,第二代理服务器可以是hg。

mptcp的应用场景在企业网中,企业网之间的接入路由器采用mptcp,那么就可以在企业网之间的接入路由器之间建立mptcp隧道。第一代理服务器可以是一个企业对应的第一接入路由器,第二代理服务器可以是另一个企业对应的第二接入路由器。即,第一代理服务器与所述第二代理服务器分别为不同企业网的接入路由器。

当然在其他的网络中,网络设备之间采用mptcp,就可以在该网络设备之间建立mptcp隧道,以便传输ip报文。

封装模块902,用于接收到封装有udp报文的ip报文后,为封装有udp报文的ip报文封装mptcp头。

为了通过mptcp隧道的tcp连接传输封装有udp报文的ip报文,需要封装模块902为封装有udp报文的ip报文封装mptcp头。接收端接收到封装有mptcp头的ip报文后,可以依据mptcp头对接收到的ip报文进行排序,从而获得udp报文。

发送模块903,用于通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。

mptcp隧道包括多条tcp连接,发送模块903可以从多条tcp连接中选择出一条或二条以上,通过所选择的tcp连接,发送封装有mptcp头的ip报文。本文中多条tcp连接是指二条以上tcp连接,其中包括两条tcp连接。

由于第一服务器与第二服务器可以通过多条tcp连接传输数据,tcp连接可以包括dsl、移动通信网络和/或wifi等网络链路。因此mptcp隧道适用于dsl、移动通信网络、wifi等网络。

本发明实施例中,首先建立模块901建立与第二代理服务器之间建立mptcp隧道,封装模块902为封装有udp报文的ip报文封装mptcp头。然后,发送模块903通过mptcp隧道的tcp连接发送封装有mptcp头的ip报文。由于利用标准的mptcp结构封装ip报文,因此解决了兼容性较差的技术问题,进而能够还原出完整的udp报文。

在tcp连接中通过拥塞窗口承载数据。拥塞窗口包括传输中窗口和可用窗口。传输中窗口是正在传输承载数据的窗口,可用窗口没有传输承载数据。当tcp连接存在可用窗口,则说明该tcp连接有可用资源。当tcp连接没有可用窗口,则说明该tcp连接没有可用资源。

在本发明一个可选的实施例中,mptcp隧道包括的多条tcp连接均没有可用窗口,则说明每条tcp连接均没有可用资源。

发送模块903,具体用于基于每条tcp连接的当前拥塞窗口数目,计算多条tcp连接的当前拥塞窗口比例。按照当前拥塞窗口比例扩大多条tcp连接的当前拥塞窗口数目。通过扩大当前拥塞窗口数目的tcp连接,发送封装有mptcp头的ip报文。

在本发明实施例中,发送模块903按照当前拥塞窗口比例扩大多条tcp连接的当前拥塞窗口数目,这样就可以在tcp连接没有可用窗口的情况下,扩大tcp连接的当前拥塞窗口数目,以发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,多条tcp连接均没有可用窗口,发送模块903,具体用于按照多条tcp连接的优先级确定发送ip报文的tcp连接。再通过已确定的发送ip报文的tcp连接,发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,多条tcp连接均没有可用窗口,可以随机确定tcp连接。

发送模块903,具体用于在多条tcp连接中随机确定发送ip报文的tcp连接。然后,通过确定的发送ip报文的tcp连接,发送封装有mptcp头的ip报文。

参见图10是本发明另一个实施例中代理服务器的结构示意图,在图9代理服务器的基础上增加了控制模块904。

在本发明一个可选的实施例中,传输ip报文的tcp连接上发生丢包时,则说明目前的tcp连接并不稳定。

控制模块904,用于传输ip报文的tcp连接上发生丢包时,降低发生丢包的tcp连接的当前拥塞窗口数目。

在本发明一个可选的实施例中,mptcp隧道包括的多条tcp连接存在可用窗口,则说明有tcp连接存在可用资源。

发送模块903,具体用于依据存在可用窗口的tcp连接的优先级确定传输ip报文的tcp连接。最后,通过传输ip报文的tcp连接发送封装有mptcp头的ip报文。

在本发明一个可选的实施例中,考虑到封装有udp报文的ip报文太长,在一个正常的数据块中无法一次性完成ip报文的传输。

封装模块902,具体用于再封装有udp报文的ip报文长度大于mptcp隧道的mss时,根据mss对封装有udp报文的ip报文进行分片,得到分片后ip报文;对分片后ip报文封装mptcp头。

参见图11是本发明再一个实施例中代理服务器的结构示意图,图11中的代理服务器可以应用于接收封装有mptcp头的ip报文的接收端。具体包括建立模块1101、接收模块1102和解析模块1103。

建立模块1101,用于建立与第一代理服务器之间的mptcp隧道,mptcp隧道包括多条tcp连接。

mptcp可以应用于接入网,也可以应用于企业网。当然在其他的网络中,网络设备之间采用mptcp,就可以在该网络设备之间建立mptcp隧道,以便传输ip报文。

接收模块1102,用于通过mptcp隧道的tcp连接,接收到封装有mptcp头的ip报文。

通过mptcp隧道的tcp连接,可以接收到由发送端发送的封装有mptcp头的ip报文。

解析模块1103,用于依据mptcp头对ip报文排序,基于ip报文的ip报文头解析得到udp报文。

传输ip报文的tcp连接不同,接收到ip报文的先后顺序也是不同的。接收到多个封装有mptcp头的ip报文。可以依据mptcp头对接收到的ip报文排序,然后基于ip报文的ip报文头解析得到udp报文。

在本发明实施例中,建立模块1101建立第一代理服务器与第二代理服务器之间的mptcp隧道,接收模块1102在通过mptcp隧道接收到ip报文,解析模块1103依据mptcp头对ip报文排序,最终得到udp报文。在传输ip报文是采用标准的mptcp封装结构,解决了兼容性较差的技术问题,从而在接收端能够还原出完整的udp报文。

在本发明一个可选的实施例中,考虑到封装有udp报文的ip报文太长,在一个正常的数据块中无法一次性完成ip报文的传输。因此,在发送端依据mptcp隧道的mss对封装有udp报文的ip报文进行分片。那么,接收端接收到的ip报文需要重组。

解析模块1102,具体用于去除排序后ip报文的mptcp头得到分片后ip报文。重组分片后ip报文后,基于重组后ip报文的ip报文头解析得到udp报文。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。

在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1