CN115225631A - 一种数据转发方法及相关装置 - Google Patents

一种数据转发方法及相关装置 Download PDF

Info

Publication number
CN115225631A
CN115225631A CN202110411432.1A CN202110411432A CN115225631A CN 115225631 A CN115225631 A CN 115225631A CN 202110411432 A CN202110411432 A CN 202110411432A CN 115225631 A CN115225631 A CN 115225631A
Authority
CN
China
Prior art keywords
acceleration node
acceleration
node
address
central controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110411432.1A
Other languages
English (en)
Inventor
顾炯炯
苗勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202110411432.1A priority Critical patent/CN115225631A/zh
Priority to PCT/CN2022/086603 priority patent/WO2022218341A1/zh
Publication of CN115225631A publication Critical patent/CN115225631A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种数据转发方法及相关装置,用于提高网络加速服务的覆盖度。本申请实施例中,通信系统包括中心控制器和多个加速节点,多个加速节点包括第一加速节点和第二加速节点,其中,中心控制器的部署环境属于第一云服务提供商,多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;第一加速节点接收来自第一终端的数据请求,数据请求用于访问目的端;第一加速节点获取目标路径,目标路径来自于中心控制器生成的路由表项;第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。多个转发节点灵活部署,提高数据转发网络的覆盖度。

Description

