NDN congestion control method suitable for changing network topology
By using maintenance variable Y and packet queue occupancy in NDN to characterize the degree of congestion, adjusting the congestion window and transmission rate, the problems of low throughput and high latency in the existing technology under frequent network changes are solved, and more efficient bandwidth utilization and lower latency are achieved.
Patent Information
- Application Number
- CN202510069478.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-16
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2045-01-16
AI Technical Summary
The existing NDN congestion control method cannot fully utilize bandwidth resources in scenarios where network conditions change frequently, resulting in low throughput and high latency.
Check whether there is a vacancy in the congestion window by maintaining variable Y, and characterize the congestion degree according to the occupancy rate of the packet queue, thereby adjusting the congestion window size or interest packet sending rate. This method utilizes the feedback path of the data packet in NDN, reduces feedback overhead, and dynamically adjusts traffic allocation in a multipath environment.
It realizes a more accurate understanding of congestion conditions in changing network topology, avoiding congestion, while ensuring sufficient bandwidth utilization, reducing latency, and improving throughput. Experimental results show that the average throughput increases by 15%, and the average latency of data requests decreases by 11%.
Smart Images

Figure CN119854215A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of network communication transmission technology, and in particular to an NDN congestion control method suitable for changing network topology. Background Art
[0002] Named Data Networking (NDN) is a data-centric network protocol. In NDN, the semantics of the network becomes "requesting named data in the network", and the data requester (consumer) and the data owner (producer) communicate through requests (interest packets) and responses (data packets). The mechanism of NDN brings flow balance in the sense of the number of packets, that is, an interest packet brings back at most one data packet on the reverse path. In NDN, congestion is more likely to occur in the direction of transmitting data packets. From the flow balance in the sense of packets, it can be seen that the number of interest packets sent by the forwarder is the same as the number of data packets sent in the opposite direction, and the data packets have a larger size, so the rate of the data packet flow is generally tens to hundreds of times the rate of the interest packet flow. When the speed at which the forwarder receives data packets continues to exceed the maximum bandwidth limit of the sending link, congestion occurs, and the data packets will queue on the forwarder, resulting in an increasing queuing delay, and finally packet loss after the queue overflows. Therefore, the current research on data congestion control is the focus of research in this field.
[0003] The existing NDN congestion control method uses the ICP method. The ICP method uses the congestion window to control the interest packet sending rate, judges congestion by the interest packet timeout, and reduces the congestion window to half after the interest packet timeout occurs. In other cases, the congestion window is linearly increased (AIMD). In scenarios such as NDN caching and mobility, the network conditions change frequently. ICP only judges congestion by timeout, so ICP will not reduce the rate until the timeout occurs. When the timeout occurs, the queue of the forwarder on the path has exceeded the maximum limit. ICP will keep the queue at the bottleneck on the path near the full occupancy rate, resulting in a long round-trip delay RTT of the ICP method. Therefore, the existing methods are not very sensitive to network changes. In scenarios such as NDN caching and mobility, the round-trip delay RTT will cause insufficient bandwidth utilization, which in turn leads to low throughput and high latency in scenarios where the network conditions frequently change. Summary of the invention
[0004] The purpose of the present invention is to solve the problem that the existing congestion control method still cannot fully utilize bandwidth resources, resulting in low throughput and high latency in scenarios where network conditions frequently change, and propose an NDN congestion control method suitable for changing network topology.
[0005] An NDN congestion control method applicable to changing network topology is as follows:
[0006] Step 1: At time t, use the maintenance variable Y to check whether there is a vacancy in the congestion window. If there is a vacancy, execute step 2; if there is no vacancy, execute step 3;
[0007] Step 2:
[0008] The consumer sends an interest packet to the forwarder at a set rate within the set congestion window. After receiving the interest packet, the forwarder forwards the interest packet to the producer. The producer generates a data packet and sends it to the forwarder, and updates the maintenance variable Y=Y+1.
[0009] While checking whether there is a vacancy in the congestion window, each forwarder forwards the data packet in the order in which the data packet arrives at the forwarder, and updates the congestion value in the data packet at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer;
[0010] Where N is the total number of transponders;
[0011] The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1;
[0012] When reaching time t+1, set t=t+1 and return to step 1;
[0013] The update of maintenance variable Y is based on the most recently updated Y;
[0014] Step 3: Each forwarder forwards the data packets in the order in which the data packets arrive at the forwarder, and updates the congestion value in the data packets at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer;
[0015] The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1;
[0016] When time t+1 is reached, set t=t+1 and return to execute step 1.
[0017] Furthermore, the step 1 of using the maintenance variable Y to check whether there is a vacancy in the congestion window at time t specifically includes: judging whether Y is smaller than a set congestion window size; if Y is smaller than the set congestion window size, it indicates that there is a vacancy in the congestion window; otherwise, it indicates that there is no vacancy in the congestion window.
[0018] Furthermore, after receiving the interest packet, the forwarder in step 2 forwards the interest packet to the producer, specifically: if the forwarder has one interface for forwarding the interest packet, the current interface is used to forward the data packet; if the forwarder has multiple interfaces for forwarding the interest packet, the ratio of the congestion level value of each interface of the forwarder is used as the ratio of the number of forwarded interest packets;
[0019] The congestion level of each interface of the forwarder is measured in the following ways:
[0020]
[0021] Among them, occupancy j,i is the queue occupancy rate of the i-th interface of the j-th forwarder, low_factor is the preset minimum queue occupancy rate threshold, and high_factor is the preset maximum queue occupancy rate threshold.
[0022] Furthermore, the queue occupancy of the i-th interface of the j-th forwarder is j,i , specifically:
[0023]
[0024] Among them, queue_size j,i is the queue size of the i-th interface of the j-th forwarder, queue_capacity j,i is the maximum capacity of the queue of the i-th interface of the j-th forwarder.
[0025] Furthermore, each forwarder forwards the data packets in the order in which the data packets arrive at the forwarder, and updates the congestion value in the data packets at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer, specifically:
[0026] A1, initialize the repeater interface number j = 1;
[0027] A2. Obtain the queue congestion value of the j-th forwarder interface, then add the queue congestion value of the forwarder interface to the data packet, and send the data packet with the added queue congestion value to the j+1-th forwarder. The j+1-th forwarder updates the congestion value in the data packet:
[0028] A2-1. After receiving the data packet, the j-th forwarder obtains the interface number i of the interest packet corresponding to the current data packet entering the forwarder, and then obtains the queue congestion value of the interface i of the j-th forwarder;
[0029] A2-2, adding the queue congestion level value corresponding to the j-th forwarder interface to the data packet, and sending the data packet with the added queue congestion level value to the j+1-th forwarder;
[0030] A2-3. After receiving the data packet containing the queue congestion value, the j+1th forwarder updates the queue congestion value in the data packet, specifically:
[0031] First, the j+1th forwarder obtains the queue congestion level value congestion_level in the data packet containing the queue congestion level value j,i ;
[0032] Then, in the PIT, obtain the port number i' of the interest packet corresponding to the current data packet entering the j+1th forwarder, and obtain the congestion level value congestion_level of the queue corresponding to the port i' of the j+1th forwarder. j+1,i' :
[0033]
[0034]
[0035] Among them, occupancy j+1,i' is the queue occupancy of the i'th interface of the j+1th forwarder, queue_size j+1,i' is the queue size of the i'th interface of the j+1th forwarder, queue_capacity j+1,i' is the maximum carrying capacity of the queue of the i'th interface of the j+1th forwarder, low_factor is the preset minimum queue occupancy threshold, and high_factor is the preset maximum queue occupancy threshold;
[0036] Finally, the congestion level of the queue of the jth forwarder interface i is used j,i and congestion_level of the queue at the i'th interface of the j+1th forwarder j+1,i' Obtain the link congestion level value cong_level, use the link congestion level value as the queue congestion level value, and update the queue congestion level value in the data packet;
[0037] A3. Determine whether j+1 is equal to the total number of forwarders N. If j+1=N, forward the data packet added to the queue congestion value to the consumer; otherwise, set j=j+1 and return to A2.
[0038] Furthermore, the link congestion level value cong_level is specifically:
[0039] cong_level=max(congestion_level j+1,i' ,min(congestion_level j,i ))
[0040] Where cong_level is the link congestion level.
[0041] Furthermore, the consumer obtains a data packet containing a queue congestion level value, and adjusts the congestion window size according to the congestion level value in the data packet, and updates the maintenance variable Y=Y-1, specifically:
[0042] B1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value;
[0043] B2. If the queue congestion value is greater than 0, execute step B3; otherwise, execute step B5;
[0044] B3, obtaining the time difference A between the current time and the last congestion window reduction time, if the time difference A is greater than an RTT time B, then executing step B4, otherwise, then executing step B6;
[0045] Among them, RRT time represents the round-trip transmission delay;
[0046] B4, let cwnd = cwnd / (cong_level + 1) to update the congestion window size, use the updated congestion window as the set congestion window, and record the current congestion window reduction time, and then execute B6;
[0047] Among them, cwnd is the congestion window size;
[0048] B5, let cwnd = cwnd + 1 / cwnd to update the congestion window size, use the updated congestion window as the set congestion window, and then execute B6;
[0049] B6. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1.
[0050] Furthermore, the RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet.
[0051] Furthermore, the consumer obtains a data packet containing a queue congestion value, and adjusts the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1, specifically:
[0052] C1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value;
[0053] C2: If the queue congestion level is equal to 0, execute C3; if the congestion level is greater than the preset congestion threshold, execute C4; otherwise, execute C5;
[0054] The preset congestion threshold is a value between 0 and 1;
[0055] C3. Clear all values in the time window used by the BBR state machine to estimate RTProp, insert the RTT time into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated interest packet sending rate is used as the set interest packet sending rate, and the updated congestion window is used as the set congestion window, and then execute C5.
[0056] The RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet;
[0057] C4. Clear all values in the time window used by the BBR state machine to estimate BtlBW, insert the transmission rate deliveryRate into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated interest packet sending rate is used as the set interest packet sending rate, and the updated congestion window is used as the set congestion window, and then execute C5.
[0058] Among them, BtlBW is the link bottleneck bandwidth;
[0059] C5. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1.
[0060] Furthermore, the delivery rate deliveryRate=data packet size / (time when the consumer receives the data packet-time when the consumer receives the last data packet).
[0061] The beneficial effects of the present invention are:
[0062] The present invention characterizes the congestion level as a number between 0 and 1 according to the occupancy rate of the data packet queue, so that the network node can more accurately understand the real congestion status of the network, and adjust the sending rate accordingly, avoiding congestion while ensuring that the sending rate will not be excessively reduced. The present invention feeds back the congestion level value to the consumer through the data packet sending path to reduce the overhead required for feedback. After the consumer receives the data packet with the congestion level value, the congestion window size is reduced or the consumer sending rate is adjusted according to the congestion level value. The present invention only allows one congestion window reduction within an RTT time to avoid unnecessary reduction in the overall throughput. The present invention regards the minimum congestion level value in multiple upstream paths as the upstream congestion level value, and the consumer adjusts the rate according to the value, which can make full use of the bandwidth and reduce the delay. Therefore, the present invention can improve the throughput while reducing the delay. The present invention can prevent data requests in the network from generating congestion, while fully utilizing the network bandwidth and multi-path characteristics, and achieving a lower transmission delay. In a network topology with a changeable network environment, the present invention can allow consumers to quickly adapt to network changes, make consumers' sending behavior consistent with the new network conditions, and reduce the impact of data flow on new bottlenecks. According to experiments, the present invention can increase the average throughput by 15% and reduce the average delay of data requests by 11%. BRIEF DESCRIPTION OF THE DRAWINGS
[0063] Figure 1 Processing flow chart for the forwarder;
[0064] Figure 2 It is a graph showing the change of congestion window reduction rate with the congestion level value;
[0065] Figure 3 Processing flow chart for consumers;
[0066] Figure 4 This is a graph showing how the congestion level changes with queue occupancy. DETAILED DESCRIPTION
[0067] Specific implementation method 1: This implementation method is applicable to a NDN congestion control method with a changing network topology. The specific process is as follows:
[0068] Step 1: At time t, use the maintenance variable Y to check whether there is a vacancy in the congestion window. If there is a vacancy, execute step 2; if there is no vacancy, execute step 3;
[0069] The checking whether the congestion window has a vacancy is specifically as follows: determining whether Y is smaller than a set congestion window size, if Y is smaller than the set congestion window size, it indicates that the congestion window has a vacancy, otherwise, it indicates that the congestion window has no vacancy;
[0070] The maintenance variable Y is the number of Interest packets that the consumer sent but did not receive a Data packet response;
[0071] The maintenance variable Y is updated based on the most recently updated Y. Whether the congestion window is empty is checked at any time according to the preset frequency. The checking of the congestion window vacancy and the execution of step 2 and step 3 are parallel processes and do not affect each other. The checking of the congestion window vacancy will not stop other ongoing processes.
[0072] Step 2:
[0073] The consumer sends an interest packet to the forwarder at a set rate within the set congestion window. After receiving the interest packet, the forwarder forwards the interest packet to the producer. The producer generates a data packet and sends it to the forwarder, and updates the maintenance variable Y=Y+1.
[0074] If the forwarder has multiple interfaces that can be used to forward interest packets, the ratio of the congestion level value of each interface of the forwarder is used as the ratio of the number of forwarded interest packets;
[0075] The congestion level of each interface of the forwarder is measured in the following ways:
[0076]
[0077]
[0078] Among them, occupancy j,i is the queue occupancy of the i-th interface of the j-th forwarder, queue_size j,i is the queue size of the i-th interface of the j-th forwarder, queue_capacity j,i is the maximum load of the queue of the i-th interface of the j-th forwarder, low_factor is the preset minimum queue occupancy threshold, and high_factor is the preset maximum queue occupancy threshold;
[0079] While checking whether there is a vacancy in the congestion window, each forwarder forwards the data packet in the order in which the data packet arrives at the forwarder, and updates the congestion value in the data packet until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion value to the consumer, specifically:
[0080] A1, initialize the repeater number j = 1;
[0081] A2. Obtain the queue congestion value of the j-th forwarder interface, then add the queue congestion value of the forwarder interface to the data packet, and send the data packet with the added queue congestion value to the j+1-th forwarder. The j+1-th forwarder updates the congestion value in the data packet. Specifically:
[0082] A2-1. After receiving the data packet, the j-th forwarder obtains the interface number i of the interest packet corresponding to the current data packet entering the forwarder, and then obtains the queue congestion value of the interface i of the j-th forwarder;
[0083] A2-2, adding the queue congestion level value corresponding to the j-th forwarder interface to the data packet, and sending the data packet with the added queue congestion level value to the j+1-th forwarder;
[0084] A2-3. After receiving the data packet containing the queue congestion value, the j+1th forwarder updates the queue congestion value in the data packet, specifically:
[0085] First, the j+1th forwarder obtains the queue congestion level value congestion_level in the data packet containing the queue congestion level value j,i ;
[0086] Then, in the PIT, obtain the port number i' of the interest packet corresponding to the current data packet entering the j+1th forwarder, and obtain the congestion level value congestion_level of the queue corresponding to the port i' of the j+1th forwarder. j+1,i' :
[0087]
[0088] Among them, occupancy j+1,i' is the queue occupancy of the i'th interface of the j+1th forwarder, queue_size j+1,i' is the queue size of the i'th interface of the j+1th forwarder, queue_capacity j+1,i' is the maximum carrying capacity of the queue of the i'th interface of the j+1th forwarder, low_factor is the preset minimum queue occupancy threshold, and high_factor is the preset maximum queue occupancy threshold;
[0089] Finally, the congestion level of the queue of the jth forwarder interface i is used j,i and congestion_level of the queue at the i'th interface of the j+1th forwarder j+1,i' Obtain the link congestion level value cong_level, use the link congestion level value as the queue congestion level value, and update the queue congestion level value in the data packet;
[0090] The link congestion level value cong_level is obtained in the following way:
[0091] cong_level=max(congestion_level j+1,i',min(congestion_level j,i ))
[0092] Among them, cong_level is the link congestion level value;
[0093] A3. Determine whether j+1 is equal to the total number of forwarders N. If j+1=N, forward the data packet added to the queue congestion value to the consumer; otherwise, set j=j+1 and return to A2;
[0094] The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1;
[0095] When time t+1 is reached, set t=t+1 and return to execute step 1.
[0096] Step 3: Each forwarder forwards the data packets in the order in which the data packets arrive at the forwarder, and updates the congestion value in the data packets at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer;
[0097] The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1;
[0098] When time t+1 is reached, set t=t+1 and return to execute step 1.
[0099] In this step, the queue overflows when congestion occurs, and the queue occupancy rate can reflect the congestion level of the link to a certain extent. The repeater adopts a tail-dropping queue. If the speed of receiving messages continues to be greater than the carrying capacity of the sending link, the messages will be queued in the queue at the bottleneck, and eventually the queue will be full, resulting in the loss of subsequent messages. The queue occupancy rate reflects the queuing situation of data packets and can reflect the congestion level of the link. In order to more carefully characterize the congestion situation of the network, a numerical value is used to describe the congestion level of the repeater. The existing congestion control method divides the congestion into two values, which can only indicate whether congestion occurs or not, and cannot accurately reflect the actual situation of the network. The present invention characterizes the congestion level as a number between 0 and 1 according to the occupancy rate of the data packet queue. This more detailed congestion level division allows network nodes to more accurately understand the actual congestion status of the network, and adjust the sending rate accordingly, avoiding congestion while ensuring that the sending rate will not be excessively reduced. The congestion level changes with the queue occupancy rate, such as Figure 4 As shown. Figure 1As shown, in order to make the congestion level calculation method tolerate certain traffic bursts, a lower threshold of queue occupancy is set, and no response is given to queue occupancy conditions below this threshold. When the queue occupancy is lower than the threshold low_factor, the congestion level is 0. In order to speed up the response to congestion and adjust the rate to avoid congestion before congestion occurs, an upper threshold of queue occupancy is set. When the queue occupancy is higher than the threshold high_factor, the congestion level is 1. A repeater often has multiple network interfaces. For each forwarding interface, the repeater maintains the maximum load capacity and current queue size of the outgoing queue and calculates the congestion level. The repeater of the present invention maintains its own congestion status, implements separate congestion level calculations for multiple outgoing interfaces, and avoids mutual influence between outgoing links.
[0100] In NDN, data packets are always transmitted to consumers along the reverse path of interest packets, providing a natural feedback path. After calculating the congestion value, the forwarder attaches it to the data packet and feeds it back to the consumer, which can reduce the overhead required for feedback. In the case of only one NDN data transmission link, the queue of the bottleneck node on the path is always the highest occupancy among all nodes on the path. Therefore, the message will accumulate at the bottleneck, and the congestion value at the bottleneck is also the largest. The congestion value at the bottleneck is fed back to the consumer as the congestion value of the link. If there are multiple upstream paths that can forward the interest packet, the forwarder can decide how to forward it according to a certain strategy. Using multiple upstream paths, the traffic can be dispersed to avoid excessive pressure on a certain link, and at the same time, a higher throughput can be achieved. In order to better utilize the multi-path characteristics of NDN, the present invention designs a multi-path interest packet traffic distribution mechanism. The forwarder will receive congestion value feedback from multiple upstream links, dynamically adjust the proportion of forwarding interest packets to each upstream link according to the proportion of congestion values, and when receiving the interest packet, decide which link to forward the interest packet according to the forwarding proportion of each upstream link. In order to enable consumers to fully utilize multi-path bandwidth, the forwarder will use the smallest congestion value among multiple upstream paths as the upstream congestion value. When multiple upstream links are available, if the congestion value of a link is smaller, it means that the link can carry more traffic, that is, the upstream of the forwarder can carry more traffic. Therefore, the smallest congestion value among multiple available upstream links represents the congestion level of the entire upstream, and consumers can make full use of the bandwidth by adjusting the rate according to this value. After obtaining the congestion level value of the upstream link, the forwarder compares it with the congestion level value of the outgoing link and puts the larger congestion level value into the data packet. The minimum congestion level of the available upstream link can represent the overall congestion level of the upstream, and each forwarder takes the maximum value of the upstream congestion level and the congestion level of its own outgoing link, so that consumers can always obtain the congestion level of the bottleneck link on the entire path.
[0101] In this step, the congestion window size or the interest packet sending rate is adjusted according to the needs and experience. If you want lower latency, perform the step of adjusting the interest packet sending rate. If you want higher throughput, perform the step of adjusting the congestion window size.
[0102] Specific implementation method 2: The consumer obtains a data packet containing a queue congestion level value, and adjusts the congestion window size according to the congestion level value in the data packet, and updates the maintenance variable Y=Y-1, specifically:
[0103] B1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value;
[0104] B2. If the queue congestion value is greater than 0, execute B3; otherwise, execute B5;
[0105] B3, obtain the time difference A between the current time and the last congestion window reduction time. If the time difference A is greater than an RTT time B, execute B4. Otherwise, execute B6.
[0106] RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet;
[0107] Among them, RRT time represents the round-trip transmission delay;
[0108] B4, let cwnd = cwnd / (cong_level + 1) to update the congestion window size, and record the current congestion window reduction time, use the updated congestion window as the set congestion window, and then execute B6;
[0109] Among them, cwnd is the congestion window size;
[0110] B5, let cwnd = cwnd + 1 / cwnd to update the congestion window size, use the updated congestion window as the set congestion window, and then execute B6;
[0111] B6. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1;
[0112] The maintenance variable Y is the number of interest packets sent by the consumer but no data packet response was received.
[0113] In this step, a dynamically changing congestion window is maintained. At any time, the number of interest packets sent by the consumer but not satisfied cannot exceed the maximum limit of the congestion window. By adjusting the size of the congestion window, the number of interest packets sent by the consumer to the network can be adjusted, thereby controlling the consumer's sending rate. After the consumer receives a data packet with a congestion level value, it will reduce the window according to the congestion level value. The window reduction rate changes with the congestion level value as shown in Figure 2 To prevent the consumer from reducing the window when each data packet arrives, this step adopts a conservative loss recovery strategy, which only allows the window to be reduced once within an RTT time to avoid unnecessary reduction in the overall throughput.
[0114] Specific implementation method three: The consumer obtains a data packet containing a queue congestion value, and adjusts the rate at which the consumer sends interest packets according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1, specifically:
[0115] C1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value;
[0116] C2: If the queue congestion level is equal to 0, execute C3; if the congestion level is greater than the preset congestion threshold (a value close to 1, such as 0.9), execute C4; otherwise, execute C5;
[0117] The preset congestion threshold is a value between 0 and 1;
[0118] C3. Clear all values in the time window used by the BBR state machine to estimate RTProp, insert the RTT time into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated congestion window is used as the set congestion window, and then execute C5.
[0119] RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet;
[0120] Among them, RRT time represents the round-trip transmission delay, and RTProp is the round-trip propagation delay;
[0121] C4. Clear all values in the time window used by the BBR state machine to estimate BtlBW, insert the transmission rate deliveryRate into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated congestion window is used as the set congestion window, and then execute C5.
[0122] Delivery rate deliveryRate = data packet size / (time the consumer receives the data packet - time the consumer receives the last data packet)
[0123] Among them, BtlBW is the link bottleneck bandwidth;
[0124] C5. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1;
[0125] The maintenance variable Y is the number of interest packets sent by the consumer but no data packet response was received.
[0126] In this step, the BBR state machine estimates two parameters, namely RTProp: round-trip propagation delay, and BtlBW: link bottleneck bandwidth. The BBR state set maintains all transmission delays RTT in a time window from the current moment to a certain moment in the past, and uses the minimum RTT in the window as the estimated value of RTProp. At the same time, the BBR state set also maintains all data transmission rates deliveryRate in another time window from the current moment to another moment in the past, and uses the maximum transmission rate RTT in the window as the estimated value of BtlBW, such as Figure 3 shown.
[0127] Embodiment: In order to verify the beneficial effects of the present invention, the present invention carried out the following experiments:
[0128] This embodiment implements and tests the congestion control method proposed in the present invention on the simulation platform ndn-SIM. The queue occupancy of the forwarder is obtained using the interface provided by NFD. The multipath forwarding strategy proposed in the present invention has no special requirements for the congestion control method used by consumers. In the test, consumers can improve bandwidth utilization by using the multipath forwarding strategy of the present invention when using ICP and BBR methods, and the consumer rate adjustment method proposed in the present invention can achieve better results.
[0129] This embodiment uses ndn-SIM to build a topology for testing, and consumers request files from producers. The method proposed in the present invention is tested for its ability to avoid congestion, bandwidth utilization, ability to cope with network changes, and fairness. The congestion control method can effectively avoid congestion, achieve a throughput close to the bottleneck bandwidth and an average delay close to the propagation delay. According to the experimental results, the average throughput increases by 15%, and the average delay of data requests can be reduced by 11%.
Claims
1. An NDN congestion control method suitable for changing network topology, characterized in that The specific process of the method is: Step 1: At time t, use the maintenance variable Y to check whether there is a vacancy in the congestion window. If there is a vacancy, execute step 2; if there is no vacancy, execute step 3; Step 2: The consumer sends an interest packet to the forwarder at a set rate within the set congestion window. After receiving the interest packet, the forwarder forwards the interest packet to the producer. The producer generates a data packet and sends it to the forwarder, and updates the maintenance variable Y=Y+1. While checking whether there is a vacancy in the congestion window, each forwarder forwards the data packet in the order in which the data packet arrives at the forwarder, and updates the congestion value in the data packet at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer; Where N is the total number of transponders; The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1; When reaching time t+1, set t=t+1 and return to step 1; Step 3: Each forwarder forwards the data packets in the order in which the data packets arrive at the forwarder, and updates the congestion value in the data packets at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer; The consumer obtains a data packet containing the queue congestion value, and adjusts the congestion window size or the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1; When time t+1 is reached, set t=t+1 and return to execute step 1.
2. According to claim 1, a NDN congestion control method applicable to a changing network topology is characterized in that: The step 1 of using the maintenance variable Y to check whether there is a vacancy in the congestion window at time t specifically includes: judging whether Y is smaller than the set congestion window size; if Y is smaller than the set congestion window size, it indicates that there is a vacancy in the congestion window; otherwise, it indicates that there is no vacancy in the congestion window.
3. The NDN congestion control method applicable to a changing network topology according to claim 2, characterized in that: After receiving the interest packet, the forwarder in step 2 forwards the interest packet to the producer, specifically: if the forwarder has one interface for forwarding the interest packet, the current interface is used to forward the data packet; if the forwarder has multiple interfaces for forwarding the interest packet, the ratio of the congestion level value of each interface of the forwarder is used as the ratio of the number of forwarded interest packets; The congestion level of each interface of the forwarder is measured in the following ways: Among them, occupancy j,i is the queue occupancy rate of the i-th interface of the j-th forwarder, low_factor is the preset minimum queue occupancy rate threshold, and high_factor is the preset maximum queue occupancy rate threshold.
4. The NDN congestion control method applicable to a changing network topology according to claim 3, characterized in that: The queue occupancy of the i-th interface of the j-th forwarder is j,i , specifically: Among them, queue_size j,i is the queue size of the i-th interface of the j-th forwarder, queue_capacity j,i is the maximum capacity of the queue of the i-th interface of the j-th forwarder.
5. The NDN congestion control method applicable to a changing network topology according to claim 4, characterized in that: Each forwarder forwards the data packets in the order in which the data packets arrive at the forwarder, and updates the congestion value in the data packets at the same time, until the Nth forwarder receives the data packet with the congestion value and updates the congestion value, and then sends the data packet containing the queue congestion degree value to the consumer, specifically: A1, initialize the repeater interface number j = 1; A2. Obtain the queue congestion value of the j-th forwarder interface, then add the queue congestion value of the forwarder interface to the data packet, and send the data packet with the added queue congestion value to the j+1-th forwarder. The j+1-th forwarder updates the congestion value in the data packet: A2-1. After receiving the data packet, the j-th forwarder obtains the interface number i of the interest packet corresponding to the current data packet entering the forwarder, and then obtains the queue congestion value of the interface i of the j-th forwarder; A2-2, adding the queue congestion level value corresponding to the j-th forwarder interface to the data packet, and sending the data packet with the added queue congestion level value to the j+1-th forwarder; A2-3. After receiving the data packet containing the queue congestion value, the j+1th forwarder updates the queue congestion value in the data packet, specifically: First, the j+1th forwarder obtains the queue congestion level value congestion_level in the data packet containing the queue congestion level value j,i ; Then, in the PIT, obtain the port number i' of the interest packet corresponding to the current data packet entering the j+1th forwarder, and obtain the congestion level value congestion_level of the queue corresponding to the port i' of the j+1th forwarder. j+1,i' : Among them, occupancy j+1,i' is the queue occupancy of the i'th interface of the j+1th forwarder, queue_size j+1,i' is the queue size of the i'th interface of the j+1th forwarder, queue_capacity j+1,i' is the maximum carrying capacity of the queue of the i'th interface of the j+1th forwarder, low_factor is the preset minimum queue occupancy threshold, and high_factor is the preset maximum queue occupancy threshold; Finally, the congestion level of the queue of the jth forwarder interface i is used j,i and congestion_level of the queue at the i'th interface of the j+1th forwarder j+1,i' Obtain the link congestion level value cong_level, use the link congestion level value as the queue congestion level value, and update the queue congestion level value in the data packet; A3. Determine whether j+1 is equal to the total number of forwarders N. If j+1=N, forward the data packet added to the queue congestion value to the consumer; otherwise, set j=j+1 and return to A2.
6. The NDN congestion control method applicable to a changing network topology according to claim 5, characterized in that: The link congestion level value cong_level is specifically: cong_level=max(congestion_level j+1,i' ,min(congestion_level j,i )) Where cong_level is the link congestion level.
7. The NDN congestion control method applicable to a changing network topology according to claim 6, characterized in that: The consumer obtains a data packet containing a queue congestion value, and adjusts the congestion window size according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1, specifically: B1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value; B2. If the queue congestion value is greater than 0, execute step B3; otherwise, execute step B5; B3, obtaining the time difference A between the current time and the last congestion window reduction time, if the time difference A is greater than an RTT time B, then executing step B4, otherwise, then executing step B6; Among them, RRT time represents the round-trip transmission delay; B4, let cwnd = cwnd / (cong_level + 1) to update the congestion window size, use the updated congestion window as the set congestion window, and record the current congestion window reduction time, and then execute B6; Among them, cwnd is the congestion window size; B5, let cwnd = cwnd + 1 / cwnd to update the congestion window size, use the updated congestion window as the set congestion window, and then execute B6; B6. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1.
8. The NDN congestion control method applicable to a changing network topology according to claim 7, characterized in that: The RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet.
9. The NDN congestion control method applicable to a changing network topology according to claim 6, characterized in that: The consumer obtains the data packet containing the queue congestion value, and adjusts the interest packet sending rate according to the congestion value in the data packet, and updates the maintenance variable Y=Y-1, specifically: C1. The consumer obtains the queue congestion level value in the data packet containing the queue congestion level value; C2: If the queue congestion level is equal to 0, execute C3; if the congestion level is greater than the preset congestion threshold, execute C4; otherwise, execute C5; The preset congestion threshold is a value between 0 and 1; C3. Clear all values in the time window used by the BBR state machine to estimate RTProp, insert the RTT time into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated interest packet sending rate is used as the set interest packet sending rate, and the updated congestion window is used as the set congestion window, and then execute C5. The RTT time = the time when the consumer receives the data packet - the time when the consumer sends the corresponding interest packet; C4. Clear all values in the time window used by the BBR state machine to estimate BtlBW, insert the transmission rate deliveryRate into the time window, and the BBR state machine outputs the updated interest packet sending rate and the updated congestion window. The updated interest packet sending rate is used as the set interest packet sending rate, and the updated congestion window is used as the set congestion window, and then execute C5. Among them, BtlBW is the link bottleneck bandwidth; C5. Delete the interest packet corresponding to the current data packet from the congestion window, and then update the maintenance variable Y=Y-1.
10. The NDN congestion control method applicable to a changing network topology according to claim 9, characterized in that: The delivery rate deliveryRate = data packet size / (time when the consumer receives the data packet - time when the consumer receives the last data packet).
Citation Information
Patent Citations
Self-adaptive congestion control method based on deep learning in information center network
CN107634911A
Method for balancing network load of data center
CN114448899A
NDN hop-by-hop congestion control method with cache perception based on SDN
CN114827036A
Congestion window determination method, device and system
CN115484210A
Communication method, device and system
CN116261170A
Cited By
Dynamic fair rate cooperative control method for ubiquitous network
CN120583463A
A ubiquitous network dynamic fair rate cooperative control method
CN120583463B