A method, network node and system for packet transmission
Patent Information
- Application Number
- CN202111206445.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2018-03-29
- Publication Date
- 2026-10-23
- Estimated Expiration
- 2038-03-29
AI Technical Summary
但是,由于链路时延的存在,报文可能在一个节点的第n个cycle time被发出,但是可能会在下一跳节点的第(n+1)个cycle time才被收到,因此,CQF在报文转发过程中并不能准确的实现确定的时延保障
Smart Images

Figure CN114095422B_ABST
Abstract
Description
[0001] This application is a divisional application of the application filed with the State Intellectual Property Office of the People's Republic of China on March 29, 2018, with application number 201810273967.5 and entitled "A method, network node and system for sending messages". Technical Field
[0002] This invention relates to the field of communications, and more particularly to a method, network node, and system for sending messages. Background Technology
[0003] Deterministic networking (DetNet) provides applications with highly reliable paths. It offers bounded latency guarantees and extremely low packet loss rates. Bounded latency guarantees mean that during end-to-end packet forwarding, the packet forwarding latency remains within a fixed required range. Bounded latency is achieved through reserved bandwidth resources and queue management algorithms at the end-to-end level. Cyclic queuing and forwarding (CQF) is a queue management method currently used in deterministic networks. The core of CQF is that a packet sent at node A on the forwarding path within a certain cycle time will be received at the next hop node within the same cycle time, and then sent again at the next cycle time. Therefore, the maximum latency for each hop is one cycle time, and the maximum end-to-end latency is (N+1)*cycle time, where N is the number of intermediate nodes on the packet forwarding path. However, due to link latency, a packet may be sent at the nth cycle time of a node, but may not be received until the (n+1)th cycle time of the next hop node. Therefore, CQF cannot accurately guarantee a deterministic latency during packet forwarding. Summary of the Invention
[0004] This application provides a method, network node, and system for sending messages, which can accurately ensure latency during message forwarding.
[0005] In a first aspect, embodiments of the present invention provide a method for sending a message, the method comprising: a controller acquiring a forwarding delay requirement of a service flow and a destination address of the service flow; determining a forwarding path for forwarding the service flow based on the forwarding delay requirement and the destination address; the delay of the forwarding path satisfying the forwarding delay requirement of the service flow; the forwarding path passing through a first network node and a second network node; the first network node being an entry node of the forwarding path and the second network node being an intermediate node of the forwarding path; the controller determining a first cycle time number for forwarding a message by the first network node and a second cycle time number for forwarding a message by the second network node, and determining a first adjacent segment identifier corresponding to the first cycle time number and a second adjacent segment identifier corresponding to the second cycle time number; the message belonging to the service flow; the controller generating a tag stack, the tag stack containing the first adjacent segment identifier and the second adjacent segment identifier; the controller sending the tag stack to the first network node, the tag stack being used to guide the first network node to forward the message along the forwarding path within the time corresponding to the first cycle time number.
[0006] Through the above technical solution, the controller determines the forwarding path according to the forwarding latency requirements of the service flow, and determines the cycle time number corresponding to the forwarding time of the entry node and intermediate node on the forwarding path, and then generates the corresponding tag stack. The adjacent segment identifier in the tag stack corresponds to the cycle time number when the node forwards the packet. In this way, the entry node and intermediate node on the forwarding path can forward the packet belonging to the service flow according to the tag stack at the determined time, thereby achieving the latency guarantee of packet forwarding.
[0007] In one possible design, the message is either the first message in the service flow or any message in the service flow.
[0008] In one possible design, the controller obtains the node latency of the first network node and the second network node, the node latency including packet processing latency and packet transmission latency. The controller obtains the link latency of the links on the forwarding path. The latency of the forwarding path satisfies the packet forwarding latency requirement by the sum of the node latency of the first network node, the node latency of the second network node, and the link latency of the links on the forwarding path being within the range of the packet forwarding latency requirement.
[0009] In one possible design, the latency of the forwarding path is equal to the sum of the node latency of the first network node, the node latency of the second network node, and the link latency of the links on the forwarding path.
[0010] In one possible design, the controller obtains the duration of the cycle time of the first network node and the duration of the cycle time of the second network node; the controller obtains the third cycle time number of the first network node and the fourth cycle time number of the second network node corresponding to the current time of the controller; the controller determines the first cycle time number based on the duration of the cycle time of the first network node and the third cycle time number, wherein the start time corresponding to the first cycle time number is after the first network node receives the tag stack; the controller determines the second cycle time number based on the duration of the cycle time of the first network node, the link delay from the first network node to the second network node, the packet processing delay of the second network node, the third cycle time number, and the duration of the cycle time of the second network node.
[0011] In one possible design, the controller receives an announcement message sent by the first network node, the announcement message containing the forwarding delay requirement and the destination address of the message.
[0012] Secondly, the present invention provides a method for sending a message, the method comprising: a first network node obtaining a message; the first network node obtaining a first tag stack based on the message, the first tag stack being a tag stack corresponding to a forwarding path for forwarding the message, the first tag stack containing an adjacency segment identifier of the first network node and an adjacency segment identifier of a second network node, the first network node being an entry node of the forwarding path, and the second network node being an intermediate node of the forwarding path; the first network node pushing the first tag stack onto the message, the top tag of the first tag stack being an adjacency segment identifier of the first network node; the first network node determining a cycle time number for forwarding the message based on the adjacency segment identifier of the first network node; the first network node popping the adjacency segment identifier of the first network node from the first tag stack to obtain a second tag stack; and the first network node sending the message containing the second tag stack to the second network node within the time corresponding to the cycle time number.
[0013] In this technical solution, after receiving a packet, the first network node obtains a first tag stack based on the packet. Then, based on the adjacent segment identifier of the first network node contained in the tag stack, it determines the cycletime number corresponding to forwarding the first packet. Then, within the time corresponding to the cycletime number, it sends the packet to the next hop of the first network node. Thus, the first network node sends the packet out at a determined time, which is beneficial to achieving a time delay guarantee for packet forwarding.
[0014] In one possible design, the first network node obtains a service flow and sends the forwarding delay requirement and the destination address of the service flow to the controller, triggering the controller to determine the forwarding path and the corresponding label stack for the forwarding path based on the forwarding delay requirement and the destination address, wherein the packet is a packet in the service flow; the first network node receives the label stack corresponding to the forwarding path sent by the controller.
[0015] In one possible design, the first network node obtains the first tag stack based on the tag stack corresponding to the forwarding path sent by the controller. Specifically, the first tag stack is obtained by adding N to each tag in the tag stack corresponding to the forwarding path, where N is the sequence number of the transmitted packet minus 1, based on the perceived packet transmission rate.
[0016] In one possible design, the first network node sending the message containing the second tag stack to the second network node within the time corresponding to the cycle time number includes: the first network node adding the message containing the second tag stack to the message queue corresponding to the cycle time number; and when the message queue is a sending queue, sending the message containing the second tag stack to the second network node using the outgoing interface corresponding to the adjacent segment identifier of the first network node.
[0017] Thirdly, the present invention provides a method for sending a message, the method comprising: a second network node receiving a first message sent by a first network node, the message containing a tag stack; the second network node obtaining the top tag of the tag stack; determining that the top tag of the tag stack is an adjacency segment identifier of the second network device, and determining the cycle time number corresponding to the adjacency segment identifier according to a stored correspondence between adjacency segment identifiers and cycle time numbers; the second network node popping the adjacency segment identifier of the second network node from the tag stack of the first message to generate a second message, and sending the second message to the next-hop network node of the second network node within the cycle time number.
[0018] In one possible design, the first network node sending the second message to the next-hop network node within the time corresponding to the cycle time number includes: the second network node adding the second message to the message queue corresponding to the cycle time number; and when the message queue is a sending queue, sending the second message to the next-hop network node using the outgoing interface corresponding to the adjacent segment identifier of the second network node.
[0019] Fourthly, embodiments of the present invention provide a controller for executing the method in the first aspect or any possible implementation thereof. Specifically, the controller includes a unit for executing the method in the first aspect or any possible implementation thereof.
[0020] Fifthly, embodiments of the present invention provide a first network node that executes the method in the second aspect or any possible implementation thereof. Specifically, the first network node includes units for executing the method in the second aspect or any possible implementation thereof.
[0021] In a sixth aspect, embodiments of the present invention provide a second network node that executes the method in the third aspect or any possible implementation thereof. Specifically, the second network node includes units for executing the method in the third aspect or any possible implementation thereof.
[0022] In a seventh aspect, a controller is provided, comprising: a processor, a network interface, and a memory. The memory can be used to store program code, and the processor is used to invoke the program code in the memory to execute the methods in the first aspect or any possible implementation thereof, as detailed in the method examples, which will not be repeated here.
[0023] Eighthly, a first network node is provided, comprising: a processor, a network interface, and a memory. The memory can be used to store program code, and the processor is used to invoke the program code in the memory to execute the methods in the aforementioned second aspect or any possible implementation thereof, as detailed in the method examples, which will not be repeated here.
[0024] In a ninth aspect, a second network node is provided, comprising: a processor, a network interface, and a memory. The memory can be used to store program code, and the processor is used to invoke the program code in the memory to execute the methods in the aforementioned third aspect or any possible implementation thereof, as detailed in the method examples, which will not be repeated here.
[0025] In a tenth aspect, a message transmission system is provided, the system comprising the controller, first network node, and second network node provided in the foregoing aspects.
[0026] Eleventhly, a computer storage medium is provided for storing computer software instructions for use by the aforementioned network node or controller, including programs designed to execute the aforementioned aspects. Attached Figure Description
[0027] Figure 1 This invention provides a schematic diagram of CQF message forwarding in an embodiment of the present invention. Figure 2 This is a schematic diagram of a message forwarding application scenario provided by an embodiment of the present invention; Figure 3 This is a schematic diagram of a message forwarding process provided in an embodiment of the present invention; Figure 4 A schematic diagram illustrating the correspondence between segment identifiers and cycle time numbers provided in an embodiment of the present invention; Figure 5 This is a schematic diagram of a message forwarding process provided in an embodiment of the present invention; Figure 6 A schematic diagram of a message queue provided in an embodiment of the present invention; Figure 7 A schematic diagram of the structure of a controller provided in an embodiment of the present invention; Figure 8 A schematic diagram of the structure of a controller provided in an embodiment of the present invention; Figure 9 This is a schematic diagram of the structure of a first network node provided in an embodiment of the present invention; Figure 10 This is a schematic diagram of the structure of a first network node provided in an embodiment of the present invention; Figure 11 This is a schematic diagram of the structure of a second network node provided in an embodiment of the present invention; Figure 12 This is a schematic diagram of the structure of a second network node provided in an embodiment of the present invention; Figure 13 This is a schematic diagram of a message forwarding system provided in an embodiment of the present invention. Detailed Implementation
[0028] The embodiments of the present invention will now be described with reference to the accompanying drawings.
[0029] CQF is a queue management method that uses dual queues to alternately send messages. Each message has an independent transmission time period at each network node. Through resource reservation, messages within the same time period are guaranteed sufficient bandwidth, while messages from different time periods are isolated. Each message has a defined delay when forwarded at each network node. For example... Figure 1 As shown, each network node has two message queues: a message receive queue and a message send queue. The message receive queue receives messages sent from the previous hop network node to the current network node. The message send queue sends buffered messages to the next hop network node; this queue may or may not receive messages. The roles of the message receive queue and the message send queue can switch. Messages received by the message receive queue are sent to the next hop network node when the node becomes the message send queue. Each network node has a clock. After a fixed period of time, the message receive queue and the message send queue exchange roles (the message receive queue becomes the message send queue, and vice versa). This fixed period of time is defined as a cycle time, or simply a cycle. Network nodes record time in cycles. The length of each network node's cycle is the same, and the start and end times of cycles for different network nodes must be the same. The roles of the message receive queue and the message send queue are interchanged periodically with each cycle.
[0030] See Figure 1 , Figure 1 This diagram illustrates packet forwarding using CQF for network nodes. In cycle 1, node 101's packet sending queue sends a packet to node 102's packet receiving queue. When the time changes from cycle 1 to cycle 2, node 102's packet receiving queue becomes a packet sending queue. In cycle 2, node 102's packet sending queue sends a packet to node 103's packet receiving queue. During the packet forwarding process from node 101 to node 103, the maximum packet forwarding delay is (N+1)*cycle, where N is the number of intermediate nodes in the forwarding path. Figure 1 In the scenario shown, the packet forwarding delay from node 101 to node 103 is 2 * cycle. Since this calculation of packet forwarding delay does not consider the impact of links between nodes, obtaining the maximum packet forwarding delay in this way is inaccurate. For example, if a packet is forwarded from node 101 to node 102 in cycle 1, and the link delay between nodes 101 and 102 is greater than the length of one cycle, it cannot be guaranteed that the packet will be forwarded to node 102 within cycle 1. Therefore, CQF cannot accurately guarantee a deterministic delay during packet forwarding.
[0031] Figure 2 This is a network scenario diagram illustrating a message sending method provided in an embodiment of the present invention. The application scenario includes: a controller 200, a sender 201, a receiver 206, network nodes 202, 203, 204, and 205. The controller 200 is a controller under a software-defined network (SDN) architecture, used to implement flow control and manage nodes in the network. Figure 2 In the scenario shown, network nodes 202, 203, 204, and 205 are controlled and managed. The network in which network nodes 202, 203, 204, and 205 reside is a segment routing (SR) network, and each of these nodes supports SR functionality. The sender 201 and receiver 206 can be user equipment, such as a mobile phone or personal computer. Network nodes 202, 203, 204, and 205 can be routers or switches. The link from network node 202 to network node 203 is Link 1, the link from network node 203 to network node 204 is Link 2, the link from network node 202 to network node 204 is Link 3, and the link from network node 204 to network node 205 is Link 4.
[0032] In this embodiment of the invention, a network node can be a specific network device, such as a router or a switch.
[0033] Combination Figure 2 The network scenario shown is described in the following document. Figure 3 This invention provides a method for sending a message, the method comprising: S301, the controller receives the node latency of network nodes and the link latency in the network. Node latency includes the message processing latency and message transmission latency of a node. For example, controller 200 receives the node latency of network node 202, network node 203, network node 204, and network node 205 respectively. Link latency includes the latency between network nodes in the network, such as... Figure 2 The latency of link 1, link 2, link 3 and link 4.
[0034] In one example, the packet processing latency of a network node is the average or maximum processing latency of processed packets. The packet transmission latency is the average or maximum transmission latency of packets sent by the network node. The link latency of link 1 is the average or maximum forwarding latency of a packet from network node 202 to network node 203; the link latency of link 2 is the average or maximum forwarding latency of a packet from network node 203 to network node 204; the link latency of link 3 is the average or maximum forwarding latency of a packet from network node 202 to network node 204; and the link latency of link 4 is the average or maximum forwarding latency of a packet from network node 204 to network node 205.
[0035] S302, the controller obtains the forwarding latency requirements of the service flow and the destination address of the service flow. This service flow is one that needs to be forwarded through the network managed by the controller. Figure 2 In the scenario shown, the packets in this service flow need to be forwarded through the SR network.
[0036] In one example, the forwarding latency requirement and destination address of the service flow can be sent from the ingress node of the SR network to the controller, such as... Figure 2 Network node 202 sends the latency requirements and destination address of the service flow to be forwarded to controller 200.
[0037] In one example, the forwarding latency requirement and destination address of the service flow can be sent from access point 201 to the controller. When access point 201 needs to send a service flow through the network managed by the controller, it sends the forwarding latency requirement and destination address of the service flow to the controller.
[0038] In one example, the forwarding latency requirement for this service flow can be a latency range, for example, the packet forwarding latency requirement is between 10 milliseconds (ms) and 15 ms, or the forwarding latency requirement can be a specific latency, for example, the forwarding latency is 20 ms.
[0039] S303, the control calculates a forwarding path based on the destination address of the service flow, and the latency of the forwarding path meets the forwarding latency requirements of the service flow. The forwarding path includes an ingress node, intermediate nodes, and an egress node. The latency of the forwarding path includes the node latency of the ingress node, the node latency of the intermediate nodes, and the link latency of the link from the ingress node to the egress node.
[0040] Combination Figure 2For example, if the destination address of a service flow is the address of receiver 206, controller 200 calculates the forwarding path in the SR network based on this destination address. There are two paths that can reach receiver 206: path 1 and path 2. Path 1 passes through network nodes 202, 203, and 205, while path 2 passes through network nodes 202, 204, and 205. Since the latency of path 1 meets the forwarding latency requirements of the service flow, while the latency of path 2 does not, the controller selects path 1 as the forwarding path for the service flow. The entry node of path 1 is network node 202, the intermediate node of path 1 is network node 203, and the exit node of path 1 is network node 205.
[0041] S304, the controller obtains the duration of the cycle time of the ingress node of the forwarding path and the cycle time number of the ingress node at the controller's current time. In this embodiment, the duration of the cycle time is the length of time occupied by the cycle time. The controller's current time refers to the time when the controller obtains the cycle time number of the ingress node.
[0042] S305, the controller obtains the duration of the cycle time of the intermediate nodes in the forwarding path and the cycle time number of the intermediate nodes at the controller's current time. There can be one or more intermediate nodes. The controller's current time refers to the time when the controller obtains the cycle time number of the intermediate node.
[0043] The duration of each network node's cycle time can be different or the same; this application embodiment does not impose specific limitations. Cycle time is a unit of network node process scheduling, during which one packet in the queue is sent. Each network node's cycle time is numbered starting from the time the network node starts up and gradually increases. Therefore, in this embodiment of the invention, the duration of each network node's cycle time can be the same or different, and the start and end times of each network node's cycle time can also be different. This avoids configuration complexity of network nodes, simplifies device management workload, and provides high packet forwarding efficiency.
[0044] Combination Figure 2For example, the control obtains the cycle time of network node 202 and network node 203 respectively. The cycle time of network node 202 is the first duration, for example, 10 milliseconds (ms), and the cycle time of network node 203 is the second duration, for example, 12 ms. The current cycle time number of network node 202 is the first number, for example, 124, and the current cycle time number of network node 203 is the second number, for example, 156.
[0045] S306, the controller determines the cycle time number of the message sent by the ingress node and the cycle time number of the message sent by the intermediate node, and the message belongs to the service flow. Optionally, the message can be the first message in the service flow, or any message in the service flow.
[0046] Once the controller obtains the current cycle time number and cycle time duration of the ingress node, it can select a time point as the time for the ingress node to send the message and determine the corresponding cycle time number. For example, if the current cycle time number of the ingress node is k (e.g., k=1001) and the cycle time duration is m (e.g., m=10ms), and the controller chooses to wait t seconds before allowing the ingress node to start sending the message (e.g., t=50 seconds), then the corresponding cycle time number L for sending the message is calculated according to the following formula: L = k + t * 1000 / m.
[0047] That is, L = 1001 + 50 * 1000 / 10 = 6001.
[0048] The aforementioned t seconds can be obtained by the controller calculating the waiting time t and the controller calculating the time when the ingress node forwards the message.
[0049] After determining the cycle time number of the ingress node, the controller then determines the cycle time number of the intermediate nodes. The controller determines the cycle time number of the first intermediate node on the forwarding path; this first intermediate node is the next-hop node of the ingress node. Figure 2 If node 202 is the entry node, then node 203 is the next hop node of node 202. The controller calculates the cycle time number of the first intermediate node as follows: The duration t of a message before it is enqueued at an intermediate node is calculated using the following formula. t = t1 + t2 + t3, where, t1 is the length of time when the message is forwarded at the cycle time of the ingress node with the number L; t2 is the link delay between the entry node and the intermediate node; t3 represents the maximum message processing delay at the intermediate node.
[0050] Based on the time t before the message is enqueued at the intermediate node, estimate the cycle time number of the latest enqueued message at the intermediate node, for example: If the current cycle time number of the intermediate node is 'a', for example, a=2001, and the cycle time duration is 'm', for example, m=20ms, and the latest enqueue time of the intermediate node calculated above is 't'=20 seconds, then the cycle time number B corresponding to the intermediate node sending this message is calculated according to the following formula: B = a + t*1000 / m = 3001.
[0051] The controller calculates the cycle time number of each intermediate node (excluding the first intermediate node) as follows: The duration t of a message before it is enqueued at a non-first intermediate node is calculated using the following formula. t = t1 + t2 + t3 + t4, where, t1 is the length of time when the message is forwarded at the cycle time of the ingress node with the number L; t2 is the link delay between the entry node and a non-first intermediate node; t3 represents the maximum message processing delay for non-first intermediate nodes; t4 is the sum of the node delays of the intermediate nodes traversed between the entry node and the first intermediate node.
[0052] S307, determine the adjacent segment identifiers of the entry node and the intermediate nodes, and generate a label stack. The label stack contains the adjacent segment identifiers of the entry node and the intermediate nodes sequentially from top to bottom.
[0053] S308, the controller sends the tag stack to the ingress node.
[0054] In one example, the outgoing interface of each node on the forwarding path can correspond to multiple adjacent segment identifiers, and a mapping between each adjacent segment identifier and a cycle number is established. See also Figure 4 For example, the adjacent segment identifiers corresponding to the outgoing interface of the ingress node on the forwarding path are SID 1-SID 10. These 10 adjacent segment identifiers correspond to a link corresponding to the outgoing interface forwarded by the ingress node along the forwarding path, such as... Figure 2Link 1 in the diagram. Each segment identifier (SID) of a port corresponds to multiple cycle numbers. The SID corresponding to this port or link can also be called the adjacent segment identifier. This SID can be an MPLS label. To limit the number of SIDs, without causing confusion, the correspondence between cycle numbers and SIDs can be many-to-one. For example, SID 1 corresponds to cycle number M, where M is an arithmetic sequence with the first term 0001 and a common difference of 10. For example, the cycle numbers corresponding to SID 1 are 0001, 0011, 0021, 0031, ... SID 2 corresponds to cycle number N, where N is an arithmetic sequence with the first term 0002 and a common difference of 10. For example, the cycle numbers corresponding to SID 2 are 0002, 0012, 0022, 0032, ... In this embodiment of the invention, 10 SIDs can be used to represent cycle numbers. The cycle numbers on the node increase over time, and the SIDs used for every 10 cycle numbers will cycle once.
[0055] In one example, after establishing the correspondence between each adjacent segment identifier and cycle number, the ingress node and intermediate node send the correspondence to the controller respectively, or the controller can proactively obtain the correspondence between adjacent segment identifiers and cycle numbers from each forwarding node.
[0056] The controller determines the required SID based on the calculated cycle time number of each node and the mapping between adjacent segment identifiers and cycle numbers. Then, it forms a label stack with the SIDs of each node, containing the SIDs of the ingress and intermediate nodes along the forwarding path from top to bottom. For example, combining... Figure 2 As shown, the message passes through nodes 202 and 203 to reach node 205, so the tag stack is...<SID 2,SID 4> Where SID 2 is the segment adjacency identifier of node 202, and SID 4 is the segment adjacency identifier of node 203. In this embodiment of the invention, different nodes can use the same adjacency segment identifier, that is, the adjacency segment identifier of a node is locally valid. For example, the adjacency segment identifiers of the corresponding forwarding path outgoing interface on the ingress node are SID 1-SID 10, and the adjacency segment identifiers of the corresponding forwarding path outgoing interface on the intermediate node can also be SID 1-SID 10. Figure 2 In the scenario shown, the adjacent segment identifiers of link 1 corresponding to the outgoing interface of node 202 are SID 1-SID 10, and the adjacent segment identifiers of link 2 corresponding to the outgoing interface of node 203 can also be SID 1-SID 10. The controller sends the tag stack to the ingress node, and after receiving the tag stack, the ingress node processes it according to step S309.
[0057] S309, the entry node forwards the message according to the label stack.
[0058] The ingress node pushes the tag stack into the header of a service message, which is a message within the service flow. When the top tag of the tag stack is determined to be the adjacent segment identifier of the ingress node, the cycle time number for sending the service message is determined based on the correspondence between the adjacent segment identifier and the cycle time number. Then, the top tag is popped, and the service message containing the remaining tags in the tag stack is sent to the intermediate node within the time corresponding to that cycle time number. For example, when the ingress node determines that the top tag stack is SID 2, it determines the corresponding cycle time number based on SID 2. If the determined cycle time number is 0002, 0012, 0022, 0032, ..., then the cycle time number closest to the current cycle time number of the ingress node is selected as the cycle time for sending the service message. For example, if the current cycle time number of the ingress node is 0030, then cycle time number 0032 is selected. After determining the cycle time number for sending the service message, the ingress node adds the service message to the message queue corresponding to the cycle time number. This message queue may be either a message receiving queue or a message sending queue.
[0059] In one example, when the ingress node adds the service message to the message queue corresponding to the cycle time, and the message queue is a sending queue, the service message is sent to the next-hop node of the ingress node using the outgoing interface corresponding to the adjacent segment identifier of the ingress node.
[0060] Combination Figure 2 The network scenario shown is described in the following document. Figure 5 This invention provides a method for sending a message, the method comprising: S501, the first network node obtains the forwarding latency requirements and destination address of the service flow. The service flow is either generated by the first network node or received by the first network node from another device. The first network node is the entry node of the forwarding path, such as... Figure 3 The entry node in the illustrated embodiment.
[0061] S502, the first network node sends the forwarding delay requirement of the service flow and the destination address of the service flow to the controller, triggering the controller to determine the forwarding path of the service flow and the first tag stack corresponding to the forwarding path according to the forwarding delay requirement and the destination address.
[0062] S503, the first network node receives a first label stack corresponding to the forwarding path sent by the controller. The first label stack contains the adjacent segment identifier of the first network node and the adjacent segment identifier of the second network node, where the second network node is an intermediate node in the forwarding path. Figure 3 The intermediate node in the illustrated embodiment.
[0063] S504, the first network node pushes a first label stack onto the header of the first packet. The top label of the first label stack is the adjacent segment identifier of the first network node. The first network node determines the cycle time for forwarding the first packet based on the adjacent segment identifier of the first network node. The first packet is a packet in the service flow.
[0064] S505, the first network node pops the adjacency segment identifier of the first network node from the first label stack in the header of the first message to generate a second message. The first label stack from which the adjacency segment identifier of the first network node is popped is the second label stack.
[0065] S506, the first network node sends the second message to the second network node within the time corresponding to the cycle time number.
[0066] S507, the second network node receives the second message, determines that the top label of the second label stack contained in the second message is the adjacent segment identifier of the second network device, and determines the cycle time corresponding to the adjacent segment identifier according to the stored correspondence between the adjacent segment identifier and the cycle time number.
[0067] S508, the second network node pops the adjacent segment identifier of the second network node in the second message to generate a third message, and sends the third message to the next-hop network node of the second network node within the time corresponding to the cycle time number.
[0068] In one example, the first network node can perform... Figure 3 The steps performed by the entry node in the illustrated embodiment are described in detail in the following steps. Figure 3 In the illustrated embodiment, the second network node can perform... Figure 3 The steps performed by the intermediate node in the illustrated embodiment are described in detail in the following steps. Figure 3 As shown.
[0069] In one example, after the first network node obtains the first label stack from the controller, it can generate a label stack for forwarding packets following the first packet in the service flow based on the first label stack. For example, when the first label stack corresponding to the first packet is...<SID 2,SID 4> SID 2 is the adjacent segment identifier of the first network node, and SID 4 is the segment adjacent identifier of the second network node. Each node has multiple cycle time numbers corresponding to one adjacent segment identifier. When packets in the service flow are sent according to the cycle time interval, the tag stack corresponding to the first packet after the first packet in that service flow is...<SID 3,SID 5> In this service flow, the tag stack corresponding to the second message after the first message is...<SID 4,SID 6> This means that the label stack for subsequent packets is generated by incrementing the SID by 1. When the SID of a network node in a label stack becomes SID 10, the SID of the corresponding next label stack becomes SID 1, that is, the labels are renumbered at intervals of 10.
[0070] In one example, the outgoing port of the first network node corresponds to three packet queues: two packet receiving queues and one packet sending queue. See [link to example]. Figure 6 The first network node's message queue is in message queue state 1 at cycle time 1, in message queue state 2 at cycle time 2, and in message queue state 3 at cycle time 3. In message queue state 1, queue 1 is the sending queue, and queues 2 and 3 are the receiving queues. In message queue state 2, queue 2 is the sending queue, and queues 1 and 3 are the receiving queues. In message queue state 3, queue 3 is the sending queue, and queues 1 and 2 are the receiving queues. The message queue states are arranged according to... Figure 6The message queue alternates between three states: cycle time 1, 4, 7, 10, ... (message queue state 1), cycle time 2, 5, 8, 11, ... (message queue state 2), and cycle time 3, 6, 9, 12, ... (message queue state 3). Each queue corresponds to a cycle time number. For example, queue 1 has cycle times of 1, 4, 7, 10, ...; queue 2 has cycle times of 2, 5, 8, 11, ...; and queue 3 has cycle times of 3, 6, 9, 12, ... The cycle time number sequence for each queue is an arithmetic sequence with a common difference of 3. When the first network node determines that the cycle time for sending the first message is cycle time 5, and determines that the current cycle time number of the first network node is 4, then the current message queue state is determined to be message queue state 1, and the first message whose adjacent segment identifier has been popped from the first network node is added to message queue 2. When the cycle time of the first network node becomes cycletime 5, the state of the message queue is state 2, and the message is sent to the second network node through message queue 2.
[0071] In one example, the output port of the second network node also corresponds to... Figure 6 The three message queues shown are configured as follows: Figure 6 As shown. When the second network node receives the second message at cycle time 6, and determines from the message's tag stack that it needs to send the second message outward at cycle time 8, it adds the second message to queue 2. At this time, the message queue's state is 3. When the second network node's cycle time number changes to 8, the message queue's state becomes 2, and queue 2 is in message sending state. The second network node then sends the second message to its next-hop node through message queue 2.
[0072] By setting up multiple message queues in network nodes, the reliability of message forwarding can be increased. For example, if a message arrives at a second network node and its message receiving queue is already full, a queue overflow will occur, and the message will not be forwarded correctly. By increasing the number of message receiving queues, messages can be buffered when they arrive at the network node in advance and then sent when their cycle time arrives, thus improving the reliability of message transmission.
[0073] Figure 7 The above-described embodiment illustrates a possible structural diagram of the controller 700, which can implement... Figure 3 or Figure 5 The function of the controller in the illustrated embodiment. See also Figure 7 The controller 700 includes: an acquisition unit 701, a determination unit 702, a processing unit 703, and a sending unit 704. These units can perform the corresponding functions of the controller in the above method embodiments. The acquisition unit 701 is used to support the controller 700 in performing... Figure 3 The processes S301 and S302 are described in the text; the determination unit 702 is used to support the execution of the controller 700. Figure 3 Processes S303 and S306 are included; the sending unit 704 is used to support the execution of the controller 700. Figure 3 The process S308 is described above. The processing unit 703 is used to support the execution of the controller 700. Figure 3 The process S307 and / or other processes executed by the controller in the technology described herein. For example, the acquisition unit 701 is used to perform various information acquisitions performed by the nodes in the above method embodiments; the determination unit 502 is used to perform determination actions performed by the controller in the above method embodiments; the sending unit 704 is used to perform various information sending actions performed by the controller in the above method embodiments; and the processing unit 703 is used to perform other processing by the controller in the above method embodiments besides information sending and receiving and determination actions. For example, the acquisition unit 701 is used to acquire the forwarding latency requirement of the service flow and the destination address of the service flow; the determination unit 702 is used to determine the forwarding path for forwarding the service flow according to the forwarding latency requirement and the destination address, wherein the latency of the forwarding path meets the forwarding latency requirement of the service flow, the forwarding path passes through a first network node and a second network node, the first network node is the entry node of the forwarding path, and the second network node is the intermediate node of the forwarding path; the first cycle time number of the first network node forwarding the packet and the second cycle time number of the second network node forwarding the packet are determined, and a first adjacent segment identifier corresponding to the first cycle time number and a second adjacent segment identifier corresponding to the second cycle time number are determined, wherein the packet is a packet in the service flow; the processing unit 703 is used to generate a tag stack for forwarding the packet, the tag stack containing the first adjacent segment identifier and the second adjacent segment identifier; the sending unit 704 is used to send the tag stack to the first network node, the tag stack being used to guide the first network node to forward the packet along the forwarding path within the time corresponding to the first cycle time number. Please refer to the above for the specific execution process. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0074] Figure 8 A possible structural diagram of the controller involved in the above embodiments is shown. The controller 800 includes: a processor 802, a transceiver 803, a memory 801, and a bus 804. The processor 802, transceiver 803, and memory 801 are interconnected via the bus 804. The bus 804 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 8 The symbol is represented by a single thick line, but this does not indicate that there is only one bus or one type of bus. The controller 800 can implement... Figure 3 or Figure 5 The controller in the illustrated embodiment has the following functions. Processor 802 and transceiver 803 can perform the corresponding functions of the controller in the above method example. Transceiver 803 is used to support the controller 800 in performing... Figure 3 The processes S301 and S302 are described in the text. Processor 802 is used to support the execution of controller 800. Figure 3 The process S307 and / or other processes executed by the controller in the technology described herein. Memory 801 is used to store the program code and data of the controller 800. For specific execution procedures, please refer to the above. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0075] Figure 9 This diagram illustrates a possible structure of the first network node involved in the above embodiments, which can achieve... Figure 3 The entry node or in the example shown Figure 5 The function of the first network node in the illustrated embodiment. See also Figure 9 The first network node 900 includes an acquisition unit 901, a processing unit 902, and a sending unit 903. These units can perform the corresponding functions of the first network node in the above method example. The acquisition unit 901 is used to support the first network node 900 in performing... Figure 5 In process S501; the sending unit 903 is used to support the execution of the first network node 900. Figure 5 Processes S502 and S506 are described in the text; processing unit 903 is used to support the execution of the first network node 900. Figure 5The processes S504 and S505, and / or other processes performed by the first network node in the technology described herein. For example, the acquisition unit 901 is used to acquire various information performed by the first network node in the above method embodiments; the sending unit 903 is used to send various information performed by the first network node in the above method embodiments; and the processing unit 902 is used to perform other processing by the first network node in the above method embodiments besides information acquisition, sending and receiving, and determination actions. For example, the acquisition unit 901 is used to acquire a message and obtain a first tag stack based on the message. The first tag stack is a tag stack corresponding to the forwarding path of the message. The first tag stack includes the adjacency segment identifier of the first network node and the adjacency segment identifier of the second network node. The first network node is the entry node of the forwarding path, and the second network node is the intermediate node of the forwarding path. The processing unit 902 is used to push the first tag stack onto the message. The top tag of the first tag stack is the adjacency segment identifier of the first network node. The processing unit 902 is used to determine the cycle time number for forwarding the message based on the adjacency segment identifier of the first network node. The processing unit 903 is used to pop the adjacency segment identifier of the first network node from the first tag stack to obtain a second tag stack. The sending unit 903 is used to send the message containing the second tag stack to the second network node within the time corresponding to the cycle time number. Please refer to the above for the specific execution process. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0076] It should be noted that the division of units in the embodiments of the present invention is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. The functional units in the embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. For example, in the above embodiments, the receiving unit and the transmitting unit can be the same unit or different units. The integrated unit described above can be implemented in hardware or as a software functional unit.
[0077] See Figure 10 As shown, the first network node 1000 includes: a processor 1002, a transceiver 1003, a memory 1001, and a bus 1004. The transceiver 1003, processor 1002, and memory 1001 are interconnected via the bus 1004; the bus 1004 can be a PCI bus or an EISA bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 10The symbol is represented by only one thick line, but this does not indicate that there is only one bus or one type of bus. The first network node 1000 can achieve... Figure 3 or Figure 5 The illustrated embodiment demonstrates the function of the first network node or entry node. Processor 1102 and transceiver 1103 can execute the corresponding functions of the first network node or entry node in the above method example. For a detailed execution process, please refer to the above description. Figure 3 or Figure 4 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0078] Figure 11 This diagram illustrates a possible structure of the second network node involved in the above embodiments, which can achieve... Figure 3 The entry node or in the example shown Figure 5 The function of the second network node in the illustrated embodiment. See also Figure 11 The second network node 1100 includes: a receiving unit 1101, an acquiring unit 1102, a processing unit 1103, and a sending unit 1104. These units can perform the corresponding functions of the second network node or intermediate node in the above method example. The receiving unit 1101 is used to support the second network node 1100 in performing... Figure 5 In process S506; the acquisition unit 1102 is used to support the execution of the second network node 1100. Figure 5 In process S507; the sending unit 1104 is used to support the execution of the second network node 1100. Figure 5 In process S508; the processing unit 1103 is used to support the execution of the second network node 1100. Figure 5The process S508 in the above method embodiment, and / or other processes performed by the second network node in the technology described herein. For example, the receiving unit 1101 is used to receive various information performed by the second network node in the above method embodiment; the acquiring unit 1102 is used to acquire various information performed by the second network node in the above method embodiment; the sending unit 1104 is used to send various information performed by the second network node in the above method embodiment; and the processing unit 1103 is used to perform other processing by the second network node in the above method embodiment besides information acquisition, sending and receiving, and determination actions. For example, receiving unit 1101 is used to receive a first message sent by a first network node, the message containing a tag stack; obtaining unit 1102 is used to obtain the top tag of the tag stack; processing unit 1103 is used to determine that the top tag of the tag stack is the adjacency segment identifier of the second network device, and determine the cycle time corresponding to the adjacency segment identifier according to the stored correspondence between adjacency segment identifiers and cycle times; pop the adjacency segment identifier of the second network node from the tag stack in the first message to generate a second message; sending unit 1104 is used to send the second message to the next-hop network node of the first network node within the cycle time corresponding to the adjacency segment identifier. Please refer to the above for the specific execution process. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0079] It should be noted that the division of units in the embodiments of the present invention is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. The functional units in the embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. For example, in the above embodiments, the receiving unit and the transmitting unit can be the same unit or different units. The integrated unit described above can be implemented in hardware or as a software functional unit.
[0080] See Figure 12 As shown, the second network node 1200 includes: a processor 1202, a transceiver 1203, a memory 1201, and a bus 1204. The transceiver 1203, processor 1202, and memory 1201 are interconnected via the bus 1204; the bus 1204 can be a PCI bus or an EISA bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, Figure 12 The symbol is represented by only one thick line, but this does not indicate that there is only one bus or one type of bus. This second network node 1200 can achieve... Figure 3 or Figure 5The embodiments shown illustrate the functions of the second network node or intermediate node. Processor 1202 and transceiver 1203 can execute the corresponding functions of the second network node or intermediate node in the above method examples. For specific execution procedures, please refer to the above description. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments will not be repeated here.
[0081] See Figure 13 As shown, an embodiment of the invention provides a message transmission system 1300, which is used to implement the message transmission method in the aforementioned method embodiment. The system 1300 includes a controller 1201, a first network node 1202, and a second network node 1203. The controller 1201, the first network node 1202, and the second network node 1203 can respectively implement… Figure 3 or Figure 5 The embodiments shown illustrate the functions of the controller, the first network node, and the second network node. For a detailed execution process, please refer to the above. Figure 3 or Figure 5 The detailed descriptions of the corresponding steps in the illustrated embodiments are not repeated here. This invention also provides a storage medium for storing software instructions used in the foregoing embodiments, including a program for executing the methods shown in the foregoing embodiments, which, when executed on a computer or device, causes the computer or device to execute the methods in the foregoing method embodiments.
[0082] In this embodiment of the invention, the term "first" in the first network node is used only for name identification and does not represent the first in order. The same rule applies to "second" and "third".
[0083] It should be noted that any of the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Furthermore, in the accompanying drawings of the first network node or controller embodiment provided by this invention, the connection relationship between modules indicates that they have a communication connection, which can be specifically implemented as one or more communication buses or signal lines. Those skilled in the art can understand and implement this without any creative effort.
[0084] The steps of the methods or algorithms described in the embodiments of this invention can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), hard disk, portable hard disk, optical disk, or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and storage medium can reside in an ASIC. Alternatively, the ASIC can reside in a core network interface device. Of course, the processor and storage medium can also exist as discrete components in the core network interface device.
[0085] Those skilled in the art will recognize that, in one or more of the examples above, the functions described in this invention can be implemented using hardware, software, firmware, or any combination thereof. When implemented in software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transfer of a computer program from one place to another. Storage media can be any available medium accessible to a general-purpose or special-purpose computer.
[0086] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for sending a message, characterized in that, include: The controller determines the forwarding path of the forwarding service flow. The forwarding path passes through a first network node and a second network node. The first network node is the entry node of the forwarding path, and the second network node is the intermediate node of the forwarding path. The controller generates a list of segment identifiers (SIDs) corresponding to the forwarding path. The SID list includes a first SID and a second SID. The first SID corresponds to the period number of the packet sent by the first network node, and the second SID corresponds to the period number of the packet sent by the second network node. The packet is a packet in the service flow. The controller sends the SID list to the first network node, and the SID list is used to guide the first network node to forward the packet.
2. The method according to claim 1, characterized in that, The period number of the first network node sending the message corresponds to the time when the first network node sends the message, and the period number of the second network node sending the message corresponds to the time when the second network node sends the message.
3. The method according to claim 1 or 2, characterized in that, The method further includes: The controller obtains the node latency of the first network node and the second network node, and the node latency includes message processing latency and message sending latency; The controller obtains the link latency of the links on the forwarding path; The forwarding delay of the forwarding path meets the forwarding delay requirement of the message.
4. The method according to claim 3, characterized in that, The forwarding latency of the forwarding path satisfies the forwarding latency requirements of the service flow, including: The sum of the node delay of the first network node, the node delay of the second network node, and the link delay of the link on the forwarding path is within the range of the packet forwarding delay requirement.
5. The method according to any one of claims 1-4, characterized in that, The first SID and the second SID are Multiprotocol Label Switching (MPLS) labels, respectively.
6. A method for sending a message, characterized in that, include: The first network node obtains a list of segment identifiers (SIDs), the SID list corresponding to the forwarding path of the forwarded packet, the SID list containing the SIDs of the second network node, the first network node being the entry node of the forwarding path, and the second network node being an intermediate node of the forwarding path. The first network node pushes the SID list into the message; The first network node sends a message to the second network node that pushes the SID list, and the SID of the second network node corresponds to the period number of the message sent by the second network node.
7. The method according to claim 5, characterized in that, The SID of the second network node is a Multiprotocol Label Switching (MPLS) label.
8. A method for sending a message, characterized in that, include: The second network node receives a message sent by the first network node, the message containing a list of segment identifiers (SIDs); The second network node determines that the SID list contains the SID of the second network node, and the SID of the second network node corresponds to the period number in which the second network node sends the message; The second network node sends the message within the time period corresponding to the period number.
9. The method according to claim 8, characterized in that, The SID of the second network node corresponds to the outgoing interface of the second network node.
10. The method according to claim 9, characterized in that, The second network node sends the message within the time period corresponding to the period number, including: The second network node adds the message to the message queue corresponding to the period number and sends the message through the outgoing interface corresponding to the SID of the second network node.
11. The method according to any one of claims 8-10, characterized in that, The SID of the second network node is the Adjacency Segment identifier.
12. A controller, characterized in that, include: The determining unit is used to determine the forwarding path of the forwarding service flow, wherein the forwarding path passes through a first network node and a second network node, the first network node being the entry node of the forwarding path and the second network node being an intermediate node of the forwarding path. The processing unit is configured to generate a Segment Identifier (SID) list corresponding to the forwarding path. The SID list includes the first SID and the second SID. The first SID corresponds to the period number of the packet sent by the first network node, and the second SID corresponds to the period number of the packet sent by the second network node. The packet is a packet in the service flow. The sending unit is configured to send the SID list to the first network node, the SID list being used to instruct the first network node to forward the packet.
13. The controller according to claim 12, characterized in that, The period number of the first network node sending the message corresponds to the time when the first network node sends the message, and the period number of the second network node sending the message corresponds to the time when the second network node sends the message.
14. The controller according to claim 12 or 13, characterized in that, The controller also includes an acquisition unit. The acquisition unit is further configured to obtain the node latency of the first network node and the second network node, the node latency including message processing latency and message sending latency, and to obtain the link latency of the link on the forwarding path; correspondingly, the latency of the forwarding path meets the forwarding latency requirement of the message.
15. The controller according to claim 14, characterized in that, The forwarding latency of the forwarding path satisfies the forwarding latency requirement of the service flow by including the sum of the node latency of the first network node, the node latency of the second network node, and the link latency of the link on the forwarding path, which is within the range of the packet forwarding latency requirement.
16. The controller according to any one of claims 12 to 15, characterized in that, The first SID and the second SID are Multiprotocol Label Switching (MPLS) labels, respectively.
17. A first network node, characterized in that, include: The acquisition unit is used to obtain a list of segment identifiers (SIDs), the SID list corresponding to the forwarding path of the forwarded packet, the SID list containing the SIDs of the second network node, the first network node being the entry node of the forwarding path, and the second network node being an intermediate node of the forwarding path. Processing unit, used to push the SID list into the message; The sending unit is used to send a message containing the SID list to the second network node, wherein the SID of the second network node corresponds to the period number of the message sent by the second network node.
18. The first network node according to claim 17, characterized in that, The SID of the second network node is a Multiprotocol Label Switching (MPLS) label.
19. A second network node, characterized in that, include: The receiving unit is configured to receive a first message sent by a first network node, the message containing a list of segment identifiers (SIDs). The processing unit is configured to determine that the SID list contains the SID of the second network node, wherein the SID of the second network node is used to indicate the period number in which the second network node sends the message; A sending unit is used to send the message within the time corresponding to the period number.
20. The second network node according to claim 19, characterized in that, The SID of the second network node corresponds to the outgoing interface of the second network node.
21. The second network node according to claim 20, characterized in that, The second network node sends the message within the time period corresponding to the period number, including: The second network node adds the message to the message queue corresponding to the period number and sends the message through the outgoing interface corresponding to the SID of the second network node.
22. The second network node according to any one of claims 19-21, characterized in that, The SID of the second network node is the Adjacency Segment identifier.
23. A computer-readable medium comprising instructions that, when executed on a computer, cause the computer to perform the method as claimed in any one of claims 1 to 11.
Citation Information
Patent Citations
Method, device and system for testing packet loss
CN104917641A
Method for computing forwarding path and network equipment
CN107547393A