WO2020249129A1 - 一种网络路由方法及装置 - Google Patents

一种网络路由方法及装置 Download PDF

Info

Publication number
WO2020249129A1
WO2020249129A1 PCT/CN2020/096175 CN2020096175W WO2020249129A1 WO 2020249129 A1 WO2020249129 A1 WO 2020249129A1 CN 2020096175 W CN2020096175 W CN 2020096175W WO 2020249129 A1 WO2020249129 A1 WO 2020249129A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow
service
data
network node
entry
Prior art date
Application number
PCT/CN2020/096175
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to EP20822347.9A priority Critical patent/EP3972208A4/en
Publication of WO2020249129A1 publication Critical patent/WO2020249129A1/zh
Priority to US17/549,183 priority patent/US20220103476A1/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
    • H04L45/02Topology update or discovery
    • 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
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Definitions

  • the embodiments of the present application relate to the field of communication technologies, and in particular, to a network routing method and device.
  • Anycast technology was proposed.
  • the Chinese translation of Anycast mainly includes “anycast”, “fancast”, “selection”, etc.
  • anycast can be used, or the English word "Anycast” can be used directly.
  • Multiple service nodes that provide the same service on the network can be identified by a service address externally.
  • the client accesses the service, it does not pay attention to which service node the requested service is executed.
  • the client only needs to provide the service address of the access request to the network.
  • the network receives the service address sent by the client, and can route the access request to any service node that can provide the service.
  • the data message of the client may reach the service node through one or more network nodes (for example, a switch or router), and the data message returned by the service node may also reach the client through one or more network nodes.
  • the transmission path of the network node through which the client's data message passes may be referred to as the uplink path, and the transmission path of the network node through which the data message returned by the service node passes may be referred to as the downlink path.
  • the process of transmitting data packets on the upstream path and the downstream path can be called a stream.
  • the service flow of the client needs to be kept on the same service node, so the flow of the client accessing the same service needs to maintain flow affinity, which is the transmission path of the network node through which the data packet passes. the same.
  • the network may route the same user's data message to different service nodes, or may route to the same service node through different paths, so it is difficult to maintain flow stickiness .
  • the network may route the same user's data message to different service nodes, or may route to the same service node through different paths, so it is difficult to maintain flow stickiness .
  • MEC multi-access edge computing
  • the embodiments of the present application provide a network routing method and device, which are used to solve the problems of disconnection, packet loss, or chaotic traffic flow that cannot be maintained due to flow viscosity in the network routing process.
  • a network routing method receives a data message from a client, which is recorded as a first data message.
  • the first data message includes a service identifier, and the network node
  • the identification of the service acquires the flow viscosity attribute information of the service
  • the flow viscosity attribute information of the service includes the flow viscosity type of the service and the flow viscosity timeout time of the service, and the flow viscosity type is used to identify the second
  • One or more data items in a data message are used as keys to identify the data flow to which the first data message belongs; the network node indicates that the first data message is the first data message of the data flow
  • a flow table entry is established according to the flow viscosity attribute information of the service, and the flow table entry is used to forward subsequent data packets of the data flow.
  • the flow table entry is established according to the flow viscosity attribute information, so that subsequent data messages are forwarded according to the flow table entry to meet the flow viscosity requirements of the business.
  • the network node determines the information of the next hop network node to which the first data packet is routed according to the service identifier; the flow table entry also includes the next hop network Information about the node. It is used to realize that subsequent data packets are forwarded according to the information of the same next-hop network node to ensure the flow viscosity of the data stream.
  • the network node receives a second data message from the client, and the second data message includes the service identifier; the network node obtains the service according to the service identifier Service flow viscosity attribute information; the network node determines one or more flow tables corresponding to the flow viscosity type of the service, wherein there is a correspondence between the flow viscosity type of the service and the flow table; the network node determines the If the one or more flow tables include the flow table entry corresponding to the data flow, the second data packet is forwarded according to the flow table entry.
  • the network node determines one or more flow tables corresponding to the flow viscosity type of the service, where there is a correspondence between the flow viscosity type of the service and the flow table; the network node determines If the one or more flow tables do not include the flow table entry corresponding to the data flow, it is determined that the first data packet is the first data packet of the data flow.
  • the establishment of the flow entry is triggered to ensure that the data packets after the first packet can be forwarded according to the flow entry.
  • the network node sends a query message to a management node, and the query message is used to query the flow viscosity attribute information of the service; the network node receives a response to the query message from the management node Message, the response message carries flow viscosity attribute information of the service.
  • the service exposes its own flow viscosity characteristics to the network management node on demand, and the network node diffuses the flow viscosity attribute information according to the service demand, so as to realize the university matching and dynamic adjustment of service demand.
  • the network node receives a notification message from a management node or other network nodes, the notification message carries flow viscosity attribute information of one or more services, and the network node saves the one or more Flow stickiness attribute information of the service, the one or service includes the service indicated by the service identifier in the first data packet.
  • the service exposes its own flow viscosity characteristics to the network management node on demand, and the network node diffuses the flow viscosity attribute information according to the service demand, so as to realize the university matching and dynamic adjustment of service demand.
  • the network node determines that the flow viscosity attribute information of the service has changed according to the notification message; the network node updates the flow entry of the service in the flow table according to the changed attribute information .
  • the flow entry generated by the flow viscosity data can also be adjusted in real time to meet the convective viscosity requirements of various businesses.
  • the network node determines that the timing time in the flow entry exceeds the flow viscosity timeout time, and deletes the flow entry.
  • the flow entry generated by the flow viscosity data can also be adjusted in real time to meet the convective viscosity requirements of various businesses.
  • the network node determines that the route of the data flow has failed, and then deletes the flow entry.
  • the flow entry generated by the flow viscosity data can also be adjusted in real time to meet the convective viscosity requirements of various businesses.
  • the flow table entry also includes one or more of the following information: the service identifier, source Internet Protocol IP address, source port, destination IP address, destination port, and next-hop network node Information.
  • the value of the flow viscosity type includes one or any combination of the following: transmission protocol type, source IP address, source port, destination IP address, and destination port.
  • the value of the flow viscosity type includes network laminar flow viscosity and transport laminar flow viscosity
  • the network laminar flow viscosity value includes a source IP address and a destination IP address
  • the transport laminar flow viscosity value Including the transport layer protocol type, source IP address, source port, destination IP address, and destination port.
  • the stream viscosity attribute information of the service further includes one or more of the following: whether the upstream and downstream transmission paths of the data stream require consistent indication information; the hot switching function of the data stream Indication information, the hot switching function indication information of the data stream includes enabling indication information; backhaul packet timeout timer time information; buffer data stream function indication information; buffer data stream buffer length information; reset indication of the data stream Information, the reset indication information is used to indicate whether the network node monitors the first flag bit of the data message, and reselects the service node that receives the data flow based on the monitoring result and updates the flow table entry; The deletion indication information of the data flow, where the deletion indication information is used to indicate whether the network node monitors the second flag bit of the data packet, and deletes the flow entry of the data flow according to the monitoring result.
  • the flow entry generated by the flow viscosity data can also be adjusted in real time to meet the convective
  • a network routing device which has the function of realizing any possible design of the first aspect and the first aspect.
  • the function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the device can be a chip or an integrated circuit.
  • the device includes a transceiver and a processor, the transceiver is used to communicate with other communication devices, and the processor is used to couple with the memory to execute the program stored in the memory.
  • the device can Perform the method described in the first aspect and any one of the possible designs of the first aspect.
  • the device also includes a memory for storing programs executed by the processor.
  • the device is a network node, switch or router.
  • a chip is provided, the chip is connected to a memory or the chip includes a memory, and is used to read and execute a software program stored in the memory to implement any one of the first aspect and the first aspect described above. Possible design methods described in.
  • a communication system in a fourth aspect, includes a client, a network node, and a service node.
  • the network node is used to execute the method in the first aspect and any possible design.
  • a computer-readable storage medium is provided, and instructions are stored in the computer-readable storage medium, which when run on a computer, cause the computer to execute any of the above-mentioned first aspect and any possible aspect of the first aspect Method in design.
  • a computer program product containing instructions which when running on a computer, enables the computer to execute the method described in the first aspect and any possible design of the first aspect.
  • Figure 1 is a schematic diagram of a network system architecture in an embodiment of the application
  • FIG. 3 is a schematic diagram of a process for a network node to obtain service flow viscosity attribute information in an embodiment of this application;
  • FIG. 4 is a schematic diagram of consistent uplink and downlink transmission paths in an embodiment of the application.
  • FIG. 5 is a schematic diagram of the flow of triggering the creation of a flow entry in an embodiment of the application
  • FIG. 6 is a schematic diagram of the flow of updating flow entries in an embodiment of this application.
  • FIG. 7 is one of the schematic diagrams of the process of deleting flow entry in an embodiment of this application.
  • FIG. 8 is the second schematic diagram of the flow table entry deletion in an embodiment of the application.
  • FIG. 9 is a schematic flow chart of a way to maintain flow viscosity in an embodiment of this application.
  • FIG. 10 is the second schematic flow diagram of the network routing method in the embodiment of this application.
  • FIG. 11 is the third schematic flowchart of the network routing method in the embodiment of this application.
  • FIG. 13 is the second structural diagram of the network routing device in the embodiment of the application.
  • the embodiments of the present application provide a network routing method and device, which are used to maintain flow viscosity in the network routing process.
  • the method and the device are based on the same concept. Since the principles of the method and the device to solve the problem are similar, the implementation of the device and the method can be referred to each other, and the repetition will not be repeated.
  • "and/or" describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A alone exists, and both A and B exist at the same time. There are three cases of B.
  • the character "/" generally indicates that the associated objects are in an "or” relationship.
  • At least one involved in this application refers to one or more; multiple refers to two or more.
  • words such as “first” and “second” are only used for the purpose of distinguishing description, and cannot be understood as indicating or implying relative importance, nor can it be understood as indicating Or imply the order.
  • FIG. 1 shows a schematic diagram of a possible network system architecture to which the network routing method provided in an embodiment of the present application is applicable.
  • the network system 100 includes a network node 101, a client 102 and a service node 103.
  • the system 100 may also include a service management node 104.
  • the number of network nodes 101 and service nodes 103 may each be one or more.
  • the client 102 is used to request the service node 103 to provide services, send the request message or data stream to the service node 103 through the network node 101, and receive the service from the service node 103.
  • the network node 101 is used to obtain the flow viscosity attribute of the service from the service management node 104 and store it locally. When receiving a request message or data flow sent by the client 102, it creates a flow entry according to the flow viscosity attribute to implement the request The forwarding of messages or data streams maintains the flow viscosity of the service.
  • the network node 101 may be a routing device such as a switch or a router.
  • the service node 103 is used to provide services to the client 102.
  • the same service may exist on multiple service nodes 103.
  • multiple service nodes that provide the same service on the network can be identified by a service address.
  • the client 102 only needs to provide the service address for which access is requested.
  • the network node 101 routes the data stream to to provide the service, the client 102 does not care.
  • One or more service instances may run on the service node 103, and different service instances provide services with different functions.
  • the service management node 104 manages the service instances running in each service node and manages the flow viscosity properties of each service.
  • the service management node 104 can provide each network node 101 with the flow viscosity attribute of each service. Among them, the service management node 104 can provide the flow viscosity properties of each service to each network node 101 through a control module.
  • the control module can be a hardware or software module in the service management node 104, such as a component or an interface. .
  • the service management node 104 may be a network management system, for example, an operation support system (OSS).
  • OSS operation support system
  • the serving management node 104 and each network node 101 form a control plane.
  • the client 102, each network node 101 and the service node 103 form a data plane.
  • the control plane is composed of links (thin arrows in FIG. 1) between the management node 104 and each network node 101, and is used to transmit service flow viscosity attribute information.
  • the data plane is composed of links between the client through each network node 101 to the service node 103 (the thick arrow in FIG. 1). In Fig. 1, the client reaches the service node 1 and the service node 2 through two paths respectively to illustrate.
  • Service node 103 uses service node 1, service node 2 and service node 3 as examples in Figure 1.
  • Service node 1 runs service A and service B
  • service node 2 runs service A and service C
  • service node 3 runs service C.
  • the exposed address of service A is IP_A
  • the exposed address of service B is IP_B
  • the exposed address of service C is IP_C.
  • the client wants to access service A, it may be provided by service node 1 or service node 2 or other nodes running service A.
  • the embodiments of the present application can be, but are not limited to, applied to application scenarios such as metropolitan area networks or mobile edge computing (MEC) or multi-access edge computing (MEC).
  • MEC mobile edge computing
  • MEC multi-access edge computing
  • the embodiment of the present application provides a network routing method. The following describes in detail the network routing method provided by the embodiment of the present application.
  • the basic idea of the embodiments of this application is that the network node establishes a flow entry locally, and forwards the incoming data message according to the flow stickiness attribute in the flow entry, thereby ensuring that the same client accesses the flow of the same service and saves the flow. viscosity.
  • the client sends a data message to the network node, and the network node receives the data message from the client.
  • the data message here is recorded as the first data message, and the first data message includes the service identifier.
  • This service is the service that the client wants to access.
  • the network node obtains the flow viscosity attribute information of the service according to the identifier of the service carried in the first data packet.
  • the flow viscosity attribute information includes the flow viscosity type and the flow viscosity timeout time.
  • the flow viscosity type is used to identify which data items in a data message are used as key values (KEY)/keywords/keywords to distinguish different data flows, that is, the flow viscosity type is used to identify which data items in the data message are used as key values To identify the data stream to which the data message belongs.
  • the flow viscosity type of the service obtained by the network node is used to identify one or more data items in the first data packet as a key value to identify the data flow to which the first data packet belongs .
  • the value of the flow viscosity type includes the key value used to distinguish the flow.
  • the so-called key/keyword/keyword can be any one or a combination of multiple members in the five-tuple of the Internet protocol (IP).
  • IP Internet protocol
  • the IP quintuple includes transmission protocol type, source IP address, source port, destination IP address, and destination port.
  • the flow viscosity types include network laminar flow viscosity and transport laminar flow viscosity. Among them, the network laminar flow viscosity identifies a flow through two key values, and the network laminar flow viscosity value includes the source IP address and the destination IP address.
  • Transport layer flow viscosity uses five key values to identify a flow.
  • the transport layer flow viscosity values include transport layer protocol type, source IP address, source port, destination IP address, and destination port.
  • Network layer flow stickiness is used to characterize that services belong to the network layer.
  • Clients and service nodes implement service provision and use through the network layer.
  • the transport layer is used to characterize that the service belongs to the transport layer, and the client and the service node realize the provision and use of the service through the transport layer.
  • the network layer and the transport layer refer to different layers of the protocol stack.
  • the network node can locally store different flow viscosity attribute information corresponding to different services. In this step, the network node can obtain the flow viscosity attribute information corresponding to the service according to the service identifier.
  • the optional manner and optional storage manner for the network node to obtain different flow viscosity attribute information corresponding to different services will be introduced in the embodiment shown in FIG. 3 below.
  • the network node can establish the flow entry according to the flow viscosity attribute information of the service.
  • the network node may maintain a flow table locally, which includes one or more flow table entries, and one flow table entry is used to identify various attribute information of a flow. Among them, the flow entry includes the flow viscosity attribute information of the service.
  • the network node inserts a new flow entry in the flow table, and the flow entry is used for the forwarding of subsequent data packets of this data flow.
  • a network node When a network node forwards a data packet in a data stream according to a flow table entry, it can refer to the flow viscosity attribute information of the service, and maintain the flow viscosity of the data stream according to the flow viscosity attribute information.
  • a flow table entry can also include the service identification, source IP address, source port, destination IP address, destination port, and next-hop network node. Information.
  • the network node performs service addressing or routing according to the service identifier to determine the information of the next hop network node to which the first data message is routed.
  • Service addressing or routing can adopt any method in the prior art, which is not limited in this application. The identification of the service, the source IP address, the source port, the destination IP address, and the destination port are used to distinguish whether the subsequent data packets that arrive belong to this data flow.
  • the client sends a second data message to the network node, and the network node receives the second data message from the client.
  • the second data message includes the service identifier; the service identifier is the same as the service identifier of the first data message in S200 the same.
  • the network node can determine that the second data message and the first data message access the same service.
  • the network node obtains the flow viscosity attribute information of the service according to the service identifier, and the obtaining method is the same as that in S201.
  • one or more flow tables corresponding to the flow viscosity type of the service are determined according to the flow viscosity type of the service in the flow viscosity attribute information.
  • the network node can store the correspondence between different flow viscosity types and different flow tables locally.
  • the flow viscosity type is identified as 1, corresponding to the use of two tuples to distinguish some flow tables of different flows; flow viscosity The type is identified as 2, corresponding to some flow tables that use quintuples to distinguish different flows.
  • the network node searches one or more flow tables corresponding to the service flow viscosity type to see if there is a flow entry corresponding to the data flow to which the second data packet belongs, and if so, forwards the second data packet according to the flow entry, In this way, the second data message can have the same forwarding path as the first data message, and the flow viscosity of the data flow is maintained.
  • the network node in the foregoing S202 may determine that the first data packet is determined when the flow table entry corresponding to the data flow to which the first data packet belongs is not included in one or more flow tables corresponding to the flow viscosity type of the service. It is the first data packet of the data flow, thereby establishing the flow table entry of the data flow.
  • the service management node 104 manages the flow viscosity attribute information of each service, and the network node can obtain the flow viscosity attribute information of the service in two ways: actively acquiring or passively receiving.
  • the network node obtains service flow viscosity attribute information through passive reception.
  • the management node sends a notification message to the network node, and the network node receives the notification message from the management node or other network nodes, and the notification message carries the flow viscosity attribute information of the service.
  • the network node can also actively obtain the flow viscosity attribute information of the service.
  • the network node sends a query message to the management node, and the management node returns a response message based on the query message to the network node, and the response message carries the flow viscosity attribute information of the service.
  • the network node receives the response message from the management node or other network nodes, and obtains the flow viscosity attribute information of the service in the response message.
  • the serving OSS sends a flow stickiness notification message to the management node, and the management node receives the flow stickiness notification message from the serving OSS.
  • the stream stickiness notification message is also called the stream stickiness notification message or the notification message.
  • the service OSS sends a flow viscosity notification message to the management node.
  • the management node After receiving the flow stickiness notification message, the management node parses the message content and saves the flow stickiness attribute information of the service.
  • the management node can store and maintain a flow viscosity data table locally.
  • Each entry in the flow viscosity data table corresponds to the flow viscosity attribute information of a service.
  • the management node sends a flow stickiness notification message to each connected network node, and each network node receives the flow stickiness notification message from the management node or other network nodes.
  • a network node is taken as an example.
  • the network may include multiple network nodes.
  • the action performed by the one network node can be applied to each network node.
  • the network node saves the flow stickiness attribute information of the service in the flow stickiness notification message, or updates the saved data of the flow stickiness attribute information according to the received flow stickiness notification message.
  • the network node may locally form a flow viscosity data table according to the received flow viscosity notification message, or update the locally formed flow viscosity data table according to the received flow viscosity notification message. For example, if the flow stickiness notification message indicates the change or deletion of the flow stickiness attribute information of the service, the network node maintains the corresponding entry in the flow stickiness data table according to the flow stickiness notification message, that is, changes or deletes it.
  • the network node sends a query message to the management node, and the management node receives the query message from the network node.
  • the query message is used to query the flow viscosity properties of one or more services.
  • the network node When the network node is started or the flow stickiness status of a certain service is not accurately determined, it will trigger to send a query message to the management node.
  • the management node After receiving the query message, the management node returns a response message to the network node.
  • the management node queries whether the flow viscosity attribute information of the service is stored locally, and if so, the response message carries the flow viscosity attribute information of the service queried by the network node.
  • each entry is flow viscosity attribute information of a service.
  • An example of a flow viscosity data table is given below. It can be applied to the flow viscosity data table saved and maintained by the management node.
  • the flow viscosity attribute information includes the flow viscosity type and the flow viscosity timeout time, and may also include other additional parameters.
  • Different services are distinguished by service identification ID.
  • the flow viscosity types can be distinguished by different type identifications. For example, identification 1 is used to indicate one flow viscosity type, and identification 2 is used to indicate another flow viscosity type.
  • identification 1 is used to indicate one flow viscosity type
  • identification 2 is used to indicate another flow viscosity type.
  • the label 1 represents the network laminar flow viscosity
  • the label 2 represents the transmission laminar flow viscosity.
  • the flow viscosity type of the service identified as 8.8.8.8 is network laminar flow viscosity, and the flow viscosity timeout time is 30s.
  • the flow viscosity type of the service identified as 11.0.0.11 is network laminar flow viscosity, and the flow viscosity timeout time is 20s.
  • the flow viscosity type of the service identified as 12.5.1.10:80 is transport laminar flow viscosity, and the flow viscosity timeout time is 500ms.
  • the additional parameters in the stream viscosity attribute information may include the following types. Table 2 can be used to illustrate the indication information of each additional parameter.
  • the indication information of each additional parameter is represented by data content, data type, and definition. In this application, "data stream” may also be referred to as “stream” for short.
  • Same_path can be used to indicate the data content of the parameter.
  • the data type is bool.
  • the definition of this parameter is whether the upstream path is required to be consistent. As shown in Figure 4, when the value of this parameter is true, the upstream and downstream transmission paths of the stream are required to be consistent, that is, the backhaul packet needs to be returned according to the source path.
  • the network node establishes a flow table entry according to the flow viscosity attribute information. When transmitting an uplink data message, the routing path and the service node are queried through the flow table entry. If the same_path in the flow viscosity attribute information in the flow table entry is If the value is true, it means that the network node needs to return according to the original transmission path when transmitting the backhaul packet.
  • the hot swap function indication information of the stream including the hot swap function hot_swap_enable indication information of the stream.
  • hot_swap_enable is used to indicate the data content of the parameter, and the data type is bool.
  • the definition of this parameter is whether to support hot stream switching. When the value of this parameter is true, the hot switching function of the stream is enabled.
  • Hot_swap_timeout can be used to identify the data content of the parameter.
  • the data type is long.
  • the definition of this parameter can be the stream hot switching timeout time.
  • the hot switching function of the stream is enabled.
  • the hot switching of the stream is triggered, that is, the stream is switched The next hop network node (target hop), so as to realize the switching of the service node of the flow.
  • Cache data stream function indication information The data content of the parameter can be expressed by cache_enable.
  • the data type is bool.
  • the definition of this parameter is whether the data message needs to be cached. When the value of cache_enable is true, it indicates that the data packets of the stream need to be cached.
  • Cache data stream buffer length information the data content of the parameter can be identified by the cache size, the data type is long, and the parameter definition is the cache area size.
  • the purpose of the cache is to send the cached data to a new network node when the hot switching of the stream is triggered.
  • the reset instruction information of the data stream is used to indicate whether the network node monitors the first flag bit of the data message, and reselects the service node receiving the data stream based on the monitoring result and updates the flow table entry.
  • the data content of the parameter can be expressed through active_reset_enable.
  • the data type is bool.
  • the definition of this parameter is whether to support resetting the flow entry.
  • the network node monitors the first flag bit of the data packet of the flow.
  • the first flag bit is the reset flag of the data packet.
  • the reset flag of the data packet is true, the network node will reset Select the service node and reset the flow viscosity timeout time and other additional parameter values.
  • the reset flag of the data message can be multiplexed with the reset flag in the transmission control protocol (TCP), or other reset flags can be defined in the header of the third or fourth layer of the protocol layer.
  • TCP transmission control protocol
  • the deletion indication information is used to indicate whether the network node monitors the second flag bit of the data message, and deletes the flow entry of the data flow based on the monitoring result.
  • the data content of the parameter can be identified by active_del_enable.
  • the data type is bool. Whether the parameter definition supports active deletion of flow entries.
  • the network node monitors the flag bit of the data packet of the flow, and when the delete flag of the data packet is true, delete the flow entry corresponding to the flow in the flow table.
  • the flag bit multiplexes the fin flag in TCP, and other deletion flags can also be defined in the third or fourth layer header of the protocol layer.
  • the above example illustrates the service flow viscosity attribute information through Table 1 and Table 2.
  • the network node receives notification messages from the management node or other network nodes to obtain the flow viscosity attribute information of the service, or the network node sends a query message to the management node to obtain the flow viscosity attribute information of the service.
  • the format and content of the notification message or query message (hereinafter referred to as the stream sticky message) are as follows.
  • the format of a stream sticky message includes two parts: a public message header and a message body.
  • the common message header is the common header of various stream sticky messages, used to identify the message body type, message length, etc., and the format is shown in Table 3 below.
  • the message body is the content of various streaming sticky messages, which are used to transfer service sticky interaction data, that is, service sticky attribute information.
  • the format of the notification message is shown in Table 4.
  • the format of the query message is shown in Table 5.
  • the network node can query the network management node for the flow viscosity attribute information of one or more services through the query message in the content format shown in Table 5.
  • the network node After obtaining the flow viscosity attribute information of each service, the network node establishes a flow table locally.
  • the flow table includes multiple entries, that is, flow table entries. Each flow table entry represents the identification information and flow viscosity attribute information of a flow.
  • the network node establishes a flow table entry and maintains the flow table according to the flow viscosity attribute information of the obtained service.
  • the first column is the service IP address of service (2), which is the destination address during the uplink process.
  • the client IP is the source IP
  • the client port is the source port.
  • the network node obtains the information of the next hop network node (target hop) according to the service addressing and routing, and records it in the flow table entry.
  • the time stamp and timer information are determined according to the flow viscosity timeout time in the flow viscosity attribute information.
  • Time stamp is the time when the timer starts timing.
  • the flow stickiness timeout time can be realized through a timer and a time stamp, or the aging time (age) can be recorded in the flow table entry. When the aging time is reduced to 0, it means that the flow stickiness timeout time has arrived.
  • the flow table shown in Table 6 composes parameters identifying a flow by source IP, destination IP, and source port, which indicates the type of flow viscosity.
  • the network node triggers the establishment, update or deletion of flow entries according to the following triggering methods.
  • a network node when a network node receives the first data packet of a data flow, it creates a flow table entry. The details are shown in Figure 5.
  • S501 The network node receives a data message from the client.
  • the data message carries the service identifier, which is used to indicate which service to access.
  • the network node queries the flow stickiness data table to determine whether the flow stickiness attribute information of the service exists, if yes, execute S503, otherwise, execute S503'.
  • the network node queries whether the flow viscosity attribute information of the service exists in the flow viscosity data table according to the service identifier.
  • the network node may also determine according to the service identifier that the flow table does not contain the flow table entry of the data flow to which the data packet belongs, and then establish the flow table entry. If the flow table already contains the flow table entry of the data flow to which the data message belongs, it indicates that the data message is not the first data message, and the data message can be forwarded according to the flow table entry.
  • S504 Forward the subsequently received data message according to the flow entry.
  • the second type is to update the flow entry according to the notification message of the management node.
  • the details are shown in Figure 6.
  • the network node receives a notification message from the management node or other network nodes, and the notification message includes indication information for updating the flow viscosity attribute information of the service.
  • the network node queries the flow table to determine whether there is a flow table entry of the service for which the flow viscosity attribute information is updated, if yes, execute S603, otherwise, execute S604.
  • S603 The network node updates the flow entry in the flow table.
  • the flow table entry corresponding to the updated service is updated.
  • the flow viscosity type is updated, or the flow viscosity timeout period is updated.
  • the third type is to trigger the deletion of the flow entry when the flow stickiness timeout expires.
  • the specific process is shown in Figure 7.
  • the network node starts timing of the timing time.
  • the timing time is restarted, such as a restart timer.
  • the network node determines that the timing time in the flow entry exceeds the flow viscosity timeout time.
  • the network node may directly delete the flow table entry when the timing time in the flow table entry exceeds the flow stickiness timeout time, or may also perform S703.
  • S704 Determine whether the route of the queried service is the same as the route indicated by the flow entry, if they are the same, execute S705; otherwise, execute S706.
  • the network node determines that the route of the data flow has failed, and then deletes the flow entry.
  • the specific process is shown in Figure 8.
  • S801 The network node determines that the route of the data stream has failed.
  • the route is invalid, that is, the data stream cannot be forwarded to the original service node through the network node.
  • the network node may receive the notification message of route change/route failure through other network nodes or management nodes.
  • the network node queries the flow table to determine whether the flow table entry corresponding to the data flow in which the routing failure occurs exists, and if so, execute S803, otherwise the process ends.
  • S803 The network node judges whether the original service node of the data flow is invalid or unreachable, and if so, execute S804, otherwise the process ends.
  • a network node Each time a network node receives a data message, it can query the flow table entry of the data flow to which the data message belongs according to the flow table stored or maintained locally, and forward the data message according to the flow table entry, thereby maintaining flow stickiness.
  • the network includes network node 1, network node 2, network node 3, network node n, etc., client and service node.
  • the client wants to access a certain service, such as service A.
  • the IP address of this service A is 8.8.8.8, and the service instance of one or more service nodes runs this service A.
  • network node 1 With network node 1 as the main body of execution, network node 1 saves and maintains a flow table.
  • the flow table includes a flow table entry for each data flow passing through network node 1.
  • Network node 1 can address and route according to the flow viscosity data table and service As a result, the flow table is created and maintained.
  • the entire network routing method is as follows.
  • the client accesses service A, the service request is passed to network node 1, and network node 1 receives the client's access request for service A.
  • the client accesses the network, it initiates a call request for service A, and the request message reaches network node 1.
  • network node 1 completes addressing and routing calculations, according to the flow viscosity attribute of service A in the flow viscosity data table
  • the information establishes a flow entry in the flow table, so that subsequent data packets are forwarded according to the flow entry.
  • the network node 1 queries the flow table, and forwards the data message of the access request according to the flow entry in the flow table, or establishes a flow entry.
  • the network node 1 queries whether there is the service and the flow entry corresponding to the client in the locally stored flow table according to the service identification ID in the data message.
  • the service identification ID is the service Anycast IP
  • service Anycast IP address can be used as the destination IP address of the data message to identify the service ID.
  • the flow entry is generated according to the flow stickiness attribute information of the service and the query routing result, and inserted into the flow table.
  • the timing time information is started, for example, a timer is started.
  • the network node 1 When the network node 1 then receives the data message sent by the client, it repeats the above method.
  • the network node 1 forwards the data message to the next-hop network node n.
  • the network node n queries the flow table, and forwards the data message of the access request according to the flow entry in the flow table, or establishes a flow entry.
  • the actions performed by the network node n are the same as the actions performed by the network node 1, see the description of S1002.
  • network node 1 forwards the data message to the next hop as the serving node.
  • the network node n sends the data message to the service node, and the service node receives the data message from the network node n.
  • the serving node After receiving the data message, the serving node performs the downlink transmission process. That is, the data message is returned to the client. The specific process of the return is related to the flow table entry established during uplink transmission.
  • each network node receives the data message, it performs reverse data according to the flow table entry established during uplink transmission. Forwarding of messages.
  • service A is deployed in two edge sites (MEC) of the same metropolitan area network, and service A is provided externally.
  • service A is a live broadcast of virtual reality (VR) interactive services.
  • the site is the service node mentioned above.
  • the serviceA in the same service node has multiple instances, and these multiple instances use the same application programming interface (API) gateway, and the API Gateway of all serviceA exposes the same IP address to the outside.
  • API application programming interface
  • a router for computing scheduling is deployed, and the router is the network node mentioned above.
  • the management node notifies each service node of the flow viscosity attribute information of service A, and each service node stores the flow viscosity attribute information of service A locally, for example, through a flow viscosity data table.
  • the corresponding forwarding strategy can be configured on the user plane function (UPF) of the network element device, so that the data packet accessing serviceA is directed and forwarded to the nearest router.
  • UPF user plane function
  • the client accesses the network, it initiates a call request to serviceA, passes through the access network device to reach the UPF, and the UPF directs and forwards the data packets that access serviceA to the nearest router according to the forwarding strategy.
  • the router After the data message arrives at the router, the router performs service addressing and routing calculations, and establishes flow entries based on the results of service addressing and routing calculations and flow viscosity attribute information. Then the router forwards the subsequent data packets according to the flow entry.
  • the service resources of servicerA on each service node are sufficient, and the client's request is served by the nearest service node.
  • client 1 establishes a connection with serviceA in service node 1
  • client 2 establishes a connection with serviceA in service node 2.
  • uneven load appears among the service nodes. For example, the number of clients connected through router 2 gradually increases, and the load of serviceA in service node 2 becomes heavier, affecting the quality of service of some users.
  • Router 2 dispatches the newly connected client N to the neighboring service node 1, and the newly connected client (N+1) is dispatched to a higher cloud cloud site.
  • router 2 There are multiple data streams passing through the router 2, and the destination IP of each data stream is the same, and they are all serviceA, but in fact, the service nodes that different data streams reach are not the same. If relying on the common routing and forwarding function of the prior art, it is impossible to ensure that the data packets of each data stream can be forwarded to the original service node, and problems such as flow interruption and packet loss may occur.
  • router 2 When router 2 receives a data message, it forwards it according to the flow table entry of the data flow to which the data message belongs, which can help ensure the flow viscosity of each flow and ensure the correct and efficient forwarding of each flow.
  • the network node locally establishes flow entry based on flow viscosity attribute information, and forwards data packets according to the flow entry, which helps to ensure correct and efficient forwarding of data flow.
  • Different services can expose their own flow viscosity attribute information to the network according to their own needs, and the network can diffuse the flow viscosity attribute information according to the needs of the service to achieve efficient matching and dynamic adjustment of service requirements.
  • various requirements of the client or service for the stream viscosity of the data stream can be realized.
  • the service or client When the service or client has a real-time change requirement for flow viscosity, it can also adjust the flow entry in real time to meet the convective viscosity requirements of various services. Through the timing information in the flow table entry, the flow table entry is continuously refreshed to maintain the dynamic characteristics of the service node of the data flow for the client. According to the update or deletion of the flow entry, the client can be matched to a more suitable service node in time.
  • an embodiment of the present application further provides a network routing device 1200, and the communication device 1200 has a function of performing operations performed by a network node in the foregoing method embodiment.
  • This function can be realized by hardware, or by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the communication device 1200 includes a processing unit 1201 and a receiving unit 1202.
  • the receiving unit 1202 is configured to perform the receiving steps in the method embodiment.
  • the processing unit 1201 is used to perform other steps except receiving.
  • the communication device 1200 may be a network node, router, or switch, or a chip or functional module inside the network node, router, or switch.
  • the receiving unit 1202 is configured to receive a first data message from the client, where the first data message includes an identifier of the service;
  • the processing unit 1201 is configured to obtain the flow stickiness attribute information of the service according to the identifier of the service.
  • the flow stickiness attribute information of the service includes the flow stickiness type of the service and the flow stickiness timeout time of the service, and the flow stickiness type is used to identify One or more data items in the first data message are used as key values to identify the data stream to which the first data message belongs;
  • the processing unit 1201 is further configured to, when the first data packet is the first data packet of the data flow, establish a flow entry according to the flow viscosity attribute information of the service, and the flow entry is used to forward the data flow. Subsequent data messages.
  • processing unit 1201 is further configured to:
  • the information of the next hop network node to which the first data packet is routed is determined; the flow entry also includes the information of the next hop network node.
  • the receiving unit 1202 is configured to receive a second data packet from the client, where the second data packet includes an identifier of the service;
  • the processing unit 1201 is further configured to: obtain the flow viscosity attribute information of the service according to the service identifier; and determine one or more flow tables corresponding to the flow viscosity type of the service, wherein the flow viscosity type of the service is different from the flow table There is a correspondence between them; and it is determined that the one or more flow tables contain the flow table entry corresponding to the data flow, and then the second data packet is forwarded according to the flow table entry.
  • processing unit 1201 is further configured to:
  • the first data packet is the first data packet of the data flow.
  • the communication device 1200 further includes a sending unit 1203, which is configured to send a query message to the management node, where the query message is used to query flow viscosity attribute information of the service;
  • the receiving unit 1202 is further configured to receive a response message of the query message from the management node, and the response message carries the flow viscosity attribute information of the service.
  • processing unit 1201 is further configured to:
  • processing unit 1201 is further configured to:
  • the flow table entry further includes one or more of the following information: the service identifier, source Internet Protocol IP address, source port, destination IP address, destination port, and next-hop network node information.
  • the value of the flow viscosity type includes one or a combination of any of the following: transmission protocol type, source IP address, source port, destination IP address, and destination port.
  • the stream viscosity attribute information of the service further includes one or more of the following: whether the upstream and downstream transmission paths of the data stream require consistent indication information; the hot switching function indication information of the data stream,
  • the hot handover function indication information includes enable indication information; backhaul packet timeout timer information; buffer data stream function indication information; buffer data stream buffer length information; reset indication information of the data stream, and the reset indication information is used for Indicate whether the network node monitors the first flag bit of the data packet, and reselects the service node that receives the data flow and updates the flow table entry based on the monitoring result;
  • the deletion instruction information of the data flow is used for the deletion instruction information It indicates whether the network node monitors the second flag bit of the data message, and deletes the flow entry of the data flow based on the monitoring result.
  • an embodiment of the present application further provides a network routing device 1300, which is configured to implement operations performed by a network node in the foregoing method embodiment.
  • FIG. 13 only shows the main components of the network routing apparatus 1300.
  • the network routing device 1300 includes a transceiver 1301 and a processor 1302, and optionally may also include a memory 1303.
  • the transceiver 1301 is used to transmit messages or signaling with other devices (such as clients or service nodes).
  • the processor 1302 is coupled with the memory 1303 and is used to call the program in the memory 1303. When the program is executed, the processor 1302 performs the operations performed by the network node in the foregoing method embodiment.
  • the memory 1303 is used to store programs executed by the processor 1302.
  • the transceiver 1301 may include a transmitter and/or a receiver, which respectively implement the transceiver function. There may be one or more processors 1302.
  • the memory 1303 may be located in the processor 1302 or may exist separately.
  • FIG. 12 may be implemented by the processor 1302, and the receiving unit 1202 and the sending unit 1203 may be implemented by the transceiver 1301.
  • FIG. 13 only shows a memory and a processor. In actual network nodes, there may be multiple processors and memories.
  • the memory may also be referred to as a storage medium or a storage device, etc., which is not limited in the embodiment of the present application.
  • the processor 1302 is mainly used to process communication protocols and communication data, and to control the entire network routing device, execute software programs, and process the data of the software programs, for example, to support the network routing device to execute the methods described in the above method embodiments action.
  • the memory 1303 is mainly used to store software programs and data.
  • the processor 1302 performs the following operations:
  • the transceiver 1301 is configured to receive a first data message from a client, where the first data message includes an identifier of the service;
  • the processor 1302 is configured to obtain the flow stickiness attribute information of the service according to the identifier of the service, the flow stickiness attribute information of the service includes the flow stickiness type of the service and the flow stickiness timeout time of the service, and the flow stickiness type is used to identify One or more data items in the first data message are used as key values to identify the data stream to which the first data message belongs;
  • the processor 1302 is further configured to, when the first data packet is the first data packet of the data flow, establish a flow entry according to the flow viscosity attribute information of the service, and the flow entry is used to forward the data flow. Subsequent data messages.
  • processor 1302 is also used to:
  • the information of the next hop network node to which the first data packet is routed is determined; the flow entry also includes the information of the next hop network node.
  • the transceiver 1301 is further configured to: receive a second data message from the client, where the second data message includes an identifier of the service;
  • the processor 1302 is further configured to: obtain the flow viscosity attribute information of the service according to the service identifier; and determine one or more flow tables corresponding to the flow viscosity type of the service, wherein the flow viscosity type of the service is different from the flow table There is a correspondence between them; and it is determined that the one or more flow tables contain the flow table entry corresponding to the data flow, and then the second data packet is forwarded according to the flow table entry.
  • processor 1302 is also used to:
  • the first data packet is the first data packet of the data flow.
  • the transceiver 1301 further includes:
  • the query message is used to query the flow viscosity attribute information of the service
  • a response message of the query message is received from the management node, and the response message carries the flow viscosity attribute information of the service.
  • processor 1302 is also used to:
  • processor 1302 is also used to:
  • the flow table entry further includes one or more of the following information: the service identifier, source Internet Protocol IP address, source port, destination IP address, destination port, and next-hop network node information.
  • the value of the flow viscosity type includes one or a combination of any of the following: transmission protocol type, source IP address, source port, destination IP address, and destination port.
  • the stream viscosity attribute information of the service further includes one or more of the following: whether the upstream and downstream transmission paths of the data stream require consistent indication information; the hot switching function indication information of the data stream,
  • the hot handover function indication information includes enable indication information; backhaul packet timeout timer information; buffer data stream function indication information; buffer data stream buffer length information; reset indication information of the data stream, and the reset indication information is used for Indicate whether the network node monitors the first flag bit of the data packet, and reselects the service node that receives the data flow and updates the flow table entry based on the monitoring result;
  • the deletion instruction information of the data flow is used for the deletion instruction information It indicates whether the network node monitors the second flag bit of the data message, and deletes the flow entry of the data flow based on the monitoring result.
  • the processor 1302 may be a central processing unit (CPU), a network processor (NP), or a combination of CPU and NP.
  • CPU central processing unit
  • NP network processor
  • the processor 1302 may further include a hardware chip.
  • the aforementioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
  • CPLD complex programmable logic device
  • FPGA field-programmable gate array
  • GAL generic array logic
  • the memory 1303 may include a volatile memory (volatile memory), such as random-access memory (random-access memory, RAM); the memory 1303 may also include a non-volatile memory (non-volatile memory), such as flash memory (flash memory). memory), a hard disk drive (HDD) or a solid-state drive (SSD); the memory 1303 may also include a combination of the foregoing types of memories.
  • volatile memory such as random-access memory (random-access memory, RAM
  • non-volatile memory such as flash memory (flash memory).
  • flash memory flash memory
  • HDD hard disk drive
  • SSD solid-state drive
  • an embodiment of the present application further provides a chip, including a processor, for supporting the network routing device to implement the functions related to the network node in the foregoing method embodiment .
  • the chip is connected to a memory or the chip includes a memory, and the memory is used to store the necessary program instructions and data of the network routing device.
  • the embodiment of the present application provides a computer storage medium storing a computer program, and the computer program includes instructions for executing the foregoing method embodiments.
  • the embodiments of the present application provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the foregoing method embodiments.
  • the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • a computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.

Landscapes

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

Abstract

本申请公开了一种网络路由方法及装置,用以解决网络路由过程中因流粘性无法保持出现的断流、丢包或流量乱窜的问题。该方法为:网络节点从客户端接收第一数据报文,所述第一数据报文包括服务的标识;所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间;所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。

Description

一种网络路由方法及装置
相关申请的交叉引用
本申请要求在2019年06月14日提交中国专利局、申请号为201910518094.4、申请名称为“一种网络路由方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种网络路由方法及装置。
背景技术
随着各类云计算资源在网络内的大量部署,同一服务往往同时部署于多个服务节点中,由于多个服务节点的同一服务可以提供相同的业务,因而其具有功能上的等价性。在这种情况下,Anycast技术被提出。Anycast的中文译称主要有,“任播”、“泛播”、“选播”等,本申请中可以用“任播”一词,或者直接使用英文单词“Anycast”。网络上多个提供同一服务的服务节点对外可以通过一个服务地址标识。客户端在访问服务时,并不关注请求的服务在哪个服务节点执行,客户端只需要向网络提供访问请求的服务地址即可。网络收到客户端发送的服务地址,可以将访问请求路由到能够提供该服务的任意一个服务节点上。
通常客户端的数据报文可能会通过一个或多个网络节点(例如交换机或路由器)到达服务节点上,服务节点返回的数据报文也会通过一个或多个网络节点到达客户端。客户端的数据报文经过的网络节点的传输路径可以称为上行路径,服务节点返回的数据报文经过的网络节点的传输路径可以称为下行路径。上行路径和下行路径传输数据报文的过程可以称为流。在一些应用场景下,客户端的业务流需要保持在同一个服务节点,因此客户端访问同一个服务的流需要保持流粘性(flow affinity),流粘性即数据报文经过的网络节点的传输路径应该相同。
当在网络中应用Anycast技术时,网络并可能会将同一个用户的数据报文路由到不同的服务节点上,或者可能经过不同的路径路由到同一个服务节点上,这样就很难保持流粘性。例如,在城域网或多接入边缘年计算(multi-access edge computing,MEC)等应用场景,尤其在网络或计算出现变化时,应用Anycast技术便很难保持流粘性。如果流粘性无法保持,将会出现断流、丢包或流量乱窜等问题。
发明内容
本申请实施例提供一种网络路由方法及装置,用以解决网络路由过程中因流粘性无法保持出现的断流、丢包或流量乱窜的问题。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种网络路由方法,网络节点从客户端接收一个数据报文,记为第一 数据报文,所述第一数据报文中包括服务的标识,所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间,所述流粘性类型用于标识所述第一数据报文中的一个或多个数据项作为键值来识别所述第一数据报文所属的数据流;所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。根据流粘性属性信息建立流表项,实现后续数据报文根据流表项进行转发,满足业务的流粘性需求。通过本申请提供的方法,能够实现用户对访问同一服务需要同一服务节点的需求,使得用户的请求得到满足,避免因流粘性无法保持出现的断流、丢包或流量乱窜的问题。
在一个可能的设计中,所述网络节点根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。用于实现后续数据报文根据同样的下一跳网络节点的信息进行转发,保证数据流的流粘性。
在一个可能的设计中,所述网络节点从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息;所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;所述网络节点确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。通过不同流粘性类型对应不同流表,方便网络节点根据数据报文对应的流粘性类型,快速查找到流表集合,在流表集合中更快的找到数据报文所属数据流对应的流表,提高转发效率。
在一个可能的设计中,所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;所述网络节点确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。当首包到达时,触发流表项的建立,保证首包之后的数据报文能够按照流表项进行转发。
在一个可能的设计中,所述网络节点向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;所述网络节点从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。服务按需向网络管理节点暴露自身的流粘性特征,网络节点按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高校匹配及动态可调。
在一个可能的设计中,所述网络节点从管理节点或其他网络节点接收通知消息,所述通知消息中携带一个或多个服务的流粘性属性信息,所述网络节点保存所述一个或多个服务的流粘性属性信息,所述一个或服务包括所述第一数据报文中服务的标识所指示的服务。服务按需向网络管理节点暴露自身的流粘性特征,网络节点按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高校匹配及动态可调。
在一个可能的设计中,所述网络节点根据所述通告消息确定所述服务的流粘性属性信息发生变化;所述网络节点将流表中所述服务的流表项按照变化的属性信息进行更新。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述网络节点确定所述流表项中定时时间超过所述流粘性超时 时间,删除所述流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述网络节点确定所述数据流的路由已经失效,则删除所述流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
在一个可能的设计中,所述流表项中还包括以下一种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
在一个可能的设计中,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
在一个可能的设计中,所述流粘性类型的值包括网络层流粘性和传输层流粘性,所述网络层流粘性的值包括源IP地址和目的IP地址,所述传输层流粘性的值包括传输层协议类型、源IP地址、源端口、目的IP地址和目的端口。
在一个可能的设计中,所述服务的所述流粘性属性信息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。当服务或用户对流粘性有实时变更需求时,也可通过流粘性数据生成的流表项进行实时调整,满足各种业务的对流粘性的需求。
第二方面,提供一种网络路由装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该装置可以是芯片或者集成电路。
在一个可能的设计中,该装置包括收发器和处理器,收发器用于与其他通信设备进行通信,处理器用于与存储器进行耦合,执行存储器存储的程序,当程序被执行时,所述装置可以执行上述第一方面和第一方面的任一种可能的设计中所述的方法。
在一个可能的设计中,该装置还包括存储器,用于存储处理器执行的程序。
在一个可能的设计中,该装置为网络节点、交换机或路由器。
第三方面,提供一种芯片,该芯片与存储器相连或者该芯片包括存储器,用于读取并执行所述存储器中存储的软件程序,以实现如上述第一方面和第一方面的任一种可能的设计中所述的方法。
第四方面,提供了一种通信系统,该通信系统包括客户端、网络节点和服务节点,所述网络节点用于执行上述第一方面和任一可能设计中的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面和第一方面的任一可能的设计中方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计 算机执行上述第一方面和第一方面的任一可能的设计中所述的方法。
附图说明
图1为本申请实施例中网络系统架构示意图;
图2为本申请实施例中网络路由方法的流程示意图之一;
图3为本申请实施例中网络节点获取服务的流粘性属性信息过程示意图;
图4为本申请实施例中流的上下行传输路径一致示意图;
图5为本申请实施例中触发建立流表项的流程示意图;
图6为本申请实施例中更新流表项的流程示意图;
图7为本申请实施例中删除流表项的流程示意图之一;
图8为本申请实施例中删除流表项的流程示意图之二;
图9为本申请实施例中流粘性的维持方式的流程示意图;
图10为本申请实施例中网络路由方法的流程示意图之二;
图11为本申请实施例中网络路由方法的流程示意图之三;
图12为本申请实施例中网络路由装置结构示意图之一;
图13为本申请实施例中网络路由装置结构示意图之二。
具体实施方式
下面将结合附图,对本申请实施例进行详细描述。
本申请实施例提供一种网络路由方法及装置,用于保持网络路由过程中的流粘性。其中,方法和装置是基于同一构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例的描述中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请中所涉及的至少一个是指一个或多个;多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1示出了本申请实施例提供的网络路由方法适用的一种可能的网络系统架构示意图。如图1所示,网络系统100包括网络节点101、客户端102和服务节点103。该系统100还可以包括服务的管理节点104。网络节点101和服务节点103的数量均可以是一个或多个。
其中,客户端102,用于向服务节点103请求提供服务,将请求报文或者数据流通过网络节点101发送给服务节点103,从服务节点103接收服务。
网络节点101,用于从服务的管理节点104获取服务的流粘性属性,在本地保存,在接收到客户端102发送的请求报文或者数据流时,根据流粘性属性建立流表项,实现请求报文或数据流的转发,保持服务的流粘性。网络节点101可以是交换机或者路由器等路由设备。
服务节点103,用于向客户端102提供服务。其中,同一个服务可能在多个服务节点103上存在。例如,在网络中应用Anycast技术,网络上多个提供同一服务的服务节点对外 可以通过一个服务地址标识。这种情况下,客户端102只需要提供请求访问的服务地址即可,至于网络节点101将数据流路由到哪一个服务节点103来提供服务客户端102并不关心。服务节点103上可能运行一个或多个服务实例,不同的服务实例提供不同功能的服务。
服务的管理节点104,管理各个服务节点中运行的服务实例,以及管理各个服务的流粘性属性。服务的管理节点104可以向各个网络节点101来提供各个服务的流粘性属性。其中,服务的管理节点104可以通过控制模块向各个网络节点101来提供各个服务的流粘性属性,控制模块可以是服务的管理节点104中的一个硬件或软件模块,例如为一个组件,或者一个接口。服务的管理节点104可以是一个网管系统,例如是运营支撑系统(operation support system,OSS)。
本申请中,服务的管理节点104与各个网络节点101组成控制面。客户端102、各个网络节点101和服务节点103组成数据面。控制面通过管理节点104到各个网络节点101之间的链路(图1中的细线箭头)来组成,用于传输服务的流粘性属性信息。数据面由客户端通过各个网络节点101到服务节点103之间的链路(图1中的粗线箭头)来组成。图1中通过客户端通过两条路径分别到达服务节点1和服务节点2来举例说明。
服务节点103在图1中通过服务节点1、服务节点2和服务节点3来举例,服务节点1中运行服务A和服务B,服务节点2上运行服务A和服务C,服务节点3上运行服务C。服务A对外暴露的地址为IP_A,服务B对外暴露的地址为IP_B,服务C对外暴露的地址为IP_C。这样,客户端想访问服务A时,可能由服务节点1或服务节点2或其他运行服务A的节点来提供。
本申请实施例可以但不限于应用到城域网或移动边缘计算(mobile edge computing,MEC)或多接入边缘计算(multi-access edge computing,MEC)等应用场景。
当在网络中应用Anycast技术时,网络节点104如果按照现有的转发技术进行转发,则来自于同一个客户端(或用户)的数据流中的数据报文可能将被路由到不同的服务节点上,因为不同的服务节点可能提供相同的服务。但是有些客户端要求访问同一个服务的流需要保持相同的传输路径以及相同的服务节点,即保持流粘性,为解决这一问题,本申请实施例提供了一种网络路由方法。以下对本申请实施例提供的网络路由方法作详细说明。
本申请实施例的基本思想是,网络节点在本地建立流表项,根据流表项中的流粘性属性对到来的数据报文进行转发,从而保证同一个客户端访问同一个服务的流保存流粘性。
如图2所示,本申请实施例提供的网络路由方法的详细过程如下所述。
S200、客户端向网络节点发送数据报文,网络节点从客户端接收数据报文。
这里的数据报文记为第一数据报文,该第一数据报文包括服务的标识。该服务为客户端想要访问的服务。
S201、网络节点根据第一数据报文中携带服务的标识,获取服务的流粘性属性信息。
本申请中,流粘性属性信息包括流粘性类型和流粘性超时时间。流粘性类型用于标识一个数据报文中哪些数据项作为键值(KEY)/关键词/关键字来区分不同数据流,即流粘性类型用于标识数据报文中的哪些数据项作为键值来识别该数据报文所属的数据流。以第一数据报文为例,网络节点获取的该服务的流粘性类型用于标识第一数据报文中的一个或多个数据项来作为键值来识别第一数据报文所属的数据流。流粘性类型的值包括用于区分流的键值。这里所谓的键值/关键词/关键字可以是网际协议(internet protocol,IP)五元组中 的任意一个或多个成员的组合。IP五元组包括传输协议类型、源IP地址、源端口、目的IP地址、目的端口。例如,流粘性类型包括网络层流粘性和传输层流粘性。其中,网络层流粘性通过两个键值来标识一个流,该网络层流粘性的值包括源IP地址和目的IP地址。传输层流粘性通过五个键值来标识一个流,该传输层流粘性的值包括传输层协议类型、源IP地址、源端口、目的IP地址和目的端口。网络层流粘性用于表征服务属于网络层,客户端与服务节点通过网络层来实现服务提供和使用。传输层用于表征服务属于传输层,客户端与服务节点通过传输层来实现服务的提供和使用。网络层和传输层是指协议栈的不同层。
网络节点可以在本地存储不同服务对应的不同的流粘性属性信息,在本步骤中,网络节点可以根据服务的标识,获取与该服务对应的流粘性属性信息。网络节点获取不同服务对应的不同的流粘性属性信息的可选方式以及可选存储方式,将在下文中图3所示的实施例中介绍。
S202、网络节点在第一数据报文为数据流的首个数据报文时,根据服务的流粘性属性信息建立流表项。
网络节点可以根据服务的流粘性属性信息来建立流表项。网络节点可以在本地维护一张流表,流表中包括一个或多个流表项,一个流表项用于标识一个流的各种属性信息。其中,流表项中包括服务的流粘性属性信息。当一条数据流的首个数据报文到达时,网络节点在流表中插入一条新的流表项,该流表项用于这条数据流后续数据报文的转发。当网络节点在根据流表项来转发数据流中的数据报文时,就可以参照服务的流粘性属性信息,根据流粘性属性信息来保持该数据流的流粘性。
为了实现流表项的功能,一个流表项中除了包括服务的流粘性属性信息之外,还可以包括服务的标识、源IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。其中,网络节点根据服务的标识去进行服务寻址或路由,来确定第一数据报文路由的下一跳网络节点的信息。服务寻址或路由可以采用现有技术的任意一种方式,本申请不作限制。通过服务的标识、源IP地址、源端口、目的IP地址、目的端口中的任意一项或多项来区分到来的后续数据报文是否属于这条数据流。
在S202之后,当有后续数据报文到来时,可以执行以下步骤。
客户端向网络节点发送第二数据报文,网络节点从客户端接收第二数据报文,第二数据报文包括服务的标识;该服务的标识与S200中第一数据报文的服务的标识相同。网络节点可以判断,第二数据报文和第一数据报文访问的是同一个服务。网络节点根据该服务的标识获取服务的流粘性属性信息,获取方法与S201中相同。在获得服务的流粘性属性信息后,根据流粘性属性信息中的该服务的流粘性类型,确定该服务的流粘性类型对应的一个或多个流表。实际应用中,网络节点可以在本地存储不同的流粘性类型与不同流表之间的对应关系,例如,流粘性类型的标识为1,对应使用二元组区分不同流的一些流表;流粘性类型的标识为2,对应使用五元组区分不同流的一些流表。网络节点在根据服务的流粘性类型对应的一个或多个流表查找是否有第二数据报文所属数据流对应的流表项,若有,则根据流表项转发该第二数据报文,这样,第二数据报文可以与第一数据报文有相同的转发路径,保持该数据流的流粘性。基于上述描述,上述S202中网络节点可以在确定服务的流粘性类型对应的一个或多个流表中不包含第一数据报文所属数据流对应的流表项时,确定该第一数据报文为数据流的首个数据报文,从而建立该数据流的流表项。
如上所述,服务的管理节点104来管理各个服务的流粘性属性信息,网络节点可以通过主动获取或者被动接收两种方式来获取服务的流粘性属性信息。
例如,网络节点通过被动接收来获取服务的流粘性属性信息。管理节点向网络节点发送通知消息,网络节点从管理节点或其他网络节点接收通知消息,该通知消息中携带服务的流粘性属性信息。
又例如,网络节点也可以主动获取服务的流粘性属性信息。网络节点向管理节点发送查询消息,管理节点向网络节点返回基于该查询消息的应答消息,在应答消息中携带服务的流粘性属性信息。网络节点从管理节点或其他网络节点接收该应答消息,获取应答消息中的服务的流粘性属性信息。
如图3所示,网络节点获取服务的流粘性属性信息的两种可能的具体实现方式如下所述。
S301、服务OSS向管理节点发送流粘性通知消息,管理节点从服务OSS接收该流粘性通知消息。
流粘性通知消息或者称为流粘性通知消息,或者称为通知消息。当有某一个服务接入、退出网络或该服务的流粘性属性信息发生变更时,服务OSS向管理节点发送流粘性通知消息。
S302、管理节点接收到流粘性通知消息后,解析消息内容,保存服务的流粘性属性信息。
例如,管理节点可以在本地保存及维护一张流粘性数据表。该流粘性数据表中每一个条目对应一个服务的流粘性属性信息。
在网络节点被动接收服务的流粘性属性信息的情况下,执行S303~S304。
S303、管理节点向连接的各个网络节点发送流粘性通知消息,各个网络节点从管理节点或其他网络节点接收该流粘性通知消息。
图3中以一个网络节点为示例,实际应用中,网络中可能包括多个网络节点。该一个网络节点执行的动作可以适用于各个网络节点。
S304、网络节点将流粘性通知消息中的服务的流粘性属性信息保存,或者根据接收到的流粘性通知消息将已经保存的流粘性属性信息的数据进行更新。
网络节点可以根据接收到的流粘性通知消息在本地形成流粘性数据表,或者,根据接收到的流粘性通知消息将本地已经形成的流粘性数据表进行更新。例如,流粘性通知消息指示服务的流粘性属性信息变更或者删除,则网络节点根据该流粘性通知消息对流粘性数据表中的对应条目进行维护,即进行变更或者删除。
在网络节点主动获取服务的流粘性属性信息的情况下,执行S303’~S304’。
S303’、网络节点向管理节点发送查询消息,管理节点从网络节点接收该查询消息。
该查询消息用于查询某一个或多个服务的流粘性属性。
当网络节点在启动时或者对某服务的流粘性状态确定不准确时,则会触发向管理节点发送查询消息。
S304’、管理节点在收到该查询消息后,向网络节点返回应答消息。
管理节点查询本地是否保存有该服务的流粘性属性信息,若是,则在应答消息中携带网络节点查询的该服务的流粘性属性信息。
本申请实施例中,网络节点在本地保存及维护的流粘性数据表,每一个条目为一个服务的流粘性属性信息。以下给出一种流粘性数据表的示例。可以适用于管理节点保存及维护的流粘性数据表。
例如,一种可能的流粘性数据表如表1所示。
表1
Figure PCTCN2020096175-appb-000001
在表1所示的流粘性数据表中,示例了3个服务的流粘性属性信息,流粘性属性信息中包括流粘性类型和流粘性超时时间,还可以包括其他的附加参数。不同的服务通过服务标识ID来区分。流粘性类型可以用不同的类型标识来区分,例如,用标识1表示一种流粘性类型,用标识2表示另一种流粘性类型。可选的,标识1表示网络层流粘性,标识2表示传输层流粘性。表1所示,标识为8.8.8.8的服务的流粘性类型为网络层流粘性,流粘性超时时间为30s。标识为11.0.0.11的服务的流粘性类型为网络层流粘性,流粘性超时时间为20s。标识为12.5.1.10:80的服务的流粘性类型为传输层流粘性,流粘性超时时间为500ms。
流粘性属性信息中的附加参数可能包括以下几种,可以通过表2来示例各个附加参数的指示信息,各个附加参数的指示信息通过数据内容、数据类型和释义来表示。本申请中,“数据流”也可以简称为“流”。
1)流的上下行传输路径是否要求一致的指示信息,可通过same_path来表示该参数的数据内容,数据类型为bool,该参数的释义为是否要求上行路径一致。如图4所示,当该参数的值为真(true)时,要求流的上下行传输路径一致,即回程包需要按照源路径返回。本申请中,网络节点根据流粘性属性信息建立流表项,在传输上行数据报文时,通过流表项查询到路由路径以及服务节点,如果流表项中的流粘性属性信息中的same_path的值为true,则表示该网络节点在传输回程包时需要按照原来的传输路径原路返回。
2)流的热切换功能指示信息,包括流的热切换功能hot_swap_enable指示信息,如通过hot_swap_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否支持热流切换。当该参数的值为true时,使能流的热切换功能。
3)回程包超时定时器时间信息,可通过hot_swap_timeout来标识参数的数据内容,数据类型为long,该参数的释义可以为流热切换超时时间。当2)的参数的值为true时,使能流的热切换功能,在3)中的参数指示的回程包超时定时时间内还未出现回程包时,触发流的热切换,即切换该流的下一跳网络节点(target hop),从而实现该流的服务节点的切换。
4)缓存数据流功能指示信息。可通过cache_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否需要缓存数据报文。当cache_enable的值为true时,表示需要缓存该流的数据报文。
5)缓存数据流缓冲区长度信息,可通过缓存尺寸(cache size)来标识参数的数据内容,数据类型为long,参数的释义为缓存区大小。
缓存的目的在于,当流的热切换触发时,将该缓存的数据发送给新的网络节点。
6)数据流的重置指示信息。重置指示信息用于指示网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收数据流的服务节点以及进行流表项的更新。
可以通过active_reset_enable来表示参数的数据内容,数据类型为bool,该参数的释义为是否支持重置流表项。当active_reset_enable的值为true时,网络节点监测该流的数据报文的第一标志位,例如第一标志位为数据报文的重置标志,该数据报文的重置标志为true时,重选服务节点,重置流粘性超时时间及其他附加参数的值。其中,数据报文的重置标志可以复用传输控制协议(transmission control protocol,TCP)中的重置(reset)标志,也可在协议层的三层或四层包头定义其它reset标志。
7)数据流的删除指示信息。删除指示信息用于指示网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
可以通过active_del_enable来标识参数的数据内容,数据类型为bool,该参数的释义是否支持主动删除流表项。当active_del_enable的值为true时,网络节点监测该流的数据报文的标志位,该数据报文的删除标志为true时,删除流表中该流对应的流表项。其中,该标志位复用TCP中的fin标志,也可以在协议层的三层或四层包头定义其它删除标志。
表2
Figure PCTCN2020096175-appb-000002
上面通过表1和表2的举例示意了服务的流粘性属性信息。网络节点从管理节点或其他网络节点接收通知消息来获得服务的流粘性属性信息,或者网络节点向管理节点发送查询消息来获取服务的流粘性属性信息。该通知消息或查询消息(以下简统称为流粘性消息)的格式以及内容如下所述。
流粘性消息的格式包括两部分:公共消息头和消息体(body)。公共消息头为各类流粘性消息的公共头部,用以标识消息体类型、消息长度等,格式如下表3所示。
表3
Figure PCTCN2020096175-appb-000003
消息体为各类流粘性消息的内容,用以传递服务的流粘性交互数据,即服务的流粘性属性信息。通告消息格式如表4所示。查询消息的格式如表5所示。
表4
Figure PCTCN2020096175-appb-000004
Figure PCTCN2020096175-appb-000005
表5
Figure PCTCN2020096175-appb-000006
网络节点可以通过表5所示的内容格式的查询消息,向网管节点查询一个或多个服务的流粘性属性信息。
网络节点在获取到各个服务的流粘性属性信息之后,在本地建立流表,流表中包括多个条目即流表项,每一个流表项表示一条流的标识信息和流粘性属性信息。
如表6所示,为网络节点建立及维护的流表的一种示例。
表6
Figure PCTCN2020096175-appb-000007
Figure PCTCN2020096175-appb-000008
网络节点根据已经获取的服务的流粘性属性信息,建立流表项,维护流表。如表6中所示,第一列为服务(2)的服务IP地址,在上行过程中为目的地址。在上行传输中客户端IP为源IP,客户端端口为源端口。网络节点根据服务寻址及路由获取下一跳网络节点(target hop)的信息,并记录在流表项中。根据流粘性属性信息中的流粘性超时时间来确定Time stamp和定时器的信息。根据流粘性属性信息中的附加参数的信息来确定后面几列中的“是否相同路径”、“流的热切换功能”、“回程包超时定时器时间”、“缓存数据流功能”、“缓存尺寸”、“数据流重置”、“数据流删除”各个参数的信息。“NULL”表示为空,没有该附加参数。附加参数的值为“TRUE”时该参数才能使能,为“FALSE”时不启用该功能。
其中,Time stamp为定时器开始计时的时间。流粘性超时时间可以通过定时器和Time stamp来实现,也可以在流表项中记录老化时间(age),当老化时间减到0时表示流粘性超时时间到达。
表6所示的流表通过源IP、目的IP、源端口来组成标识一条流的参数,即表明了流粘性的类型。
网络节点根据以下几种触发方式来触发建立、更新或删除流表项。
第一种、当网络节点接收到一条数据流的首个数据报文时,建立流表项。具体如图5所示。
S501、网络节点从客户端接收数据报文。
数据报文中携带服务的标识,用于表示访问哪一个服务。
S502、网络节点查询流粘性数据表,判断该服务的流粘性属性信息是否存在,若是则执行S503,否则执行S503’。
网络节点根据服务的标识查询流粘性数据表中是否存在该服务的流粘性属性信息。
S503、根据该服务的流粘性属性信息建立流表项,并将流表项插入流表中。继续执行S504。
在S503之前,网络节点还可以根据服务的标识确定流表中不包含该数据报文所属数据流的流表项,则建立流表项。如果流表中已经包含该数据报文所属数据流的流表项,说明该数据报文不是首个数据报文,则按照流表项进行转发该数据报文即可。
S503’、按照普通路由的路径转发该数据报文。
S504、对后续接到的数据报文按照流表项进行转发。
从而保证同一个数据流的报文能够按照相同的流表项进行转发,到达相同的服务节点。
第二种、根据管理节点的通知消息更新流表项。具体如图6所示。
S601、网络节点从管理节点或其他网络节点接收通知消息,该通知消息中包括服务的流粘性属性信息更新的指示信息。
S602、网络节点查询流表,判断是否有发生流粘性属性信息更新的服务的流表项存在,若是,则执行S603,否则执行S604。
S603、网络节点对流表中的流表项进行更新。
按照通知消息,将发生更新的服务对应的流表项进行更新。例如,流粘性类型发生更 新,或者流粘性超时时间发生更新。
第三种、流粘性超时时间到达时触发流表项的删除。具体过程如图7所示。
S701、网络节点启动定时时间的计时。
当数据流的首包到达或者每当数据流的任意一个数据报文到达是,重启定时时间,例如重启定时器。
S702、网络节点确定流表项中定时时间超过流粘性超时时间。
网络节点在流表项中定时时间超过流粘性超时时间时可以直接删除流表项,或者,也可以执行S703。
S703、查询服务的路由。
S704、判断查询到的服务的路由是否与该流表项所表示的路由相同,若相同,则执行S705,否则,执行S706。
S705、不需要删除该流表项,将该流表项中的时间戳参数更新。
S706、删除该流表项。
第四种、网络节点确定数据流的路由已经失效,则删除流表项。具体过程如图8所示。
S801、网络节点确定数据流的路由已经失效。
路由失效,即数据流无法通过所述网络节点转发到原来的服务节点。例如所述网络节点可以通过其他网络节点或者管理节点接收到路由变更/路由失效的通知消息。
S802、网络节点查询流表,判断发生路由失效的数据流对应的流表项是否存在,若是,则执行S803,否则结束流程。
S803、网络节点判断该数据流的原服务节点是否失效或是否不可达,若是,则执行S804,否则结束流程。
S804、删除流表中与路由失效的数据流对应的流表项。
通过以上几种方法,可以触发对流表的维护。
网络节点每接收到一个数据报文,可以根据本地保存或维护的流表查询该数据报文所属数据流的流表项,根据该流表项进行该数据报文的转发,从而保持流粘性。
如图9所示,以下通过一个具体的实施例来对流粘性的维持方式进行详细说明。假设网络中包括网络节点1、网络节点2、网络节点3、网络节点n等,客户端和服务节点。客户端想要访问某一个服务,例如服务A,该服务A的IP地址为8.8.8.8,某一个或多个服务节点的服务实例运行该服务A。以网络节点1为执行主体,网络节点1保存及维护流表,流表中包括每一个经过网络节点1的数据流的流表项,网络节点1可以根据流粘性数据表和服务寻址及路由的结果来对流表进行建立及维护。如图10所示,整个网络路由方法如下所述。
S1001、客户端访问服务A,服务请求被传递到网络节点1,网络节点1接收到客户端对服务A的访问请求。
具体地,客户端接入网络后,发起对服务A的调用请求,请求报文到达网络节点1,网络节点1完成寻址及路由计算后,根据流粘性数据表中该服务A的流粘性属性信息在流表中建立流表项,以使得后续数据报文按该流表项进行转发。
S1002、网络节点1查询流表,按照流表中的流表项转发该访问请求的数据报文,或者,建立流表项。
具体的,网络节点1根据数据报文中的服务标识ID,查询本地保存的流表中是否有该 服务以及该客户端对应的流表项,例如,服务标识ID的一种实现方式为服务Anycast IP,服务Anycast IP地址可以作为数据报文的目的IP地址来标识服务ID。若有该服务以及该客户端对应的流表项,则按照该流表项指示的下一跳路由节点进行转发,当然按照流表项中的其他参数进行相应的操作;若没有,则查询流粘性数据表中该服务的流粘性属性信息,以及查询该服务的路由,根据该服务的流粘性属性信息以及查询到的路由结果生成流表项,插入到流表中。当流表中有该流的流表项时,需要重启或者更新该流表项对应的定时时间的信息,例如,重启定时器。当流表中没有该流的流表项时,在建立流表项时,启动定时时间的信息,例如,启动定时器。
网络节点1再接收到客户端发送的数据报文时,按照上述方法重复执行。
假设网络节点1将该数据报文转发到下一跳网络节点n。
S1003、网络节点n查询流表,按照流表中的流表项转发该访问请求的数据报文,或者,建立流表项。
网络节点n执行的动作与网络节点1执行的动作相同,参见S1002的描述。
假设网络节点1将该数据报文转发到下一跳为服务节点。
S1004、网络节点n将数据报文发送给服务节点,服务节点从网络节点n接收到该数据报文。
服务节点在接收到数据报文后,执行下行传输过程。即向客户端回传数据报文,具体回传的过程与上行传输时建立的流表项相关,各个网络节点在接收到数据报文时,根据上行传输时建立的流表项进行反向数据报文的转发。
这样完成了数据报文的整个路由过程,实现服务的流粘性维持。
基于上述实施例的描述,下面以在MEC的应用场景为例,对本申请实施例提供的网络路由方法做进一步详细说明。
如图11所示,在同一城域网的两个边缘站点(MEC)内都部署有服务(service)A,对外提供服务A,例如服务A为虚拟现实(virtual reality,VR)互动服务直播,此外远端的云(cloud)站点内也有计算资源能够提供该服务A。站点即上文中的服务节点。同一服务节点内的serviceA具备多个实例,这多个实例使用同一应用程序编程接口(application programming interface,API)网关(gateway),所有serviceA的API Gateway对外暴露相同的IP地址。各服务节点的入口处部署计算调度的路由器(router),路由器即上文中的网络节点。管理节点将serviceA的流粘性属性信息通知给各个服务节点,各个服务节点在本地保存服务A的流粘性属性信息,例如通过流粘性数据表来保存。
可以通过在网元设备用户面功能(user plane function,UPF)上配置相应的转发策略,使得访问serviceA的数据报文被定向转发至就近的路由器。
可选的,客户端接入网络后,发起对serviceA的调用请求,经过接入网设备到达UPF,UPF根据转发策略,将访问serviceA的数据报文定向转发至就近的路由器。
数据报文到达路由器后,路由器进行服务寻址及路由计算,并根据服务寻址和路由计算的结果以及流粘性属性信息建立流表项。那么路由器对后续到来的数据报文按该流表项进行转发。
系统运行之初,各个服务节点上servicerA的服务资源充足,客户端的请求由就近的服 务节点提供服务。如图11所示,客户端1与服务节点1内serviceA建立连接,客户端2与服务节点2内的serviceA建立连接。随着系统的运行,各个服务节点间出现负载不均的情况,例如通过路由器2接入的客户端逐渐增多,服务节点2内的serviceA负载变重,影响部分用户的服务质量,在此情况下路由器2将新接入的客户端N调度到临近的服务节点1,新接入的客户端(N+1)被调度到更高的云cloud站点。
经过路由器2的有多条数据流,各个数据流的目的IP是相同的,都是serviceA,但实际上不同的数据流到达的服务节点并不是相同的。如果依靠现有技术的普通路由转发功能,则无法保证各个数据流的数据报文能转发到原来的服务节点,可能会出现断流、丢包等问题,通过本申请实施例上述设计的方法,路由器2在收到数据报文时,根据数据报文所属数据流的流表项来进行转发,能够有助于保障各条流的流粘性,保证各条流的正确及高效转发。
综上,通过本申请实施例提供的网络路由方法,网络节点在本地根据流粘性属性信息建立流表项,按照流表项对数据报文进行转发,有助于保证数据流的正确高效转发。不同的服务可以按照自身的需求向网络暴露自身的流粘性属性信息,网络可以按照服务的需求进行流粘性属性信息的扩散,实现服务需求的高效匹配和动态可调。另外,通过流粘性属性信息中的附加参数,能够实现客户端或服务对数据流的流粘性的各种需求。当服务或客户端对流粘性有实时变更需求时,也可通过对流表项进行实时调整,满足各种业务的对流粘性的需求。通过流表项中的定时时间信息,对流表项进行持续刷新,为客户端保持该数据流的服务节点的动态特性。根据更新或删除流表项,能够及时为客户端匹配到更合适的服务节点。
基于上述方法实施例的同一构思,如图12所示,本申请实施例还提供一种网络路由装置1200,该通信装置1200具有执行上述方法实施例中网络节点执行的操作的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。例如,该通信装置1200包括处理单元1201和接收单元1202。接收单元1202用于执行方法实施例中接收的步骤。处理单元1201用于执行除接收外的其它步骤。该通信装置1200可以是网络节点、路由器或交换机,也可以是网络节点、路由器或交换机内部的芯片或功能模块,当该通信装置1200用于执行上述方法实施例中网络节点执行的操作时:
接收单元1202,用于从客户端接收第一数据报文,该第一数据报文包括服务的标识;
处理单元1201,用于根据该服务的标识获取该服务的流粘性属性信息,该服务的流粘性属性信息包括该服务的流粘性类型和该服务的流粘性超时时间,该流粘性类型用于标识该第一数据报文中的一个或多个数据项作为键值来识别该第一数据报文所属的数据流;
该处理单元1201,还用于在该第一数据报文为数据流的首个数据报文时,根据该服务的流粘性属性信息建立流表项,该流表项用于转发该数据流的后续数据报文。
可选的,该处理单元1201还用于:
根据该服务的标识,确定该第一数据报文路由的下一跳网络节点的信息;该流表项中还包括该下一跳网络节点的信息。
可选的,接收单元1202用于从该客户端接收第二数据报文,该第二数据报文包括该服务的标识;
该处理单元1201还用于:根据该服务的标识获取该服务的流粘性属性信息;以及确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对 应关系;以及确定该一个或多个流表中包含该数据流对应的该流表项,则根据该流表项转发该第二数据报文。
可选的,该处理单元1201还用于:
确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
以及确定该一个或多个流表中不包含该数据流对应的流表项,则确定该第一数据报文为该数据流的首个数据报文。
可选的,该通信装置1200还包括发送单元1203,发送单元1203用于向管理节点发送查询消息,该查询消息用于查询该服务的流粘性属性信息;
接收单元1202还用于从该管理节点接收该查询消息的应答消息,该应答消息中携带该服务的流粘性属性信息。
可选的,该处理单元1201还用于:
确定该流表项中定时时间超过该流粘性超时时间,删除该流表项。
可选的,该处理单元1201还用于:
确定该数据流的路由已经失效,则删除该流表项。
可选的,该流表项中还包括以下一种或多种信息:该服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
可选的,该流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
可选的,该服务的该流粘性属性信息还包括以下一种或多种:该数据流的上下行传输路径是否要求一致的指示信息;该数据流的热切换功能指示信息,该数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;该数据流的重置指示信息,该重置指示信息用于指示该网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收该数据流的服务节点以及进行该流表项的更新;该数据流的删除指示信息,该删除指示信息用于指示该网络节点是否监测数据报文的第二标志位,并通过监测结果删除该数据流的流表项。
基于与上述方法实施例的同一构思,如图13所示,本申请实施例还提供了一种网络路由装置1300,该网络路由装置1300用于实现上述方法实施例中网络节点执行的操作。图13仅仅示出了网络路由装置1300的主要部件。
网络路由装置1300包括:收发器1301和处理器1302,可选的还可以包括存储器1303。收发器1301用于与其它设备(例如客户端或服务节点)进行消息或信令的传输,处理器1302与存储器1303耦合,用于调用存储器1303中的程序,当程序被执行时,使得处理器1302执行上述方法实施例中网络节点执行的操作。存储器1303用于存储处理器1302执行的程序。收发器1301可以包括发射器和/或接收器,分别实现收发功能。处理器1302可以为一个或多个。存储器1303可以位于处理器1302中,也可以单独存在。图12中的功能模块处理单元1201可以通过处理器1302来实现,接收单元1202和发送单元1203可以通过收发器1301来实现。本领域技术人员可以理解,为了便于说明,图13仅示出了一个存储器和处理器。在实际的网络节点中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。
处理器1302主要用于对通信协议以及通信数据进行处理,以及对整个网络路由装置进行控制,执行软件程序,处理软件程序的数据,例如用于支持网络路由装置执行上述方法实施例中所描述的动作。存储器1303主要用于存储软件程序和数据。
其中,处理器1302执行以下操作:
收发器1301,用于从客户端接收第一数据报文,该第一数据报文包括服务的标识;
处理器1302,用于根据该服务的标识获取该服务的流粘性属性信息,该服务的流粘性属性信息包括该服务的流粘性类型和该服务的流粘性超时时间,该流粘性类型用于标识该第一数据报文中的一个或多个数据项作为键值来识别该第一数据报文所属的数据流;
该处理器1302,还用于在该第一数据报文为数据流的首个数据报文时,根据该服务的流粘性属性信息建立流表项,该流表项用于转发该数据流的后续数据报文。
可选的,该处理器1302还用于:
根据该服务的标识,确定该第一数据报文路由的下一跳网络节点的信息;该流表项中还包括该下一跳网络节点的信息。
可选的,该收发器1301还用于:从该客户端接收第二数据报文,该第二数据报文包括该服务的标识;
该处理器1302还用于:根据该服务的标识获取该服务的流粘性属性信息;以及确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及确定该一个或多个流表中包含该数据流对应的该流表项,则根据该流表项转发该第二数据报文。
可选的,该处理器1302还用于:
确定该服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
以及确定该一个或多个流表中不包含该数据流对应的流表项,则确定该第一数据报文为该数据流的首个数据报文。
可选的,该收发器1301还包括:
向管理节点发送查询消息,该查询消息用于查询该服务的流粘性属性信息;
从该管理节点接收该查询消息的应答消息,该应答消息中携带该服务的流粘性属性信息。
可选的,该处理器1302还用于:
确定该流表项中定时时间超过该流粘性超时时间,删除该流表项。
可选的,该处理器1302还用于:
确定该数据流的路由已经失效,则删除该流表项。
可选的,该流表项中还包括以下一种或多种信息:该服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
可选的,该流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
可选的,该服务的该流粘性属性信息还包括以下一种或多种:该数据流的上下行传输路径是否要求一致的指示信息;该数据流的热切换功能指示信息,该数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓 存数据流缓冲区长度信息;该数据流的重置指示信息,该重置指示信息用于指示该网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收该数据流的服务节点以及进行该流表项的更新;该数据流的删除指示信息,该删除指示信息用于指示该网络节点是否监测数据报文的第二标志位,并通过监测结果删除该数据流的流表项。
处理器1302可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器1302还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器1303可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1303也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1303还可以包括上述种类的存储器的组合。
在本申请上述方法实施例描述的网络节点所执行的操作和功能中的部分或全部可以用芯片或集成电路来完成。
为了实现上述图12或图13所述的网络路由装置的功能,本申请实施例还提供一种芯片,包括处理器,用于支持该网络路由装置实现上述方法实施例中网络节点所涉及的功能。在一种可能的设计中,该芯片与存储器连接或者该芯片包括存储器,该存储器用于保存该网络路由装置必要的程序指令和数据。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例的指令。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方 框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

  1. 一种网络路由方法,其特征在于,包括:
    网络节点从客户端接收第一数据报文,所述第一数据报文包括服务的标识;
    所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间;
    所述网络节点在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。
  2. 如权利要求1所述的方法,其特征在于,所述方法还包括:
    所述网络节点根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。
  3. 如权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述网络节点从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;
    所述网络节点根据所述服务的标识获取所述服务的流粘性属性信息;
    所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
    所述网络节点确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。
  4. 如权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述网络节点确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;
    所述网络节点确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。
  5. 如权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:
    所述网络节点向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;
    所述网络节点从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。
  6. 如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
    所述网络节点确定所述流表项中定时时间超过所述流粘性超时时间,删除所述流表项。
  7. 如权利要求1~6任一项所述的方法,其特征在于,所述方法还包括:
    所述网络节点确定所述数据流的路由已经失效,则删除所述流表项。
  8. 如权利要求1~7任一项所述的方法,其特征在于,所述流表项中还包括以下一种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
  9. 如权利要求1~8任一项所述的方法,其特征在于,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
  10. 如权利要求1~9任一项所述的方法,其特征在于,所述服务的所述流粘性属性信 息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
  11. 一种网络路由装置,其特征在于,包括:
    接收单元,用于从客户端接收第一数据报文,所述第一数据报文包括服务的标识;
    处理单元,用于根据所述服务的标识获取所述服务的流粘性属性信息,所述服务的流粘性属性信息包括所述服务的流粘性类型和所述服务的流粘性超时时间,所述流粘性类型用于标识所述第一数据报文中的一个或多个数据项作为键值来识别所述第一数据报文所属的数据流;
    所述处理单元,还用于在所述第一数据报文为数据流的首个数据报文时,根据所述服务的流粘性属性信息建立流表项,所述流表项用于转发所述数据流的后续数据报文。
  12. 如权利要求11所述的装置,其特征在于,所述处理单元还用于:
    根据所述服务的标识,确定所述第一数据报文路由的下一跳网络节点的信息;所述流表项中还包括所述下一跳网络节点的信息。
  13. 如权利要求11或12所述的装置,其特征在于,所述接收单元还用于:从所述客户端接收第二数据报文,所述第二数据报文包括所述服务的标识;
    所述处理单元还用于:根据所述服务的标识获取所述服务的流粘性属性信息;以及确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及确定所述一个或多个流表中包含所述数据流对应的所述流表项,则根据所述流表项转发所述第二数据报文。
  14. 如权利要求11或12所述的装置,其特征在于,所述处理单元还用于:
    确定所述服务的流粘性类型对应的一个或多个流表,其中,服务的流粘性类型与流表之间具有对应关系;以及
    确定所述一个或多个流表中不包含所述数据流对应的流表项,则确定所述第一数据报文为所述数据流的首个数据报文。
  15. 如权利要求11~14任一项所述的装置,其特征在于,所述装置还包括发送单元;
    所述发送单元,用于向管理节点发送查询消息,所述查询消息用于查询所述服务的流粘性属性信息;
    所述接收单元,还用于从所述管理节点接收所述查询消息的应答消息,所述应答消息中携带所述服务的流粘性属性信息。
  16. 如权利要求11~15任一项所述的装置,其特征在于,所述处理单元还用于:
    确定所述流表项中定时时间超过所述流粘性超时时间,删除所述流表项。
  17. 如权利要求11~16任一项所述的装置,其特征在于,所述处理单元还用于:
    确定所述数据流的路由已经失效,则删除所述流表项。
  18. 如权利要求11~17任一项所述的装置,其特征在于,所述流表项中还包括以下一 种或多种信息:所述服务的标识、源网际协议IP地址、源端口、目的IP地址、目的端口以及下一跳网络节点的信息。
  19. 如权利要求11~18任一项所述的装置,其特征在于,所述流粘性类型的值包括以下一种或任意多种的组合:传输协议类型、源IP地址、源端口、目的IP地址、目的端口。
  20. 如权利要求11~19任一项所述的装置,其特征在于,所述服务的所述流粘性属性信息还包括以下一种或多种:所述数据流的上下行传输路径是否要求一致的指示信息;所述数据流的热切换功能指示信息,所述数据流的热切换功能指示信息包括使能指示信息;回程包超时定时器时间信息;缓存数据流功能指示信息;缓存数据流缓冲区长度信息;所述数据流的重置指示信息,所述重置指示信息用于指示所述网络节点是否监测数据报文的第一标志位,并通过监测结果重选接收所述数据流的服务节点以及进行所述流表项的更新;所述数据流的删除指示信息,所述删除指示信息用于指示所述网络节点是否监测数据报文的第二标志位,并通过监测结果删除所述数据流的流表项。
