基于mtu值的中间件与移动终端的数据传输方法及系统的制作方法

文档序号:8006196阅读:275来源:国知局
基于mtu值的中间件与移动终端的数据传输方法及系统的制作方法
【专利摘要】本发明提供了一种基于MTU值的中间件与移动终端的数据传输方法及系统,其中的方法包括,根据移动终端的数据传输请求查询传输路径的路径MTU值;如果未查询到传输路径的路径MTU值,则禁止传输路径中的数据包分片,并根据数据包默认的MTU值获取传输路径的路径MTU值;根据获取的传输路径的路径MTU值在中间件和移动终端之间进行数据传输;如果查询到传输路径的路径MTU值,根据查询到的传输路径的路径MTU值在中间件和移动终端之间进行数据传输。通过本发明,能够保证数据包在传输过程中不会被分片,提升数据传输效率,进而加快浏览器客户端展现页面的速度,提升用户体验。
【专利说明】基于MTU值的中间件与移动终端的数据传输方法及系统
【技术领域】
[0001]本发明涉及移动终端数据通信【技术领域】,更为具体地,涉及一种基于MTU值的中间件与移动终端的数据传输方法及系统。
【背景技术】
[0002]路径MTU (Maximum Transmission Unit,最大传输单元)被定义为从源地址到目的地址所经过“路径”上的所有IP (Internet Protocol)跳的最大传输单元的最小值。网络上各种设备的MTU值并非按照统一标准设定,设备MTU值大小不定,如果按照统一标准来设定所有连接的MTU值,会导致某些路径MTU较小的区域数据传输效率下降,例如某个TCP(Transmission Control Protocol)连接传输的最大数据单元超过路径的MTU值,数据包将会被分片,而数据包的分片会导致数据传输效率降低,进而影响移动终端与中间件的数据传输速度。
[0003]针对上述问题,已有的解决方法如下:分组网络设备根据预设的MSS参数阈值对终端和服务器间的传输控制协议TCP连接消息中携带的最大传输单元MSS参数值进行调整,并将调整后的TCP连接消息发送出去;终端或服务器通过TCP连接消息中所携带的MSS参数获取对终端支持的最大报文段长度,将其与自己支持的最大报文段长度进行比较,从中选择较小的值对TCP传输数据进行分段处理。通过将MSS参数值进行调整,能够使分组网络设备之间传输的使用隧道协议封装后的终端和服务器之间的数据包长度不大于分组网络设备之间的路径MTU(最大传输单元),因此能够减少分组网络设备间的IP包分片,降低数据包处理的时延,并提高分组设备的处理能力。
[0004]但是,上述解决方法中存在如下问题:在根据预设的MSS参数阈值对终端和服务器间的传输控制协议TCP连接消息中携带的最大传输单元MSS参数值进行调整前,数据包会被分片,从而导致数据传输效果降低。
[0005]因此,需要一种新的中间件与移动终端数据传输的方法。

【发明内容】

[0006]鉴于上述问题,本发明的目的是提供一种基于MTU值的中间件与移动终端的数据传输方法及系统,以解决数据包在传输过程中被分片的问题。
[0007]本发明提供一种基于MTU值的中间件与移动终端的数据传输方法,包括:
[0008]根据移动终端的数据传输请求查询传输路径的路径MTU值;
[0009]如果未查询到传输路径的路径MTU值,则禁止传输路径中的数据包分片,并根据数据包默认的MTU值获取传输路径的路径MTU值;
[0010]根据获取的传输路径的路径MTU值在中间件和移动终端之间进行数据传输。
[0011]另一方面,本发明还提供一种基于MTU值的中间件与移动终端的数据传输系统,包括:
[0012]路径MTU值查询模块,用于根据移动终端的数据传输请求查询传输路径的路径MTU 值;
[0013]路径MTU值获取模块,用于在路径MTU值查询模块未查询到传输路径的路径MTU值时,禁止传输路径中的数据包分片,并根据数据包的MTU值获取传输路径的路径MTU值;
[0014]数据传输模块,用于根据获取到的传输路径的路径MTU值在中间件和移动终端之间进行数据传输。
[0015]利用上述根据本发明提供的基于MTU值探测进行中间件与移动终端数据传输的方法及系统,通过设置发送数据包的IP头标志为禁止分片,将传输路径中设备的MTU值与数据包默认的MTU值进行对比,如果设备的MTU值小于数据包默认的MTU值,则该设备丢弃该数据包,返回一个携带该设备的MTU值的ICMP数据包,并将设备的MTU值作为传输路径的路径MTU值,因此,能够保证数据包在传输过程中不会被分片,提升数据传输效率,进而加快浏览器客户端展现页面的速度,提升用户体验。
[0016]为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
【专利附图】

