多wan口的网关、实现http下载的方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种多WAN 口的网关及多WAN 口的网关实现HTTP下载的方法及系统。
【背景技术】
[0002]多WAN 口(广域网接口)网关具有物理上的多个WAN 口作为外网接入,内网PC (计算机)就可以经过多个WAN 口同时使用多个外网接入线路,大幅提高了网络带宽。
[0003]现在很多下载工具为了充分利用多WAN 口网关的WAN 口,都是采用了多会话下载的形式下载,即内网PC同时发出多条下载请求,多WAN 口网关将这些下载请求分配到不同的WAN 口进行下载,进而实现网络带宽叠加,提高下载速度。但是HTTP (超文本传输协议)下载是单会话下载,在现有的多WAN 口网关上一条会话只能通过一个WAN 口发送至外网服务器,再由发送的WAN接收请求下载的数据,下载速度最大只能为这一个WAN 口的最大下载速度,这样造成了其它的WAN 口的资源浪费,无法实现带宽叠加。
【发明内容】
[0004]本发明解决了现有技术中只能通过一个WAN 口实现HTTP下载、下载速度受限于WAN 口的最大下载速度的缺陷,提供了一种能够通过多个WAN 口实现高速HTTP下载的多WAN 口的网关、实现HTTP下载的方法及系统。
[0005]本发明是通过下述技术方案解决上述技术问题的:
[0006]一种多WAN 口的网关实现HTTP下载的方法,其特点是,该方法包括:
[0007]S1、该网关将内网PC的一 HTTP GET请求包(一种符合HTTP协议的数据包)发送至外网服务器,并记录该HTTP GET请求包请求下载的内容、TCP head(传输控制协议的头信息)和IP head (网络之间互连的协议的头信息),TCP head包括seq、ack等字段,IP head包括内网PC的IP和外网服务器的IP等;
[0008]S2、该网关将外网服务器的一响应于该HTTP GET请求包的response数据包发送至内网PC,并记录该response数据包(一种符合HTTP协议的数据包)的Content-Length字段和TCP head ;
[0009]S3、该网关生成一 RESET数据包,并将该RESET数据包发送至外网服务器;
[0010]S4、该网关根据Si中的HTTP GET请求包请求下载的内容、Content-Length字段和该网关的WAN 口的数量,生成η个HTTP GET请求包,生成的每个HTTP GET请求包分别包括一 Range字段,所有的Range字段表征的请求下载的内容之和等于Si中的HTTP GET请求包请求下载的内容且η为大于或等于2的整数;
[0011]S5、该网关将S4中生成的HTTP GET请求包通过至少两个WAN 口发送至外网服务器;
[0012]S6、该网关通过S5中发送HTTP GET请求包的WAN 口接收由外网服务器发送的下载数据包,该下载数据包响应于S4中生成的HTTP GET请求包且包括实际下载的数据;
[0013]S7、根据S:记录的IP head和TCP head及S2记录的TCP head,该网关修改接收到的下载数据包的IP head和TCP head,尤其是将接收到的下载数据包的IP head的源IP修改为外网服务器的IP,将下载数据包的IP head的目的端口的IP修改为内网PC的IP,将下载数据包的TCP head的seq字段和ack字段修改成与S2记录的TCP head的seq字段和ack字段连续,及修改下载数据包的TCP head的checksum字段和IP head的checksum字段;
[0014]Ss、该网关将修改后的下载数据包发送至内网PC。
[0015]本技术方案在不改变内网PC和外网服务器之间的网络数据交互的前提下,通过该网关根据原有的内网PC发送的HTTP GET请求包生成多个HTTP GET请求包,由不同的WAN 口分发该网关生成的HTTP GET请求包,实现了通过多个WAN 口进行HTTP下载,充分利用了多WAN 口的网关能够并行下载的优势,提高了下载的速度。
[0016]较佳的,η大于或等于WAN 口的数量;
[0017]S4*的生成η个HTTP GET请求包为:逐批生成等于或小于该网关的WAN 口的数量的HTTP GET请求包,直到生成的所有的HTTP GET请求包的Range字段表征的请求下载的内容之和等于Si中的HTTP GET请求包请求下载的内容,且同一批次的HTTP GET请求包在S5中分别通过不同的WAN 口发送至外网服务器,在此S4中,每个批次生成的HTTP GET请求包的数量不一定相同,如该网关具有5个WAN 口,第一批次生成的HTTP GET请求包的数量为5,因为每个WAN 口接收下载数据包的完成时间不同,所以后续的批次生成的HTTP GET请求包的数量可能为4或3或2或1,在本技术方案中η的值并不是预先设定的,而是表示生成的所有的HTTP GET请求包的总和,该网关根据请求下载的资源的大小、WAN 口的下载速率等控制调节生成HTTP GET请求包的数量;
[0018]S4中的生成η个HTTP GET请求包或为:一次性生成η个HTTP GET请求包,且S5中每个WAN 口至少发送一个S4中生成的HTTP GET请求包至外网服务器,在本技术方案中该网关生成的所有的HTTP GET请求包是在其中任意一个HTTP GET请求包发送至外网服务器之前一起生成的,η的值是根据请求下载的资源的大小、WAN 口的下载速率等计算得到的。
[0019]在本技术方案中,每个WAN 口都得到了充分利用,将η个HTTP GET请求包分发至不同WAN 口发送符合负载均衡原理。
[0020]较佳的,在S4中该网关将Si中的HTTP GET请求包请求下载的内容按照每个WAN口的带宽正比例分配到每个Range字段。这是因为每个WAN 口的带宽可能不同,所以每个WAN 口发送的HTTP GET请求包的Range字应该适应于WAN 口的带宽,最佳的分配方案就是给带宽大的WAN 口分配相对多的下载内容,给带宽小的WAN 口分配相对少的下载内容,这样才能充分利用每个WAN 口的带宽。
[0021]较佳的,S8替换为方案一或方案二或方案三:
[0022]方案一、该网关将修改后的下载数据包按照修改完成的顺序逐一发送至内网PC ;
[0023]方案二、该网关在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC ;
[0024]方案三、该网关待所有下载数据包修改完毕后一同发送至内网PC。
[0025]较佳的,Si中还记录该HTTP GET请求包的HTTP head ;S2中还记录response数据包的 HTTP head。
[0026]一种多WAN 口的网关,其特点是,该网关包括一发送模块、一记录模块、一 RESET数据包生成模块、一 HTTP GET请求包生成模块、一接收模块和一修改模块;
[0027]该记录模块用于在调用该发送模块将内网PC的一 HTTP GET请求包发送至外网服务器时记录该HTTP GET请求包请求下载的内容、TCP head和IP head,还用于在调用该发送模块将外网服务器的一响应于该HTTP GET请求包的response数据包发送至内网PC时记录该response数据包的Content-Length字段和TCP head,然后调用该RESET数据包生成模块;
[0028]该RESET数据包生成模块用于生成一 RESET数据包,然后调用该发送模块将该RESET数据包发送至外网服务器,然后调用该HTTP GET请求包生成模块;
[0029]该HTTP GET请求包生成模块用于根据该记录模块记录的HTTP GET请求包请求下载的内容、Content-Length字段和该网关的WAN 口的数量,生成η个HTTP GET请求包,生成的每个HTTP GET请求包分别包括一 Range字段,所有的Range字段表征的请求下载的内容之和等于该记录模块记录的HTTP GET请求包请求下载的内容且η为大于或等于2的整数,然后调用该发送模块将该HTTP GET请求包生成模块生成的HTTP GET请求包通过至少两个WAN 口发送至外网服务器,然后调用该接收模块;
[0030]该接收模块用于通过该
发送模块发送该HTTP GET请求包生成模块生成的HTTPGET请求包的WAN 口接收由外网服务器发送的下载数据包,该下载数据包响应于该HTTPGET请求包生成模块生成的HTTP GET请求包且包括实际下载的数据,然后调用该修改模块;
[0031]该修改模块用于根据该记录模块记录的内网PC的HTTP GET请求包的TCP head和IP head及该response数据包的TCP head修改接收到的下载数据包的IP head和TCPhead,然后调用该发送模块将修改后的下载数据包发送至内网PC。
[0032]较佳的,η大于或等于WAN 口的数量J_HTTP GET请求包生成模块中生成η个HTTPGET请求包为:逐批生成等于或小于该网关的WAN 口的数量的HTTP GET请求包,直到生成的所有的HTTP GET请求包的Range字段表征的请求下载的内容之和等于内网PC的HTTPGET请求包请求下载的内容,且同一批次的HTTP GET请求包由该发送模块分别通过不同的WAN 口发送至外网服务器;该HTTP GET请求包生成模块中的生成η个HTTP GET请求包或为:一次性生成η个HTTP GET请求包,且该发送模块通过每个WAN 口至少发送一个该HTTPGET请求包生成模块生成的HTTPGET请求包至外网服务器。
[0033]较佳的,该HTTP GET请求包生成模块还用于将该记录模块记录的HTTP GET请求包请求下载的内容按照每个WAN 口的带宽正比例均匀分配到每个Range字段。
[0034]较佳的,该发送模块被该修改模块调用后用于将修改后的下载数据包按照修改完成的顺序逐一发送至内网PC或用于在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC或用于待所有下载数据包修改完毕后一同发送至内网PC。
[0035]较佳的,该记录模块还用于在调用该发送模块将内网PC的HTTP GET请求包发送至外网服务器时记录该HTTP GET请求包的TCP head,还用于还在调用该发送模块将外网服务器的响应于该HTTP GET请求包的response数据包发送至内网PC时记录response数据包的 TCP head。
[0036]较佳的,该记录模块还用于在调用该发送模块将内网PC的HTTP GET请求包发送至外网服务器时记录该HTTP GET请求包的HTTP head,还用于还在调用该发送模块将外网服务器的响应于该HTTP GET请求包的response数据包发送至内网PC时记录response数据包的HTTP head。
[0037]—种HTTP下载系统,其特点是,该HTTP下载系统包括上述个优选条件任意组合的网关、外网服务器和内网PC。
[0038]在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
[0039]本发明的积极进步效果在于:本发明的多WAN 口的网关、实现HTTP下载的方法及系统在不对内网PC和外网服务器做任何改进的前提下,使得多WAN 口的网关进行下载时不受限于单个WAN 口的最大下载速度,大大提高了 HTTP下载的速度及带宽资源利用率。
【附图说明】
[0040]图1为本发明的实施例1的4WAN 口的网关实现HTTP下载的方法第一流程图。
[0041]图2为本发明的实施例1的4WAN 口的网关实现HTTP下载的方法的网关与外网服务器交互的流程图。
[0042]图3为本发明的实施例1的4WAN 口的网关实现HTTP下载的方法的网关与内网PC交互的流程图。
[0043]图4为本发明的实施例1的4WAN 口的网关的示意图。
[0044]图5为本发明的实施例1的HTTP下载系统的示意图。
[0045]图6为本发明的实施例2的4WAN 口的网关实现HTTP下载的方法的网关与外网服务器交互的流程图。
[0046]图7为本发明的实施例2的4WAN 口的网关实现HTTP下载的方法的网关与内网PC交互的流程图。
[0047]图8为本发明的实施例3的4WAN 口的网关实现HTTP下载的方法的网关与内网PC交互的流程图。
【具体实施方式】
[0048]下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0049]实施例1
[0050]一种4WAN 口的网关实现HTTP下载的方法,用于将内网PC请求下载的资源通过该网关从外网服务器下载至内网PC,其中,WAN1和WAN3的下载速度为ΙΜ/s,WAN2和WAN4的下载速度为2M/s,请求下载的资源为100M,该方法包括以下步骤,参见图1:
[0051]步骤101、内网PC生成一 HTTP GET请求包,并通过该网关的LAN 口将该HTTP GET请求包发送至该网关。该HTTP GET请求包是现有技术中内网PC下载资源所生成的HTTPGET请求包,该HTTP GET请求包的HTTP head表明了请求下载的资源,该HTTP GET请求包的IP head表明了生成该HTTP GET请求包的内网PC的IP和该HTTP GET请求包要发送到的外网服务器的IP。
[0052]步骤102、该网关记录该HTTP GET请求包的HTTP head、TCP head和IP head,尤其是包含的请求下载的内容、TCP head包括的seq、ack等字段及IP head包括的内网PC的IP和外网服务器的IP。
[0053]步骤103、该网关将该HTTP GET请求包通过该网关的WAN1 (亦可是该网关的其它任一 WAN 口)将该HTTP GET请求包发送至外网服务器。
[0054]步骤104、外网服务器接收到该HTTP GET请求包,生成一响应于该HTTP GET请求包的response数据包发送至WAN1。该response数据包是现有技术中外网服务器的常规响应,该 response 数据包的 HTTP head 包含 Content-Length 字段,Content-Length 字段的值为请求下载内容的大小。
[0055]步骤105、该网关记录该response数据包的HTTP head和TCP head,尤其是HTTPhead 的 Content-Length 字段及 TCP head 的 seq、ack 等字段。
[0056]步骤106、该网关通过该网关的LAN 口将该response数据包发送至内网PC。
[0057]步骤107、该网关生成一 RESET数据包,并通过WAN1将该RESET数据包发送至外网服务器,该RESET数据包包含IP head和TCP head等信息。此步骤就相当于通知外网服务器把之前的下载请求重置。
[0058]然后,该方法分成两个独立的流程,一个是该网关与外网服务器的交互流程,另一个是该网关与内网PC的交互流程。
[0059]其中,该网关与外网服务器的交互流程包括以下步骤,参见图2:
[0060]步骤108、该网关生成4个HTTP GET请求包,并分别通过WAN1、WAN2、WAN3和WAN4发送至外网服务器。其中,此步骤中生成的每个HTTP GET请求包分别包括一 Range字段,且每个Range字段的下载范围的大小与发送的WAN 口的下载速率成正比,具体如下:
[0061]WAN1:Range:bytes = 1-1024 ;
[0062]WAN2: Range: bytes = 1025-3072 ;
[0063]WAN3: Range: bytes = 3073-4096 ;
[0064]WAN4: Range: bytes = 4097-6144。
[0065]步骤109、外网服务器接收到步骤108发送的4个HTTP GET请求包,分别生成响应于4个HTTP GET请求包response数据包,并通过相应的WAN 口分别发送至该网关。
[0066]步骤110、外网服务器还分别生成响应于4个HTTP GET请求包的若干个下载数据包,并将该些下载数据包分别通过发送相应的HTTP GET请求包的WAN 口发送至网关。其中,每个下载数据包分别包括对应的HTTP GET请求包请求下载的资源的实际下载的数据。
[0067]该网关和外网服务器重复执行步骤108-步骤110,直至生成的所有的HTTP GET请求包的Range字段表征
的请求下载的资源之和等于步骤101中的HTTP GET请求包请求下载的资源。
[0068]该网关与内外PC的交互流程包括以下步骤,参见图3:
[0069]步骤111、该网关根据步骤102记录的IP head和TCP head及步骤105记录的TCPhead,修改接收到的下载数据包的IP head和TCP head,其中,将接收到的下载数据包的IPhead的源IP修改为外网服务器的IP,将下载数据包的IP head的目的端口的IP修改为内网PC的IP,还将下载数据包的TCP head的seq字段和ack字段修改成与步骤105记录的TCP head的seq字段和ack字段连续。此步骤修改seq字段是为了是所有的下载数据包具有符合TCP协议的、能够保证内网PC接收该些下载数据包的连续性,而不是指将所有下载数据包连续发送给内网PC,依据TCP协议定义的下一个包的seq =这个包的seq+这个包的data的长度。由每个WAN 口发给内网PC的下载数据包的seq需要根据自身下载的range、相对于请求下载的资源的range的位置以及最开始记录的response数据包来计算得出,另外还要修改下载数据包的IP head的checksum字段和TCP head的checksum字段,具体的修改符合TCP协议,具体修改过程在此不再赘述。
[0070]步骤112、该网关通过LAN 口将修改后的下载数据包按照修改完成的顺序通过LAN口逐一发送至内网PC。
[0071]步骤113、内网PC利用TCP协议的乱序整理特性,重组接收到的下载数据包。
[0072]虽然步骤108-步骤113采用顺序标记,但是步骤108-步骤110与步骤111_步骤113是相互独立执行的,该网关在外网服务器与内网PC之间起中转作用。
[0073]在本实施例中,考虑到网络具有不稳定性,因此生成的HTTP GET请求包的range的分配可能需要实时的调整,而且分配给每个WAN 口的数据长度跟WAN 口的下载速度相关,也就是分配给每个WAN 口的数据长度不是完全一样的。根据每个WAN 口的下载速度分配下载的数据长度,能够有利于每个WAN 口的下载时间近似,充分利用每个WAN 口。
[0074]本实施例的4WAN 口的网关2,参见图4,包括一发送模块201、一记录模块202、一RESET数据包生成模块203、一 HTTP GET请求包生成模块204、一接收模块205和一修改模块 206。
[0075]该记录模块202用于在调用该发送模块201通过WAN1将内网PC3的一 HTTP GET请求包发送至外网服务器4时记录该HTTP GET请求包的HTTP head,TCP head和IP head,尤其是包含的请求下载的内容、TCP head包括的seq、ack等字段及IP head包括的内网PC3的IP和外网服务器4的IP,还用于在调用该发送模块201通过LAN 口将外网服务器4的一响应于该HTTP GET请求包的response数据包发送至内网PC3时记录该response数据包的 HTTP head 和 TCP head,尤其是 HTTP head 的 Content-Length 字段及 TCP head 的seq、ack等字段,然后调用该RESET数据包生成模块203。
[0076]该RESET数据包生成模块203用于生成一 RESET数据包,然后调用该发送模块201通过WAN1将该RESET数据包发送至外网服务器4,然后调用该HTTP GET请求包生成模块204。
[0077]该HTTP GET请求包生成模块204用于生成4个HTTP GET请求包,生成的每个HTTPGET请求包分别包括一 Range字段,且每个Range字段的下载范围的大小与发送的WAN 口的下载速率成正比,然后调用该发送模块201分别通过WAN1、WAN2、WAN3和WAN4将该HTTPGET请求包生成模块204生成的HTTP GET请求包发送至外网服务器4,然后调用该接收模块 205。
[0078]该接收模块205用于通过该发送模块201发送该HTTP GET请求包生成模块204生成的HTTP GET请求包的WAN 口接收由外网服务器4发送的下载数据包,该下载数据包响应于该HTTP GET请求包生成模块204生成的HTTP GET请求包且包括实际下载的数据,然调用该修改模块206。
[0079]该修改模块206用于根据该记录模块202记录的内网PC的HTTP GET请求包的IP head和TCP head及response数据包的TCP head,修改接收到的下载数据包的IP head和TCP head,其中,将该接收模块205接收到的下载数据包的IP head的源IP修改为外网服务器4的IP,将下载数据包的IP head的目的端口的IP修改为内网PC3的IP,还将下载数据包的TCP head的seq字段和ack字段修改成与该记录模块202记录的TCP head的seq字段和ack字段连续以及修改下载数据包的IP head的checksum字段和TCP head的checksum字段,然后调用该发送模块201将修改后的下载数据包按照修改完成的顺序通过LAN 口逐一发送至内网PC3,然后重复调用该HTTP GET请求包生成模块204,直至生成的所有的HTTP GET请求包的Range字段表征的请求下载的资源之和等于内网PC3的HTTP GET请求包请求下载的资源。
[0080]本实施例的HTTP下载系统,参见图5,包括该网关2、内网PC3和外网服务器4,内网PC3与该网关2的LAN 口网络连接,外网服务器4与该网关2的WAN1、WAN2、WAN3和WAN4网络连接。
[0081]实施例2
[0082]本实施例与实施例1基本相同,不同之处在于,参见图6和图7:
[0083]步骤108替换为:步骤1081、该网关一次性生成15个HTTP GET请求包;步骤1082、该网关将其中的4个HTTP GET请求包分别通过WAN1、WAN2、WAN3和WAN4发送至外网服务器。此步骤中生成的所有的HTTP GET请求包的Range字段表征的请求下载的资源之和等于步骤101中的HTTP GET请求包请求下载的资源。
[0084]该网关与该外网服务器之间重复执行步骤1082-步骤110,直至将生成的所有的HTTP GET请求包均发送至外网服务器。
[0085]步骤112替换为:该网关在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC。
[0086]如,修改完了下载数据包1、3、和5,再修改完了下载数据包2、9和10,那么该网关将下载数据包1、2、3 —同发送至内网PC。本实施例与实施例1的主要区别在于:实施例1的方法是逐批生成HTTP GET请求包以及将修改后的下载数据包按照修改完成的顺序发送(即先修改完的先发送),而本实施的方法是一次性生成所有HTTP GET请求包以及将Range字段连续的下载数据包一同发送。
[0087]本实施例的4WAN 口的网关和实施例1基本相同,不同之处在于,
[0088]该HTTP GET请求包生成模块204用于一次性生成15个HTTP GET请求包,然后调用该发送模块201逐批将其中的4个HTTP GET请求包分别通过WAN1、WAN2、WAN3和WAN4发送至外网服务器,直至将生成的所有的HTTP GET请求包均发送至外网服务器,其中生成的所有的HTTP GET请求包的Range字段表征的请求下载的资源之和等于内网PC的HTTPGET请求包请求下载的资源,然后调用该接收模块205。
[0089]该修改模块206调用该发送模块201在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC。
[0090]实施例3
[0091]本实施例的4WAN 口的网关实现HTTP下载的方法与实施例1基本相同,不同之处在于,参见图8:
[0092]步骤112替换为:该网关将修改后的下载数据包存储在该网关的硬件存储设备上,待所有下载数据包修改完毕后通过LAN 口一同发送至内网PC。S卩,本实施例的网关能够将修改后下载数据包存储在该网关中,待请求下载的资源从外网服务器全部下载完毕后再一并传送给内网PC。
[0093]本实施例的4WAN 口的网关和实施例1基本相同,不同之处在于,该修改模块调用该发送模块将修改后的下载数据包存储在该硬
件存储设备上,待所有下载数据包修改完毕后一同发送至内网PC。
[0094]虽然实施例1-3的网关均为4WAN 口,但是本发明并不局限于4WAN 口的网关,采用其它数量WAN 口亦可。上述内容采用现有的编程手段即可实现,具体的编程不再赘述。
[0095]虽然以上描述了本发明的【具体实施方式】,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
【主权项】
1.一种多WAN 口的网关实现HTTP下载的方法,其特征在于,该方法包括: S:、该网关将内网PC的一 HTTP GET请求包发送至外网服务器,并记录该HTTP GET请求包请求下载的内容、TCP head和IP head ; 52、该网关将外网服务器的一响应于该HTTPGET请求包的response数据包发送至内网PC,并记录该response数据包的Content-Length字段和TCP head ; 53、该网关生成一RESET数据包,并将该RESET数据包发送至外网服务器; 54、该网关根据Si中的HTTPGET请求包请求下载的内容、Content-Length字段和该网关的WAN 口的数量,生成η个HTTP GET请求包,生成的每个HTTP GET请求包分别包括一Range字段,所有的Range字段表征的请求下载的内容之和等于Si中的HTTP GET请求包请求下载的内容且η为大于或等于2的整数; 55、该网关将S4中生成的HTTPGET请求包通过至少两个WAN 口发送至外网服务器; 56、该网关通过S5中发送HTTPGET请求包的WAN 口接收由外网服务器发送的下载数据包,该下载数据包响应于S4中生成的HTTP GET请求包且包括实际下载的数据; s7、根据S:记录的IP head和TCP head及S2记录的TCP head,该网关修改接收到的下载数据包的IP head和TCP head ; Ss、该网关将修改后的下载数据包发送至内网PC。2.如权利要求1所述的方法,其特征在于,η大于或等于WAN口的数量; S4中的生成η个HTTP GET请求包为:逐批生成等于或小于该网关的WAN 口的数量的HTTP GET请求包,直到生成的所有的HTTP GET请求包的Range字段表征的请求下载的内容之和等于Si中的HTTP GET请求包请求下载的内容,且同一批次的HTTP GET请求包在S5中分别通过不同的WAN 口发送至外网服务器; S4中的生成η个HTTP GET请求包或为:一次性生成η个HTTP GET请求包,且S5中每个WAN 口至少发送一个S4中生成的HTTP GET请求包至外网服务器。3.如权利要求1所述的方法,其特征在于,在S4中该网关将Si中的HTTPGET请求包请求下载的内容按照每个WAN 口的带宽正比例分配到每个Range字段。4.如权利要求1所述的方法,其特征在于,S8替换为方案一或方案二或方案三: 方案一、该网关将修改后的下载数据包按照修改完成的顺序逐一发送至内网PC ; 方案二、该网关在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC ; 方案三、该网关待所有下载数据包修改完毕后一同发送至内网PC。5.如权利要求1所述的方法,其特征在于,Si中还记录该HTTPGET请求包的HTTPhead ;S2中还记录response数据包的HTTP head。6.一种多WAN 口的网关,其特征在于,该网关包括一发送模块、一记录模块、一 RESET数据包生成模块、一 HTTP GET请求包生成模块、一接收模块和一修改模块; 该记录模块用于在调用该发送模块将内网PC的一 HTTP GET请求包发送至外网服务器时记录该HTTP GET请求包请求下载的内容、TCP head和IP head,还用于在调用该发送模块将外网服务器的一响应于该HTTP GET请求包的response数据包发送至内网PC时记录该response数据包的Content-Length字段和TCP head,然后调用该RESET数据包生成模块; 该RESET数据包生成模块用于生成一 RESET数据包,然后调用该发送模块将该RESET数据包发送至外网服务器,然后调用该HTTP GET请求包生成模块; 该HTTP GET请求包生成模块用于根据该记录模块记录的HTTP GET请求包请求下载的内容、Content-Length字段和该网关的WAN 口的数量,生成η个HTTP GET请求包,生成的每个HTTP GET请求包分别包括一 Range字段,所有的Range字段表征的请求下载的内容之和等于该记录模块记录的HTTP GET请求包请求下载的内容且η大于或等于2,然后调用该发送模块将该HTTP GET请求包生成模块生成的HTTP GET请求包通过至少两个WAN 口发送至外网服务器,然后调用该接收模块; 该接收模块用于通过该发送模块发送该HTTP GET请求包生成模块生成的HTTP GET请求包的WAN 口接收由外网服务器发送的下载数据包,该下载数据包响应于该HTTP GET请求包生成模块生成的HTTP GET请求包且包括实际下载的数据,然后调用该修改模块; 该修改模块用于根据该记录模块记录的内网PC的HTTP GET请求包的TCP head和IPhead及该response数据包的TCP head修改接收到的下载数据包的IP head和TCP head,然后调用该发送模块将修改后的下载数据包发送至内网PC。7.如权利要求6所述的网关,其特征在于,η大于或等于WAN口的数量; 该HTTP GET请求包生成模块中生成η个HTTP GET请求包为:逐批生成等于或小于该网关的WAN 口的数量的HTTP GET请求包,直到生成的所有的HTTP GET请求包的Range字段表征的请求下载的内容之和等于内网PC的HTTP GET请求包请求下载的内容,且同一批次的HTTP GET请求包由该发送模块分别通过不同的WAN 口发送至外网服务器; 该HTTP GET请求包生成模块中的生成η个HTTP GET请求包或为:一次性生成η个HTTPGET请求包,且该发送模块通过每个WAN 口至少发送一个该HTTP GET请求包生成模块生成的HTTP GET请求包至外网服务器。8.如权利要求6所述的网关,其特征在于,该HTTPGET请求包生成模块还用于将该记录模块记录的HTTP GET请求包请求下载的内容按照每个WAN 口的带宽正比例均匀分配到每个Range字段。9.如权利要求6所述的网关,其特征在于,该发送模块被该修改模块调用后用于将修改后的下载数据包按照修改完成的顺序逐一发送至内网PC或用于在修改后的下载数据包中筛选出Range字段连续的下载数据包一同发送至内网PC或用于待所有下载数据包修改完毕后一同发送至内网PC。10.如权利要求6所述的网关,其特征在于,该记录模块还用于在调用该发送模块将内网PC的HTTP GET请求包发送至外网服务器时记录该HTTP GET请求包的HTTP head,还用于还在调用该发送模块将外网服务器的响应于该HTTP GET请求包的response数据包发送至内网PC时记录response数据包的HTTP head。11.一种HTTP下载系统,其特征在于,该HTTP下载系统包括如权利要求6-10中任意一项所述的网关,还包括权利要求6中的外网服务器和内网PC。
【专利摘要】本发明公开一种多WAN口的网关、实现HTTP下载的方法及系统,其中该方法包括:该网关记录内网PC发送的HTTP?GET请求包请求下载的内容及外网服务器发送的response数据包的Content-Length字段和TCP?head;该网关生成RESET数据包及生成n个HTTP?GET请求包并发送至外网服务器,n个HTTP?GET请求包的合集与原请求下载的内容相同;该网关接收下载数据包并修改下载数据包;将修改后的下载数据包发送至内网PC。本发明弥补了现有技术中HTTP下载受限于单个WAN口的最大下载速度的不足,大大提高了HTTP下载的速度及带宽资源利用率。
【IPC分类】H04L29/08, H04L12/66
【公开号】CN105491083
【申请号】CN201410471943
【发明人】王炳荣
【申请人】上海艾泰科技有限公司
【公开日】2016年4月13日
【申请日】2014年9月16日