WO2022218341A1 - Data forwarding method and related apparatus - Google Patents

Data forwarding method and related apparatus Download PDF

Info

Publication number
WO2022218341A1
WO2022218341A1 PCT/CN2022/086603 CN2022086603W WO2022218341A1 WO 2022218341 A1 WO2022218341 A1 WO 2022218341A1 CN 2022086603 W CN2022086603 W CN 2022086603W WO 2022218341 A1 WO2022218341 A1 WO 2022218341A1
Authority
WO
WIPO (PCT)
Prior art keywords
acceleration node
acceleration
address
node
terminal
Prior art date
Application number
PCT/CN2022/086603
Other languages
French (fr)
Chinese (zh)
Inventor
顾炯炯
苗勇
Original Assignee
华为云计算技术有限公司
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 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2022218341A1 publication Critical patent/WO2022218341A1/en

Links

Images

Classifications

    • 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
    • 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

Definitions

  • the present application relates to the technical field of computer networks, and in particular, to a data forwarding method and related devices.
  • G Global Accelerator
  • a cloud vendor builds a point of presence (POP) around the world, and the POP point is interconnected with the cloud vendor's private line network.
  • the terminal is connected to the nearest POP point, for example, the terminal of the Asia-Pacific user is connected to POP1.
  • the POP1 point introduces the data flow from the terminal to the private line network, and the private line network is connected to the cloud area, so that the terminal can quickly forward the data to be forwarded to the cloud area through the private line network deployed by the cloud manufacturer.
  • the GA service is completely dependent on the construction and distribution of POP nodes and physical private line networks deployed by cloud vendors, and the GA service capability is limited.
  • Embodiments of the present application provide a data forwarding method and a related device, which are used to improve the coverage of a network acceleration service.
  • an embodiment of the present application provides a data forwarding method, which is applied to a first acceleration node in a communication system.
  • the communication system includes a central controller and multiple acceleration nodes, and the multiple acceleration nodes belong to an overlay network, and the multiple acceleration nodes belong to an overlay network.
  • the nodes include a first acceleration node and a second acceleration node, wherein the deployment environment of the central controller belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, application service provider or telecom operator During the operation of multiple acceleration nodes, they are controlled by the central controller, that is, controlled by the first cloud service provider; during the data forwarding process, the first acceleration node receives the data request from the first terminal, and the data request Used to access the destination; the first acceleration node obtains the target path, and the target path comes from the routing table entry generated by the central controller; the first acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to The second acceleration node is configured to forward the data request to the destination end.
  • multiple forwarding nodes can be flexibly deployed in a deployment environment provided by a second cloud service provider, an application service provider, or a telecom operator, thereby ensuring that acceleration nodes can be parasitized everywhere in the world, and all Any acceleration node among the acceleration nodes can be used as an access node for a terminal to access the network, and each acceleration node can be used as a transmission node in the target path.
  • the first acceleration node After the first acceleration node obtains the data request from the first terminal, , the first acceleration node sends the data request from the terminal to the overlay network according to the target path, until the data request is transmitted to the destination acceleration node (second acceleration node) of the target path, and the second acceleration node transmits the data request to the destination end, In this way, users around the world can truly enjoy the network acceleration service.
  • the routing table entry includes a source routing table and a location routing table; the method further includes:
  • the first acceleration node receives the source routing table and the location routing table sent by the central controller, the source routing table includes a path from the source acceleration node to the destination acceleration node, and the location routing table includes the first IP address and the second acceleration node.
  • the corresponding relationship, The first IP address is the IP address of the destination end where the user applies for the network acceleration service; the acquisition of the target path by the first acceleration node may specifically include: when the destination address of the data request is the first IP address, the first acceleration node queries the location routing table , determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node; when the first acceleration node is the source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines from The target path from the first acceleration node to the second acceleration node.
  • the first acceleration node can determine the second acceleration node according to the location routing table.
  • the first acceleration node can determine the second acceleration node according to the source routing table.
  • a target path from the first acceleration node to the second acceleration node is determined, and the first acceleration node forwards to the next-hop acceleration node according to the target path until forwarding to the second acceleration node.
  • the method before the first acceleration node receives the source routing table sent by the central controller, the method further includes: the first acceleration node measures the link status between the first acceleration node and neighboring acceleration nodes, The link state information is obtained; the first acceleration node sends the link state information to the central controller, and the link state information is used by the central controller to generate a source routing table.
  • the acceleration node is also used to measure the link status with the neighboring acceleration node, so that the central controller can generate a source routing table according to the link status, and the path in the source routing table is obtained according to the link status , so that the network acceleration service has a higher quality of service.
  • an SDK plug-in is configured in the first terminal, the address of the central controller is preset in the SDK plug-in, and the first acceleration node receiving the data request from the first terminal may include: the first acceleration node
  • the SDK package data is received from the first terminal through the SDK tunnel.
  • the SDK package data is the data after the data request is packaged.
  • the destination address in the header of the SDK package data is the IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal.
  • an SDK plug-in is configured in the terminal, the terminal can access an acceleration node nearby, and the overlay network performs accelerated forwarding for the data request of the first terminal, and the application scenarios are wide.
  • the deployment environment of the first acceleration node is a first network device
  • the first network device is used to receive an access control list ACL policy instruction
  • the ACL policy instruction is used to trigger the first network device to convert the destination address
  • the data of the first IP address is guided to the first acceleration node;
  • the first acceleration node receiving the data request from the first terminal may include: the first acceleration node receiving the data from the first terminal guided by the first network device according to the ACL policy instruction ask.
  • This embodiment is applicable to a scenario where a terminal accesses a network through a first network device (eg, MEC or OLT) (eg, a scenario where a home bandwidth accesses the network).
  • the first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
  • the deployment environment of the first acceleration node is a device in a local area network
  • the first terminal is a terminal in the local area network
  • receiving the data request from the first terminal by the first acceleration node may include: the first acceleration node
  • the node receives the data request from the first terminal through the local area network.
  • the acceleration node is embedded and deployed in a local area network (such as an enterprise intranet), and the second network device provides a private network AIP for the first acceleration node, so that terminal devices in the local area network can access the overlay network through the acceleration node .
  • the overlay network provides network acceleration services for terminal devices in the local area network, which solves the problem of expensive public network AIP resources allocated by operators.
  • the destination end is a cloud area, or the destination end is a second terminal or a server.
  • the overlay network not only supports a scenario in which a terminal accesses a cloud region, but also supports a scenario in which a terminal accesses between terminals, which is universal.
  • the deployment environment includes a cloud area, POP, edge cloud, OLT, or MEC.
  • the acceleration node can be flexibly deployed in various deployment environments, so that the overlay network can truly cover the global area.
  • an embodiment of the present application provides a data forwarding method, which is applied to a central controller in a communication system.
  • the communication system includes a central controller and multiple acceleration nodes deployed in various deployment environments.
  • the multiple acceleration nodes It includes a first acceleration node and a second acceleration node, and the method includes: the central controller obtains link state information sent by the acceleration node; the central controller generates a source routing table according to the link state information, and the source routing table contains the information from the source acceleration node.
  • the destination address of a data request of a terminal the source routing table is used by the first acceleration node to obtain the target path, the target path is used to guide the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to the destination.
  • the central controller generates a source routing table, the source routing table is used to indicate paths in multiple acceleration nodes, the central controller generates a location routing table, and the location routing table is used to indicate the destination acceleration node, so that the source acceleration node It can query the destination acceleration node according to the location routing table, and then query the target path according to the source routing table, so as to realize the accelerated forwarding of data requests by the acceleration node in the overlay network.
  • the generation of the location routing table by the central controller may include: the central controller determines the second acceleration node according to the first IP address of the destination terminal; the central controller establishes a relationship between the first IP address and the second acceleration node Corresponding relationship; the central controller generates a location routing table according to the corresponding relationship.
  • the central controller determining the second acceleration node according to the first IP address of the destination terminal may include: the central controller determining the acceleration node deployed in the cloud area according to the first IP address The second acceleration node.
  • the acceleration node can be flexibly deployed in the cloud area.
  • the central controller directly determines the second acceleration node deployed in the cloud area according to the first IP address, so that the second acceleration node can be deployed in the cloud area. The node forwards the data request to the destination within the cloud area, reducing the transmission distance from the acceleration node to the destination.
  • the central controller determining the second acceleration node according to the first IP address of the destination terminal may include: the central controller querying an IP address library according to the first IP address, Determine the physical location of the destination; the central controller determines the second acceleration node closest to the physical location, thereby minimizing the transmission distance from the second acceleration node to the destination.
  • an SDK plug-in is configured in the first terminal, and address information of the central controller is preset in the SDK plug-in; the method further includes: the central central controller receives a request sent by the first terminal; The central controller feeds back the IP address of the first acceleration node to the first terminal according to the request, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel.
  • An SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in.
  • the first terminal accesses the central controller through the SDK plug-in, that is, the central central controller receives a request sent by the first terminal, the request carries the IP address of the first terminal, and the central controller queries the IP address database according to the IP address of the first terminal, and determines the physical location of the first terminal, and determine the acceleration node (that is, the first acceleration node) closest to the physical location according to the physical location of the first terminal, and the central controller feeds back the IP address of the first acceleration node to the first terminal, overlay
  • the network performs accelerated forwarding for the data request of the first terminal, and has a wide range of application scenarios.
  • the method further includes: the central controller sends traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send the ACL to the first network device
  • the policy instruction, the second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
  • the central controller and the first network device cooperate to guide the data request of the first terminal to the first acceleration node. It is applicable to the scenario where the terminal accesses the network through the first network device (eg, MEC or OLT) (eg, the scenario where the home bandwidth accesses the network).
  • the first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
  • the method further includes: the central controller obtains a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is the cloud area, and the second mode is used to indicate that the destination of the network acceleration service is the second terminal or server.
  • the overlay network not only supports a scenario in which a terminal accesses a cloud region, but also supports a scenario in which a terminal accesses between terminals, which is universal.
  • an embodiment of the present application provides an acceleration node, which is included in a communication system.
  • the communication system includes a central controller and multiple acceleration nodes, and the multiple acceleration nodes include a first acceleration node and a second acceleration node, wherein the center
  • the deployment environment of the controller belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, an application service provider or a telecom operator;
  • the first acceleration node includes:
  • a forwarding module configured to receive a data request from the first terminal, and the data request is used to access the destination terminal;
  • the control module is used to obtain the target path, and the target path comes from the routing table entry generated by the central controller;
  • the forwarding module is configured to send a data request to the next-hop acceleration node according to the target path until the data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data request to the destination.
  • the routing table entry includes a source routing table and a location routing table
  • the control module is also used to receive the source routing table and the location routing table sent by the central controller, the source routing table includes a path from the source acceleration node to the destination acceleration node, and the location routing table includes the first IP address and the second acceleration node.
  • the first IP address is the IP address of the destination end where the user applies for the network acceleration service;
  • the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node;
  • the first acceleration node When the first acceleration node is the source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines the target path from the first acceleration node to the second acceleration node.
  • the forwarding module is further configured to measure the link state between the first acceleration node and the neighbor acceleration node to obtain link state information
  • the control module is further configured to send the link state information obtained by the forwarding module to the central controller, where the link state information is used by the central controller to generate a source routing table.
  • an SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in;
  • the forwarding module is further configured to receive the SDK encapsulation data from the first terminal through the SDK tunnel, the SDK encapsulation data is the data after encapsulating the data request, and the destination address in the header of the SDK encapsulation data is the IP address of the first acceleration node, The source address in the header is the IP address of the first terminal.
  • the deployment environment of the first acceleration node is a first network device
  • the first network device is used to receive an access control list ACL policy instruction
  • the ACL policy instruction is used to trigger the first network device to convert the destination address
  • the data of the first IP address is directed to the first acceleration node
  • the forwarding module is further configured to receive a data request from the first terminal guided by the first network device according to the ACL policy instruction.
  • the deployment environment of the first acceleration node is a device in a local area network
  • the first terminal is a terminal in the local area network
  • the forwarding module is further configured to receive a data request from the first terminal through the local area network.
  • an embodiment of the present application provides a central controller, including:
  • the transceiver module is used to obtain the link status information sent by the acceleration node;
  • a processing module configured to generate a source routing table according to the link state information acquired by the transceiver module, where the source routing table includes a path from the source acceleration node to the destination acceleration node;
  • the transceiver module is used to obtain the first IP address of the destination end where the user applies for the network acceleration service
  • the processing module is also used to generate a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node;
  • the transceiver module is further configured to send the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node, where the location routing table is used to guide the first acceleration node to determine the second acceleration node according to the first IP address, the first IP address The address is the destination address of the data request from the first terminal.
  • the source routing table is used by the first acceleration node to obtain the target path, and the target path is used to guide the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to destination.
  • the processing module is further specifically configured to: determine the second acceleration node according to the first IP address of the destination end; establish a correspondence between the first IP address and the second acceleration node; generate a location route according to the correspondence surface.
  • the processing module is further configured to determine the second acceleration node deployed in the cloud area according to the first IP address.
  • the processing module is further configured to query the IP address database according to the first IP address to determine the physical location of the destination terminal; and determine the second accelerator closest to the physical location. node.
  • an SDK plug-in is configured in the first terminal, and the address information of the central controller is preset in the SDK plug-in; the transceiver module is further configured to receive a request sent by the first terminal; A terminal feeds back the IP address of the first acceleration node, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel.
  • the transceiver module is further configured to send traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device,
  • the second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
  • the transceiver module is further configured to obtain a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination end of the network acceleration service is a cloud area, and the first mode is used to indicate that the destination end of the network acceleration service is a cloud area.
  • the second mode is used to indicate that the destination of the network acceleration service is the second terminal or server.
  • an embodiment of the present application provides a communication system, including a plurality of acceleration nodes according to the third aspect and a central controller according to the fourth aspect, wherein the deployment of the central controller The environment belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, an application service provider or a telecom operator.
  • an embodiment of the present application provides a central controller, including a processor, the processor is coupled to at least one memory, and the processor is configured to read a computer program stored in the at least one memory, so that all The central controller executes the method described in any one of the above second aspects.
  • an embodiment of the present application provides a computer program product, the computer program product includes computer program code, and when the computer program code is executed by a computer, enables the computer to implement any one of the above-mentioned first aspects. or, causing a computer to implement the method described in any one of the second aspects above.
  • an embodiment of the present application provides a computer-readable storage medium for storing a computer program or instruction, and when the computer program or instruction is executed, the computer executes the method described in any one of the first aspect above; Alternatively, the computer is caused to implement the method described in any one of the above second aspects.
  • FIGS. 1A and 1B are schematic diagrams of scenarios of a network acceleration system in a traditional method
  • FIG. 2 is a schematic diagram of a scenario of a communication system in an embodiment of the present application.
  • FIG. 3 is a schematic diagram of overlay and underlay in an embodiment of the application.
  • FIG. 4 is a schematic structural diagram of a communication system in an embodiment of the application.
  • FIG. 5 is a schematic flowchart of steps of an embodiment of a data forwarding method in an embodiment of the present application
  • FIG. 6 is a schematic diagram of a scenario in which a first terminal accesses a first acceleration node in an embodiment of the present application
  • FIG. 7 is a schematic diagram of a scenario in which a central controller and a first network device cooperate to guide a data request to a first acceleration node in an embodiment of the present application;
  • FIG. 8 is a schematic diagram of two application modes for a business application to apply for a network acceleration service in an embodiment of the present application
  • FIG. 9 is a schematic diagram of a scenario of an application interface for a network acceleration service in an embodiment of the present application.
  • FIG. 10 is a schematic diagram of a scenario in which a terminal accesses a cloud region in an embodiment of the application;
  • FIG. 11 is a schematic diagram of a data format for overlay encapsulation based on UDP in an embodiment of the application;
  • FIG. 12 is a schematic diagram of a scenario of data forwarding between a first terminal and a cloud region in an embodiment of the application
  • FIG. 13 is a schematic diagram of a scenario of data forwarding between a first terminal and a second terminal in an embodiment of the present application
  • FIG. 14 is a schematic diagram of an overlay tunnel encrypting and forwarding data in an embodiment of the present application.
  • FIG. 15 is a schematic structural diagram of an embodiment of an acceleration node in an embodiment of the present application.
  • 16 is a schematic diagram of the architecture of a virtual machine in an embodiment of the present application.
  • 17 is a schematic structural diagram of an embodiment of a central controller in an embodiment of the application.
  • FIG. 18 is a schematic structural diagram of another embodiment of the central controller in the embodiment of the present application.
  • the network acceleration system in the conventional method includes a DNS server, a controller, a plurality of POP points, and an IP dedicated line network connected to the POP points.
  • Each POP point is configured with at least one anycast IP (anycast IP, AIP) address.
  • the controller When a business application applies for the acceleration service, the controller generates a mapping relationship between AIP and an elastic IP address (EIP) (public network IP address).
  • EIP elastic IP address
  • business application A applies for a network acceleration service
  • the destination end of the network acceleration service is a cloud region (region), and the EIP of the cloud region is EIP1.
  • the controller allocates an access AIP (eg, AIP1) to the service application.
  • the controller maintains the identity of the service application A, the mapping relationship between EIP1 and AIP1 (as shown in Table 1 below), and delivers the mapping relationship to each POP synchronously.
  • the controller sends the mapping relationship between EIP1 and AIP1 to the DNS server, and the DNS server is used to synchronously maintain the mapping relationship between the domain name, AIP and EIP.
  • the mapping relationship between each AIP and EIP is shown in Table 1 below.
  • the GA scheme in the traditional method includes two stages, the first stage: the stage of terminal access to the POP point.
  • the second stage the POP point accesses the cloud region (region) stage through the IP private line network.
  • Stage 1 First, the terminal sends the domain name of the resource to be accessed to the domain name system (DNS) server. Then, the DNS server feeds back the AIP (eg, AIP2) that has a mapping relationship with the domain name to the terminal. For example, the number of POP points configured with AIP2 is 3. Afterwards, the terminal accesses the "nearest route" POP point (such as POP2) through the underlay. The terminal sends a data packet to the POP2, the source address in the packet header of the data packet is the IP address of the terminal (such as IPA), and the destination address is AIP2.
  • DNS domain name system
  • POP2 modifies the destination address in the original data packet from the terminal to EIP2 through the mapping relationship shown in Table 1 above (AIP2 and EIP2 have a mapping relationship) to obtain the target data packet.
  • the source address of the target data packet is IPA
  • the destination address is EIP2.
  • POP2 sends the target data packet to the IP private line network. It should be noted that the real destination address (EIP2) in the original data packet is lost, and the lost EIP2 is restored by the POP2 node according to the mapping relationship between EIP1 and AIP1.
  • the second stage The POP point is interconnected with the IP private line network.
  • the POP point introduces the data flow from the terminal to the IP private line network, and the IP private line network forwards the data flow to the cloud region, so that the terminal can accelerate the access to the cloud region.
  • the GA network acceleration service method in the traditional method has at least the following problems.
  • GA acceleration service depends on the investment and construction of cloud vendors. At present, there are only dozens of POP points in the world. Cloud manufacturers have not invested in building POP points in some regions (or certain countries and regions) around the world, and the global coverage is not enough, which leads to the lack of POP points. Terminals in the region cannot access the IP private line network and cannot enjoy the network acceleration services provided by cloud vendors.
  • the EIP of a service application consumes one AIP address mapping, which leads to the consumption of a large amount of AIP.
  • adding anycast IP addresses to the routing network can be done by using routing protocols (such as border gateway protocol (BGP), and an AIP needs to be published to the Internet at multiple POP points BGP multi-source, and distributed across operators AIP is difficult, that is, different regions (such as China and India) have different operators who allocate the same AIP, and it is difficult for different operators to issue the same AIP project.
  • Border gateway protocol BGP
  • an embodiment of the present application provides a data forwarding method, which is based on an overlay overlay network on an underlay, and implements data forwarding through an overlay overlay network.
  • the overlay network includes a central controller and a large number of acceleration nodes deployed in various deployment environments. For example, a large number of forwarding nodes are flexibly deployed on edge clouds, POP points, cloud regions, OLT and MEC devices around the world.
  • the overlay network can truly cover the global area.
  • the overlay network in this application is used to realize the forwarding of service application data, and the overlay is also called an application delivery network (application delivery network, ADN).
  • FIG. 2 is a schematic diagram of a scenario of a communication system.
  • the communication system includes a central controller 201 and a plurality of acceleration nodes 202 .
  • the central controller 201 is used to manage and control all the acceleration nodes 202. Taking the first acceleration node among the multiple acceleration nodes 202 as an example, the forwarding of the data from the terminal by the first acceleration node will be described.
  • the first acceleration node receives the routing table entry sent by the central controller 201, and the routing table entry serves as the basis for the first acceleration node to forward data.
  • the first acceleration node receives a data request from the first terminal, and the data request is used to access the destination; first, the first acceleration node obtains the target path, and the target path comes from the routing table entry generated by the central controller 201; An acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, and the second acceleration node is used for forwarding the data request to the destination.
  • a large number of acceleration nodes are flexibly deployed in the overlay network, and any acceleration node among all the acceleration nodes can be used as the access acceleration node of the terminal, so that terminals around the world can access a nearby acceleration node. on the acceleration node.
  • the first acceleration node After the first acceleration node obtains the data request of the first terminal, the first acceleration node sends the data request from the terminal to the overlay network according to the target path, until the data request is transmitted to the destination acceleration node (second acceleration node) of the target path, The second acceleration node then transmits the data request to the destination end, so that users of business applications worldwide can truly enjoy the network acceleration service.
  • any acceleration node among all the acceleration nodes can be used as a terminal to access the access node of the overlay network, and each acceleration node can be used as a transmission node in the target path.
  • the services provided by each acceleration node are shared by all destinations, and there is no need for GA in the traditional method.
  • a business application needs to spend one AIP address mapping, and the project deployment is easy to implement.
  • the central controller is used to control all the acceleration nodes, obtain the link status reported by the acceleration nodes, generate the source routing table according to the link status between the acceleration nodes, and also generate the location routing table, and connect the source routing table and the location routing table.
  • the table is delivered to each acceleration node.
  • the central controller can be a virtual server deployed on the cloud side.
  • Accelerate node is used to realize data forwarding function and link state measurement function. Acceleration nodes are deployed in virtual machines or containers provided by the deployment environment.
  • the acceleration node includes a local controller and at least one forward node (forward node or compass).
  • the local controller is used to control the compass to perform link state measurement (or also referred to as "QoS measurement") between accelerated nodes.
  • Compass is mainly responsible for the traffic forwarding function of the data plane.
  • the compass may be a forwarding module that implements the forwarding function through software.
  • the deployment environment of the acceleration node which is used to assign a "host” and a public IP address to the acceleration node.
  • Deployment environments include but are not limited to edge cloud, optical line terminal (OLT), multi-access edge computing (MEC), POP, cloud region (region), content delivery network (content delivery network) network, CDN), etc. It can be understood that the deployment environment only needs to provide a virtual machine (or container) and a public network IP address, and then the acceleration node can be deployed. This requirement is not harsh or customized.
  • third-party CDNs, edge clouds, OLT or MEC devices can easily provide virtual machines (or containers) and public IP addresses, so that acceleration nodes can be parasitized into the deployment environment.
  • acceleration nodes Due to the flexibility in the deployment of acceleration nodes, it is ensured that the acceleration nodes can be parasitized everywhere in the world, and the overlay network can cover a wider range of global areas.
  • the flexible deployment of acceleration nodes is also reflected in the fact that the acceleration nodes can be deployed in the cloud region.
  • the cloud region only needs to provide virtual machines (or containers) and public network IPs for the acceleration nodes to meet the deployment conditions. . Therefore, the deployment of acceleration nodes can meet all cloud types such as partner cloud, third-party cloud, partner cloud, and hybrid cloud, and the application business scope of acceleration is wider.
  • "video service provider A" can directly deploy acceleration nodes to the third-party edge cloud built by "video service provider A" to provide acceleration services for "video service provider A"'s services.
  • the provider can be a cloud service provider, an application service provider (such as "instant messaging service” provider A), or a telecom operator (such as China Mobile, China Unicom, and Telecom).
  • the deployment environment of the central controller belongs to the first cloud service provider (such as cloud service provider A), and the deployment environment of multiple acceleration nodes may belong to the second cloud service provider (such as cloud service provider B, cloud service provider C) ), application service provider or telecom operator.
  • the second cloud service provider, application service provider or telecom operator provides a deployment environment of the acceleration node on its own hardware facilities.
  • the deployment environment here is a virtual environment for the first cloud service provider to apply for computing resources (eg, virtual machines, containers). Or apply for computing resources on the deployment environment provided by telecom operators and run acceleration nodes on the computing resources.
  • the central controller that is, controlled by the first cloud service provider.
  • Service application the user of the service traffic forwarding service provided by the overlay network.
  • real time communication real time communication
  • RTC real time communication
  • Terminals including but not limited to server terminals, mobile phone (mobile phone), tablet computer (Pad), personal computer (personal computer, PC), virtual reality (virtual reality, VR) terminal, augmented reality (augmented reality, AR) terminal, Terminals in industrial control, in-vehicle terminals, terminals in self-driving, terminals in assisted driving, terminals in remote medical, terminals in smart grid, Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • server terminals mobile phone (mobile phone), tablet computer (Pad), personal computer (personal computer, PC), virtual reality (virtual reality, VR) terminal, augmented reality (augmented reality, AR) terminal, Terminals in industrial control, in-vehicle terminals, terminals in self-driving, terminals in assisted driving, terminals in remote medical, terminals in smart grid, Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • the destination end may be a cloud area, or may be a second terminal or a server.
  • the source routing table and the location routing table are exemplified.
  • the source routing table is used to indicate the optimal path from the source acceleration node to the destination acceleration node.
  • “source acceleration node” and “destination acceleration node” are both acceleration nodes in the above overlay network.
  • an acceleration node that receives data from a terminal is a "source acceleration node”.
  • the acceleration node that sends data to the destination is the "destination acceleration node”.
  • the source acceleration node can traverse every acceleration node in all forwarding nodes, and the destination acceleration node can traverse every acceleration node in all forwarding nodes.
  • the location routing table includes the correspondence between the first IP address and the second acceleration node.
  • the first IP address is the IP address of the destination end where the user (such as a business application) applies to the central controller in advance for the acceleration service.
  • the second acceleration node is a forwarding node determined by the central controller according to the IP address of the destination end.
  • the second acceleration node is the acceleration node closest to the destination among all the acceleration nodes. For example, when the destination is a cloud area, the second acceleration node may be an acceleration node deployed in the cloud area.
  • the central controller queries the IP address database to determine the physical location of the terminal (or server), and the central controller determines the acceleration node (ie, the closest acceleration node to the physical location of the terminal (or server)). second acceleration node).
  • the acceleration node ie, the closest acceleration node to the physical location of the terminal (or server)
  • second acceleration node any one of the multiple source acceleration nodes.
  • Link status the acceleration node measures the quality of service (QoS) of its neighbor acceleration nodes to obtain link status information.
  • the link state information includes the link state of the acceleration node to each neighbor acceleration node. It can be understood that the link state can be described by a QoS value, wherein the performance indicators of the QoS include packet loss rate, delay and jitter, and the like.
  • the acceleration node when the acceleration node performs QoS measurement on the link between each neighbor acceleration node, the acceleration node will continuously send q probe packets (q is an integer greater than or equal to 2) to its neighbor acceleration node. The replies of the q probe packets are used to calculate the transmission delay, jitter, and packet loss rate.
  • the acceleration node performs a weighted average of transmission delay, jitter and packet loss rate, and uses the weighted average value to describe the link state between the acceleration node and the neighbor acceleration node.
  • the measurement of the "link status" of the acceleration node of its neighbor acceleration nodes may also be referred to as "QoS measurement”.
  • the underlay network refers to the physical network, which consists of physical devices and physical links.
  • common physical devices include switches, routers, and firewalls. These physical devices are connected through specific links to form a traditional physical network.
  • An overlay network is a computer network that can be built on top of an underlay.
  • Nodes (ie, forwarding nodes) in an overlay network can be considered to be connected by virtual or logical links, where each link corresponds to a path.
  • the four nodes H, I, J, and K in FIG. 3 are logical nodes in the overlay network.
  • the direct connection between the H and J nodes that is, there is only one hop at the application layer level, is mapped to the lower-layer underlay network, which may involve multiple relay forwarding routing devices, It is actually multi-hop routing.
  • Nodes in the overlay network implement data forwarding at the overlay layer by encapsulating the source IP and destination IP mapped to the nodes in the underlay network.
  • Full-mash refers to a networking mode in which two nodes among N nodes are interconnected.
  • FIG. 4 is a schematic structural diagram of a communication system in the present application.
  • the PC of the operation and maintenance personnel in response to the first operation of the operation and maintenance personnel, applies to the deployment environment such as edge cloud, POP, cloud region, etc. to allocate a virtual machine (or container) and a public network IP.
  • the deployment environment such as edge cloud, POP, cloud region, etc.
  • an operation interface for applying for a virtual machine (or container) and a public network IP for the deployment environment is installed in the PC.
  • the PC of the operation and maintenance personnel logs in to the account of the deployment center, uses the deployment center to automatically upload to the virtual machine (or container), and automatically installs acceleration node software in batches.
  • the deployment center is a cloud center tool for automated batch deployment of accelerated nodes.
  • the central controller handshakes and communicates with the forwarding node, and the central controller receives the registration request sent by each forwarding node.
  • the registration request includes but is not limited to the ID of the deployment environment of the forwarding node, the public IP address of the forwarding node, the physical location of the deployment environment of the forwarding node, and the like.
  • the process of registering the forwarding node by the central controller can be understood as a process of storing the relevant information of the forwarding node by the central controller.
  • the central controller obtains the relevant information of each forwarding node, and can further manage each forwarding node.
  • steps S30 to S33 are the deployment process of the acceleration node. If the forwarding node has been registered to the central controller, and the registered acceleration node has not been deleted, or no other acceleration node has been added, it is not necessary to perform step S30 every time. - Step S33. Steps S30 to S33 are optional steps, and step 501 is directly executed.
  • Step 501 The central controller acquires link state information between the acceleration node and the neighboring acceleration nodes.
  • the central controller receives the link state information sent by each acceleration node, and the link state information includes the link state between the acceleration node and each neighbor acceleration node.
  • the central controller sends measurement tasks to the local controllers in each acceleration node.
  • All acceleration nodes are fully interconnected (full-mash), and the acceleration node performs QoS measurement on the links between its neighbor acceleration nodes.
  • Each acceleration node will collect link status information, the link status information includes the link status (described by QoS value) from the acceleration node to neighboring acceleration nodes and the link identifier corresponding to the link status (for example, the acceleration node Node A ⁇ Accelerate Node B).
  • the acceleration node in the neighborhood of the acceleration node refers to a node connected to the acceleration node.
  • the neighbor acceleration nodes of any acceleration node refer to all other acceleration nodes except the forwarding node among all the acceleration nodes.
  • the compass in the acceleration node performs QoS measurement periodically (for example, in seconds), collects link state information (represented by a QoS value), and stores the collected link state in the local controller.
  • the local controller reports link status information to the central controller periodically (for example, in minutes).
  • Step 502 The central controller generates a source routing table according to the link state information.
  • the source routing table is used to indicate paths in multiple acceleration nodes.
  • the path is the path from the source acceleration node to the destination acceleration node.
  • the central controller selects a path from the source acceleration node to the destination acceleration node among all the acceleration nodes according to the link state information and the topology structures of all the acceleration nodes.
  • the central controller receives the link status information reported by each acceleration node.
  • the topology of all acceleration nodes is fully interconnected as an example, and the central controller determines multiple paths. For example, taking the acceleration node A as the source forwarding node, the central controller calculates the paths from the acceleration node A to other acceleration nodes (eg, the acceleration node B and the acceleration node C). Taking the acceleration node B as the source forwarding node, the central controller calculates the path from the acceleration node B to other acceleration nodes (eg, the acceleration node A and the acceleration node C).
  • the central controller generates a source routing table corresponding to each acceleration node based on the path.
  • the source routing table includes a list of acceleration nodes experienced by the path and next-hop acceleration nodes.
  • the next-hop acceleration nodes of each acceleration node may be different. Therefore, each forwarding node needs to correspond to a different source routing table.
  • Step 503 The central controller delivers the source routing table corresponding to the acceleration node to each acceleration node.
  • the acceleration node takes the first acceleration node and the second acceleration node as examples.
  • the central controller sends the source routing table A to the first acceleration node.
  • the central controller sends the source routing table B to the second acceleration node.
  • Step 504 The central controller obtains the first IP address of the destination end of the user applying for the network acceleration service.
  • the central controller receives a request for applying for a network acceleration service, where the request carries a service domain name.
  • the central controller sends the service domain name to the DNS server, and the DNS server is used to resolve the service domain name to obtain IP information (eg, EIP1 ) of the cloud region, and the first IP address is EIP1 .
  • the central controller obtains the IP information (ie EIP1) of the cloud region from the DNS server.
  • the request carries the IP address (eg IP1) of the terminal (or server), the first IP address is IP1.
  • Step 505 The central controller generates a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node.
  • the central controller determines the second acceleration node according to the first IP address of the destination.
  • the central controller determines the acceleration node (eg, the second acceleration node) deployed in the cloud region.
  • the central controller searches the IP address library to determine the physical location of the destination, and the central controller determines the distance from the The second acceleration node with the closest physical location. Then, the central controller establishes the correspondence between the first IP address and the second acceleration node. Finally, the central controller generates a location routing table according to the corresponding relationship.
  • Step 506 The central controller sends the location routing table to all the acceleration nodes, and all the acceleration nodes include the first acceleration node; correspondingly, the first acceleration node receives the source routing table and the location routing table sent by the central controller.
  • the central controller calls the southbound data interface to deliver the location routing table to the local controllers of each acceleration node, and the local controller delivers the source routing table and the location routing table to Compass. It should be understood that the central controller sends the source routing table corresponding to each acceleration node to each acceleration node. Instead, send the same location routing table to all acceleration nodes. For example, the central controller sends the source routing table A and the location routing table to the first acceleration node.
  • the process of forwarding data by the first acceleration node among all the acceleration nodes is taken as an example for description, and the first acceleration node is any acceleration node among all the acceleration nodes.
  • Step 507 The first acceleration node receives the data request from the first terminal.
  • the first terminal accesses the first acceleration node through a software development kit (SDK) tunnel, that is, the first acceleration node receives the SDK package data through the SDK tunnel, and the SDK package data is a request for data Encapsulated data.
  • SDK software development kit
  • FIG. 6 is a schematic diagram of a scenario in which the first terminal accesses the first acceleration node.
  • An SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in.
  • the first terminal accesses the central controller through the SDK plug-in, that is, the central central controller receives a request sent by the first terminal, where the request carries the IP address of the first terminal.
  • the central controller queries the IP address library according to the IP address of the first terminal, determines the physical location of the first terminal, and determines the acceleration node (ie, the first acceleration node) closest to the physical location according to the physical location of the first terminal, and the central controller controls the The controller feeds back the IP address (eg IP2) of the first acceleration node to the first terminal.
  • IP2 IP2
  • the first terminal sends the raw data to be sent (also referred to as a "data request") to the first acceleration node.
  • the destination address of the original data is EIP1
  • the source address of the original data is IPA (ie, the IP address of the first terminal).
  • the first terminal performs SDK encapsulation on the data request to obtain SDK encapsulation data.
  • the destination address in the header (or "packet header") of the SDK encapsulated data is the IP address (eg IP2) of the first acceleration node, and the source address in the header is the IP address (eg IPA) of the first terminal.
  • an SDK plug-in is configured in the terminal, the terminal can access an acceleration node nearby, and the overlay network performs accelerated forwarding for the data request of the first terminal, and the application scenarios are wide.
  • the central controller and the first network device cooperate to guide the data request of the first terminal to the first acceleration node.
  • FIG. 7 is a schematic diagram of a scenario in which the central controller and the first network device cooperate to guide the data request to the first acceleration node.
  • the first acceleration node is an acceleration node deployed in the first network device.
  • the first network device may be an MEC or an OLT.
  • the central controller sends traffic diversion information to the network management system, and the network management system is used to manage network element equipment (such as MEC or OLT, etc.).
  • the traffic diversion information includes the IP address (ie, the first IP address) of the destination end.
  • the network management device generates an access control list (access control list, ACL) policy instruction according to the traffic diversion information, and sends the ACL policy instruction to the first network device, where the ACL policy instruction is used to trigger the first network device to assign the destination address to the first IP address
  • the data is directed to the first acceleration node.
  • the first network device filters the received data according to the ACL policy instruction.
  • the first network device receives the data request whose destination address is the first IP address
  • the first network device directs the data request whose destination address is the first IP address to the first acceleration node.
  • the first acceleration node receives the data request guided by the first network management device through the ACL policy.
  • This embodiment is applicable to a scenario where a terminal accesses a network through a first network device (eg, MEC or OLT) (eg, a scenario where a home bandwidth accesses the network).
  • the first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
  • the first acceleration node is deployed on a second network device, the second network device is a host in a local area network, and the first terminal is a terminal device in the local area network.
  • the second network device provides the private network AIP for the first acceleration node.
  • the first acceleration node receives the data request from the terminal device through the local area network.
  • the acceleration node is embedded and deployed in a local area network (such as an enterprise intranet), and the second network device provides a private network AIP for the first acceleration node, so that terminal devices in the local area network can access the overlay network through the acceleration node .
  • the overlay network provides network acceleration services for terminal devices in the local area network, which solves the problem of expensive public network AIP resources allocated by operators.
  • the above three implementation manners do not lose the destination address (eg EIP1) of the original data when the first terminal sends a data request to the first acceleration node.
  • the terminal can access the overlay network only through the public network IP of one acceleration node.
  • One public network IP address can provide shared access for multiple service applications, reducing deployment costs.
  • Step 508 The first acceleration node obtains a target path, where the target path comes from a routing table entry generated by the central controller.
  • the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node.
  • the location routing table includes the correspondence between the first IP address and the second acceleration node, as shown in Table 2 below.
  • the first acceleration node receives the SDK package data, and the first acceleration node decapsulates the SDK package data, and obtains the real purpose IP (such as EIP1 of the original data (data request)) ).
  • the central controller searches the location routing table to determine the acceleration node D that has a corresponding relationship with EIP1.
  • the first acceleration node sends a data request to the next-hop acceleration node according to the source routing table until the data request is forwarded to the second acceleration node.
  • the source routing table includes the optimal path from the first acceleration node to the second acceleration node.
  • the node is configured to forward the data request to the destination end corresponding to the first IP address.
  • the first acceleration node queries the source routing table to determine a target path from the first acceleration node to the second acceleration node.
  • the first acceleration node is acceleration node A
  • the second acceleration node is acceleration node D
  • the target path is represented by a list of acceleration nodes (eg acceleration node A, acceleration node B, acceleration node D).
  • Step 509 The first acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, which is used to forward the data request to the destination.
  • the first acceleration node performs overlay encapsulation on the original data to obtain overlay encapsulated data.
  • the first acceleration node sends the overlay encapsulation data to the next hop through the overlay tunnel.
  • the overlay package data includes the original data (data request), the target path, the destination address of the next-hop acceleration node, and the source address.
  • the overlay encapsulated data is forwarded hop by hop to the acceleration node on the target path until it is forwarded to the second acceleration node. After the second acceleration node decapsulates the overlay encapsulated data, the data request is sent to the destination.
  • a large number of acceleration nodes are flexibly deployed in the overlay network, so that terminals around the world can access an acceleration node nearby.
  • the second acceleration node can be determined by querying the location routing table, and the first acceleration node sends the data request from the terminal to the next-hop acceleration node according to the optimal path indicated in the source routing table. , until the data request is transmitted to the second acceleration node, and the second acceleration node is transmitting the data request to the destination end, so that it is possible to truly realize that terminals worldwide can enjoy the network acceleration service.
  • any acceleration node among all the acceleration nodes can be used as a terminal to access the access node of the overlay network, and each acceleration node can be used as a transmission node in the optimal path.
  • the services provided by each acceleration node are shared by all destinations, and there is no need for GA in the traditional method.
  • a business application needs to spend one AIP address mapping, and the project deployment is easy to implement.
  • the business application can customize the network setting parameters.
  • the overlay network in this embodiment can provide network acceleration services according to the actual requirements of business applications.
  • FIG. 8 is a schematic diagram of two application manners for a business application to apply for a network acceleration service.
  • the ADN in this application provides network acceleration services for various business applications, and the business applications (such as video service provider A) apply to the central controller for network acceleration services in the following two ways.
  • the PC of the business application personnel logs in to the console platform.
  • the PC computer responds to the operation of the business application personnel.
  • the business application personnel click on the console interface to select the network setting parameters.
  • the network setting parameters include but are not limited to including acceleration period, bandwidth, cost at least one of.
  • the ADN provides overlay network acceleration services for service applications (such as video service provider A) according to network setting parameters.
  • service applications such as video service provider A
  • the staff of the business application only needs to select according to the network setting parameters provided by the ADN, and the method of applying for the network acceleration service is simple and easy to operate.
  • the business application and the ADN are in a cooperative relationship, and the AND authorizes the business application, and the business application can directly call the northbound application programming interface (API) of the central controller to customize network parameters.
  • API application programming interface
  • the business application can customize the network acceleration service completely according to its own requirements, so as to meet the personalized service requirements of different business applications.
  • FIG. 9 is a schematic diagram of a scenario of an application interface for a network acceleration service.
  • ADN provides an interface of "application for network acceleration service” for business applications, so that various business applications can apply for network acceleration service.
  • the interface of "Applying for Network Acceleration Service” mainly includes the interface for creating a tenant, creating an acceleration instance (inputting the acceleration instance parameter configuration) interface, adding an acceleration region interface, setting the cloud region domain name interface, and setting the acceleration public network IP address interface, etc.
  • setting cloud region domain name interface is applicable to the scenario where the destination terminal is the cloud region, that is, the scenario where the terminal accesses the cloud region.
  • the “Setting the Acceleration Public Network IP Address Interface” is applicable to the scenario where the destination end is a terminal (or server), that is, the scenario where the terminal accesses the terminal.
  • the steps for applying for the network acceleration service for business applications are as follows: Step a to Step e.
  • step a the PC of the business application personnel displays the console "create user” interface, and the PC of the business application personnel sends user information such as "username” and "password” to the console platform in response to the operation of creating a user by the business application personnel.
  • the console platform sends user information to the central controller.
  • Step b The PC of the business application personnel displays the interface of "Create an Acceleration Instance".
  • the "Create Accelerated Instance” interface is used to provide settings for network setting parameters.
  • network setting parameters include bandwidth, acceleration period, and service mode parameters (first mode or second mode).
  • the first mode means that the destination end of the network acceleration service is the cloud region
  • the second mode means that the destination end of the network acceleration service is the terminal (or server).
  • Step c When the service application personnel select the first mode, the PC of the service application personnel displays the interface of "select acceleration area".
  • the "Select Acceleration Area” interface is used to provide the bound area of the network acceleration service. For example, regions include “Asia”, “China”, “India”, “Europe”, etc.
  • the “acceleration area” is used to indicate the area where the user served by the business application is located. For example, if the business application is "NetEase Games", the users of “NetEase Games" are all over the world, and the acceleration area selected by “NetEase Games” may select all regions.
  • the acceleration region selected by “Video Service Provider A” may select all regions as “China”. After the terminal responds to the operation of the acceleration area selected by the business application personnel, it sends the target acceleration area (such as China) to the console platform.
  • step d the PC of the business application personnel displays the "cloud region information" interface.
  • the "cloud region information" interface is used to receive the cloud region's identifier, domain name (or EIP).
  • the domain name is the domain name of the service application (eg, video service provider A).
  • Step e when the service application personnel select the second mode, the PC of the service application personnel displays an interface of "input acceleration IP".
  • the interface of "Input Acceleration IP” is used to receive the list of public IP addresses of the destination (terminal or server). After the PC responds to the operation of the service application personnel, it sends the public IP of the destination end to the console platform.
  • the console platform After the above steps a to d, or after the steps a, b and e, the console platform establishes an association relationship between the user name and the network setting parameters after receiving the above network setting parameters.
  • the console platform sends the network setting parameters to the central controller through the northbound API.
  • step 507 the following steps are further included:
  • the central controller obtains the bandwidth and target acceleration area corresponding to the business application
  • the central controller generates committed access rate (CAR) rate limit configuration information according to the bandwidth parameters;
  • the central controller assigns access rights to the acceleration nodes in the target area according to the EIP information of the destination end, and delivers the CAR speed limit configuration information to the acceleration nodes.
  • the CAR speed limit configuration information is used to guide all acceleration nodes on the optimal path to perform Data forwarding to meet the network acceleration requirements of business applications.
  • the application scenario mainly describes a scenario in which the destination end accessed by the first terminal is a cloud region.
  • the central controller issues QoS measurement tasks to all acceleration nodes.
  • Each acceleration node performs QoS measurement on the link status between the acceleration node and neighboring acceleration nodes, and the acceleration node collects the link status information and sends the link status information to the central controller.
  • the central controller calculates the optimal path according to the link state information and the topological structures of all acceleration nodes, and generates a source routing table according to the optimal path.
  • the central controller sends the corresponding source routing table of the acceleration node to each acceleration node.
  • a business application (eg, video service provider A) applies to the console for a network acceleration service
  • the destination of the network acceleration service is the cloud region
  • the IP information of the cloud region (eg, cloud region1) is EIP1.
  • the central controller also acquires information such as the target bandwidth and the target acceleration area corresponding to the "video service provider A".
  • the central controller determines acceleration node D according to EIP1, and acceleration node D is an acceleration node deployed in cloud region1.
  • the central controller generates a location routing table, and the location routing table includes the corresponding relationship between the acceleration node D and the EIP1.
  • the central controller sends the location routing table to all acceleration nodes.
  • the central controller indexes all acceleration nodes in the China region according to the target acceleration region (China region).
  • the central controller generates configuration information according to the target bandwidth.
  • the central controller sends control information and configuration information to the acceleration nodes in the target acceleration area.
  • the control information includes the EIP of the cloud region (eg, EIP1 ), and the control information is used to instruct the acceleration node to filter the EIP of the cloud region, allowing the data traffic of EIP1 to perform data forwarding according to the configuration information.
  • the first terminal is connected to the acceleration node A nearby, and the acceleration node A is an acceleration node in the Chinese region.
  • the destination address of acceleration node A's data request is EIP1.
  • the acceleration node A filters data requests whose destination address is EIP1 according to the control information to pass at the rate indicated by the configuration information.
  • the acceleration node A determines the acceleration node D (ie, the second acceleration node) corresponding to the EIP1 according to the location routing table.
  • the acceleration node A queries the source routing table, and according to the optimal path between the acceleration node A and the acceleration node D in the source routing table (for example, the acceleration node A-acceleration node B-acceleration node C-acceleration node D), the data from the first terminal
  • the data request is forwarded to the next-hop acceleration node B, and the acceleration nodes on the optimal path (such as acceleration node A, acceleration node B, acceleration node C, and acceleration node D) will be sent from the first node according to the configuration information issued by the central controller.
  • the data request of a terminal is forwarded one by one on the optimal path until it is forwarded to the acceleration node D.
  • the acceleration node D forwards the data from the first terminal to the cloud region (EIP1).
  • the network between the POP and the cloud region can implement HBN dedicated line network transmission, or common internet transmission.
  • HBN dedicated line network transmission or common internet transmission.
  • acceleration node A is deployed in edge cloud A
  • acceleration node B is deployed in edge cloud B
  • acceleration node C is deployed at the POP point
  • acceleration node D is deployed in cloud region.
  • the destination address is the acceleration public network IP address of the acceleration node D
  • the source address is the acceleration public network IP address of the acceleration node C
  • the acceleration node C and the acceleration node D pass through the HBN.
  • the dedicated line network forwards data to improve the network transmission rate from POP to cloud regions. Data can also be transmitted between the acceleration node C and the acceleration node D through the common internet, thereby saving costs for business applications.
  • each business application when the destination terminal is a cloud region, each business application only needs to invoke the network acceleration service provided by AND to realize the terminal's quick access to the cloud region, avoiding repeated and independent development of each business application system.
  • the second application scenario mainly describes a scenario where the destination is a terminal (or server), that is, a scenario of lateral access between terminals.
  • the central controller issues QoS measurement tasks to all acceleration nodes.
  • Each acceleration node performs QoS measurement on the link status between the acceleration node and neighboring acceleration nodes, and the acceleration node collects the link status information and sends the link status information to the central controller.
  • the central controller calculates the optimal path in all the acceleration nodes according to the link state information and the topology structure of all the acceleration nodes, and generates a source routing table according to the optimal path.
  • the central controller sends the source corresponding to the acceleration node to each acceleration node. routing table.
  • the console platform obtains the list of public network IP addresses, and sends the list of public network IP addresses to the central controller.
  • the central controller After obtaining the list of public network IP addresses, the central controller queries the IP address database to determine the physical location of each destination (such as the second terminal), and determines the acceleration node closest to the physical location according to the physical location of the destination. For example, IP1 is located in Beijing, and the central controller searches the IP address database to determine that the acceleration node closest to IP1 is acceleration node D (located in Beijing). IP2 is located in Xi'an, and the central controller searches the IP address database to determine that the acceleration node closest to IP2 is acceleration node F (located in Xi'an). The central controller generates a location routing table, and the location routing table includes the correspondence between the public network IP and the acceleration node (eg, the correspondence between IP1 and acceleration node D, and the correspondence between IP2 and acceleration node F).
  • the central controller sends the location routing table to the acceleration node.
  • the first terminal accesses the acceleration node A nearby, and the acceleration node A obtains a data request from the first terminal, and the destination IP of the data request is IP1.
  • the acceleration node A determines, according to the location routing table, that the acceleration node corresponding to IP1 is the acceleration node D (ie, the second acceleration node).
  • Acceleration node A queries the source routing table, and forwards the data request to the optimal path between acceleration node A and acceleration node D in the source routing table (such as acceleration node A-acceleration node B-acceleration node C-acceleration node D)
  • the next hop accelerates the node B, and the data request is forwarded hop by hop on the optimal route until it is forwarded to the acceleration node D.
  • the acceleration node D forwards the data from the first terminal to the second terminal.
  • the GA in the traditional method only supports the scenario in which the terminal accesses the cloud region, while the ADN in this embodiment not only supports the scenario in which the terminal accesses the cloud region, but also supports the scenario in which the terminal and the terminal are accessed. Universality.
  • the destination is the cloud region, which is the first application scenario above.
  • the destination end is a terminal (or server), that is, the second application scenario above.
  • FIG. 11 is a schematic diagram of a data format for overlay encapsulation based on a user datagram protocol (UDP).
  • the packets transmitted in the overlay tunnel encapsulate the original data to obtain overlay encapsulation data.
  • the format of the overlay encapsulation data includes the following fields.
  • IP header field includes the source address (32 bits in length) and the destination address (32 bits in length).
  • the UDP header field includes the source port number (16 bits in length) and the destination port number (16 bits in length).
  • Segment list (segment list, SL) field: used to indicate the nodes that the data packet needs to pass through during the forwarding process.
  • the list is segment list[0] to segment list[n-1].
  • [*] is used to represent the node number (or also called "subscript")
  • n represents the number of accelerated nodes in the optimal path.
  • the optimal path includes n nodes (such as node A, node B, node C, etc.), and the first one pushed into the destination address is segment list[n-1] (for example, segment list[2]) corresponds to The IP address of the acceleration node.
  • the last one pushed into the destination address is the IP address of segment list[0].
  • the segment list can look like this.
  • the first segment field 8 bits in length, used to refer to the first hop through which data is sent from the source acceleration node to the destination acceleration node.
  • the bottom node (segment list[n-1]) is the node closer to the source acceleration node, and the top one is the destination acceleration node segment list[0]), so the value of the first segment field is " n-1".
  • segment left used to indicate the currently active segment, that is, used to indicate the next hop where data will be transmitted.
  • segment left used to indicate the currently active segment, that is, used to indicate the next hop where data will be transmitted.
  • the acceleration node will copy the IP address of the node of the segment list [SL] to the destination address field in the packet header, thereby indicating the next hop node and sending the data to the destination.
  • A is the source acceleration node
  • D is the destination acceleration node
  • the acceleration nodes that the optimal path passes through are B, C, and D.
  • the acceleration node B is the first acceleration node to pass from the acceleration node A to the acceleration node D, so the value of the first segment field is the subscript "2" corresponding to the acceleration node B.
  • the acceleration node B checks that the destination address of the header is IPB after receiving the data.
  • the acceleration node B removes the header, and the value of the segment left field is obtained as "2".
  • the acceleration node B determines that the transmitted data has not reached the destination acceleration node.
  • the acceleration node B also needs to continue to forward the data, and the acceleration node B keeps the first segment.
  • the value of the field does not change (eg 2).
  • Payload length field The length is 16 bits.
  • the overlay tunnel encapsulates IP Layer 3 packets in UDP mode for data forwarding, and the data in the IP packet (that is, the original data) may be various transmissions such as transmission control protocol (TCP) or UDP.
  • TCP transmission control protocol
  • Type of data packets, overlay encapsulated data packets can not be constrained by transmission type and application type, and the network acceleration service has a wider scope.
  • the process of data forwarding is divided into the case where the destination is a cloud region, and the case where the destination is a terminal (or server).
  • the destination is the cloud region, that is, the scenario where the first terminal accesses the cloud region.
  • the access by the first terminal to the first acceleration node is taken through the SDK tunnel as an example
  • the first acceleration node is the acceleration node A as an example
  • the IP address of the first terminal is IP1
  • the public network of the acceleration node A is used as an example.
  • An IP address is an IPA.
  • the central controller pre-configures the first NAT IP (also called "first NAT IP”) for the source acceleration node and the destination acceleration node, and configures the second NAT IP (also called "tail NAT IP”) for the destination acceleration node.
  • the first NAT IP is IP8 and the second NAT IP is IP9.
  • the optimal path from the source acceleration node to the destination acceleration node is: acceleration node A ⁇ acceleration node B ⁇ acceleration node D.
  • the acceleration node A is configured with a public network IPA and a first NAT IP (IP8), and IPA and IP8 can be different IP addresses, or, in order to save public network IP, IPA and IP8 can be the same IP address.
  • the acceleration node D is configured with the public network IPD and the first NAT IP (IP9).
  • the IPD and the IP9 can be different IP addresses, or, in order to save the public network IP, the IPD and the IP9 can be the same IP address.
  • FIG. 12 is a schematic diagram of a scenario of data forwarding between the first terminal and the cloud region.
  • the first terminal sends a data packet to the acceleration node A, the destination address of the data packet is EIP, and the source address is IP1.
  • the first terminal performs SDK encapsulation on the data packet to obtain SDK encapsulation data.
  • the destination address of the SDK encapsulation data is IPA
  • the source address of the SDK encapsulation data is IP1.
  • IP1 is a public network IP
  • the first terminal sends the SDK package data to acceleration node A. After acceleration node A receives the SDK package data, it strips off the SDK header and exposes the destination address of the original data as EIP, the source address is IP1.
  • IP1 is a private network IP address
  • the SDK encapsulates the data through the network address translation (NAT) device of the operator's network to reach acceleration node A.
  • the public IP address of the NAT device is IPM.
  • the acceleration node A strips off the SDK header to expose the original data, and the acceleration node A modifies the source address in the inner layer to the public network IPM after network address translation.
  • the acceleration node A performs source address translation (source NAT, SNAT), and converts the IPM into the first NAT IP (such as IP8). That is, the source address in the inner layer is IP8 and the destination address is EIP. It can be understood that in this step, SNAT is the port mapping, and the IPM is mapped to IP8. In this step, the purpose of the acceleration node A converting the IPM to the first NAT IP is to use IP8 as the IP address of the destination acceleration node when the cloud region returns the data stream.
  • the acceleration node A performs overlay encapsulation on the inner layer data.
  • the packet format of the overlay encapsulation data is shown in Figure 11.
  • the overlay encapsulation data includes the inner layer data (that is, the original data, the source address is IP8, and the destination address is EIP), The IP address (IPB) of the next hop in the overlay header and the IP address of the acceleration node in the optimal path (for example, the IP address of acceleration node A is IPA, the IP address of acceleration node B is IPB, and the IP address of acceleration node D is IPD).
  • the acceleration node B After the acceleration node B receives the overlay encapsulation data, it determines that the data packet does not reach the destination acceleration node according to the value of the segment left field, and the acceleration node B continues to modify the IP address of the next hop in the overlay encapsulation data to IPD, and changes the The overlay encapsulated data is forwarded to the next hop (acceleration node D).
  • the acceleration node D After the acceleration node D receives the overlay package data, it determines that the overlay package data has reached the destination acceleration node according to the value of the segment left field. After the acceleration node D strips the header of the overlay package data, the source address of the exposed inner layer data is IP8, the destination address is EIP. The acceleration node D maps the source address of the inner data to the tail NAT IP (such as IP9) after going through SNAT. The acceleration node D is the acceleration node deployed in the cloud region (destination terminal), and the tail NAT IP is the IP address assigned by the cloud region.
  • the IPD of the acceleration node D and the tail NAT IP can be the same IP.
  • the acceleration node D accesses the data center through the cloud region internal network (IP information is EIP).
  • IP information is EIP
  • the purpose of the acceleration node D mapping the destination address of the inner layer data to the tail NAT IP is to use IP9 as the IP address of the source acceleration node when the cloud region returns the data stream.
  • steps S41-S46 are the forward data traffic forwarding process, that is, the process in which the first terminal sends data to the cloud region.
  • steps S51-S56 are the reverse data traffic forwarding process, that is, the process in which the cloud region sends data to the first terminal.
  • the data center sends the feedback original data to the acceleration node D.
  • the destination address of the feedback original data is IP9, and the source and destination address is EIP, that is, the data center uses the tail NAT IP (IP9) as the destination address, and the data center connects to the cloud The acceleration node D of the region.
  • the acceleration node D After the acceleration node D receives the feedback original data, it performs destination address translation on the destination address in the feedback original data, and maps the destination address to IP8.
  • the acceleration node D searches the location routing table, and determines the acceleration node A corresponding to IP8 according to the location routing table.
  • the acceleration node D determines the optimal path (the list of acceleration nodes) from the acceleration node D to the acceleration node A according to the source routing table.
  • Acceleration node D overlay-encapsulates the optimal path (list of acceleration nodes), the next-hop acceleration node (such as acceleration node B), and the feedback original data, and forwards the overlay-encapsulated data hop by hop until it is forwarded to acceleration node A .
  • the acceleration node A After the acceleration node A receives the overlay package data, it strips off the overlay header to expose the destination address (IP8) and source address (EIP) of the inner layer feedback data.
  • IP8 destination address
  • EIP source address
  • the acceleration node A performs destination address translation, and maps IP8 to the public network IPM of the NAT device.
  • the NAT device maps the IPM to the private network IP address (IP1) of the first terminal, and the NAT device forwards the private network.
  • the destination end is a terminal (or server), that is, a scenario in which the first terminal accesses the second terminal (or server).
  • FIG. 13 is a schematic diagram of a scene diagram of data forwarding between the first terminal and the second terminal.
  • the first terminal has a built-in SDK plug-in, and the first terminal can access the central controller through the SDK plug-in.
  • the second terminal has a built-in SDK plug-in, and the second terminal can access the central controller through the SDK plug-in.
  • the IP address of the first terminal is IP2, and the IP address of the second terminal is IP3.
  • the first terminal accesses the central controller through the SDK, and the central controller feeds back the IP address of the acceleration node A to the first terminal.
  • the first terminal accesses the acceleration node A (source acceleration node).
  • the first terminal obtains original data, the destination address of the original data is IP3, and the source address is IP2.
  • SDK package data includes SDK header and original data.
  • the source address in the SDK header is IP2, and the destination address is IPA (the public IP of the acceleration node A).
  • the acceleration node A decapsulates the SDK package data, strips off the SDK header, and exposes the destination address (IP3) and source address (IP2) of the original data.
  • the acceleration node A searches the location routing table, and determines the acceleration node (eg, the acceleration node D) that has a corresponding relationship with the destination address (IP3).
  • the acceleration node A searches the source routing table to determine the optimal path from the acceleration node A to the acceleration node D, that is, the acceleration node (segment list) that needs to be experienced from the acceleration node A to the acceleration node D.
  • Acceleration node A performs overlay encapsulation on the original data packet to obtain overlay encapsulation data.
  • the overlay encapsulation data includes the original data, the IP of each acceleration node on the optimal path (for example, IPA, IPB, IPC, and IPD), and the next-hop acceleration node. IP (eg IPB).
  • the acceleration node A sends the overlay encapsulated data, and the overlay encapsulated data is forwarded hop by hop until forwarded to the acceleration node D (destination forwarding node).
  • the acceleration node D decapsulates the overlay package data to obtain original data.
  • the acceleration node D performs SDK encapsulation on the original data to obtain SDK encapsulated data.
  • the outer destination address of the SDK encapsulated data is IP3, and the source address is IPD.
  • the acceleration node D sends the SDK package data to the second terminal through the SDK tunnel.
  • the second terminal decapsulates the SDK package data to obtain original data.
  • steps S61-S66 are exemplary descriptions of the forward forwarding process of the data flow, that is, the process of sending data from the first terminal to the second terminal.
  • steps S71-S76 are the reverse data traffic forwarding process, that is, the process in which the second terminal sends data to the first terminal.
  • the second terminal accesses the central controller through the SDK, and the central controller feeds back the IP address of the acceleration node D to the second terminal.
  • the first terminal accesses the acceleration node D (source acceleration node).
  • the second terminal obtains the raw data fed back, the destination address of the raw data fed back is IP2, and the source address is IP3.
  • SDK package data includes SDK header and feedback data.
  • the source address in the header of the SDK package data is IP3, and the destination address is IPD (the public IP of the acceleration node D).
  • the acceleration node D decapsulates the SDK encapsulated data, strips off the header, and exposes the destination address (IP2) and source address (IP3) of the fed back original data.
  • the acceleration node D searches the location routing table, and determines the acceleration node (eg, the acceleration node A) that has a corresponding relationship with the destination address (IP2).
  • the acceleration node D searches the source routing table to determine the optimal path from the acceleration node D to the acceleration node A, that is, the acceleration node (segment list) that needs to be experienced from the acceleration node D to the acceleration node A.
  • the acceleration node D performs overlay encapsulation on the feedback data to obtain the overlay encapsulation data.
  • the overlay encapsulation data includes the feedback data, the IP of each acceleration node (for example, IPD, IPC, IPB, and IPA) on the optimal path, and the IP address of the next-hop acceleration node. IP (eg IPC).
  • the acceleration node D sends the overlay encapsulated data, and the overlay encapsulated data is forwarded hop by hop until forwarded to the acceleration node A (destination forwarding node).
  • the acceleration node A decapsulates the overlay package data, and obtains the original data fed back.
  • the acceleration node A performs SDK encapsulation on the feedback data.
  • the outer destination address of the SDK encapsulated data is IP2 and the source address is IPA.
  • the acceleration node A sends the SDK package data to the first terminal through the SDK tunnel.
  • the first terminal decapsulates the SDK package data, and obtains the original data that is fed back.
  • FIG. 14 is a schematic diagram of encrypted and forwarded data in an overlay tunnel.
  • the encryption package When the source acceleration node (such as acceleration node A) obtains the original data, the encryption key field is added, and the original data is encrypted and filled to obtain encrypted data.
  • the source acceleration node such as acceleration node A
  • the source acceleration node sends encrypted data to the next-hop acceleration node, the encrypted data is forwarded hop by hop, and the encrypted data is kept encrypted during the forwarding process. Until the encrypted data reaches the destination acceleration node (such as acceleration node D).
  • the acceleration node D performs overlay decapsulation on the encrypted data, and also de-encrypts the data, restores the original data, and forwards the original data.
  • the GA in the traditional method relies on the IP private line network of the cloud manufacturer to provide acceleration services, and can only encrypt the data to be transmitted through the application layer, while the transport layer does not support encryption services.
  • AND forwards data based on the overlay tunnel and can naturally encrypt data based on the overlay tunnel, so that some confidential data can be protected by double-layer encryption at the application layer and the transport layer, thereby ensuring data security.
  • the communication system includes a central controller and a plurality of acceleration nodes, and the plurality of acceleration nodes include a first acceleration node and a second acceleration node, wherein the deployment environment of the central controller belongs to the first acceleration node.
  • a cloud service provider, the deployment environment of the multiple acceleration nodes belongs to a second cloud service provider, an application service provider or a telecom operator.
  • An embodiment of the present application provides an acceleration node.
  • the acceleration node 1500 is described by taking a first acceleration node as an example, and the first acceleration node may be any acceleration node among multiple acceleration nodes.
  • the first acceleration node is configured to implement the functions performed by the first acceleration node in the foregoing method embodiments. Referring to FIG.
  • the acceleration node 1500 includes a forwarding module 1501 and a control module 1502, wherein the forwarding module 1501 is used to implement the function of the forwarding node in the above method embodiment, and the control module 1502 is used to implement the local control in the above method embodiment. function of the device.
  • a forwarding module 1501 configured to receive a data request from the first terminal, where the data request is used to access the destination;
  • control module 1502 configured to obtain a target path, the target path is from a routing table entry generated by the central controller;
  • the forwarding module 1501 is configured to send the data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data The request is forwarded to the destination.
  • the forwarding module 1501 is configured to perform step 507 and step 509 in the above-mentioned embodiment corresponding to FIG. 5 .
  • the forwarding module 1501 is further configured to perform steps S42 , S43 and S44 in the example corresponding to FIG. 12 .
  • the forwarding module 1501 is further configured to perform step S45 in the example corresponding to FIG. 12 .
  • the forwarding module 1501 is further configured to perform steps S46 , S51 , S52 and S54 in the example corresponding to FIG. 12 .
  • the forwarding module 1501 is further configured to execute steps S63, S74 and S75 in the example corresponding to FIG. 13
  • the forwarding module 1501 is further configured to execute Steps S64, S65 and S73 in the example corresponding to FIG. 13
  • the control module 1502 is configured to execute step 508 in the embodiment corresponding to FIG. 5 , and steps S53 , S55 and S56 in the example corresponding to FIG. 12 .
  • the routing table entry includes a source routing table and a location routing table; the control module 1502 is further configured to receive the source routing table and the location routing table sent by the central controller, where the source routing table includes The path from the source acceleration node to the destination acceleration node.
  • the location routing table includes the correspondence between the first IP address and the second acceleration node.
  • the first IP address is the IP address of the destination end where the user applies for the network acceleration service; when the destination address of the data request When it is the first IP address, the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node; when the first acceleration node is the source acceleration node, the first acceleration node is the source acceleration node.
  • An acceleration node queries the source routing table according to the second acceleration node, and determines a target path from the first acceleration node to the second acceleration node.
  • the forwarding module 1501 is further configured to measure the link status between the first acceleration node and the neighboring acceleration node to obtain link status information; the control module 1502 is further configured to send the information to the central controller The link state information obtained by the forwarding module 1501 is used for the central controller to generate the source routing table.
  • an SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in; the forwarding module 1501 is further configured to receive SDK package data from the first terminal through the SDK tunnel,
  • the SDK encapsulation data is the data after encapsulating the data request.
  • the destination address in the header of the SDK encapsulation data is the IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal.
  • the deployment environment of the first acceleration node is a first network device
  • the first network device is used to receive an access control list ACL policy instruction
  • the ACL policy instruction is used to trigger the first network device to convert the destination address
  • the data of the first IP address is directed to the first acceleration node
  • the forwarding module 1501 is further configured to receive a data request from the first terminal directed by the first network device according to the ACL policy instruction.
  • the deployment environment of the first acceleration node is a device in a local area network
  • the first terminal is a terminal in the local area network
  • the forwarding module 1501 is further configured to receive a data request from the first terminal through the local area network.
  • the acceleration node 1500 runs in a virtual machine or container provided by the deployment environment.
  • FIG. 16 is a schematic diagram of the architecture of a virtual machine.
  • the architecture of the virtual machine includes a hardware layer 1601 , a virtualization layer 1602 and a virtual machine 1603 .
  • the virtualization layer 1602 includes a hypervisor.
  • the hypervisor is used to manage the real hardware resources of the hardware layer 1601 , and provides hardware resource abstraction for the virtual machine 1603 , thereby providing a running environment for the acceleration node 1500 in the virtual machine 1603 .
  • Hardware layer 1601 may include one or more processors, memory, and storage devices. The storage device and the memory are both connected to the processor.
  • the processor can also be referred to as a processing unit, which can implement certain control functions.
  • the processor may be a general-purpose processor or a special-purpose processor, or the like. Instructions may be stored on the memory, and the instructions may be executed on the processor.
  • the storage device is used to store the source routing table and the location routing table.
  • the hypervisor provides hardware resource abstraction for the virtual machine, so that the acceleration node in the virtual machine executes the method executed by the first acceleration node in the above method embodiment.
  • an embodiment of the present application further provides a central controller, where the central controller is configured to execute the method executed by the central controller in the foregoing method embodiments.
  • the central controller 1700 includes a transceiver module 1701 and a processing module 1702 .
  • a transceiver module 1701 configured to acquire link status information sent by the acceleration node
  • the processing module 1702 is configured to generate a source routing table according to the link state information obtained by the transceiver module 1701, where the source routing table includes a path from the source acceleration node to the destination acceleration node;
  • the transceiver module 1701 is used to obtain the first IP address of the destination end of the user applying for the network acceleration service;
  • the processing module 1702 is further configured to generate a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node;
  • the transceiver module 1701 is further configured to send the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node.
  • the location routing table is used to guide the first acceleration node to determine the second acceleration node according to the first IP address.
  • the IP address is the destination address of the data request from the first terminal
  • the source routing table is used by the first acceleration node to obtain the target path
  • the target path is used to guide the data request to be forwarded to the second acceleration node
  • the second acceleration node is used to forward the data to the destination.
  • the transceiver module 1701 is a transceiver.
  • the transceiver has the function of sending and/or receiving.
  • the transceiver is replaced by a receiver and/or a transmitter.
  • the transceiver module 1701 is a communication interface.
  • the communication interface is an input-output interface or a transceiver circuit.
  • the input and output interface includes an input interface and an output interface.
  • the transceiver circuit includes an input interface circuit and an output interface circuit.
  • the processing module 1702 is a processor, and the processor is a general-purpose processor or a special-purpose processor or the like.
  • the processor includes a transceiver unit for implementing receiving and transmitting functions.
  • the transceiver unit is a transceiver circuit, or an interface, or an interface circuit.
  • Transceiver circuits, interfaces, or interface circuits for implementing receiving and transmitting functions are deployed separately, or optionally, integrated together.
  • the above-mentioned transceiver circuit, interface or interface circuit is used for reading and writing code or data, or the above-mentioned transceiver circuit, interface or interface circuit is used for signal transmission or transmission.
  • the transceiver module 1701 is configured to execute step 501 , step 503 , step 504 and step 506 in the above-mentioned embodiment corresponding to FIG. 5 .
  • the processing module 1702 is configured to execute step 502 and step 505 in the above-mentioned embodiment corresponding to FIG. 5 .
  • the processing module 1702 is further specifically configured to: determine the second acceleration node according to the first IP address of the destination; establish a correspondence between the first IP address and the second acceleration node; Relationships generate location routing tables.
  • the processing module 1702 is further configured to determine the second acceleration node deployed in the cloud area according to the first IP address.
  • the processing module 1702 is further configured to query the IP address database according to the first IP address to determine the physical location of the destination terminal; determine the second closest to the physical location. Speed up nodes.
  • an SDK plug-in is configured in the first terminal, and the address information of the central controller is preset in the SDK plug-in; the transceiver module 1701 is further configured to receive a request sent by the first terminal; The first terminal feeds back the IP address of the first acceleration node, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel.
  • the transceiver module 1701 is further configured to send traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device , the second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
  • the transceiver module 1701 is further configured to acquire a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is a cloud area, The second mode is used to indicate that the destination of the network acceleration service is the second terminal or the server.
  • an embodiment of the present application provides a central controller, and the central controller 1800 is used to implement the method executed by the central controller in the above method embodiments.
  • the central controller 1800 is used to implement the method executed by the central controller in the above method embodiments.
  • the central controller 1800 is used to implement the method executed by the central controller in the above method embodiments.
  • the central controller 1800 may include one or more processors 1801, and the processors 1801 may also be referred to as processing units, which may implement certain control functions.
  • the processor 1801 may be a general-purpose processor or a special-purpose processor, or the like.
  • the central processing unit can be used to control the central controller, execute software programs, and process data of the software programs.
  • the processor 1801 may also store instructions 1803, and the instructions 1803 may be executed by the processor, so that the central controller 1800 executes the methods described in the above method embodiments.
  • the processor 1801 may include a transceiver unit for implementing the functions of receiving and transmitting.
  • the transceiver unit may be a transceiver circuit, or an interface, or an interface circuit.
  • Transceiver circuits, interfaces or interface circuits used to implement receiving and transmitting functions may be separate or integrated.
  • the above-mentioned transceiver circuit, interface or interface circuit can be used for reading and writing code/data, or the above-mentioned transceiver circuit, interface or interface circuit can be used for signal transmission or transmission.
  • the central controller 1800 may include a circuit, and the circuit may implement the function of sending or receiving in the above method embodiments.
  • the central controller 1800 may include one or more memories 1802 on which instructions 1804 may be stored, and the instructions may be executed on the processor, so that the central controller 1800 executes the methods described in the above method embodiments.
  • data may also be stored in the memory.
  • instructions and/or data may also be stored in the processor.
  • the processor and the memory can be provided separately or integrated together.
  • the central controller 1800 may further include a transceiver 1805 and/or an antenna 1806 .
  • the processor 1801 may be called a processing unit, and controls the central controller 1800 .
  • the transceiver 1805 may be referred to as a transceiver unit, a transceiver, a transceiver circuit, a transceiver device or a transceiver module, etc., and is used to implement a transceiver function.
  • An embodiment of the present application is a computer program product, the computer program product includes computer program code, and when the computer program code is executed by a computer, enables the computer to implement the method executed by the central controller in the above method embodiments.
  • An embodiment of the present application is a computer program product.
  • the computer program product includes computer program code, which, when executed by a computer, enables the computer to implement the method executed by the first acceleration node in the above method embodiments.
  • An embodiment of the present application is a computer-readable storage medium for storing a computer program or instruction, which, when executed, causes the computer to execute the method executed by the central controller in the above method embodiment.
  • An embodiment of the present application is a computer-readable storage medium for storing a computer program or instruction, and when the computer program or instruction is executed, the computer executes the method executed by the first acceleration node in the foregoing method embodiment.