一种数据转发方法及相关装置
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种数据转发方法及相关装置。
背景技术
基于云服务的各种优势,越来越多的业务应用选择云厂商提供的云服务,为了能够为业务应用提供高质量的服务。全球加速(global accelerator,GA)网络加速服务应运而生,从而为全球用户提供高性能的网络加速服务。
请参阅图1A所示,云厂商在全球范围内建设接入点(point of presence,POP),POP点与云厂商的专线网络互联。终端就近接入到POP点,例如,亚太用户的终端接入到POP1。POP1点将来自终端的数据流引入到专线网络,专线网络与云区域对接,从而使得终端能够将待转发的数据通过云厂商部署的专线网络快速转发到云区域。
但是,GA服务完全依赖于云厂商部署的POP节点和物理专线网络的建设分布情况,GA服务能力受限。
发明内容
本申请实施例提供了一种数据转发方法及相关装置,用于提高网络加速服务的覆盖度。
第一方面,本申请实施例提供了一种数据转发方法,应用于通信系统中的第一加速节点,通信系统包括中心控制器和多个加速节点,多个加速节点属于overlay网络,多个加速节点包括第一加速节点和第二加速节点,其中,中心控制器的部署环境属于第一云服务提供商,多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;多个加速节点运行过程中,受控于中心控制器,也即受控于第一云服务提供商;在数据转发过程中,第一加速节点接收来自第一终端的数据请求,数据请求用于访问目的端;第一加速节点获取目标路径,目标路径来自于中心控制器生成的路由表项;第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。本实施例中,多个转发节点可以灵活部署于第二云服务提供商、应用服务提供商或电信运营商提供的部署环境,从而保证加速节点可以在全球范围内无处不在的寄生,并且所有加速节点中的任意一个加速节点都能够作为终端接入到网络的接入节点,而且每个加速节点又可以作为目标路径中的一个传输节点,第一加速节点获取到第一终端的数据请求后,第一加速节点按照目标路径将来自终端的数据请求向overlay网络发送,直到数据请求传递到目标路径的目的加速节点(第二加速节点),第二加速节点再将数据请求传递到目的端,从而能够真正实现全球范围内的用户都能享受到网络加速服务。
在一种可选的实现方式中,路由表项包括源路由表和位置路由表;所述方法还包括:第一加速节点接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;所述第一加速节点获取目标路径可以具体包括:当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。本实施例中,第一加速节点可以根据位置路由表确定第二加速节点,当第一加速节点是源加速节点,第二加速节点是目的加速节点时,第一加速节点就能够根据源路由表确定从第一加速节点到第二加速节点的目标路径,第一加速节点根据目标路径向下一跳加速节点转发,直到转发到第二加速节点。
在一种可选的实现方式中,第一加速节点接收中心控制器发送的源路由表之前,所述方法还包括:第一加速节点测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;第一加速节点向中心控制器发送链路状态信息,链路状态信息用于中心控制器生成源路由表。本实施例中,加速节点还用于测量与邻居加速节点间的链路状态,从而使得中心控制器能够根据链路状态生成源路由表,该源路由表中的路径是根据链路状态得到的,从而使得网络加速服务具有较高的服务质量。
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址,第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址,头部中的源地址是第一终端的IP地址。本实施例中,终端中配置有SDK插件,终端可以就近接入到一个加速节点,overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。本实施例中,适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端,第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点通过局域网接收来自第一终端的数据请求。本实施例中,加速节点嵌入部署到局域网(如企业内网)内,并且第二网络设备为第一加速节点提供私网AIP,从而实现局域网中的终端设备可以通过加速节点接入到overlay网络。overlay网络为局域网中的终端设备提供网络加速服务,解决了运营商分配的公网AIP资源成本昂贵的问题。
在一种可选的实现方式中,目的端是云区域,或者,目的端是第二终端或服务器。本实施例中,overlay网络不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,具有普适性。
在一种可选的实现方式中,部署环境包括云区域,POP,边缘云,OLT,或MEC。本实施例中,加速节点可以灵活部署于各种部署环境,从而使得该overlay网络可以真正覆盖全球区域。
第二方面,本申请实施例提供了一种数据转发方法,应用于通信系统中的中心控制器,通信系统包括中心控制器和部署于各种部署环境中的多个加速节点,多个加速节点包括第一加速节点和第二加速节点,所述方法包括:中心控制器获取加速节点发送的链路状态信息;中心控制器根据链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;中心控制器获取用户申请网络加速服务的目的端的第一IP地址;中心控制器生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;中心控制器向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。本实施例中,中心控制器生成源路由表,源路由表用于指示多个加速节点中的路径,中心控制器生成位置路由表,位置路由表用于指示目的加速节点,从而使得源加速节点能够根据位置路由表查询到目的加速节点,然后根据源路由表查询目标路径,进而实现加速节点对数据请求在overlay网络中加速转发。
在一种可选的实现方式中,中心控制器生成位置路由表可以包括:中心控制器根据目的端的第一IP地址确定第二加速节点;中心控制器建立第一IP地址与第二加速节点的对应关系;中心控制器根据对应关系生成位置路由表。
在一种可选的实现方式中,当目的端是云区域时,中心控制器根据目的端的第一IP地址确定第二加速节点可以包括:中心控制器根据第一IP地址确定云区域中部署的第二加速节点。本实施例中,加速节点可以灵活部署于云区域中,当目的端是云区域时,中心控制器根据第一IP地址直接确定出该云区域内部署的第二加速节点,从而使得第二加速节点在云区域内部将数据请求转发到目的端,减少加速节点到目的端的传输距离。
在一种可选的实现方式中,当目的端是终端或服务器时,中心控制器根据目的端的第一IP地址确定第二加速节点可以包括:中心控制器根据第一IP地址查询IP地址库,确定目的端的物理位置;中心控制器确定距离物理位置最近的第二加速节点,从而尽量减少第二加速节点到目的端的传输距离。
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;所述方法还包括:中心中控器接收第一终端发送的请求;中心控制器根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址。第一终端通过SDK插件访问中心控制器,即中心中控器接收第一终端发送的请求,该请求携带第一终端的IP地址,中心控制器根据第一终端的IP地址查询IP地址库,确定第一终端的物理位置,并根据第一终端的物理位置确定距离该物理位置最近的加速节点(即第一加速节点),中心控制器将第一加速节点的IP地址反馈给第一终端,overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。
在一种可选的实现方式中,所述方法还包括:中心控制器向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。本实施例中,中心控制器和第一网络设备协同将第一终端的数据请求引导至第一加速节点。适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。
在一种可选的实现方式中,所述方法还包括:中心控制器获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。本实施例中,overlay网络不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,具有普适性。
第三方面,本申请实施例提供了一种加速节点,包含于通信系统,通信系统包括中心控制器和多个加速节点,多个加速节点包括第一加速节点和第二加速节点,其中,中心控制器的部署环境属于第一云服务提供商,多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;第一加速节点包括:
转发模块,用于接收来自第一终端的数据请求,数据请求用于访问目的端;
控制模块,用于获取目标路径,目标路径来自于中心控制器生成的路由表项;
转发模块,用于根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。
在一种可选的实现方式中,路由表项包括源路由表和位置路由表;
控制模块,还用于接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;
当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;
当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。
在一种可选的实现方式中,转发模块,还用于测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;
控制模块,还用于向中心控制器发送转发模块获取的链路状态信息,链路状态信息用于中心控制器生成源路由表。
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址;
转发模块,还用于通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址,头部中的源地址是第一终端的IP地址。
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;
转发模块,还用于接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端;
转发模块,还用于通过局域网接收来自第一终端的数据请求。
第四方面,本申请实施例提供了一种中心控制器,包括:
收发模块,用于获取加速节点发送的链路状态信息;
处理模块,用于根据收发模块获取的链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;
收发模块,用于获取用户申请网络加速服务的目的端的第一IP地址;
处理模块,还用于生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;
收发模块,还用于向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。
在一种可选的实现方式中,处理模块还具体用于:根据目的端的第一IP地址确定第二加速节点;建立第一IP地址与第二加速节点的对应关系;根据对应关系生成位置路由表。
在一种可选的实现方式中,当目的端是云区域时,处理模块,还用于根据第一IP地址确定云区域中部署的第二加速节点。
在一种可选的实现方式中,当目的端是终端或服务器时,处理模块,还用于根据第一IP地址查询IP地址库,确定目的端的物理位置;确定距离物理位置最近的第二加速节点。
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;收发模块,还用于接收第一终端发送的请求;根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。
在一种可选的实现方式中,收发模块,还用于向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。
在一种可选的实现方式中,收发模块,还用于获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。
第五方面,本申请实施例提供了一种通信系统,包括多个如上述第三方面所述的加速节点和如上述第四方面所述的中心控制器,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。
第六方面,本申请实施例提供了一种中心控制器,包括处理器,所述处理器与至少一个存储器耦合,所述处理器用于读取所述至少一个存储器所存储的计算机程序,使得所述中心控制器执行上述第二方面任一项所述的方法。
第七方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述第一方面任一项所述的方法;或者,使得计算机实现上述第二方面中任一项所述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述第一方面任一项所述的方法;或者,使得计算机实现上述第二方面中任一项所述的方法。
附图说明
图1A和图1B为传统方法中网络加速系统的场景示意图;
图2为本申请实施例中一种通信系统的场景示意图;
图3为本申请实施例中overlay和underlay的示意图;
图4为本申请实施例中一种通信系统的架构示意图;
图5为本申请实施例中一种数据转发方法的一个实施例的步骤流程示意图;
图6为本申请实施例中第一终端接入到第一加速节点的场景示意图;
图7为本申请实施例中中心控制器和第一网络设备协同将数据请求引导至第一加速节点的场景示意图;
图8为本申请实施例中业务应用申请网络加速服务的两种申请方式的示意图;
图9为本申请实施例中网络加速服务的申请界面的场景示意图;
图10为本申请实施例中终端访问云region的场景示意图;
图11为本申请实施例中基于UDP进行overlay封装的数据格式的示意图;
图12为本申请实施例中第一终端和云region间数据转发的场景示意图;
图13为本申请实施例中第一终端和第二终端间数据转发的场景示意图;
图14为本申请实施例中overlay隧道加密转发数据的示意图;
图15为本申请实施例中加速节点的一个实施例的结构示意图;
图16为本申请实施例中虚拟机的架构示意图;
图17为本申请实施例中中心控制器的一个实施例的结构示意图;
图18为本申请实施例中中心控制器的另一个实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
请参阅图1B所示,传统方法中的网络加速系统包括DNS服务器、控制器、多个POP点,及与POP点连接的IP专线网络。每个POP点至少配置一个任播IP(anycast IP,AIP)地址。当有业务应用申请加速服务时,控制器生成AIP和弹性IP地址(elastic IP address,EIP)(公网IP地址)的映射关系。例如,业务应用A申请网络加速服务,网络加速服务的目的端是云区域(region),云region的EIP是EIP1。控制器接收到业务应用A的申请后,为该业务应用分配一个接入AIP(如AIP1)。控制器维护业务应用A的标识、EIP1和AIP1的映射关系(如下表1所示),并将该映射关系同步下发到各POP点。控制器将EIP1和AIP1的映射关系发送至DNS服务器,DNS服务器用于同步维护域名、AIP和EIP的映射关系。每个AIP与EIP的映射关系如下表1所示。
表1
业务应用A EIP1 AIP1
业务应用B EIP2 AIP2
业务应用C EIP3 AIP3
传统方法中的GA方案包括两个阶段,第一阶段:终端接入到POP点阶段。第二阶段:POP点通过IP专线网络访问云区域(region)阶段。
第一阶段:首先,终端向域名系统(domain name system,DNS)服务器发送待访问资源的域名。然后,DNS服务器向终端反馈与该域名具有映射关系的AIP(如AIP2)。例如,配置有AIP2的POP点的数量有3个。再后,终端通过underlay接入到“路由最近”的POP点(如POP2)。终端向该POP2发送数据包,数据包的包头中源地址是终端的IP地址(如IPA),目的地址是AIP2。最后,POP2通过上表1所示的映射关系(AIP2与EIP2具有映射关系),将来自终端的原始数据包中的目的地址修改为EIP2,得到目标数据包,目标数据包的源地址是IPA,目的地址是EIP2。POP2将目标数据包向IP专线网络发送。需要注意的是,原始数据包中的真实目的地址(EIP2)丢失,而丢失的EIP2是POP2节点根据EIP1和AIP1的映射关系还原的。
第二阶段:POP点与IP专线网络互联,POP点将来自终端的数据流引入到IP专线网络,IP专线网络将数据流转发到云region,从而实现终端加速访问云region。
传统方法中的GA网络加速服务的方法至少具有以下几个问题。
1、GA加速服务依赖于云厂商的投资建设情况。目前,全球范围内POP点的数量只有几十个,云厂商在全球范围内某些地区(或某些国家区域)没有投资建设POP点,全球覆盖度不够,也就导致这些没有建设POP点的地区内的终端无法接入到IP专线网络,不能享受云厂商提供的网络加速服务。
2、一个业务应用的EIP就会耗费一个AIP地址映射,从而导致耗费大量的AIP。并且将任播IP地址加入路由网络,可以使用路由协议(如边界网关协议(border gatewayprotocol,BGP)来完成,而一个AIP又需要在多个POP点BGP多源向Internet发布,跨运营商分配AIP困难,即不同区域(如中国区域和印度区域)分配相同AIP的运营商不同,不同的运营商发布相同的AIP工程部署困难。
3、仅支持终端访问region的场景。
鉴于上述问题,本申请实施例提供了一种数据转发方法,该方法基于underlay上的叠加overlay网络,通过叠加overlay网络实现数据转发。overlay网络包括中心控制器和部署于各种部署环境中的大量的加速节点,如大量的转发节点灵活部署于全球范围内的边缘云,POP点,云region,OLT和MEC设备上,从而使得该overlay网络可以真正覆盖全球区域。本申请中的overlay网络用于实现业务应用数据的转发,overlay也称为应用传送网络(application delivery network,ADN)。
请参阅图2所示,图2为一种通信系统的场景示意图,通信系统包括中心控制器201和多个加速节点202。中心控制器201用于管控所有加速节点202,以多个加速节点202中的第一加速节点为例,对第一加速节点对来自终端的数据进行转发进行说明。第一加速节点接收中心控制器201发送路由表项,路由表项作为第一加速节点对数据进行转发的基础。其中,第一加速节点接收来自第一终端的数据请求,数据请求用于访问目的端;首先,第一加速节点获取目标路径,目标路径来自于中心控制器201生成的路由表项;然后,第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。
本申请实施例中,overlay网络中灵活部署了大量的加速节点,所有加速节点中的任意一个加速节点都能够作为终端的接入加速节点,从而使得全球范围内的终端都能够就近接入到一个加速节点上。第一加速节点获取到第一终端的数据请求后,第一加速节点按照目标路径将来自终端的数据请求向overlay网络发送,直到数据请求传递到目标路径的目的加速节点(第二加速节点),第二加速节点再将数据请求传递到目的端,从而能够真正实现业务应用在全球范围内的用户都能享受到网络加速服务。并且相对于传统方法中的GA方案,所有加速节点中的任意一个加速节点都能够作为终端接入到overlay网络的接入节点,而且每个加速节点又可以作为目标路径中的一个传输节点,每个加速节点提供的服务被所有目的端共享,不需要像传统方法中的GA,一个业务应用就要耗费一个AIP地址映射,工程部署易于实现。
为了更好的理解本申请,首先对本申请中涉及的词语进行示例性说明。
中心控制器,用于管控所有加速节点,并获取加速节点上报的链路状态,根据加速节点间的链路状态生成源路由表,还用于生成位置路由表,并将源路由表和位置路由表下发给各加速节点。中心控制器可以是部署于云侧的虚拟服务器。
加速节点(accelerate node),用于实现数据转发功能及链路状态测量功能。加速节点部署于部署环境提供的虚拟机或容器中。加速节点包括本地控制器和至少一个转发节点(forward node或compass)。其中,本地控制器用于控制compass进行加速节点间的链路状态测量(或者也称为“QoS测量”)。compass主要承担数据面的流量转发功能。compass可以是通过软件实现转发功能的转发模块。
加速节点的部署环境,用于为加速节点分配“主机”及公网IP地址。部署环境包括但不限定于边缘云、光线路终端(optical line terminal,OLT)、多接入边缘计算(multi-access edge computing,MEC)、POP、云区域(region)、内容分发网络(content deliverynetwork,CDN)等。可以理解的是,部署环境仅需要提供虚拟机(或容器)和公网IP地址,即可部署加速节点,此要求不苛刻、不定制。例如,第三方CDN、边缘云,OLT或MEC设备均比较容易提供虚拟机(或容器)和公网IP地址,从而将加速节点寄生到部署环境。由于加速节点部署上的灵活性,从而保证加速节点可以在全球范围内无处不在的寄生,overlay网络能够更广泛的覆盖全球区域。再如,加速节点的灵活部署也体现在加速节点能够部署在云region,加速节点在云region部署时,云region只需要为加速节点提供虚拟机(或容器)和公网IP即可满足部署条件。因此加速节点的部署可以满足伙伴云、第三方云、伙伴云、混合云等所有云类型,加速的应用业务范围更加广泛。例如,“视频业务提供商A”可以直接将加速节点部署到“视频业务提供商A”建设的第三方边缘云,为“视频业务提供商A”的业务提供加速服务。
另外,通信系统中的多个部署环境可以属于不同的提供商。提供商可以是云服务提供商,应用服务提供商(如“即时通信业务”提供商A),或电信运营商(如移动,联通,电信)。中心控制器的部署环境属于第一云服务提供商(如云服务提供商A),多个加速节点的部署环境可以属于第二云服务提供商(如云服务提供商B、云服务提供商C)、应用服务提供商或电信运营商。第二云服务提供商、应用服务提供商或电信运营商在自己的硬件设施之上提供了加速节点的部署环境。这里的部署环境也即可供第一云服务提供商申请计算资源(例如,虚拟机、容器)的虚拟环境,第一云服务提供商可以根据需求在第二云服务提供商、应用服务提供商或电信运营商提供的部署环境上申请计算资源并在计算资源上运行加速节点。加速节点运行过程中,受控于中心控制器,也即受控于第一云服务提供商。
业务应用,overlay网络提供的业务流量转发服务的使用方。例如,包括但不限于即时通信(real time communication,RTC)业务,云视频业务,游戏业务,视频业务等应用平台。
终端,包括但不限于服务器终端,手机(mobile phone)、平板电脑(Pad)、个人计算机(personal computer,PC)、虚拟现实(virtual reality,VR)终端、增强现实(augmentedreality,AR)终端、工业控制(industrial control)中的终端、车载终端、无人驾驶(selfdriving)中的终端、辅助驾驶中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smartcity)中的终端、智慧家庭(smart home)中的终端等等。
目的端,可以是云区域,或者,可以是第二终端或服务器。
对源路由表和位置路由表进行示例性说明。
源路由表,用于指示从源加速节点到目的加速节点的最优路径。其中,“源加速节点”和“目的加速节点”都是上述overlay网络中的加速节点,“源加速节点”和“目的加速节点”仅是按照数据的传递方向将加速节点分为“源加速节点”和“目的加速节点”。例如,从终端接收数据的加速节点为“源加速节点”。将数据发送到目的端的加速节点为“目的加速节点”。源加速节点可以取遍所有转发节点中的每个加速节点,目的加速节点可以取遍所有转发节点中的每个加速节点。
位置路由表,包括第一IP地址与第二加速节点的对应关系。其中,第一IP地址是用户(如业务应用)预先向中心控制器申请加速服务的目的端的IP地址。第二加速节点是中心控制器根据目的端的IP地址确定的转发节点。第二加速节点是所有加速节点中距离目的端最近的加速节点。例如,当目的端是云区域时,第二加速节点可以是该云区域中部署的加速节点。再如,当目的端是终端(或服务器)时,中心控制器查询IP地址库,确定终端(或服务器)的物理位置,中心控制器确定距离终端(或服务器)物理位置最近的加速节点(即第二加速节点)。需要说明的是,为了区分源加速节点和目的加速节点,将多个源加速节点中的任意一个源加速节点称为“第一加速节点”,多个目的加速节点中的任意一个目的加速节点为“第二加速节点”。
链路状态,加速节点对其邻居加速节点进行服务质量(quality of service,QoS)测量,得到链路状态信息。链路状态信息包括加速节点到每个邻居加速节点的链路状态。可以理解的是,链路状态可以用QoS值来描述,其中,QoS的性能指标包括丢包率,时延及抖动等。示例性的,加速节点对每个邻居加速节点间的链路进行QoS测量时,加速节点会向其邻居加速节点连续发送q个探测包(q为大于或者等2的整数),加速节点根据这q个探测包的回复情况来计算传输时延、抖动和丢包率等。可选地,加速节点将传输时延、抖动和丢包率取进行加权平均,用加权平均后的值来描述加速节点与该邻居加速节点的链路状态。本申请中,加速节点对其邻居加速节点的“链路状态”的测量也可以称为“QoS测量”。
对叠加(overlay)网络和底层承载(underlay)网络的说明。
underlay网络是指物理网络,由物理设备和物理链路组成。例如,常见的物理设备有交换机、路由器和防火墙等,这些物理设备通过特定的链路连接起来形成了一个传统的物理网络。
overlay网络是一种可以建立underlay之上的计算机网络。overlay网络中的节点(即转发节点)可以被认为是通过虚拟或逻辑链接相连,其中每个链接对应一条路径(path)。请参阅图3进行理解,图3中H、I、J、K四个节点为overlay网络中的逻辑节点。示例性的,在上层overlay网络中,H、J两节点之间的直连通路,即在应用层层面只有一跳,而映射到下层underlay网络中,可能涉及多个中继转发的路由设备,实际上是多跳路由。但在基于overlay网络的应用开发时,不需要考虑下层underlay网络中各物理节点的连接情况,只需要考虑部署的overlay中节点之间的互联关系。overlay网络中节点通过封装映射到underlay网络中节点的源IP和目的IP,实现在overlay层的数据转发。
全互联(full-mash),是指N个节点中两两节点之间互联的一种组网模式。
下面通过具体的实施例对本申请中数据转发的方法进行示例性说明。请参阅图4所示,图4为本申请中一种通信系统的架构示意图。
首先,对本申请中在部署环境中部署加速节点的过程进行示例说明。下述S30-S33中的运维人员为第一云提供商的运维人员。
S30、运维人员的PC机响应于运维人员的第一操作,向边缘云、POP、云Region等部署环境申请分配虚拟机(或容器)和公网IP。其中,PC机中安装有对部署环境申请虚拟机(或容器)和公网IP的操作界面。
S31、运维人员的PC机响应于运维人员的第二操作,登录部署中心的账号,利用部署中心向虚拟机(或容器)自动上传、并自动批量安装加速节点软件。其中,部署中心是用于自动化批量部署加速节点的云中心工具。
S32、加速节点安装完成后,主动向中心控制器发起握手鉴权。
S33、中心控制器与转发节点握手通信,中心控制器接收每个转发节点发送的注册请求。该注册请求包括但不限于转发节点的部署环境的ID,转发节点的公网IP地址,转发节点部署环境的物理位置等。中心控制器对转发节点进行注册的过程可以理解为中心控制器存储转发节点的相关信息的过程,中心控制器获取每个转发节点的相关信息,进一步可以对每个转发节点进行管理。
上述步骤S30-步骤S33为加速节点的部署过程,如果转发节点已经注册到中心控制器,且已注册的加速节点没有被删除,或没有增加其他加速节点的情况下,不必每次都执行步骤S30-步骤S33。步骤S30-步骤S33为可选步骤,而直接执行步骤501。
然后,请参阅图5所示。对本申请中实现数据转发的过程进行说明。
步骤501、中心控制器获取加速节点与邻居加速节点间的链路状态信息。
中心控制器接收每个加速节点发送的链路状态信息,链路状态信息包括加速节点与每个邻居加速节点的链路状态。
示例性的,中心控制器向每个加速节点中的本地控制器发送测量任务。所有加速节点之间全互联(full-mash),加速节点对其邻居加速节点间的链路进行QoS测量。每个加速节点都会采集到链路状态信息,该链路状态信息包括该加速节点分别到邻居加速节点的链路状态(用QoS值描述)和该链路状态对应的链路标识(例如,加速节点A→加速节点B)。其中,加速节点的邻域加速节点是指与该加速节点相连的节点。以所有加速节点全互联为例,任意一个加速节点的邻居加速节点是指所有加速节点中除了该转发节点之外的其他所有加速节点。可选地,加速节点中的compass周期性(如秒级)进行QoS测量,采集链路状态信息(用QoS值表示),并将采集的链路状态存储在本地控制器。本地控制器周期性(如分钟级)向中心控制器上报链路状态信息。
步骤502、中心控制器根据链路状态信息生成源路由表。其中,源路由表用于指示多个加速节点中的路径。路径为从源加速节点到目的加速节点间路径。
S11、中心控制器根据链路状态信息和所有加速节点的拓扑结构在所有加速节点中选择从源加速节点到目的加速节点的路径。
中心控制器接收每个加速节点上报的链路状态信息。所有加速节点的拓扑结构以全互联为例,中心控制器确定多个路径。例如,以加速节点A为源转发节点,中心控制器计算从加速节点A到其他的加速节点(如加速节点B,加速节点C)的路径。以加速节点B为源转发节点,中心控制器计算从加速节点B到其他的加速节点(如加速节点A,加速节点C)的路径。
S12、中心控制器基于路径生成每个加速节点对应的源路由表。
源路由表中包括路径所经历的加速节点的列表及下一跳加速节点,每个加速节点的下一跳加速节点可能是不同的,由此,每个转发节点需要对应不同的源路由表。
步骤503、中心控制器向每个加速节点下发该加速节点对应的源路由表。
加速节点以第一加速节点和第二加速节点为例。例如,中心控制器向第一加速节点发送源路由表A。中心控制器向第二加速节点发送源路由表B。
步骤504、中心控制器获取用户申请网络加速服务的目的端的第一IP地址。
例如,中心控制器接收申请网络加速服务的请求,该请求携带业务域名。中心控制器向DNS服务器发送该业务域名,DNS服务器用于解析该业务域名,得到云region的IP信息(如EIP1),该第一IP地址是EIP1。中心控制器从DNS服务器获取到云region的IP信息(即EIP1)。再如,中该请求携带终端(或服务器)的IP地址(如IP1),该第一IP地址是IP1。
步骤505、中心控制器生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系。
首先,中心控制器根据目的端的第一IP地址确定第二加速节点。当目的端是云region,即第一IP地址是云region的EIP时,中心控制器确定部署于该云region中的加速节点(如第二加速节点)。再如,当目的端是终端(或服务器),即该第一IP地址是终端(或服务器)的IP地址时,中心控制器查找IP地址库,确定目的端的物理位置,中心控制器确定距离该物理位置最近的第二加速节点。然后,中心控制器建立第一IP地址与第二加速节点的对应关系。最后,中心控制器根据对应关系生成位置路由表。
步骤506、中心控制器向所有加速节点发送位置路由表,所有加速节点包括第一加速节点;相应的,第一加速节点接收中心控制器发送的源路由表和位置路由表。
中心控制器调用南向数据接口将位置路由表下发到各加速节点的本地控制器,本地控制器将源路由表和位置路由表下发到Compass。应理解,中心控制器向每个加速节点发送每个加速节点对应的源路由表。而向所有的加速节点发送相同的位置路由表。例如,中心控制器向第一加速节点发送源路由表A和位置路由表。
为了方便说明,以所有加速节点中的第一加速节点转发数据的过程为例进行说明,第一加速节点是所有加速节点中的任意一个加速节点。
步骤507、第一加速节点接收来自第一终端的数据请求。
第一种实现方式,第一终端通过软件开发工具包(software development kit,SDK)隧道接入到第一加速节点,即第一加速节点通过SDK隧道接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据。
示例性的,请参阅图6所示,图6为第一终端接入到第一加速节点的场景示意图。第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址。第一终端通过SDK插件访问中心控制器,即中心中控器接收第一终端发送的请求,该请求携带第一终端的IP地址。中心控制器根据第一终端的IP地址查询IP地址库,确定第一终端的物理位置,并根据第一终端的物理位置确定距离该物理位置最近的加速节点(即第一加速节点),中心控制器将第一加速节点的IP地址(如IP2)反馈给第一终端。
例如,若第一终端访问的目的端是云region(IP地址是EIP1),则第一终端将待发送的原始数据(也称为“数据请求”)向第一加速节点发送。其中,该原始数据的目的地址是EIP1,原始数据的源地址是IPA(即第一终端的IP地址)。第一终端对数据请求进行SDK封装,得到SDK封装数据。SDK封装数据的头部(或称为“包头”)中的目的地址是第一加速节点的IP地址(如IP2),头部中的源地址是第一终端的IP地址(如IPA)。
本实施例中,终端中配置有SDK插件,终端可以就近接入到一个加速节点,overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。
第二种实现方式中,中心控制器和第一网络设备协同将第一终端的数据请求引导至第一加速节点。
请参阅图7所示,图7为中心控制器和第一网络设备协同将数据请求引导至第一加速节点的场景示意图。第一加速节点是部署于第一网络设备中的加速节点。例如,第一网络设备可以是MEC或OLT。
首先,中心控制器向网络管理系统发送引流信息,网络管理系统用于管理网元设备(如MEC或OLT等)。引流信息包括目的端的IP地址(即第一IP地址)。网络管理设备根据引流信息生成访问控制列表(access control lists,ACL)策略指令,并向第一网络设备发送ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点。
然后,第一网络设备接收网络管理设备发送的ACL策略指令后,根据ACL策略指令过滤接收到的数据。当第一网络设备接收到目的地址是第一IP地址的数据请求时,第一网络设备将目的地址是第一IP地址的数据请求引向第一加速节点。第一加速节点接收第一网络管理设备通过ACL策略引导的数据请求。
本实施例中,适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。
第三种实现方式中,第一加速节点部署于第二网络设备,第二网络设备是局域网内的主机中,第一终端是局域网中的终端设备。第二网络设备为第一加速节点提供私网AIP。在局域网内,第一加速节点通过局域网接收来自终端设备的数据请求。
本实施例中,加速节点嵌入部署到局域网(如企业内网)内,并且第二网络设备为第一加速节点提供私网AIP,从而实现局域网中的终端设备可以通过加速节点接入到overlay网络。overlay网络为局域网中的终端设备提供网络加速服务,解决了运营商分配的公网AIP资源成本昂贵的问题。
另外,上述三种实现方式相对于传统GA方案,在第一终端向第一加速节点发送数据请求时,不丢失原始数据的目的地址(如EIP1)。终端只需通过一个加速节点的公网IP,即可以接入到overlay网络,一个公网IP地址可以为多个业务应用提供共享接入,降低部署成本。
步骤508、第一加速节点获取目标路径,所述目标路径来自于中心控制器生成的路由表项。
当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点。
例如,位置路由表中包括第一IP地址与第二加速节点的对应关系如下表2所示。
表2
第一IP地址 第二加速节点
EIP1 加速节点D
EIP2 加速节点C
IP1 加速节点E
IP2 加速节点F
示例性的,针对上述步骤507中的第一种实现方式,第一加速节点接收SDK封装数据,第一加速节点对SDK封装数据解封装,获取原始数据(数据请求)的真实目的IP(如EIP1)。中心控制器查找位置路由表,确定与EIP1具有对应关系的加速节点D。
第一加速节点根据源路由表向下一跳加速节点发送数据请求,直到数据请求转发至第二加速节点,源路由表包括从第一加速节点到第二加速节点的最优路径,第二加速节点用于将数据请求转发到第一IP地址对应的目的端。
第一加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。例如,第一加速节点为加速节点A,第二加速节点为加速节点D,目标路径用加速节点的列表表示(如加速节点A、加速节点B、加速节点D)。
步骤509、第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。
第一加速节点对原始数据进行overlay封装,得到overlay封装数据。第一加速节点通过overlay隧道向下一跳发送overlay封装数据。overlay封装数据包括原始数据(数据请求),目标路径,下一跳加速节点的目的地址,源地址。overlay封装数据在目标路径上的加速节点被逐跳转发,直到转发至第二加速节点,第二加速节点对overlay封装数据进行解封装后,将数据请求发送至目的端。
本申请实施例中,overlay网络中灵活部署了大量的加速节点,从而使得全球范围内的终端都能够就近接入到一个加速节点上。第一加速节点获取来自终端的数据请求后,通过查询位置路由表能够确定第二加速节点,第一加速节点按照源路由表中指示的最优路径将来自终端的数据请求下一跳加速节点发送,直到数据请求传递到第二加速节点,第二加速节点在将数据请求传递到目的端,从而能够真正实现全球范围内的终端都能享受网络加速服务。并且相对于传统方法中的GA方案,所有加速节点中的任意一个加速节点都能够作为终端接入到overlay网络的接入节点,而且每个加速节点又可以作为最优路径中的一个传输节点,每个加速节点提供的服务被所有目的端共享,不需要像传统方法中的GA,一个业务应用就要耗费一个AIP地址映射,工程部署易于实现。
可选地,为了能够为业务应用提供更好的网络转发服务,业务应用可以对网络设置参数进行定制。本实施例中的overlay网络能够根据业务应用的实际需求为提供网络加速服务。
请参阅图8所示,图8为业务应用申请网络加速服务的两种申请方式的示意图。
本申请中的ADN面向各类业务应用提供网络加速服务,业务应用(如视频业务提供商A)向中心控制器申请网络加速服务包括如下两种方式。
方式1、业务应用人员的PC机登录console平台,PC机响应于业务应用人员的操作,业务应用人员在console界面点击选择网络设置参数,网络设置参数包括但不限于包括加速周期、带宽、成本中的至少一个。ADN根据网络设置参数为业务应用(如视频业务提供商A)提供overlay网络加速服务。本实施例中,业务应用的工作人员只需要根据ADN提供的网络设置参数进行选择,申请网络加速服务的方式简单,易于操作。
方式2、业务应用直接调用天路API申请网络加速服务。
业务应用与ADN为合作关系,AND对业务应用授权,业务应用可以直接调用中心控制器的北向应用程序接口(application programming interface,API),实现对网络参数进行定制。如申请“QoS最优”、申请“成本最优”、申请“QoS+成本综合最优”等。本实施例中,业务应用可以完全按照自身的需求定制网络加速服务,满足不同业务应用的个性化服务需求。
针对上述方式1,对业务应用申请网络加速服务的过程进行示例性说明。请参阅图9所示,图9为网络加速服务的申请界面的场景示意图。本申请中ADN为业务应用提供“申请网络加速服务”的界面,以供各类业务应用申请网络加速服务。例如,“申请网络加速服务”的界面主要包括创建租户界面、创建加速实例(输入加速实例参数配置)界面、添加加速区域界面、设置云region域名界面、设置加速公网IP地址界面等。其中,“设置云region域名界面”适用于目的端是云region的场景,即终端访问云region的场景。而“设置加速公网IP地址界面”适用于目的端是终端(或服务器)的场景,即终端访问终端的场景。对于业务应用申请网络加速服务的步骤如下述步骤a-步骤e。
步骤a、业务应用人员的PC机展示console“创建用户”界面,业务应用人员的PC机响应于业务应用人员的创建用户操作,向console平台发送“用户名”和“密码”等用户信息。console平台向中心控制器发送用户信息。
步骤b、业务应用人员的PC机展示“创建加速实例”界面。“创建加速实例”界面用于提供网络设置参数的设置。例如网络设置参数包括带宽、加速周期、服务模式参数(第一模式或第二模式)。第一模式是指网络加速服务的目的端是云region,第二模式是指网络加速服务的目的端是终端(或服务器)。
当第一模式被选择时,进入下述步骤c;当第二模式被选择时,进入下述步骤e。
步骤c、当业务应用人员选择第一模式时,业务应用人员的PC机展示“选择加速区域”界面。该“选择加速区域”界面用于提供网络加速服务的绑定区域。例如,区域包括“亚洲”、“中国”、“印度”、“欧洲”等。“加速区域”用于指示业务应用所服务的用户所在的区域。例如,业务应用为“网易游戏”,“网易游戏”的用户遍布全球各地,“网易游戏”选择的加速区域可能选择所有的区域。而“视频业务提供商A”的用户主要分布在中国,“视频业务提供商A”选择的加速区域可能选择所有的区域是“中国”。终端响应于业务应用人员的选择加速区域操作后,向console平台发送目标加速区域(如中国)。
步骤d、业务应用人员的PC机展示“云region信息”界面。“云region信息”界面用于接收云region的标识,域名(或EIP)。其中,域名为业务应用(如视频业务提供商A)的域名。业务应用人员的PC机响应于业务应用人员的操作后,向console平台发送云region信息。
步骤e、当业务应用人员选择第二模式时,业务应用人员的PC机展示“输入加速IP”的界面。“输入加速IP”的界面用于接收目的端(终端或服务器)的公网IP的列表。PC机响应于业务应用人员的操作后,向console平台发送目的端的公网IP。
经过上述步骤a-步骤d,或者,步骤a、步骤b和步骤e后,console平台接收到上述网络设置参数后,对用户名与网络设置参数建立关联关系。console平台将网络设置参数通过北向API发送给中心控制器。
在上述图5对应的实施例中,在步骤507之前,还包括如下步骤:
中心控制器获取业务应用对应的带宽和目标加速区域;
中心控制器根据带宽参数生成承诺访问速率(commited access rate,CAR)限速配置信息;
中心控制器根据目的端的EIP信息对目标区域内的加速节点分配接入权限,并向加速节点下发CAR限速配置信息,该CAR限速配置信息用于指导最优路径上的所有加速节点进行数据转发,以满足业务应用的网络加速需求。
在一个应用场景中,该应用场景主要描述的是第一终端访问的目的端是云region的场景。请参阅图10所示,所有加速节点部署完成后,中心控制器向所有加速节点下发QoS测量任务。每个加速节点对该加速节点与邻居加速节点间链路状态进行QoS测量,加速节点采集链路状态信息,并向中心控制器发送链路状态信息。中心控制器根据链路状态信息和所有加速节点的拓扑结构计算最优路径,并根据最优路径生成源路由表,中心控制器向每个加速节点发送该加速节点对应的源路由表。
业务应用(如视频业务提供商A)向console申请网络加速服务,网络加速服务的目的端是云region,且云region(例如云region1)的IP信息是EIP1。可选地,中心控制器还获取到“视频业务提供商A”对应的目标带宽、目标加速区域等信息。
中心控制器根据EIP1确定加速节点D,加速节点D是部署于云region1中的加速节点。
中心控制器生成位置路由表,位置路由表包括加速节点D与EIP1的对应关系。中心控制器将位置路由表发送至所有加速节点。
中心控制器根据目标加速区域(中国区域)索引中国区域内的所有加速节点。中心控制器根据目标带宽生成配置信息。
中心控制器向目标加速区域内的加速节点下发控制信息和配置信息。其中,控制信息包括云region的EIP(如EIP1),控制信息用于指示加速节点对云region的EIP进行过滤,准许EIP1的数据流量按照配置信息进行数据转发。
第一终端就近接入到加速节点A,加速节点A是中国区域内加速节点。加速节点A获取数据请求的目的地址是EIP1。加速节点A根据控制信息过滤目的地址是EIP1的数据请求按照配置信息指示的速率通过。
加速节点A根据位置路由表确定EIP1对应的加速节点D(即第二加速节点)。加速节点A查询源路由表,根据源路由表中的加速节点A至加速节点D之间的最优路径(如加速节点A-加速节点B-加速节点C-加速节点D)对来自第一终端的数据请求转发到下一跳加速节点B,且最优路径上的加速节点(如加速节点A、加速节点B、加速节点C、加速节点D)根据中心控制器下发的配置信息将来自第一终端的数据请求在最优路径上逐条转发,直到转发到加速节点D。加速节点D将来自第一终端的数据转发到云region(EIP1)。
另外,可选地,在POP和云region间的网络,可以实现HBN专线网络传输,或普通internet传输。例如,加速节点A部署于边缘云A、加速节点B部署于边缘云B、加速节点C部署于POP点,加速节点D部署于云region。则加速节点C在对数据请求进行overlay封装时,目的地址是加速节点D的加速公网IP地址,源地址是加速节点C的加速公网IP地址,加速节点C和加速节点D之间通过HBN专线网络转发数据,以提高POP至云region的网络传输速率。加速节点C和加速节点D之间也可以通过普通internet传输数据,从而为业务应用节省成本。
另外,在本申请中,当目的端是云region时,各业务应用只需调用AND提供的网络加速服务即可实现终端快速访问云Region,避免各个业务应用系统重复独立开发。
在第二个应用场景中,第二个应用场景主要描述目的端是终端(或服务器)的场景,即终端与终端之间横向访问的场景。所有加速节点部署完成后,中心控制器向所有加速节点下发QoS测量任务。每个加速节点对该加速节点与邻居加速节点间链路状态进行QoS测量,加速节点采集链路状态信息,并向中心控制器发送链路状态信息。中心控制器根据链路状态信息和所有加速节点的拓扑结构计算所有加速节点中的最优路径,并根据最优路径生成源路由表,中心控制器向每个加速节点发送该加速节点对应的源路由表。
用户在申请网络加速服务,console平台获取到公网IP地址的列表,并将公网IP地址的列表向中心控制器发送。
中心控制器获取到公网IP地址的列表后,查询IP地址库,确定每个目的端(如第二终端)的物理位置,根据目的端的物理位置,确定与该物理位置最近的加速节点。例如IP1位于北京市,中心控制器查找IP地址库确定与IP1最近的加速节点是加速节点D(位于北京市)。IP2位于西安市,中心控制器查找IP地址库确定与IP2最近的加速节点是加速节点F(位于西安市)。中心控制器生成位置路由表,位置路由表包括公网IP与加速节点的对应关系(如IP1与加速节点D的对应关系,IP2与加速节点F的对应关系)。
中心控制器向加速节点发送位置路由表。
第一终端就近接入到加速节点A,加速节点A获取来自第一终端的数据请求,数据请求的目的IP是IP1。
加速节点A根据位置路由表确定IP1对应的加速节点是加速节点D(即第二加速节点)。
加速节点A查询源路由表,根据源路由表中的加速节点A至加速节点D之间的最优路径(如加速节点A-加速节点B-加速节点C-加速节点D)将数据请求转发到下一跳加速节点B,数据请求在最优路由上逐跳转发,直到转发到加速节点D。加速节点D将来自第一终端的数据转发到第二终端。
相对于传统方法中的GA,传统方法中的GA仅支持终端访问云region的场景,而本实施例中的ADN不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,ADN具有普适性。
示例性的,针对图5对应的实施例中的步骤509,对第一加速节点将来自终端的数据请求转发至目的端的过程进行说明。一、目的端是云region,即上述第一个应用场景。二、目的端是终端(或服务器),即上述第二个应用场景。
首先,对数据的封装格式进行说明。请参阅图11所示,图11为基于用户数据报(user datagram protocol,UDP)进行overlay封装的数据格式的示意图。在overlay隧道中传输的报文对原始数据进行封装,得到overlay封装数据,overlay封装数据的格式包括以下所示字段。
IP头(header)字段:包括源地址(长度为32位)和目的地址(长度为32位)。
UDP头(header)字段,包括源端口号(长度为16位)和目的端口号(长度为16位)。
段列表(segment list,SL)字段:用于指示数据包在转发过程中需要经过的节点。列表为segment list[0]到segment list[n-1]。其中,[*]用于表示节点的编号(或者也称为“下标”),n表示最优路径中加速节点的数量。在源加速节点压路径标签的时候,会压入多层标签,即压入数据包传输过程中需要经过的节点。比如,最优路径包括n个节点(如节点A,节点B,节点C等),第一个压入到目的地址中的是segment list[n-1](例如,segment list[2])对应的加速节点的IP地址。最后一个压入到目的地址中的是segment list[0]的IP地址。例如,segment list可以如下所示。
segment list[0]=IPD;
segment list[1]=IPC;
segment list[2]=IPB。
第一段(first segment)字段:长度为8位,用于指数据从源加速节点发送到目的加速节点经过的第一跳。在segment list中,最下面的节点(segment list[n-1])是距离源加速节点更近的节点,最上面的是目的加速节点segment list[0]),所以first segment字段的值是“n-1”。
剩余段(segment left)字段:用于指示当前活跃的segment,即用于指示数据将要传输的下一跳。在源加速节点获取到数据时,数据还没有向下一跳传输,segment left字段的值为n-1,以表示下一个要经过的节点是segment list[n-1]对应的节点(如节点B)。
数据每经过segment list中的一个节点,segment left的字段值会递减1。加速节点会将segment list[SL]的节点的IP地址拷贝到包头中的目的地址的字段里面,从而指示下一跳的节点,将数据发往目的地。例如,A是源加速节点,D是目的加速节点,最优路径经过的加速节点为B、C、D。这时,加速节点B是从加速节点A到加速节点D要经过的第一个加速节点,所以first segment字段的值为加速节点B对应的下标“2”。此时,数据还没有发送,即segment list中的节点还没有到达,所以segment left字段的值也为加速节点B对应的下标“2”。同时,源加速节点会将Segment List[2]=B的地址(IPB)拷贝到包头的目的地址中。当数据包到达加速节点B时,加速节点B收到数据后查看头部的目的地址为IPB。加速节点B拆掉头部,得到segment left字段的值为“2”,加速节点B确定传输的数据还没有到达目的加速节点,加速节点B还需要对数据进行继续转发,加速节点B保持first segment字段的值不变(如2)。加速节点B将segment left的值减1,segment left字段的值变更为1。并且,加速节点B将segment list[SL=1]对应的地址(加速节点C的IP地址)拷贝到目的地址中,然后继续转发数据。
载荷长度(payload length)字段:长度为16位。
本实施例中,overlay隧道以UDP方式封装IP三层报文进行数据转发,IP报文内层的数据(即原始数据)可以是传输控制协议(transmission control protocol,TCP)或UDP等各种传输类型的数据包,overlay封装数据包可以不受传输类型、应用类型的约束,网络加速服务普适范围更加广泛。
然后,对数据转发的过程进行说明。数据转发的过程分为目的端是云region的情况,及目的端是终端(或服务器)的情况。
一、目的端是云region,即第一终端访问云region的场景。示例性的,第一终端接入到第一加速节点以通过SDK隧道方式接入为例,第一加速节点以加速节点A为例,第一终端的IP地址为IP1,加速节点A的公网IP地址是IPA。中心控制器预先为源加速节点和目的加速节点配置第一NAT IP(也称为“首NAT IP”),为目的加速节点配置第二NAT IP(也称为“尾NAT IP”)。例如,第一NAT IP为IP8,第二NAT IP为IP9。示例性的,Overlay网络中,从源加速节点到目的加速节点间的最优路径为:加速节点A→加速节点B→加速节点D。其中,加速节点A配置有公网IPA和第一NAT IP(IP8),IPA和IP8可以为不同的IP地址,或者,为了节省公网IP,IPA和IP8可以为相同的IP地址。加速节点D配置有公网IPD和第一NAT IP(IP9)。IPD和IP9可以为不同的IP地址,或者,为了节省公网IP,IPD和IP9可以为相同的IP地址。
示例性的,请参阅图12所示,图12为第一终端和云region间数据转发的场景示意图。
S41.第一终端向加速节点A发送数据包,数据包的目的地址是EIP,源地址是IP1。第一终端对数据包进行SDK封装,得到SDK封装数据,SDK封装数据的目的地址是IPA,SDK封装数据的源地址是IP1。第一种情况,当IP1是公网IP时,第一终端将SDK封装数据向加速节点A发送,加速节点A接收到SDK封装数据后,剥离掉SDK头部,暴露出原始数据的目的地址是EIP,源地址是IP1。第二种情况,当IP1是私网IP地址时,SDK封装数据穿越运营商网络的网络地址转换(network address translation,NAT)设备,到达加速节点A。其中,NAT设备的公网IP地址为IPM。
S42.加速节点A剥离掉SDK头部,暴露原始数据,加速节点A将内层中的源地址修改为网络地址转换后的公网IPM。
S43.加速节点A进行源地址转换(source NAT,SNAT),将IPM转换为第一NAT IP(如IP8)。即内层中的源地址为IP8,目的地址是EIP。可以理解的是,本步骤中SNAT为端口的映射,将IPM映射为IP8。本步骤中,加速节点A将IPM转换为第一NAT IP的目的是,当云region返回数据流时,将IP8作为目的加速节点的IP地址。
S44.加速节点A对内层的数据进行overlay封装,overlay封装数据的报文格式如图11所示,overlay封装数据包括内层数据(即原始数据,源地址为IP8,目的地址是EIP)、overlay包头中的下一跳的IP地址(IPB)和最优路径中加速节点的IP地址(如加速节点A的IP地址为IPA、加速节点B的IP地址为IPB、加速节点D的IP地址为IPD)。
S45.加速节点B接收到overlay封装数据后,根据segment left字段的值确定该数据包没有到达目的加速节点,加速节点B继续将overlay封装数据中的下一跳的IP地址修改为IPD,并将overlay封装数据向下一跳(加速节点D)转发。
S46.加速节点D接收到overlay封装数据后,根据segment left字段的值确定overlay封装数据已经到达目的加速节点,加速节点D剥掉overlay封装数据的头部后,暴露出内层数据的源地址是IP8,目的地址是EIP。加速节点D将内层数据的源地址经过SNAT后,映射为尾NAT IP(如IP9)。加速节点D是部署于云region(目的端)中的加速节点,尾NAT IP是云region分配的IP地址。可选地,为了节省公网IP地址,加速节点D的IPD和尾NAT IP可以是相同的IP。加速节点D通过云region内部网络访问数据中心(IP信息为EIP)。本步骤中,加速节点D将内层数据的目的地址映射为尾NAT IP(如IP9)的目的是,当云region返回数据流时,将IP9作为源加速节点的IP地址。
以上步骤S41-S46为正向数据流量转发流程,即第一终端向云region发送数据的流程。下面步骤S51-S56为反向数据流量转发流程,即云region向第一终端发送数据的流程。
S51.数据中心向加速节点D发送反馈的原始数据,反馈的原始数据的目的地址是IP9,源目的地址是EIP,即数据中心将尾NAT IP(IP9)作为目的地址,数据中心接入到云region的加速节点D。
S52.加速节点D接收到反馈的原始数据后,将反馈的原始数据中的目的地址进行目的地址转换,将目的地址映射为IP8。
S53.加速节点D查找位置路由表,根据位置路由表确定与IP8对应的加速节点A。加速节点D根据源路由表,确定从加速节点D到加速节点A的最优路径(加速节点的列表)。加速节点D将最优路径(加速节点的列表)、下一跳加速节点(如加速节点B),和反馈的原始数据进行overlay封装,将overlay封装数据逐跳转发,直到转发到加速节点A。
S54.加速节点A接收到overlay封装数据后,将overlay头部剥掉,暴露内层反馈数据的目的地址(IP8)和源地址(EIP)。
S55.加速节点A进行目的地址转换,将IP8映射为NAT设备的公网IPM。
S56.NAT设备将IPM映射为第一终端的私网IP地址(IP1),NAT设备将私网转发。
二、目的端是终端(或服务器),即第一终端访问第二终端(或服务器)的场景。
请参阅图13所示,图13为第一终端和第二终端间进行数据转发的场景示意图的场景示意图。其中,第一终端中内置有SDK插件,第一终端能够通过SDK插件访问中心控制器。第二终端中内置有SDK插件,第二终端能够通过SDK插件访问中心控制器。示例性的,第一终端的IP地址是IP2,第二终端的IP地址是IP3。
第一终端通过SDK访问中心控制器,中心控制器向第一终端反馈加速节点A的IP地址。第一终端接入到加速节点A(源加速节点)。
S61.第一终端获取原始数据,原始数据的目的地址是IP3,源地址是IP2。
S62.第一终端对待发送的原始数据进行SDK封装,通过SDK隧道向加速节点A发送SDK封装数据。SDK封装数据包括SDK包头和原始数据。其中,SDK包头中的源地址是IP2,目的地址是IPA(加速节点A的公网IP)。
S63.加速节点A解封装SDK封装数据,剥掉SDK头部,暴露原始数据的目的地址(IP3)和源地址(IP2)。加速节点A查找位置路由表,确定和目的地址(IP3)具有对应关系的加速节点(如加速节点D)。加速节点A查找源路由表,确定从加速节点A至加速节点D间的最优路径,即从加速节点A至加速节点D所需要经历的加速节点(segment list)。加速节点A对原始数据包进行overlay封装,得到overlay封装数据,overlay封装数据包括原始数据、最优路径上每个加速节点的IP(如,IPA、IPB、IPC、IPD)、下一跳加速节点的IP(如IPB)。加速节点A发送overlay封装数据,overlay封装数据被逐跳转发,直至转发到加速节点D(目的转发节点)。
S64.加速节点D解封装overlay封装数据,得到原始数据。
S65.加速节点D对原始数据进行SDK封装,得到SDK封装数据。得到SDK封装数据的外层目的地址是IP3,源地址是IPD。加速节点D通过SDK隧道将SDK封装数据向第二终端发送。
S66.第二终端解封装SDK封装数据,得到原始数据。
上述步骤S61-S66为数据流正向转发流程过程的示例性说明,即第一终端向第二终端发送数据的流程。下面步骤S71-S76为反向数据流量转发流程,即第二终端向第一终端发送数据的流程。第二终端通过SDK访问中心控制器,中心控制器向第二终端反馈加速节点D的IP地址。第一终端接入到加速节点D(源加速节点)。
S71.第二终端获取反馈的原始数据,反馈的原始数据的目的地址是IP2,源地址是IP3。
S72.第二终端对反馈的原始数据进行SDK封装,通过SDK隧道向加速节点D发送SDK封装数据。SDK封装数据包括SDK头部和反馈数据。其中,SDK封装数据的头部中的源地址是IP3,目的地址是IPD(加速节点D的公网IP)。
S73.加速节点D解封装SDK封装数据,剥掉头部,暴露反馈的原始数据的目的地址(IP2)和源地址(IP3)。加速节点D查找位置路由表,确定和目的地址(IP2)具有对应关系的加速节点(如加速节点A)。加速节点D查找源路由表,确定从加速节点D至加速节点A间的最优路径,即从加速节点D至加速节点A所需要经历的加速节点(segment list)。加速节点D对反馈数据进行overlay封装,得到overlay封装数据,overlay封装数据包括反馈数据、最优路径上每个加速节点的IP(如,IPD、IPC、IPB、IPA)、下一跳加速节点的IP(如IPC)。加速节点D发送overlay封装数据,overlay封装数据被逐跳转发,直至转发到加速节点A(目的转发节点)。
S74.加速节点A解封装overlay封装数据,得到反馈的原始数据。
S75.加速节点A对反馈数据进行SDK封装,SDK封装数据的外层目的地址是IP2,源地址是IPA。加速节点A通过SDK隧道将SDK封装数据向第一终端发送。
S76.第一终端解封装SDK封装数据,得到反馈的原始数据。
可选地,为了保证转发数据的安全性,在加速节点之间传输的数据进行加密封装,并加密传输,以防止数据被窃听。请参阅图14所示,图14为overlay隧道加密转发数据的示意图。
首先,加密封装。源加速节点(如加速节点A)获取到原始数据时,增加加密key字段,并对原始数据进行数据加密填充,得到加密数据。
然后,加密传输。源加速节点向下一跳加速节点发送加密数据,加密数据被逐跳转发,加密数据转发过程中保持加密。直到加密数据达到目的加速节点(如加速节点D)。加速节点D对加密数据进行overlay解封装,同时也解除数据加密,还原出原始数据,并对原始数据进行转发。
传统方法中的GA依赖云厂商的IP专线网络提供加速服务,仅能通过应用层对待传输的数据进行加密,而传输层不支持加密服务。而本申请中AND基于overlay隧道对数据进行转发,则可以天然基于overlay隧道进行数据加密,从而可以对一些机密数据进行应用层、传输层双层加密保护,从而保证数据安全性。
示例性的,对本申请实施例中数据转发方法的加速效果进行示例性说明。请参阅下表3所示,下表3为数据转发加速效果的测试数据。
表3
Figure BDA0003024267400000221
应理解,上述表3中数据仅是示例性说明,并非全部的测试数据。从上述表3可以看出,AND中不同的组网加速节点加速效果不等,较好优化效果可以达到40%以上,大部分的最优路径只需要绕经1个加速节点即可实现时延最优。本申请实施例中,网络加速服务不依赖于专线网络,对于全球普遍覆盖的internet网络,AND能够实现较好的加速优化效果。
如图2所示的通信系统,通信系统包括中心控制器和多个所述加速节点,多个加速节点包括第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。本申请实施例提供了一种加速节点,加速节点1500以第一加速节点为例进行说明,第一加速节点可以是多个加速节点中任意一个加速节点。第一加速节点用于实现上述方法实施例中第一加速节点所执行的功能。请参阅图15所示,加速节点1500包括转发模块1501和控制模块1502,其中,转发模块1501用于实现上述方法实施例中转发节点的功能,控制模块1502用于实现上述方法实施例中本地控制器的功能。
转发模块1501,用于接收来自第一终端的数据请求,所述数据请求用于访问目的端;
控制模块1502,用于获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;
转发模块1501,用于根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。
进一步的,转发模块1501用于执行上述图5对应的实施例中的步骤507、步骤509。当第一加速节点是加速节点A时,转发模块1501还用于执行图12对应的示例中的步骤S42、S43和S44。当第一加速节点是加速节点B时,转发模块1501还用于执行图12对应的示例中的步骤S45。当第一加速节点是加速节点D时,转发模块1501还用于执行图12对应的示例中的步骤S46,S51,S52和S54。当第一加速节点是加速节点A时,转发模块1501还用于执行图13对应的示例中的步骤S63,S74和S75,当第一加速节点是加速节点D时,转发模块1501还用于执行图13对应的示例中的步骤S64,S65和S73。控制模块1502用于执行图5对应的实施例中的步骤508,及图12对应的示例中的步骤S53,S55和S56。
具体的,在一种可选的实现方式中,路由表项包括源路由表和位置路由表;控制模块1502,还用于接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。
在一种可选的实现方式中,转发模块1501,还用于测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;控制模块1502,还用于向中心控制器发送转发模块1501获取的链路状态信息,链路状态信息用于中心控制器生成源路由表。
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址;转发模块1501,还用于通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址,头部中的源地址是第一终端的IP地址。
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;转发模块1501,还用于接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端;转发模块1501,还用于通过局域网接收来自第一终端的数据请求。
在一种可能的设计中,加速节点1500运行于部署环境提供的虚拟机或容器中。请参阅图16所示,图16为虚拟机的架构示意图。虚拟机的架构包括硬件层1601、虚拟化层1602和虚拟机1603。其中虚拟化层1602包括虚拟机监控程序(hypervisor)。虚拟机监控程序用于管理硬件层1601的真实硬件资源,为虚拟机1603提供硬件资源抽象,从而为虚拟机1603中加速节点1500提供运行环境。硬件层1601可以包括一个或多个处理器、存储器和存储设备。其中,存储设备、存储器均与处理器连接。所述处理器也可以称为处理单元,可以实现一定的控制功能。所述处理器可以是通用处理器或者专用处理器等。存储器上可以存有指令,所述指令可在所述处理器上被运行。存储设备用于存储源路由表和位置路由表。虚拟机监控程序为虚拟机提供硬件资源抽象,使得虚拟机中的加速节点执行上述方法实施例中第一加速节点所执行的方法。
请参阅图17所示,本申请实施例还提供了一种中心控制器,中心控制器用于执行上述方法实施例中中心控制器所执行的方法。中心控制器1700包括收发模块1701和处理模块1702。
收发模块1701,用于获取加速节点发送的链路状态信息;
处理模块1702,用于根据收发模块1701获取的链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;
收发模块1701,用于获取用户申请网络加速服务的目的端的第一IP地址;
处理模块1702,还用于生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;
收发模块1701,还用于向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。
进一步的,可选地,收发模块1701为收发器。其中,收发器具有发送和/或接收的功能。可选地,收发器由接收器和/或发射器代替。
可选地,收发模块1701为通信接口。可选地,通信接口是输入输出接口或者收发电路。输入输出接口包括输入接口和输出接口。收发电路包括输入接口电路和输出接口电路。
可选地,处理模块1702为处理器,处理器是通用处理器或者专用处理器等。可选地,处理器包括用于实现接收和发送功能的收发单元。例如该收发单元是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路是分开的部署的,可选地,是集成在一起部署的。上述收发电路、接口或接口电路用于代码或数据的读写,或者,上述收发电路、接口或接口电路用于信号的传输或传递。
进一步的,收发模块1701用于执行上述图5对应的实施例中的步骤501、步骤503,步骤504和步骤506。处理模块1702用于执行上述图5对应的实施例中的步骤502和步骤505。
具体的,在一种可选的实现方式中,处理模块1702还具体用于:根据目的端的第一IP地址确定第二加速节点;建立第一IP地址与第二加速节点的对应关系;根据对应关系生成位置路由表。
在一种可选的实现方式中,当目的端是云区域时,处理模块1702,还用于根据第一IP地址确定云区域中部署的第二加速节点。
在一种可选的实现方式中,当目的端是终端或服务器时,处理模块1702,还用于根据第一IP地址查询IP地址库,确定目的端的物理位置;确定距离物理位置最近的第二加速节点。
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;收发模块1701,还用于接收第一终端发送的请求;根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。
在一种可选的实现方式中,收发模块1701,还用于向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。
在一种可选的实现方式中,收发模块1701,还用于获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。
参阅图18所示,本申请实施例提供了一种中心控制器,该中心控制器1800用于实现上述方法实施例中中心控制器所执行的方法,具体可以参见上述方法实施例中的说明。
中心控制器1800可以包括一个或多个处理器1801,处理器1801也可以称为处理单元,可以实现一定的控制功能。处理器1801可以是通用处理器或者专用处理器等。中央处理器可以用于对中心控制器进行控制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器1801也可以存有指令1803,指令1803可以被处理器运行,使得中心控制器1800执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器1801中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,中心控制器1800可以包括电路,所述电路可以实现上述方法实施例中发送或接收的功能。
中心控制器1800中可以包括一个或多个存储器1802,其上可以存有指令1804,所述指令可在所述处理器上被运行,使得中心控制器1800执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。
可选地,中心控制器1800还可以包括收发器1805和/或天线1806。所述处理器1801可以称为处理单元,对所述中心控制器1800进行控制。所述收发器1805可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
本申请实施例一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述方法实施例中中心控制器执行的方法。
本申请实施例一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述方法实施例中第一加速节点所执行的方法。
本申请实施例一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述方法实施例中中心控制器所执行的方法。
本申请实施例一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述方法实施例中第一加速节点所执行的方法。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (32)