PCT/CN2020/096175 2019-06-14 2020-06-15 一种网络路由方法及装置 WO2020249129A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20822347.9A EP3972208A4 (en) 2019-06-14 2020-06-15 METHOD AND APPARATUS FOR NETWORK ROUTING
US17/549,183 US20220103476A1 (en) 2019-06-14 2021-12-13 Network routing method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910518094.4 2019-06-14
CN201910518094.4A CN112087390B (zh) 2019-06-14 2019-06-14 一种网络路由方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/549,183 Continuation US20220103476A1 (en) 2019-06-14 2021-12-13 Network routing method and apparatus

Publications (1)

Publication Number Publication Date
WO2020249129A1 true WO2020249129A1 (zh) 2020-12-17

Family

ID=73734404

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/096175 WO2020249129A1 (zh) 2019-06-14 2020-06-15 一种网络路由方法及装置

Country Status (4)

Country Link
US (1) US20220103476A1 (zh)
EP (1) EP3972208A4 (zh)
CN (1) CN112087390B (zh)
WO (1) WO2020249129A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966938A (zh) * 2021-03-08 2021-06-15 中国联合网络通信集团有限公司 评估边缘计算能力的方法和装置
CN115801675A (zh) * 2021-09-09 2023-03-14 华为技术有限公司 一种报文处理方法及相关装置
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11962564B2 (en) * 2022-02-15 2024-04-16 VMware LLC Anycast address for network address translation at edge
CN114629842B (zh) * 2022-03-30 2024-06-28 阿里巴巴(中国)有限公司 流表处理方法、电子设备、可读存储介质及产品
CN117354372A (zh) * 2022-06-29 2024-01-05 中兴通讯股份有限公司 网元访问方法、装置、网元及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363183B2 (en) * 2014-04-10 2016-06-07 Cisco Technology, Inc. Network address translation offload to network infrastructure for service chains in a network environment
CN106489256A (zh) * 2013-11-04 2017-03-08 瑞典爱立信有限公司 在使用软件定义连网的云环境中的服务链接
CN106664251A (zh) * 2014-07-07 2017-05-10 思科技术公司 网络环境中的双向流粘性
CN108134828A (zh) * 2017-12-20 2018-06-08 金蝶软件(中国)有限公司 服务请求的路由方法、装置、计算机设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549516B1 (en) * 1999-07-02 2003-04-15 Cisco Technology, Inc. Sending instructions from a service manager to forwarding agents on a need to know basis
US20020143965A1 (en) * 2001-04-03 2002-10-03 International Business Machines Corporation Server application initiated affinity within networks performing workload balancing
US6856991B1 (en) * 2002-03-19 2005-02-15 Cisco Technology, Inc. Method and apparatus for routing data to a load balanced server using MPLS packet labels
US7047315B1 (en) * 2002-03-19 2006-05-16 Cisco Technology, Inc. Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106489256A (zh) * 2013-11-04 2017-03-08 瑞典爱立信有限公司 在使用软件定义连网的云环境中的服务链接
US9363183B2 (en) * 2014-04-10 2016-06-07 Cisco Technology, Inc. Network address translation offload to network infrastructure for service chains in a network environment
CN106664251A (zh) * 2014-07-07 2017-05-10 思科技术公司 网络环境中的双向流粘性
CN108134828A (zh) * 2017-12-20 2018-06-08 金蝶软件(中国)有限公司 服务请求的路由方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3972208A4 *

