一种确定VPN数据通道的最优MTU的方法和装置与流程

文档序号:11138407阅读:1184来源:国知局
一种确定VPN数据通道的最优MTU的方法和装置与制造工艺

本申请涉及通信技术领域,特别涉及一种确定VPN数据通道的最优MTU的方法和装置。



背景技术:

随着VPN(Virtual Private Network,虚拟专用网络)的应用越来越广泛,人们在体验了VPN丰富的接入特性后,开始对VPN的转发性能提出了更高的要求,以期能够满足快速访问业务的需求。在传统的转发性能优化中,各厂商大都只关注设备端的优化,而在实际的网络传输中,网络链路也会对报文的转发性能造成影响。例如,网络链路中不合适的MTU(Maximum Transmission Unit,最大传输单元)值会降低网络传输的效率。

在现有的MTU选择方案中,大多数网络管理员一般根据经验设置一个网络链路MTU值,或者设置一个比发送端设备MTU小一定数值的MTU,由于实际组网的复杂性,网络管理员设置的MTU值并不一定是最优的,这会导致网络传输的效率受到影响。



技术实现要素:

有鉴于此,本申请提供一种确定VPN数据通道的最优MTU的方法和装置,用于选择VPN数据通道的最优MTU,以解决现有方案中,网络管理员设置的MTU导致网络传输的效率受到影响的问题。

具体地,本申请是通过如下技术方案实现的:

一种确定VPN数据通道的最优MTU的方法,应用于VPN客户端所在的网络设备,所述方法包括:

当成功接入VPN服务端后,读取本地网卡的MTU值;

构造报文长度与读取到的所述本地网卡的MTU值相同的探测报文;

将所述探测报文发送至所述VPN服务端,以使VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的方法中,还包括:

启动预设的重传定时器;

在到达重传定时器的定时时间后,重新发送所述探测报文至所述VPN服务端。

在所述确定VPN数据通道的最优MTU的方法中,还包括:

接收所述VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定出的所述最优MTU值;

将所述VPN数据通道的MTU值设置为所述最优MTU值。

一种确定VPN数据通道的最优MTU的方法,应用于VPN服务端所在的网络设备,所述方法包括:

接收VPN客户端发送的所述探测报文;

根据所述探测报文的长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值;

将所述VPN数据通道的MTU值设置为所述最优MTU值。

在所述确定VPN数据通道的最优MTU的方法中,所述根据所述探测报文的长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值,包括:

接收到报文后,判断所述报文是否为分片报文;

如果所述报文不是分片报文,对所述报文进行解密,并判断解密后的所述报文是否为探测报文;

如果解密后的所述报文为探测报文,获取所述报文的报文长度,并基于所述报文长度确定所述VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的方法中,还包括:

如果所述报文是分片报文,则收集构成一个完整报文的所有分片报文;

对收集到的一个完整报文的所有分片报文进行解密,并判断解密后的完整报文是否为探测报文;

如果所述完整报文是探测报文,获取构成所述完整报文的分片报文中最大的报文长度,并基于所述分片报文中最大的报文长度确定所述VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的方法中,还包括:

将确定的所述VPN数据通道的最优MTU值发送至所述VPN客户端。

一种确定VPN数据通道的最优MTU的装置,应用于VPN客户端所在的网络设备,包括:

读取单元,用于当成功接入VPN服务端后,读取本地网卡的MTU值;

构造单元,用于构造报文长度与读取到的所述本地网卡的MTU值相同的探测报文;

第一发送单元,用于将所述探测报文发送至所述VPN服务端,以使VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的装置中,还包括:

启动单元,用于启动预设的重传定时器;

所述第一发送单元,进一步用于在到达重传定时器的定时时间后,重新发送所述探测报文至所述VPN服务端。

在所述确定VPN数据通道的最优MTU的装置中,还包括:

第一接收单元,用于接收所述VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定出的所述最优MTU值;

第一设置单元,用于将所述VPN数据通道的MTU值设置为所述最优MTU值。

一种确定VPN数据通道的最优MTU的装置,应用于VPN服务端所在的网络设备,所述装置包括:

第二接收单元,用于接收VPN客户端发送的所述探测报文;

确定单元,用于根据所述探测报文的长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值;

第二设置单元,用于将所述VPN数据通道的MTU值设置为所述最优MTU值。

在所述确定VPN数据通道的最优MTU的装置中,所述确定单元,包括:

判断单元,用于接收到报文后,判断所述报文是否为分片报文;

解密单元,用于如果所述报文不是分片报文,对所述报文进行解密,并判断解密后的所述报文是否为探测报文;

获取单元,用于如果解密后的所述报文为探测报文,获取所述报文的报文长度,并基于所述报文长度确定所述VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的装置中,所述确定单元,还包括:

