基于IP任播的系统及报文转发方法与流程

文档序号:14847736发布日期:2018-06-30 16:56阅读:309来源:国知局
基于IP任播的系统及报文转发方法与流程

本发明涉及网络通信技术领域,尤其涉及一种基于IP任播的系统及报文转发方法。



背景技术:

任播(Anycast)技术,又称选播或泛播技术,是网际互联协议(Internet Protocol,简称IP)网络提供的一种网络服务。在IP网络中,Anycast技术采用一个任播地址指明一组提供特定服务(比如域名系统(Domain Name System,简称DNS)或者镜像服务)的主机。用户请求该特定服务时并不关心提供该特定服务的是这一组主机中的哪一台,该特定服务的请求会被IP网络路由到这组主机中可能的任何一台。

当IP任播应用于TCP协议时,其直接基于IP层来进行报文的路由传输,这样会导致同一TCP连接的数据包发送至不同的目的主机,继而导致TCP连接中断。这也就导致了目前IP任播主要应用于连接无关的UDP协议。

因此,迫切需要一种更先进的支持TCP长连接的IP任播方案。



技术实现要素:

为此,本发明提供一种基于IP任播的系统及报文转发方法,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种报文转发方法,适于在基于IP任播的系统中的任一个任播节点中执行,该系统包括具有相应客户端网络地址的客户端、具有相应服务器网络地址的服务器、以及具有统一任播地址的多个任播节点,服务器与多个任播节点分别存储有对方的网络地址,客户端通过多个任播节点访问服务器提供的服务,方法包括步骤:接收来自客户端的第一网络报文,第一网络报文以客户端的客户端网络地址为源地址、以任播地址为目的地址;将第一网络报文转换为第二网络报文,第二网络报文以任播地址为源地址、以服务器网络地址为目的地址,并包含有客户端网络地址;发送第二网络报文。

可选地,在根据本发明的方法中,方法还包括步骤:接收服务器响应于第二网络报文而返回的第二响应报文,第二响应报文以服务器网络地址为源地址、以任播地址为目的地址,并包含有客户端网络地址;将第二响应报文转换为第三响应报文,第三响应报文以任播地址为源地址、以客户端网络地址为目的地址;发送第三响应报文。

可选地,在根据本发明的方法中,将第一网络报文转换为第二网络报文的步骤包括:将第一网络报文中作为源地址的客户端网络地址插入第一网络报文中特定位置;将第一网络报文的源地址修改为任播地址;将第一网络报文的目的地址修改为服务器网络地址;以及重新计算第一网络报文的报文校验和。

可选地,在根据本发明的方法中,将第二响应报文转换为第三响应报文的步骤包括:将第二响应报文的源地址修改为任播地址;将第二响应报文的目的地址修改为第二响应报文中位于特定位置的客户端网络地址;删除第二响应报文中位于特定位置的客户端网络地址。

可选地,在根据本发明的方法中,方法还包括步骤:接收不是第一网络报文、也不是第二响应报文的网络报文,并将其发送。

可选地,在根据本发明的方法中,客户端、任播节点和服务器之间通过TCP/IP协议进行通信,特定位置包括IP头部和TCP头部之间的位置。

根据本发明的另一方面,提供了一种报文转发方法,适于在基于IP任播的系统中的服务器中执行,该系统包括具有相应客户端网络地址的客户端、具有相应服务器网络地址的服务器、以及具有统一任播地址的多个任播节点,服务器与多个任播节点分别存储有对方的网络地址,客户端通过多个任播节点访问服务器提供的服务,方法包括步骤:接收网络报文;选择将其中的第二网络报文转换为第三网络报文,第二网络报文以任播地址为源地址、以服务器网络地址为目的地址,其包含有客户端网络地址,第三网络报文以客户端网络地址为源地址、以服务器网络地址为目的地址;生成响应于所接收的网络报文的响应报文;选择将响应于第三网络报文的第一响应报文转换为第二响应报文,第一响应报文以服务器网络地址为源地址、以客户端网络地址为目的地址,第二响应报文以服务器网络地址为源地址、以任播地址为目的地址,其包含有客户端网络地址;发送第二响应报文。

可选地,在根据本发明的方法中,方法包括步骤:在接收网络报文之后,根据网络报文的源地址来确定网络报文是否为第二网络报文。