【附图说明】
[0017]通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
[0018]图1为根据本发明的基于MTU值的中间件与移动终端的数据传输方法流程示意图;
[0019]图2为根据本发明实施例的基于MTU值的中间件与移动终端的数据传输流程;
[0020]图3为根据本发明实施例的基于MTU值的中间件与移动终端的数据传输方法的链路图;
[0021]图4为根据本发明实施例的基于MTU值的中间件与移动终端的数据传输方法的数据交互流程图;
[0022]图5为根据本发明的基于MTU值的中间件与移动终端的数据传输系统的方框图。
[0023]在所有附图中相同的标号指示相似或相应的特征或功能。
【具体实施方式】
[0024]以下将结合附图对本发明的具体实施例进行详细描述。
[0025]针对数据包在传输过程中被分片的问题,本发明通过设置发送数据包的IP头标志为禁止分片(DF,Don’t Fragment),将传输路径中的设备的MTU值与数据包默认的MTU值进行对比,传输路径上MTU值比当前数据包小的设备会丢弃该数据包,给“中间件”返回一个ICMP (Internet Control Message Protocol)数据包并携带该设备的MTU值,允许“中间件”根据该设备的MTU值调整自身数据包大小,使得“中间件”自身的数据包大小等于或者小于该设备的MTU值;从而避免数据包在传输过程中被分片,提高数据传输效率。
[0026]由于目前主要以手机作为移动互联网载体,因此,在下面本发明【具体实施方式】的表述中,“移动终端”、“手机”均是指用户访问移动互联网所使用的目标载体,同时可以将“手机”理解为“移动终端”的一种但不是唯一的一种具体表现形式。
[0027]另外,本发明在对【具体实施方式】进行表述时所用到的“中间件”指的可以是服务器,也可以是一种独立的系统软件或者服务程序。为了表述的方便,在下面的实施例中将以服务器作为中间件。
[0028]图1示出了根据本发明的基于MTU值的中间件与移动终端的数据传输方法流程。
[0029]如图1所示,当手机向中间件发送Web页面请求时,服务器根据手机的请求查询传输路径的路径MTU值(步骤S110);如果未查询到传输路径的路径MTU值,则服务器禁止传输路径中的数据包分片,并根据数据包默认的MTU值获取传输路径的路径MTU值(步骤S120);在获取到传输路径的路径MTU值后,在步骤S130步骤中,服务器根据获取到的传输路径的路径MTU值与手机进行数据传输。
[0030]为了更为详细地说明本发明提供的基于MTU值的中间件与移动终端的数据传输方法,图2示出了根据本发明实施例的基于MTU值的中间件与移动终端的数据传输流程。
[0031]如图2所示,本发明提供的基于MTU值的中间件与移动终端的数据传输方法包括:
[0032]S210:服务器等待连接。
[0033]S220:手机连接服务器,请求Web页面。
[0034]S230:服务器判断手机所属位置是否改变。
[0035]其中,可以以手机所在的城市是否发生改变为标准判断手机所属位置是否发生改变,如果手机在同一个城市的不同城区,服务器手机所属位置不发生改变,如果手机从所在的城市被带到另一个城市,则服务器判断手机所属位置发生改变。
[0036]S240:如果手机所属位置改变,或者是新接入的手机,服务器设置路径MTU探测标记。
[0037]S250:如果手机所属位置未改变,则查询该手机以前的路径MTU值,如果查询不到该手机以前的路径MTU值,则由服务器设置路径MTU探测标记;如果查询到该手机以前的路径MTU值,则把该手机以前的路径MTU值设置成当前TCP连接的MTU值。
[0038]需要说明的是,由于服务器根据手机Web页面的请求发送数据包返还给手机,所以当前TCP连接的MTU值即为传输路径中数据包的MTU值,并以服务器默认的MTU值作为传输路径中数据包的MTU值的初始值。
[0039]S260:检测路径MTU探测标记是否被设置,如果路径MTU探测标记被设置,执行步骤S270,如果路径MTU探测标记未被设置,则执行步骤S290。
[0040]S270:开启路径MTU探测进程,路径MTU探测进程通过设置发送数据包的IP头标志为禁止分片(DF,Don’t Fragment ),将传输路径中设备的MTU值与所述数据包默认的MTU值进行对比,路径上MTU值比当前数据包MTU值小的设备会丢弃该数据包,给服务器返回一个ICMP (Internet Control Message Protocol)数据包并携带该设备的MTU值,服务器根据该设备的MTU值调整将要发送的数据包的MTU值,使得服务器将要发送的数据包的MTU值等于或者小于该设备的MTU值。
[0041]也就是说,将返回的设备MTU值作为服务器将要发送的数据包的MTU值,即将返回的设备MTU值作为传输路径的路径MTU值。
[0042]将传输路径中设备的MTU值与所述数据包默认的MTU值进行对比的过程中,如果路径上MTU值比当前数据包MTU值大,则当前数据包会通过该设备,路径MTU探测进程探测传输路径中下一个设备的MTU值是否小于当前数据包MTU值。
[0043]S280:将在S270步骤中找到的路径MTU值(路径MTU探测进程的探测结果)写入数据库。
[0044]S290:服务器通过查询存储在数据库中的路径MTU值与手机进行数据交互。
[0045]为了进一步说明本发明提供的基于MTU值的中间件与移动终端的数据传输方法,图3示出了根据本发明实施例的基于MTU值的中间件与移动终端的数据传输方法的链路。
[0046]如图3所示,本发明实施例从左边的服务器到右边的手机一共有三条链路,分别是:
[0047]第一条链路:服务器一PATH_B—手机;
[0048]第二条链路:服务器---PATH_C—手机;
[0049]第三条链路:服务器---PATH_A—手机。
[0050]其中,第一条链路的路径MTU值为1200 ;第二条链路的路径MTU值为1500 ;第三条链路的路径MTU值为1400。
[0051]现有大多数服务器的TCP连接都使用以太网默认的MTU值(1500)传输,本发明实施例的服务器就采用1500作为服务器的MTU值,而第一条链路(PATH_B)和第三条链路(PATH_A)的路径MTU值分别是1200和1400,因此数据包通过第一条链路(PATH_B)和第三条链路(PATH_A)将会被第一条链路(PATH_B)和第三条链路(PATH_A)上的设备分片,如果启用实时的路径MTU探测机制,即,通过设置路径MTU探测标记,开启路径MTU探测进程,将探测结果写入到数据库,则服务器与手机的TCP连接的最大传输单元不超过1200,那么通过所有路径的数据包将不会被分片,数据传输效率会有提升。
[0052]为了更详细的说明上述的路径MTU探测机制,图4示出了根据本发明实施例的基于MTU值探测进行中间件与手机数据传输的方法的数据交互流程。
[0053]如图4所示,服务器使用系统默认的MTU值1500发送数据包,但有的路径上的设备Rl的MTU值是1400 (路径MTU值是1400),服务器开启的路径MTU探测进程把路径上的设备R2将自身MTU值与接收的数据包值进行对比,发现设备Rl自身MTU值1400比当前数据包的MTU值1500小,则设备Rl查看数据包的标记,如果发现有探测标记表示禁止分片,则丢弃该数据包,向服务器返回一个ICMP (Internet Control Message Protocol,因特网控制报文协议)数据包并携带该设备Rl的MTU值1400,表示发送端需调整数据包大小为1400才能接收,服务器接收到后,将探测值记录到数据库为MTU值1400,那么后续只会发不超过1400大小的数据包。
[0054]根据上述数据交互流程,服务器同样能接收到路径上的设备R2返回的ICMP数据包并携带该设备R2的MTU值1200,由于当前服务器数据库中储存的路径MTU值为1400,所以服务器会更新数据库的路径MTU值,将新的路径MTU值(路径MTU探测进程的探测值)1200记录到数据库中,记录到数据库为MTU值1200,那么后续只会发不超过1200大小的数据包。循环上述流程,直到服务器发送的数据包到达手机为止,服务器发送的数据包从服务器端到手机端传输的过程中都不会被分片。
[0055]与上述方法相对应,本发明还提供一种基于MTU值的中间件与移动终端的数据传输系统。图5示出了根据本发明的基于MTU值的中间件与移动终端的数据传输系统的逻辑结构。
[0056]如图5所示,本发明提供的基于MTU值探测进行中间件与手机数据传输的系统500包括路径MTU值查询模块510、路径MTU值获取模块520、数据传输模块530。
[0057]其中,路径MTU值查询模块510用于根据移动终端的数据传输请求查询传输路径的路径MTU值;路径MTU值获取模块520用于在路径MTU值查询模块510未查询到传输路径的路径MTU值时,禁止传输路径中的数据包分片,并根据数据包的MTU值获取传输路径的路径MTU值;数据传输模块530用于根据获取到的传输路径的路径MTU值在中间件和移动终端之间进行数据传输。
[0058]其中,在本发明的一个【具体实施方式】中,基于MTU值探测进行中间件与手机数据传输的系统500还包括移动终端位置检测模块(图未示出),用于判断所述移动终端的位置是否改变;如果移动终端的位置改变,则路径MTU值获取模块禁止传输路径中的数据包分片,并根据数据包的默认MTU值获取传输路径的路径MTU值;如果移动终端的位置未改变,查询移动终端设置的路径MTU值,如果未查询到移动终端设置的路径MTU值,则路径MTU值获取模块禁止传输路径中的数据包分片,并根据数据包默认的MTU值获取传输路径的路径MTU值;如果查询到移动终端设置的路径MTU值,则将移动终端设置的路径MTU值设置为传输路径的路径MTU值。
[0059]另外,在本发明的另一个【具体实施方式】中,路径MTU值获取模块520进包括路径MTU探测标记设置单元(图未示出)和路径MTU探测进程开启单元(图未示出)。
[0060]其中,路径MTU探测标记设置单元用于设置路径MTU探测标记;路径MTU探测进程开启单元用于开启路径MTU探测进程。其中,在路径MTU探测进程中设置发送数据包的IP头标志为禁止分片,将传输路径中设备的MTU值与数据包的MTU值进行对比,如果传输路径中设备的MTU值小于数据包的MTU值,则该设备丢弃该数据包,返回一个携带设备的MTU值的ICMP数据包,并将设备的MTU值作为传输路径的路径MTU值。
[0061]如果路径MTU值查询模块510查询到传输路径的路径MTU值,数据传输模块530则根据查询到的传输路径的路径MTU值在中间件和移动终端之间进行数据传输。
[0062]再者,在本发明的另一个【具体实施方式】中,数据传输模块530还可以包括路径MTU值记录单元(图未示出),用于在获得传输路径的路径MTU值后,将获得的传输路径的路径MTU值写入数据库;数据传输模块530根据写入数据库的传输路径的路径MTU值在中间件和所述移动终端之间进行数据传输。
[0063]本发明提供的基于MTU值探测进行中间件与手机数据传输的方法及系统,通过实时探测链路上的路径MTU值,动态调整TCP连接的最大传输单元,避免数据包被分片,进而提高中间件与移动终端的数据传输效率,加快网页的展现速度,提升用户体验。
[0064]如上参照附图以示例的方式描述了根据本发明的基于MTU值探测进行中间件与手机数据传输的方法及系统。但是,本领域技术人员应当理解,对于上述本发明所提出的基于MTU值探测进行中间件与手机数据传输的方法及系统,还可以在不脱离本
【发明内容】
的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
【权利要求】
1.基于MTU值的中间件与移动终端的数据传输方法,包括: 根据移动终端的数据传输请求查询传输路径的路径MTU值; 如果未查询到所述传输路径的路径MTU值,则禁止传输路径中的数据包分片,并根据所述数据包默认的MTU值获取所述传输路径的路径MTU值; 根据获取的所述传输路径的路径MTU值在所述中间件和移动终端之间进行数据传输。
2.如权利要求1所述的基于MTU值的中间件与移动终端的数据传输方法,其中,在所述根据移动终端的数据传输请求查询传输路径的路径MTU值步骤后包括:判断所述移动终端的位置是否改变; 如果所述移动终端的位置改变,则进行所述禁止所述传输路径中的数据包分片,并根据所述数据包的默认MTU值获取所述传输路径的路径MTU值的步骤; 如果所述移动终端的位置未改变,则查询所述移动终端设置的路径MTU值,如果未查询到所述移动终端设置的路径MTU值,则进行所述禁止传输路径中的数据包分片,并根据所述数据包默认的MTU值获取所述传输路径的路径MTU值的步骤;如果查询到所述移动终端设置的路径MTU值,则将所述移动终端设置的路径MTU值设置为所述传输路径的路径MTU值。
3.如权利要求2所述的基于MTU值的中间件与移动终端的数据传输方法,其中,所述禁止传输路径中的数据包分片,并根据所述数据包默认的MTU值获取所述传输路径的路径MTU值的步骤,包括: 通过设置路径MTU探测标记,开启路径MTU探测进程;其中,. 在所述路径MTU探测进程中设置发送数据包的IP头标志为禁止分片;并且, 将所述传输路径中的设备的MTU值与所述数据包默认的MTU值进行对比,如果所述设备的MTU值小于所述数据包默认的MTU值,则所述设备丢弃所述数据包,返回一个携带所述设备的MTU值的ICMP数据包,并将所述设备的MTU值作为传输路径的路径MTU值。
4.如权利要求1所述的基于MTU值的中间件与移动终端的数据传输方法,其中,在所述根据移动终端的数据传输请求查询传输路径的路径MTU值的步骤中,如果查询到所述传输路径的路径MTU值,则直接根据所述传输路径的路径MTU值在所述中间件和所述移动终端之间进行数据传输。
5.如权利要求1~4中任一项所述的基于MTU值的中间件与移动终端的数据传输方法,其中,在所述获取传输路径的路径MTU值的步骤后,包括: 将获取的所述传输路径的路径MTU值写入数据库;以及, 根据所述数据库写入的传输路径的路径MTU值在所述中间件和所述移动终端之间进行数据传输。
6.一种基于MTU值的中间件与移动终端的数据传输系统,包括: 路径MTU值查询模块,用于根据移动终端的数据传输请求查询传输路径的路径MTU值; 路径MTU值获取模块,用于在所述路径MTU值查询模块未查询到所述传输路径的路径MTU值时,禁止传输路径中的数据包分片,并根据所述数据包的MTU值获取所述传输路径的路径MTU值; 数据传输模块,用于根据获取到的所述传输路径的路径MTU值在所述中间件和移动终端之间进行数据传输。
7.如权利要求6所述的基于MTU值的中间件与移动终端的数据传输系统,还包括: 移动终端位置检测模块,用于判断所述移动终端的位置是否改变;其中, 如果所述移动终端的位置改变,则所述路径MTU值获取模块禁止所述传输路径中的数据包分片,并根据所述数据包的默认MTU值获取所述传输路径的路径MTU值; 如果所述移动终端的位置未改变,查询所述移动终端设置的路径MTU值,如果未查询到所述移动终端设置的路径MTU值,则路径MTU值获取模块禁止所述传输路径中的数据包分片,并根据所述数据包默认的MTU值获取所述传输路径的路径MTU值;如果查询到所述移动终端设置的路径MTU值,则将所述移动终端设置的路径MTU值设置为所述传输路径的路径MTU值。
8.如权利要求7所述的基于MTU值的中间件与移动终端的数据传输系统,其中,所述路径MTU值获取模块包括: 路径MTU探测标记设置单元,用于设置路径MTU探测标记; 路径MTU探测进程开启单元,用于开启路径MTU探测进程;其中,在所述路径MTU探测进程中设置发送数据包的IP头标志为禁止分片,将传输路径中设备的MTU值与所述数据包的MTU值进行对比,如果所述设备的MTU值小于所述数据包MTU值,则所述设备丢弃所述数据包,返回一个携带所述设备的MTU值的ICMP数据包,并将所述设备的MTU值作为传输路径的路径MTU值。
9.如权利要求6所述的基于MTU值的中间件与移动终端的数据传输系统,其中,. 在路径MTU值查询模块根据移动终端的数据传输请求查询传输路径的路径MTU值时,如果所述路径MTU值查询模块查询到所述传输路径的路径MTU值,所述数据传输模块则根据查询到的所述传输路径的路径MTU值在中间件和移动终端之间进行数据传输。
10.如权利要求6至9任一项所述的基于MTU值的中间件与移动终端的数据传输系统,其中, 所述数据传输模块包括路径MTU值记录单元,用于在获得所述传输路径的路径MTU值后,将获得的所述传输路径的路径MTU值写入数据库; 所述数据传输模块根据写入所述数据库的传输路径的路径MTU值在所述中间件和所述移动终端之间进行数据传输。
【文档编号】H04L12/805GK103475596SQ201310391194
【公开日】2013年12月25日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】梁捷, 陈华彬 申请人:广州市动景计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1