收集单元,用于如果所述报文是分片报文,则收集构成一个完整报文的所有分片报文;

所述解密单元,进一步用于对收集到的一个完整报文的所有分片报文进行解密,并判断解密后的完整报文是否为探测报文;

所述获取单元,进一步用于如果所述完整报文是探测报文,获取构成所述完整报文的分片报文中最大的报文长度,并基于所述分片报文中最大的报文长度确定所述VPN数据通道的最优MTU值。

在所述确定VPN数据通道的最优MTU的装置中,所述装置还包括:

第二发送单元,用于将确定的所述VPN数据通道的最优MTU值发送至所述VPN客户端。

本发明实施例中,VPN客户端通过以所在的网络设备的本地网卡的MTU值构造探测报文,将该探测报文发送至VPN服务端。VPN服务端在接收到上述探测报文后,可以基于该探测报文的报文长度以及上述探测报文是否被分片,来确定VPN数据通道的最优MTU值,从而可以解决了由于管理员基于经验设置MTU值,导致报文被分片或者没有充分利用链路资源,而造成网络传输的效率受到影响的问题。

附图说明

图1是本申请示出的一种确定VPN数据通道的最优MTU的方法的流程图;

图2是本申请示出的另一种确定VPN数据通道的最优MTU的方法的流程图;

图3是本申请示出的一种确定VPN数据通道的最优MTU的装置的逻辑框图;

图4是本申请示出的一种确定VPN数据通道的最优MTU的装置的硬件结构图;

图5是本申请示出的另一种确定VPN数据通道的最优MTU的装置的逻辑框图;

图6是本申请示出的另一种确定VPN数据通道的最优MTU的装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

随着VPN的应用越来越广泛,人们在体验了VPN丰富的接入特性后,开始对VPN的转发性能提出了更高的要求,以期能够满足快速访问业务的需要。

在传统的转发性能优化中,各厂商大都只关注设备端的优化,使用了芯片加解密、驱动快速转发技术,大大的提升了设备端的吞吐量和转发性能。但是在实际的网络传输中,网络链路的MTU值也会对报文的转发性能造成一定影响。

现有的处理方案里,网络管理员通常是根据经验设置一个MTU值;比如,当VPN客户端与VPN服务端之间通过TCP连接承载业务数据时,则可以通过设置TCP连接的MSS(Maximum Segment Size,最大分段大小)值来实现。

然而,由管理员基于经验设置MTU值,一方面,可能因为设置的MTU值大于中转设备的MTU值而导致报文在传输过程中被分片,到达VPN服务端后又被重组,引起报文处理的延时和重传。

另一方面,也有可能设置的MTU值小于网络链路中的MTU值,虽然避免报文被分片,但是会造成链路资源的浪费。

可见,网络管理员根据经验设置的MTU并不一定是最优的,这会导致网络传输的效率受到影响。

为解决上述问题,在本申请实施例中,VPN客户端通过以所在的网络设备的本地网卡的MTU构造探测报文,将该探测报文发送至VPN服务端。VPN服务端在接收到上述探测报文后,可以基于该探测报文的报文长度以及上述探测报文是否被分片,来确定VPN数据通道的最优MTU值,从而可以解决由于管理员基于经验设置MTU值,导致报文被分片或者没有充分利用链路资源,而造成网络传输的效率受到影响的问题。

参见图1,为本申请示出的一种确定VPN数据通道的最优MTU的方法的流程图,该流程图从VPN客户端侧进行描述;所述方法包括以下步骤:

步骤101:当成功接入VPN服务端后,读取本地网卡的MTU值。

步骤102:构造报文长度与读取到的所述本地网卡的MTU值相同的探测报文。

步骤103:将所述探测报文发送至所述VPN服务端,以使VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

与上述从VPN客户端侧描述的确定VPN数据通道的最优MTU的方法的流程图对应,参见图2,为本申请示出的另一种确定VPN数据通道的最优MTU的方法的流程图,该流程图从VPN服务端侧进行描述;所述方法包括以下步骤:

步骤201:接收VPN客户端发送的所述探测报文。

步骤202:根据所述探测报文的长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

步骤203:将所述VPN数据通道的MTU值设置为所述最优MTU值。

如前所述,在现有的处理方案中,管理员根据经验选择的VPN客户端所在网络设备的发送报文的MTU值,可能因与网络链路的中转设备的MTU值有差异,而对网络链路的传输效率产生影响。

在本实施例中,VPN客户端以所在的网络设备的本地网卡的MTU值构造探测报文,将探测报文发送至VPN服务端。VPN服务端接收到上述探测报文后,基于该探测报文的报文长度以及该探测报文是否被分片,确定出网络链路的最优MTU值,并设置VPN数据通道的MTU值为上述最优MTU值。