1.一种数据转发方法,其特征在于,应用于通信系统中的第一加速节点,所述通信系统包括中心控制器和多个加速节点,所述多个加速节点包括所述第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;
所述第一加速节点接收来自第一终端的数据请求,所述数据请求用于访问目的端;
所述第一加速节点获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;
所述第一加速节点根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。
2.根据权利要求1所述的方法,其特征在于,所述路由表项包括源路由表和位置路由表;所述方法还包括:
所述第一加速节点接收所述中心控制器发送的源路由表和位置路由表,所述源路由表包括从源加速节点到目的加速节点的路径,所述位置路由表包括第一IP地址和第二加速节点的对应关系,所述第一IP地址是用户申请网络加速服务的目的端的IP地址;
所述第一加速节点获取目标路径,包括:
当所述数据请求的目的地址是所述第一IP地址时,所述第一加速节点查询所述位置路由表,确定与所述第一IP地址对应的第二加速节点,所述第二加速节点是目的加速节点;
当所述第一加速节点是源加速节点时,所述第一加速节点根据所述第二加速节点查询所述源路由表,确定从所述第一加速节点到所述第二加速节点的目标路径。
3.根据权利要求2所述的方法,其特征在于,所述第一加速节点接收所述中心控制器发送的源路由表之前,所述方法还包括:
所述第一加速节点测量所述第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;
所述第一加速节点向所述中心控制器发送所述链路状态信息,所述链路状态信息用于所述中心控制器生成所述源路由表。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一终端内配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址,所述第一加速节点接收来自第一终端的数据请求,包括:
所述第一加速节点通过SDK隧道从所述第一终端接收SDK封装数据,所述SDK封装数据是对所述数据请求进行封装后的数据,所述SDK封装数据的头部中的目的地址是所述第一加速节点的IP地址,所述头部中的源地址是所述第一终端的IP地址。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一加速节点的部署环境是第一网络设备,所述第一网络设备用于接收访问控制列表ACL策略指令,所述ACL策略指令用于触发所述第一网络设备将目的地址是第一IP地址的数据引导至所述第一加速节点;所述第一加速节点接收来自第一终端的数据请求,包括:
所述第一加速节点接收所述第一网络设备根据ACL策略指令引导的来自所述第一终端的数据请求。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一加速节点的部署环境是局域网中的设备,所述第一终端是所述局域网中的终端,所述第一加速节点接收来自第一终端的数据请求,包括:
所述第一加速节点通过所述局域网接收来自所述第一终端的数据请求。
7.根据权利要求1所述的方法,其特征在于,所述目的端是云区域,或者,所述目的端是第二终端或服务器。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述部署环境包括云区域,接入点POP,边缘云,光线路终端OLT,或多接入边缘计算设备MEC。
9.一种数据转发方法,其特征在于,应用于通信系统中的中心控制器,所述通信系统包括中心控制器和部署于各种部署环境中的多个加速节点,所述多个加速节点包括第一加速节点和第二加速节点,所述方法包括:
所述中心控制器获取所述加速节点发送的链路状态信息;
所述中心控制器根据所述链路状态信息生成源路由表,所述源路由表包含从源加速节点到目的加速节点的路径;
所述中心控制器获取用户申请网络加速服务的目的端的第一IP地址;
所述中心控制器生成位置路由表,所述位置路由表包括所述第一IP地址与第二加速节点的对应关系;
所述中心控制器向所述第一加速节点发送所述位置路由表和所述第一加速节点对应的源路由表,所述位置路由表用于引导所述第一加速节点根据第一IP地址确定所述第二加速节点,所述第一IP地址是来自第一终端的数据请求的目的地址,所述源路由表用于所述第一加速节点获取目标路径,所述目标路径用于引导所述数据请求转发至所述第二加速节点,所述第二加速节点用于将所述数据转发到所述目的端。
10.根据权利要求9所述的方法,其特征在于,所述中心控制器生成位置路由表,包括:
所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点;
所述中心控制器建立所述第一IP地址与所述第二加速节点的对应关系;
所述中心控制器根据所述对应关系生成位置路由表。
11.根据权利要求10所述的方法,其特征在于,当所述目的端是云区域时,所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点,包括:
所述中心控制器根据所述第一IP地址确定所述云区域中部署的第二加速节点。
12.根据权利要求10所述的方法,其特征在于,当所述目的端是终端或服务器时,所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点,包括:
所述中心控制器根据所述第一IP地址查询IP地址库,确定所述目的端的物理位置;
所述中心控制器确定距离所述物理位置最近的所述第二加速节点。
13.根据权利要求10-12中任一项所述的方法,其特征在于,所述第一终端中配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址信息;所述方法还包括:
所述中心中控器接收所述第一终端发送的请求;
所述中心控制器根据所述请求向所述第一终端反馈所述第一加速节点的IP地址,所述第一加速节点的IP地址用于所述第一终端利用SDK隧道向所述第一加速节点发送所述数据请求。
14.根据权利要求9-12中任一项所述的方法,其特征在于,所述方法还包括:
所述中心控制器向网络管理系统发送引流信息,所述引流信息包括所述目的端的IP信息,所述引流信息用于触发所述网络管理系统向第一网络设备发送ACL策略指令,所述第二加速节点是部署于所述第一网络设备中的加速节点,所述ACL策略指令用于触发所述第一网络设备将来自所述第一终端的数据请求引导至所述第一加速节点。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述中心控制器获取模式参数,所述模式参数包括第一模式和第二模式,其中,所述第一模式用于指示网络加速服务的目的端是云区域,所述第二模式用于指示网络加速服务的目的端是第二终端或服务器。
16.一种加速节点,其特征在于,包含于通信系统,所述通信系统包括中心控制器和多个所述加速节点,多个所述加速节点包括第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;所述第一加速节点包括:
转发模块,用于接收来自第一终端的数据请求,所述数据请求用于访问目的端;
控制模块,用于获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;
所述转发模块,用于根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。
17.根据权利要求16所述的加速节点,其特征在于,所述路由表项包括源路由表和位置路由表;
所述控制模块,还用于接收所述中心控制器发送的源路由表和位置路由表,所述源路由表包括从源加速节点到目的加速节点的路径,所述位置路由表包括第一IP地址和第二加速节点的对应关系,所述第一IP地址是用户申请网络加速服务的目的端的IP地址;
当所述数据请求的目的地址是所述第一IP地址时,所述第一加速节点查询所述位置路由表,确定与所述第一IP地址对应的第二加速节点,所述第二加速节点是目的加速节点;
当所述第一加速节点是源加速节点时,所述第一加速节点根据所述第二加速节点查询所述源路由表,确定从所述第一加速节点到所述第二加速节点的目标路径。
18.根据权利要求17所述的加速节点,其特征在于,
所述转发模块,还用于测量所述第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;
所述控制模块,还用于向所述中心控制器发送所述转发模块获取的所述链路状态信息,所述链路状态信息用于所述中心控制器生成所述源路由表。
19.根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一终端内配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址;
所述转发模块,还用于通过SDK隧道从所述第一终端接收SDK封装数据,所述SDK封装数据是对所述数据请求进行封装后的数据,所述SDK封装数据的头部中的目的地址是所述第一加速节点的IP地址,所述头部中的源地址是所述第一终端的IP地址。
20.根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一加速节点的部署环境是第一网络设备,所述第一网络设备用于接收访问控制列表ACL策略指令,所述ACL策略指令用于触发所述第一网络设备将目的地址是第一IP地址的数据引导至所述第一加速节点;
所述转发模块,还用于接收所述第一网络设备根据ACL策略指令引导的来自所述第一终端的数据请求。
21.根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一加速节点的部署环境是局域网中的设备,所述第一终端是所述局域网中的终端;
所述转发模块,还用于通过所述局域网接收来自所述第一终端的数据请求。
22.一种中心控制器,其特征在于,包括:
收发模块,用于获取加速节点发送的链路状态信息;
处理模块,用于根据所述收发模块获取的所述链路状态信息生成源路由表,所述源路由表包含从源加速节点到目的加速节点的路径;
所述收发模块,用于获取用户申请网络加速服务的目的端的第一IP地址;
所述处理模块,还用于生成位置路由表,所述位置路由表包括所述第一IP地址与第二加速节点的对应关系;
所述收发模块,还用于向所述第一加速节点发送所述位置路由表和所述第一加速节点对应的源路由表,所述位置路由表用于引导所述第一加速节点根据第一IP地址确定所述第二加速节点,所述第一IP地址是来自第一终端的数据请求的目的地址,所述源路由表用于所述第一加速节点获取目标路径,所述目标路径用于引导所述数据请求转发至所述第二加速节点,所述第二加速节点用于将所述数据转发到所述目的端。
23.根据权利要求22所述的中心控制器,其特征在于,所述处理模块还具体用于:根据所述目的端的第一IP地址确定所述第二加速节点;建立所述第一IP地址与所述第二加速节点的对应关系;根据所述对应关系生成位置路由表。
24.根据权利要求23所述的中心控制器,其特征在于,当所述目的端是云区域时,
所述处理模块,还用于根据所述第一IP地址确定所述云区域中部署的第二加速节点。
25.根据权利要求23所述的中心控制器,其特征在于,当所述目的端是终端或服务器时,所述处理模块,还用于根据所述第一IP地址查询IP地址库,确定所述目的端的物理位置;确定距离所述物理位置最近的所述第二加速节点。
26.根据权利要求22-25中任一项所述的中心控制器,其特征在于,
所述第一终端中配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址信息;
所述收发模块,还用于接收所述第一终端发送的请求;根据所述请求向所述第一终端反馈所述第一加速节点的IP地址,所述第一加速节点的IP地址用于所述第一终端利用SDK隧道向所述第一加速节点发送所述数据请求。
27.根据权利要求22-25中任一项所述的中心控制器,其特征在于,
所述收发模块,还用于向网络管理系统发送引流信息,所述引流信息包括所述目的端的IP信息,所述引流信息用于触发所述网络管理系统向第一网络设备发送ACL策略指令,所述第二加速节点是部署于所述第一网络设备中的加速节点,所述ACL策略指令用于触发所述第一网络设备将来自所述第一终端的数据请求引导至所述第一加速节点。
28.根据权利要求22所述的中心控制器,其特征在于,
所述收发模块,还用于获取模式参数,所述模式参数包括第一模式和第二模式,其中,所述第一模式用于指示网络加速服务的目的端是云区域,所述第二模式用于指示网络加速服务的目的端是第二终端或服务器。
29.一种通信系统,其特征在于,包括多个如权利要求16至21中任一项所述的加速节点和如权利要求22至28中任一项所述的中心控制器,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。
30.一种中心控制器,其特征在于,包括处理器,所述处理器与至少一个存储器耦合,所述处理器用于读取所述至少一个存储器所存储的计算机程序,使得所述中心控制器执行如权利要求9至15中任一项所述的方法。
31.一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,其特征在于,当所述计算机程序代码被计算机执行时,使得计算机实现上述如权利要求1至8中任一项所述的方法;或者,使得计算机实现上述如权利要求9至15中任一项所述的方法。
32.一种计算机可读存储介质,其特征在于,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行如权利要求1至8中任一项所述的方法;或者,使得计算机实现上述如权利要求9至15中任一项所述的方法。
CN202110411432.1A 2021-04-16 2021-04-16 一种数据转发方法及相关装置 Pending CN115225631A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110411432.1A CN115225631A (zh) 2021-04-16 2021-04-16 一种数据转发方法及相关装置
PCT/CN2022/086603 WO2022218341A1 (zh) 2021-04-16 2022-04-13 一种数据转发方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110411432.1A CN115225631A (zh) 2021-04-16 2021-04-16 一种数据转发方法及相关装置