Landscapes

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

Abstract

A data forwarding method and a related apparatus, which are used for improving the degree of coverage of a network acceleration service. In an embodiment of the present application, a communication system comprises a central controller and a plurality of acceleration nodes, wherein the plurality of acceleration nodes comprise a first acceleration node and a second acceleration node, a deployment environment of the central controller belongs to a first cloud service provider, and a deployment environment of the plurality of acceleration nodes belongs to a second cloud service provider, an application service provider, or a telecommunication operator. The method comprises: a first acceleration node receiving a data request from a first terminal, wherein the data request is used for accessing a destination end; the first acceleration node acquiring a target path, wherein the target path is from a routing table entry generated by a central controller; and the first acceleration node sending the data request to a next-hop acceleration node according to the target path until the data request is forwarded to a second acceleration node, wherein the second acceleration node is used for forwarding the data request to the destination end. A plurality of forwarding nodes are flexibly deployed, thus improving the degree of coverage of a data forwarding network.

Description

一种数据转发方法及相关装置A data forwarding method and related device
本申请要求于2021年4月16日提交中国专利局、申请号为202110411432.1、发明名称为“一种数据转发方法及相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202110411432.1 and the invention titled "A data forwarding method and related device" filed with the China Patent Office on April 16, 2021, the entire contents of which are incorporated herein by reference middle.
技术领域technical field
本申请涉及计算机网络技术领域,尤其涉及一种数据转发方法及相关装置。The present application relates to the technical field of computer networks, and in particular, to a data forwarding method and related devices.
背景技术Background technique
基于云服务的各种优势,越来越多的业务应用选择云厂商提供的云服务,为了能够为业务应用提供高质量的服务。全球加速(global accelerator,GA)网络加速服务应运而生,从而为全球用户提供高性能的网络加速服务。Based on various advantages of cloud services, more and more business applications choose cloud services provided by cloud vendors in order to provide high-quality services for business applications. The Global Accelerator (GA) network acceleration service emerges as the times require, thereby providing high-performance network acceleration services for global users.
请参阅图1A所示,云厂商在全球范围内建设接入点(point of presence,POP),POP点与云厂商的专线网络互联。终端就近接入到POP点,例如,亚太用户的终端接入到POP1。POP1点将来自终端的数据流引入到专线网络,专线网络与云区域对接,从而使得终端能够将待转发的数据通过云厂商部署的专线网络快速转发到云区域。Referring to Figure 1A, a cloud vendor builds a point of presence (POP) around the world, and the POP point is interconnected with the cloud vendor's private line network. The terminal is connected to the nearest POP point, for example, the terminal of the Asia-Pacific user is connected to POP1. The POP1 point introduces the data flow from the terminal to the private line network, and the private line network is connected to the cloud area, so that the terminal can quickly forward the data to be forwarded to the cloud area through the private line network deployed by the cloud manufacturer.
但是,GA服务完全依赖于云厂商部署的POP节点和物理专线网络的建设分布情况,GA服务能力受限。However, the GA service is completely dependent on the construction and distribution of POP nodes and physical private line networks deployed by cloud vendors, and the GA service capability is limited.
发明内容SUMMARY OF THE INVENTION
本申请实施例提供了一种数据转发方法及相关装置,用于提高网络加速服务的覆盖度。Embodiments of the present application provide a data forwarding method and a related device, which are used to improve the coverage of a network acceleration service.
第一方面,本申请实施例提供了一种数据转发方法,应用于通信系统中的第一加速节点,通信系统包括中心控制器和多个加速节点,多个加速节点属于overlay网络,多个加速节点包括第一加速节点和第二加速节点,其中,中心控制器的部署环境属于第一云服务提供商,多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;多个加速节点运行过程中,受控于中心控制器,也即受控于第一云服务提供商;在数据转发过程中,第一加速节点接收来自第一终端的数据请求,数据请求用于访问目的端;第一加速节点获取目标路径,目标路径来自于中心控制器生成的路由表项;第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。本实施例中,多个转发节点可以灵活部署于第二云服务提供商、应用服务提供商或电信运营商提供的部署环境,从而保证加速节点可以在全球范围内无处不在的寄生,并且所有加速节点中的任意一个加速节点都能够作为终端接入到网络的接入节点,而且每个加速节点又可以作为目标路径中的一个传输节点,第一加速节点获取到第一终端的数据请求后,第一加速节点按照目标路径将来自终端的数据请求向overlay网络发送,直到数据请求传递到目标路径的目的加速节点(第二加速节点),第二加速节点再将数据请求传递到目的端,从而能够真正实现全球范围内的用户都能享受到网络加速服务。In a first aspect, an embodiment of the present application provides a data forwarding method, which is applied to a first acceleration node in a communication system. The communication system includes a central controller and multiple acceleration nodes, and the multiple acceleration nodes belong to an overlay network, and the multiple acceleration nodes belong to an overlay network. The nodes include a first acceleration node and a second acceleration node, wherein the deployment environment of the central controller belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, application service provider or telecom operator During the operation of multiple acceleration nodes, they are controlled by the central controller, that is, controlled by the first cloud service provider; during the data forwarding process, the first acceleration node receives the data request from the first terminal, and the data request Used to access the destination; the first acceleration node obtains the target path, and the target path comes from the routing table entry generated by the central controller; the first acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to The second acceleration node is configured to forward the data request to the destination end. In this embodiment, multiple forwarding nodes can be flexibly deployed in a deployment environment provided by a second cloud service provider, an application service provider, or a telecom operator, thereby ensuring that acceleration nodes can be parasitized everywhere in the world, and all Any acceleration node among the acceleration nodes can be used as an access node for a terminal to access the network, and each acceleration node can be used as a transmission node in the target path. After the first acceleration node obtains the data request from the first terminal, , the first acceleration node sends the data request from the terminal to the overlay network according to the target path, until the data request is transmitted to the destination acceleration node (second acceleration node) of the target path, and the second acceleration node transmits the data request to the destination end, In this way, users around the world can truly enjoy the network acceleration service.
在一种可选的实现方式中,路由表项包括源路由表和位置路由表;所述方法还包括:In an optional implementation manner, the routing table entry includes a source routing table and a location routing table; the method further includes:
第一加速节点接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速 节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;所述第一加速节点获取目标路径可以具体包括:当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。本实施例中,第一加速节点可以根据位置路由表确定第二加速节点,当第一加速节点是源加速节点,第二加速节点是目的加速节点时,第一加速节点就能够根据源路由表确定从第一加速节点到第二加速节点的目标路径,第一加速节点根据目标路径向下一跳加速节点转发,直到转发到第二加速节点。The first acceleration node receives the source routing table and the location routing table sent by the central controller, the source routing table includes a path from the source acceleration node to the destination acceleration node, and the location routing table includes the first IP address and the second acceleration node. The corresponding relationship, The first IP address is the IP address of the destination end where the user applies for the network acceleration service; the acquisition of the target path by the first acceleration node may specifically include: when the destination address of the data request is the first IP address, the first acceleration node queries the location routing table , determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node; when the first acceleration node is the source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines from The target path from the first acceleration node to the second acceleration node. In this embodiment, the first acceleration node can determine the second acceleration node according to the location routing table. When the first acceleration node is the source acceleration node and the second acceleration node is the destination acceleration node, the first acceleration node can determine the second acceleration node according to the source routing table. A target path from the first acceleration node to the second acceleration node is determined, and the first acceleration node forwards to the next-hop acceleration node according to the target path until forwarding to the second acceleration node.
在一种可选的实现方式中,第一加速节点接收中心控制器发送的源路由表之前,所述方法还包括:第一加速节点测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;第一加速节点向中心控制器发送链路状态信息,链路状态信息用于中心控制器生成源路由表。本实施例中,加速节点还用于测量与邻居加速节点间的链路状态,从而使得中心控制器能够根据链路状态生成源路由表,该源路由表中的路径是根据链路状态得到的,从而使得网络加速服务具有较高的服务质量。In an optional implementation manner, before the first acceleration node receives the source routing table sent by the central controller, the method further includes: the first acceleration node measures the link status between the first acceleration node and neighboring acceleration nodes, The link state information is obtained; the first acceleration node sends the link state information to the central controller, and the link state information is used by the central controller to generate a source routing table. In this embodiment, the acceleration node is also used to measure the link status with the neighboring acceleration node, so that the central controller can generate a source routing table according to the link status, and the path in the source routing table is obtained according to the link status , so that the network acceleration service has a higher quality of service.
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址,第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址,头部中的源地址是第一终端的IP地址。本实施例中,终端中配置有SDK插件,终端可以就近接入到一个加速节点,overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。In an optional implementation manner, an SDK plug-in is configured in the first terminal, the address of the central controller is preset in the SDK plug-in, and the first acceleration node receiving the data request from the first terminal may include: the first acceleration node The SDK package data is received from the first terminal through the SDK tunnel. The SDK package data is the data after the data request is packaged. The destination address in the header of the SDK package data is the IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal. In this embodiment, an SDK plug-in is configured in the terminal, the terminal can access an acceleration node nearby, and the overlay network performs accelerated forwarding for the data request of the first terminal, and the application scenarios are wide.
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。本实施例中,适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。In an optional implementation manner, the deployment environment of the first acceleration node is a first network device, the first network device is used to receive an access control list ACL policy instruction, and the ACL policy instruction is used to trigger the first network device to convert the destination address The data of the first IP address is guided to the first acceleration node; the first acceleration node receiving the data request from the first terminal may include: the first acceleration node receiving the data from the first terminal guided by the first network device according to the ACL policy instruction ask. This embodiment is applicable to a scenario where a terminal accesses a network through a first network device (eg, MEC or OLT) (eg, a scenario where a home bandwidth accesses the network). The first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端,第一加速节点接收来自第一终端的数据请求可以包括:第一加速节点通过局域网接收来自第一终端的数据请求。本实施例中,加速节点嵌入部署到局域网(如企业内网)内,并且第二网络设备为第一加速节点提供私网AIP,从而实现局域网中的终端设备可以通过加速节点接入到overlay网络。overlay网络为局域网中的终端设备提供网络加速服务,解决了运营商分配的公网AIP资源成本昂贵的问题。In an optional implementation manner, the deployment environment of the first acceleration node is a device in a local area network, the first terminal is a terminal in the local area network, and receiving the data request from the first terminal by the first acceleration node may include: the first acceleration node The node receives the data request from the first terminal through the local area network. In this embodiment, the acceleration node is embedded and deployed in a local area network (such as an enterprise intranet), and the second network device provides a private network AIP for the first acceleration node, so that terminal devices in the local area network can access the overlay network through the acceleration node . The overlay network provides network acceleration services for terminal devices in the local area network, which solves the problem of expensive public network AIP resources allocated by operators.
在一种可选的实现方式中,目的端是云区域,或者,目的端是第二终端或服务器。本实施例中,overlay网络不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,具有普适性。In an optional implementation manner, the destination end is a cloud area, or the destination end is a second terminal or a server. In this embodiment, the overlay network not only supports a scenario in which a terminal accesses a cloud region, but also supports a scenario in which a terminal accesses between terminals, which is universal.
在一种可选的实现方式中,部署环境包括云区域,POP,边缘云,OLT,或MEC。本实施例中,加速节点可以灵活部署于各种部署环境,从而使得该overlay网络可以真正覆盖全球区域。In an optional implementation, the deployment environment includes a cloud area, POP, edge cloud, OLT, or MEC. In this embodiment, the acceleration node can be flexibly deployed in various deployment environments, so that the overlay network can truly cover the global area.
第二方面,本申请实施例提供了一种数据转发方法,应用于通信系统中的中心控制器,通信系统包括中心控制器和部署于各种部署环境中的多个加速节点,多个加速节点包括第一加速节点和第二加速节点,所述方法包括:中心控制器获取加速节点发送的链路状态信息;中心控制器根据链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;中心控制器获取用户申请网络加速服务的目的端的第一IP地址;中心控制器生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;中心控制器向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。本实施例中,中心控制器生成源路由表,源路由表用于指示多个加速节点中的路径,中心控制器生成位置路由表,位置路由表用于指示目的加速节点,从而使得源加速节点能够根据位置路由表查询到目的加速节点,然后根据源路由表查询目标路径,进而实现加速节点对数据请求在overlay网络中加速转发。In a second aspect, an embodiment of the present application provides a data forwarding method, which is applied to a central controller in a communication system. The communication system includes a central controller and multiple acceleration nodes deployed in various deployment environments. The multiple acceleration nodes It includes a first acceleration node and a second acceleration node, and the method includes: the central controller obtains link state information sent by the acceleration node; the central controller generates a source routing table according to the link state information, and the source routing table contains the information from the source acceleration node. The path to the destination acceleration node; the central controller obtains the first IP address of the destination end where the user applies for the network acceleration service; the central controller generates a location routing table, and the location routing table includes the correspondence between the first IP address and the second acceleration node; the center The controller sends the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node, where the location routing table is used to guide the first acceleration node to determine the second acceleration node according to the first IP address, and the first IP address is from the first acceleration node. The destination address of a data request of a terminal, the source routing table is used by the first acceleration node to obtain the target path, the target path is used to guide the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to the destination. In this embodiment, the central controller generates a source routing table, the source routing table is used to indicate paths in multiple acceleration nodes, the central controller generates a location routing table, and the location routing table is used to indicate the destination acceleration node, so that the source acceleration node It can query the destination acceleration node according to the location routing table, and then query the target path according to the source routing table, so as to realize the accelerated forwarding of data requests by the acceleration node in the overlay network.
在一种可选的实现方式中,中心控制器生成位置路由表可以包括:中心控制器根据目的端的第一IP地址确定第二加速节点;中心控制器建立第一IP地址与第二加速节点的对应关系;中心控制器根据对应关系生成位置路由表。In an optional implementation manner, the generation of the location routing table by the central controller may include: the central controller determines the second acceleration node according to the first IP address of the destination terminal; the central controller establishes a relationship between the first IP address and the second acceleration node Corresponding relationship; the central controller generates a location routing table according to the corresponding relationship.
在一种可选的实现方式中,当目的端是云区域时,中心控制器根据目的端的第一IP地址确定第二加速节点可以包括:中心控制器根据第一IP地址确定云区域中部署的第二加速节点。本实施例中,加速节点可以灵活部署于云区域中,当目的端是云区域时,中心控制器根据第一IP地址直接确定出该云区域内部署的第二加速节点,从而使得第二加速节点在云区域内部将数据请求转发到目的端,减少加速节点到目的端的传输距离。In an optional implementation manner, when the destination terminal is a cloud area, the central controller determining the second acceleration node according to the first IP address of the destination terminal may include: the central controller determining the acceleration node deployed in the cloud area according to the first IP address The second acceleration node. In this embodiment, the acceleration node can be flexibly deployed in the cloud area. When the destination is in the cloud area, the central controller directly determines the second acceleration node deployed in the cloud area according to the first IP address, so that the second acceleration node can be deployed in the cloud area. The node forwards the data request to the destination within the cloud area, reducing the transmission distance from the acceleration node to the destination.
在一种可选的实现方式中,当目的端是终端或服务器时,中心控制器根据目的端的第一IP地址确定第二加速节点可以包括:中心控制器根据第一IP地址查询IP地址库,确定目的端的物理位置;中心控制器确定距离物理位置最近的第二加速节点,从而尽量减少第二加速节点到目的端的传输距离。In an optional implementation manner, when the destination terminal is a terminal or a server, the central controller determining the second acceleration node according to the first IP address of the destination terminal may include: the central controller querying an IP address library according to the first IP address, Determine the physical location of the destination; the central controller determines the second acceleration node closest to the physical location, thereby minimizing the transmission distance from the second acceleration node to the destination.
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;所述方法还包括:中心中控器接收第一终端发送的请求;中心控制器根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址。第一终端通过SDK插件访问中心控制器,即中心中控器接收第一终端发送的请求,该请求携带第一终端的IP地址,中心控制器根据第一终端的IP地址查询IP地址库,确定第一终端的物理位置,并根据第一终端的物理位置确定距离该物理位置最近的加速节点(即第一加速节点),中心控制器将第一加速节点的IP地址反馈给第一终端, overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。In an optional implementation manner, an SDK plug-in is configured in the first terminal, and address information of the central controller is preset in the SDK plug-in; the method further includes: the central central controller receives a request sent by the first terminal; The central controller feeds back the IP address of the first acceleration node to the first terminal according to the request, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel. An SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in. The first terminal accesses the central controller through the SDK plug-in, that is, the central central controller receives a request sent by the first terminal, the request carries the IP address of the first terminal, and the central controller queries the IP address database according to the IP address of the first terminal, and determines the physical location of the first terminal, and determine the acceleration node (that is, the first acceleration node) closest to the physical location according to the physical location of the first terminal, and the central controller feeds back the IP address of the first acceleration node to the first terminal, overlay The network performs accelerated forwarding for the data request of the first terminal, and has a wide range of application scenarios.
在一种可选的实现方式中,所述方法还包括:中心控制器向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。本实施例中,中心控制器和第一网络设备协同将第一终端的数据请求引导至第一加速节点。适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。In an optional implementation manner, the method further includes: the central controller sends traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send the ACL to the first network device The policy instruction, the second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node. In this embodiment, the central controller and the first network device cooperate to guide the data request of the first terminal to the first acceleration node. It is applicable to the scenario where the terminal accesses the network through the first network device (eg, MEC or OLT) (eg, the scenario where the home bandwidth accesses the network). The first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
在一种可选的实现方式中,所述方法还包括:中心控制器获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。本实施例中,overlay网络不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,具有普适性。In an optional implementation manner, the method further includes: the central controller obtains a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is the cloud area, and the second mode is used to indicate that the destination of the network acceleration service is the second terminal or server. In this embodiment, the overlay network not only supports a scenario in which a terminal accesses a cloud region, but also supports a scenario in which a terminal accesses between terminals, which is universal.
第三方面,本申请实施例提供了一种加速节点,包含于通信系统,通信系统包括中心控制器和多个加速节点,多个加速节点包括第一加速节点和第二加速节点,其中,中心控制器的部署环境属于第一云服务提供商,多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;第一加速节点包括:In a third aspect, an embodiment of the present application provides an acceleration node, which is included in a communication system. The communication system includes a central controller and multiple acceleration nodes, and the multiple acceleration nodes include a first acceleration node and a second acceleration node, wherein the center The deployment environment of the controller belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, an application service provider or a telecom operator; the first acceleration node includes:
转发模块,用于接收来自第一终端的数据请求,数据请求用于访问目的端;a forwarding module, configured to receive a data request from the first terminal, and the data request is used to access the destination terminal;
控制模块,用于获取目标路径,目标路径来自于中心控制器生成的路由表项;The control module is used to obtain the target path, and the target path comes from the routing table entry generated by the central controller;
转发模块,用于根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。The forwarding module is configured to send a data request to the next-hop acceleration node according to the target path until the data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data request to the destination.
在一种可选的实现方式中,路由表项包括源路由表和位置路由表;In an optional implementation manner, the routing table entry includes a source routing table and a location routing table;
控制模块,还用于接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;The control module is also used to receive the source routing table and the location routing table sent by the central controller, the source routing table includes a path from the source acceleration node to the destination acceleration node, and the location routing table includes the first IP address and the second acceleration node. Correspondence relationship, the first IP address is the IP address of the destination end where the user applies for the network acceleration service;
当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;When the destination address of the data request is the first IP address, the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node;
当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。When the first acceleration node is the source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines the target path from the first acceleration node to the second acceleration node.
在一种可选的实现方式中,转发模块,还用于测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;In an optional implementation manner, the forwarding module is further configured to measure the link state between the first acceleration node and the neighbor acceleration node to obtain link state information;
控制模块,还用于向中心控制器发送转发模块获取的链路状态信息,链路状态信息用于中心控制器生成源路由表。The control module is further configured to send the link state information obtained by the forwarding module to the central controller, where the link state information is used by the central controller to generate a source routing table.
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址;In an optional implementation manner, an SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in;
转发模块,还用于通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址, 头部中的源地址是第一终端的IP地址。The forwarding module is further configured to receive the SDK encapsulation data from the first terminal through the SDK tunnel, the SDK encapsulation data is the data after encapsulating the data request, and the destination address in the header of the SDK encapsulation data is the IP address of the first acceleration node, The source address in the header is the IP address of the first terminal.
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;In an optional implementation manner, the deployment environment of the first acceleration node is a first network device, the first network device is used to receive an access control list ACL policy instruction, and the ACL policy instruction is used to trigger the first network device to convert the destination address The data of the first IP address is directed to the first acceleration node;
转发模块,还用于接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。The forwarding module is further configured to receive a data request from the first terminal guided by the first network device according to the ACL policy instruction.
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端;In an optional implementation manner, the deployment environment of the first acceleration node is a device in a local area network, and the first terminal is a terminal in the local area network;
转发模块,还用于通过局域网接收来自第一终端的数据请求。The forwarding module is further configured to receive a data request from the first terminal through the local area network.
第四方面,本申请实施例提供了一种中心控制器,包括:In a fourth aspect, an embodiment of the present application provides a central controller, including:
收发模块,用于获取加速节点发送的链路状态信息;The transceiver module is used to obtain the link status information sent by the acceleration node;
处理模块,用于根据收发模块获取的链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;a processing module, configured to generate a source routing table according to the link state information acquired by the transceiver module, where the source routing table includes a path from the source acceleration node to the destination acceleration node;
收发模块,用于获取用户申请网络加速服务的目的端的第一IP地址;The transceiver module is used to obtain the first IP address of the destination end where the user applies for the network acceleration service;
处理模块,还用于生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;The processing module is also used to generate a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node;
收发模块,还用于向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。The transceiver module is further configured to send the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node, where the location routing table is used to guide the first acceleration node to determine the second acceleration node according to the first IP address, the first IP address The address is the destination address of the data request from the first terminal. The source routing table is used by the first acceleration node to obtain the target path, and the target path is used to guide the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to destination.
在一种可选的实现方式中,处理模块还具体用于:根据目的端的第一IP地址确定第二加速节点;建立第一IP地址与第二加速节点的对应关系;根据对应关系生成位置路由表。In an optional implementation manner, the processing module is further specifically configured to: determine the second acceleration node according to the first IP address of the destination end; establish a correspondence between the first IP address and the second acceleration node; generate a location route according to the correspondence surface.
在一种可选的实现方式中,当目的端是云区域时,处理模块,还用于根据第一IP地址确定云区域中部署的第二加速节点。In an optional implementation manner, when the destination terminal is the cloud area, the processing module is further configured to determine the second acceleration node deployed in the cloud area according to the first IP address.
在一种可选的实现方式中,当目的端是终端或服务器时,处理模块,还用于根据第一IP地址查询IP地址库,确定目的端的物理位置;确定距离物理位置最近的第二加速节点。In an optional implementation manner, when the destination terminal is a terminal or a server, the processing module is further configured to query the IP address database according to the first IP address to determine the physical location of the destination terminal; and determine the second accelerator closest to the physical location. node.
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;收发模块,还用于接收第一终端发送的请求;根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。In an optional implementation manner, an SDK plug-in is configured in the first terminal, and the address information of the central controller is preset in the SDK plug-in; the transceiver module is further configured to receive a request sent by the first terminal; A terminal feeds back the IP address of the first acceleration node, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel.
在一种可选的实现方式中,收发模块,还用于向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。In an optional implementation manner, the transceiver module is further configured to send traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device, The second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
在一种可选的实现方式中,收发模块,还用于获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。In an optional implementation manner, the transceiver module is further configured to obtain a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination end of the network acceleration service is a cloud area, and the first mode is used to indicate that the destination end of the network acceleration service is a cloud area. The second mode is used to indicate that the destination of the network acceleration service is the second terminal or server.
第五方面,本申请实施例提供了一种通信系统,包括多个如上述第三方面所述的加速节点和如上述第四方面所述的中心控制器,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。In a fifth aspect, an embodiment of the present application provides a communication system, including a plurality of acceleration nodes according to the third aspect and a central controller according to the fourth aspect, wherein the deployment of the central controller The environment belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, an application service provider or a telecom operator.
第六方面,本申请实施例提供了一种中心控制器,包括处理器,所述处理器与至少一个存储器耦合,所述处理器用于读取所述至少一个存储器所存储的计算机程序,使得所述中心控制器执行上述第二方面任一项所述的方法。In a sixth aspect, an embodiment of the present application provides a central controller, including a processor, the processor is coupled to at least one memory, and the processor is configured to read a computer program stored in the at least one memory, so that all The central controller executes the method described in any one of the above second aspects.
第七方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述第一方面任一项所述的方法;或者,使得计算机实现上述第二方面中任一项所述的方法。In a seventh aspect, an embodiment of the present application provides a computer program product, the computer program product includes computer program code, and when the computer program code is executed by a computer, enables the computer to implement any one of the above-mentioned first aspects. or, causing a computer to implement the method described in any one of the second aspects above.
第八方面,本申请实施例提供了一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述第一方面任一项所述的方法;或者,使得计算机实现上述第二方面中任一项所述的方法。In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium for storing a computer program or instruction, and when the computer program or instruction is executed, the computer executes the method described in any one of the first aspect above; Alternatively, the computer is caused to implement the method described in any one of the above second aspects.
附图说明Description of drawings
图1A和图1B为传统方法中网络加速系统的场景示意图;1A and 1B are schematic diagrams of scenarios of a network acceleration system in a traditional method;
图2为本申请实施例中一种通信系统的场景示意图;FIG. 2 is a schematic diagram of a scenario of a communication system in an embodiment of the present application;
图3为本申请实施例中overlay和underlay的示意图;3 is a schematic diagram of overlay and underlay in an embodiment of the application;
图4为本申请实施例中一种通信系统的架构示意图;FIG. 4 is a schematic structural diagram of a communication system in an embodiment of the application;
图5为本申请实施例中一种数据转发方法的一个实施例的步骤流程示意图;FIG. 5 is a schematic flowchart of steps of an embodiment of a data forwarding method in an embodiment of the present application;
图6为本申请实施例中第一终端接入到第一加速节点的场景示意图;6 is a schematic diagram of a scenario in which a first terminal accesses a first acceleration node in an embodiment of the present application;
图7为本申请实施例中中心控制器和第一网络设备协同将数据请求引导至第一加速节点的场景示意图;7 is a schematic diagram of a scenario in which a central controller and a first network device cooperate to guide a data request to a first acceleration node in an embodiment of the present application;
图8为本申请实施例中业务应用申请网络加速服务的两种申请方式的示意图;FIG. 8 is a schematic diagram of two application modes for a business application to apply for a network acceleration service in an embodiment of the present application;
图9为本申请实施例中网络加速服务的申请界面的场景示意图;9 is a schematic diagram of a scenario of an application interface for a network acceleration service in an embodiment of the present application;
图10为本申请实施例中终端访问云region的场景示意图;10 is a schematic diagram of a scenario in which a terminal accesses a cloud region in an embodiment of the application;
图11为本申请实施例中基于UDP进行overlay封装的数据格式的示意图;11 is a schematic diagram of a data format for overlay encapsulation based on UDP in an embodiment of the application;
图12为本申请实施例中第一终端和云region间数据转发的场景示意图;12 is a schematic diagram of a scenario of data forwarding between a first terminal and a cloud region in an embodiment of the application;
图13为本申请实施例中第一终端和第二终端间数据转发的场景示意图;13 is a schematic diagram of a scenario of data forwarding between a first terminal and a second terminal in an embodiment of the present application;
图14为本申请实施例中overlay隧道加密转发数据的示意图;14 is a schematic diagram of an overlay tunnel encrypting and forwarding data in an embodiment of the present application;
图15为本申请实施例中加速节点的一个实施例的结构示意图;FIG. 15 is a schematic structural diagram of an embodiment of an acceleration node in an embodiment of the present application;
图16为本申请实施例中虚拟机的架构示意图;16 is a schematic diagram of the architecture of a virtual machine in an embodiment of the present application;
图17为本申请实施例中中心控制器的一个实施例的结构示意图;17 is a schematic structural diagram of an embodiment of a central controller in an embodiment of the application;
图18为本申请实施例中中心控制器的另一个实施例的结构示意图。FIG. 18 is a schematic structural diagram of another embodiment of the central controller in the embodiment of the present application.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。本申请 的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application. The terms "first", "second", etc. in the description and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
请参阅图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所示。Referring to FIG. 1B , the network acceleration system in the conventional method includes a DNS server, a controller, a plurality of POP points, and an IP dedicated line network connected to the POP points. Each POP point is configured with at least one anycast IP (anycast IP, AIP) address. When a business application applies for the acceleration service, the controller generates a mapping relationship between AIP and an elastic IP address (EIP) (public network IP address). For example, business application A applies for a network acceleration service, the destination end of the network acceleration service is a cloud region (region), and the EIP of the cloud region is EIP1. After receiving the application from the service application A, the controller allocates an access AIP (eg, AIP1) to the service application. The controller maintains the identity of the service application A, the mapping relationship between EIP1 and AIP1 (as shown in Table 1 below), and delivers the mapping relationship to each POP synchronously. The controller sends the mapping relationship between EIP1 and AIP1 to the DNS server, and the DNS server is used to synchronously maintain the mapping relationship between the domain name, AIP and EIP. The mapping relationship between each AIP and EIP is shown in Table 1 below.
表1Table 1
业务应用Abusiness application A EIP1EIP1 AIP1AIP1
业务应用Bbusiness application B EIP2EIP2 AIP2AIP2
业务应用Cbusiness application C EIP3EIP3 AIP3AIP3
传统方法中的GA方案包括两个阶段,第一阶段:终端接入到POP点阶段。第二阶段:POP点通过IP专线网络访问云区域(region)阶段。The GA scheme in the traditional method includes two stages, the first stage: the stage of terminal access to the POP point. The second stage: the POP point accesses the cloud region (region) stage through the IP private line network.
第一阶段:首先,终端向域名系统(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的映射关系还原的。Stage 1: First, the terminal sends the domain name of the resource to be accessed to the domain name system (DNS) server. Then, the DNS server feeds back the AIP (eg, AIP2) that has a mapping relationship with the domain name to the terminal. For example, the number of POP points configured with AIP2 is 3. Afterwards, the terminal accesses the "nearest route" POP point (such as POP2) through the underlay. The terminal sends a data packet to the POP2, the source address in the packet header of the data packet is the IP address of the terminal (such as IPA), and the destination address is AIP2. Finally, POP2 modifies the destination address in the original data packet from the terminal to EIP2 through the mapping relationship shown in Table 1 above (AIP2 and EIP2 have a mapping relationship) to obtain the target data packet. The source address of the target data packet is IPA, The destination address is EIP2. POP2 sends the target data packet to the IP private line network. It should be noted that the real destination address (EIP2) in the original data packet is lost, and the lost EIP2 is restored by the POP2 node according to the mapping relationship between EIP1 and AIP1.
第二阶段:POP点与IP专线网络互联,POP点将来自终端的数据流引入到IP专线网络,IP专线网络将数据流转发到云region,从而实现终端加速访问云region。The second stage: The POP point is interconnected with the IP private line network. The POP point introduces the data flow from the terminal to the IP private line network, and the IP private line network forwards the data flow to the cloud region, so that the terminal can accelerate the access to the cloud region.
传统方法中的GA网络加速服务的方法至少具有以下几个问题。The GA network acceleration service method in the traditional method has at least the following problems.
1、GA加速服务依赖于云厂商的投资建设情况。目前,全球范围内POP点的数量只有几十个,云厂商在全球范围内某些地区(或某些国家区域)没有投资建设POP点,全球覆盖度不够,也就导致这些没有建设POP点的地区内的终端无法接入到IP专线网络,不能享受云厂商提供的网络加速服务。1. GA acceleration service depends on the investment and construction of cloud vendors. At present, there are only dozens of POP points in the world. Cloud manufacturers have not invested in building POP points in some regions (or certain countries and regions) around the world, and the global coverage is not enough, which leads to the lack of POP points. Terminals in the region cannot access the IP private line network and cannot enjoy the network acceleration services provided by cloud vendors.
2、一个业务应用的EIP就会耗费一个AIP地址映射,从而导致耗费大量的AIP。并且将任播IP地址加入路由网络,可以使用路由协议(如边界网关协议(border gateway protocol,BGP)来完成,而一个AIP又需要在多个POP点BGP多源向Internet发布,跨 运营商分配AIP困难,即不同区域(如中国区域和印度区域)分配相同AIP的运营商不同,不同的运营商发布相同的AIP工程部署困难。2. The EIP of a service application consumes one AIP address mapping, which leads to the consumption of a large amount of AIP. And adding anycast IP addresses to the routing network can be done by using routing protocols (such as border gateway protocol (BGP), and an AIP needs to be published to the Internet at multiple POP points BGP multi-source, and distributed across operators AIP is difficult, that is, different regions (such as China and India) have different operators who allocate the same AIP, and it is difficult for different operators to issue the same AIP project.
3、仅支持终端访问region的场景。3. Only supports the scenario where the terminal accesses the region.
鉴于上述问题,本申请实施例提供了一种数据转发方法,该方法基于underlay上的叠加overlay网络,通过叠加overlay网络实现数据转发。overlay网络包括中心控制器和部署于各种部署环境中的大量的加速节点,如大量的转发节点灵活部署于全球范围内的边缘云,POP点,云region,OLT和MEC设备上,从而使得该overlay网络可以真正覆盖全球区域。本申请中的overlay网络用于实现业务应用数据的转发,overlay也称为应用传送网络(application delivery network,ADN)。In view of the above problems, an embodiment of the present application provides a data forwarding method, which is based on an overlay overlay network on an underlay, and implements data forwarding through an overlay overlay network. The overlay network includes a central controller and a large number of acceleration nodes deployed in various deployment environments. For example, a large number of forwarding nodes are flexibly deployed on edge clouds, POP points, cloud regions, OLT and MEC devices around the world. The overlay network can truly cover the global area. The overlay network in this application is used to realize the forwarding of service application data, and the overlay is also called an application delivery network (application delivery network, ADN).
请参阅图2所示,图2为一种通信系统的场景示意图,通信系统包括中心控制器201和多个加速节点202。中心控制器201用于管控所有加速节点202,以多个加速节点202中的第一加速节点为例,对第一加速节点对来自终端的数据进行转发进行说明。第一加速节点接收中心控制器201发送路由表项,路由表项作为第一加速节点对数据进行转发的基础。其中,第一加速节点接收来自第一终端的数据请求,数据请求用于访问目的端;首先,第一加速节点获取目标路径,目标路径来自于中心控制器201生成的路由表项;然后,第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。Please refer to FIG. 2 , which is a schematic diagram of a scenario of a communication system. The communication system includes a central controller 201 and a plurality of acceleration nodes 202 . The central controller 201 is used to manage and control all the acceleration nodes 202. Taking the first acceleration node among the multiple acceleration nodes 202 as an example, the forwarding of the data from the terminal by the first acceleration node will be described. The first acceleration node receives the routing table entry sent by the central controller 201, and the routing table entry serves as the basis for the first acceleration node to forward data. The first acceleration node receives a data request from the first terminal, and the data request is used to access the destination; first, the first acceleration node obtains the target path, and the target path comes from the routing table entry generated by the central controller 201; An acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, and the second acceleration node is used for forwarding the data request to the destination.
本申请实施例中,overlay网络中灵活部署了大量的加速节点,所有加速节点中的任意一个加速节点都能够作为终端的接入加速节点,从而使得全球范围内的终端都能够就近接入到一个加速节点上。第一加速节点获取到第一终端的数据请求后,第一加速节点按照目标路径将来自终端的数据请求向overlay网络发送,直到数据请求传递到目标路径的目的加速节点(第二加速节点),第二加速节点再将数据请求传递到目的端,从而能够真正实现业务应用在全球范围内的用户都能享受到网络加速服务。并且相对于传统方法中的GA方案,所有加速节点中的任意一个加速节点都能够作为终端接入到overlay网络的接入节点,而且每个加速节点又可以作为目标路径中的一个传输节点,每个加速节点提供的服务被所有目的端共享,不需要像传统方法中的GA,一个业务应用就要耗费一个AIP地址映射,工程部署易于实现。In the embodiment of the present application, a large number of acceleration nodes are flexibly deployed in the overlay network, and any acceleration node among all the acceleration nodes can be used as the access acceleration node of the terminal, so that terminals around the world can access a nearby acceleration node. on the acceleration node. After the first acceleration node obtains the data request of the first terminal, the first acceleration node sends the data request from the terminal to the overlay network according to the target path, until the data request is transmitted to the destination acceleration node (second acceleration node) of the target path, The second acceleration node then transmits the data request to the destination end, so that users of business applications worldwide can truly enjoy the network acceleration service. And compared with the GA scheme in the traditional method, any acceleration node among all the acceleration nodes can be used as a terminal to access the access node of the overlay network, and each acceleration node can be used as a transmission node in the target path. The services provided by each acceleration node are shared by all destinations, and there is no need for GA in the traditional method. A business application needs to spend one AIP address mapping, and the project deployment is easy to implement.
为了更好的理解本申请,首先对本申请中涉及的词语进行示例性说明。For a better understanding of the present application, firstly, the words involved in the present application will be exemplified.
中心控制器,用于管控所有加速节点,并获取加速节点上报的链路状态,根据加速节点间的链路状态生成源路由表,还用于生成位置路由表,并将源路由表和位置路由表下发给各加速节点。中心控制器可以是部署于云侧的虚拟服务器。The central controller is used to control all the acceleration nodes, obtain the link status reported by the acceleration nodes, generate the source routing table according to the link status between the acceleration nodes, and also generate the location routing table, and connect the source routing table and the location routing table. The table is delivered to each acceleration node. The central controller can be a virtual server deployed on the cloud side.
加速节点(accelerate node),用于实现数据转发功能及链路状态测量功能。加速节点部署于部署环境提供的虚拟机或容器中。加速节点包括本地控制器和至少一个转发节点(forward node或compass)。其中,本地控制器用于控制compass进行加速节点间的链路状态测量(或者也称为“QoS测量”)。compass主要承担数据面的流量转发功能。compass可以是通过软件实现转发功能的转发模块。Accelerate node is used to realize data forwarding function and link state measurement function. Acceleration nodes are deployed in virtual machines or containers provided by the deployment environment. The acceleration node includes a local controller and at least one forward node (forward node or compass). The local controller is used to control the compass to perform link state measurement (or also referred to as "QoS measurement") between accelerated nodes. Compass is mainly responsible for the traffic forwarding function of the data plane. The compass may be a forwarding module that implements the forwarding function through software.
加速节点的部署环境,用于为加速节点分配“主机”及公网IP地址。部署环境包括但 不限定于边缘云、光线路终端(optical line terminal,OLT)、多接入边缘计算(multi-access edge computing,MEC)、POP、云区域(region)、内容分发网络(content delivery network,CDN)等。可以理解的是,部署环境仅需要提供虚拟机(或容器)和公网IP地址,即可部署加速节点,此要求不苛刻、不定制。例如,第三方CDN、边缘云,OLT或MEC设备均比较容易提供虚拟机(或容器)和公网IP地址,从而将加速节点寄生到部署环境。由于加速节点部署上的灵活性,从而保证加速节点可以在全球范围内无处不在的寄生,overlay网络能够更广泛的覆盖全球区域。再如,加速节点的灵活部署也体现在加速节点能够部署在云region,加速节点在云region部署时,云region只需要为加速节点提供虚拟机(或容器)和公网IP即可满足部署条件。因此加速节点的部署可以满足伙伴云、第三方云、伙伴云、混合云等所有云类型,加速的应用业务范围更加广泛。例如,“视频业务提供商A”可以直接将加速节点部署到“视频业务提供商A”建设的第三方边缘云,为“视频业务提供商A”的业务提供加速服务。The deployment environment of the acceleration node, which is used to assign a "host" and a public IP address to the acceleration node. Deployment environments include but are not limited to edge cloud, optical line terminal (OLT), multi-access edge computing (MEC), POP, cloud region (region), content delivery network (content delivery network) network, CDN), etc. It can be understood that the deployment environment only needs to provide a virtual machine (or container) and a public network IP address, and then the acceleration node can be deployed. This requirement is not harsh or customized. For example, third-party CDNs, edge clouds, OLT or MEC devices can easily provide virtual machines (or containers) and public IP addresses, so that acceleration nodes can be parasitized into the deployment environment. Due to the flexibility in the deployment of acceleration nodes, it is ensured that the acceleration nodes can be parasitized everywhere in the world, and the overlay network can cover a wider range of global areas. For another example, the flexible deployment of acceleration nodes is also reflected in the fact that the acceleration nodes can be deployed in the cloud region. When the acceleration nodes are deployed in the cloud region, the cloud region only needs to provide virtual machines (or containers) and public network IPs for the acceleration nodes to meet the deployment conditions. . Therefore, the deployment of acceleration nodes can meet all cloud types such as partner cloud, third-party cloud, partner cloud, and hybrid cloud, and the application business scope of acceleration is wider. For example, "video service provider A" can directly deploy acceleration nodes to the third-party edge cloud built by "video service provider A" to provide acceleration services for "video service provider A"'s services.
另外,通信系统中的多个部署环境可以属于不同的提供商。提供商可以是云服务提供商,应用服务提供商(如“即时通信业务”提供商A),或电信运营商(如移动,联通,电信)。中心控制器的部署环境属于第一云服务提供商(如云服务提供商A),多个加速节点的部署环境可以属于第二云服务提供商(如云服务提供商B、云服务提供商C)、应用服务提供商或电信运营商。第二云服务提供商、应用服务提供商或电信运营商在自己的硬件设施之上提供了加速节点的部署环境。这里的部署环境也即可供第一云服务提供商申请计算资源(例如,虚拟机、容器)的虚拟环境,第一云服务提供商可以根据需求在第二云服务提供商、应用服务提供商或电信运营商提供的部署环境上申请计算资源并在计算资源上运行加速节点。加速节点运行过程中,受控于中心控制器,也即受控于第一云服务提供商。Additionally, multiple deployment environments in a communication system may belong to different providers. The provider can be a cloud service provider, an application service provider (such as "instant messaging service" provider A), or a telecom operator (such as China Mobile, China Unicom, and Telecom). The deployment environment of the central controller belongs to the first cloud service provider (such as cloud service provider A), and the deployment environment of multiple acceleration nodes may belong to the second cloud service provider (such as cloud service provider B, cloud service provider C) ), application service provider or telecom operator. The second cloud service provider, application service provider or telecom operator provides a deployment environment of the acceleration node on its own hardware facilities. The deployment environment here is a virtual environment for the first cloud service provider to apply for computing resources (eg, virtual machines, containers). Or apply for computing resources on the deployment environment provided by telecom operators and run acceleration nodes on the computing resources. During the operation of the acceleration node, it is controlled by the central controller, that is, controlled by the first cloud service provider.
业务应用,overlay网络提供的业务流量转发服务的使用方。例如,包括但不限于即时通信(real time communication,RTC)业务,云视频业务,游戏业务,视频业务等应用平台。Service application, the user of the service traffic forwarding service provided by the overlay network. For example, including but not limited to real time communication (real time communication, RTC) service, cloud video service, game service, video service and other application platforms.
终端,包括但不限于服务器终端,手机(mobile phone)、平板电脑(Pad)、个人计算机(personal computer,PC)、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的终端、车载终端、无人驾驶(self driving)中的终端、辅助驾驶中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smart home)中的终端等等。Terminals, including but not limited to server terminals, mobile phone (mobile phone), tablet computer (Pad), personal computer (personal computer, PC), virtual reality (virtual reality, VR) terminal, augmented reality (augmented reality, AR) terminal, Terminals in industrial control, in-vehicle terminals, terminals in self-driving, terminals in assisted driving, terminals in remote medical, terminals in smart grid, Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
目的端,可以是云区域,或者,可以是第二终端或服务器。The destination end may be a cloud area, or may be a second terminal or a server.
对源路由表和位置路由表进行示例性说明。The source routing table and the location routing table are exemplified.
源路由表,用于指示从源加速节点到目的加速节点的最优路径。其中,“源加速节点”和“目的加速节点”都是上述overlay网络中的加速节点,“源加速节点”和“目的加速节点”仅是按照数据的传递方向将加速节点分为“源加速节点”和“目的加速节点”。例如,从终端接收数据的加速节点为“源加速节点”。将数据发送到目的端的加速节点为“目的加速节点”。源加速节点可以取遍所有转发节点中的每个加速节点,目的加速节点可以 取遍所有转发节点中的每个加速节点。The source routing table is used to indicate the optimal path from the source acceleration node to the destination acceleration node. Among them, "source acceleration node" and "destination acceleration node" are both acceleration nodes in the above overlay network. " and "Destination Acceleration Node". For example, an acceleration node that receives data from a terminal is a "source acceleration node". The acceleration node that sends data to the destination is the "destination acceleration node". The source acceleration node can traverse every acceleration node in all forwarding nodes, and the destination acceleration node can traverse every acceleration node in all forwarding nodes.
位置路由表,包括第一IP地址与第二加速节点的对应关系。其中,第一IP地址是用户(如业务应用)预先向中心控制器申请加速服务的目的端的IP地址。第二加速节点是中心控制器根据目的端的IP地址确定的转发节点。第二加速节点是所有加速节点中距离目的端最近的加速节点。例如,当目的端是云区域时,第二加速节点可以是该云区域中部署的加速节点。再如,当目的端是终端(或服务器)时,中心控制器查询IP地址库,确定终端(或服务器)的物理位置,中心控制器确定距离终端(或服务器)物理位置最近的加速节点(即第二加速节点)。需要说明的是,为了区分源加速节点和目的加速节点,将多个源加速节点中的任意一个源加速节点称为“第一加速节点”,多个目的加速节点中的任意一个目的加速节点为“第二加速节点”。The location routing table includes the correspondence between the first IP address and the second acceleration node. Wherein, the first IP address is the IP address of the destination end where the user (such as a business application) applies to the central controller in advance for the acceleration service. The second acceleration node is a forwarding node determined by the central controller according to the IP address of the destination end. The second acceleration node is the acceleration node closest to the destination among all the acceleration nodes. For example, when the destination is a cloud area, the second acceleration node may be an acceleration node deployed in the cloud area. For another example, when the destination is a terminal (or server), the central controller queries the IP address database to determine the physical location of the terminal (or server), and the central controller determines the acceleration node (ie, the closest acceleration node to the physical location of the terminal (or server)). second acceleration node). It should be noted that, in order to distinguish the source acceleration node and the destination acceleration node, any one of the multiple source acceleration nodes is called the "first acceleration node", and any one of the multiple destination acceleration nodes is called the "first acceleration node". "Second Acceleration Node".
链路状态,加速节点对其邻居加速节点进行服务质量(quality of service,QoS)测量,得到链路状态信息。链路状态信息包括加速节点到每个邻居加速节点的链路状态。可以理解的是,链路状态可以用QoS值来描述,其中,QoS的性能指标包括丢包率,时延及抖动等。示例性的,加速节点对每个邻居加速节点间的链路进行QoS测量时,加速节点会向其邻居加速节点连续发送q个探测包(q为大于或者等2的整数),加速节点根据这q个探测包的回复情况来计算传输时延、抖动和丢包率等。可选地,加速节点将传输时延、抖动和丢包率取进行加权平均,用加权平均后的值来描述加速节点与该邻居加速节点的链路状态。本申请中,加速节点对其邻居加速节点的“链路状态”的测量也可以称为“QoS测量”。Link status, the acceleration node measures the quality of service (QoS) of its neighbor acceleration nodes to obtain link status information. The link state information includes the link state of the acceleration node to each neighbor acceleration node. It can be understood that the link state can be described by a QoS value, wherein the performance indicators of the QoS include packet loss rate, delay and jitter, and the like. Exemplarily, when the acceleration node performs QoS measurement on the link between each neighbor acceleration node, the acceleration node will continuously send q probe packets (q is an integer greater than or equal to 2) to its neighbor acceleration node. The replies of the q probe packets are used to calculate the transmission delay, jitter, and packet loss rate. Optionally, the acceleration node performs a weighted average of transmission delay, jitter and packet loss rate, and uses the weighted average value to describe the link state between the acceleration node and the neighbor acceleration node. In this application, the measurement of the "link status" of the acceleration node of its neighbor acceleration nodes may also be referred to as "QoS measurement".
对叠加(overlay)网络和底层承载(underlay)网络的说明。A description of overlay networks and underlay networks.
underlay网络是指物理网络,由物理设备和物理链路组成。例如,常见的物理设备有交换机、路由器和防火墙等,这些物理设备通过特定的链路连接起来形成了一个传统的物理网络。The underlay network refers to the physical network, which consists of physical devices and physical links. For example, common physical devices include switches, routers, and firewalls. These physical devices are connected through specific links to form a traditional physical network.
overlay网络是一种可以建立underlay之上的计算机网络。overlay网络中的节点(即转发节点)可以被认为是通过虚拟或逻辑链接相连,其中每个链接对应一条路径(path)。请参阅图3进行理解,图3中H、I、J、K四个节点为overlay网络中的逻辑节点。示例性的,在上层overlay网络中,H、J两节点之间的直连通路,即在应用层层面只有一跳,而映射到下层underlay网络中,可能涉及多个中继转发的路由设备,实际上是多跳路由。但在基于overlay网络的应用开发时,不需要考虑下层underlay网络中各物理节点的连接情况,只需要考虑部署的overlay中节点之间的互联关系。overlay网络中节点通过封装映射到underlay网络中节点的源IP和目的IP,实现在overlay层的数据转发。An overlay network is a computer network that can be built on top of an underlay. Nodes (ie, forwarding nodes) in an overlay network can be considered to be connected by virtual or logical links, where each link corresponds to a path. Please refer to FIG. 3 for understanding. The four nodes H, I, J, and K in FIG. 3 are logical nodes in the overlay network. Exemplarily, in the upper-layer overlay network, the direct connection between the H and J nodes, that is, there is only one hop at the application layer level, is mapped to the lower-layer underlay network, which may involve multiple relay forwarding routing devices, It is actually multi-hop routing. However, when developing applications based on the overlay network, it is not necessary to consider the connection of each physical node in the underlying underlay network, but only the interconnection between nodes in the deployed overlay. Nodes in the overlay network implement data forwarding at the overlay layer by encapsulating the source IP and destination IP mapped to the nodes in the underlay network.
全互联(full-mash),是指N个节点中两两节点之间互联的一种组网模式。Full-mash refers to a networking mode in which two nodes among N nodes are interconnected.
下面通过具体的实施例对本申请中数据转发的方法进行示例性说明。请参阅图4所示,图4为本申请中一种通信系统的架构示意图。The data forwarding method in the present application will be exemplarily described below through specific embodiments. Please refer to FIG. 4 , which is a schematic structural diagram of a communication system in the present application.
首先,对本申请中在部署环境中部署加速节点的过程进行示例说明。下述S30-S33中的运维人员为第一云提供商的运维人员。First, the process of deploying an acceleration node in a deployment environment in the present application is described with an example. The operation and maintenance personnel in the following S30-S33 are the operation and maintenance personnel of the first cloud provider.
S30、运维人员的PC机响应于运维人员的第一操作,向边缘云、POP、云Region等部 署环境申请分配虚拟机(或容器)和公网IP。其中,PC机中安装有对部署环境申请虚拟机(或容器)和公网IP的操作界面。S30, the PC of the operation and maintenance personnel, in response to the first operation of the operation and maintenance personnel, applies to the deployment environment such as edge cloud, POP, cloud region, etc. to allocate a virtual machine (or container) and a public network IP. Wherein, an operation interface for applying for a virtual machine (or container) and a public network IP for the deployment environment is installed in the PC.
S31、运维人员的PC机响应于运维人员的第二操作,登录部署中心的账号,利用部署中心向虚拟机(或容器)自动上传、并自动批量安装加速节点软件。其中,部署中心是用于自动化批量部署加速节点的云中心工具。S31. In response to the second operation of the operation and maintenance personnel, the PC of the operation and maintenance personnel logs in to the account of the deployment center, uses the deployment center to automatically upload to the virtual machine (or container), and automatically installs acceleration node software in batches. Among them, the deployment center is a cloud center tool for automated batch deployment of accelerated nodes.
S32、加速节点安装完成后,主动向中心控制器发起握手鉴权。S32. After the installation of the acceleration node is completed, actively initiate handshake authentication to the central controller.
S33、中心控制器与转发节点握手通信,中心控制器接收每个转发节点发送的注册请求。该注册请求包括但不限于转发节点的部署环境的ID,转发节点的公网IP地址,转发节点部署环境的物理位置等。中心控制器对转发节点进行注册的过程可以理解为中心控制器存储转发节点的相关信息的过程,中心控制器获取每个转发节点的相关信息,进一步可以对每个转发节点进行管理。S33: The central controller handshakes and communicates with the forwarding node, and the central controller receives the registration request sent by each forwarding node. The registration request includes but is not limited to the ID of the deployment environment of the forwarding node, the public IP address of the forwarding node, the physical location of the deployment environment of the forwarding node, and the like. The process of registering the forwarding node by the central controller can be understood as a process of storing the relevant information of the forwarding node by the central controller. The central controller obtains the relevant information of each forwarding node, and can further manage each forwarding node.
上述步骤S30-步骤S33为加速节点的部署过程,如果转发节点已经注册到中心控制器,且已注册的加速节点没有被删除,或没有增加其他加速节点的情况下,不必每次都执行步骤S30-步骤S33。步骤S30-步骤S33为可选步骤,而直接执行步骤501。The above-mentioned steps S30 to S33 are the deployment process of the acceleration node. If the forwarding node has been registered to the central controller, and the registered acceleration node has not been deleted, or no other acceleration node has been added, it is not necessary to perform step S30 every time. - Step S33. Steps S30 to S33 are optional steps, and step 501 is directly executed.
然后,请参阅图5所示。对本申请中实现数据转发的过程进行说明。Then, see Figure 5. The process of realizing data forwarding in this application is described.
步骤501、中心控制器获取加速节点与邻居加速节点间的链路状态信息。Step 501: The central controller acquires link state information between the acceleration node and the neighboring acceleration nodes.
中心控制器接收每个加速节点发送的链路状态信息,链路状态信息包括加速节点与每个邻居加速节点的链路状态。The central controller receives the link state information sent by each acceleration node, and the link state information includes the link state between the acceleration node and each neighbor acceleration node.
示例性的,中心控制器向每个加速节点中的本地控制器发送测量任务。所有加速节点之间全互联(full-mash),加速节点对其邻居加速节点间的链路进行QoS测量。每个加速节点都会采集到链路状态信息,该链路状态信息包括该加速节点分别到邻居加速节点的链路状态(用QoS值描述)和该链路状态对应的链路标识(例如,加速节点A→加速节点B)。其中,加速节点的邻域加速节点是指与该加速节点相连的节点。以所有加速节点全互联为例,任意一个加速节点的邻居加速节点是指所有加速节点中除了该转发节点之外的其他所有加速节点。可选地,加速节点中的compass周期性(如秒级)进行QoS测量,采集链路状态信息(用QoS值表示),并将采集的链路状态存储在本地控制器。本地控制器周期性(如分钟级)向中心控制器上报链路状态信息。Exemplarily, the central controller sends measurement tasks to the local controllers in each acceleration node. All acceleration nodes are fully interconnected (full-mash), and the acceleration node performs QoS measurement on the links between its neighbor acceleration nodes. Each acceleration node will collect link status information, the link status information includes the link status (described by QoS value) from the acceleration node to neighboring acceleration nodes and the link identifier corresponding to the link status (for example, the acceleration node Node A → Accelerate Node B). The acceleration node in the neighborhood of the acceleration node refers to a node connected to the acceleration node. Taking the full interconnection of all acceleration nodes as an example, the neighbor acceleration nodes of any acceleration node refer to all other acceleration nodes except the forwarding node among all the acceleration nodes. Optionally, the compass in the acceleration node performs QoS measurement periodically (for example, in seconds), collects link state information (represented by a QoS value), and stores the collected link state in the local controller. The local controller reports link status information to the central controller periodically (for example, in minutes).
步骤502、中心控制器根据链路状态信息生成源路由表。其中,源路由表用于指示多个加速节点中的路径。路径为从源加速节点到目的加速节点间路径。Step 502: The central controller generates a source routing table according to the link state information. The source routing table is used to indicate paths in multiple acceleration nodes. The path is the path from the source acceleration node to the destination acceleration node.
S11、中心控制器根据链路状态信息和所有加速节点的拓扑结构在所有加速节点中选择从源加速节点到目的加速节点的路径。S11. The central controller selects a path from the source acceleration node to the destination acceleration node among all the acceleration nodes according to the link state information and the topology structures of all the acceleration nodes.
中心控制器接收每个加速节点上报的链路状态信息。所有加速节点的拓扑结构以全互联为例,中心控制器确定多个路径。例如,以加速节点A为源转发节点,中心控制器计算从加速节点A到其他的加速节点(如加速节点B,加速节点C)的路径。以加速节点B为源转发节点,中心控制器计算从加速节点B到其他的加速节点(如加速节点A,加速节点C)的路径。The central controller receives the link status information reported by each acceleration node. The topology of all acceleration nodes is fully interconnected as an example, and the central controller determines multiple paths. For example, taking the acceleration node A as the source forwarding node, the central controller calculates the paths from the acceleration node A to other acceleration nodes (eg, the acceleration node B and the acceleration node C). Taking the acceleration node B as the source forwarding node, the central controller calculates the path from the acceleration node B to other acceleration nodes (eg, the acceleration node A and the acceleration node C).
S12、中心控制器基于路径生成每个加速节点对应的源路由表。S12. The central controller generates a source routing table corresponding to each acceleration node based on the path.
源路由表中包括路径所经历的加速节点的列表及下一跳加速节点,每个加速节点的下一跳加速节点可能是不同的,由此,每个转发节点需要对应不同的源路由表。The source routing table includes a list of acceleration nodes experienced by the path and next-hop acceleration nodes. The next-hop acceleration nodes of each acceleration node may be different. Therefore, each forwarding node needs to correspond to a different source routing table.
步骤503、中心控制器向每个加速节点下发该加速节点对应的源路由表。Step 503: The central controller delivers the source routing table corresponding to the acceleration node to each acceleration node.
加速节点以第一加速节点和第二加速节点为例。例如,中心控制器向第一加速节点发送源路由表A。中心控制器向第二加速节点发送源路由表B。The acceleration node takes the first acceleration node and the second acceleration node as examples. For example, the central controller sends the source routing table A to the first acceleration node. The central controller sends the source routing table B to the second acceleration node.
步骤504、中心控制器获取用户申请网络加速服务的目的端的第一IP地址。Step 504: The central controller obtains the first IP address of the destination end of the user applying for the network acceleration service.
例如,中心控制器接收申请网络加速服务的请求,该请求携带业务域名。中心控制器向DNS服务器发送该业务域名,DNS服务器用于解析该业务域名,得到云region的IP信息(如EIP1),该第一IP地址是EIP1。中心控制器从DNS服务器获取到云region的IP信息(即EIP1)。再如,中该请求携带终端(或服务器)的IP地址(如IP1),该第一IP地址是IP1。For example, the central controller receives a request for applying for a network acceleration service, where the request carries a service domain name. The central controller sends the service domain name to the DNS server, and the DNS server is used to resolve the service domain name to obtain IP information (eg, EIP1 ) of the cloud region, and the first IP address is EIP1 . The central controller obtains the IP information (ie EIP1) of the cloud region from the DNS server. For another example, where the request carries the IP address (eg IP1) of the terminal (or server), the first IP address is IP1.
步骤505、中心控制器生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系。Step 505: The central controller generates a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node.
首先,中心控制器根据目的端的第一IP地址确定第二加速节点。当目的端是云region,即第一IP地址是云region的EIP时,中心控制器确定部署于该云region中的加速节点(如第二加速节点)。再如,当目的端是终端(或服务器),即该第一IP地址是终端(或服务器)的IP地址时,中心控制器查找IP地址库,确定目的端的物理位置,中心控制器确定距离该物理位置最近的第二加速节点。然后,中心控制器建立第一IP地址与第二加速节点的对应关系。最后,中心控制器根据对应关系生成位置路由表。First, the central controller determines the second acceleration node according to the first IP address of the destination. When the destination is the cloud region, that is, the first IP address is the EIP of the cloud region, the central controller determines the acceleration node (eg, the second acceleration node) deployed in the cloud region. Another example, when the destination is a terminal (or server), that is, when the first IP address is the IP address of the terminal (or server), the central controller searches the IP address library to determine the physical location of the destination, and the central controller determines the distance from the The second acceleration node with the closest physical location. Then, the central controller establishes the correspondence between the first IP address and the second acceleration node. Finally, the central controller generates a location routing table according to the corresponding relationship.
步骤506、中心控制器向所有加速节点发送位置路由表,所有加速节点包括第一加速节点;相应的,第一加速节点接收中心控制器发送的源路由表和位置路由表。Step 506: The central controller sends the location routing table to all the acceleration nodes, and all the acceleration nodes include the first acceleration node; correspondingly, the first acceleration node receives the source routing table and the location routing table sent by the central controller.
中心控制器调用南向数据接口将位置路由表下发到各加速节点的本地控制器,本地控制器将源路由表和位置路由表下发到Compass。应理解,中心控制器向每个加速节点发送每个加速节点对应的源路由表。而向所有的加速节点发送相同的位置路由表。例如,中心控制器向第一加速节点发送源路由表A和位置路由表。The central controller calls the southbound data interface to deliver the location routing table to the local controllers of each acceleration node, and the local controller delivers the source routing table and the location routing table to Compass. It should be understood that the central controller sends the source routing table corresponding to each acceleration node to each acceleration node. Instead, send the same location routing table to all acceleration nodes. For example, the central controller sends the source routing table A and the location routing table to the first acceleration node.
为了方便说明,以所有加速节点中的第一加速节点转发数据的过程为例进行说明,第一加速节点是所有加速节点中的任意一个加速节点。For the convenience of description, the process of forwarding data by the first acceleration node among all the acceleration nodes is taken as an example for description, and the first acceleration node is any acceleration node among all the acceleration nodes.
步骤507、第一加速节点接收来自第一终端的数据请求。Step 507: The first acceleration node receives the data request from the first terminal.
第一种实现方式,第一终端通过软件开发工具包(software development kit,SDK)隧道接入到第一加速节点,即第一加速节点通过SDK隧道接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据。In the first implementation manner, the first terminal accesses the first acceleration node through a software development kit (SDK) tunnel, that is, the first acceleration node receives the SDK package data through the SDK tunnel, and the SDK package data is a request for data Encapsulated data.
示例性的,请参阅图6所示,图6为第一终端接入到第一加速节点的场景示意图。第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址。第一终端通过SDK插件访问中心控制器,即中心中控器接收第一终端发送的请求,该请求携带第一终端的IP地址。中心控制器根据第一终端的IP地址查询IP地址库,确定第一终端的物理位置,并根据第一终端的物理位置确定距离该物理位置最近的加速节点(即第一加速节点),中心控制器将第一加速节点的IP地址(如IP2)反馈给第一终端。Exemplarily, please refer to FIG. 6 , which is a schematic diagram of a scenario in which the first terminal accesses the first acceleration node. An SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in. The first terminal accesses the central controller through the SDK plug-in, that is, the central central controller receives a request sent by the first terminal, where the request carries the IP address of the first terminal. The central controller queries the IP address library according to the IP address of the first terminal, determines the physical location of the first terminal, and determines the acceleration node (ie, the first acceleration node) closest to the physical location according to the physical location of the first terminal, and the central controller controls the The controller feeds back the IP address (eg IP2) of the first acceleration node to the first terminal.
例如,若第一终端访问的目的端是云region(IP地址是EIP1),则第一终端将待发送的原始数据(也称为“数据请求”)向第一加速节点发送。其中,该原始数据的目的地址是EIP1,原始数据的源地址是IPA(即第一终端的IP地址)。第一终端对数据请求进行SDK封装,得到SDK封装数据。SDK封装数据的头部(或称为“包头”)中的目的地址是第一加速节点的IP地址(如IP2),头部中的源地址是第一终端的IP地址(如IPA)。For example, if the destination end accessed by the first terminal is a cloud region (IP address is EIP1), the first terminal sends the raw data to be sent (also referred to as a "data request") to the first acceleration node. The destination address of the original data is EIP1, and the source address of the original data is IPA (ie, the IP address of the first terminal). The first terminal performs SDK encapsulation on the data request to obtain SDK encapsulation data. The destination address in the header (or "packet header") of the SDK encapsulated data is the IP address (eg IP2) of the first acceleration node, and the source address in the header is the IP address (eg IPA) of the first terminal.
本实施例中,终端中配置有SDK插件,终端可以就近接入到一个加速节点,overlay网络为第一终端的数据请求进行加速转发,应用场景广泛。In this embodiment, an SDK plug-in is configured in the terminal, the terminal can access an acceleration node nearby, and the overlay network performs accelerated forwarding for the data request of the first terminal, and the application scenarios are wide.
第二种实现方式中,中心控制器和第一网络设备协同将第一终端的数据请求引导至第一加速节点。In the second implementation manner, the central controller and the first network device cooperate to guide the data request of the first terminal to the first acceleration node.
请参阅图7所示,图7为中心控制器和第一网络设备协同将数据请求引导至第一加速节点的场景示意图。第一加速节点是部署于第一网络设备中的加速节点。例如,第一网络设备可以是MEC或OLT。Please refer to FIG. 7 , which is a schematic diagram of a scenario in which the central controller and the first network device cooperate to guide the data request to the first acceleration node. The first acceleration node is an acceleration node deployed in the first network device. For example, the first network device may be an MEC or an OLT.
首先,中心控制器向网络管理系统发送引流信息,网络管理系统用于管理网元设备(如MEC或OLT等)。引流信息包括目的端的IP地址(即第一IP地址)。网络管理设备根据引流信息生成访问控制列表(access control lists,ACL)策略指令,并向第一网络设备发送ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点。First, the central controller sends traffic diversion information to the network management system, and the network management system is used to manage network element equipment (such as MEC or OLT, etc.). The traffic diversion information includes the IP address (ie, the first IP address) of the destination end. The network management device generates an access control list (access control list, ACL) policy instruction according to the traffic diversion information, and sends the ACL policy instruction to the first network device, where the ACL policy instruction is used to trigger the first network device to assign the destination address to the first IP address The data is directed to the first acceleration node.
然后,第一网络设备接收网络管理设备发送的ACL策略指令后,根据ACL策略指令过滤接收到的数据。当第一网络设备接收到目的地址是第一IP地址的数据请求时,第一网络设备将目的地址是第一IP地址的数据请求引向第一加速节点。第一加速节点接收第一网络管理设备通过ACL策略引导的数据请求。Then, after receiving the ACL policy instruction sent by the network management device, the first network device filters the received data according to the ACL policy instruction. When the first network device receives the data request whose destination address is the first IP address, the first network device directs the data request whose destination address is the first IP address to the first acceleration node. The first acceleration node receives the data request guided by the first network management device through the ACL policy.
本实施例中,适用于终端通过第一网络设备(如MEC或OLT)接入到网络的场景(如家庭带宽接入网络的场景)。第一网络设备既作为第一终端的网络接入设备,第一网络设备中部署的第一加速节点又作为overlay网络中的源加速节点,终端的overlay网络接入点丰富。This embodiment is applicable to a scenario where a terminal accesses a network through a first network device (eg, MEC or OLT) (eg, a scenario where a home bandwidth accesses the network). The first network device not only serves as a network access device of the first terminal, the first acceleration node deployed in the first network device also serves as a source acceleration node in the overlay network, and the overlay network access points of the terminal are abundant.
第三种实现方式中,第一加速节点部署于第二网络设备,第二网络设备是局域网内的主机中,第一终端是局域网中的终端设备。第二网络设备为第一加速节点提供私网AIP。在局域网内,第一加速节点通过局域网接收来自终端设备的数据请求。In a third implementation manner, the first acceleration node is deployed on a second network device, the second network device is a host in a local area network, and the first terminal is a terminal device in the local area network. The second network device provides the private network AIP for the first acceleration node. In the local area network, the first acceleration node receives the data request from the terminal device through the local area network.
本实施例中,加速节点嵌入部署到局域网(如企业内网)内,并且第二网络设备为第一加速节点提供私网AIP,从而实现局域网中的终端设备可以通过加速节点接入到overlay网络。overlay网络为局域网中的终端设备提供网络加速服务,解决了运营商分配的公网AIP资源成本昂贵的问题。In this embodiment, the acceleration node is embedded and deployed in a local area network (such as an enterprise intranet), and the second network device provides a private network AIP for the first acceleration node, so that terminal devices in the local area network can access the overlay network through the acceleration node . The overlay network provides network acceleration services for terminal devices in the local area network, which solves the problem of expensive public network AIP resources allocated by operators.
另外,上述三种实现方式相对于传统GA方案,在第一终端向第一加速节点发送数据请求时,不丢失原始数据的目的地址(如EIP1)。终端只需通过一个加速节点的公网IP,即可以接入到overlay网络,一个公网IP地址可以为多个业务应用提供共享接入,降低部署成本。In addition, compared with the traditional GA solution, the above three implementation manners do not lose the destination address (eg EIP1) of the original data when the first terminal sends a data request to the first acceleration node. The terminal can access the overlay network only through the public network IP of one acceleration node. One public network IP address can provide shared access for multiple service applications, reducing deployment costs.
步骤508、第一加速节点获取目标路径,所述目标路径来自于中心控制器生成的路由 表项。Step 508: The first acceleration node obtains a target path, where the target path comes from a routing table entry generated by the central controller.
当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点。When the destination address of the data request is the first IP address, the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node.
例如,位置路由表中包括第一IP地址与第二加速节点的对应关系如下表2所示。For example, the location routing table includes the correspondence between the first IP address and the second acceleration node, as shown in Table 2 below.
表2Table 2
第一IP地址first IP address 第二加速节点second acceleration node
EIP1EIP1 加速节点DAccelerate Node D
EIP2EIP2 加速节点CAccelerate Node C
IP1IP1 加速节点EAccelerate Node E
IP2IP2 加速节点FAccelerate Node F
示例性的,针对上述步骤507中的第一种实现方式,第一加速节点接收SDK封装数据,第一加速节点对SDK封装数据解封装,获取原始数据(数据请求)的真实目的IP(如EIP1)。中心控制器查找位置路由表,确定与EIP1具有对应关系的加速节点D。Exemplarily, for the first implementation in the above step 507, the first acceleration node receives the SDK package data, and the first acceleration node decapsulates the SDK package data, and obtains the real purpose IP (such as EIP1 of the original data (data request)) ). The central controller searches the location routing table to determine the acceleration node D that has a corresponding relationship with EIP1.
第一加速节点根据源路由表向下一跳加速节点发送数据请求,直到数据请求转发至第二加速节点,源路由表包括从第一加速节点到第二加速节点的最优路径,第二加速节点用于将数据请求转发到第一IP地址对应的目的端。The first acceleration node sends a data request to the next-hop acceleration node according to the source routing table until the data request is forwarded to the second acceleration node. The source routing table includes the optimal path from the first acceleration node to the second acceleration node. The node is configured to forward the data request to the destination end corresponding to the first IP address.
第一加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。例如,第一加速节点为加速节点A,第二加速节点为加速节点D,目标路径用加速节点的列表表示(如加速节点A、加速节点B、加速节点D)。The first acceleration node queries the source routing table to determine a target path from the first acceleration node to the second acceleration node. For example, the first acceleration node is acceleration node A, the second acceleration node is acceleration node D, and the target path is represented by a list of acceleration nodes (eg acceleration node A, acceleration node B, acceleration node D).
步骤509、第一加速节点根据目标路径向下一跳加速节点发送数据请求,直到数据请求被转发至第二加速节点,第二加速节点用于将数据请求转发至目的端。Step 509: The first acceleration node sends a data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, which is used to forward the data request to the destination.
第一加速节点对原始数据进行overlay封装,得到overlay封装数据。第一加速节点通过overlay隧道向下一跳发送overlay封装数据。overlay封装数据包括原始数据(数据请求),目标路径,下一跳加速节点的目的地址,源地址。overlay封装数据在目标路径上的加速节点被逐跳转发,直到转发至第二加速节点,第二加速节点对overlay封装数据进行解封装后,将数据请求发送至目的端。The first acceleration node performs overlay encapsulation on the original data to obtain overlay encapsulated data. The first acceleration node sends the overlay encapsulation data to the next hop through the overlay tunnel. The overlay package data includes the original data (data request), the target path, the destination address of the next-hop acceleration node, and the source address. The overlay encapsulated data is forwarded hop by hop to the acceleration node on the target path until it is forwarded to the second acceleration node. After the second acceleration node decapsulates the overlay encapsulated data, the data request is sent to the destination.
本申请实施例中,overlay网络中灵活部署了大量的加速节点,从而使得全球范围内的终端都能够就近接入到一个加速节点上。第一加速节点获取来自终端的数据请求后,通过查询位置路由表能够确定第二加速节点,第一加速节点按照源路由表中指示的最优路径将来自终端的数据请求下一跳加速节点发送,直到数据请求传递到第二加速节点,第二加速节点在将数据请求传递到目的端,从而能够真正实现全球范围内的终端都能享受网络加速服务。并且相对于传统方法中的GA方案,所有加速节点中的任意一个加速节点都能够作为终端接入到overlay网络的接入节点,而且每个加速节点又可以作为最优路径中的一个传输节点,每个加速节点提供的服务被所有目的端共享,不需要像传统方法中的GA,一个业务应用就要耗费一个AIP地址映射,工程部署易于实现。In the embodiment of the present application, a large number of acceleration nodes are flexibly deployed in the overlay network, so that terminals around the world can access an acceleration node nearby. After the first acceleration node obtains the data request from the terminal, the second acceleration node can be determined by querying the location routing table, and the first acceleration node sends the data request from the terminal to the next-hop acceleration node according to the optimal path indicated in the source routing table. , until the data request is transmitted to the second acceleration node, and the second acceleration node is transmitting the data request to the destination end, so that it is possible to truly realize that terminals worldwide can enjoy the network acceleration service. And compared with the GA scheme in the traditional method, any acceleration node among all the acceleration nodes can be used as a terminal to access the access node of the overlay network, and each acceleration node can be used as a transmission node in the optimal path. The services provided by each acceleration node are shared by all destinations, and there is no need for GA in the traditional method. A business application needs to spend one AIP address mapping, and the project deployment is easy to implement.
可选地,为了能够为业务应用提供更好的网络转发服务,业务应用可以对网络设置参 数进行定制。本实施例中的overlay网络能够根据业务应用的实际需求为提供网络加速服务。Optionally, in order to be able to provide better network forwarding services for the business application, the business application can customize the network setting parameters. The overlay network in this embodiment can provide network acceleration services according to the actual requirements of business applications.
请参阅图8所示,图8为业务应用申请网络加速服务的两种申请方式的示意图。Please refer to FIG. 8 , which is a schematic diagram of two application manners for a business application to apply for a network acceleration service.
本申请中的ADN面向各类业务应用提供网络加速服务,业务应用(如视频业务提供商A)向中心控制器申请网络加速服务包括如下两种方式。The ADN in this application provides network acceleration services for various business applications, and the business applications (such as video service provider A) apply to the central controller for network acceleration services in the following two ways.
方式1、业务应用人员的PC机登录console平台,PC机响应于业务应用人员的操作,业务应用人员在console界面点击选择网络设置参数,网络设置参数包括但不限于包括加速周期、带宽、成本中的至少一个。ADN根据网络设置参数为业务应用(如视频业务提供商A)提供overlay网络加速服务。本实施例中,业务应用的工作人员只需要根据ADN提供的网络设置参数进行选择,申请网络加速服务的方式简单,易于操作。 Mode 1. The PC of the business application personnel logs in to the console platform. The PC computer responds to the operation of the business application personnel. The business application personnel click on the console interface to select the network setting parameters. The network setting parameters include but are not limited to including acceleration period, bandwidth, cost at least one of. The ADN provides overlay network acceleration services for service applications (such as video service provider A) according to network setting parameters. In this embodiment, the staff of the business application only needs to select according to the network setting parameters provided by the ADN, and the method of applying for the network acceleration service is simple and easy to operate.
方式2、业务应用直接调用天路API申请网络加速服务。Mode 2. The business application directly calls the Tianlu API to apply for the network acceleration service.
业务应用与ADN为合作关系,AND对业务应用授权,业务应用可以直接调用中心控制器的北向应用程序接口(application programming interface,API),实现对网络参数进行定制。如申请“QoS最优”、申请“成本最优”、申请“QoS+成本综合最优”等。本实施例中,业务应用可以完全按照自身的需求定制网络加速服务,满足不同业务应用的个性化服务需求。The business application and the ADN are in a cooperative relationship, and the AND authorizes the business application, and the business application can directly call the northbound application programming interface (API) of the central controller to customize network parameters. Such as applying for "Optimal QoS", applying for "Optimal Cost", applying for "Optimal QoS + Cost Comprehensive", etc. In this embodiment, the business application can customize the network acceleration service completely according to its own requirements, so as to meet the personalized service requirements of different business applications.
针对上述方式1,对业务应用申请网络加速服务的过程进行示例性说明。请参阅图9所示,图9为网络加速服务的申请界面的场景示意图。本申请中ADN为业务应用提供“申请网络加速服务”的界面,以供各类业务应用申请网络加速服务。例如,“申请网络加速服务”的界面主要包括创建租户界面、创建加速实例(输入加速实例参数配置)界面、添加加速区域界面、设置云region域名界面、设置加速公网IP地址界面等。其中,“设置云region域名界面”适用于目的端是云region的场景,即终端访问云region的场景。而“设置加速公网IP地址界面”适用于目的端是终端(或服务器)的场景,即终端访问终端的场景。对于业务应用申请网络加速服务的步骤如下述步骤a-步骤e。With regard to the above Mode 1, the process of applying for a network acceleration service by a business application is exemplarily described. Please refer to FIG. 9 , which is a schematic diagram of a scenario of an application interface for a network acceleration service. In this application, ADN provides an interface of "application for network acceleration service" for business applications, so that various business applications can apply for network acceleration service. For example, the interface of "Applying for Network Acceleration Service" mainly includes the interface for creating a tenant, creating an acceleration instance (inputting the acceleration instance parameter configuration) interface, adding an acceleration region interface, setting the cloud region domain name interface, and setting the acceleration public network IP address interface, etc. Among them, "setting cloud region domain name interface" is applicable to the scenario where the destination terminal is the cloud region, that is, the scenario where the terminal accesses the cloud region. The "Setting the Acceleration Public Network IP Address Interface" is applicable to the scenario where the destination end is a terminal (or server), that is, the scenario where the terminal accesses the terminal. The steps for applying for the network acceleration service for business applications are as follows: Step a to Step e.
步骤a、业务应用人员的PC机展示console“创建用户”界面,业务应用人员的PC机响应于业务应用人员的创建用户操作,向console平台发送“用户名”和“密码”等用户信息。console平台向中心控制器发送用户信息。In step a, the PC of the business application personnel displays the console "create user" interface, and the PC of the business application personnel sends user information such as "username" and "password" to the console platform in response to the operation of creating a user by the business application personnel. The console platform sends user information to the central controller.
步骤b、业务应用人员的PC机展示“创建加速实例”界面。“创建加速实例”界面用于提供网络设置参数的设置。例如网络设置参数包括带宽、加速周期、服务模式参数(第一模式或第二模式)。第一模式是指网络加速服务的目的端是云region,第二模式是指网络加速服务的目的端是终端(或服务器)。Step b. The PC of the business application personnel displays the interface of "Create an Acceleration Instance". The "Create Accelerated Instance" interface is used to provide settings for network setting parameters. For example, network setting parameters include bandwidth, acceleration period, and service mode parameters (first mode or second mode). The first mode means that the destination end of the network acceleration service is the cloud region, and the second mode means that the destination end of the network acceleration service is the terminal (or server).
当第一模式被选择时,进入下述步骤c;当第二模式被选择时,进入下述步骤e。When the first mode is selected, go to the following step c; when the second mode is selected, go to the following step e.
步骤c、当业务应用人员选择第一模式时,业务应用人员的PC机展示“选择加速区域”界面。该“选择加速区域”界面用于提供网络加速服务的绑定区域。例如,区域包括“亚洲”、“中国”、“印度”、“欧洲”等。“加速区域”用于指示业务应用所服务的用户所在的区域。例如,业务应用为“网易游戏”,“网易游戏”的用户遍布全球各地,“网易游戏”选择的加速区域可能选择所有的区域。而“视频业务提供商A”的用户主要分布 在中国,“视频业务提供商A”选择的加速区域可能选择所有的区域是“中国”。终端响应于业务应用人员的选择加速区域操作后,向console平台发送目标加速区域(如中国)。Step c. When the service application personnel select the first mode, the PC of the service application personnel displays the interface of "select acceleration area". The "Select Acceleration Area" interface is used to provide the bound area of the network acceleration service. For example, regions include "Asia", "China", "India", "Europe", etc. The "acceleration area" is used to indicate the area where the user served by the business application is located. For example, if the business application is "NetEase Games", the users of "NetEase Games" are all over the world, and the acceleration area selected by "NetEase Games" may select all regions. While the users of "Video Service Provider A" are mainly distributed in China, the acceleration region selected by "Video Service Provider A" may select all regions as "China". After the terminal responds to the operation of the acceleration area selected by the business application personnel, it sends the target acceleration area (such as China) to the console platform.
步骤d、业务应用人员的PC机展示“云region信息”界面。“云region信息”界面用于接收云region的标识,域名(或EIP)。其中,域名为业务应用(如视频业务提供商A)的域名。业务应用人员的PC机响应于业务应用人员的操作后,向console平台发送云region信息。In step d, the PC of the business application personnel displays the "cloud region information" interface. The "cloud region information" interface is used to receive the cloud region's identifier, domain name (or EIP). The domain name is the domain name of the service application (eg, video service provider A). After the PC of the business application personnel responds to the operation of the business application personnel, it sends cloud region information to the console platform.
步骤e、当业务应用人员选择第二模式时,业务应用人员的PC机展示“输入加速IP”的界面。“输入加速IP”的界面用于接收目的端(终端或服务器)的公网IP的列表。PC机响应于业务应用人员的操作后,向console平台发送目的端的公网IP。Step e, when the service application personnel select the second mode, the PC of the service application personnel displays an interface of "input acceleration IP". The interface of "Input Acceleration IP" is used to receive the list of public IP addresses of the destination (terminal or server). After the PC responds to the operation of the service application personnel, it sends the public IP of the destination end to the console platform.
经过上述步骤a-步骤d,或者,步骤a、步骤b和步骤e后,console平台接收到上述网络设置参数后,对用户名与网络设置参数建立关联关系。console平台将网络设置参数通过北向API发送给中心控制器。After the above steps a to d, or after the steps a, b and e, the console platform establishes an association relationship between the user name and the network setting parameters after receiving the above network setting parameters. The console platform sends the network setting parameters to the central controller through the northbound API.
在上述图5对应的实施例中,在步骤507之前,还包括如下步骤:In the embodiment corresponding to FIG. 5 above, before step 507, the following steps are further included:
中心控制器获取业务应用对应的带宽和目标加速区域;The central controller obtains the bandwidth and target acceleration area corresponding to the business application;
中心控制器根据带宽参数生成承诺访问速率(commited access rate,CAR)限速配置信息;The central controller generates committed access rate (CAR) rate limit configuration information according to the bandwidth parameters;
中心控制器根据目的端的EIP信息对目标区域内的加速节点分配接入权限,并向加速节点下发CAR限速配置信息,该CAR限速配置信息用于指导最优路径上的所有加速节点进行数据转发,以满足业务应用的网络加速需求。The central controller assigns access rights to the acceleration nodes in the target area according to the EIP information of the destination end, and delivers the CAR speed limit configuration information to the acceleration nodes. The CAR speed limit configuration information is used to guide all acceleration nodes on the optimal path to perform Data forwarding to meet the network acceleration requirements of business applications.
在一个应用场景中,该应用场景主要描述的是第一终端访问的目的端是云region的场景。请参阅图10所示,所有加速节点部署完成后,中心控制器向所有加速节点下发QoS测量任务。每个加速节点对该加速节点与邻居加速节点间链路状态进行QoS测量,加速节点采集链路状态信息,并向中心控制器发送链路状态信息。中心控制器根据链路状态信息和所有加速节点的拓扑结构计算最优路径,并根据最优路径生成源路由表,中心控制器向每个加速节点发送该加速节点对应的源路由表。In an application scenario, the application scenario mainly describes a scenario in which the destination end accessed by the first terminal is a cloud region. Referring to Figure 10, after all acceleration nodes are deployed, the central controller issues QoS measurement tasks to all acceleration nodes. Each acceleration node performs QoS measurement on the link status between the acceleration node and neighboring acceleration nodes, and the acceleration node collects the link status information and sends the link status information to the central controller. The central controller calculates the optimal path according to the link state information and the topological structures of all acceleration nodes, and generates a source routing table according to the optimal path. The central controller sends the corresponding source routing table of the acceleration node to each acceleration node.
业务应用(如视频业务提供商A)向console申请网络加速服务,网络加速服务的目的端是云region,且云region(例如云region1)的IP信息是EIP1。可选地,中心控制器还获取到“视频业务提供商A”对应的目标带宽、目标加速区域等信息。A business application (eg, video service provider A) applies to the console for a network acceleration service, the destination of the network acceleration service is the cloud region, and the IP information of the cloud region (eg, cloud region1) is EIP1. Optionally, the central controller also acquires information such as the target bandwidth and the target acceleration area corresponding to the "video service provider A".
中心控制器根据EIP1确定加速节点D,加速节点D是部署于云region1中的加速节点。The central controller determines acceleration node D according to EIP1, and acceleration node D is an acceleration node deployed in cloud region1.
中心控制器生成位置路由表,位置路由表包括加速节点D与EIP1的对应关系。中心控制器将位置路由表发送至所有加速节点。The central controller generates a location routing table, and the location routing table includes the corresponding relationship between the acceleration node D and the EIP1. The central controller sends the location routing table to all acceleration nodes.
中心控制器根据目标加速区域(中国区域)索引中国区域内的所有加速节点。中心控制器根据目标带宽生成配置信息。The central controller indexes all acceleration nodes in the China region according to the target acceleration region (China region). The central controller generates configuration information according to the target bandwidth.
中心控制器向目标加速区域内的加速节点下发控制信息和配置信息。其中,控制信息包括云region的EIP(如EIP1),控制信息用于指示加速节点对云region的EIP进行过滤,准许EIP1的数据流量按照配置信息进行数据转发。The central controller sends control information and configuration information to the acceleration nodes in the target acceleration area. The control information includes the EIP of the cloud region (eg, EIP1 ), and the control information is used to instruct the acceleration node to filter the EIP of the cloud region, allowing the data traffic of EIP1 to perform data forwarding according to the configuration information.
第一终端就近接入到加速节点A,加速节点A是中国区域内加速节点。加速节点A获 取数据请求的目的地址是EIP1。加速节点A根据控制信息过滤目的地址是EIP1的数据请求按照配置信息指示的速率通过。The first terminal is connected to the acceleration node A nearby, and the acceleration node A is an acceleration node in the Chinese region. The destination address of acceleration node A's data request is EIP1. The acceleration node A filters data requests whose destination address is EIP1 according to the control information to pass at the rate indicated by the configuration information.
加速节点A根据位置路由表确定EIP1对应的加速节点D(即第二加速节点)。加速节点A查询源路由表,根据源路由表中的加速节点A至加速节点D之间的最优路径(如加速节点A-加速节点B-加速节点C-加速节点D)对来自第一终端的数据请求转发到下一跳加速节点B,且最优路径上的加速节点(如加速节点A、加速节点B、加速节点C、加速节点D)根据中心控制器下发的配置信息将来自第一终端的数据请求在最优路径上逐条转发,直到转发到加速节点D。加速节点D将来自第一终端的数据转发到云region(EIP1)。The acceleration node A determines the acceleration node D (ie, the second acceleration node) corresponding to the EIP1 according to the location routing table. The acceleration node A queries the source routing table, and according to the optimal path between the acceleration node A and the acceleration node D in the source routing table (for example, the acceleration node A-acceleration node B-acceleration node C-acceleration node D), the data from the first terminal The data request is forwarded to the next-hop acceleration node B, and the acceleration nodes on the optimal path (such as acceleration node A, acceleration node B, acceleration node C, and acceleration node D) will be sent from the first node according to the configuration information issued by the central controller. The data request of a terminal is forwarded one by one on the optimal path until it is forwarded to the acceleration node D. The acceleration node D forwards the data from the first terminal to the cloud 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传输数据,从而为业务应用节省成本。In addition, optionally, the network between the POP and the cloud region can implement HBN dedicated line network transmission, or common internet transmission. For example, acceleration node A is deployed in edge cloud A, acceleration node B is deployed in edge cloud B, acceleration node C is deployed at the POP point, and acceleration node D is deployed in cloud region. Then, when the acceleration node C performs overlay encapsulation on the data request, the destination address is the acceleration public network IP address of the acceleration node D, the source address is the acceleration public network IP address of the acceleration node C, and the acceleration node C and the acceleration node D pass through the HBN. The dedicated line network forwards data to improve the network transmission rate from POP to cloud regions. Data can also be transmitted between the acceleration node C and the acceleration node D through the common internet, thereby saving costs for business applications.
另外,在本申请中,当目的端是云region时,各业务应用只需调用AND提供的网络加速服务即可实现终端快速访问云Region,避免各个业务应用系统重复独立开发。In addition, in this application, when the destination terminal is a cloud region, each business application only needs to invoke the network acceleration service provided by AND to realize the terminal's quick access to the cloud region, avoiding repeated and independent development of each business application system.
在第二个应用场景中,第二个应用场景主要描述目的端是终端(或服务器)的场景,即终端与终端之间横向访问的场景。所有加速节点部署完成后,中心控制器向所有加速节点下发QoS测量任务。每个加速节点对该加速节点与邻居加速节点间链路状态进行QoS测量,加速节点采集链路状态信息,并向中心控制器发送链路状态信息。中心控制器根据链路状态信息和所有加速节点的拓扑结构计算所有加速节点中的最优路径,并根据最优路径生成源路由表,中心控制器向每个加速节点发送该加速节点对应的源路由表。In the second application scenario, the second application scenario mainly describes a scenario where the destination is a terminal (or server), that is, a scenario of lateral access between terminals. After all acceleration nodes are deployed, the central controller issues QoS measurement tasks to all acceleration nodes. Each acceleration node performs QoS measurement on the link status between the acceleration node and neighboring acceleration nodes, and the acceleration node collects the link status information and sends the link status information to the central controller. The central controller calculates the optimal path in all the acceleration nodes according to the link state information and the topology structure of all the acceleration nodes, and generates a source routing table according to the optimal path. The central controller sends the source corresponding to the acceleration node to each acceleration node. routing table.
用户在申请网络加速服务,console平台获取到公网IP地址的列表,并将公网IP地址的列表向中心控制器发送。When the user applies for the network acceleration service, the console platform obtains the list of public network IP addresses, and sends the list of public network IP addresses to the central controller.
中心控制器获取到公网IP地址的列表后,查询IP地址库,确定每个目的端(如第二终端)的物理位置,根据目的端的物理位置,确定与该物理位置最近的加速节点。例如IP1位于北京市,中心控制器查找IP地址库确定与IP1最近的加速节点是加速节点D(位于北京市)。IP2位于西安市,中心控制器查找IP地址库确定与IP2最近的加速节点是加速节点F(位于西安市)。中心控制器生成位置路由表,位置路由表包括公网IP与加速节点的对应关系(如IP1与加速节点D的对应关系,IP2与加速节点F的对应关系)。After obtaining the list of public network IP addresses, the central controller queries the IP address database to determine the physical location of each destination (such as the second terminal), and determines the acceleration node closest to the physical location according to the physical location of the destination. For example, IP1 is located in Beijing, and the central controller searches the IP address database to determine that the acceleration node closest to IP1 is acceleration node D (located in Beijing). IP2 is located in Xi'an, and the central controller searches the IP address database to determine that the acceleration node closest to IP2 is acceleration node F (located in Xi'an). The central controller generates a location routing table, and the location routing table includes the correspondence between the public network IP and the acceleration node (eg, the correspondence between IP1 and acceleration node D, and the correspondence between IP2 and acceleration node F).
中心控制器向加速节点发送位置路由表。The central controller sends the location routing table to the acceleration node.
第一终端就近接入到加速节点A,加速节点A获取来自第一终端的数据请求,数据请求的目的IP是IP1。The first terminal accesses the acceleration node A nearby, and the acceleration node A obtains a data request from the first terminal, and the destination IP of the data request is IP1.
加速节点A根据位置路由表确定IP1对应的加速节点是加速节点D(即第二加速节点)。The acceleration node A determines, according to the location routing table, that the acceleration node corresponding to IP1 is the acceleration node D (ie, the second acceleration node).
加速节点A查询源路由表,根据源路由表中的加速节点A至加速节点D之间的最优路径(如加速节点A-加速节点B-加速节点C-加速节点D)将数据请求转发到下一跳加速节点 B,数据请求在最优路由上逐跳转发,直到转发到加速节点D。加速节点D将来自第一终端的数据转发到第二终端。Acceleration node A queries the source routing table, and forwards the data request to the optimal path between acceleration node A and acceleration node D in the source routing table (such as acceleration node A-acceleration node B-acceleration node C-acceleration node D) The next hop accelerates the node B, and the data request is forwarded hop by hop on the optimal route until it is forwarded to the acceleration node D. The acceleration node D forwards the data from the first terminal to the second terminal.
相对于传统方法中的GA,传统方法中的GA仅支持终端访问云region的场景,而本实施例中的ADN不仅支持终端访问云region的场景,还支持终端和终端间访问的场景,ADN具有普适性。Compared with the GA in the traditional method, the GA in the traditional method only supports the scenario in which the terminal accesses the cloud region, while the ADN in this embodiment not only supports the scenario in which the terminal accesses the cloud region, but also supports the scenario in which the terminal and the terminal are accessed. Universality.
示例性的,针对图5对应的实施例中的步骤509,对第一加速节点将来自终端的数据请求转发至目的端的过程进行说明。一、目的端是云region,即上述第一个应用场景。二、目的端是终端(或服务器),即上述第二个应用场景。Exemplarily, with respect to step 509 in the embodiment corresponding to FIG. 5 , the process of forwarding the data request from the terminal to the destination terminal by the first acceleration node will be described. 1. The destination is the cloud region, which is the first application scenario above. 2. The destination end is a terminal (or server), that is, the second application scenario above.
首先,对数据的封装格式进行说明。请参阅图11所示,图11为基于用户数据报(user datagram protocol,UDP)进行overlay封装的数据格式的示意图。在overlay隧道中传输的报文对原始数据进行封装,得到overlay封装数据,overlay封装数据的格式包括以下所示字段。First, the data encapsulation format will be described. Please refer to FIG. 11 , which is a schematic diagram of a data format for overlay encapsulation based on a user datagram protocol (UDP). The packets transmitted in the overlay tunnel encapsulate the original data to obtain overlay encapsulation data. The format of the overlay encapsulation data includes the following fields.
IP头(header)字段:包括源地址(长度为32位)和目的地址(长度为32位)。IP header field: includes the source address (32 bits in length) and the destination address (32 bits in length).
UDP头(header)字段,包括源端口号(长度为16位)和目的端口号(长度为16位)。The UDP header field includes the source port number (16 bits in length) and the destination port number (16 bits in length).
段列表(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 (segment list, SL) field: used to indicate the nodes that the data packet needs to pass through during the forwarding process. The list is segment list[0] to segment list[n-1]. Among them, [*] is used to represent the node number (or also called "subscript"), and n represents the number of accelerated nodes in the optimal path. When the source acceleration node presses the path label, it will press the multi-layer label, that is, the node that needs to be passed during the transmission of the data packet. For example, the optimal path includes n nodes (such as node A, node B, node C, etc.), and the first one pushed into the destination address is segment list[n-1] (for example, segment list[2]) corresponds to The IP address of the acceleration node. The last one pushed into the destination address is the IP address of segment list[0]. For example, the segment list can look like this.
segment list[0]=IPD;segment list[0]=IPD;
segment list[1]=IPC;segment list[1]=IPC;
segment list[2]=IPB。segment list[2]=IPB.
第一段(first segment)字段:长度为8位,用于指数据从源加速节点发送到目的加速节点经过的第一跳。在segment list中,最下面的节点(segment list[n-1])是距离源加速节点更近的节点,最上面的是目的加速节点segment list[0]),所以first segment字段的值是“n-1”。The first segment field: 8 bits in length, used to refer to the first hop through which data is sent from the source acceleration node to the destination acceleration node. In the segment list, the bottom node (segment list[n-1]) is the node closer to the source acceleration node, and the top one is the destination acceleration node segment list[0]), so the value of the first segment field is " n-1".
剩余段(segment left)字段:用于指示当前活跃的segment,即用于指示数据将要传输的下一跳。在源加速节点获取到数据时,数据还没有向下一跳传输,segment left字段的值为n-1,以表示下一个要经过的节点是segment list[n-1]对应的节点(如节点B)。The remaining segment (segment left) field: used to indicate the currently active segment, that is, used to indicate the next hop where data will be transmitted. When the source acceleration node obtains the data, the data has not yet been transmitted to the next hop, and the value of the segment left field is n-1, indicating that the next node to pass through is the node corresponding to segment list[n-1] (such as the node 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地址)拷贝到目的地址中,然后继续转发数据。Each time the data passes through a node in the segment list, the field value of segment left will decrease by 1. The acceleration node will copy the IP address of the node of the segment list [SL] to the destination address field in the packet header, thereby indicating the next hop node and sending the data to the destination. For example, A is the source acceleration node, D is the destination acceleration node, and the acceleration nodes that the optimal path passes through are B, C, and D. At this time, the acceleration node B is the first acceleration node to pass from the acceleration node A to the acceleration node D, so the value of the first segment field is the subscript "2" corresponding to the acceleration node B. At this time, the data has not been sent, that is, the nodes in the segment list have not yet arrived, so the value of the segment left field is also the subscript "2" corresponding to the acceleration node B. At the same time, the source acceleration node will copy the address (IPB) of Segment List[2]=B to the destination address of the packet header. When the data packet arrives at the acceleration node B, the acceleration node B checks that the destination address of the header is IPB after receiving the data. The acceleration node B removes the header, and the value of the segment left field is obtained as "2". The acceleration node B determines that the transmitted data has not reached the destination acceleration node. The acceleration node B also needs to continue to forward the data, and the acceleration node B keeps the first segment. The value of the field does not change (eg 2). The acceleration node B decrements the value of segment left by 1, and changes the value of the segment left field to 1. And, the acceleration node B copies the address corresponding to the segment list[SL=1] (the IP address of the acceleration node C) to the destination address, and then continues to forward the data.
载荷长度(payload length)字段:长度为16位。Payload length field: The length is 16 bits.
本实施例中,overlay隧道以UDP方式封装IP三层报文进行数据转发,IP报文内层的数据(即原始数据)可以是传输控制协议(transmission control protocol,TCP)或UDP等各种传输类型的数据包,overlay封装数据包可以不受传输类型、应用类型的约束,网络加速服务普适范围更加广泛。In this embodiment, the overlay tunnel encapsulates IP Layer 3 packets in UDP mode for data forwarding, and the data in the IP packet (that is, the original data) may be various transmissions such as transmission control protocol (TCP) or UDP. Type of data packets, overlay encapsulated data packets can not be constrained by transmission type and application type, and the network acceleration service has a wider scope.
然后,对数据转发的过程进行说明。数据转发的过程分为目的端是云region的情况,及目的端是终端(或服务器)的情况。Next, the process of data transfer will be described. The process of data forwarding is divided into the case where the destination is a cloud region, and the case where the destination is a terminal (or server).
一、目的端是云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地址。1. The destination is the cloud region, that is, the scenario where the first terminal accesses the cloud region. Exemplarily, the access by the first terminal to the first acceleration node is taken through the SDK tunnel as an example, the first acceleration node is the acceleration node A as an example, the IP address of the first terminal is IP1, and the public network of the acceleration node A is used as an example. An IP address is an IPA. The central controller pre-configures the first NAT IP (also called "first NAT IP") for the source acceleration node and the destination acceleration node, and configures the second NAT IP (also called "tail NAT IP") for the destination acceleration node. For example, the first NAT IP is IP8 and the second NAT IP is IP9. Exemplarily, in the overlay network, the optimal path from the source acceleration node to the destination acceleration node is: acceleration node A → acceleration node B → acceleration node D. The acceleration node A is configured with a public network IPA and a first NAT IP (IP8), and IPA and IP8 can be different IP addresses, or, in order to save public network IP, IPA and IP8 can be the same IP address. The acceleration node D is configured with the public network IPD and the first NAT IP (IP9). The IPD and the IP9 can be different IP addresses, or, in order to save the public network IP, the IPD and the IP9 can be the same IP address.
示例性的,请参阅图12所示,图12为第一终端和云region间数据转发的场景示意图。Exemplarily, please refer to FIG. 12 , which is a schematic diagram of a scenario of data forwarding between the first terminal and the cloud 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。S41. The first terminal sends a data packet to the acceleration node A, the destination address of the data packet is EIP, and the source address is IP1. The first terminal performs SDK encapsulation on the data packet to obtain SDK encapsulation data. The destination address of the SDK encapsulation data is IPA, and the source address of the SDK encapsulation data is IP1. In the first case, when IP1 is a public network IP, the first terminal sends the SDK package data to acceleration node A. After acceleration node A receives the SDK package data, it strips off the SDK header and exposes the destination address of the original data as EIP, the source address is IP1. In the second case, when IP1 is a private network IP address, the SDK encapsulates the data through the network address translation (NAT) device of the operator's network to reach acceleration node A. The public IP address of the NAT device is IPM.
S42.加速节点A剥离掉SDK头部,暴露原始数据,加速节点A将内层中的源地址修改为网络地址转换后的公网IPM。S42. The acceleration node A strips off the SDK header to expose the original data, and the acceleration node A modifies the source address in the inner layer to the public network IPM after network address translation.
S43.加速节点A进行源地址转换(source NAT,SNAT),将IPM转换为第一NAT IP(如 IP8)。即内层中的源地址为IP8,目的地址是EIP。可以理解的是,本步骤中SNAT为端口的映射,将IPM映射为IP8。本步骤中,加速节点A将IPM转换为第一NAT IP的目的是,当云region返回数据流时,将IP8作为目的加速节点的IP地址。S43. The acceleration node A performs source address translation (source NAT, SNAT), and converts the IPM into the first NAT IP (such as IP8). That is, the source address in the inner layer is IP8 and the destination address is EIP. It can be understood that in this step, SNAT is the port mapping, and the IPM is mapped to IP8. In this step, the purpose of the acceleration node A converting the IPM to the first NAT IP is to use IP8 as the IP address of the destination acceleration node when the cloud region returns the data stream.
S44.加速节点A对内层的数据进行overlay封装,overlay封装数据的报文格式如图11所示,overlay封装数据包括内层数据(即原始数据,源地址为IP8,目的地址是EIP)、overlay包头中的下一跳的IP地址(IPB)和最优路径中加速节点的IP地址(如加速节点A的IP地址为IPA、加速节点B的IP地址为IPB、加速节点D的IP地址为IPD)。S44. The acceleration node A performs overlay encapsulation on the inner layer data. The packet format of the overlay encapsulation data is shown in Figure 11. The overlay encapsulation data includes the inner layer data (that is, the original data, the source address is IP8, and the destination address is EIP), The IP address (IPB) of the next hop in the overlay header and the IP address of the acceleration node in the optimal path (for example, the IP address of acceleration node A is IPA, the IP address of acceleration node B is IPB, and the IP address of acceleration node D is IPD).
S45.加速节点B接收到overlay封装数据后,根据segment left字段的值确定该数据包没有到达目的加速节点,加速节点B继续将overlay封装数据中的下一跳的IP地址修改为IPD,并将overlay封装数据向下一跳(加速节点D)转发。S45. After the acceleration node B receives the overlay encapsulation data, it determines that the data packet does not reach the destination acceleration node according to the value of the segment left field, and the acceleration node B continues to modify the IP address of the next hop in the overlay encapsulation data to IPD, and changes the The overlay encapsulated data is forwarded to the next hop (acceleration node 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地址。S46. After the acceleration node D receives the overlay package data, it determines that the overlay package data has reached the destination acceleration node according to the value of the segment left field. After the acceleration node D strips the header of the overlay package data, the source address of the exposed inner layer data is IP8, the destination address is EIP. The acceleration node D maps the source address of the inner data to the tail NAT IP (such as IP9) after going through SNAT. The acceleration node D is the acceleration node deployed in the cloud region (destination terminal), and the tail NAT IP is the IP address assigned by the cloud region. Optionally, in order to save the public network IP address, the IPD of the acceleration node D and the tail NAT IP can be the same IP. The acceleration node D accesses the data center through the cloud region internal network (IP information is EIP). In this step, the purpose of the acceleration node D mapping the destination address of the inner layer data to the tail NAT IP (such as IP9) is to use IP9 as the IP address of the source acceleration node when the cloud region returns the data stream.
以上步骤S41-S46为正向数据流量转发流程,即第一终端向云region发送数据的流程。下面步骤S51-S56为反向数据流量转发流程,即云region向第一终端发送数据的流程。The above steps S41-S46 are the forward data traffic forwarding process, that is, the process in which the first terminal sends data to the cloud region. The following steps S51-S56 are the reverse data traffic forwarding process, that is, the process in which the cloud region sends data to the first terminal.
S51.数据中心向加速节点D发送反馈的原始数据,反馈的原始数据的目的地址是IP9,源目的地址是EIP,即数据中心将尾NAT IP(IP9)作为目的地址,数据中心接入到云region的加速节点D。S51. The data center sends the feedback original data to the acceleration node D. The destination address of the feedback original data is IP9, and the source and destination address is EIP, that is, the data center uses the tail NAT IP (IP9) as the destination address, and the data center connects to the cloud The acceleration node D of the region.
S52.加速节点D接收到反馈的原始数据后,将反馈的原始数据中的目的地址进行目的地址转换,将目的地址映射为IP8。S52. After the acceleration node D receives the feedback original data, it performs destination address translation on the destination address in the feedback original data, and maps the destination address to IP8.
S53.加速节点D查找位置路由表,根据位置路由表确定与IP8对应的加速节点A。加速节点D根据源路由表,确定从加速节点D到加速节点A的最优路径(加速节点的列表)。加速节点D将最优路径(加速节点的列表)、下一跳加速节点(如加速节点B),和反馈的原始数据进行overlay封装,将overlay封装数据逐跳转发,直到转发到加速节点A。S53. The acceleration node D searches the location routing table, and determines the acceleration node A corresponding to IP8 according to the location routing table. The acceleration node D determines the optimal path (the list of acceleration nodes) from the acceleration node D to the acceleration node A according to the source routing table. Acceleration node D overlay-encapsulates the optimal path (list of acceleration nodes), the next-hop acceleration node (such as acceleration node B), and the feedback original data, and forwards the overlay-encapsulated data hop by hop until it is forwarded to acceleration node A .
S54.加速节点A接收到overlay封装数据后,将overlay头部剥掉,暴露内层反馈数据的目的地址(IP8)和源地址(EIP)。S54. After the acceleration node A receives the overlay package data, it strips off the overlay header to expose the destination address (IP8) and source address (EIP) of the inner layer feedback data.
S55.加速节点A进行目的地址转换,将IP8映射为NAT设备的公网IPM。S55. The acceleration node A performs destination address translation, and maps IP8 to the public network IPM of the NAT device.
S56.NAT设备将IPM映射为第一终端的私网IP地址(IP1),NAT设备将私网转发。S56. The NAT device maps the IPM to the private network IP address (IP1) of the first terminal, and the NAT device forwards the private network.
二、目的端是终端(或服务器),即第一终端访问第二终端(或服务器)的场景。2. The destination end is a terminal (or server), that is, a scenario in which the first terminal accesses the second terminal (or server).
请参阅图13所示,图13为第一终端和第二终端间进行数据转发的场景示意图的场景示意图。其中,第一终端中内置有SDK插件,第一终端能够通过SDK插件访问中心控制器。第二终端中内置有SDK插件,第二终端能够通过SDK插件访问中心控制器。示例性的,第 一终端的IP地址是IP2,第二终端的IP地址是IP3。Please refer to FIG. 13 . FIG. 13 is a schematic diagram of a scene diagram of data forwarding between the first terminal and the second terminal. The first terminal has a built-in SDK plug-in, and the first terminal can access the central controller through the SDK plug-in. The second terminal has a built-in SDK plug-in, and the second terminal can access the central controller through the SDK plug-in. Exemplarily, the IP address of the first terminal is IP2, and the IP address of the second terminal is IP3.
第一终端通过SDK访问中心控制器,中心控制器向第一终端反馈加速节点A的IP地址。第一终端接入到加速节点A(源加速节点)。The first terminal accesses the central controller through the SDK, and the central controller feeds back the IP address of the acceleration node A to the first terminal. The first terminal accesses the acceleration node A (source acceleration node).
S61.第一终端获取原始数据,原始数据的目的地址是IP3,源地址是IP2。S61. The first terminal obtains original data, the destination address of the original data is IP3, and the source address is IP2.
S62.第一终端对待发送的原始数据进行SDK封装,通过SDK隧道向加速节点A发送SDK封装数据。SDK封装数据包括SDK包头和原始数据。其中,SDK包头中的源地址是IP2,目的地址是IPA(加速节点A的公网IP)。S62. The first terminal performs SDK encapsulation on the original data to be sent, and sends the SDK encapsulated data to acceleration node A through the SDK tunnel. SDK package data includes SDK header and original data. The source address in the SDK header is IP2, and the destination address is IPA (the public IP of the acceleration node A).
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(目的转发节点)。S63. The acceleration node A decapsulates the SDK package data, strips off the SDK header, and exposes the destination address (IP3) and source address (IP2) of the original data. The acceleration node A searches the location routing table, and determines the acceleration node (eg, the acceleration node D) that has a corresponding relationship with the destination address (IP3). The acceleration node A searches the source routing table to determine the optimal path from the acceleration node A to the acceleration node D, that is, the acceleration node (segment list) that needs to be experienced from the acceleration node A to the acceleration node D. Acceleration node A performs overlay encapsulation on the original data packet to obtain overlay encapsulation data. The overlay encapsulation data includes the original data, the IP of each acceleration node on the optimal path (for example, IPA, IPB, IPC, and IPD), and the next-hop acceleration node. IP (eg IPB). The acceleration node A sends the overlay encapsulated data, and the overlay encapsulated data is forwarded hop by hop until forwarded to the acceleration node D (destination forwarding node).
S64.加速节点D解封装overlay封装数据,得到原始数据。S64. The acceleration node D decapsulates the overlay package data to obtain original data.
S65.加速节点D对原始数据进行SDK封装,得到SDK封装数据。得到SDK封装数据的外层目的地址是IP3,源地址是IPD。加速节点D通过SDK隧道将SDK封装数据向第二终端发送。S65. The acceleration node D performs SDK encapsulation on the original data to obtain SDK encapsulated data. The outer destination address of the SDK encapsulated data is IP3, and the source address is IPD. The acceleration node D sends the SDK package data to the second terminal through the SDK tunnel.
S66.第二终端解封装SDK封装数据,得到原始数据。S66. The second terminal decapsulates the SDK package data to obtain original data.
上述步骤S61-S66为数据流正向转发流程过程的示例性说明,即第一终端向第二终端发送数据的流程。下面步骤S71-S76为反向数据流量转发流程,即第二终端向第一终端发送数据的流程。第二终端通过SDK访问中心控制器,中心控制器向第二终端反馈加速节点D的IP地址。第一终端接入到加速节点D(源加速节点)。The above steps S61-S66 are exemplary descriptions of the forward forwarding process of the data flow, that is, the process of sending data from the first terminal to the second terminal. The following steps S71-S76 are the reverse data traffic forwarding process, that is, the process in which the second terminal sends data to the first terminal. The second terminal accesses the central controller through the SDK, and the central controller feeds back the IP address of the acceleration node D to the second terminal. The first terminal accesses the acceleration node D (source acceleration node).
S71.第二终端获取反馈的原始数据,反馈的原始数据的目的地址是IP2,源地址是IP3。S71. The second terminal obtains the raw data fed back, the destination address of the raw data fed back is IP2, and the source address is IP3.
S72.第二终端对反馈的原始数据进行SDK封装,通过SDK隧道向加速节点D发送SDK封装数据。SDK封装数据包括SDK头部和反馈数据。其中,SDK封装数据的头部中的源地址是IP3,目的地址是IPD(加速节点D的公网IP)。S72. The second terminal performs SDK encapsulation on the feedback original data, and sends the SDK encapsulation data to acceleration node D through the SDK tunnel. SDK package data includes SDK header and feedback data. The source address in the header of the SDK package data is IP3, and the destination address is IPD (the public IP of the acceleration node D).
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(目的转发节点)。S73. The acceleration node D decapsulates the SDK encapsulated data, strips off the header, and exposes the destination address (IP2) and source address (IP3) of the fed back original data. The acceleration node D searches the location routing table, and determines the acceleration node (eg, the acceleration node A) that has a corresponding relationship with the destination address (IP2). The acceleration node D searches the source routing table to determine the optimal path from the acceleration node D to the acceleration node A, that is, the acceleration node (segment list) that needs to be experienced from the acceleration node D to the acceleration node A. The acceleration node D performs overlay encapsulation on the feedback data to obtain the overlay encapsulation data. The overlay encapsulation data includes the feedback data, the IP of each acceleration node (for example, IPD, IPC, IPB, and IPA) on the optimal path, and the IP address of the next-hop acceleration node. IP (eg IPC). The acceleration node D sends the overlay encapsulated data, and the overlay encapsulated data is forwarded hop by hop until forwarded to the acceleration node A (destination forwarding node).
S74.加速节点A解封装overlay封装数据,得到反馈的原始数据。S74. The acceleration node A decapsulates the overlay package data, and obtains the original data fed back.
S75.加速节点A对反馈数据进行SDK封装,SDK封装数据的外层目的地址是IP2,源地址是IPA。加速节点A通过SDK隧道将SDK封装数据向第一终端发送。S75. The acceleration node A performs SDK encapsulation on the feedback data. The outer destination address of the SDK encapsulated data is IP2 and the source address is IPA. The acceleration node A sends the SDK package data to the first terminal through the SDK tunnel.
S76.第一终端解封装SDK封装数据,得到反馈的原始数据。S76. The first terminal decapsulates the SDK package data, and obtains the original data that is fed back.
可选地,为了保证转发数据的安全性,在加速节点之间传输的数据进行加密封装,并加密传输,以防止数据被窃听。请参阅图14所示,图14为overlay隧道加密转发数据的示意图。Optionally, in order to ensure the security of the forwarded data, the data transmitted between the acceleration nodes is encrypted and encapsulated, and the transmission is encrypted to prevent the data from being eavesdropped. Please refer to FIG. 14 . FIG. 14 is a schematic diagram of encrypted and forwarded data in an overlay tunnel.
首先,加密封装。源加速节点(如加速节点A)获取到原始数据时,增加加密key字段,并对原始数据进行数据加密填充,得到加密数据。First, the encryption package. When the source acceleration node (such as acceleration node A) obtains the original data, the encryption key field is added, and the original data is encrypted and filled to obtain encrypted data.
然后,加密传输。源加速节点向下一跳加速节点发送加密数据,加密数据被逐跳转发,加密数据转发过程中保持加密。直到加密数据达到目的加速节点(如加速节点D)。Then, encrypt the transmission. The source acceleration node sends encrypted data to the next-hop acceleration node, the encrypted data is forwarded hop by hop, and the encrypted data is kept encrypted during the forwarding process. Until the encrypted data reaches the destination acceleration node (such as acceleration node D).
加速节点D对加密数据进行overlay解封装,同时也解除数据加密,还原出原始数据,并对原始数据进行转发。The acceleration node D performs overlay decapsulation on the encrypted data, and also de-encrypts the data, restores the original data, and forwards the original data.
传统方法中的GA依赖云厂商的IP专线网络提供加速服务,仅能通过应用层对待传输的数据进行加密,而传输层不支持加密服务。而本申请中AND基于overlay隧道对数据进行转发,则可以天然基于overlay隧道进行数据加密,从而可以对一些机密数据进行应用层、传输层双层加密保护,从而保证数据安全性。The GA in the traditional method relies on the IP private line network of the cloud manufacturer to provide acceleration services, and can only encrypt the data to be transmitted through the application layer, while the transport layer does not support encryption services. In this application, AND forwards data based on the overlay tunnel, and can naturally encrypt data based on the overlay tunnel, so that some confidential data can be protected by double-layer encryption at the application layer and the transport layer, thereby ensuring data security.
示例性的,对本申请实施例中数据转发方法的加速效果进行示例性说明。请参阅下表3所示,下表3为数据转发加速效果的测试数据。Exemplarily, the acceleration effect of the data forwarding method in the embodiment of the present application is exemplarily described. Please refer to Table 3 below, which is the test data of the data forwarding acceleration effect.
表3table 3
Figure PCTCN2022086603-appb-000001
Figure PCTCN2022086603-appb-000001
应理解,上述表3中数据仅是示例性说明,并非全部的测试数据。从上述表3可以看出,AND中不同的组网加速节点加速效果不等,较好优化效果可以达到40%以上,大部分的最优路径只需要绕经1个加速节点即可实现时延最优。本申请实施例中,网络加速服务不依赖于专线网络,对于全球普遍覆盖的internet网络,AND能够实现较好的加速优化效果。It should be understood that the data in the above Table 3 are only illustrative, not all test data. As can be seen from Table 3 above, the acceleration effect of different networking acceleration nodes in AND varies, and the better optimization effect can reach more than 40%. Most of the optimal paths only need to go through one acceleration node to achieve delay. optimal. In the embodiment of the present application, the network acceleration service does not depend on the dedicated line network, and for the Internet network that is universally covered in the world, AND can achieve a better acceleration optimization effect.
如图2所示的通信系统,通信系统包括中心控制器和多个所述加速节点,多个加速节点包括第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。本申请实施例提供了一种加速节点,加速节点1500以第一加速节点为例进行说明,第一加速节点可以是多个加速节点中任意一个加速节点。第一加速节点用于实现上述方法 实施例中第一加速节点所执行的功能。请参阅图15所示,加速节点1500包括转发模块1501和控制模块1502,其中,转发模块1501用于实现上述方法实施例中转发节点的功能,控制模块1502用于实现上述方法实施例中本地控制器的功能。As shown in FIG. 2, the communication system includes a central controller and a plurality of acceleration nodes, and the plurality of acceleration nodes include a first acceleration node and a second acceleration node, wherein the deployment environment of the central controller belongs to the first acceleration node. A cloud service provider, the deployment environment of the multiple acceleration nodes belongs to a second cloud service provider, an application service provider or a telecom operator. An embodiment of the present application provides an acceleration node. The acceleration node 1500 is described by taking a first acceleration node as an example, and the first acceleration node may be any acceleration node among multiple acceleration nodes. The first acceleration node is configured to implement the functions performed by the first acceleration node in the foregoing method embodiments. Referring to FIG. 15 , the acceleration node 1500 includes a forwarding module 1501 and a control module 1502, wherein the forwarding module 1501 is used to implement the function of the forwarding node in the above method embodiment, and the control module 1502 is used to implement the local control in the above method embodiment. function of the device.
转发模块1501,用于接收来自第一终端的数据请求,所述数据请求用于访问目的端;A forwarding module 1501, configured to receive a data request from the first terminal, where the data request is used to access the destination;
控制模块1502,用于获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;a control module 1502, configured to obtain a target path, the target path is from a routing table entry generated by the central controller;
转发模块1501,用于根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。The forwarding module 1501 is configured to send the data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data The request is forwarded to the destination.
进一步的,转发模块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。Further, the forwarding module 1501 is configured to perform step 507 and step 509 in the above-mentioned embodiment corresponding to FIG. 5 . When the first acceleration node is the acceleration node A, the forwarding module 1501 is further configured to perform steps S42 , S43 and S44 in the example corresponding to FIG. 12 . When the first acceleration node is the acceleration node B, the forwarding module 1501 is further configured to perform step S45 in the example corresponding to FIG. 12 . When the first acceleration node is the acceleration node D, the forwarding module 1501 is further configured to perform steps S46 , S51 , S52 and S54 in the example corresponding to FIG. 12 . When the first acceleration node is the acceleration node A, the forwarding module 1501 is further configured to execute steps S63, S74 and S75 in the example corresponding to FIG. 13 , and when the first acceleration node is the acceleration node D, the forwarding module 1501 is further configured to execute Steps S64, S65 and S73 in the example corresponding to FIG. 13 . The control module 1502 is configured to execute step 508 in the embodiment corresponding to FIG. 5 , and steps S53 , S55 and S56 in the example corresponding to FIG. 12 .
具体的,在一种可选的实现方式中,路由表项包括源路由表和位置路由表;控制模块1502,还用于接收中心控制器发送的源路由表和位置路由表,源路由表包括从源加速节点到目的加速节点的路径,位置路由表包括第一IP地址和第二加速节点的对应关系,第一IP地址是用户申请网络加速服务的目的端的IP地址;当数据请求的目的地址是第一IP地址时,第一加速节点查询位置路由表,确定与第一IP地址对应的第二加速节点,第二加速节点是目的加速节点;当第一加速节点是源加速节点时,第一加速节点根据第二加速节点查询源路由表,确定从第一加速节点到第二加速节点的目标路径。Specifically, in an optional implementation manner, the routing table entry includes a source routing table and a location routing table; the control module 1502 is further configured to receive the source routing table and the location routing table sent by the central controller, where the source routing table includes The path from the source acceleration node to the destination acceleration node. The location routing table includes the correspondence between the first IP address and the second acceleration node. The first IP address is the IP address of the destination end where the user applies for the network acceleration service; when the destination address of the data request When it is the first IP address, the first acceleration node queries the location routing table to determine the second acceleration node corresponding to the first IP address, and the second acceleration node is the destination acceleration node; when the first acceleration node is the source acceleration node, the first acceleration node is the source acceleration node. An acceleration node queries the source routing table according to the second acceleration node, and determines a target path from the first acceleration node to the second acceleration node.
在一种可选的实现方式中,转发模块1501,还用于测量第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;控制模块1502,还用于向中心控制器发送转发模块1501获取的链路状态信息,链路状态信息用于中心控制器生成源路由表。In an optional implementation manner, the forwarding module 1501 is further configured to measure the link status between the first acceleration node and the neighboring acceleration node to obtain link status information; the control module 1502 is further configured to send the information to the central controller The link state information obtained by the forwarding module 1501 is used for the central controller to generate the source routing table.
在一种可选的实现方式中,第一终端内配置有SDK插件,SDK插件中预置有中心控制器的地址;转发模块1501,还用于通过SDK隧道从第一终端接收SDK封装数据,SDK封装数据是对数据请求进行封装后的数据,SDK封装数据的头部中的目的地址是第一加速节点的IP地址,头部中的源地址是第一终端的IP地址。In an optional implementation manner, an SDK plug-in is configured in the first terminal, and the address of the central controller is preset in the SDK plug-in; the forwarding module 1501 is further configured to receive SDK package data from the first terminal through the SDK tunnel, The SDK encapsulation data is the data after encapsulating the data request. The destination address in the header of the SDK encapsulation data is the IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal.
在一种可选的实现方式中,第一加速节点的部署环境是第一网络设备,第一网络设备用于接收访问控制列表ACL策略指令,ACL策略指令用于触发第一网络设备将目的地址是第一IP地址的数据引导至第一加速节点;转发模块1501,还用于接收第一网络设备根据ACL策略指令引导的来自第一终端的数据请求。In an optional implementation manner, the deployment environment of the first acceleration node is a first network device, the first network device is used to receive an access control list ACL policy instruction, and the ACL policy instruction is used to trigger the first network device to convert the destination address The data of the first IP address is directed to the first acceleration node; the forwarding module 1501 is further configured to receive a data request from the first terminal directed by the first network device according to the ACL policy instruction.
在一种可选的实现方式中,第一加速节点的部署环境是局域网中的设备,第一终端是局域网中的终端;转发模块1501,还用于通过局域网接收来自第一终端的数据请求。In an optional implementation manner, the deployment environment of the first acceleration node is a device in a local area network, and the first terminal is a terminal in the local area network; the forwarding module 1501 is further configured to receive a data request from the first terminal through the local area network.
在一种可能的设计中,加速节点1500运行于部署环境提供的虚拟机或容器中。请参阅图16所示,图16为虚拟机的架构示意图。虚拟机的架构包括硬件层1601、虚拟化层1602和虚拟机1603。其中虚拟化层1602包括虚拟机监控程序(hypervisor)。虚拟机监控程序用于管理硬件层1601的真实硬件资源,为虚拟机1603提供硬件资源抽象,从而为虚拟机1603中加速节点1500提供运行环境。硬件层1601可以包括一个或多个处理器、存储器和存储设备。其中,存储设备、存储器均与处理器连接。所述处理器也可以称为处理单元,可以实现一定的控制功能。所述处理器可以是通用处理器或者专用处理器等。存储器上可以存有指令,所述指令可在所述处理器上被运行。存储设备用于存储源路由表和位置路由表。虚拟机监控程序为虚拟机提供硬件资源抽象,使得虚拟机中的加速节点执行上述方法实施例中第一加速节点所执行的方法。In one possible design, the acceleration node 1500 runs in a virtual machine or container provided by the deployment environment. Please refer to FIG. 16 , which is a schematic diagram of the architecture of a virtual machine. The architecture of the virtual machine includes a hardware layer 1601 , a virtualization layer 1602 and a virtual machine 1603 . The virtualization layer 1602 includes a hypervisor. The hypervisor is used to manage the real hardware resources of the hardware layer 1601 , and provides hardware resource abstraction for the virtual machine 1603 , thereby providing a running environment for the acceleration node 1500 in the virtual machine 1603 . Hardware layer 1601 may include one or more processors, memory, and storage devices. The storage device and the memory are both connected to the processor. The processor can also be referred to as a processing unit, which can implement certain control functions. The processor may be a general-purpose processor or a special-purpose processor, or the like. Instructions may be stored on the memory, and the instructions may be executed on the processor. The storage device is used to store the source routing table and the location routing table. The hypervisor provides hardware resource abstraction for the virtual machine, so that the acceleration node in the virtual machine executes the method executed by the first acceleration node in the above method embodiment.
请参阅图17所示,本申请实施例还提供了一种中心控制器,中心控制器用于执行上述方法实施例中中心控制器所执行的方法。中心控制器1700包括收发模块1701和处理模块1702。Referring to FIG. 17 , an embodiment of the present application further provides a central controller, where the central controller is configured to execute the method executed by the central controller in the foregoing method embodiments. The central controller 1700 includes a transceiver module 1701 and a processing module 1702 .
收发模块1701,用于获取加速节点发送的链路状态信息;A transceiver module 1701, configured to acquire link status information sent by the acceleration node;
处理模块1702,用于根据收发模块1701获取的链路状态信息生成源路由表,源路由表包含从源加速节点到目的加速节点的路径;The processing module 1702 is configured to generate a source routing table according to the link state information obtained by the transceiver module 1701, where the source routing table includes a path from the source acceleration node to the destination acceleration node;
收发模块1701,用于获取用户申请网络加速服务的目的端的第一IP地址;The transceiver module 1701 is used to obtain the first IP address of the destination end of the user applying for the network acceleration service;
处理模块1702,还用于生成位置路由表,位置路由表包括第一IP地址与第二加速节点的对应关系;The processing module 1702 is further configured to generate a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node;
收发模块1701,还用于向第一加速节点发送位置路由表和第一加速节点对应的源路由表,位置路由表用于引导第一加速节点根据第一IP地址确定第二加速节点,第一IP地址是来自第一终端的数据请求的目的地址,源路由表用于第一加速节点获取目标路径,目标路径用于引导数据请求转发至第二加速节点,第二加速节点用于将数据转发到目的端。The transceiver module 1701 is further configured to send the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node. The location routing table is used to guide the first acceleration node to determine the second acceleration node according to the first IP address. The IP address is the destination address of the data request from the first terminal, the source routing table is used by the first acceleration node to obtain the target path, and the target path is used to guide the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to the destination.
进一步的,可选地,收发模块1701为收发器。其中,收发器具有发送和/或接收的功能。可选地,收发器由接收器和/或发射器代替。Further, optionally, the transceiver module 1701 is a transceiver. Among them, the transceiver has the function of sending and/or receiving. Optionally, the transceiver is replaced by a receiver and/or a transmitter.
可选地,收发模块1701为通信接口。可选地,通信接口是输入输出接口或者收发电路。输入输出接口包括输入接口和输出接口。收发电路包括输入接口电路和输出接口电路。Optionally, the transceiver module 1701 is a communication interface. Optionally, the communication interface is an input-output interface or a transceiver circuit. The input and output interface includes an input interface and an output interface. The transceiver circuit includes an input interface circuit and an output interface circuit.
可选地,处理模块1702为处理器,处理器是通用处理器或者专用处理器等。可选地,处理器包括用于实现接收和发送功能的收发单元。例如该收发单元是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路是分开的部署的,可选地,是集成在一起部署的。上述收发电路、接口或接口电路用于代码或数据的读写,或者,上述收发电路、接口或接口电路用于信号的传输或传递。Optionally, the processing module 1702 is a processor, and the processor is a general-purpose processor or a special-purpose processor or the like. Optionally, the processor includes a transceiver unit for implementing receiving and transmitting functions. For example, the transceiver unit is a transceiver circuit, or an interface, or an interface circuit. Transceiver circuits, interfaces, or interface circuits for implementing receiving and transmitting functions are deployed separately, or optionally, integrated together. The above-mentioned transceiver circuit, interface or interface circuit is used for reading and writing code or data, or the above-mentioned transceiver circuit, interface or interface circuit is used for signal transmission or transmission.
进一步的,收发模块1701用于执行上述图5对应的实施例中的步骤501、步骤503,步骤504和步骤506。处理模块1702用于执行上述图5对应的实施例中的步骤502和步骤505。Further, the transceiver module 1701 is configured to execute step 501 , step 503 , step 504 and step 506 in the above-mentioned embodiment corresponding to FIG. 5 . The processing module 1702 is configured to execute step 502 and step 505 in the above-mentioned embodiment corresponding to FIG. 5 .
具体的,在一种可选的实现方式中,处理模块1702还具体用于:根据目的端的第一IP地址确定第二加速节点;建立第一IP地址与第二加速节点的对应关系;根据对应关系 生成位置路由表。Specifically, in an optional implementation manner, the processing module 1702 is further specifically configured to: determine the second acceleration node according to the first IP address of the destination; establish a correspondence between the first IP address and the second acceleration node; Relationships generate location routing tables.
在一种可选的实现方式中,当目的端是云区域时,处理模块1702,还用于根据第一IP地址确定云区域中部署的第二加速节点。In an optional implementation manner, when the destination terminal is the cloud area, the processing module 1702 is further configured to determine the second acceleration node deployed in the cloud area according to the first IP address.
在一种可选的实现方式中,当目的端是终端或服务器时,处理模块1702,还用于根据第一IP地址查询IP地址库,确定目的端的物理位置;确定距离物理位置最近的第二加速节点。In an optional implementation manner, when the destination terminal is a terminal or a server, the processing module 1702 is further configured to query the IP address database according to the first IP address to determine the physical location of the destination terminal; determine the second closest to the physical location. Speed up nodes.
在一种可选的实现方式中,第一终端中配置有SDK插件,SDK插件中预置有中心控制器的地址信息;收发模块1701,还用于接收第一终端发送的请求;根据请求向第一终端反馈第一加速节点的IP地址,第一加速节点的IP地址用于第一终端利用SDK隧道向第一加速节点发送数据请求。In an optional implementation manner, an SDK plug-in is configured in the first terminal, and the address information of the central controller is preset in the SDK plug-in; the transceiver module 1701 is further configured to receive a request sent by the first terminal; The first terminal feeds back the IP address of the first acceleration node, and the IP address of the first acceleration node is used by the first terminal to send a data request to the first acceleration node by using the SDK tunnel.
在一种可选的实现方式中,收发模块1701,还用于向网络管理系统发送引流信息,引流信息包括目的端的IP信息,引流信息用于触发网络管理系统向第一网络设备发送ACL策略指令,第二加速节点是部署于第一网络设备中的加速节点,ACL策略指令用于触发第一网络设备将来自第一终端的数据请求引导至第一加速节点。In an optional implementation manner, the transceiver module 1701 is further configured to send traffic diversion information to the network management system, the traffic diversion information includes IP information of the destination end, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device , the second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
在一种可选的实现方式中,收发模块1701,还用于获取模式参数,模式参数包括第一模式和第二模式,其中,第一模式用于指示网络加速服务的目的端是云区域,第二模式用于指示网络加速服务的目的端是第二终端或服务器。In an optional implementation manner, the transceiver module 1701 is further configured to acquire a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is a cloud area, The second mode is used to indicate that the destination of the network acceleration service is the second terminal or the server.
参阅图18所示,本申请实施例提供了一种中心控制器,该中心控制器1800用于实现上述方法实施例中中心控制器所执行的方法,具体可以参见上述方法实施例中的说明。Referring to FIG. 18 , an embodiment of the present application provides a central controller, and the central controller 1800 is used to implement the method executed by the central controller in the above method embodiments. For details, please refer to the descriptions in the above method embodiments.
中心控制器1800可以包括一个或多个处理器1801,处理器1801也可以称为处理单元,可以实现一定的控制功能。处理器1801可以是通用处理器或者专用处理器等。中央处理器可以用于对中心控制器进行控制,执行软件程序,处理软件程序的数据。The central controller 1800 may include one or more processors 1801, and the processors 1801 may also be referred to as processing units, which may implement certain control functions. The processor 1801 may be a general-purpose processor or a special-purpose processor, or the like. The central processing unit can be used to control the central controller, execute software programs, and process data of the software programs.
在一种可选的设计中,处理器1801也可以存有指令1803,指令1803可以被处理器运行,使得中心控制器1800执行上述方法实施例中描述的方法。In an optional design, the processor 1801 may also store instructions 1803, and the instructions 1803 may be executed by the processor, so that the central controller 1800 executes the methods described in the above method embodiments.
在另一种可选的设计中,处理器1801中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。In another optional design, the processor 1801 may include a transceiver unit for implementing the functions of receiving and transmitting. For example, the transceiver unit may be a transceiver circuit, or an interface, or an interface circuit. Transceiver circuits, interfaces or interface circuits used to implement receiving and transmitting functions may be separate or integrated. The above-mentioned transceiver circuit, interface or interface circuit can be used for reading and writing code/data, or the above-mentioned transceiver circuit, interface or interface circuit can be used for signal transmission or transmission.
在又一种可能的设计中,中心控制器1800可以包括电路,所述电路可以实现上述方法实施例中发送或接收的功能。In another possible design, the central controller 1800 may include a circuit, and the circuit may implement the function of sending or receiving in the above method embodiments.
中心控制器1800中可以包括一个或多个存储器1802,其上可以存有指令1804,所述指令可在所述处理器上被运行,使得中心控制器1800执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。The central controller 1800 may include one or more memories 1802 on which instructions 1804 may be stored, and the instructions may be executed on the processor, so that the central controller 1800 executes the methods described in the above method embodiments. Optionally, data may also be stored in the memory. Optionally, instructions and/or data may also be stored in the processor. The processor and the memory can be provided separately or integrated together.
可选地,中心控制器1800还可以包括收发器1805和/或天线1806。所述处理器1801可以称为处理单元,对所述中心控制器1800进行控制。所述收发器1805可以称为收发单 元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。Optionally, the central controller 1800 may further include a transceiver 1805 and/or an antenna 1806 . The processor 1801 may be called a processing unit, and controls the central controller 1800 . The transceiver 1805 may be referred to as a transceiver unit, a transceiver, a transceiver circuit, a transceiver device or a transceiver module, etc., and is used to implement a transceiver function.
本申请实施例一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述方法实施例中中心控制器执行的方法。An embodiment of the present application is a computer program product, the computer program product includes computer program code, and when the computer program code is executed by a computer, enables the computer to implement the method executed by the central controller in the above method embodiments.
本申请实施例一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码被计算机执行时,使得计算机实现上述方法实施例中第一加速节点所执行的方法。An embodiment of the present application is a computer program product. The computer program product includes computer program code, which, when executed by a computer, enables the computer to implement the method executed by the first acceleration node in the above method embodiments.
本申请实施例一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述方法实施例中中心控制器所执行的方法。An embodiment of the present application is a computer-readable storage medium for storing a computer program or instruction, which, when executed, causes the computer to execute the method executed by the central controller in the above method embodiment.
本申请实施例一种计算机可读存储介质,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述方法实施例中第一加速节点所执行的方法。An embodiment of the present application is a computer-readable storage medium for storing a computer program or instruction, and when the computer program or instruction is executed, the computer executes the method executed by the first acceleration node in the foregoing method embodiment.
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。As mentioned above, the above embodiments are only used to illustrate the technical solutions of the present application, but not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand: The technical solutions described in the embodiments are modified, or some technical features thereof are equivalently replaced; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions in the embodiments of the present application.

Claims (32)

  1. 一种数据转发方法,其特征在于,应用于通信系统中的第一加速节点,所述通信系统包括中心控制器和多个加速节点,所述多个加速节点包括所述第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;A data forwarding method, characterized by being applied to a first acceleration node in a communication system, the communication system comprising a central controller and a plurality of acceleration nodes, the plurality of acceleration nodes including the first acceleration node and the first acceleration node Two acceleration nodes, wherein the deployment environment of the central controller belongs to a first cloud service provider, and the deployment environments of the multiple acceleration nodes belong to a second cloud service provider, an application service provider or a telecom operator;
    所述第一加速节点接收来自第一终端的数据请求,所述数据请求用于访问目的端;The first acceleration node receives a data request from the first terminal, where the data request is used to access the destination;
    所述第一加速节点获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;The first acceleration node obtains a target path, and the target path comes from a routing table entry generated by the central controller;
    所述第一加速节点根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。The first acceleration node sends the data request to the next-hop acceleration node according to the target path, until the data request is forwarded to the second acceleration node, and the second acceleration node is used for converting the data The request is forwarded to the destination.
  2. 根据权利要求1所述的方法,其特征在于,所述路由表项包括源路由表和位置路由表;所述方法还包括:The method according to claim 1, wherein the routing table entry comprises a source routing table and a location routing table; the method further comprises:
    所述第一加速节点接收所述中心控制器发送的源路由表和位置路由表,所述源路由表包括从源加速节点到目的加速节点的路径,所述位置路由表包括第一IP地址和第二加速节点的对应关系,所述第一IP地址是用户申请网络加速服务的目的端的IP地址;The first acceleration node receives the source routing table and the location routing table sent by the central controller, the source routing table includes a path from the source acceleration node to the destination acceleration node, and the location routing table includes the first IP address and the location routing table. The corresponding relationship of the second acceleration node, the first IP address is the IP address of the destination end where the user applies for the network acceleration service;
    所述第一加速节点获取目标路径,包括:The first acceleration node obtains the target path, including:
    当所述数据请求的目的地址是所述第一IP地址时,所述第一加速节点查询所述位置路由表,确定与所述第一IP地址对应的第二加速节点,所述第二加速节点是目的加速节点;When the destination address of the data request is the first IP address, the first acceleration node queries the location routing table to determine a second acceleration node corresponding to the first IP address, and the second acceleration node The node is the destination acceleration node;
    当所述第一加速节点是源加速节点时,所述第一加速节点根据所述第二加速节点查询所述源路由表,确定从所述第一加速节点到所述第二加速节点的目标路径。When the first acceleration node is a source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines a destination from the first acceleration node to the second acceleration node path.
  3. 根据权利要求2所述的方法,其特征在于,所述第一加速节点接收所述中心控制器发送的源路由表之前,所述方法还包括:The method according to claim 2, wherein before the first acceleration node receives the source routing table sent by the central controller, the method further comprises:
    所述第一加速节点测量所述第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;The first acceleration node measures a link state between the first acceleration node and a neighbor acceleration node to obtain link state information;
    所述第一加速节点向所述中心控制器发送所述链路状态信息,所述链路状态信息用于所述中心控制器生成所述源路由表。The first acceleration node sends the link state information to the central controller, where the link state information is used by the central controller to generate the source routing table.
  4. 根据权利要求1-3中任一项所述的方法,其特征在于,所述第一终端内配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址,所述第一加速节点接收来自第一终端的数据请求,包括:The method according to any one of claims 1-3, wherein an SDK plug-in is configured in the first terminal, the address of the central controller is preset in the SDK plug-in, and the first terminal is configured with an SDK plug-in. The acceleration node receives the data request from the first terminal, including:
    所述第一加速节点通过SDK隧道从所述第一终端接收SDK封装数据,所述SDK封装数据是对所述数据请求进行封装后的数据,所述SDK封装数据的头部中的目的地址是所述第一加速节点的IP地址,所述头部中的源地址是所述第一终端的IP地址。The first acceleration node receives SDK package data from the first terminal through the SDK tunnel, the SDK package data is the data after the data request is packaged, and the destination address in the header of the SDK package data is The IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal.
  5. 根据权利要求1-3中任一项所述的方法,其特征在于,所述第一加速节点的部署环境是第一网络设备,所述第一网络设备用于接收访问控制列表ACL策略指令,所述ACL策略指令用于触发所述第一网络设备将目的地址是第一IP地址的数据引导至所述第一加速节点;所述第一加速节点接收来自第一终端的数据请求,包括:The method according to any one of claims 1-3, wherein the deployment environment of the first acceleration node is a first network device, and the first network device is configured to receive an access control list (ACL) policy instruction, The ACL policy instruction is used to trigger the first network device to guide the data whose destination address is the first IP address to the first acceleration node; the first acceleration node receives the data request from the first terminal, including:
    所述第一加速节点接收所述第一网络设备根据ACL策略指令引导的来自所述第一终端的数据请求。The first acceleration node receives a data request from the first terminal guided by the first network device according to the ACL policy instruction.
  6. 根据权利要求1-3中任一项所述的方法,其特征在于,所述第一加速节点的部署环境是局域网中的设备,所述第一终端是所述局域网中的终端,所述第一加速节点接收来自第一终端的数据请求,包括:The method according to any one of claims 1-3, wherein the deployment environment of the first acceleration node is a device in a local area network, the first terminal is a terminal in the local area network, and the first acceleration node is a terminal in the local area network. An acceleration node receives the data request from the first terminal, including:
    所述第一加速节点通过所述局域网接收来自所述第一终端的数据请求。The first acceleration node receives a data request from the first terminal through the local area network.
  7. 根据权利要求1所述的方法,其特征在于,所述目的端是云区域,或者,所述目的端是第二终端或服务器。The method according to claim 1, wherein the destination end is a cloud area, or the destination end is a second terminal or a server.
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述部署环境包括云区域,接入点POP,边缘云,光线路终端OLT,或多接入边缘计算设备MEC。The method according to any one of claims 1-7, wherein the deployment environment includes a cloud area, an access point POP, an edge cloud, an optical line terminal OLT, or a multi-access edge computing device MEC.
  9. 一种数据转发方法,其特征在于,应用于通信系统中的中心控制器,所述通信系统包括中心控制器和部署于各种部署环境中的多个加速节点,所述多个加速节点包括第一加速节点和第二加速节点,所述方法包括:A data forwarding method, characterized in that it is applied to a central controller in a communication system, the communication system comprising a central controller and a plurality of acceleration nodes deployed in various deployment environments, the plurality of acceleration nodes comprising a first An acceleration node and a second acceleration node, the method includes:
    所述中心控制器获取所述加速节点发送的链路状态信息;obtaining, by the central controller, the link status information sent by the acceleration node;
    所述中心控制器根据所述链路状态信息生成源路由表,所述源路由表包含从源加速节点到目的加速节点的路径;The central controller generates a source routing table according to the link state information, and the source routing table includes a path from the source acceleration node to the destination acceleration node;
    所述中心控制器获取用户申请网络加速服务的目的端的第一IP地址;The central controller obtains the first IP address of the destination end where the user applies for the network acceleration service;
    所述中心控制器生成位置路由表,所述位置路由表包括所述第一IP地址与第二加速节点的对应关系;The central controller generates a location routing table, and the location routing table includes the correspondence between the first IP address and the second acceleration node;
    所述中心控制器向所述第一加速节点发送所述位置路由表和所述第一加速节点对应的源路由表,所述位置路由表用于引导所述第一加速节点根据第一IP地址确定所述第二加速节点,所述第一IP地址是来自第一终端的数据请求的目的地址,所述源路由表用于所述第一加速节点获取目标路径,所述目标路径用于引导所述数据请求转发至所述第二加速节点,所述第二加速节点用于将所述数据转发到所述目的端。The central controller sends the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node, where the location routing table is used to guide the first acceleration node according to the first IP address Determine the second acceleration node, the first IP address is the destination address of the data request from the first terminal, the source routing table is used for the first acceleration node to obtain a target path, and the target path is used for guiding The data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data to the destination.
  10. 根据权利要求9所述的方法,其特征在于,所述中心控制器生成位置路由表,包括:The method of claim 9, wherein the central controller generates a location routing table, comprising:
    所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点;The central controller determines the second acceleration node according to the first IP address of the destination;
    所述中心控制器建立所述第一IP地址与所述第二加速节点的对应关系;The central controller establishes a correspondence between the first IP address and the second acceleration node;
    所述中心控制器根据所述对应关系生成位置路由表。The central controller generates a location routing table according to the corresponding relationship.
  11. 根据权利要求10所述的方法,其特征在于,当所述目的端是云区域时,所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点,包括:The method according to claim 10, wherein when the destination terminal is a cloud area, the central controller determines the second acceleration node according to the first IP address of the destination terminal, comprising:
    所述中心控制器根据所述第一IP地址确定所述云区域中部署的第二加速节点。The central controller determines the second acceleration node deployed in the cloud area according to the first IP address.
  12. 根据权利要求10所述的方法,其特征在于,当所述目的端是终端或服务器时,所述中心控制器根据所述目的端的第一IP地址确定所述第二加速节点,包括:The method according to claim 10, wherein when the destination is a terminal or a server, the central controller determines the second acceleration node according to the first IP address of the destination, comprising:
    所述中心控制器根据所述第一IP地址查询IP地址库,确定所述目的端的物理位置;The central controller queries an IP address database according to the first IP address, and determines the physical location of the destination;
    所述中心控制器确定距离所述物理位置最近的所述第二加速节点。The central controller determines the second acceleration node closest to the physical location.
  13. 根据权利要求10-12中任一项所述的方法,其特征在于,所述第一终端中配置有 SDK插件,所述SDK插件中预置有所述中心控制器的地址信息;所述方法还包括:The method according to any one of claims 10-12, wherein an SDK plug-in is configured in the first terminal, and address information of the central controller is preset in the SDK plug-in; the method Also includes:
    所述中心中控器接收所述第一终端发送的请求;receiving, by the central controller, the request sent by the first terminal;
    所述中心控制器根据所述请求向所述第一终端反馈所述第一加速节点的IP地址,所述第一加速节点的IP地址用于所述第一终端利用SDK隧道向所述第一加速节点发送所述数据请求。The central controller feeds back the IP address of the first acceleration node to the first terminal according to the request, and the IP address of the first acceleration node is used by the first terminal to use the SDK tunnel to report to the first terminal. The acceleration node sends the data request.
  14. 根据权利要求9-12中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 9-12, wherein the method further comprises:
    所述中心控制器向网络管理系统发送引流信息,所述引流信息包括所述目的端的IP信息,所述引流信息用于触发所述网络管理系统向第一网络设备发送ACL策略指令,所述第二加速节点是部署于所述第一网络设备中的加速节点,所述ACL策略指令用于触发所述第一网络设备将来自所述第一终端的数据请求引导至所述第一加速节点。The central controller sends traffic diversion information to the network management system, where the traffic diversion information includes IP information of the destination terminal, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device, and the first The second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first acceleration node.
  15. 根据权利要求9所述的方法,其特征在于,所述方法还包括:The method according to claim 9, wherein the method further comprises:
    所述中心控制器获取模式参数,所述模式参数包括第一模式和第二模式,其中,所述第一模式用于指示网络加速服务的目的端是云区域,所述第二模式用于指示网络加速服务的目的端是第二终端或服务器。The central controller acquires a mode parameter, the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is a cloud area, and the second mode is used to indicate The destination end of the network acceleration service is the second terminal or server.
  16. 一种加速节点,其特征在于,包含于通信系统,所述通信系统包括中心控制器和多个所述加速节点,多个所述加速节点包括第一加速节点和第二加速节点,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商;所述第一加速节点包括:An acceleration node, characterized in that it is included in a communication system, the communication system includes a central controller and a plurality of the acceleration nodes, and the plurality of the acceleration nodes includes a first acceleration node and a second acceleration node, wherein the The deployment environment of the central controller belongs to a first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to a second cloud service provider, an application service provider or a telecom operator; the first acceleration node includes:
    转发模块,用于接收来自第一终端的数据请求,所述数据请求用于访问目的端;a forwarding module, configured to receive a data request from the first terminal, where the data request is used to access the destination;
    控制模块,用于获取目标路径,所述目标路径来自于所述中心控制器生成的路由表项;a control module, configured to obtain a target path, the target path is from a routing table entry generated by the central controller;
    所述转发模块,用于根据所述目标路径向下一跳加速节点发送所述数据请求,直到所述数据请求被转发至所述第二加速节点,所述第二加速节点用于将所述数据请求转发至目的端。The forwarding module is configured to send the data request to the next-hop acceleration node according to the target path until the data request is forwarded to the second acceleration node, and the second acceleration node is configured to forward the data request to the second acceleration node. The data request is forwarded to the destination.
  17. 根据权利要求16所述的加速节点,其特征在于,所述路由表项包括源路由表和位置路由表;The acceleration node according to claim 16, wherein the routing table entry comprises a source routing table and a location routing table;
    所述控制模块,还用于接收所述中心控制器发送的源路由表和位置路由表,所述源路由表包括从源加速节点到目的加速节点的路径,所述位置路由表包括第一IP地址和第二加速节点的对应关系,所述第一IP地址是用户申请网络加速服务的目的端的IP地址;The control module is further configured to receive a source routing table and a location routing table sent by the central controller, where the source routing table includes a path from a source acceleration node to a destination acceleration node, and the location routing table includes a first IP address The corresponding relationship between the address and the second acceleration node, the first IP address is the IP address of the destination end where the user applies for the network acceleration service;
    当所述数据请求的目的地址是所述第一IP地址时,所述第一加速节点查询所述位置路由表,确定与所述第一IP地址对应的第二加速节点,所述第二加速节点是目的加速节点;When the destination address of the data request is the first IP address, the first acceleration node queries the location routing table to determine a second acceleration node corresponding to the first IP address, and the second acceleration node The node is the destination acceleration node;
    当所述第一加速节点是源加速节点时,所述第一加速节点根据所述第二加速节点查询所述源路由表,确定从所述第一加速节点到所述第二加速节点的目标路径。When the first acceleration node is a source acceleration node, the first acceleration node queries the source routing table according to the second acceleration node, and determines a destination from the first acceleration node to the second acceleration node path.
  18. 根据权利要求17所述的加速节点,其特征在于,The acceleration node according to claim 17, wherein,
    所述转发模块,还用于测量所述第一加速节点与邻居加速节点间的链路状态,得到链路状态信息;The forwarding module is further configured to measure the link state between the first acceleration node and the neighbor acceleration node to obtain link state information;
    所述控制模块,还用于向所述中心控制器发送所述转发模块获取的所述链路状态信息,所述链路状态信息用于所述中心控制器生成所述源路由表。The control module is further configured to send the link state information obtained by the forwarding module to the central controller, where the link state information is used by the central controller to generate the source routing table.
  19. 根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一终端内配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址;The acceleration node according to any one of claims 16-18, wherein an SDK plug-in is configured in the first terminal, and an address of the central controller is preset in the SDK plug-in;
    所述转发模块,还用于通过SDK隧道从所述第一终端接收SDK封装数据,所述SDK封装数据是对所述数据请求进行封装后的数据,所述SDK封装数据的头部中的目的地址是所述第一加速节点的IP地址,所述头部中的源地址是所述第一终端的IP地址。The forwarding module is further configured to receive SDK encapsulation data from the first terminal through the SDK tunnel, where the SDK encapsulation data is the data after encapsulating the data request, and the purpose in the header of the SDK encapsulation data The address is the IP address of the first acceleration node, and the source address in the header is the IP address of the first terminal.
  20. 根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一加速节点的部署环境是第一网络设备,所述第一网络设备用于接收访问控制列表ACL策略指令,所述ACL策略指令用于触发所述第一网络设备将目的地址是第一IP地址的数据引导至所述第一加速节点;The acceleration node according to any one of claims 16-18, wherein a deployment environment of the first acceleration node is a first network device, and the first network device is configured to receive an access control list (ACL) policy instruction , the ACL policy instruction is used to trigger the first network device to guide the data whose destination address is the first IP address to the first acceleration node;
    所述转发模块,还用于接收所述第一网络设备根据ACL策略指令引导的来自所述第一终端的数据请求。The forwarding module is further configured to receive a data request from the first terminal guided by the first network device according to the ACL policy instruction.
  21. 根据权利要求16-18中任一项所述的加速节点,其特征在于,所述第一加速节点的部署环境是局域网中的设备,所述第一终端是所述局域网中的终端;The acceleration node according to any one of claims 16-18, wherein the deployment environment of the first acceleration node is a device in a local area network, and the first terminal is a terminal in the local area network;
    所述转发模块,还用于通过所述局域网接收来自所述第一终端的数据请求。The forwarding module is further configured to receive a data request from the first terminal through the local area network.
  22. 一种中心控制器,其特征在于,包括:A central controller, comprising:
    收发模块,用于获取加速节点发送的链路状态信息;The transceiver module is used to obtain the link status information sent by the acceleration node;
    处理模块,用于根据所述收发模块获取的所述链路状态信息生成源路由表,所述源路由表包含从源加速节点到目的加速节点的路径;a processing module, configured to generate a source routing table according to the link state information acquired by the transceiver module, where the source routing table includes a path from a source acceleration node to a destination acceleration node;
    所述收发模块,用于获取用户申请网络加速服务的目的端的第一IP地址;The transceiver module is used to obtain the first IP address of the destination end for which the user applies for the network acceleration service;
    所述处理模块,还用于生成位置路由表,所述位置路由表包括所述第一IP地址与第二加速节点的对应关系;The processing module is further configured to generate a location routing table, where the location routing table includes the correspondence between the first IP address and the second acceleration node;
    所述收发模块,还用于向所述第一加速节点发送所述位置路由表和所述第一加速节点对应的源路由表,所述位置路由表用于引导所述第一加速节点根据第一IP地址确定所述第二加速节点,所述第一IP地址是来自第一终端的数据请求的目的地址,所述源路由表用于所述第一加速节点获取目标路径,所述目标路径用于引导所述数据请求转发至所述第二加速节点,所述第二加速节点用于将所述数据转发到所述目的端。The transceiver module is further configured to send the location routing table and the source routing table corresponding to the first acceleration node to the first acceleration node, where the location routing table is used to guide the first acceleration node according to the first acceleration node. An IP address determines the second acceleration node, the first IP address is the destination address of the data request from the first terminal, and the source routing table is used for the first acceleration node to obtain a target path, and the target path is used to direct the data request to be forwarded to the second acceleration node, and the second acceleration node is used to forward the data to the destination end.
  23. 根据权利要求22所述的中心控制器,其特征在于,所述处理模块还具体用于:根据所述目的端的第一IP地址确定所述第二加速节点;建立所述第一IP地址与所述第二加速节点的对应关系;根据所述对应关系生成位置路由表。The central controller according to claim 22, wherein the processing module is further configured to: determine the second acceleration node according to the first IP address of the destination; establish the first IP address and the The corresponding relationship of the second acceleration node is generated; the location routing table is generated according to the corresponding relationship.
  24. 根据权利要求23所述的中心控制器,其特征在于,当所述目的端是云区域时,The central controller according to claim 23, wherein when the destination is a cloud area,
    所述处理模块,还用于根据所述第一IP地址确定所述云区域中部署的第二加速节点。The processing module is further configured to determine the second acceleration node deployed in the cloud area according to the first IP address.
  25. 根据权利要求23所述的中心控制器,其特征在于,当所述目的端是终端或服务器时,所述处理模块,还用于根据所述第一IP地址查询IP地址库,确定所述目的端的物理位置;确定距离所述物理位置最近的所述第二加速节点。The central controller according to claim 23, wherein when the destination terminal is a terminal or a server, the processing module is further configured to query an IP address database according to the first IP address to determine the destination physical location of the terminal; determine the second acceleration node closest to the physical location.
  26. 根据权利要求22-25中任一项所述的中心控制器,其特征在于,The central controller according to any one of claims 22-25, characterized in that,
    所述第一终端中配置有SDK插件,所述SDK插件中预置有所述中心控制器的地址信息;The first terminal is configured with an SDK plug-in, and the SDK plug-in is preset with the address information of the central controller;
    所述收发模块,还用于接收所述第一终端发送的请求;根据所述请求向所述第一终端 反馈所述第一加速节点的IP地址,所述第一加速节点的IP地址用于所述第一终端利用SDK隧道向所述第一加速节点发送所述数据请求。The transceiver module is further configured to receive a request sent by the first terminal; and feed back the IP address of the first acceleration node to the first terminal according to the request, where the IP address of the first acceleration node is used for The first terminal sends the data request to the first acceleration node by using the SDK tunnel.
  27. 根据权利要求22-25中任一项所述的中心控制器,其特征在于,The central controller according to any one of claims 22-25, characterized in that,
    所述收发模块,还用于向网络管理系统发送引流信息,所述引流信息包括所述目的端的IP信息,所述引流信息用于触发所述网络管理系统向第一网络设备发送ACL策略指令,所述第二加速节点是部署于所述第一网络设备中的加速节点,所述ACL策略指令用于触发所述第一网络设备将来自所述第一终端的数据请求引导至所述第一加速节点。The transceiver module is further configured to send traffic diversion information to the network management system, where the traffic diversion information includes IP information of the destination terminal, and the traffic diversion information is used to trigger the network management system to send an ACL policy instruction to the first network device, The second acceleration node is an acceleration node deployed in the first network device, and the ACL policy instruction is used to trigger the first network device to direct the data request from the first terminal to the first network device Speed up nodes.
  28. 根据权利要求22所述的中心控制器,其特征在于,The central controller of claim 22, wherein:
    所述收发模块,还用于获取模式参数,所述模式参数包括第一模式和第二模式,其中,所述第一模式用于指示网络加速服务的目的端是云区域,所述第二模式用于指示网络加速服务的目的端是第二终端或服务器。The transceiver module is further configured to acquire a mode parameter, where the mode parameter includes a first mode and a second mode, wherein the first mode is used to indicate that the destination of the network acceleration service is a cloud area, and the second mode The destination used to indicate the network acceleration service is the second terminal or the server.
  29. 一种通信系统,其特征在于,包括多个如权利要求16至21中任一项所述的加速节点和如权利要求22至28中任一项所述的中心控制器,其中,所述中心控制器的部署环境属于第一云服务提供商,所述多个加速节点的部署环境属于第二云服务提供商,应用服务提供商或电信运营商。A communication system, characterized by comprising a plurality of acceleration nodes as claimed in any one of claims 16 to 21 and a central controller as claimed in any one of claims 22 to 28, wherein the center The deployment environment of the controller belongs to the first cloud service provider, and the deployment environment of the multiple acceleration nodes belongs to the second cloud service provider, an application service provider or a telecommunication operator.
  30. 一种中心控制器,其特征在于,包括处理器,所述处理器与至少一个存储器耦合,所述处理器用于读取所述至少一个存储器所存储的计算机程序,使得所述中心控制器执行如权利要求9至15中任一项所述的方法。A central controller is characterized in that, comprises a processor, and the processor is coupled with at least one memory, and the processor is used to read the computer program stored in the at least one memory, so that the central controller executes the following steps: The method of any one of claims 9 to 15.
  31. 一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,其特征在于,当所述计算机程序代码被计算机执行时,使得计算机实现上述如权利要求1至8中任一项所述的方法;或者,使得计算机实现上述如权利要求9至15中任一项所述的方法。A computer program product, comprising computer program code, characterized in that, when the computer program code is executed by a computer, the computer is made to implement the method according to any one of claims 1 to 8 ; or, causing a computer to implement the above method as claimed in any one of claims 9 to 15.
  32. 一种计算机可读存储介质,其特征在于,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行如权利要求1至8中任一项所述的方法;或者,使得计算机实现上述如权利要求9至15中任一项所述的方法。A computer-readable storage medium, characterized in that it is used for storing computer programs or instructions, which, when executed, cause a computer to execute the method according to any one of claims 1 to 8; A computer implements the method of any one of claims 9 to 15 above.
PCT/CN2022/086603 2021-04-16 2022-04-13 Data forwarding method and related apparatus WO2022218341A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110411432.1A CN115225631A (en) 2021-04-16 2021-04-16 Data forwarding method and related device
CN202110411432.1 2021-04-16

Publications (1)

Publication Number Publication Date
WO2022218341A1 true WO2022218341A1 (en) 2022-10-20

Family

ID=83605570

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/086603 WO2022218341A1 (en) 2021-04-16 2022-04-13 Data forwarding method and related apparatus

Country Status (2)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111277630A (en) * 2020-01-13 2020-06-12 腾讯科技(深圳)有限公司 Routing control method and device, electronic equipment and storage medium
CN111683013A (en) * 2020-06-08 2020-09-18 腾讯科技(深圳)有限公司 Routing method of acceleration network and acceleration network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111277630A (en) * 2020-01-13 2020-06-12 腾讯科技(深圳)有限公司 Routing control method and device, electronic equipment and storage medium
CN111683013A (en) * 2020-06-08 2020-09-18 腾讯科技(深圳)有限公司 Routing method of acceleration network and acceleration network

Also Published As

Publication number Publication date
CN115225631A (en) 2022-10-21

Similar Documents

Publication Publication Date Title
JP7079866B2 (en) Packet processing method and device
CN111885075B (en) Container communication method, device, network equipment and storage medium
US10469442B2 (en) Adaptive resolution of domain name requests in virtual private cloud network environments
US8396954B2 (en) Routing and service performance management in an application acceleration environment
US9800496B2 (en) Data center networks
US10104633B1 (en) Active position driven mobility content delivery in information centric networks
WO2021073565A1 (en) Service providing method and system
CN114374581A (en) Enterprise Virtual Private Network (VPN) and Virtual Private Cloud (VPC) conglutination
JP7413415B2 (en) Communication method, gateway, and management method and device in a hybrid cloud environment
CN105264493A (en) Dynamic virtual machines migration over information centric networks
CN110896553A (en) Multi-access edge computing method and platform and communication system
CN111327531B (en) VDC-based routing configuration method, device, equipment and readable storage medium
CN112671938B (en) Business service providing method and system and remote acceleration gateway
US10397791B2 (en) Method for auto-discovery in networks implementing network slicing
US9584340B2 (en) Data center networks
Aazam et al. Impact of ipv4-ipv6 coexistence in cloud virtualization environment
WO2022218341A1 (en) Data forwarding method and related apparatus
CN115150312B (en) Routing method and device
CN108040137A (en) A kind of domain name analytic method, gateway and network system
KR20170099710A (en) Apparatus and method for providing network service in distributed cloud
CN111464449B (en) Inter-domain flow localization exchange method
WO2023228249A1 (en) Communication path control system, communication terminal, relay device, communication path control method, and program
US20240044739A1 (en) System and method for selecting virtual appliances in communications with virtual private cloud networks
WO2024113867A1 (en) Communication method and apparatus
JP5810047B2 (en) Communication system and packet communication method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22787563

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22787563

Country of ref document: EP

Kind code of ref document: A1