具体而言,VPN客户端首先可以在成功接入VPN服务端后,读取本地网卡的MTU值。其中,本地网卡是该VPN客户端所在的网络设备的网卡。

上述VPN客户端读取到本地网卡的MTU值后,构造报文长度与上述本地网卡的MTU值相同的探测报文。

在本实施例中,上述VPN客户端可以将上述探测报文发送至上述VPN服务端。VPN服务端接收到上述探测报文后,基于上述探测报文的长度以及上述探测报文是否被分片,来确定网络链路的最优MTU值。

在示出的一种实施方式中,上述VPN服务端在接收到上述VPN客户端发送的报文时,接收到的报文可能是探测报文,也可能是普通的数据报文;并且,该报文可能是完整报文,也可能是分片报文。首先可以判断该数据报文是否为分片报文。

一方面,如果该报文不是分片报文,则可以将该报文直接按照普通解密流程进行解密。解密完成后,可以先判断该报文是否为探测报文。

当该报文是上述探测报文时,此时上述VPN服务端能接收到未经分片的探测报文,则说明上述VPN服务端与上述VPN客户端之间的网络链路上的中转设备的MTU值大于上述VPN客户端所在的网络设备的网卡的MTU值。在这种情况下,可以获取接收到的该报文的报文长度(即上述VPN客户端所在的网络设备的网卡的MTU值),并将报文的报文长度确定为上述网络链路的最优MTU。

通过这种方式,后续上述VPN客户端在以上述VPN客户端所在的网络设备的网卡的MTU值发送数据报文时,可以使上述网络链路的效率达到现有硬件支持下的最大值。

当然,当该报文是普通的数据报文时,此时可以直接转发该报文即可。

另一方面,如果该报文是分片报文,则可以收集构成一个完整报文的所有分片报文,在收集完成后,可以将构成一个完整报文的所有分片报文按链表形式组织后,再按照分片解密流程进行解密。解密完成后,可以先判断上述完整报文是否为探测报文。

当上述完整报文是上述探测报文时,则说明网络链路中存在任一中转设备的MTU值小于上述VPN客户端所在的网络设备的网卡的MTU值。因此,上述完整报文对应的链表中,报文长度最大的分片报文的报文长度即为网络链路的中转设备中的最小MTU值。上述VPN客户端以超出上述最小MTU值发送数据报文,数据报文一定会被分片。获取上述最小MTU值,此即为VPN数据通道的最优MTU值。

当上述完整报文是普通的数据报文时,可以转发上述完整报文。

在本实施例中,上述VPN服务端确定出VPN数据通道的最优MTU值后,可以将VPN数据通道的MTU值设置为上述最优MTU值。

下面以TCP连接为例进行说明。当然,也可以是其它类型的网络连接,比如:UDP连接,在此不再赘述。

当上述VPN数据通道是TCP连接时,可以基于该最优MTU值,为上述VPN服务端与VPN客户端之间的TCP连接设置最优MSS值。

其中,上述最优MSS值可以由上述最优MTU值减去TCP报文头长度得到。当将上述TCP连接的MSS值设置为最优MSS值后,后续上述VPN客户端将基于TCP连接采用最优MSS值向上述VPN服务端发送数据报文:

一方面,采用最优MSS值发送数据报文,将不再会因为MSS值设置的过大被无效分片,从而可以避免报文处理中的延时和重传;

另一方面,采用最优MSS值发送数据报文,将不再会因为MSS值设置的过小而浪费网络链路的资源,从而可以充分利用了网络链路的资源,提升网络传输的效率。

在本实施例中,除了以上描述的由上述VPN服务端直接设置VPN数据通道的最优MTU值以外,还可以由上述VPN客户端来设置VPN数据通道的最优MTU值。

在示出的另一种实施方式中,上述VPN服务端在确定出上述最优MTU值后,也可以将上述最优MTU值发送至上述VPN客户端。

上述VPN客户端在接收到上述最优MTU值后,可以替代上述VPN服务端,将与上述VPN服务端之间的VPN数据通道的MTU值设置为最优MTU值。如果上述VPN客户端完成这步动作,则上述VPN服务端不再重复操作。

VPN客户端与VPN服务端之间的实际网络链路通过的中转设备,可能随时会有变化,所以限制网络链路的MTU值的中转设备可能会有变化,网络链路的实际MTU值因此会改变。

在本实施例中,在上述VPN客户端,可以启动一个预先设置的重传定时器,该重传定时器设定了探测报文的重传时间,并对该重传时间进行计时,该重传时间即为定时时间,在上述重传定时器完成计时后,重新开始计时。在到达该重传定时器的定时时间后,重新发送上述探测报文至上述VPN服务端。