Also Published As

Publication number Publication date
US20220103476A1 (en) 2022-03-31
EP3972208A1 (en) 2022-03-23
CN112087390B (zh) 2022-05-31
EP3972208A4 (en) 2022-07-20
CN112087390A (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
WO2020249129A1 (zh) 一种网络路由方法及装置
EP2920932B1 (en) Apparatus for a high performance and highly available multi-controllers in a single sdn/openflow network
US9838333B2 (en) Software-defined information centric network (ICN)
WO2020001393A1 (zh) 发送网络性能参数、计算网络性能的方法和网络节点
US8429296B2 (en) Method and apparatus for distributing routing instructions over multiple interfaces of a data router
US9743367B2 (en) Link layer discovery protocol (LLDP) on multiple nodes of a distributed fabric
US20150372947A1 (en) Packet processing method and device
KR20170037818A (ko) 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹
JP6371592B2 (ja) コンテンツ中心ネットワークにおけるノードの通信方法及びそのノード
CN102238226A (zh) 在以内容为中心的网络上的会话迁移
US9407687B2 (en) Method, apparatus, and network system for acquiring content
WO2020249128A1 (zh) 一种服务路由方法及装置
KR20170036610A (ko) 콘텐트 중심 네트워크들에서 검출되지 않은 관심 루핑을 제거하기 위한 시스템 및 방법
WO2018068588A1 (zh) 提供组播业务的方法和软件定义网络控制器
WO2020259688A1 (zh) 用户面重路由方法及装置
EP3313031B1 (en) Sdn-based arp realization method and apparatus
CN114285794A (zh) 报文转发控制方法、报文传输网络、电子设备及存储介质
WO2013104237A1 (zh) 内容分发的方法、装置及接入网设备
CN113556784A (zh) 网络切片实现方法、装置及电子设备
US20240267324A1 (en) Packet forwarding method and apparatus
WO2022089169A1 (zh) 计算路由信息发送方法、装置、设备及存储介质
WO2021000619A1 (zh) 报文转发方法及装置
JP6662195B2 (ja) 情報セントリックネットワーキングにおけるインテリジェント・ルーティング
US9338230B2 (en) Method, network entity and network system for forwarding resources
Dash et al. Flooding control in named data networking

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: 20822347

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020822347

Country of ref document: EP

Effective date: 20211217