Publications (1)

Publication Number Publication Date
CN115225631A true CN115225631A (zh) 2022-10-21

Family

ID=83605570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110411432.1A Pending CN115225631A (zh) 2021-04-16 2021-04-16 一种数据转发方法及相关装置

Country Status (2)

Country Link
CN (1) CN115225631A (zh)
WO (1) WO2022218341A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024198825A1 (zh) * 2023-03-30 2024-10-03 杭州阿里云飞天信息技术有限公司 基于全球加速网络的数据传输系统、方法及存储介质
WO2024217184A1 (zh) * 2023-04-20 2024-10-24 腾讯科技(深圳)有限公司 一种分布式系统及一种传输调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111277630B (zh) * 2020-01-13 2022-09-09 腾讯科技(深圳)有限公司 一种路由控制方法、装置、电子设备和存储介质
CN111683013B (zh) * 2020-06-08 2022-03-08 腾讯科技(深圳)有限公司 一种加速网络的路由方法和加速网络

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024198825A1 (zh) * 2023-03-30 2024-10-03 杭州阿里云飞天信息技术有限公司 基于全球加速网络的数据传输系统、方法及存储介质
WO2024217184A1 (zh) * 2023-04-20 2024-10-24 腾讯科技(深圳)有限公司 一种分布式系统及一种传输调度方法

