A deterministic network dynamic bandwidth reservation method and device
By adopting a dynamic bandwidth reservation method with programmable queues and gated queues on the forwarding plane, the real-time and device utilization issues of bandwidth reservation in deterministic networks are solved, ensuring the latency and jitter requirements of deterministic services.
Patent Information
- Application Number
- CN202411042408.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-31
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2044-07-31
AI Technical Summary
The bandwidth reservation mechanism in existing deterministic networks is implemented on the control plane and cannot be adjusted dynamically in real time, resulting in bandwidth waste and low equipment utilization. It also cannot guarantee the latency and jitter requirements of deterministic services in sudden and congested scenarios.
By adopting the enqueue decision and queue mapping mechanism of programmable queues in the forwarding plane, bandwidth reservation is dynamically adjusted, gated queues are used for periodic forwarding and congestion control, and bandwidth reservation value is adjusted based on real-time traffic statistics.
It achieves real-time dynamic adjustment of bandwidth reservation, improves equipment utilization, ensures deterministic service delay and jitter in sudden and congested scenarios, and avoids configuration complexity during frequent service changes.
Smart Images

Figure CN119011502B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data communication technology, and in particular to a method and device for dynamic bandwidth reservation in a deterministic network. Background Art
[0002] Since its birth in the 1970s, Ethernet has been widely used due to its simple network connection mechanism, ever-increasing bandwidth, scalability and compatibility.
[0003] Traditional Ethernet can only reduce end-to-end latency to tens of milliseconds. However, many emerging services, such as intelligent driving, connected vehicles, smart transportation, industrial control, smart agriculture, remote surgery, autonomous driving, VR gaming, and smart services, require end-to-end latency to be controlled to the microsecond to several millisecond level, with jitter controlled to the microsecond level and reliability exceeding 99.9999%. Therefore, there is an urgent need to establish a deterministic network that can provide "on-time and accurate" data transmission quality of service.
[0004] Deterministic networking is the direction of technological updates and iterations for communications vendors, becoming a key upgrade requirement for these companies. Existing Ethernet networks lack real-time transmission quality assurance mechanisms, global clock and synchronization mechanisms, bandwidth reservation mechanisms, and packet filtering mechanisms, making it difficult to guarantee deterministic service quality.
[0005] Currently, the key to deterministic networking lies in achieving deterministic latency, jitter, packet loss rate, bandwidth, and reliability. Deterministic latency is primarily achieved through mechanisms such as clock synchronization, frequency synchronization, scheduling shaping, and resource reservation; deterministic jitter and packet loss rate are achieved through mechanisms such as prioritization, jitter reduction, and buffer absorption; deterministic bandwidth is achieved through technologies such as network slicing and edge computing; and deterministic reliability is achieved through multiplexing, packet replication and elimination, and redundant backup.
[0006] To prioritize deterministic traffic, a resource reservation and admission control mechanism for deterministic service flows is required. The resource reservation mechanism is responsible for path and bandwidth reservation. Resource reservation mechanisms can be distributed or centralized. IEEE 802.1Qat uses a distributed registration and reservation approach. Changes in registration requests can potentially overload the network and cause delays for critical traffic. IEEE 802.1Qcc provides a set of centralized, global network management and control tools. Resource reservation, scheduling, and other configurations can be performed via remote management protocols such as NETCONF or RESTCONF.
[0007] Whether centralized or distributed, resource reservation (including bandwidth reservation) is implemented on the control unit, managing bandwidth reservations before services are sent. Once the bandwidth reservation value is determined, it is not dynamically adjusted in real time. Furthermore, the existing bandwidth reservation mechanism requires configuration for newly added services. Current traffic shaping mechanisms cannot guarantee deterministic latency and jitter requirements in bursty and congested scenarios.
[0008] Based on the above description, we can see that bandwidth reservation in deterministic networks has the following problems:
[0009] 1. Bandwidth reservation is implemented on the control plane and determined before sending. Once the reserved value is determined, it cannot be adjusted dynamically in real time. This results in significant bandwidth waste and low device utilization.
[0010] 2. The traffic shaping algorithm lacks a bandwidth protection mechanism for deterministic traffic congestion and burst scenarios, which affects the deterministic service latency of subsequent services.
[0011] 3. The traffic shaping algorithm requires pre-configuration of the reserved bandwidth ratio. In application scenarios with frequent service changes, the configuration is complex and inflexible. Summary of the Invention
[0012] The present application provides a deterministic network dynamic bandwidth reservation method and apparatus, which can dynamically adjust bandwidth reservation in real time through a decision and queue mapping mechanism of a programmable queue on the data plane without the need for control plane configuration.
[0013] In a first aspect, an embodiment of the present application provides a deterministic network dynamic bandwidth reservation method, the deterministic network dynamic bandwidth reservation method comprising the following steps:
[0014] Receive deterministic service features and gating lists issued according to the configuration on the forwarding plane;
[0015] Distinguish the service type of received data packets based on deterministic service characteristics, including deterministic and non-deterministic services, and make enqueuing decisions based on traffic statistics and the current bandwidth reservation value to determine whether the data packets can be placed in the programmable queue of the corresponding service type;
[0016] Mapping packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gating list. Traffic statistics are collected for deterministic and non-deterministic services, and the bandwidth usage percentage of the corresponding service type is calculated.
[0017] When the gated forwarding period ends, if the bandwidth reservation value needs to be adjusted, the bandwidth reservation value for the next period is determined based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value.
[0018] In conjunction with the first aspect, in one embodiment, performing queuing decision based on traffic statistics and the current bandwidth reservation value to determine whether a data packet can be entered into a programmable queue of a corresponding service type includes:
[0019] Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type;
[0020] If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives;
[0021] If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first;
[0022] If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time;
[0023] If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
[0024] In conjunction with the first aspect, in one embodiment, calculating whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be entered into the programmable queue of the corresponding service type includes:
[0025] According to the formula: remaining queue length = current bandwidth reservation value * (gating list cycle end time - current message reception time), the remaining queue length is determined;
[0026] If the remaining queue length - current packet length - programmable queue buffer length ≥ 0, it means that the packet can be queued, otherwise it cannot be queued.
[0027] In conjunction with the first aspect, in one embodiment, mapping the data packets in the programmable queue to the gated queue includes:
[0028] Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue;
[0029] The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length.
[0030] If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority;
[0031] If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
[0032] In conjunction with the first aspect, in one embodiment, calculating the maximum queue length of the priority of the deterministic service corresponding to the gated queue in the gated queue based on the gating list and the current bandwidth reservation value, and performing congestion judgment on the queue of the corresponding priority in the gated queue based on the maximum queue length, includes:
[0033] According to the sending status of the gated queue and the message receiving time, calculate the remaining sending time T of the queue in this cycle p1 ;
[0034] According to the formula: MAX_QL p1 =BW st *T p1 , calculate the maximum queue length MAX_QL p1 , among which BW st Reserve value for bandwidth;
[0035] Find the target queue that coincides with the current priority queue according to the gated list, determine the target queue cache, and calculate the target queue cache according to MAX_QL. p1 , current priority queue cache, target queue cache and current packet length to determine whether congestion occurs.
[0036] In conjunction with the first aspect, in one embodiment, the service bandwidth usage ratio is calculated according to the formula: service bandwidth usage ratio = length of packets sent in a period / (current bandwidth reservation value * sending time of the priority queue in the period);
[0037] The current bandwidth reservation value is the set initial value in the first cycle, and is the bandwidth reservation value of the previous cycle starting from the second cycle.
[0038] In combination with the first aspect, in one implementation, the bandwidth reservation value for the next period is calculated according to the formula: bandwidth reservation value = service bandwidth usage ratio * (1 + 1 / 2) * current bandwidth reservation value.
[0039] In a second aspect, an embodiment of the present application provides a deterministic network dynamic bandwidth reservation device, the deterministic network dynamic bandwidth reservation device comprising:
[0040] A receiving module, configured to receive, on the forwarding plane, deterministic service features and gating lists issued according to the configuration;
[0041] A decision module, which distinguishes the service type of received data packets based on deterministic service characteristics, including deterministic and non-deterministic services, and makes enqueuing decisions based on traffic statistics and the current bandwidth reservation value to determine whether the data packets can be placed in the programmable queue of the corresponding service type;
[0042] The control module is used to map data packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gated list, collects traffic statistics for deterministic and non-deterministic services, and calculates the service bandwidth usage ratio of the corresponding service type;
[0043] The bandwidth reservation module is used to: when the gated forwarding cycle ends, if the bandwidth reservation value needs to be adjusted, determine the bandwidth reservation value for the next cycle based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value.
[0044] In conjunction with the second aspect, in one embodiment, the decision module performs a queue entry decision based on traffic statistics and a current bandwidth reservation value to determine whether a data packet can be entered into a programmable queue of a corresponding service type, including:
[0045] Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type;
[0046] If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives;
[0047] If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first;
[0048] If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time;
[0049] If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
[0050] In conjunction with the second aspect, in one embodiment, the control module maps data packets in the programmable queue to the gated queue, including:
[0051] Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue;
[0052] The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length.
[0053] If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority;
[0054] If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
[0055] The beneficial effects of the technical solutions provided in the embodiments of the present application include at least:
[0056] The deterministic network dynamic bandwidth reservation method in this application utilizes a gating cycle-based method on the device forwarding plane to dynamically implement bandwidth reservation, ensuring real-time bandwidth adjustment and improving device utilization. A programmable queue is used to make enqueue decisions before packets are enqueued, ensuring bandwidth protection in bursty scenarios. Gated queue mapping and congestion control are used to ensure latency and jitter for deterministic services in congested scenarios. Real-time bandwidth statistics are used to dynamically adjust bandwidth reservations for deterministic services. This avoids the need for control plane configuration of bandwidth reservation values in the event of frequent service changes.
[0057] Compared to existing deterministic network bandwidth reservation technologies, this solution addresses the bandwidth reservation requirements for frequently changing deterministic services through dynamic traffic bandwidth calculation. By implementing bandwidth reservation based on a gating cycle in the forwarding plane, it ensures real-time bandwidth reservation and improves device utilization.
[0058] Compared with the existing deterministic network gated time slot forwarding technology, by adding queue arbitration and queue mapping congestion control, the delay and jitter guarantee of deterministic services in congested and bursty scenarios is solved. BRIEF DESCRIPTION OF THE DRAWINGS
[0059] Figure 1 This is a flow chart of an embodiment of a method for dynamic bandwidth reservation in a deterministic network according to the present application;
[0060] Figure 2 This is the architecture diagram of the deterministic network dynamic bandwidth reservation method of this application;
[0061] Figure 3 This is the process flow chart for adjudicating the application for admission to the team;
[0062] Figure 4 This is the queue mapping and congestion control flow chart for this application;
[0063] Figure 5 This is the flow chart of traffic statistics for this application;
[0064] Figure 6 Flowchart of bandwidth reservation calculation for this application;
[0065] Figure 7 Schematic diagram of the bandwidth reservation table for this application;
[0066] Figure 8 This is a structural block diagram of an embodiment of a deterministic network dynamic bandwidth reservation device of the present application. DETAILED DESCRIPTION
[0067] In order to enable those skilled in the art to better understand the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0068] The terms "including" and "having" and any variations thereof in the specification and claims of this application and the above-mentioned drawings are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally includes steps or units that are not listed, or optionally includes other steps or units inherent to these processes, methods, products or devices. The terms "first", "second" and "third" are used to distinguish different objects, etc., and do not represent a sequence, nor do they limit the "first", "second" and "third" to different types.
[0069] In the description of the embodiments of this application, the words "exemplary," "for example," or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary," "for example," or "for example" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary," "for example," or "for example" is intended to present the relevant concepts in a concrete manner.
[0070] In the description of the embodiments of the present application, unless otherwise specified, “ / ” means or, for example, A / B can mean A or B; “and / or” in the text is merely a description of the association relationship of associated objects, indicating that three relationships may exist, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, “multiple” refers to two or more than two.
[0071] In some processes described in the embodiments of the present application, multiple operations or steps are included that appear in a specific order. However, it should be understood that these operations or steps may not be performed in the order in which they appear in the embodiments of the present application or may be performed in parallel. The sequence numbers of the operations are only used to distinguish between different operations, and the sequence numbers themselves do not represent any order of execution. In addition, these processes may include more or fewer operations, and these operations or steps may be performed in sequence or in parallel, and these operations or steps may be combined.
[0072] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0073] It's worth noting that in addition to jitter and latency control, bandwidth reservation is also crucial for deterministic network service transmission. Existing bandwidth reservation mechanisms are primarily implemented on the control plane, requiring service-specific bandwidth reservation configuration or complex protocol configuration. Furthermore, the configured or calculated bandwidth reservation value doesn't dynamically adjust in real time. If the bandwidth reservation is too large, bandwidth is wasted and device utilization is low. If the bandwidth reservation is too small, congestion can occur, impacting the latency and jitter requirements of subsequent deterministic services.
[0074] Considering the real-time and flexibility of programmable queues in the forwarding plane, this application classifies packets before traffic shaping in the device forwarding plane, distinguishing between deterministic and non-deterministic services. Enqueue decisions are then made based on the bandwidth reservation value from the previous cycle, with successful decisions placing packets into the programmable queue for the corresponding service type. When a packet is dequeued from a programmable queue, queue mapping and congestion control are calculated based on the bandwidth reservation value from the previous cycle. The packet is mapped to the corresponding gated queue according to the rules and forwarded evenly within the cycle according to the gated queue status list. After forwarding a packet from a gated queue, traffic statistics are collected by service type within the gated cycle, and the bandwidth percentage of traffic sent during the gated cycle is calculated and written into the bandwidth reservation table. At the end of the gated cycle, the bandwidth reservation value for each service is adjusted and calculated based on the comparison of the bandwidth percentage of traffic sent during the cycle with a set threshold, and written into the bandwidth reservation table. The bandwidth reservation value in the bandwidth reservation table serves as the basis for enqueue decisions, queue mapping, and congestion control when the next packet is enqueued.
[0075] Based on this, in a first aspect, an embodiment of the present application provides a deterministic network dynamic bandwidth reservation method.
[0076] In one embodiment, referring to Figure 1 , Figure 1 This is a flow chart of an embodiment of a deterministic network dynamic bandwidth reservation method of this application. Figure 1 As shown, the deterministic network dynamic bandwidth reservation method includes:
[0077] S1. Receive deterministic service features and gating lists issued according to the configuration on the forwarding plane;
[0078] Specifically, the control plane (control unit) will issue the deterministic service features and gating list according to the configuration, and then the forwarding plane (forwarding unit) will receive the deterministic service features and gating list.
[0079] S2. Distinguish the service type of the received data packet based on deterministic service characteristics, where the service type includes deterministic service and non-deterministic service, and make a queue decision based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in a programmable queue of the corresponding service type;
[0080] Specifically, in step S2, a queue entry decision is made based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be entered into the programmable queue of the corresponding service type, including:
[0081] Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type;
[0082] If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives;
[0083] If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first;
[0084] If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time;
[0085] If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
[0086] In this embodiment, the following method can be used to determine whether a deterministic service data packet or a non-deterministic service data packet can be queued.
[0087] According to the formula: remaining queue length = current bandwidth reservation value * (gating list cycle end time - current message reception time), the remaining queue length is determined;
[0088] If the remaining queue length - current packet length - programmable queue buffer length ≥ 0, it means that the packet can be queued, otherwise it cannot be queued.
[0089] S3. Mapping data packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gated list, collects traffic statistics for deterministic and non-deterministic services, and calculates the bandwidth usage ratio of the corresponding service type.
[0090] In this embodiment, mapping data packets in the programmable queue to the gated queue requires consideration of the mapping mechanism and congestion conditions.
[0091] Specifically, it includes the following steps:
[0092] Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue;
[0093] The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length.
[0094] If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority;
[0095] If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
[0096] It is worth noting that the maximum queue length of the corresponding deterministic service priority in the gated queue is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length. Specifically, the following steps are performed:
[0097] According to the sending status of the gated queue and the message receiving time, calculate the remaining sending time T of the queue in this cycle p1 ;
[0098] According to the formula: MAX_QL p1 =BW st *T p1 , calculate the maximum queue length MAX_QL p1 , among which BW st Reserve value for bandwidth;
[0099] Find the target queue that coincides with the current priority queue according to the gated list, determine the target queue cache, and calculate the target queue cache according to MAX_QL. p1 , current priority queue cache, target queue cache and current packet length to determine whether congestion occurs.
[0100] After the gated queue performs periodic forwarding according to the gated list, traffic statistics are collected for deterministic and non-deterministic services. The bandwidth usage percentage of both deterministic and non-deterministic services can be calculated using the following method:
[0101] The service bandwidth usage ratio is calculated using the formula: Service bandwidth usage ratio = Sent packet length in the period / (Current bandwidth reserved value * Sent duration in the priority queue period).
[0102] The current bandwidth reservation value is the set initial value in the first cycle, and is the bandwidth reservation value of the previous cycle starting from the second cycle.
[0103] S4. When the gated forwarding period ends, if the bandwidth reservation value needs to be adjusted, the bandwidth reservation value for the next period is determined based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value.
[0104] In this embodiment, if the bandwidth reservation value needs to be adjusted, then:
[0105] The bandwidth reservation value for the next period is calculated using the formula: Bandwidth reservation value = Service bandwidth usage ratio * (1 + 1 / 2) * Current bandwidth reservation value.
[0106] The following is a further explanation of the above steps based on the principles:
[0107] See also Figure 2 As shown, it is an architectural diagram of the deterministic network dynamic bandwidth reservation method of the present application, which is mainly applicable to programmable network transmission equipment, and realizes periodic dynamic adjustment of the bandwidth reservation value in the forwarding unit of the programmable equipment.
[0108] In this method, the forwarding unit mainly implements the deterministic service configuration issued by the receiving control unit; when receiving a data packet, it makes a queue decision for the service message based on traffic statistics and bandwidth reservation; based on traffic statistics and bandwidth reservation, it performs gated queue mapping and congestion control calculation on the service message; after the data packet is sent, it performs traffic statistics and bandwidth reservation adjustment based on the status of the gating list.
[0109] The main processing flow of each module of the forwarding unit is as follows:
[0110] 1. Receive the deterministic service features and gating list issued by the control unit according to the configuration.
[0111] 2. After receiving the data packet, it enters the adjudication module to distinguish between deterministic and non-deterministic services based on service characteristics; then, based on the bandwidth reservation result, it determines whether it can enter the programmable queue with the corresponding service characteristics.
[0112] 3. In the programmable queue, deterministic services are ranked based on the arrival time of packets, sorting and dequeuing packets in the order of arrival. Non-deterministic services are ranked based on the arrival time and priority of packets, ensuring that congested deterministic services are prioritized for enqueuing.
[0113] 4. Packets enter the queue mapping and congestion control module and are mapped to different priorities of the gated queue based on the deterministic service configuration. This process takes congestion and burst scenarios into consideration.
[0114] 5. The gated queue forwards messages periodically based on the gated list.
[0115] 6. After the data packet is forwarded, traffic statistics are collected and bandwidth reservation entries are maintained.
[0116] 7. When the gated queue period ends, the bandwidth reservation result is calculated based on the traffic statistics.
[0117] To this end, the specific processing flow is as follows:
[0118] Step S1: The control unit issues deterministic service features and gating lists according to the deterministic service configuration
[0119] The control unit issues deterministic service features and a gating list based on the deterministic service configuration. The forwarding unit receives and stores the entries and subsequently performs service differentiation and deterministic traffic shaping based on the entry contents.
[0120] Step S2: Data packet enqueue decision
[0121] Deterministic services and non-deterministic services are distinguished based on service characteristics, and then based on the results of bandwidth reservation in the previous cycle, it is determined whether they can be included in the programmable queue of the corresponding service characteristics.
[0122] In step S2, the packet is queued for adjudication, see Figure 3 This is the process flow chart for joining the team. The specific processing flow is as follows:
[0123] Step S201: The forwarding unit receives a data packet.
[0124] Step S202: Based on the deterministic service feature table issued by the control unit, distinguish between deterministic services and non-deterministic services. If the service is a deterministic service, the length of the data packet that can be queued needs to be calculated based on the bandwidth reservation value. The calculation method is as follows:
[0125] Remaining queue length = bandwidth reservation value * (gating list cycle end time - current message reception time);
[0126] The packet enqueuing behavior is then decided based on the enqueuable length. The decision is based on the following:
[0127] Remaining queue length - current packet length - programmable queue buffer length >= 0 indicates queueing is possible, otherwise the queueing conditions are not met.
[0128] Step S203: Differentiate between deterministic services and non-deterministic services based on the deterministic service feature table sent by the control unit. If the service is deterministic, the length of the data packet that can be queued needs to be calculated based on the bandwidth reservation value, and the calculation method is the same as S202.
[0129] Step S204: If the deterministic service data packet meets the queueing condition, the data packet enters the deterministic service programmable queue cache.
[0130] Step S205: If the deterministic service data packet does not meet the enqueuing conditions, it needs to enter the non-deterministic service programmable queue cache. The rank of the programmable queue is set lower than the priority of the non-deterministic service message, ensuring that the deterministic message is dequeued first in the non-deterministic programmable queue. If the non-deterministic service data packet meets the enqueuing conditions, it enters the non-deterministic programmable queue in the order of its arrival time.
[0131] Step S206: If the non-deterministic data packet does not meet the queue determination conditions, the data packet is discarded.
[0132] Step S3: Programmable Queue Buffer
[0133] In the programmable queue, deterministic services are ranked based on the arrival time of packets, sorting and dequeuing packets in the order of arrival. Non-deterministic services are ranked based on the arrival time and priority of packets, ensuring that deterministic services that do not meet the enqueuing conditions are prioritized.
[0134] Step S4: Queue mapping and congestion control
[0135] Data packets enter the control module and are mapped to different priorities of the gated queue according to the deterministic service configuration. Congestion and burst scenarios need to be considered during the process.
[0136] In step S4, queue mapping and congestion control, see Figure 4 The following is a flowchart of queue mapping and congestion control. The specific processing flow is as follows:
[0137] Step S401: Data packets in the programmable queue that meet the dequeueing conditions are dequeued in sequence.
[0138] Step S402: Based on the deterministic service feature table item issued by the control plane, the service message is distinguished as a deterministic service or a non-deterministic service. If it is a deterministic service, the priority of the deterministic service message is mapped to the gated queue priority.
[0139] Step S403: Based on the deterministic service feature table item sent by the control plane, the service message is distinguished as a deterministic service or a non-deterministic service. If it is a non-deterministic service, the message is mapped to the lowest priority 0 in the gated queue.
[0140] Step S404: Calculate the queue length of the corresponding deterministic service in the gated queue according to the gated status list and bandwidth reservation value. First, calculate the remaining sendable time T of the queue in this cycle according to the gated queue sending status and message receiving time. p1 Available bandwidth reserved value BW st , calculate the maximum queue length MAX_QL p1 =BW st *T p1 .
[0141] Then, based on the maximum queue length, congestion is determined for the queue of the corresponding priority in the gated queue. The judgment is based on:
[0142] According to the maximum queue length MAX_QL above p1 and the queue buffer length QBL p1 , to determine whether congestion occurs. Because gating can send to multiple queues, it is necessary to find other queues p2, p3, etc. that overlap with the current priority queue according to the gating list, and the corresponding queue cache QBL p2 and QBL p3 .
[0143] MAX_QL p1 -QBL p1 -QBL p2 -QBL p3 - packet.length < 0 indicates congestion, otherwise there is no congestion.
[0144] Step S405: The data packet is dequeued from the programmable queue and is put into the access control queue according to the principle of one-to-one correspondence of priorities when no congestion occurs.
[0145] Step S406: When congestion occurs, the enqueue rules are adjusted to place packets into queues that can be sent later in the gated state, filling the queues from highest to lowest priority. For example, if queue 7 is congested, and the queues that can be sent later in the gated state forwarding table are 4, 5, and 2, then the packets in queue 7 that cannot be sent can be mapped to queues 5, 4, and 2, respectively.
[0146] Step S5: Gate queue cache and forward according to gate list
[0147] Gating-based queue scheduling and traffic shaping algorithms can meet the latency and jitter requirements of deterministic services.
[0148] Step S6: Traffic statistics
[0149] After the data packets are forwarded, traffic statistics are collected and bandwidth reservation entries are maintained.
[0150] In step S6, traffic statistics are calculated, see Figure 5 This is a flow chart of traffic statistics. The specific processing flow is as follows:
[0151] Step S601: After a data packet is sent from a gated queue, traffic statistics are collected for deterministic services and non-deterministic services according to the configured deterministic service characteristics.
[0152] Step S602: If it is a deterministic service, the length of packets sent within the period of the deterministic service entry in the bandwidth reservation table is updated.
[0153] Step S603: If it is a non-deterministic service, the length of packets sent within the period of the non-deterministic service entry in the bandwidth reservation table is updated.
[0154] Step S604: Calculate the bandwidth usage ratio of the deterministic service in this period according to the length of the packets sent in the deterministic service period, and record it in the bandwidth usage ratio of the deterministic service entry in the bandwidth reservation table.
[0155] Step S605: Calculate the bandwidth usage ratio of the non-deterministic service in this period according to the length of the packets sent in the non-deterministic service period, and record it in the bandwidth usage ratio of the non-deterministic service entry in the bandwidth reservation table.
[0156] Step S7: Bandwidth reservation
[0157] After the gated queue period ends, the bandwidth reservation result is calculated based on the traffic statistics and the bandwidth reservation entry is recorded.
[0158] In step S7, bandwidth reservation is calculated, see Figure 6 This is a flowchart for bandwidth reservation calculation. The specific processing flow is as follows:
[0159] Step S701: The gated queue performs periodic forwarding according to the gated status list. If the cycle has not ended, the gated switch is controlled according to the gated status list for forwarding. The first cycle is to ensure deterministic services, and the bandwidth reservation ratio for deterministic services is recorded as 100%.
[0160] Step S702: If the gated forwarding period ends, the bandwidth reservation value is calculated based on the set bandwidth usage percentage threshold and recorded in the bandwidth reservation table. The calculation method is as follows:
[0161] Set the upper and lower thresholds l and h for the service bandwidth usage ratio. When l ≥ service bandwidth usage ratio ≥ h, there is no need to adjust the bandwidth reservation value. Otherwise, adjustment is required. The adjustment rules are as follows:
[0162] Bandwidth reservation ratio = service bandwidth usage ratio * (1 + 1 / 2) * bandwidth reservation ratio of the previous period
[0163] Step S703: Clear the traffic statistics in the bandwidth reservation table in this period, retain the bandwidth reservation value, and enter the next gating period.
[0164] See also Figure 7 The bandwidth reservation table used in the present invention is defined. The fields are described as follows:
[0165] (1) Service characteristics: Based on deterministic service configuration, service messages are divided into two categories: deterministic and non-deterministic.
[0166] (2) Gate cycle start time: used as the basis for calculating the cycle end time.
[0167] (3) Gated service state duration: Calculate the duration of deterministic and non-deterministic services separately based on the gating list. This serves as the basis for calculating the remaining queue length within the period.
[0168] (4) Length of packets sent during the period: For each data packet sent during the period, traffic statistics are collected based on the service characteristics.
[0169] (5) Business bandwidth usage percentage: Calculate the percentage of traffic received by the corresponding business in this period based on the traffic received in the period, the bandwidth reservation value of the previous period, and the gating duration.
[0170] (6) Bandwidth reservation ratio: The bandwidth reservation value within the recording period is dynamically adjusted according to the threshold in each period.
[0171] In summary, the deterministic network dynamic bandwidth reservation method in this application utilizes a gating cycle-based method on the device forwarding plane to dynamically implement bandwidth reservation, ensuring real-time bandwidth adjustment and improving device utilization. A programmable queue is used to make enqueuing decisions before packets are enqueued, ensuring bandwidth protection in bursty scenarios. Gated queue mapping and congestion control are used to ensure latency and jitter for deterministic services in congested scenarios. Real-time bandwidth statistics are used to dynamically adjust bandwidth reservations for deterministic services. This avoids the need for control plane configuration of bandwidth reservation values in the event of frequent service changes.
[0172] Compared to existing deterministic network bandwidth reservation technologies, this solution addresses the bandwidth reservation requirements for frequently changing deterministic services through dynamic traffic bandwidth calculation. By implementing bandwidth reservation based on a gating cycle in the forwarding plane, it ensures real-time bandwidth reservation and improves device utilization.
[0173] Compared with the existing deterministic network gated time slot forwarding technology, by adding queue arbitration and queue mapping congestion control, the delay and jitter guarantee of deterministic services in congested and bursty scenarios is solved.
[0174] In a second aspect, an embodiment of the present application further provides a deterministic network dynamic bandwidth reservation device.
[0175] In one embodiment, referring to Figure 8 , Figure 8 This is a functional module diagram of an embodiment of a deterministic network dynamic bandwidth reservation device. Figure 8 As shown, the deterministic network dynamic bandwidth reservation device includes a control unit and a forwarding unit.
[0176] The control unit is used to determine the service characteristics and gating list issued according to the configuration, and the forwarding unit includes a receiving module, a decision module, a control module and a bandwidth reservation module.
[0177] Among them, the receiving module is used to receive the deterministic service characteristics and gating list issued according to the configuration on the forwarding plane;
[0178] A decision module, which distinguishes the service type of received data packets based on deterministic service characteristics, including deterministic and non-deterministic services, and makes enqueuing decisions based on traffic statistics and the current bandwidth reservation value to determine whether the data packets can be placed in the programmable queue of the corresponding service type;
[0179] The control module is used to map data packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gated list, collects traffic statistics for deterministic and non-deterministic services, and calculates the service bandwidth usage ratio of the corresponding service type;
[0180] The bandwidth reservation module is used to: when the gated forwarding cycle ends, if the bandwidth reservation value needs to be adjusted, determine the bandwidth reservation value for the next cycle based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value.
[0181] Furthermore, in one embodiment, the decision module performs queue entry decision based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be entered into the programmable queue of the corresponding service type, including:
[0182] Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type;
[0183] If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives;
[0184] If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first;
[0185] If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time;
[0186] If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
[0187] Furthermore, in one embodiment, the arbitration module calculates whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be entered into the programmable queue of the corresponding service type, including:
[0188] According to the formula: remaining queue length = current bandwidth reservation value * (gating list cycle end time - current message reception time), the remaining queue length is determined;
[0189] If the remaining queue length - current packet length - programmable queue buffer length ≥ 0, it means that the packet can be queued, otherwise it cannot be queued.
[0190] Furthermore, in one embodiment, the control module maps data packets in the programmable queue to the gated queue, including:
[0191] Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue;
[0192] The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length.
[0193] If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority;
[0194] If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
[0195] Furthermore, in one embodiment, the control module calculates the maximum queue length of the priority of the deterministic service in the gated queue according to the gating list and the current bandwidth reservation value, and performs congestion judgment on the queue of the corresponding priority in the gated queue according to the maximum queue length, including:
[0196] According to the sending status of the gated queue and the message receiving time, calculate the remaining sending time T of the queue in this cycle p1 ;
[0197] According to the formula: MAX_QL p1 =BW st *T p1 , calculate the maximum queue length MAX_QL p1 , among which BW st Reserve value for bandwidth;
[0198] Find the target queue that coincides with the current priority queue according to the gated list, determine the target queue cache, and calculate the target queue cache according to MAX_QL. p1 , current priority queue cache, target queue cache and current packet length to determine whether congestion occurs.
[0199] Furthermore, in one embodiment, the control module is configured to:
[0200] The service bandwidth usage ratio is calculated using the formula: Service bandwidth usage ratio = Sent packet length in the period / (Current bandwidth reserved value * Sent duration in the priority queue period).
[0201] The current bandwidth reservation value is the set initial value in the first cycle, and is the bandwidth reservation value of the previous cycle starting from the second cycle.
[0202] Furthermore, in one embodiment, the bandwidth reservation module is configured to:
[0203] The bandwidth reservation value for the next period is calculated using the formula: Bandwidth reservation value = Service bandwidth usage ratio * (1 + 1 / 2) * Current bandwidth reservation value.
[0204] The functional implementation of each module in the above-mentioned deterministic network dynamic bandwidth reservation device corresponds to each step in the above-mentioned deterministic network dynamic bandwidth reservation method embodiment, and their functions and implementation processes are not further described here.
[0205] The above are only preferred embodiments of the present application and do not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.
Claims
1. A deterministic network dynamic bandwidth reservation method, characterized in that: The deterministic network dynamic bandwidth reservation method comprises the following steps: Receive deterministic service features and gating lists issued according to the configuration on the forwarding plane; Distinguish the service type of received data packets based on deterministic service characteristics, including deterministic and non-deterministic services, and make enqueuing decisions based on traffic statistics and the current bandwidth reservation value to determine whether the data packets can be placed in the programmable queue of the corresponding service type; Mapping packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gating list. Traffic statistics are collected for deterministic and non-deterministic services, and the bandwidth usage percentage of the corresponding service type is calculated. When the gated forwarding cycle ends, if the bandwidth reservation value needs to be adjusted, the bandwidth reservation value for the next cycle is determined based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value; Mapping the data packets in the programmable queue to the gated queue includes: Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue; The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length. If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority; If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
2. The deterministic network dynamic bandwidth reservation method according to claim 1, wherein: The enqueuing decision is performed based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be enqueued into the programmable queue of the corresponding service type, including: Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type; If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives; If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first; If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time; If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
3. The deterministic network dynamic bandwidth reservation method according to claim 2, wherein: The calculation of whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can enter the programmable queue of the corresponding service type includes: According to the formula: remaining queue length = current bandwidth reservation value * (gating list cycle end time - current message reception time), the remaining queue length is determined; If the remaining queue length - current packet length - programmable queue buffer length ≥ 0, it means that the packet can be queued, otherwise it cannot be queued.
4. The deterministic network dynamic bandwidth reservation method according to claim 1, wherein: The calculating, based on the gating list and the current bandwidth reservation value, of the maximum queue length that can be entered into the gated queue for the corresponding deterministic service, and performing congestion judgment on the queue of the corresponding priority in the gated queue based on the maximum queue length, includes: According to the sending status of the gated queue and the message receiving time, calculate the remaining sending time T of the queue in this cycle p1 ; According to the formula: MAX_QL p1 =BW st *T p1 , calculate the maximum queue length MAX_QL p1 , among which BW st Reserve value for bandwidth; Find the target queue that coincides with the current priority queue according to the gated list, determine the target queue cache, and calculate the target queue cache according to MAX_QL. p1 , current priority queue cache, target queue cache and current packet length to determine whether congestion occurs.
5. The deterministic network dynamic bandwidth reservation method according to claim 1, wherein: The service bandwidth usage ratio is calculated using the formula: Service bandwidth usage ratio = Sent packet length in the period / (Current bandwidth reserved value * Sent duration in the priority queue period). The current bandwidth reservation value is the set initial value in the first cycle, and is the bandwidth reservation value of the previous cycle starting from the second cycle.
6. The deterministic network dynamic bandwidth reservation method according to claim 5, wherein: The bandwidth reservation value for the next period is calculated using the formula: Bandwidth reservation value = Service bandwidth usage ratio * (1 + 1 / 2) * Current bandwidth reservation value.
7. A deterministic network dynamic bandwidth reservation device, characterized in that: The deterministic network dynamic bandwidth reservation device includes: A receiving module, configured to receive, on the forwarding plane, deterministic service features and gating lists issued according to the configuration; A decision module, which distinguishes the service type of received data packets based on deterministic service characteristics, including deterministic and non-deterministic services, and makes enqueuing decisions based on traffic statistics and the current bandwidth reservation value to determine whether the data packets can be placed in the programmable queue of the corresponding service type; The control module is used to map data packets in the programmable queue to the gated queue. The gated queue performs periodic forwarding according to the gated list, collects traffic statistics for deterministic and non-deterministic services, and calculates the service bandwidth usage ratio of the corresponding service type; The bandwidth reservation module is used to: when the gated forwarding cycle ends, if the bandwidth reservation value needs to be adjusted, determine the bandwidth reservation value for the next cycle based on the corresponding service bandwidth usage ratio and the current bandwidth reservation value; The control module maps data packets in the programmable queue to the gated queue, including: Mapping the priority of the deterministic service data packet with the priority of the gated queue, and mapping the non-deterministic service data packet to the lowest priority in the gated queue; The maximum queue length that can be entered into the gated queue for the corresponding deterministic service is calculated based on the gating list and the current bandwidth reservation value. Congestion is then determined for the queue of the corresponding priority in the gated queue based on the maximum queue length. If no congestion occurs, the deterministic service data packets are dequeued from the programmable queue and enter the gate-controlled queue according to priority; If congestion occurs, the deterministic service data packets are placed in the queue that can be sent later in the gated state and filled in the order of priority from high to low.
8. The deterministic network dynamic bandwidth reservation device according to claim 7, wherein: The decision module makes a queue decision based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type, including: Calculate whether the corresponding service type has sufficient queue length based on traffic statistics and the current bandwidth reservation value to determine whether the data packet can be placed in the programmable queue of the corresponding service type; If the deterministic service data packet meets the queue entry conditions, it will enter the deterministic service programmable queue cache in the order of the time when the deterministic service data packet arrives; If the deterministic service data packet does not meet the queueing conditions, it will enter the non-deterministic service programmable queue cache, and the deterministic service data packet will be queued in the non-deterministic programmable queue first; If the non-deterministic service data packets meet the queue entry conditions, they will enter the non-deterministic programmable queue cache in the order of their arrival time; If a non-deterministic packet does not meet the enqueuing criteria, the packet is discarded.
Citation Information
Patent Citations
Service quality method for guaranteeing service bandwidth and network equipment
CN107682282A
Deterministic service transmission method and device based on jitter time delay
CN115643220A