可选地,在根据本发明的方法中,将第二网络报文转换为第三网络报文的步骤包括:将第二网络报文的源地址修改为第二网络报文中位于特定位置的客户端网络地址;删除第二网络报文中位于特定位置的客户端网络地址。

可选地,在根据本发明的方法中,方法包括步骤:在生成响应于所接收的网络报文的响应报文之后,根据响应报文的目的地址来确定响应报文是否为第一响应报文。

可选地,在根据本发明的方法中,将第一响应报文转换为第二响应报文的步骤包括:将第一响应报文中作为目的地址的客户端网络地址插入第一响应报文中特定位置;将第一响应报文的目的地址修改为任播地址;以及重新计算第一响应报文的报文校验和。

可选地,在根据本发明的方法中,方法包括步骤:在生成不是响应于第三网络报文的响应报文之后,将其发送。

可选地,在根据本发明的方法中,客户端、任播节点和服务器之间通过TCP/IP协议进行通信,特定位置包括IP头部和TCP头部之间的位置。

根据本发明的还有一个方面,提供了一种基于IP任播的系统,包括:具有相应客户端网络地址的客户端;具有相应服务器网络地址的服务器,适于执行根据本发明的报文转发方法;以及具有统一任播地址的多个任播节点,适于执行根据本发明的报文转发方法;其中服务器与多个任播节点分别存储有对方的网络地址,客户端通过多个任播节点访问服务器提供的服务。

根据本发明的报文转发方法,通过任播节点200和服务器140上的报文转发策略,将服务器140与客户端120之间传输的网络报文进行转换,而服务器140与客户端120的TCP协议栈均感知不到中间报文转换的操作,构成了报文的正常交互,从而可以实现TCP长连接保持,实现了支持TCP长连接的IP任播,实现了TCP长连接需求场景的全覆盖,解决了因受限于无法保持TCP长连接而仅能应用于DNS等的UDP场景及部分类似CDN等的TCP场景的问题。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个示例性实施方式的基于IP任播的系统100的结构框图;

图2示出了根据本发明一个示例性实施方式的任播节点200的结构框图;

图3示出了根据本发明一个示例性实施方式的报文转发方法300的流程图;

图4示出了根据本发明另一个示例性实施方式的报文转发方法400的流程图;以及

图5示出了根据本发明另一个示例性实施方式的报文转发方法500的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个示例性实施方式的基于IP任播的系统100的结构框图。如图1所示,基于IP任播的系统100可以包括具有相应客户端网络地址的客户端120、具有相应服务器网络地址的服务器140、以及具有统一任播地址的多个任播节点200。客户端120、服务器140和多个任播节点200彼此之间通过网络相连接,通过TCP/IP协议进行通信。服务器140与多个任播节点200分别存储有对方的网络地址,客户端120则可以通过多个任播节点200访问服务器140提供的服务。

其中,任播节点200通常实现为服务器,特别是虚拟服务器。图2示出了根据本发明一个示例性实施方式的任播节点200的结构框图。在基本的配置102中,任播节点200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据224。在一些实施方式中,程序222可以被配置为在操作系统上由一个或者多个处理器204利用程序数据224执行指令。

任播节点200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262(例如客户端120和服务器140)通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

其中,任播节点200的一个或多个程序222包括用于执行根据本发明的报文转发方法300中任一方法的指令。

图3示出了根据本发明一个示例性实施方式的报文转发方法300的流程图。如图3所示,报文转发方法300始于步骤S310,适于在任一个任播节点200中执行。

在步骤S310中,接收来自客户端120的第一网络报文,第一网络报文以客户端120的客户端网络地址为源地址、以任播地址为目的地址。根据本发明的一个实施方式,若接收不是第一网络报文的网络报文,则直接将其发送。

接着在步骤S320中,将第一网络报文转换为第二网络报文,第二网络报文以任播地址为源地址、以服务器网络地址为目的地址,并包含有客户端网络地址。具体地,可以将第一网络报文中作为源地址的客户端网络地址插入第一网络报文中的特定位置,再将第一网络报文的源地址修改为任播地址、将第一网络报文的目的地址修改为服务器网络地址,最后重新计算此时第一网络报文的报文校验和,即得到了第二网络报文。其中,特定位置可以为IP头部和TCP头部之间的位置、或者Ethernet头部和IP头部之间的位置。

