流量疏导方法及服务器与流程

文档序号:16513575发布日期:2019-01-05 09:29阅读:419来源:国知局
本发明实施方式涉及互联网
技术领域
:,特别涉及流量疏导方法及服务器。
背景技术
::随着互联网技术的日益发展,运营商为了提高用户浏览网页或访问源站的速度,常选择将网内用户的流量通过特定的方式(如策略路由方式)引导到某些服务器节点上,该服务器节点作为汇聚用户流量的节点,再将用户的流量通过源地址转换snat技术引导至后端加速云平台上,从而实现局域网内用户与源站之间的上下行交互都经过后端加速云平台,实现流量疏导和加速目的。即,网内用户的流量会先到达运营商交换机,由运营商交换机策略至后端加速云平台进行源地址转换snat,并进行疏导和加速处理。但是,本专利申请的发明人发现现有技术中至少存在如下问题:目前,运营商网内企业用户自建网站或网络应用服务层出不穷,网外用户访问网内设备的情况越来越多。但是,在网内设备接收到网外用户发送的tcp(transmissioncontrolprotocol,简称“tcp”)连接建立请求时,网内设备所响应的流量也会先到达运营商交换机,由运营商交换机引导至后端加速云平台进行snat,并进行疏导和加速处理。此时,该响应流量的源ip会被snat成后端加速云平台的ip,从而使得网外用户接收到的响应流量的源ip与网外用户所请求的目的ip不一致,这样,网外用户会认为没有收到网内设备的响应,从而出现网外用户无法建立与内网设备的连接,导致无法浏览网内自建站网页或无法访问网内设备的应用服务的情况。技术实现要素:本发明实施方式的目的在于提供一种流量疏导方法及服务器,使得网外用户能够正常浏览网内自建站网页或访问网内设备的应用服务。为解决上述技术问题,本发明的实施方式提供了一种流量疏导方法,包括:接收一局域网内设备向外网发送的tcp连接数据包;判断tcp连接数据包是否为上行流量;若判断结果为否,则基于预设的路由策略转发tcp连接数据包。本发明的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的流量疏导方法。本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的流量疏导方法。本发明实施方式相对于现有技术而言,基于网内设备响应网外用户所发送建立tcp连接请求的tcp连接数据包为下行流量这一特点,对网内设备向外网发送的tcp连接数据包进行上行流量、下行流量的识别,从而确定出网内设备响应给网外用户的流量,并直接转发。这样,网内设备响应网外用户的tcp连接数据包在网络传输层直接转发了,并不会被勾到上层应用层进行源地址转换snat,并到达后端加速云平台进行加速,因而网外用户所接收到的tcp连接数据包的源ip与网外用户所请求时的目的ip一致,网外用户认为收到了网内设备的响应,从而能够实现网外用户正常浏览网内自建站网页或访问网内设备应用服务的功能。另外,基于预设的路由策略转发tcp连接数据包,具体包括:为tcp连接数据包设置标签;为设有标签的tcp连接数据包匹配可用路由路径,并通过可用路由路径转发设有标签的tcp连接数据包。这样,不为上行流量的tcp连接数据包被打上标签,为后续带有标签的tcp连接数据包均被可靠地转发出去提供了保障,从而提高了路由策略对tcp连接数据包进行转发的精准度,有效地保证了网外用户能够收到网内设备的响应。另外,若判断结果为是,则对tcp连接数据包进行源地址转换,并引导至后端加速平台。这样,其他的tcp连接数据包依然能够引导至后端加速云平台进行疏导或加速处理,确保了网内设备依然能够获取较好的网络使用体验。另外,判断tcp连接数据包是否为上行流量包括:判断tcp连接数据包中是否存在预设字段;若存在,则判定tcp连接数据包为上行流量;其中,预设字段用于表征tcp连接数据包为新连接建立请求的tcp连接数据包。这样,提供了判断tcp连接数据包是否为上行流量的一种具体实现形式,增加了本发明实施方式的灵活性,而且易于操作,不需要占用较大的处理资源。另外,预设字段包含“--syn-mstate--statenew”标识。这样,提供了预设字段的一种具体实现形式,增加了本发明实施方式的灵活性。附图说明一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是根据第一实施方式的流量疏导方法的具体流程图;图2是根据第一实施方式的网络系统的结构示意图;图3是根据第三实施方式的服务器的示意图。具体实施方式为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本发明的第一实施方式涉及一种流量疏导方法,具体流程如图1所示。本实施方式中的流量疏导方法可以应用在第三方交换机上或与第三方交互机通信连接的服务器上。下面对本实施方式的流量疏导方法与第三方交互机通信连接的应用于服务器的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。步骤101,接收一局域网内设备向外网发送的传输控制协议tcp连接数据包。具体地说,网内设备可以为设置在局域网内的服务器设备,也可以为连接于局域网的客户端设备,该些设备所发送或接收外网数据包都将经过局域网统一的网络出口,具体而言,该统一的网络出口包含网络运营商的交换机,例如电信网络用户访问外网的数据包将先经过电信的交换机再到达外部网络。技术人员可以预先在局域网内的运营商交换机中设置路由策略,使得运营商交换机将网内设备向外网发送的数据流转发至本实施方式中的服务器。如,运营商交换机在接收到网内设备发送的流量时,可以先对流量的目的ip的网段进行匹配,若匹配为外网网段,则运营商交换机将该流量转发至服务器。更具体地说,同步序列编号syn(synchronizesequencenumbers,简称“syn”)为tcp/ip建立连接时使用的握手信号,因此tcp连接数据包是符合存在syn标识这一条件的。基于此,本实施方式中的服务器在接收到运营商交换机转发过来的流量时,根据流量中是否包含syn标识来识别该流量是否为tcp连接数据包。若流量中包含syn标识,则服务器认为该流量为tcp连接数据包。其中,syn标识包括建立连接syn标志位、连接重置rst标志位以及响应ack标志位。本实施方式中,服务器利用netfilter网络过滤器对接收到的流量进行识别判断,由netfilter网络过滤器利用iptables的mangle表rerouting链,获取流量中的建立连接syn标志位、连接重置rst标志位以及响应ack标志位。步骤102,判断tcp连接数据包是否为上行流量。若判断结果为是,则执行步骤103,否则,执行步骤104。具体地说,上行流量与下行流量相对应,在本发明所提供的实施例中,上行流量可以是建立tcp连接时发送的请求流量,即第一次握手,下行流量则为针对该请求流量的响应流量,即第二次握手。基于网内设备响应网外用户请求所发送的tcp连接数据包为下行流量这一特点,服务器对网内设备向外网发送的tcp连接数据包进行上行流量、下行流量的识别,从而确定出网内设备响应给网外用户的tcp连接数据包。步骤103,对tcp连接数据包进行源地址转换,并引导至后端加速平台。具体地说,技术人员预先在服务器中设置源地址转换snat的应用程序,服务器通过该应用程序对tcp连接数据包进行源地址转换snat,并引导至后端加速云平台。步骤104,基于预设的路由策略转发tcp连接数据包。具体地说,预设的路由策略可以由技术人员预先设置并保存在服务器中。服务器根据预设的路由策略,为tcp连接数据包配置可用的路由路径,并调用转发forward指令,利用可用的路由路径将tcp连接数据包转发给网外用户,从而不仅避免了按照默认路由规则而将tcp连接数据包转发到不可用线路的情况,令网外用户能够接收到网内设备响应的tcp连接数据包,而且保证tcp连接数据包在传输层直接转发了,tcp连接数据包的源ip并不会被修改。需要注意的是,在实际操作时,forward程序还有可能通过其他方式获取其他数据包,因此本实施方式中,服务器还为tcp连接数据包设置标签。这样,服务器为设有标签的tcp连接数据包匹配可用路由路径,并令forward程序通过可用路由路径转发设有标签的tcp连接数据包,能够保证带有标签的tcp连接数据包均被可靠地转发出去,有效地保证了网外用户能够收到网内设备的响应。以下对使用本实施方式后,各种情况下的tcp连接数据包的具体走向流程进行举例说明:如图2所示,整个网络系统包括:网外设备1、运营商交换机2、网内设备3、后端加速云平台4以及数据汇聚识别处理服务器5。其中,数据汇聚识别处理服务器5可以理解为本实施方式中执行流量疏导方法的服务器。网外设备1包括网外用户或网外服务器,网内设备3包括网内用户或网内服务器。(1)网内设备3响应网外用户的tcp连接请求:作为下行流量的tcp连接数据包到达运营商交换机2后,由运营商交换机2引导至数据汇聚识别处理服务器5。此时,tcp连接数据包为网内设备3向外网发送的下行流量,故,步骤102的判断结果为否,数据汇聚识别处理服务器5基于预设的路由策略转发tcp连接数据包至网外用户。(2)网内设备3向另一网内设备发送或响应tcp连接请求:作为上行流量的tcp连接数据包到达运营商交换机2后,直接由运营商交换机2转发至另一网内设备。(3)网内设备3向网外服务器发送tcp连接请求:作为上行流量的tcp连接数据包到达运营商交换机2后,由运营商交换机2引导至数据汇聚识别处理服务器5。由于此时的tcp连接数据包为上行流量,因此步骤102的判断结果为是,数据汇聚识别处理服务器5对tcp连接数据包进行源地址转换snat,并引导至后端加速云平台4进行处理,由后端加速云平台4发送至网外服务器。其中,由于源地址转换就是将数据包中的源地址修改为后端加速云平台4的地址,并同时记录对应关系,因此,网内设备3在发送与网外服务器建立tcp连接的请求实则转换成了后端加速平台4与网外服务器建立tcp连接的请求,当连接建立成功后,具体数据的传输将基于该tcp连接。网外服务器响应数据也会先通过该tcp连接到达后端加速云平台4,再由后端加速云平台4基于先前记录的对应关系转发至网内用户,这样网外服务器响应的流量也能够被加速、疏导,确保了网内设备依然能够获取较好的网络使用体验。本发明的实施方式相对于现有技术而言,基于网内设备响应网外用户tcp连接请求所发送的tcp连接数据包为下行流量这一特点,对网内设备向外网发送的tcp连接数据包进行上行流量、下行流量的识别,从而确定出网内设备响应给网外用户的流量,并直接转发。这样,网内设备响应网外用户的tcp连接数据包在网络层直接转发了,并不会到达后端加速云平台进行snat,因而网外用户所接收到的tcp连接数据包的源ip与网外用户所请求的目的ip一致,网外用户认为收到了网内设备的响应,从而能够实现网外用户正常浏览网内自建站网页或访问网内设备应用服务的功能。值得注意的是,上述实施例所提供的流量疏导方法中,基于网内与网外建立tcp连接过程中的tcp连接数据包进行处理,从而使得网内用户向网外主动发起的tcp连接最终是经由加速平台与网外建立tcp连接而实现的,而网外用户主动向网内设备发起的tcp连接,则可直接建立,而无需借助加速平台来建立,从而保证了网外用户能顺利访问网内设备。而在tcp连接建立成功之后,网内与网外还需要基于该些tcp连接进行具体的数据传输,那么对于该些具体数据的传输流量的处理,则可通过五元组信息的匹配,直接发往相应的tcp连接即可。本发明的第二实施方式涉及一种流量疏导方法。第二实施方式在第一实施方式的基础上加以细化,主要细化之处在于:在本发明第二实施方式中,提供了服务器判断tcp连接数据包是否为上行流量的一种具体实现形式,以下进行具体说明:本实施方式中,服务器判断tcp连接数据包是否为上行流量的方式为:服务器判断tcp连接数据包中是否存在预设字段。若存在预设字段,则服务器判定tcp连接数据包为上行流量。更具体地说,服务器可以利用iptables的nat表rerouting链,识别tcp连接数据包中是否存在预设字段。其中,预设字段用于表征tcp连接数据包为新连接的tcp连接数据包,预设字段可以由技术人员预先设置并保存在服务器中,如,预设字段可以包含“--syn-mstate--statenew”标识。具体地说,网内设备请求网外设备时,网内设备所发送的tcp连接数据包为请求流量,此时的tcp连接数据包中存在statenew的字段,符合包含预设字段“--syn-mstate--statenew”标识的这一条件。而网内设备响应网外设备时,网内设备所发送的tcp连接数据包为响应流量,此时的tcp连接数据包中不存在statenew的字段,不符合包含预设字段“--syn-mstate--statenew”标识的这一条件。由此可知,预设字段为包含“--syn-mstate--statenew”标识,可以实现上行流量、下行流量的识别,且识别方式较为简单。本发明的实施方式相对于第一实施方式而言,提供了服务器判断tcp连接数据包是否为上行流量的一种具体实现形式,增加了本发明实施方式的可行性。上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。本发明的第三实施方式涉及一种服务器,如图3所示,包括:至少一个处理器301;以及,与所述至少一个处理器301通信连接的存储器302;其中,所述存储器302存储有可被所述至少一个处理器301执行的指令,所述指令被所述至少一个处理器301执行,以使所述至少一个处理器301能够执行上述方法实施方式中的流量疏导方法。其中,存储器302和处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器301。处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器302可以被用于存储处理器301在执行操作时所使用的数据。本发明的实施方式相对于现有技术而言,实现了网外用户正常浏览网内自建站网页或访问网内设备应用服务的功能。本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施方式中的流量疏导方法。本发明的实施方式相对于现有技术而言,实现了网外用户正常浏览网内自建站网页或访问网内设备应用服务的功能。即,本领域技术人员可以理解,实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1