Disclosure of Invention
The embodiment of the application aims to provide a message transmission method and device, so as to improve the message transmission bandwidth and improve the message transmission efficiency and reliability. The specific technical scheme is as follows:
In a first aspect of the embodiment of the present application, a method for transmitting a packet is provided, which is applied to a network device, where the network device includes a plurality of output ports, the plurality of output ports correspond to a plurality of aggregate scheduling queues, and each output port corresponds to a plurality of local scheduling queues, and the method includes:
Receiving a message, wherein the message corresponds to the plurality of output ports;
Determining a target output port from the plurality of output ports, and determining a target aggregate schedule queue from the plurality of aggregate schedule queues;
Determining a target local scheduling queue corresponding to the target aggregate scheduling queue from a plurality of local scheduling queues corresponding to the target output port;
caching the message to the target local scheduling queue;
And when the scheduling period of the target local scheduling queue is reached, forwarding the cached message in the target local scheduling queue through the target output port.
In some embodiments, in the network device, the identification of the local scheduling queues with the same scheduling period is the same as the identification of the aggregate scheduling queue;
the step of determining the target local dispatching queue corresponding to the target aggregate dispatching queue from the plurality of local dispatching queues corresponding to the target output port comprises the following steps:
And determining the identified target local dispatching queue identified as the target aggregation dispatching queue from a plurality of local dispatching queues corresponding to the target outlet port.
In some embodiments, the network device further comprises a local clock source for each output port, the local clock sources being aligned with the high precision time synchronization protocol clock source.
In some embodiments, a mapping relationship between the aggregate schedule queue and a local schedule queue corresponding to each output port is stored in the network device;
the step of determining the target local dispatching queue corresponding to the target aggregate dispatching queue from the plurality of local dispatching queues corresponding to the target output port comprises the following steps:
And determining a target local scheduling queue corresponding to the target aggregate scheduling queue from a plurality of local scheduling queues corresponding to the target output port according to the mapping relation between the aggregate scheduling queue and the local scheduling queue corresponding to the target output port.
In some embodiments, the mapping relationship is represented by an offset of an identifier of a local scheduling queue corresponding to an output port relative to an identifier of the aggregate scheduling queue;
the step of determining a target local scheduling queue corresponding to the target aggregate scheduling queue according to a mapping relationship between the aggregate scheduling queue and the local scheduling queue corresponding to the target output port from the plurality of local scheduling queues corresponding to the target output port includes:
Increasing the identification of the target aggregate dispatch queue by the offset corresponding to the target output port to obtain the target identification of the target specimen dispatch queue;
and determining a target local scheduling queue corresponding to the target identifier from a plurality of local scheduling queues corresponding to the target output port.
In some embodiments, in the network device, the time width of the scheduling period corresponding to the aggregate scheduling queue and each local scheduling queue is the same.
In some embodiments, the method further comprises:
When the network equipment is started, one of the plurality of output ports is selected to be used as a reference output port;
Taking a plurality of local scheduling queues corresponding to the reference output ports as an aggregate scheduling queue;
and determining the mapping relation between the aggregate dispatching queues and the local dispatching queues corresponding to each outlet port according to the mapping relation between the local dispatching queues corresponding to each outlet port and the dispatching period.
In some embodiments, the method further comprises:
When a new output port is started in the network equipment, determining the mapping relation between the aggregation scheduling queues and the local scheduling queues corresponding to the new output port according to the mapping relation between the local scheduling queues corresponding to the new output port and the scheduling period and the mapping relation between the aggregation scheduling queues and the scheduling period.
In some embodiments, the scheduling period difference value of the aggregate scheduling queue corresponding to the same deterministic flow in the network device and the upstream device is a sum value of the number of scheduling periods corresponding to the delay between the network device and the upstream device and a preset number of scheduling periods.
In a second aspect of the embodiment of the present application, a packet transmission apparatus is provided, which is applied to a network device, where the network device includes a plurality of output ports, the plurality of output ports correspond to a plurality of aggregate dispatch queues, and each output port corresponds to a plurality of local dispatch queues, and the apparatus includes:
The receiving module is used for receiving messages, and the messages correspond to the plurality of output ports;
the first determining module is used for determining a target outlet port from the plurality of outlet ports and determining a target aggregate scheduling queue from the plurality of aggregate scheduling queues;
the second determining module is used for determining a target local scheduling queue corresponding to the target aggregate scheduling queue from a plurality of local scheduling queues corresponding to the target output port;
The buffer module is used for buffering the message to the target local scheduling queue;
and the forwarding module is used for forwarding the message cached in the target local scheduling queue through the target output port when the scheduling period of the target local scheduling queue is reached.
In some embodiments, in the network device, the identification of the local scheduling queues with the same scheduling period is the same as the identification of the aggregate scheduling queue;
the second determining module is specifically configured to determine, from a plurality of local scheduling queues corresponding to the target output ports, a target local scheduling queue identified as an identifier of the target aggregate scheduling queue.
In some embodiments, the network device further comprises a local clock source for each output port, the local clock sources being aligned with the high precision time synchronization protocol clock source.
In some embodiments, a mapping relationship between the aggregate schedule queue and a local schedule queue corresponding to each output port is stored in the network device;
the second determining module is specifically configured to determine, from a plurality of local scheduling queues corresponding to the target output port, a target local scheduling queue corresponding to the target aggregate scheduling queue according to a mapping relationship between the aggregate scheduling queue and the local scheduling queue corresponding to the target output port.
In some embodiments, the mapping relationship is represented by an offset of an identifier of a local scheduling queue corresponding to an output port relative to an identifier of the aggregate scheduling queue;
The second determining module is specifically configured to increase the identifier of the target aggregate scheduling queue by an offset corresponding to the target output port to obtain a target identifier of a target local scheduling queue, and determine a target local scheduling queue corresponding to the target identifier from a plurality of local scheduling queues corresponding to the target output port.
In some embodiments, in the network device, the time width of the scheduling period corresponding to the aggregate scheduling queue and each local scheduling queue is the same.
In some embodiments, the apparatus further comprises:
The network equipment comprises a selection module, a reference output port, a local scheduling queue, a transmission module and a scheduling module, wherein the selection module is used for selecting one output port from the plurality of output ports as a reference output port after the network equipment is started;
and the third determining module is used for determining the mapping relation between the aggregation scheduling queue and the local scheduling queue corresponding to each output port according to the mapping relation between the local scheduling queues corresponding to each output port and the scheduling period.
In some embodiments, the third determination module is further to:
And after a new output port is started in the network equipment, determining the mapping relation between the aggregation scheduling queues and the local scheduling queues corresponding to the new output port according to the mapping relation between the local scheduling queues corresponding to the new output port and the scheduling period and the mapping relation between the aggregation scheduling queues and the scheduling period.
In some embodiments, the scheduling period difference value of the aggregate scheduling queue corresponding to the same deterministic flow in the network device and the upstream device is a sum value of the number of scheduling periods corresponding to the delay between the network device and the upstream device and a preset number of scheduling periods.
In a third aspect of the embodiments of the present application, there is provided a network device, including a processor and a memory, where the memory is configured to store a computer program, and the processor is configured to implement the method steps described in the first aspect when executing the program stored in the memory.
In a fourth aspect of the embodiments of the present application, there is provided a computer readable storage medium having stored therein a computer program which, when executed by a processor, implements the method steps of the first aspect described above.
The embodiment of the application has the beneficial effects that:
In the technical scheme provided by the embodiment of the application, the network equipment aggregates a plurality of output ports together and corresponds to a plurality of uniform aggregate scheduling queues, and for a deterministic stream, the deterministic stream can be sent out from any one of the output ports and is the same in the dimension of time, namely the time of the aggregate scheduling queues, so that the deterministic transmission of the message is realized. Compared with the message forwarding through a single outlet port, the message forwarding method and device based on the multiple outlet ports have the advantages that in the embodiment of the application, the message transmission bandwidth is increased and the message transmission efficiency is improved by forwarding the message through the multiple outlet ports which are aggregated together, and the multiple outlet ports which are aggregated together can be mutually and dynamically backed up, so that even if one outlet port fails, the message can be switched to the other outlet port for forwarding the message, the reliability of message transmission is improved, the intercommunication among nodes is ensured, and the continuity of upper-layer business is ensured.
Of course, it is not necessary for any one product or method of practicing the application to achieve all of the advantages set forth above at the same time.
Detailed Description
The following description of the embodiments of the present application will be made clearly and completely with reference to the accompanying drawings, in which it is apparent that the embodiments described are only some embodiments of the present application, but not all embodiments. Based on the embodiments of the present application, all other embodiments obtained by the person skilled in the art based on the present application are included in the scope of protection of the present application.
The words appearing in the embodiments of the application are explained below.
The TSN is a group of Ethernet standards, and through core technologies such as accurate time synchronization, timing scheduling and the like, low-delay streaming service of time synchronization is realized, and low-delay isochronous standard data are provided for all devices in a system, so that a foundation is provided for fusion of control, measurement, configuration, UI (User Interface), file exchange infrastructure and the like.
Time slot is divided into time slots in an equal division mode, and is the minimum scheduling unit in TSN.
CSQF is a periodical queuing forwarding mechanism based on segment routing.
Aggregation, namely binding a plurality of physical links together to form a logic link, so as to achieve the purpose of increasing the bandwidth of the link, and simultaneously, the links bound together can effectively improve the reliability of the link through mutual dynamic backup.
Through decades of vigorous development, the Internet (Internet) realizes seamless connection among people, objects and the like, and has great influence on life and work of people. However, deterministic transmission is required in the scenarios of "smart grid", "telemedicine", "video entertainment", and "industrial remote control", that is, a sufficiently low latency, and a sufficiently small jitter are required to ensure the reliability of data connection. End-to-end deterministic transmission is also required in complex scenarios such as multi-service, large traffic and wide area.
The deterministic network is a network capable of guaranteeing deterministic bandwidth, time delay, jitter and packet loss rate indexes of service, and the deterministic network technology is a novel QoS (Quality of Service ) guaranteeing technology and can be used in emerging scenes with high real-time performance such as automatic driving, remote operation, holographic communication and the like.
There are two existing deterministic network implementations, namely deterministic networks built based on TSNs and CSQF, respectively.
The two modes are based on clock synchronization for networking. The clocks are synchronous, namely the clocks of the whole network are synchronous, the clocks of the terminal equipment and the network equipment are the same, and the network card marks a hard time stamp on the transmitted message. Currently, there are two main ways of clock synchronization. One is a master-slave mode, i.e., one of the most accurate clocks is selected as the master clock, the other clocks are selected as the slave clocks, and the time of the slave clocks is adjusted based on the time of the master clock. One is a voting mode, for example, 9 devices are in a network domain, 5 devices are 1:00 in time, 4 devices are 1:01 in time, and all devices are adjusted to 1:00 according to the result of voting, minority compliance and majority compliance.
The deterministic network built based on TSN is suitable for deterministic transmission in a small range. This deterministic transmission is achieved by slot planning. A slot generally refers to a transmission resource of the time dimension of the network device outlet port. For example, the output port bandwidth is 1Gbps, that is, 1s can transmit 1G bits, and it is assumed that a packet has 1500 bytes, that is 12000 bits, and its transmission occupies a time slot resource of 12000/1 g=12 μs of the output port. Which segment is occupied is determined by its transmission start time. Since most of industrial traffic is a message which is periodically transmitted and smaller than the MTU (Maximum Transmission Unit, the maximum transmission unit), the message starting time of the terminal can be controlled, and each message is only triggered to be transmitted at a time calculated in advance through global time slot planning (time division multiplexing), so that the time slots occupied by the messages when the messages are transmitted at the output ports of each hop of network equipment are not in conflict, thereby avoiding the occurrence of multicast and burst, and realizing the accurate and timely transmission.
The deterministic network built based on CSQF is suitable for deterministic transmission over a wide range. This deterministic transfer is achieved through CSQF. CSQF introduces a periodic forwarding idea based on a traditional IP (Internet Protocol, network protocol) network, and divides a time division manner into a plurality of time slices T on a forwarding node, and a message of a certain deterministic flow can only be sent in a time slice designated for the forwarding node, so that the sending delay jitter in the forwarding node is limited to be within 1 time slice. As shown in fig. 1, the deterministic flow is periodically forwarded in the forwarding node, and in fig. 1, the deterministic flow packet is sent in a set T2 time slice. The earliest time of sending each message in the deterministic stream packet is T2, and the latest time is T2, so the delay jitter in the forwarding node is one time slice width at maximum. The CSQF technique can theoretically guarantee a maximum of two time slice widths for the end-to-end delay jitter. In fig. 1, only 4 forwarding nodes 1-4 are included between the transmitting end and the receiving end, which is taken as an example and not limiting. The method comprises the steps of dispatching a transmitting end, a receiving end and forwarding nodes 1-4 by a controller, calculating SIDs (SEGMENT IDENTIFIERS ) of the forwarding nodes 1-4 based on an acquisition request of the transmitting end, distributing the calculated SIDs of the forwarding nodes 1-4 to the forwarding nodes 1-4, and analyzing SIDs of stack tops in a message by the forwarding nodes 1-4 to obtain an output port and a specific forwarding time period, namely a dispatching period, of forwarding of the message of the current forwarding node, so that deterministic transmission is realized.
Currently, whether based on a TSN deterministic network or CSQF deterministic network, single links are commonly used for networking. In the deterministic network, firstly, the bandwidth of a single link is limited, which makes the message transmission efficiency lower, and secondly, once the link fails, the upper layer service is not enabled, and the reliability of the message transmission is lower.
In order to improve the transmission bandwidth of a message and improve the transmission efficiency and reliability of the message, the embodiment of the application provides a message transmission method, which is applied to any network device in a deterministic network, wherein the network device can be a router, a switch and the like. In the method, the network equipment aggregates a plurality of output ports together, corresponds to a plurality of uniform aggregate scheduling queues, can send out any one of the plurality of output ports for a deterministic stream, and is the same in the dimension of time, namely the time of the aggregate scheduling queues, so that the deterministic transmission of the message is realized. Compared with the message forwarding through a single outlet port, the message forwarding method and device based on the multiple outlet ports have the advantages that in the embodiment of the application, the message transmission bandwidth is increased and the message transmission efficiency is improved by forwarding the message through the multiple outlet ports which are aggregated together, and the multiple outlet ports which are aggregated together can be mutually and dynamically backed up, so that even if one outlet port fails, the message can be switched to the other outlet port for forwarding the message, the reliability of message transmission is improved, the intercommunication among nodes is ensured, and the continuity of upper-layer business is ensured.
The following describes the message transmission method provided by the embodiment of the present application in detail through a specific embodiment.
As shown in fig. 2, an embodiment of the present application provides a method for transmitting a message, where the method is applied to a network device, and the network device includes a plurality of output ports, where the plurality of output ports corresponds to a plurality of aggregate dispatch queues, and each output port corresponds to a plurality of local dispatch queues. As shown in the network structure of FIG. 3, the network device RA comprises a plurality of output ports, namely GE1/0/1, GE1/0/2 and GE1/0/3, and 3 links connected between RA and RB through GE1/0/1, GE1/0/2 and GE1/0/3 are combined into one path. At this time, GE1/0/1, GE1/0/2, GE1/0/3 correspond to the same plurality of aggregate schedule queues, GE1/0/1 corresponds to the plurality of local schedule queues, GE1/0/2 corresponds to the plurality of local schedule queues, GE1/0/3 corresponds to the plurality of local schedule queues.
In the embodiment of the application, the message transmission method comprises the following steps:
step S21, receiving a message, wherein the message corresponds to a plurality of output ports.
In the embodiment of the application, the message received by the network equipment is any message in the deterministic stream. The network device receives the deterministic flow message, that is, the message corresponds to the plurality of output ports. The plurality of output ports are aggregation ports. As shown in FIG. 3, the network device RA receives messages of deterministic flows with GE1/0/1, GE1/0/2, GE1/0/3 egress ports.
Step S22, determining a target outlet port from a plurality of outlet ports and determining a target aggregate dispatch queue from a plurality of aggregate dispatch queues.
In the embodiment of the application, the network equipment can determine the target outlet port from a plurality of outlet ports according to the specified rule. The specified rule can be set according to actual requirements. For example, the specified rule may be that Hash (Hash) calculation is performed on the five-tuple of the message, and an output port corresponding to the calculated Hash value is obtained and used as a target output port. For another example, the specified rule may be to randomly select one output port from among a plurality of output ports as the target output port. The network device may determine a target aggregate dispatch queue from a plurality of aggregate dispatch queues based on the five-tuple or destination SID of the message. For example, the correspondence between the SID and the aggregate dispatch queue is pre-stored in the network device, and the network device obtains the aggregate dispatch queue corresponding to the destination SID of the message as the target aggregate dispatch queue according to the pre-stored correspondence between the SID and the aggregate dispatch queue.
Here, one output port is determined from the aggregated multiple output ports as a target output port, so that aggregated load sharing is realized. In addition, for a deterministic flow, the control plane cannot confirm its actual forwarding output port in advance, but the determined target aggregate scheduling queues are the same no matter from which physical output port is forwarded, and the scheduling period (i.e., the forwarding time slot) of each scheduling queue is fixed, so, from the dimension of time, the forwarding time slot is the same when a message is forwarded through any output port of the aggregated multiple output ports. The network structure shown in fig. 4 includes network devices RA, RB, RD and RF, where a connection line between two adjacent devices RA, RB, RD and RF represents a link, corresponding to an output port, and a circled link represents an aggregate link, corresponding to multiple aggregated output ports. As can be seen from fig. 4, for a deterministic flow, the target aggregate schedule queues determined by RA and RD are LAGCYCLEA, RB, the target aggregate schedule queues determined by langcycleb and LAGCYCLEC, RF, respectively, and LAGCYCLED, respectively. This may ensure deterministic transmission of deterministic flows.
Step S23, determining a target local dispatching queue corresponding to the target aggregation dispatching queue from a plurality of local dispatching queues corresponding to the target output port.
In the embodiment of the application, one output port is positioned on one single board, and a plurality of scheduling queues are arranged on one single board, namely a plurality of local scheduling queues corresponding to the output port on the single board. The network equipment presets the corresponding relation between the aggregation scheduling queue and the local scheduling queue. After determining the target aggregate dispatch queue, the network device determines the local dispatch queue corresponding to the target aggregate dispatch queue from a plurality of local dispatch queues corresponding to the target output port according to the preset corresponding relation between the aggregate dispatch queue and the local dispatch queue, and uses the local dispatch queue corresponding to the target aggregate dispatch queue as the target local dispatch queue.
Step S24, the message is cached to a target specimen dispatching queue.
And after determining the target specimen dispatching queue, the network equipment caches the message to the target specimen dispatching queue.
And S25, when the scheduling period of the target specimen scheduling queue is reached, forwarding the cached message in the target specimen scheduling queue through the target output port.
Each scheduling queue has its own scheduling period, i.e. the forwarding time slot. The network device can detect the forwarding time slot in real time, and when detecting the scheduling period reaching the target specimen scheduling queue, forwards all the messages cached in the target specimen scheduling queue through the target output port.
In some embodiments, the scheduling period difference value of the aggregate scheduling queue corresponding to the same deterministic flow in the network device and the upstream device is a sum of the number of scheduling periods corresponding to the delay between the network device and the upstream device and a preset number of scheduling periods. In the embodiment of the application, the network equipment can absorb the network jitter among the equipment and eliminate the network jitter caused by the scheduling period deviation of the scheduling queue by setting the redundancy period, namely the preset number of scheduling periods.
In the technical scheme provided by the embodiment of the application, the network equipment aggregates a plurality of output ports together and corresponds to a plurality of uniform aggregate scheduling queues, and for a deterministic stream, the deterministic stream can be sent out from any one of the output ports and is the same in the dimension of time, namely the time of the aggregate scheduling queues, so that the deterministic transmission of the message is realized. Compared with the message forwarding through a single outlet port, the message forwarding method and device based on the multiple outlet ports have the advantages that in the embodiment of the application, the message transmission bandwidth is increased and the message transmission efficiency is improved by forwarding the message through the multiple outlet ports which are aggregated together, and the multiple outlet ports which are aggregated together can be mutually and dynamically backed up, so that even if one outlet port fails, the message can be switched to the other outlet port for forwarding the message, the reliability of message transmission is improved, the intercommunication among nodes is ensured, and the continuity of upper-layer business is ensured.
In addition, in the technical scheme provided by the embodiment of the application, each network device adopts the unified aggregate scheduling queue, so that the mapping of the scheduling queue between the upstream device and the downstream device is facilitated, the scheduling queue which is originally related to the link and the interface is converted into the scheduling queue which is only related to the network device, and the mapping relation of the scheduling queue is simplified.
In some embodiments, in the network device, the identification of the local scheduling queue and the identification of the aggregate scheduling queue with the same scheduling period are the same. For example, the scheduling period of the local scheduling queue a is T1, the scheduling period of the aggregate scheduling queue b is T1, and the scheduling periods of the local scheduling queue a and the aggregate scheduling queue b are the same, so that the identification of the local scheduling queue a and the identification of the aggregate scheduling queue b are the same. Based on this, the identities (cycle ids) of the local scheduling queues of all the egress ports at the same time are completely identical. As shown in the local scheduling queue schematic diagram of each output Port in the network device shown in fig. 5, the network device shown in fig. 5 includes 4 single boards, which are the single boards where the output ports Port1-Port4 are located, 4 local scheduling queues cycle1-cycle4 are set on each single board, the aggregate scheduling queues are Lagcycle-Lagcycle 4, the aggregate scheduling queues Lagcycle-Lagcycle 4 are sequentially arranged from left to right, the scheduling period sequentially increases, the local scheduling queues cycle1-cycle4 on each single board are sequentially arranged from left to right, and the scheduling period sequentially increases. As can be seen from fig. 5, the identities of the local scheduling queues with the same scheduling period are the same as the identities of the aggregate scheduling queues, and the identities of the local scheduling queues of all the outgoing ports at the same moment are completely consistent. In fig. 5, the numerical values in the aggregate schedule queue and the local schedule queue are identifiers.
In order to ensure that the identifiers of the local scheduling queues of all the output ports at the same moment are completely consistent, in the network equipment, the high-precision synchronization of the time among the single boards can be ensured through a PTP (Precision Time Protocol, high-precision time synchronization protocol) protocol, namely, the cycle ids of all the output ports are directly calculated based on the PTP time. For example, the PTP time takes 10 μs as a unit, and takes the remainder of the deterministic scheduling period number N, and adds 1 to obtain cycle id, and taking the deterministic scheduling period number N as 15 as an example, the cycle id range obtained by PTP protocol calculation is 1-15.
The method of ensuring high-precision synchronization of time among single boards through the PTP protocol can relatively simply realize that the identification of the local scheduling queue with the same scheduling period is the same as the identification of the aggregation scheduling queue, and the single boards are restarted without special response processing. However, the PTP clock source must be kept stable, no jump can occur, otherwise, the mapping relation of the scheduling queue changes. In some embodiments, in order to avoid the change of the mapping relationship of the scheduling queue caused by the jump of the PTP clock source, a local clock source auxiliary mode of the board may be adopted, that is, the network device further includes a local clock source corresponding to each output port, where the local clock source is aligned with the high precision time synchronization protocol clock source.
In the embodiment of the application, a local clock source is reserved on hardware, and when the system is started, the local clock source and the PTP clock source are aligned. And then, the local clock source can not be synchronized with the PTP clock source any more, and the cycle id calculation can be ensured not to generate deviation only by keeping the frequency synchronization. At this time, the cycle id calculation is performed according to the local clock source.
The embodiment of the application also provides a message transmission method based on the same identification of the local scheduling queue and the aggregation scheduling queue with the same scheduling period, as shown in fig. 6, which can comprise the following steps:
step S61, receiving a message, wherein the message corresponds to a plurality of output ports. The same as in step S21 described above.
Step S62, determining a target output port from a plurality of output ports and determining a target aggregate dispatch queue from a plurality of aggregate dispatch queues. The same as in step S22 described above.
Step S63, determining an identified target local dispatching queue identified as the target aggregation dispatching queue from a plurality of local dispatching queues corresponding to the target output ports.
After determining the target aggregate dispatch queue, the network device obtains the identification of the target aggregate dispatch queue, and further determines the local dispatch queue identified as the identification of the target aggregate dispatch queue from a plurality of local dispatch queues corresponding to the target output port as a target local dispatch queue.
For example, as shown in fig. 5, if the network device determines that the target aggregate dispatch queue is Lagcycle, that is, the identifier of the target aggregate dispatch queue is 1, and the target output Port is Port1, the network device obtains the local dispatch queue with the identifier of 1, that is, the target local dispatch queue cycle1, from the cycle1-cycle4 on the board where Port1 is located.
Step S64, the message is cached to a target local dispatching queue. The same as in step S24 described above.
Step S65, when the dispatching period of the target specimen dispatching queue is reached, forwarding the cached message in the target specimen dispatching queue through the target outlet port. The same as in step S25 described above.
In the embodiment of the application, the PTP time among the single boards has errors, and the calculated cycle id may have deviation of 1 scheduling period. In the embodiment of the application, the network jitter caused by PTP error can be eliminated by setting the redundancy period.
In addition, in the embodiment of the application, the identification of the local scheduling queue with the same scheduling period is the same as the identification of the aggregation scheduling queue, so that the aggregation scheduling queue can be omitted.
In the technical scheme provided by the embodiment of the application, the identifiers of the local scheduling queues corresponding to all the output ports in the network equipment are consistent, so that the local scheduling queues of the target specimen can be rapidly determined, and the deterministic transmission efficiency is improved.
In some embodiments, a mapping relationship between the aggregate schedule queue and the local schedule queue corresponding to each egress port is stored in the network device. In some embodiments, to guarantee deterministic transmission, the aggregate schedule queue and each local schedule queue correspond to the same time width of the schedule period. Here, time synchronization of each board is not required, phase synchronization is not required, and frequency synchronization is only required.
Based on the mapping relation between the aggregate scheduling queue and the local scheduling queue corresponding to each output port stored in the network device, as shown in fig. 7, the embodiment of the application further provides a message transmission method, which may include the following steps:
step S71, receiving a message, wherein the message corresponds to a plurality of output ports. The same as in step S21 described above.
Step S72, a target output port is determined from the plurality of output ports, and a target aggregate schedule queue is determined from the plurality of aggregate schedule queues. The same as in step S22 described above.
Step S73, determining a target local scheduling queue corresponding to the target aggregate scheduling queue according to the mapping relation between the aggregate scheduling queue and the local scheduling queue corresponding to the target output port from a plurality of local scheduling queues corresponding to the target output port.
After determining the target aggregate dispatch queue, the network device searches the mapping relation comprising the target aggregate dispatch queue according to the mapping relation between the aggregate dispatch queue and the local dispatch queue corresponding to the target output port, and the local dispatch queue in the searched mapping relation is the target specimen local dispatch queue.
In some embodiments, the mapping relationship is represented by an offset of an identification of the local scheduling queue to which the egress port corresponds relative to an identification of the aggregate scheduling queue. As shown in a local scheduling queue schematic diagram of each output Port in the network device shown in fig. 8, the network device shown in fig. 8 includes 4 single boards, which are the single boards where the output ports Port1-Port4 are located, 4 local scheduling queues cycle1-cycle4 are set on each single board, aggregate scheduling queues are Lagcycle-Lagcycle 4, aggregate scheduling queues Lagcycle-Lagcycle 4 are sequentially arranged from left to right, the scheduling period sequentially increases, the local scheduling queues cycle1-cycle4 on each single board are sequentially arranged from left to right, and the scheduling period sequentially increases. For Port1, the offset of the identification of the local scheduling queue relative to the identification of the aggregate scheduling queue is 1, for Port2, the offset of the identification of the local scheduling queue relative to the identification of the aggregate scheduling queue is 3, for Port3, the offset of the identification of the local scheduling queue relative to the identification of the aggregate scheduling queue is 0, and for Port4, the offset of the identification of the local scheduling queue relative to the identification of the aggregate scheduling queue is 2.
Based on the offset, step S73 may be to increase the identifier of the target aggregate scheduling queue by the offset corresponding to the target output port to obtain the target identifier of the target local scheduling queue, and determine the target local scheduling queue corresponding to the target identifier from the plurality of local scheduling queues corresponding to the target output port.
For example, as shown in fig. 8, if the network device determines that the target aggregate schedule queue is Lagcycle1, that is, the identifier of the target aggregate schedule queue is 1, and the target exit Port is Port2, and for Port2, the offset of the identifier of the local schedule queue relative to the identifier of the aggregate schedule queue is 3, the network device determines that the target identifier is 1+3=4, and obtains the local schedule queue with the identifier of 4, that is, the target local schedule queue cycle4, from cycle1-cycle4 on the board where Port2 is located.
Step S74, the message is cached to a target local dispatching queue. The same as in step S24 described above.
And step S75, when the scheduling period of the target specimen scheduling queue is reached, forwarding the cached message in the target specimen scheduling queue through the target output port. The same as in step S25 described above.
In the embodiment of the application, the starting time of the scheduling period may be different among the single boards, and the calculated cycle id may have a deviation of 1 scheduling period. In the embodiment of the application, the network jitter caused by the initial time error can be eliminated by setting the redundancy period.
In the technical scheme provided by the embodiment of the application, each single board in the network equipment can reserve the local scheduling queue of the single board, and the local scheduling queues on a plurality of single boards are uniformly scheduled based on the aggregate scheduling queue, so that deterministic transmission is realized, the local scheduling queues on each single board do not need to be adjusted in a targeted manner, and the complexity of deterministic transmission is simplified.
In some embodiments, the network device may determine a mapping relationship between the aggregate schedule queue and the local schedule queue by selecting one of the plurality of output ports as a reference output port after the network device is started, using the plurality of local schedule queues corresponding to the reference output port as the aggregate schedule queue, and determining a mapping relationship between the aggregate schedule queue and the local schedule queue corresponding to each output port according to the mapping relationship between the plurality of local schedule queues corresponding to each output port and the schedule period.
For example, as shown in fig. 8, the network device selects Port3 as the reference output Port, that is, cycle1-cycle4 corresponding to Port3 is used as the aggregate schedule queue Lagcycle-Lagcycle 4, where, for Port3, the offset of the identifier of the local schedule queue with respect to the identifier of the aggregate schedule queue is 0. In addition, the mapping relation between the aggregate dispatch queue and the local dispatch queue corresponding to each output port is determined by combining the mapping relation between the local dispatch queues corresponding to other output ports and the dispatch period, and as described above, the offset of the identifier of the local dispatch queue corresponding to other output ports relative to the identifier of the aggregate dispatch queue is determined.
In the embodiment of the application, after the mapping relation is determined, the aggregate scheduling queue can be not switched any more, and even if the single board where the originally selected output port is located is restarted, other output ports can be not needed to be selected again as the reference output port, and the previously determined mapping relation can be used.
When a new output port is started in the network equipment, the mapping relation between the aggregation scheduling queues and the local scheduling queues corresponding to the new output port can be determined according to the mapping relation between the local scheduling queues corresponding to the new output port and the scheduling period and the mapping relation between the aggregation scheduling queues and the scheduling period.
In the embodiment of the application, the new outlet port can be started for a newly inserted single board in the network equipment, and can also be restarted after the original single board is down. The mapping relation between a plurality of local scheduling queues corresponding to the new output ports and the scheduling period is calculated in advance. After the new single board is started, i.e. after the new output port is started, according to the calculated mapping relationship between the local scheduling queue and the scheduling period, the mapping relationship between the aggregate scheduling queue and the local scheduling queue corresponding to the new output port, for example, the mapping relationship between the new aggregate scheduling queue and the local scheduling queue corresponding to the new output port, can be determined.
Because the local dispatching queues of the corresponding ports of the output ends are not uniform, the mapping relation between the local dispatching queues and the dispatching period needs to be measured. The network device can ensure high-precision synchronization of time among the single boards through the PTP protocol, so that the corresponding relation between the local scheduling queues of the corresponding ports of the output ports and the PTP time can be obtained, the local scheduling queues of the corresponding ports of the output ports can be calculated at the same moment, and the cycle mapping of the local scheduling queues of the corresponding ports of the output ports is obtained.
For example, the mapping relationship between the local scheduling queue and the scheduling period is as shown in fig. 9. The forwarding node a includes a main control board, a board 1 and a board 2, where the board 1 and the board 2 are controlled by a CPU of the main control board, and each board includes elements such as a CPU, an NP (Network Processor ), and an FPGA (Field-Programmable gate array). Wherein, the single board 1 and the single board 2 receive a message at the same time, the single board 1 reads the time slot scheduling queue cycle_i corresponding to the FPGA time stamp ts_i, the single board 2 reads the scheduling queue cycle_e corresponding to the FPGA time stamp ts_e, and the single board 2 converts the ts_e into the time stamp ts_i, and at this time, the time stamp ts_i corresponds to the scheduling queue cycle_e'. Considering network jitter introduced by PTP error, cycle_E' is cycle_E-1, cycle_E, or cycle_E+1.
The following describes the message transmission method provided in the embodiment of the present application in detail with reference to the network architecture shown in fig. 10.
The network architecture shown in fig. 10 includes network devices RA, RB, RC, RD, RE and RF, where a line between two adjacent devices in RA, RB, RD, and RF represents a link, corresponding to an egress port, and a circled link represents an aggregate link, corresponding to multiple egress ports of the aggregate. There is an equivalent path between RA and RF, namely path 1 and path 2.
When the RA sends a message (such as a message 1) of a deterministic stream to the RF, the RA copies a part of the message 1 on a path 1 and a path 2 respectively, and then transmits the message 1 to the RF through the path 1 and the path 2 respectively, so that the reliability of the message transmission is improved. The message transmission modes between two adjacent network devices on the path 1 and the path 2 are the same, and the message transmission between the RA and the RB on the path 1 is taken as an example and is not limited.
The RA can select one or more output ports from the output ports 1 and 2 in a Hash mode, for example, the output port 1 is selected, the aggregate scheduling queue 1 corresponding to the message 1 is determined, further, the local scheduling queue 1 corresponding to the aggregate scheduling queue 1 is determined from a plurality of local scheduling queues corresponding to the output port 1, the message 1 is cached to the local scheduling queue 1 corresponding to the output port 1, and when the scheduling period of the local scheduling queue 1 is reached, the message cached in the local scheduling queue 1 is forwarded through the output port 1.
In the embodiment of the application, if the RA selects a plurality of output ports from the output ports 1 and 2, the message can be transmitted through the plurality of output ports at the same time, the dynamic backup of the aggregation link is realized, and the reliability of the message transmission is further improved. In addition, if the RA selects one output port from the output ports 1 and 2, load sharing among a plurality of output ports, namely load sharing of an aggregation link, can be realized, so that reliability of deterministic transmission can be ensured, and effective transmission bandwidth can be improved.
Corresponding to the above message transmission method, the embodiment of the present application also provides a message transmission device, as shown in fig. 11, applied to a network device, where the network device includes a plurality of output ports, the plurality of output ports correspond to a plurality of aggregate dispatch queues, and each output port corresponds to a plurality of local dispatch queues, and the device includes:
A receiving module 111, configured to receive a packet, where the packet corresponds to a plurality of output ports;
A first determining module 112, configured to determine a target egress port from the plurality of egress ports, and determine a target aggregate schedule queue from the plurality of aggregate schedule queues;
a second determining module 113, configured to determine a destination local scheduling queue corresponding to the target aggregate scheduling queue from a plurality of local scheduling queues corresponding to the target output port;
A buffer module 114, configured to buffer the message to a destination sample local scheduling queue;
And the forwarding module 115 is configured to forward the message buffered in the destination local dispatch queue through the destination egress port when the dispatch period of the destination local dispatch queue is reached.
In some embodiments, in the network device, the identification of the local scheduling queue with the same scheduling period is the same as the identification of the aggregate scheduling queue;
The second determining module 113 may be specifically configured to determine, from a plurality of local scheduling queues corresponding to the target output ports, an identified target local scheduling queue identified as the target aggregate scheduling queue.
In some embodiments, the network device further comprises a local clock source for each of the output ports, the local clock source being aligned with the high precision time synchronization protocol clock source.
In some embodiments, a mapping relationship between the aggregate scheduling queue and the local scheduling queue corresponding to each output port is stored in the network device;
The second determining module 113 may be specifically configured to determine, from a plurality of local scheduling queues corresponding to the target output port, a target local scheduling queue corresponding to the target aggregate scheduling queue according to a mapping relationship between the aggregate scheduling queue and the local scheduling queue corresponding to the target output port.
In some embodiments, the mapping relationship is represented by an offset of an identifier of the local scheduling queue corresponding to the output port relative to an identifier of the aggregate scheduling queue;
The second determining module is specifically configured to increase the identifier of the target aggregate dispatch queue by an offset corresponding to the target output port to obtain a target identifier of the target local dispatch queue, and determine a target local dispatch queue corresponding to the target identifier from a plurality of local dispatch queues corresponding to the target output port.
In some embodiments, in the network device, the time width of the scheduling period corresponding to the aggregate scheduling queue and each local scheduling queue is the same.
In some embodiments, the foregoing message transmission apparatus may further include:
the network equipment comprises a selection module, a local scheduling queue, a transmission module and a scheduling module, wherein the selection module is used for selecting one of a plurality of output ports as a reference output port after the network equipment is started;
and the third determining module is used for determining the mapping relation between the aggregate dispatching queues and the local dispatching queues corresponding to each outlet port according to the mapping relation between the local dispatching queues corresponding to each outlet port and the dispatching period.
In some embodiments, the third determination module may be further configured to:
When a new output port is started in the network equipment, determining the mapping relation between the aggregation scheduling queue and the local scheduling queue corresponding to the new output port according to the mapping relation between the local scheduling queues corresponding to the new output port and the scheduling period and the mapping relation between the aggregation scheduling queues and the scheduling period.
In some embodiments, the scheduling period difference value of the aggregate scheduling queue corresponding to the same deterministic flow in the network device and the upstream device is a sum of the number of scheduling periods corresponding to the delay between the network device and the upstream device and a preset number of scheduling periods.
In the technical scheme provided by the embodiment of the application, the network equipment aggregates a plurality of output ports together and corresponds to a plurality of uniform aggregate scheduling queues, and for a deterministic stream, the deterministic stream can be sent out from any one of the output ports and is the same in the dimension of time, namely the time of the aggregate scheduling queues, so that the deterministic transmission of the message is realized. Compared with the message forwarding through a single outlet port, the message forwarding method and device based on the multiple outlet ports have the advantages that in the embodiment of the application, the message transmission bandwidth is increased and the message transmission efficiency is improved by forwarding the message through the multiple outlet ports which are aggregated together, and the multiple outlet ports which are aggregated together can be mutually and dynamically backed up, so that even if one outlet port fails, the message can be switched to the other outlet port for forwarding the message, the reliability of message transmission is improved, the intercommunication among nodes is ensured, and the continuity of upper-layer business is ensured.
Corresponding to the above message transmission method, the embodiment of the present application further provides a network device, as shown in fig. 12, including a processor 121 and a memory 122, where the memory 122 is used to store a computer program, and the processor 121 is used to implement the steps of the message transmission method described in any of fig. 1 to 10 when executing the program stored in the memory 122.
The Memory may include random access Memory (Random Access Memory, RAM) or may include Non-Volatile Memory (NVM), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the aforementioned processor.
The Processor may be a general purpose Processor including a central processing unit (Central Processing Unit, CPU), a network Processor (Network Processor, NP), etc., or may be a digital signal Processor (DIGITAL SIGNAL Processor, DSP), application SPECIFIC INTEGRATED Circuit (ASIC), field-Programmable gate array (Field-Programmable GATE ARRAY, FPGA) or other Programmable logic device, discrete gate or transistor logic device, discrete hardware components.
In yet another embodiment of the present application, a computer readable storage medium is provided, in which a computer program is stored, the computer program implementing any of the above-mentioned message transmission method steps when executed by a processor.
In yet another embodiment of the present application, a computer program product comprising instructions which, when run on a computer, cause the computer to perform the steps of any of the message transmission method steps of the above embodiments is also provided.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, by wired (e.g., coaxial cable, optical fiber, digital Subscriber Line (DSL)), or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk Solid STATE DISK (SSD)), etc.
It is noted that relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
In this specification, each embodiment is described in a related manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for the message transmission apparatus, network device, storage medium and computer program product embodiments, the description is relatively simple, as it is substantially similar to the method embodiments, and the relevant points are found in the partial description of the method embodiments.
The foregoing description is only of the preferred embodiments of the present application and is not intended to limit the scope of the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application are included in the protection scope of the present application.