可见,上述VPN客户端可以周期性地发送探测报文至上述VPN服务端,因此VPN数据通道的MTU总是针对网络链路的实际中转设备而设置的最优值,保证了网络传输的效率最高。

综上所述,VPN客户端以所在的网络设备的网卡支持的MTU值,向VPN服务端发送探测报文。VPN服务端接收到VPN客户端发送的上述探测报文后,根据该探测报文的长度以及上述探测报文是否被分片,确定与VPN客户端之间的VPN数据通道的最优MTU值。

如果该探测报文不是分片报文,则说明VPN客户端能够发出的MTU值小于网络链路的MTU值,因此客户端支持的MTU值为最优MTU值;

如果该探测报文是分片报文,则说明VPN客户端能够发出的MTU值大于网络链路的MTU值,分片报文中报文长度的最大值是网络链路所能通过的最大报文长度。因此,分片报文中的报文长度的最大值为VPN数据通道的最优MTU值。

获得上述最优MTU值后,将VPN客户端与VPN服务端之间的VPN数据通道的MTU值设置为上述最优MTU值。

通过上述措施,可以确保选择的VPN数据通道的MTU值是最优值,使网络链路的传输效率最高。解决了现有方案中,网络管理员设置的MTU值导致网络传输的效率受到影响的问题。

与本申请确定VPN数据通道的最优MTU的方法的实施例相对应,本申请还提供了用于执行上述方法实施例的装置的实施例。

参见图3,为本申请示出的一种确定VPN数据通道的最优MTU的装置的逻辑框图,该装置应用于VPN客户端所在的网络设备。

如图3所示,该确定VPN数据通道的最优MTU的装置30包括:

读取单元310,用于当成功接入VPN服务端后,读取本地网卡的MTU值。

构造单元320,用于构造报文长度与读取到的所述本地网卡的MTU值相同的探测报文。

第一发送单元330,用于将所述探测报文发送至所述VPN服务端,以使VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

在本例中,所述装置30还包括:

启动单元340,用于启动预设的重传定时器。

所述第一发送单元330,进一步用于在到达重传定时器的定时时间后,重新发送所述探测报文至所述VPN服务端。

在本例中,所述装置30还包括:

第一接收单元350,用于接收所述VPN服务端基于所述探测报文的报文长度以及所述探测报文是否被分片,确定出的所述最优MTU值。

第一设置单元360,用于将所述VPN数据通道的MTU值设置为所述最优MTU值。

本申请确定VPN数据通道的最优MTU的装置的实施例可以应用在VPN客户端所在的网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在VPN客户端所在的网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请确定VPN数据通道的最优MTU的装置所在VPN客户端所在的网络设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的VPN客户端所在的网络设备通常根据该确定VPN数据通道的最优MTU的装置的实际功能,还可以包括其他硬件,对此不再赘述。

参见图5,为本申请示出的一种确定VPN数据通道的最优MTU的装置的逻辑框图,该装置应用于VPN服务端所在的网络设备。

如图5所示,该确定VPN数据通道的最优MTU的装置50包括:

第二接收单元510,用于接收VPN客户端发送的所述探测报文。

确定单元520,用于根据所述探测报文的长度以及所述探测报文是否被分片,确定VPN数据通道的最优MTU值。

第二设置单元530,用于将所述VPN数据通道的MTU值设置为所述最优MTU值。

在本例中,所述确定单元520,包括:

判断单元521,用于接收到报文后,判断所述报文是否为分片报文。

解密单元522,用于如果所述报文不是分片报文,对所述报文进行解密,并判断解密后的所述报文是否为探测报文。

获取单元523,用于如果解密后的所述报文为探测报文,获取所述报文的报文长度,并基于所述报文长度确定所述VPN数据通道的最优MTU值。

在本例中,所述确定单元520,还包括:

收集单元524,用于如果所述报文是分片报文,则收集构成一个完整报文的所有分片报文。

所述解密单元522,进一步用于对收集到的一个完整报文的所有分片报文进行解密,并判断解密后的完整报文是否为探测报文。

所述获取单元523,进一步用于如果所述完整报文是探测报文,获取构成所述完整报文的分片报文中最大的报文长度,并基于所述分片报文中最大的报文长度确定所述VPN数据通道的最优MTU值。

在本例中,所述装置50,还包括:

第二发送单元540,用于将确定的所述VPN数据通道的最优MTU值发送至所述VPN客户端。

本申请确定VPN数据通道的最优MTU的装置的实施例可以应用在VPN服务端所在的网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在VPN服务端所在的网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请确定VPN数据通道的最优MTU的装置所在VPN服务端所在的网络设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的VPN服务端所在的网络设备通常根据该确定VPN数据通道的最优MTU的装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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