得到第二网络报文之后,在步骤S330中,发送第二网络报文,以便服务器140接收该第二网络报文。

服务器140的结构与任播节点200类似,服务器140中的一个或多个程序包括用于执行根据本发明的报文转发方法400中任一方法的指令。

图4示出了根据本发明一个示例性实施方式的报文转发方法400的流程图。如图4所示,报文转发方法400始于步骤S410,适于在服务器140中执行。

在步骤S410中,接收网络报文。根据本发明的一个实施方式,在步骤S410之后,可以先根据网络报文的源地址来确定网络报文是否为第二网络报文。

接着在步骤S420中,选择将所接收到的网络报文中的第二网络报文转换为第三网络报文,第三网络报文以客户端网络地址为源地址、以服务器网络地址为目的地址。具体地,可以将第二网络报文的源地址修改为第二网络报文中位于特定位置的客户端网络地址,再删除第二网络报文中位于特定位置的客户端网络地址,即得到了第三网络报文。

在步骤S430中,生成响应于所接收的网络报文的响应报文。根据本发明的一个实施方式,在步骤S430之后,可以根据响应报文的目的地址来确定响应报文是否为第一响应报文,第一响应报文响应于第三网络报文,并以服务器网络地址为源地址、以客户端网络地址为目的地址。若生成的响应报文不是第一响应报文,则可以直接将其发送。

接着在步骤S440中,选择将第一响应报文转换为第二响应报文,第二响应报文以服务器网络地址为源地址、以任播地址为目的地址,其包含有客户端网络地址。具体地,可以将第一响应报文中作为目的地址的客户端网络地址插入第一响应报文中特定位置,再将第一响应报文的目的地址修改为任播地址,最后重新计算第一响应报文的报文校验和,即得到了第二响应报文。其中,特定位置与前文相同,可以为IP头部和TCP头部之间的位置、或者Ethernet头部和IP头部之间的位置。

最后在步骤S450中,发送第二响应报文,以便某一个任播节点200接收该第二响应报文。

任播节点200的一个或多个程序222还可以包括用于执行根据本发明的报文转发方法500中任一方法的指令。

图5示出了根据本发明一个示例性实施方式的报文转发方法500的流程图。如图5所示,报文转发方法500始于步骤S510,适于在任一个任播节点200中执行。

在步骤S510中,接收服务器140响应于第二网络报文而返回的第二响应报文。根据本发明的一个实施方式,若接收不是第二响应报文的网络报文,则直接将其发送。

接着在步骤S520中,将第二响应报文转换为第三响应报文,第三响应报文以任播地址为源地址、以客户端网络地址为目的地址。具体地,可以将第二响应报文的源地址修改为任播地址,将第二响应报文的目的地址修改为第二响应报文中位于特定位置的客户端网络地址,最后删除第二响应报文中位于特定位置的客户端网络地址,即得到了第三响应报文。最后在步骤S530中,发送第三响应报文,以便客户端120接收该第三响应报文。

这样,通过任播节点200和服务器140上的报文转发方案,将服务器140与客户端120之间传输的网络报文进行转换,而服务器140与客户端120的TCP协议栈均感知不到中间报文转换的操作,构成了报文的正常交互,从而可以实现TCP长连接保持,实现了支持TCP长连接的IP任播,实现了TCP长连接需求场景的全覆盖。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

本发明还可以包括:A5、如A1-4中任一个所述的方法,其中,所述方法还包括步骤:接收不是所述第一网络报文、也不是所述第二响应报文的网络报文,并将其发送。A6、如A1-5中任一个所述的方法,其中,所述客户端、所述任播节点和所述服务器之间通过TCP/IP协议进行通信,所述特定位置包括IP头部和TCP头部之间的位置。

B12、如B7-11中任一个所述的方法,其中,所述方法包括步骤:在生成不是响应于所述第三网络报文的响应报文之后,将其发送。B13、如B7-12中任一个所述的方法,所述客户端、所述任播节点和所述服务器之间通过TCP/IP协议进行通信,所述特定位置包括IP头部和TCP头部之间的位置。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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