Also Published As

Publication number Publication date
WO2022218341A1 (zh) 2022-10-20

Similar Documents

Publication Publication Date Title
KR102139712B1 (ko) 패킷 프로세싱 방법 및 디바이스
CN105830395B (zh) 用于促进分析的基于会话的分组路由
US7668164B2 (en) Methods and arrangements in a telecommunications system
CN112671628B (zh) 业务服务提供方法及系统
US20140226664A1 (en) Method, apparatus, and system for implementing private network traversal
US11337084B2 (en) Control apparatus for gateway in mobile communication system
ES2758779T3 (es) Sistema de red de banda ancha y procedimiento de implementación del mismo
EP1437020A2 (en) System and method for enabling mobile edge services
KR20130101663A (ko) 클라우드 네트워킹 장치 및 방법
WO2022218341A1 (zh) 一种数据转发方法及相关装置
JP2019519146A (ja) ルーティング確立、パケット送信
US20230336377A1 (en) Packet forwarding method and apparatus, and network system
CN115150312B (zh) 一种路由方法及设备
CN113163276A (zh) 路由信息的发布方法、装置及系统
CN102316085A (zh) 一种sctp偶联通信的方法及系统
CN116488958A (zh) 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备
CN112910791B (zh) 导流系统及其方法
CN101572729A (zh) 一种虚拟专用网节点信息的处理方法及相关设备、系统
CN114389992A (zh) 一种控制流量转发方法、设备及系统
CN111464449B (zh) 一种域间流量本地化交换方法
CN117834698A (zh) 一种游戏加速方法和装置
CN118233379A (zh) 数据传输方法、装置、设备、存储介质及程序产品
CN117938408A (zh) 一种在Android设备中实施动态访问控制的方法和系统
CN118337562A (zh) 一种任播服务访问方法及系统
CN118300981A (zh) 一种网络地址转换网关配置方法及云管理平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination