Method for adjusting network parameters and related equipment
By establishing a correspondence table in the network device, directly querying and adjusting network parameters, the problem of complex operations affecting efficiency in the prior art is solved, and the efficiency of congestion control and queue management is improved.
Patent Information
- Application Number
- CN202311055856.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2023-08-21
- Publication Date
- 2024-12-31
AI Technical Summary
In the prior art, complex operations of congestion control algorithms are difficult to implement on network devices, affecting parameter adjustment efficiency and congestion control efficiency, and occupying too much processing resources.
By obtaining the current value of the parameter set of the network device's transmission data stream, querying the pre-established correspondence table, directly obtaining the adjustment value of the network parameters, avoiding complex operations, and improving parameter adjustment efficiency.
The process of network equipment obtaining network parameter adjustment values is simplified, the efficiency of congestion control and queue management is improved, and the utilization of equipment processing resources is reduced.
Smart Images

Figure CN119232655A_ABST
Abstract
Description
[0001] This application claims the priority of the Chinese patent application filed with the China Patent Office on June 29, 2023, with application number 202310794549.1 and invention name “A method for adjusting network parameters and related equipment”, the entire contents of which are incorporated by reference in this application. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a method for adjusting network parameters and related equipment. Background Art
[0003] Congestion control is an important method to improve network resource utilization and optimize network transmission quality. In the currently commonly used congestion control algorithms, complex operations (such as division, square root, etc.) are usually performed based on the round-trip time (RTT) and throughput of the data flow to obtain the adjustment value of the network parameters (for example, network congestion control parameters (such as receiver window (RWND), explicit congestion notification (ECN) waterline (threshold)), queue management parameters (such as queue threshold)), and then the current value of the network parameter is adjusted according to the obtained adjustment value to achieve congestion control. These complex operations are difficult to implement on network devices (such as routers). Even if these complex operations are implemented on network devices, they will affect the efficiency of parameter adjustment, thereby affecting the efficiency of congestion control, or the complex operations occupy too many processing resources of the network device, affecting the forwarding efficiency of the network device. Summary of the invention
[0004] The present application provides a method for adjusting network parameters and related devices, which can avoid complex calculations and reduce the complexity of network devices obtaining adjustment values of network parameters, thereby improving parameter adjustment efficiency, congestion control efficiency and forwarding efficiency of network devices.
[0005] In a first aspect, a method for adjusting network parameters is provided, which can be applied to a network device, the method comprising the following steps: first, obtaining a first corresponding relationship, then acquiring a current value of a parameter set based on a first data stream currently transmitted by the network device, and querying the first corresponding relationship based on the current value of the parameter set to obtain a first target value corresponding to the current value of the parameter set from multiple values of the first network parameter, and finally adjusting a second network parameter based on the first target value, wherein the first corresponding relationship indicates a corresponding relationship between multiple values of the parameter set and multiple values of the first network parameter, the parameter set includes relevant parameters of the data stream transmitted by the network device, the first network parameter is a parameter for congestion control of a network to which the network device belongs, or the first network parameter is a parameter for queue management of the network device, the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
[0006] In the above scheme, since the network device obtains the first corresponding relationship (the corresponding relationship between the multiple values of the parameter set and the multiple values of the first network parameter), the network device can obtain the value for adjusting the second network parameter (i.e., the above first target value) by simply searching the first corresponding relationship when currently transmitting the data stream. It can be seen that the scheme avoids complex calculations, thereby reducing the complexity of the network device obtaining the adjusted value of the network parameter, thereby improving the parameter adjustment efficiency, the congestion control efficiency, and the forwarding efficiency of the network device.
[0007] In a possible implementation, the first corresponding relationship may be stored in the network device in a table format, or in other formats such as an array, which is not specifically limited in the present application.
[0008] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter used to perform congestion control on the network to which the network device belongs, and the second network parameter is a parameter used to perform queue management on the network device, or the first network parameter is a parameter used to perform queue management on the network device, and the second network parameter is a parameter used to perform congestion control on the network to which the network device belongs.
[0009] The above-mentioned parameters for performing congestion control on the network to which the network device belongs may be RWND, ECN watermark, etc., and the above-mentioned parameters for performing queue management on the network device may be queue threshold, etc.
[0010] It can be understood that when the second network parameter is a parameter for queue management of the network device, this implementation method can implement queue management of the network device, and when the second network parameter is a parameter for congestion control of the network to which the network device belongs, this implementation method can implement congestion control.
[0011] In a possible implementation, the first corresponding relationship can be obtained in the following manner: first, multiple sample values of the parameter set are obtained, then multiple fuzzy inference rules are obtained, and finally, the first corresponding relationship is obtained according to the multiple sample values and the multiple fuzzy inference rules. The multiple sample values are sampled when the network device historically transmits the second data stream, and the multiple fuzzy inference rules indicate the corresponding relationship between multiple levels of the parameter set and multiple levels of the first network parameter.
[0012] It can be understood that there is actually a corresponding relationship between the multiple sample values of the parameter set and the multiple levels of the parameter set. For example, the multiple levels of the parameter set are "low", "medium" and "high", and the multiple sample values of the parameter set can be classified into sample values corresponding to the "low" level, sample values corresponding to the "medium" level, and sample values corresponding to the "high" level. Since there is a corresponding relationship between the multiple levels of the parameter set and the multiple levels of the first network parameters in the multiple fuzzy inference rules, there is actually a corresponding relationship between the multiple sample values of the parameter set and the multiple levels of the first network parameters. According to the corresponding relationship, the acquisition of multiple values of the first network parameter can be achieved through methods such as fuzzy reasoning, thereby achieving the acquisition of the first corresponding relationship.
[0013] In a possible implementation, the first corresponding relationship may be obtained according to multiple sample values and multiple fuzzy inference rules in the following manner:
[0014] First, multiple sample values are discretized to obtain multiple discrete values, and each discrete value in the multiple discrete values is fuzzified to obtain the membership of each discrete value in multiple first fuzzy sets. Then, fuzzy reasoning is performed according to multiple fuzzy reasoning rules and the membership of each discrete value in multiple first fuzzy sets to obtain the membership of the fuzzy reasoning result corresponding to each discrete value in multiple second fuzzy sets. Then, according to the membership of the fuzzy reasoning result corresponding to each discrete value in multiple second fuzzy sets, the fuzzy reasoning result corresponding to each discrete value is defuzzified to obtain the precise reasoning result corresponding to each discrete value. Finally, each discrete value is used as the first value of the parameter set, and the precise reasoning result is used as the first value of the first network parameter. The corresponding relationship between the first value of the parameter set and the first value of the first network parameter is recorded in the first corresponding relationship. Among them, the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of the parameter set, and the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of the first network parameter.
[0015] By implementing the above implementation, the network device can obtain the first corresponding relationship.
[0016] In a possible implementation, the above-mentioned related parameters include network performance parameters when the network device transmits data streams and / or parameters of queues used by the network device to transmit data streams. Optionally, the related parameters may also be congestion control parameters of the data stream, for example, RWND carried by an acknowledgement (ACK) message. This application does not specifically limit the related parameters of the data stream.
[0017] The above network performance parameter includes at least one of the following: RTT, packet loss rate or jitter; the above queue parameter may be the depth of the first queue.
[0018] The parameter set may include one or more of the above-mentioned related parameters, such as only RTT or only packet loss rate, or both RTT and packet loss rate. This application does not specifically limit the parameter set.
[0019] It can be seen that by implementing the above implementation method, different first correspondences can be obtained when the parameter set includes different parameters, which can improve the flexibility of the solution and make the solution adapt to network scenarios where the parameter set includes different parameters.
[0020] In a possible implementation, when the second network parameter and the first network parameter are the same parameter, the second network parameter can be adjusted according to the first target value in the following manner: the first target value is used as the adjustment value of the second network parameter, and the second network parameter is adjusted using the adjustment value. For example, when the first network parameter is RWND, the RWND value obtained by querying the first corresponding relationship can be directly used as the adjustment value of the second network parameter RWND.
[0021] In order to improve the flexibility of the scheme, in a possible implementation, when the first network parameter is a parameter for congestion control of the network to which the network device belongs, and the second network parameter is a parameter for queue management of the network device, or when the first network parameter is a parameter for queue management of the network device, and the second network parameter is a parameter for congestion control of the network to which the network device belongs, the second network parameter can be adjusted according to the first target value in the following manner: query the second corresponding relationship according to the first target value, obtain the second target value corresponding to the first target value among multiple values of the second network parameter, and then use the second target value as the adjustment value of the second network parameter, and use the adjustment value to adjust the second network parameter. Among them, the second corresponding relationship indicates the correspondence between multiple values of the first network parameter and multiple values of the second network parameter. For example, when the first network parameter is a queue threshold and the second network parameter is RWND, after the network device queries the first corresponding relationship to obtain a queue threshold value, it can query the second corresponding relationship according to the queue threshold value to obtain a RWND value, and then the network device can directly use the RWND value as the adjustment value of the second network parameter RWND.
[0022] It can be seen that in the above implementation, the network device can obtain the value for adjusting the second network parameter (i.e., the above second target value) by simply looking up the corresponding relationship twice, and complex calculations are avoided, thereby reducing the complexity of the network device in obtaining the adjustment value of the network parameter, thereby improving the parameter adjustment efficiency, congestion control efficiency and forwarding efficiency of the network device.
[0023] In order to improve the flexibility of the scheme, in a possible implementation, when the first network parameter is a parameter for congestion control of the network to which the network device belongs, and the second network parameter is a parameter for queue management of the network device, or when the first network parameter is a parameter for queue management of the network device, and the second network parameter is a parameter for congestion control of the network to which the network device belongs, the second network parameter can be adjusted according to the first target value in the following manner: query the third corresponding relationship according to the first target value, obtain the target intermediate value corresponding to the first target value among multiple intermediate values, and use the product of the first target value and the target intermediate value as the adjustment value of the second network parameter, and use the adjustment value to adjust the second network parameter. Among them, the third corresponding relationship indicates the correspondence between multiple values of the first network parameter and multiple intermediate values. For example, when the first network parameter is a queue threshold and the second network parameter is RWND, after the network device queries the first corresponding relationship to obtain a queue threshold value, it can query the third corresponding relationship according to the queue threshold value to obtain an intermediate value, and then the network device can directly use the product of the queue threshold value obtained by the above query and the intermediate value as the adjustment value of the second network parameter RWND.
[0024] In a specific implementation, the above intermediate value may be a fixed value determined according to an actual network scenario, or a dynamic value that changes with the network status.
[0025] It can be seen that in the above implementation, after the network device obtains the intermediate value by simply looking up the corresponding relationship twice, it performs a very simple operation based on the intermediate value (such as the multiplication mentioned above, and in the specific implementation, it can also be addition or subtraction, etc.) to obtain the value for adjusting the network parameter, and also avoids complex operations, thereby reducing the complexity of the network device in obtaining the adjustment value of the network parameter, thereby improving the parameter adjustment efficiency, congestion control efficiency and forwarding efficiency of the network device.
[0026] In a possible implementation, the second network parameter is RWND, and the adjusting the second network parameter using the adjustment value includes: modifying the RWND value carried in the ACK message of the first data stream received by the network device to the adjustment value;
[0027] The method described in the first aspect or any implementation of the first aspect further includes:
[0028] An ACK message carrying the adjustment value is sent to the sender of the first data stream.
[0029] It can be seen that through this implementation method, network congestion control can be achieved in the scenario where the network parameter is RWND. For example, in the scenario where the ACK message of the data flow carries RWND, the current value of RWND carried by the ACK message can be adjusted to achieve congestion control.
[0030] In a possible implementation, the above-mentioned modification of the RWND value carried in the confirmation ACK message of the first data stream received by the network device to the adjustment value includes: when determining that the network is congested, modifying the RWND value carried in the confirmation ACK message of the first data stream received by the network device to the adjustment value.
[0031] Optionally, after obtaining the adjustment value, the network device may also modify the RWND value in the received ACK message of each first data stream to the adjustment value until a new adjustment value is obtained.
[0032] It can be seen that the former method can save network equipment expenses compared with the latter method.
[0033] In a possible implementation, the second network parameter is an ECN watermark, and the step of adjusting the second network parameter using the adjustment value includes: modifying the ECN watermark value of the first queue to the adjustment value, where the first queue is a queue used by the network device to transmit the first data stream.
[0034] It can be seen that through this implementation, network congestion control can be achieved in a scenario where the network parameter is the ECN waterline.
[0035] In a possible implementation manner, the second network parameter is a queue threshold, and the step of adjusting the second network parameter using the adjustment value includes:
[0036] The threshold value of the first queue is adjusted using the adjustment value. The first queue is a queue used by the network device to transmit the first data flow. The threshold value of the first queue is used for queue management of the first queue.
[0037] It can be seen that through this implementation, in a scenario where the network parameter is a queue threshold, queue management can be performed on network devices, thereby achieving congestion control.
[0038] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0039] By implementing the above implementation, since the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network, compared with the scenario in which the sending end of the second data stream is different from the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network, and compared with the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is different from the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network, and compared with the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is different from the transmission path of the first data stream in the network, the accuracy of network parameter adjustment and the accuracy of congestion control can be improved.
[0040] In a second aspect, a method for adjusting network parameters can be applied to a computing device, and the method includes the following steps: first, obtaining a first corresponding relationship, and then sending the first corresponding relationship to a network device, so that the network device adjusts a second network parameter according to the first corresponding relationship, wherein the first corresponding relationship indicates a correspondence between multiple values of a parameter set and multiple values of a first network parameter, the parameter set includes relevant parameters of a data stream transmitted by the network device, the first network parameter is a parameter for congestion control of a network to which the network device belongs, or the first network parameter is a parameter for queue management of the network device, the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
[0041] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter used to perform congestion control on the network to which the network device belongs, and the second network parameter is a parameter used to perform queue management on the network device, or the first network parameter is a parameter used to perform queue management on the network device, and the second network parameter is a parameter used to perform congestion control on the network to which the network device belongs.
[0042] In a possible implementation manner, the obtaining of the first corresponding relationship includes:
[0043] Acquire multiple sample values of the parameter set, where the multiple sample values are sampled when the network device historically transmits the second data stream;
[0044] Acquire a plurality of fuzzy inference rules, wherein the plurality of fuzzy inference rules indicate a correspondence between a plurality of levels of the parameter set and a plurality of levels of the first network parameter;
[0045] A first corresponding relationship is obtained according to a plurality of sample values and a plurality of fuzzy inference rules.
[0046] In a possible implementation, the first corresponding relationship is obtained according to the multiple sample values and the multiple fuzzy inference rules, including:
[0047] Discretize multiple sample values to obtain multiple discrete values;
[0048] Fuzzifying each discrete value among the multiple discrete values to obtain the membership degree of each discrete value in multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of the parameter set;
[0049] Performing fuzzy reasoning according to a plurality of fuzzy reasoning rules and the membership of each discrete value in a plurality of first fuzzy sets, obtaining the membership of the fuzzy reasoning result corresponding to each discrete value in a plurality of second fuzzy sets, wherein the plurality of second fuzzy sets are fuzzy sets corresponding to a plurality of levels of the first network parameter;
[0050] Defuzzifying the fuzzy reasoning result corresponding to each discrete value according to the membership degree of the fuzzy reasoning result corresponding to each discrete value in multiple second fuzzy sets, so as to obtain the accurate reasoning result corresponding to each discrete value;
[0051] Taking each discrete value as the first value of the parameter set, and taking the precise inference result as the first value of the first network parameter;
[0052] The correspondence between the first value of the parameter set and the first value of the first network parameter is recorded in the first correspondence.
[0053] In a possible implementation, the above-mentioned related parameters include network performance parameters when the network device transmits the data stream and / or parameters of the queue used by the network device to transmit the data stream.
[0054] In a possible implementation manner, the network performance parameter includes at least one of the following: RTT, packet loss rate, or jitter.
[0055] In a possible implementation manner, the second network parameter is RWND, or the second network parameter is ECN waterline, or the second network parameter is queue threshold.
[0056] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0057] In a possible implementation, the computing device is a network controller.
[0058] For the relevant beneficial effects and descriptions of the communication method provided by the second aspect and any implementation method of the second aspect, please refer to the relevant beneficial effects and descriptions of the aforementioned first aspect and any implementation method of the first aspect, and will not be repeated here.
[0059] In a third aspect, a network device is provided, the network device comprising: an acquisition unit, a query unit and an adjustment unit;
[0060] The acquiring unit is used to acquire a first corresponding relationship, where the first corresponding relationship indicates a corresponding relationship between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by the network device, and the first network parameter is a parameter used to perform congestion control on a network to which the network device belongs, or the first network parameter is a parameter used to perform queue management on the network device;
[0061] The acquisition unit is further used to acquire the current value of the parameter set according to the first data stream currently transmitted by the network device;
[0062] The query unit is used to query the first corresponding relationship according to the current value to obtain a first target value corresponding to the current value among multiple values of the first network parameter;
[0063] The adjustment unit is used to adjust the second network parameter according to the first target value, and the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
[0064] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter used to perform congestion control on the network to which the network device belongs, and the second network parameter is a parameter used to perform queue management on the network device, or the first network parameter is a parameter used to perform queue management on the network device, and the second network parameter is a parameter used to perform congestion control on the network to which the network device belongs.
[0065] In one possible implementation, the acquisition unit is specifically used to: acquire multiple sample values of a parameter set, the multiple sample values are sampled when the network device historically transmits a second data stream; acquire multiple fuzzy inference rules, the multiple fuzzy inference rules indicate the correspondence between multiple levels of the parameter set and multiple levels of the first network parameter; acquire a first correspondence based on the multiple sample values and the multiple fuzzy inference rules.
[0066] In a possible implementation, the acquisition unit is specifically used to: discretize multiple sample values to obtain multiple discrete values; fuzzify each discrete value in the multiple discrete values to obtain the membership of each discrete value in multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of a parameter set; perform fuzzy reasoning according to multiple fuzzy inference rules and the membership of each discrete value in the multiple first fuzzy sets to obtain the membership of the fuzzy inference result corresponding to each discrete value in multiple second fuzzy sets, where the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of a first network parameter; defuzzify the fuzzy inference result corresponding to each discrete value according to the membership of the fuzzy inference result corresponding to each discrete value in the multiple second fuzzy sets to obtain the precise inference result corresponding to each discrete value; use each discrete value as the first value of the parameter set, and use the precise inference result as the first value of the first network parameter; and record the correspondence between the first value of the parameter set and the first value of the first network parameter in a first corresponding relationship.
[0067] In a possible implementation, the relevant parameters include network performance parameters when the network device transmits the data stream and / or parameters of a queue used by the network device to transmit the data stream.
[0068] In a possible implementation manner, the network performance parameter includes at least one of the following: RTT, packet loss rate, or jitter.
[0069] In a possible implementation, when the second network parameter and the first network parameter are the same parameter, the adjustment unit is specifically used to adjust the second network parameter according to the first target value in the following manner: using the first target value as the adjustment value of the second network parameter; and adjusting the second network parameter using the adjustment value.
[0070] In a possible implementation, when the first network parameter is a parameter for performing congestion control on a network to which a network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or when the first network parameter is a parameter for performing queue management on a network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, the adjustment unit is specifically used to: query a second corresponding relationship according to the first target value to obtain a second target value corresponding to the first target value from multiple values of the second network parameter, the second corresponding relationship indicating a corresponding relationship between multiple values of the first network parameter and multiple values of the second network parameter; use the second target value as an adjustment value of the second network parameter; and adjust the second network parameter using the adjustment value.
[0071] In one possible implementation, when the first network parameter is a parameter for performing congestion control on a network to which a network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or when the first network parameter is a parameter for performing queue management on a network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, the adjustment unit is specifically used to: query a third corresponding relationship according to the first target value to obtain a target intermediate value corresponding to the first target value among multiple intermediate values, the third corresponding relationship indicating a corresponding relationship between multiple values of the first network parameter and multiple intermediate values; use the product of the first target value and the target intermediate value as an adjustment value of the second network parameter; and adjust the second network parameter using the adjustment value.
[0072] In one possible implementation, the second network parameter is RWND, and the adjustment unit is used to modify the RWND value carried in the ACK message of the first data stream received by the network device to the adjustment value. The above-mentioned network device also includes a sending unit, which is used to send an ACK message carrying the adjustment value to the sending end of the first data stream.
[0073] In a possible implementation manner, the adjustment unit is configured to modify the RWND value carried in the ACK message of the first data flow received by the network device to the adjustment value when determining that the network is congested.
[0074] In a possible implementation, the second network parameter is an ECN watermark, and the adjustment unit is used to modify the ECN watermark value of the first queue to an adjustment value, where the first queue is a queue used by the network device to transmit the first data flow.
[0075] In one possible implementation, the second network parameter is a queue threshold, and the adjustment unit is used to use the adjustment value to adjust the threshold value of the first queue, the first queue is a queue used by the network device to transmit the first data stream, and the threshold value of the first queue is used for queue management of the first queue.
[0076] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0077] For the relevant beneficial effects and descriptions of the network device provided by the third aspect and any implementation method of the third aspect, please refer to the relevant beneficial effects and descriptions of the aforementioned first aspect and any implementation method of the first aspect, and will not be repeated here.
[0078] In a fourth aspect, a computing device is provided, the computing device comprising: an acquiring unit and a sending unit;
[0079] The acquiring unit is used to acquire a first corresponding relationship, where the first corresponding relationship indicates a corresponding relationship between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by the network device, and the first network parameter is a parameter used to perform congestion control on a network to which the network device belongs, or the first network parameter is a parameter used to perform queue management on the network device;
[0080] The sending unit is used to send the first corresponding relationship to the network device, so that the network device adjusts the second network parameter according to the first corresponding relationship, and the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
[0081] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter used to perform congestion control on the network to which the network device belongs, and the second network parameter is a parameter used to perform queue management on the network device, or the first network parameter is a parameter used to perform queue management on the network device, and the second network parameter is a parameter used to perform congestion control on the network to which the network device belongs.
[0082] In one possible implementation, the acquisition unit is specifically used to: acquire multiple sample values of a parameter set, the multiple sample values are sampled when the network device historically transmits a second data stream; acquire multiple fuzzy inference rules, the multiple fuzzy inference rules indicate the correspondence between multiple levels of the parameter set and multiple levels of the first network parameter; acquire a first correspondence based on the multiple sample values and the multiple fuzzy inference rules.
[0083] In a possible implementation, the acquisition unit is specifically used to: discretize multiple sample values to obtain multiple discrete values; fuzzify each discrete value in the multiple discrete values to obtain the membership of each discrete value in multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of a parameter set; perform fuzzy reasoning according to multiple fuzzy inference rules and the membership of each discrete value in the multiple first fuzzy sets to obtain the membership of the fuzzy inference result corresponding to each discrete value in multiple second fuzzy sets, where the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of a first network parameter; defuzzify the fuzzy inference result corresponding to each discrete value according to the membership of the fuzzy inference result corresponding to each discrete value in the multiple second fuzzy sets to obtain the precise inference result corresponding to each discrete value; use each discrete value as the first value of the parameter set, and use the precise inference result as the first value of the first network parameter; and record the correspondence between the first value of the parameter set and the first value of the first network parameter in a first corresponding relationship.
[0084] In a possible implementation, the relevant parameters include network performance parameters when the network device transmits the data stream and / or parameters of a queue used by the network device to transmit the data stream.
[0085] In a possible implementation manner, the network performance parameter includes at least one of the following: RTT, packet loss rate, or jitter.
[0086] In a possible implementation manner, the second network parameter is RWND, or the second network parameter is ECN waterline, or the second network parameter is queue threshold.
[0087] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0088] In one possible implementation, the computing device is a network controller.
[0089] For the relevant beneficial effects and descriptions of the computing device provided in the fourth aspect and any implementation method of the fourth aspect, please refer to the relevant beneficial effects and descriptions of the aforementioned second aspect and any implementation method of the second aspect, and will not be repeated here.
[0090] In a fifth aspect, a communication device is provided, comprising a processor and a memory. The communication device may be the network device described in the third aspect, or the computing device described in the fourth aspect. Optionally, a transceiver is further included, the memory is used to store a computer program or instruction, the processor is used to call and run the computer program or instruction from the memory, and when the processor executes the computer program or instruction in the memory, the communication device executes any one of the first to second aspects, and any implementation of any one of the aspects.
[0091] Optionally, there are one or more processors and one or more memories.
[0092] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0093] Optionally, the transceiver may include a transmitter (transmitter) and a receiver (receiver).
[0094] In a sixth aspect, a communication device is provided, comprising a processor. The communication device may be the network device described in the third aspect, or the computing device described in the fourth aspect. The processor is coupled to a memory, and may be used to execute any aspect of the first aspect to the second aspect, and any implementation of any aspect. Optionally, the communication device further comprises a memory. Optionally, the communication device further comprises a communication interface, and the processor is coupled to the communication interface.
[0095] In a possible implementation, the communication interface may be a transceiver, or an input / output interface. Alternatively, the transceiver may be a transceiver circuit. Alternatively, the input / output interface may be an input / output circuit.
[0096] In another possible implementation, when the communication device is a chip or chip system of a network device, or a chip or chip system of a computing device, the communication interface may be an input / output interface, an interface circuit, an output circuit, an input circuit, a pin or a related circuit on the chip or chip system, etc. The processor may also be embodied as a processing circuit or a logic circuit.
[0097] In a seventh aspect, a communication system is provided, which includes the network device described in the third aspect and the computing device described in the fourth aspect.
[0098] In an eighth aspect, a computer program product is provided, which includes: a computer program (also referred to as code, or instruction), which, when executed, enables a computer to execute any one of the first to second aspects described above, and any one of the implementation methods of any one of the aspects.
[0099] In the ninth aspect, a computer-readable storage medium is provided, which stores a computer program (also referred to as code, or instruction). When the computer-readable storage medium is run on a computer, the computer executes any one of the first to second aspects above, and any implementation method of any one of the aspects.
[0100] In the tenth aspect, a chip system is provided, which may include a processor. The processor is coupled to a memory and can be used to execute any aspect of the first to second aspects above, and any implementation of any aspect. Optionally, the chip system also includes a memory. The memory is used to store a computer program (also referred to as code, or instruction). The processor is used to call and run the computer program from the memory, so that the device equipped with the chip system executes any aspect of the first to second aspects, and any implementation of any aspect.
[0101] In an eleventh aspect, a communication device is provided, comprising: an interface circuit and a processing circuit. The interface circuit may include an input circuit and an output circuit. The processing circuit is used to receive a signal through the input circuit and transmit a signal through the output circuit, so that any aspect of the first aspect to the second aspect, and any implementation of any aspect is implemented.
[0102] In the specific implementation process, the above-mentioned communication device can be a chip, the input circuit can be an input pin, the output circuit can be an output pin, and the processing circuit can be a transistor, a gate circuit, a trigger, and various logic circuits. The input signal received by the input circuit can be, for example, but not limited to, received and input by a receiver, and the signal output by the output circuit can be, for example, but not limited to, output to a transmitter and transmitted by the transmitter, and the input circuit and the output circuit can be the same circuit, which is used as an input circuit and an output circuit at different times. This application does not limit the specific implementation methods of the processor and various circuits.
[0103] In another implementation, the communication device may be a part of the network device described in the third aspect or the computing device described in the fourth aspect, such as an integrated circuit product such as a system chip or a communication chip. The interface circuit may be an input / output interface, an interface circuit, an output circuit, an input circuit, a pin or a related circuit on the chip or the chip system. The processing circuit may be a logic circuit on the chip. BRIEF DESCRIPTION OF THE DRAWINGS
[0104] Figure 1 It is a structural diagram of a network system provided by an embodiment of the present application;
[0105] Figure 2 It is a flowchart of a method for adjusting network parameters provided in an embodiment of the present application;
[0106] Figure 3 is a schematic diagram of a process for obtaining a first corresponding relationship provided in an embodiment of the present application;
[0107] Figure 4 is another schematic diagram of a process for obtaining a first corresponding relationship provided in an embodiment of the present application;
[0108] Figure 5 is a schematic diagram of a first fuzzy set and a membership function of the first fuzzy set provided in an embodiment of the present application;
[0109] Figure 6 It is a flow chart of obtaining multiple fuzzy inference rules by using a fuzzy c-means clustering algorithm provided in an embodiment of the present application;
[0110] Figure 7 It is a structural diagram of a network device provided in an embodiment of the present application;
[0111] Figure 8 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0112] Fig. 9 is a structural diagram of another communication device provided in an embodiment of the present application;
[0113] Fig.10 It is a structural diagram of another communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0114] The technical solution provided by this application will be described below in conjunction with the accompanying drawings.
[0115] In order to make the technical solution provided by this application clearer, the relevant terms are first explained.
[0116] (1) Fuzzy set: It is a set used to express fuzzy concepts, also known as fuzzy set or fuzzy subset. A fuzzy set can be denoted by A. The mapping function μA() is called the membership function of the fuzzy set A. For each x∈U (U is a given domain), μA(x) is called the membership function of the element x to the fuzzy set A. The closer the membership function μA(x) is to 1, the higher the degree to which x belongs to the fuzzy set A. The closer μA(x) is to 0, the lower the degree to which x belongs to the fuzzy set A. The membership function μA() with a value in the interval (0, 1) is used to represent the degree to which x belongs to the fuzzy set A.
[0117] (2) Fuzzy c-means clustering (FCM) algorithm: By calculating the membership matrix of the samples, the similarity between objects classified into the same cluster is maximized, while the similarity between different clusters is minimized.
[0118] (3) Discretization: Mapping a finite number of individuals in an infinite space into a finite space to improve the algorithm’s spatiotemporal efficiency.
[0119] (4) Queue management (QM): TCP / IP congestion control mainly includes two aspects: one is the congestion control at the sending end, which is called source congestion control, and the other is the congestion control at the intermediate node (i.e., network equipment), which is called queue management. Queue management mainly manages the queue length by dropping packets when network congestion occurs. The current queue management mechanism can be divided into two categories: passive queue management (PQM) and active queue management (AQM). PQM sets a maximum value (in packets) for each queue, and then accepts packets into the queue until the queue length reaches the maximum value. The next arriving packets will be rejected from entering the queue until the queue length drops. AQM means that intermediate nodes should not wait until the queue length has reached the maximum value before they are forced to discard the packets that arrive later. Instead, they should actively discard the arriving packets when the queue length reaches a certain alarming value (i.e., the maximum threshold value) (i.e., when the network has certain signs of congestion), thereby effectively managing the queue length to support end-to-end congestion control.
[0120] The following introduces the application scenarios involved in this application.
[0121] This application relates to network systems that require congestion control, such as data center networks (DCNs), campus networks, metropolitan area networks, wide area networks, and park networks. Figure 1 , Figure 1 is a schematic diagram of a network system provided in an embodiment of the present application, such as Figure 1 As shown, the network system includes a sending end, an access layer, a convergence layer, a core layer and a receiving end.
[0122] The sending end or receiving end can be a personal computer (PC), a tablet computer, a mobile notebook, a smart phone, a handheld processing device, a virtual reality device, a wearable device, a vehicle-mounted device, an integrated handheld device, a server, or a server cluster consisting of several servers, or a cloud computing service center, etc.
[0123] The access layer is the part of the network that is directly connected to or accessed by users. Its purpose is to allow the sender (usually a user terminal) or the receiver to connect to the network.
[0124] The core layer is the high-speed switching backbone of the network and plays a vital role in the connectivity of the entire network. Since the main purpose of the core layer is to provide an optimized and reliable backbone transmission structure through high-speed forwarding communications, the network equipment in the core layer has high reliability and high throughput. Usually, the core layer uses network equipment with higher bandwidth.
[0125] The aggregation layer is located between the access layer and the core layer. It is responsible for processing all communications from the access layer and providing a link connecting the access layer and the core layer.
[0126] exist Figure 1 In the network, the network equipment located in the core layer can be a provider device (P device for short), which has a strong switching capability and can be used for high-speed switching of data streams; the network equipment located in the aggregation layer can be a provider edge (PE) device. The network equipment located in the access layer can be a customer edge (CE) device, which is used to provide access services for the sender or receiver. The above network equipment includes but is not limited to switches, routers, etc.
[0127] exist Figure 1 In the network shown, communication between a sender and a receiver can be achieved through forwarding operations between multiple network devices.
[0128] It should be understood that Figure 1 The number of the transmitting end, the network device and the receiving end is only for illustration and is not intended to limit the network system provided in the embodiment of the present application. Figure 1 The network system shown may also include a network controller ( Figure 1 (not shown) for unified management of network devices in the network.
[0129] In practical applications, the above-mentioned network usually experiences congestion, and congestion control algorithms need to be used for congestion control. Commonly used congestion control algorithms usually perform complex operations (such as division, square root, etc.) based on the RTT and throughput of the data flow to obtain adjustment values of network parameters (for example, network congestion control parameters (such as RWND, ECN waterline), queue management parameters (such as queue threshold)), and then adjust the current value of the network parameter according to the obtained adjustment value to achieve congestion control. These complex operations are difficult to implement on network devices. Even if these complex operations are implemented on network devices, they will affect the efficiency of parameter adjustment, and thus affect the efficiency of congestion control, or the complex operations occupy too many processing resources of the network device, affecting the forwarding efficiency of the network device.
[0130] In view of the above problems, the present invention provides a method for adjusting network parameters, which can be applied to Figure 1 The network system shown is specifically applied to Figure 1 The network devices shown (such as core layer network devices, aggregation layer network devices, access layer network devices) enable the network devices to obtain the adjustment values of network parameters by simply looking up corresponding relationships, or enable the network devices to obtain intermediate values by simply looking up corresponding relationships, and then perform very simple operations based on the intermediate values (such as multiplying by the intermediate values) to obtain the adjustment values of network parameters. This avoids complex operations and can reduce the complexity of the network devices in obtaining the adjustment values of network parameters, thereby improving the parameter adjustment efficiency, congestion control efficiency, and forwarding efficiency of network devices.
[0131] See also Figure 2 , Figure 2 is a flow chart of a method for adjusting network parameters provided in an embodiment of the present application, such as Figure 2 As shown, the method comprises the following steps:
[0132] S201: The network device obtains a first correspondence, where the first correspondence indicates a correspondence between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by the network device, and the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, or the first network parameter is a parameter for performing queue management on the network device.
[0133] S202: The network device collects and obtains the current value of the parameter set according to the first data stream currently being transmitted.
[0134] S203: The network device queries the first corresponding relationship according to the current value of the parameter set, and obtains a first target value corresponding to the current value of the parameter set from among multiple values of the first network parameter.
[0135] S204: The network device adjusts a second network parameter according to the first target value, where the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter. For example, when the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, the second network parameter is a parameter for performing queue management on the network device; and when the first network parameter is a parameter for performing queue management on the network device, the second network parameter is a parameter for performing congestion control on the network to which the network device belongs.
[0136] First, concepts such as data flow, parameter set, network parameters and first corresponding relationship involved in the embodiments of the present application are introduced.
[0137] The embodiments of the present application involve multiple data streams, such as a first data stream currently transmitted by a network device and a second data stream historically transmitted by the network device described below. These data streams may be video service data streams, voice service data streams, data service data streams, and the like. It can be understood that the first data stream currently transmitted by the network device and the second data stream historically transmitted by the network device both belong to data streams transmitted by the network device. Here, the first data stream may be one or more streams, and the second data stream may be one or more streams. The second data stream historically transmitted by the above-mentioned network device may be a data stream transmitted by the network device in the past period of time, such as the past week, the past month, or the past six months, etc., and the present application does not specifically limit this.
[0138] In a possible embodiment, the sending end of the first data stream is the same as the sending end of the second data stream, the receiving end of the first data stream is the same as the receiving end of the second data stream, and the transmission path of the first data stream in the network is the same as the transmission path of the second data stream in the network. The transmission path of the first data stream in the network is the same as the transmission path of the second data stream in the network, which can be understood as the queue used by the network device when transmitting the first data stream and the queue used by the network device when transmitting the second data stream are the same queue. For ease of description, in the following embodiments, the queue used by the network device to transmit the first data stream and the queue used by the network device to transmit the second data stream are both described as the first queue.
[0139] The above parameter set includes relevant parameters of the data stream transmitted by the network device, which can be network performance parameters of the data stream, such as RTT, packet loss rate and jitter, and can also be queue parameters, such as the depth Q of the first queue. Len , or it can be a congestion control parameter of the data flow, for example, RWND carried by an acknowledgement (ACK) message. This application does not specifically limit the relevant parameters of the data flow. The parameter set may include one or more of the above-mentioned relevant parameters, such as only RTT or only packet loss rate, such as both RTT and packet loss rate. This application does not specifically limit the parameter set.
[0140] In an embodiment of the present application, multiple sample values of a parameter set, a current value of the parameter set, and multiple values of the parameter set are involved, wherein the multiple sample values of the parameter set may be obtained by multiple samplings when the network device historically transmits the second data stream, the current value of the parameter set is obtained by sampling when the network device currently transmits the first data stream, and the multiple values of the parameter set may be multiple sample values of the above-mentioned parameter set, or may be multiple discrete values obtained by discretizing the multiple sample values of the parameter set.
[0141] Furthermore, if the second data stream consists of multiple streams, then the sample value of the parameter set sampled by the network device may be a statistical value of the value of the parameter set corresponding to each of the multiple streams in the second data stream (such as the RTT average value or the sum of the queue depths); if the first data stream consists of multiple streams, then the current value of the parameter set collected by the network device may be a statistical value of the value of the parameter set corresponding to each of the multiple streams in the first data stream (such as the RTT average value or the sum of the queue depths).
[0142] For example, taking the case where the network device currently transmits the first data stream A, the first data stream A includes data stream A1, data stream A2 and data stream A3, and the relevant parameter in the parameter set is RTT, then the current value of the parameter set collected by the network device based on the first data stream A can be the average of the current RTT value of data stream A1, the current RTT value of data stream A2 and the current RTT value of data stream A3.
[0143] The network device currently transmits the first data stream A, which includes data stream A1, data stream A2 and data stream A3, and the relevant parameter in the parameter set is the depth Q of the first queue. Len For example, the current value of the parameter set collected by the network device according to the first data stream A may be the sum of the depths occupied by the data streams A1, A2, and A3 in the first queue.
[0144] In the embodiment of the present application, the first network parameter and the second network parameter are involved. These network parameters can be parameters used to perform congestion control on the network to which the network device belongs, such as RWND, ECN waterline, etc., or can be parameters used to perform queue management on the network device, such as queue threshold Q T wait.
[0145] The multiple values of the first network parameter, when the first network parameter is a parameter for performing congestion control on the network to which the network device belongs (such as RWND), and the second network parameter is the same parameter as the first network parameter, the multiple values can be used to adjust the current value of the second network parameter (such as RWND) to achieve congestion control; when the first network parameter is a parameter for performing congestion control on the network to which the network device belongs (such as RWND), and the second network parameter is a parameter for performing queue management on the network device (such as Q T ), the multiple values can be used to adjust the second network parameters (such as Q T ) to achieve queue management; the first network parameter is a parameter used to manage the queue of the network device (such as Q T), and when the second network parameter is a parameter (such as RWND) for performing congestion control on the network to which the network device belongs, the multiple values can be used to adjust the current value of the second network parameter (such as RWND) to achieve congestion control.
[0146] The first correspondence relationship indicates the correspondence between multiple values of the parameter set and multiple values of the first network parameter. The storage method of the first correspondence relationship in the network device can be in a table form, or in other forms such as an array, which is not specifically limited in this application. For ease of description, in the following embodiments, the corresponding relationship (such as the first corresponding relationship and the second corresponding relationship and the third corresponding relationship described below) is stored in a table form in the network device as an example for description.
[0147] See Table 1 and Table 2, which are two first corresponding relationships exemplarily shown in this application:
[0148] In Table 1, taking the relevant parameter in the parameter set as RTT and the first network parameter as RWND as an example, it can be seen that the first correspondence relationship includes multiple sub-correspondence relationships: the value V of RTT RTT.1 Corresponding to the value V of RWND RWND.1 、RTT value V RTT.2 Corresponding to the value V of RWND RWND.2 、RTT value V RTT.3 Corresponding to the value V of RWND RWND.3 ….
[0149] Table 1 The first correspondence
[0150] RTT value RWND Value <![CDATA[V RTT.1 ]]> <![CDATA[V RWND.1 ]]> <![CDATA[V RTT.2 ]]> <![CDATA[V RWND.2 ]]> <![CDATA[V RTT.3 ]]> <![CDATA[V RWND.3 ]]> … …
[0151] In Table 2, the relevant parameters in the parameter set are RTT and the depth Q of the first queue. Len , the first network parameter is Q T As an example, it can be seen that the first correspondence includes multiple sub-correspondences: (RTT and the depth Q of the first queue Len ) value (V RTT.1 , V QLen.1 ) corresponds to Q T The value of V QT.1 , (RTT and the depth of the first queue Q Len ) value (V RTT.2 , V QLen.2 ) corresponds to Q T The value of V QT.2 , (RTT and the depth of the first queue Q Len ) value (V RTT.3 , V QLen.3 ) corresponds to Q T The value of VQT.3 ….
[0152] Table 2 The first correspondence
[0153] <![CDATA[(RTT and the depth Q of the first queue Len ) value]]> <![CDATA[Q T The value of<!-- 13 --> ]]> <![CDATA[(V RTT.1 ,In QLen.1 )]]> <![CDATA[V QT.1 ]]> <![CDATA[(V RTT.2 ,In QLen.2 )]]> <![CDATA[V QT.2 ]]> <![CDATA[(V RTT.3 ,In QLen.3 )]]> <![CDATA[V QT.3 ]]> … …
[0154] When the second network parameter and the first network parameter are the same parameter, the network device may directly use the first target value as the adjustment value of the second network parameter.
[0155] For example, the relevant parameter in the parameter set is RTT, the first network parameter is RWND, and the first corresponding relationship is the corresponding relationship shown in Table 1. Assume that the first target value obtained by the network device query is V RWND.1 , then the network device can directly connect V RWND.1 As the adjustment value of RWND.
[0156] Then take the relevant parameters in the parameter set as RTT and the depth Q of the first queue Len , the first network parameter is Q T , and the first corresponding relationship is the corresponding relationship shown in Table 2 as an example, assuming that the first target value obtained by the network device query is V QT.2 , then the network device can directly connect V QT.2 As Q T adjustment value.
[0157] When the second network parameter and the first network parameter are different parameters, the network device can query the second corresponding relationship based on the first target value, obtain a second target value corresponding to the first target value from multiple values of the second network parameter, and then use the second target value as the adjustment value of the second network parameter, wherein the second corresponding relationship indicates the corresponding relationship between multiple values of the first network parameter and multiple values of the second network parameter.
[0158] See Table 3, which is a second corresponding relationship exemplarily shown in the present application. In Table 3, the first network parameter is Q T , taking the second network parameter RWND as an example, it can be seen that the second correspondence includes multiple sub-correspondences: Q T The value of V QT.1 Corresponding to the value V of RWND RWND.1 , Q T The value of V QT.2 Corresponding to the value V of RWND RWND.2 , Q T The value of V QT.3 Corresponding to the value V of RWND RWND.3 ….
[0159] Table 3 Second correspondence
[0160] <![CDATA[Q T The value of]]> RWND Value <![CDATA[V QT.1 ]]> <![CDATA[V RWND.1 ]]> <![CDATA[V QT.2 ]]> <![CDATA[V RWND.2 ]]> <![CDATA[V QT.3 ]]> <![CDATA[V RWND.3 ]]> … …
[0161] The first target value obtained by querying the first corresponding relationship shown in Table 2 by the network device is V QT.2 , and the second corresponding relationship is the corresponding relationship shown in Table 3 as an example, then the network device is based on the first target value V QT.2 The second target value obtained by querying the second corresponding relationship is V RWND.2 , then the network device can directly connect V RWND.2 As the adjustment value of RWND.
[0162] Optionally, when the second network parameter and the first network parameter are different parameters, the network device can also query the third corresponding relationship according to the first target value, obtain the target intermediate value corresponding to the first target value among the multiple intermediate values, and then perform a simple operation (such as multiplication, addition, subtraction, etc.) on the first target value and the target intermediate value, and the operation result is the adjustment value of the second network parameter. Among them, the third corresponding relationship indicates the corresponding relationship between multiple values of the first network parameter and multiple intermediate values, and the multiple intermediate values can be multiple fixed values, which can be determined according to the actual network scenario.
[0163] See Table 4, which is an exemplary third corresponding relationship of the present application. In Table 4, the first network parameter is Q T As an example, it can be seen that the third correspondence includes multiple sub-correspondences: Q T The value of V QT.1 Corresponding to the intermediate values γ1, Q T The value of V QT.2 Corresponding to the intermediate values γ2, Q T The value of V QT.3 Corresponding to the intermediate value γ3….
[0164] Table 4 The third correspondence
[0165] <![CDATA[Q T The value of]]> Median <![CDATA[V QT.1 ]]> γ1 <![CDATA[V QT.2 ]]> γ2 <![CDATA[V QT.3 ]]> γ3 … …
[0166] The first target value obtained by querying the first corresponding relationship shown in Table 2 by the network device is V QT.2 , the third corresponding relationship is the corresponding relationship shown in Table 4, and the above simple operation is multiplication as an example, then the network device is based on the first target value V QT.2 The target intermediate value obtained by querying the third corresponding relationship is γ2, so the network device can directly convert V QT.2 The product of the target intermediate value γ2 is used as the adjustment value of RWND.
[0167] Optionally, the above-mentioned multiple intermediate values may also be values that need to be calculated based on the first target value. T, the second network parameter is RWND as an example, then the i-th intermediate value can be calculated based on V QT.i and other parameters (such as the dequeue rate of the first queue, etc.) are calculated. Optionally, the above-mentioned multiple intermediate values may also be dynamic values that change with the network status.
[0168] From the above embodiments, it can be known that the second network parameter can be RWND, ECN waterline or Q T Etc., taking these three cases as examples, the process of the network device adjusting the second network parameter using the adjustment value after obtaining the adjustment value of the second network parameter is described below.
[0169] (1) The second network parameter is RWND:
[0170] After obtaining the adjustment value of RWND, the network device may send the adjustment value to the sending end of the first data stream, so that the sending end adjusts the sending rate of the first data stream according to the adjustment value.
[0171] In a possible embodiment, after receiving an ACK message for the first data stream, the network device may modify the RWND value carried in the ACK message to an adjustment value, and then send the ACK message carrying the adjustment value to the sender of the first data stream, thereby sending the adjustment value to the sender of the first data stream.
[0172] Furthermore, after obtaining the adjustment value, the network device can modify the RWND value in the ACK message of each received first data stream to the adjustment value until a new adjustment value is obtained. Optionally, the network device can also modify the RWND value in the ACK message of each received first data stream to the adjustment value when determining that the network is congested, and not modify the RWND value carried in the ACK message of the received first data stream when determining that the network is not congested. It can be seen that the latter method can save the overhead of the network device compared to the former method.
[0173] In this application, the network device may refer to the following method 1 or method 2 to determine whether the network is congested:
[0174] Method 1. The network device periodically (such as every 15us / 20us) queries the depth of the first queue, and records the queried depth value of the first queue in the queue status table. When a certain number of depth value records of the first queue are added to the queue status table, it is determined whether the number of times the depth value of the first queue in a certain number of records is higher than a preset proportion (such as 70% / 75%) of the total depth of the first queue is greater than a number threshold. When it is determined that the number is greater than the number threshold, it is determined that the network is congested; otherwise, it is determined that the network is not congested.
[0175] Method 2. The sender periodically sends a test message to the receiver (for example, every T (T is 10ms / 20ms, etc.)). The receiver constructs a response message based on the timestamps of two consecutive test messages. The response message carries the time difference △t between the two test messages received by the receiver. The receiver sends the response message to the sender. After receiving the response message, the sender calculates the difference △tT between △t and T. After that, the sender determines whether the difference △tT is greater than a threshold value α. If △tT is greater than α, the network is determined to be congested. Otherwise, the network is determined to be not congested. When the sender determines that the network is congested, it sends a notification message to the network device to notify the network of the congestion. α can be determined based on the actual scenario.
[0176] It should be understood that the above-mentioned method 1 and method 2 are merely exemplary implementation methods for a network device to determine whether a network is congested and should not be regarded as specific limitations.
[0177] (2) The second network parameter is the ECN waterline:
[0178] After obtaining the adjusted value of the ECN watermark, the network device may modify the ECN watermark value of the first queue to the adjusted value, and the network device may subsequently set an ECN mark for the first data flow in the first queue according to the adjusted value, thereby achieving congestion control.
[0179] (3) The second network parameter is Q T :
[0180] Network equipment is getting Q T After adjusting the value of Q T The adjustment value adjusts the threshold value of the first queue. For example, in Q T When the adjustment value is 3, the threshold of the first queue is increased by 3. T When the adjustment value is -1, the threshold of the first queue is reduced by 1. Here, the threshold value of the first queue is used for queue management of the first queue, such as PQM / AQM.
[0181] It should be noted that the above embodiment is described by taking the adjustment value obtained by the network device as the value directly used to adjust the second network parameter as an example. In a specific implementation, the adjustment value obtained by the network device may also have a conversion relationship with the value directly used to adjust the second network parameter. After obtaining the adjustment value, the network device can convert the adjustment value according to the conversion relationship, such as inverse discretizing the adjustment value to obtain a value that can be directly used to adjust the second network parameter. For the sake of brevity of the specification, it will not be elaborated.
[0182] It can be seen that the network device can obtain the adjustment value of the network parameter by simply looking up the corresponding relationship based on the current value of the parameter set collected by the currently transmitted data stream, or obtain the intermediate value by simply looking up the corresponding relationship and then performing a very simple operation (such as multiplying by the intermediate value) to obtain the adjustment value of the network parameter, thereby avoiding complex operations and reducing the complexity of the network device in obtaining the adjustment value of the network parameter.
[0183] The following describes the implementation method of the network device acquiring the first corresponding relationship in S201.
[0184] Possible implementation method 1: Network devices can refer to Figure 3 Steps S301 - S303 shown acquire a first corresponding relationship.
[0185] Possible implementation method 2: computing device (such as network controller or server, etc.) Figure 3 After the first corresponding relationship is obtained in steps S301-S303, the first corresponding relationship is sent to the network device.
[0186] S301: Acquire multiple sample values of a parameter set, where the multiple sample values are obtained by sampling when the network device historically transmits a second data stream.
[0187] S302: Acquire a plurality of fuzzy inference rules, where the plurality of fuzzy inference rules indicate a correspondence between a plurality of levels of a parameter set and a plurality of levels of a first network parameter.
[0188] S303: Obtain a first corresponding relationship according to a plurality of sample values of a parameter set and a plurality of fuzzy inference rules.
[0189] First, a plurality of fuzzy inference rules involved in the embodiments of the present application are introduced.
[0190] As can be seen from the above, the parameter set may include different parameters, such as only RTT or only packet loss rate, such as both RTT and packet loss rate. The first network parameter may also be different parameters, such as RWND or ECN waterline. It can be understood that when the parameter set is different and / or the first network parameter is different, the multiple fuzzy inference rules are also different. Examples are given below.
[0191] First, taking the relevant parameter in the parameter set as RTT and the first network parameter as RWND as an example, the multiple fuzzy inference rules may be:
[0192] Rule 1. If the RTT is very low and the standard deviation of the RTT is small, then the RWND is set very large;
[0193] Rule 2. If the RTT is low and the standard deviation of the RTT is large, then the RWND is set larger;
[0194] Rule 3. If the RTT is medium and the standard deviation of the RTT is medium, then the RWND is set medium.
[0195] Rule 4. If the RTT is high and the standard deviation of the RTT is small, the RWND is set smaller.
[0196] Rule 5. If the RTT is very high and the standard deviation of the RTT is large, then the RWND is set very small.
[0197] Then use the relevant parameters in the parameter set as the depth Q of the first queue Len Taking the first network parameter as RWND as an example, the multiple fuzzy inference rules may be:
[0198] Rule 10. If Q Len Very low and Q Len If the standard deviation of is small, RWND is set very large;
[0199] Rule 20. If Q Len Low and Q Len If the standard deviation of is large, RWND is set larger;
[0200] Rule 30. If Q Len Medium and Q Len If the standard deviation of is medium, then RWND is set to medium.
[0201] Rule 40. If Q Len High and Q Len If the standard deviation is small, RWND is set smaller.
[0202] Rule 50. If Q Len Very high and Q Len If the standard deviation of is large, RWND is set very small.
[0203] Finally, the relevant parameters in the parameter set are RTT and the depth Q of the first queue Len And the first network parameter is Q T For example, multiple fuzzy inference rules can be:
[0204] Rule 100. If RTT is low and Q Len Low, then Q T Increase.
[0205] Rule 200. If RTT is low and Q Len High, then Q T Keep.
[0206] Rule 300. If RTT is high and Q Len Low, then Q T Keep.
[0207] Rule 400. If RTT is high and Q Len High, then Q T Reduce.
[0208] It should be understood that the above-mentioned multiple fuzzy reasoning rules are only used as examples. In specific implementations, multiple fuzzy reasoning rules can be determined according to actual scenarios, and this application does not make specific limitations on this.
[0209] In a specific implementation, the network device obtains multiple fuzzy inference rules in a manner including but not limited to expert experience or through a clustering algorithm such as the FCM algorithm. The specific process of obtaining multiple fuzzy inference rules through the FCM algorithm can be found in Figure 6 Related description.
[0210] In S303, the network device can refer to Figure 4 Steps S401-S406 are shown to obtain a first corresponding relationship based on multiple sample values of a parameter set and multiple fuzzy inference rules.
[0211] S401: discretize multiple sample values of a parameter set to obtain multiple discrete values.
[0212] S402: Fuzzifying each discrete value in the plurality of discrete values to obtain a membership degree of each discrete value in a plurality of first fuzzy sets, where the plurality of first fuzzy sets are fuzzy sets corresponding to a plurality of levels of a parameter set in a plurality of fuzzy inference rules.
[0213] S403: Perform fuzzy reasoning according to multiple fuzzy reasoning rules and the membership of each discrete value in multiple first fuzzy sets to obtain the membership of the fuzzy reasoning result corresponding to each discrete value in multiple second fuzzy sets, where the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of the first network parameters in the multiple fuzzy reasoning rules.
[0214] S404: Defuzzifying the fuzzy reasoning result corresponding to each discrete value according to the degree of membership of the fuzzy reasoning result corresponding to each discrete value in the plurality of second fuzzy sets, to obtain an accurate reasoning result corresponding to each discrete value.
[0215] S405: Taking each discrete value as a first value of the parameter set, and taking the precise inference result corresponding to each discrete value as a first value of the first network parameter.
[0216] S406: Record a correspondence between a first value of the parameter set and a first value of the first network parameter in a first correspondence.
[0217] For ease of understanding Figure 4 The embodiment shown in the figure is described below in conjunction with a specific example. Figure 4 Each step is described below.
[0218] In this example, the plurality of fuzzy inference rules are taken as rules 100 to 400 mentioned above.
[0219] In S401, since each of the multiple sample values of the parameter set includes an RTT value and a Q Len value, the RTT value and Q Len The values are discretized separately. For example, the RTT values in multiple sample values can be discretized into 0-(N-1), and the Q Len The value is discretized into 0-(M-1), where N and M are the discretization levels and can be determined according to the actual scenario.
[0220] Take the discretization of the RTT values in multiple sample values, and the RTT values in the multiple sample values belong to the range of 0-500ms as an example: 0-500ms can be divided into 5 equal-width intervals of 0-100ms, 100-200ms, 200-300ms, 300-400ms, and 400-500ms, and each interval is assigned a discrete value, such as the discrete value corresponding to the range of 0-100ms is 0, the discrete value corresponding to the range of 100-200ms is 1, the discrete value corresponding to the range of 200-300ms is 2, the discrete value corresponding to the range of 300-400ms is 3, and the discrete value corresponding to the range of 400-500ms is 4, thereby obtaining multiple discrete values of RTT 0-4.
[0221] For multiple sample values of Q Len The value is discretized to obtain Q Len The multiple discrete values are similar to the above process of discretizing the RTT values in the multiple sample values. For the sake of brevity of the specification, they will not be elaborated again.
[0222] In the following description, the Q Len The value is discretized to obtain Q Len The multiple discrete values are also 0-4 as an example.
[0223] Based on the above content, the multiple discrete values described in S401 include the multiple discrete values of RTT and Q Len Pairwise combinations of multiple discrete values: (0, 0), (0, 1), (0, 2), …, (4, 3), (4, 4).
[0224] The specific implementation process of S402 may be as follows:
[0225] The first step is to determine the first fuzzy set corresponding to each level of multiple levels of parameter sets in the fuzzy inference rule, and select a membership function for each first fuzzy set.
[0226] As can be seen from rules 100 to 400, the multiple levels of parameter sets include three levels of RTT: "low", "medium" and "high", and Q Len The first fuzzy set determined for the multiple levels of RTT in the parameter set is: a first fuzzy set 11 representing low RTT, a first fuzzy set 12 representing medium RTT, a first fuzzy set 13 representing high RTT, and a first fuzzy set 14 representing high RTT. Len The first fuzzy set determined by multiple levels is: Len The first low fuzzy set 21 represents Q Len The medium first fuzzy set 22 represents Q Len The first fuzzy set of high is 23.
[0227] The membership function that can be selected for each first fuzzy set includes but is not limited to Gaussian membership function, triangular membership function, trapezoidal membership function or generalized bell-shaped membership function, etc. In a specific implementation, the membership function of each first fuzzy set can be selected using an assignment method, a binary comparison sorting method, etc.
[0228] The second step is to calculate the membership degree of each discrete value in the multiple discrete value combinations in the multiple first fuzzy sets.
[0229] Specifically, the membership of each discrete value in each discrete value combination in the multiple first fuzzy sets corresponding to the parameters to which it belongs is calculated. Based on the above example, the membership of each discrete value in the discrete values 0-4 of RTT in each discrete value combination in the first fuzzy set 11, the first fuzzy set 12 and the first fuzzy set 13 can be calculated, and the membership of each discrete value in the discrete values 0-4 of RTT in each discrete value combination in the first fuzzy set 11, the first fuzzy set 12 and the first fuzzy set 13 can be calculated. Len The membership degree of each discrete value among the discrete values 0-4 in the first fuzzy set 21, the first fuzzy set 22 and the first fuzzy set 23.
[0230] by Figure 5 Take the first fuzzy set and the membership function of the first fuzzy set as an example to introduce. Figure 5 The area inside the trapezoidal line corresponding to "small" on the left is the first fuzzy set 11. Figure 5 The area inside the trapezoidal line corresponding to the middle "medium" is the first fuzzy set 12. Figure 5 The area within the trapezoidal line corresponding to “large” on the right is the first fuzzy set 13, the trapezoidal line corresponding to “small” is the membership function of the first fuzzy set 11, the trapezoidal line corresponding to “medium” is the membership function of the first fuzzy set 12, and the trapezoidal line corresponding to “large” is the membership function of the first fuzzy set 13.
[0231] based on Figure 5, taking RTT=1ms as an example, the membership of the value in the first fuzzy sets is: membership in the first fuzzy set 11=1, membership in the first fuzzy set 12=0, and membership in the first fuzzy set 13=0; taking RTT=3.5ms as an example, the membership of the value in the first fuzzy sets is: membership in the first fuzzy set 11=0.25, membership in the first fuzzy set 12=0.75, and membership in the first fuzzy set 13=0. In S403, the fuzzy reasoning method includes but is not limited to Mamdani reasoning method, Larsen reasoning method, or Zadeh reasoning method.
[0232] Take the discrete value combination (i, j) as an example:
[0233] Assume that after the discrete value i is fuzzified by S402, the obtained membership of i is: the membership of the first fuzzy set 11 = 0.7, the membership of the first fuzzy set 12 = 0.3, and the membership of the first fuzzy set 13 = 0. Assume that after the fuzzification is performed on j by S402, the obtained membership of j is: the membership of the first fuzzy set 21 = 0.6, the membership of the first fuzzy set 22 = 0.4, and the membership of the first fuzzy set 23 = 0. The multiple memberships are merely examples and should not be considered as specific limitations.
[0234] Taking the fuzzy reasoning method as Zadeh reasoning method, fuzzy reasoning is performed according to the above rules 100 to rule 400 and the membership of the discrete value combination (i, j) in multiple first fuzzy sets as an example, and the membership of the fuzzy reasoning result corresponding to the discrete value combination (i, j) in multiple second fuzzy sets is obtained as follows:
[0235] Since rule 100 is "If RTT is low and Q Len Low, then Q T Increase", i has a membership of 0.7 in the first fuzzy set 11 (indicating low RTT), and j has a membership of 0.7 in the first fuzzy set 21 (indicating Q Len The membership degree in the second fuzzy set is 0.6, then the fuzzy reasoning result corresponding to the discrete value combination (i, j) is in the second fuzzy set 1 (representing Q T Increase) has a membership degree = min(0.7, 0.6) = 0.6.
[0236] Since rule 200 is "If RTT is low and Q Len High, then Q T Keep”, i has a membership of 0.7 in the first fuzzy set 11 (indicating low RTT), and j has a membership of 0.7 in the first fuzzy set 23 (indicating Q Len The membership degree in the second fuzzy set 2 (indicates Q TKeep)’s membership = min(0.7, 0) = 0.
[0237] Since rule 300 is "If RTT is high and Q Len Low, then Q T Keep”, i has a membership of 0 in the first fuzzy set 13 (indicating high RTT), and j has a membership of 0 in the first fuzzy set 21 (indicating Q Len The membership degree in the low) is 0.6, then the fuzzy reasoning result corresponding to the discrete value combination (i, j) is in the second fuzzy set 2 (representing Q T Keep)’s membership = min(0, 0.6) = 0.
[0238] Since rule 400 is "If RTT is high and Q Len High, then Q T The membership of i in the first fuzzy set 13 (indicating high RTT) is 0, and the membership of j in the first fuzzy set 23 (indicating Q Len The membership degree in the second fuzzy set 3 (indicates Q T The membership of (decreases)=min(0,0)=0.
[0239] By combining all the memberships of the fuzzy inference results corresponding to the above discrete value combination (i, j) in multiple second fuzzy sets, we can get:
[0240] Q T Increase the corresponding membership = 0.6;
[0241] Q T Keep the corresponding membership = 0;
[0242] Q T Reduce the corresponding membership = 0.
[0243] In S404, the defuzzification method includes but is not limited to a centroid method, a maximum membership principle (MMP), a mean of maximum (MOM), and the like.
[0244] Taking the defuzzification method as the centroid method as an example, assuming that the second fuzzy set 1 (representing Q T Increase), the second fuzzy set 2 (represents Q T Keep) and the second fuzzy set 3 (represents Q T The membership functions of the triangles are all triangular membership functions, that is:
[0245] The second fuzzy set 1 (represents Q TIncrease): The membership function is a triangle with vertices (0, 0), (5, 1), and (10, 0).
[0246] The second fuzzy set 2 (represents Q T Keep): The membership function is a triangle with vertices (5, 0), (15, 1), and (25, 0).
[0247] The second fuzzy set 3 (represents Q T Decrease): The membership function is a triangle with vertices (20, 0), (30, 1), and (40, 0).
[0248] The exact inference result corresponding to the discrete value combination (i, j) can be calculated by the following formula:
[0249] The exact reasoning result corresponding to the discrete value combination (i, j) = (A_long*μ_long+A_medium*μ_medium+A_short*μ_short / (μ_short+μ_medium+μ_long), where A_long represents the area of the second fuzzy set 1, A_medium represents the area of the second fuzzy set 2, A_short represents the area of the second fuzzy set 3, and μ_long represents the membership degree corresponding to the second fuzzy set 1 (i.e., the above Q T Increase the corresponding membership degree 0.6), μ_medium represents the membership degree corresponding to the second fuzzy set 2 (that is, the above Q T Keep the corresponding membership degree 0), μ_short represents the membership degree corresponding to the second fuzzy set 3 (that is, the above Q T Reduce the corresponding membership 0).
[0250] Since A_long*μ_long=0.5*10*0.6=3, A_medium*μ_medium=0.5*20*0=0, A_short*μ_short=0.5*20*0=0, and then substituting these values into the above calculation formula, we can get:
[0251] The exact inference result corresponding to the discrete value combination (i, j) = (3*0.6+0*0+0*0) / (0.6+0+0) = 3.
[0252] After obtaining the precise inference result 3 corresponding to the discrete value combination (i, j), 3 here is the discrete value combination (i, j) corresponding to Q T The value of .
[0253] In S405, the above discrete value combination (i, j) is taken as a value of the parameter set (for the convenience of description, referred to as the first value of the parameter set), and the precise inference result corresponding to the above discrete value combination (i, j) is taken as a value of the first network parameter (for the convenience of description, referred to as the first value of the first network parameter).
[0254] It can be understood that based on the above content, the first corresponding relationship can be obtained in S406, where the first corresponding relationship indicates a parameter set (RTT and Q Len ) and the first network parameter (i.e., Q T )’s multiple values.
[0255] Optionally, in S405, the interval combination before discreteness corresponding to the discrete value combination (i, j) (the interval before discreteness corresponding to i, the interval before discreteness corresponding to j) can also be used as the first value of the parameter set. In S406, the first corresponding relationship indicating parameter set (RTT and Q Len ) before the interval combination and the first network parameter (i.e. Q T For example, assuming that the discrete value combination (0, 1) corresponds to the interval combination before discretization (0-100, 10-19), the first network parameter Q corresponding to the discrete value combination (0, 1) is T The value of is 2, then the first corresponding relationship includes the corresponding relationship between (0-100, 10-19) and 2.
[0256] It should be noted that the membership functions of the above-mentioned second fuzzy set 1, second fuzzy set 2 and second fuzzy set 3 are all triangular membership functions and the vertices of the membership functions are only examples. In the specific implementation, the membership function selected for each first fuzzy set includes but is not limited to a Gaussian membership function, a triangular membership function, a trapezoidal membership function or a generalized bell-shaped membership function, etc. Specifically, the membership function of each first fuzzy set can be selected by using an assignment method, a binary comparison sorting method, etc. The vertices of the membership function can also be determined according to the actual scenario, and the present application does not make any specific limitations on this.
[0257] Understandably, based on Figure 4In the illustrated embodiment, when the network device executes S203 to query the first corresponding relationship according to the current value of the parameter set, if the first corresponding relationship indicates the corresponding relationship between multiple discrete values (or discrete value combinations) of the parameter set and multiple values of the first network parameter, then the network device can discretize the current value based on the discretization of multiple sample values of the parameter set in S401 to obtain the corresponding discrete value (or discrete value combination), and then query the first corresponding relationship according to the corresponding discrete value (or discrete value combination); if the first corresponding relationship indicates the corresponding relationship between multiple discrete interval combinations of the parameter set and multiple values of the first network parameter, then the network device can directly use the current value of the parameter set to query the first corresponding relationship.
[0258] It can also be understood that when the first correspondence indicates the correspondence between multiple discrete values (or discrete value combinations) of a parameter set and multiple values of a first network parameter, if the network device stores the multiple discrete values (or discrete value combinations) of the parameter set in subscript form, then the discrete value (or discrete value combination) can also be called a subscript (or subscript combination).
[0259] It should also be understood that the above possible implementation method 1 and possible implementation method 2 are merely exemplary implementation methods for the network device to obtain the first corresponding relationship and should not be regarded as specific limitations. For example, in a specific implementation, when the second network parameter and the first network parameter are the same parameter, the network device can obtain the first corresponding relationship through the following possible implementation method 3.
[0260] Possible implementation method three includes the following steps S1-S6:
[0261] S1: Discretize multiple sample values of a parameter set to obtain multiple discrete values.
[0262] S1 is the same as S401 above. Please refer to the relevant description above and will not be elaborated here.
[0263] S2: Fuzzify each of the multiple discrete values to obtain the membership of each discrete value in the multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to the multiple levels of the parameter set in the multiple fuzzy inference rules. Here, the multiple fuzzy inference rules indicate the correspondence between the multiple levels of the parameter set and the multiple levels of the third network parameter. The third network parameter is a different parameter from the first network parameter. For example, when the first network parameter is a parameter for congestion control of the network to which the network device belongs, the third network parameter is a parameter for queue management of the network device. When the first network parameter is a parameter for queue management of the network device, the third network parameter is a parameter for congestion control of the network to which the network device belongs.
[0264] S2 is similar to S402 above. Please refer to the relevant description above and will not be elaborated here.
[0265] S3: Perform fuzzy reasoning according to multiple fuzzy reasoning rules and the membership of each discrete value in multiple first fuzzy sets to obtain the membership of the fuzzy reasoning result corresponding to each discrete value in multiple third fuzzy sets, where the multiple third fuzzy sets are fuzzy sets corresponding to multiple levels of the third network parameters in the multiple fuzzy reasoning rules.
[0266] S3 is similar to S403 above. Please refer to the relevant description above and will not be elaborated here.
[0267] S4: Defuzzifying the fuzzy reasoning result corresponding to each discrete value according to the degree of membership of the fuzzy reasoning result corresponding to each discrete value in multiple third fuzzy sets to obtain an accurate reasoning result corresponding to each discrete value.
[0268] S4 is similar to S404 above. Please refer to the relevant description above and will not be elaborated here.
[0269] S5: taking each discrete value as a first value of the parameter set, and taking the precise inference result corresponding to each discrete value as a first value of the third network parameter.
[0270] S6: Calculate a first value of the first network parameter according to the first value of the third network parameter.
[0271] The third network parameter is Q T , the first network parameter is RWND as an example, assuming that the third network parameter Q T The first value of is the Q corresponding to the discrete value combination (i, j) mentioned above T The value of can be calculated by the following formula (1) to obtain the first network parameter RWND (i.e. R in formula (1) n )’s first value:
[0272]
[0273] Among them, Δq t is the Q corresponding to the discrete value combination (i, j) T The value of Δq o is the Q corresponding to the discrete value combination (i, j) T The value of and the Q corresponding to the discrete value combination (i, j-1) T The difference between the values of , λ is the dequeue rate of the first queue, and RTT is i.
[0274] It should be noted that, in a specific implementation, the calculation formula for obtaining the first value of the first network parameter according to the first value of the third network parameter can be obtained according to a statistical method or a mathematical modeling method.
[0275] S7: Record a correspondence between a first value of the parameter set and a first value of the first network parameter in a first correspondence.
[0276] It can be seen that if in S7, the third network parameter (such as Q T ) and the first value of the first network parameter (such as RWND), the second corresponding relationship shown in Table 3 above can be obtained. It should be noted that the method for obtaining the second corresponding relationship is not limited to this method. In a specific implementation, the second corresponding relationship can also be obtained by referring to the method for obtaining the first corresponding relationship, and this application does not make specific limitations on this.
[0277] See also Figure 6 , Figure 6 is a flow chart of obtaining multiple fuzzy inference rules by using a fuzzy c-means clustering algorithm provided in an embodiment of the present application, such as Figure 6 As shown, the process includes the following steps:
[0278] S601: Acquire a training sample set, where the training sample set includes input parameter samples and output parameter expected values corresponding to each input parameter sample.
[0279] S602: Normalize the data in the training sample set to obtain a normalized training sample set.
[0280] S603: Select the number of clusters c.
[0281] S604: Input the normalized training sample set into the fuzzy c-means clustering algorithm to obtain cluster centers.
[0282] S605: Generate fuzzy rules according to cluster centers.
[0283] For ease of understanding Figure 6 Embodiment, below is combined with two specific examples Figure 6 Each step is described below.
[0284] Example 1: In this example, the input parameter is RTT and the output parameter is Q T For example.
[0285] In S601, the training sample set includes multiple sample values of the input parameter RTT and the output parameter Q corresponding to each sample value of the input parameter RTT. T Expected value.
[0286] See Table 5, which is an exemplary training sample set of the present application.
[0287] Table 5 Training sample set
[0288] Sample value of input parameter RTT <![CDATA[Output parameter Q T Expected value]]> 5 20 10 18 25 14 35 12 50 8 65 4 80 2
[0289] In S602, methods for normalizing the data in the training sample set include, but are not limited to, maximum-minimum normalization, zero-mean normalization, and the like.
[0290] Taking the use of the maximum and minimum normalization method to normalize the training sample set shown in Table 5 as an example, the normalized training sample set shown in Table 6 can be obtained.
[0291] Table 6 Normalized training sample set
[0292] Sample value of input parameter RTT <![CDATA[Output parameter Q T Expected value]]> Normalized RTT sample value <![CDATA[Normalized Q T Expected value]]> 5 20 0.00 1.00 10 18 0.07 0.89 25 14 0.29 0.67 35 12 0.43 0.56 50 8 0.64 0.33 65 4 0.86 0.11 80 2 1.00 0.00
[0293] In S603, in this example, c is taken as 3.
[0294] In a specific implementation, the number of clusters c can be selected based on actual scenarios and expert experience.
[0295] In S604, two types of cluster centers can be obtained. One type is the three cluster centers corresponding to the input parameter RTT: cluster center 11, cluster center 12 and cluster center 13, and the other type is the output parameter Q T The corresponding three cluster centers are: cluster center 21, cluster center 22 and cluster center 23, wherein cluster center 11 corresponds to cluster center 21, cluster center 12 corresponds to cluster center 22, and cluster center 13 corresponds to cluster center 23.
[0296] In S605, it is assumed that the cluster center 11 described in S604 is 0.2, the cluster center 12 is 0.5, the cluster center 13 is 0.8, the cluster center 21 is 0.9, the cluster center 22 is 0.5, and the cluster center 23 is 0.1. Since the cluster center 11 corresponds to the cluster center 21, the cluster center 12 corresponds to the cluster center 22, and the cluster center 13 corresponds to the cluster center 23, the following rules can be generated according to the above content:
[0297] ①. If the input parameter RTT is close to the cluster center 11 (0.2), the output parameter Q T close to cluster center 21 (0.9);
[0298] ②. If the input parameter RTT is close to the cluster center 12 (0.5), the output parameter Q T Close to cluster center 22 (0.5);
[0299] ③. If the input parameter RTT is close to the cluster center 13 (0.8), the output parameter Q T Close to cluster center 23 (0.1);
[0300] According to the above rules ①-③, we can further get the following fuzzy rules:
[0301] If the input parameter RTT is low (corresponding to the input parameter RTT cluster center 11 (0.2) in the above rule ①), the output parameter Q T High (corresponding to the output parameter Q in the above rule ① T Close to cluster center 21(0.9));
[0302] If the input parameter RTT is medium (corresponding to the input parameter RTT in the above rule ② being close to the cluster center 12 (0.5)), then the output parameter Q T Medium (corresponding to the output parameter Q in the above rule ② T Close to cluster center 22(0.5));
[0303] If the input parameter RTT is low (corresponding to the input parameter RTT in the above rule ③ being close to the cluster center 13 (0.8)), the output parameter Q T Low (corresponding to the output parameter Q in the above rule ③ T Close to cluster center 23(0.1)).
[0304] Example 2: In this example, the input parameter is RTT and the output parameter is Q. T For example.
[0305] In S601, the acquired training sample set includes multiple sample values of the input parameter RTT and the output parameter Q T For the expected adjustment value, see the training sample set shown in Table 7. In Table 7, a positive number indicates an expected increase, 0 indicates a desired retention, and a negative number indicates an expected decrease.
[0306] Table 7 Training sample set
[0307] Sample value of input parameter RTT <![CDATA[Output parameter Q T desired adjustment value]]> 5 +10 10 +7 25 +5 35 0 50 0 65 -4 80 -8
[0308] Next, S602-S605 are executed (similar to the process of S602-S605 in the above example 1, please refer to the above description, which will not be elaborated here), and the following fuzzy rules can be obtained:
[0309] If the input parameter RTT is low, the output parameter Q T Increase;
[0310] If the input parameter RTT is medium, then the output Q T Keep;
[0311] If the input parameter RTT is high, the output Q T Reduce.
[0312] It should be understood that the above Tables 5, 6, and 7 are only examples and should not be regarded as input parameter RTT sample value, output parameter Q T Expected value, output parameter Q T The expected adjustment value and the normalized value of .
[0313] It should be understood that Figure 6 The process of obtaining multiple fuzzy inference rules by using the fuzzy c-means clustering algorithm shown in FIG. 1 is only an example. In a specific implementation, the process of obtaining multiple fuzzy inference rules by using the fuzzy c-means clustering algorithm can also be other processes, for example, Figure 6 In the embodiment, after executing S601, S603 may be directly executed, that is, S602 is an optional step.
[0314] It is understandable that in order to implement the functions in the above embodiments, the communication device includes hardware structures and / or software modules corresponding to the execution of each function. It should be easily appreciated by those skilled in the art that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0315] Figure 7 , Figure 8 , Fig. 9 and Fig.10 A schematic diagram of the structure of a possible communication device provided in an embodiment of the present application. Figure 7 , Fig. 9 and Fig.10 The communication device in can be used to implement Figure 2-Figure 4 as well as Figure 6 The functions of the network device in the method embodiment and other embodiments shown in the figure can also be realized Figure 2-Figure 4 as well as Figure 6 The beneficial effects of the method embodiments and other embodiments shown. Figure 8 , Fig. 9 and Fig.10 The communication device can be used to implement Figure 2-Figure 4 as well as Figure 6 The functions of the computing device (such as the network controller described in the above method embodiment) in the method embodiment shown in the figure can also be realized. Figure 2-Figure 4 as well as Figure 6 The beneficial effects of the method embodiments and other embodiments shown.
[0316] Figure 7 is a schematic diagram of the structure of a network device provided in an embodiment of the present application, such as Figure 7 As shown, the network device 700 includes an acquisition unit 710 , a query unit 720 and an adjustment unit 730 .
[0317] The acquisition unit 710 is used to obtain a first correspondence, where the first correspondence indicates a correspondence between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by a network device, where the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, or where the first network parameter is a parameter for performing queue management on the network device; the acquisition unit 710 is also used to obtain a current value of the parameter set based on a first data stream currently transmitted by the network device; the query unit 720 is used to query the first correspondence based on the current value, and obtain a first target value corresponding to the current value from multiple values of the first network parameter; the adjustment unit 730 is used to adjust a second network parameter based on the first target value, where the second network parameter is the same parameter as the first network parameter, or where the second network parameter is a different parameter from the first network parameter.
[0318] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs.
[0319] In a possible implementation, the acquisition unit 710 is specifically used to: acquire multiple sample values of a parameter set, the multiple sample values are sampled when the network device historically transmits a second data stream; acquire multiple fuzzy inference rules, the multiple fuzzy inference rules indicate the correspondence between multiple levels of the parameter set and multiple levels of the first network parameter; acquire a first correspondence based on the multiple sample values and the multiple fuzzy inference rules.
[0320] In a possible implementation, the acquisition unit 710 is specifically used to: discretize multiple sample values to obtain multiple discrete values; fuzzify each discrete value in the multiple discrete values to obtain the membership of each discrete value in multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of the parameter set; perform fuzzy reasoning according to multiple fuzzy inference rules and the membership of each discrete value in the multiple first fuzzy sets to obtain the membership of the fuzzy inference result corresponding to each discrete value in multiple second fuzzy sets, where the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of the first network parameter; defuzzify the fuzzy inference result corresponding to each discrete value according to the membership of the fuzzy inference result corresponding to each discrete value in the multiple second fuzzy sets to obtain the precise inference result corresponding to each discrete value; use each discrete value as the first value of the parameter set, and use the precise inference result as the first value of the first network parameter; and record the correspondence between the first value of the parameter set and the first value of the first network parameter in the first corresponding relationship.
[0321] In a possible implementation manner, the relevant parameters include network performance parameters when the network device transmits the data stream and / or parameters of a queue used by the network device to transmit the data stream.
[0322] In a possible implementation manner, the network performance parameter includes at least one of the following: RTT, packet loss rate, or jitter.
[0323] In a possible implementation manner, when the second network parameter and the first network parameter are the same parameter, the adjusting unit 730 is specifically configured to: use the first target value as an adjustment value of the second network parameter; and adjust the second network parameter using the adjustment value.
[0324] In a possible implementation, when the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or when the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, the adjustment unit 730 is specifically used to: query a second corresponding relationship according to the first target value to obtain a second target value corresponding to the first target value from multiple values of the second network parameter, the second corresponding relationship indicating a corresponding relationship between multiple values of the first network parameter and multiple values of the second network parameter; use the second target value as an adjustment value of the second network parameter; and adjust the second network parameter using the adjustment value.
[0325] In a possible implementation, when the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or when the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, the adjustment unit 730 is specifically used to: query a third corresponding relationship according to the first target value to obtain a target intermediate value corresponding to the first target value among multiple intermediate values, the third corresponding relationship indicating a corresponding relationship between multiple values of the first network parameter and multiple intermediate values; use the product of the first target value and the target intermediate value as an adjustment value of the second network parameter; and adjust the second network parameter using the adjustment value.
[0326] In a possible implementation, the second network parameter is RWND, and the adjustment unit 730 is used to modify the RWND value carried in the ACK message of the first data stream received by the network device to the adjustment value; the above-mentioned network device 700 also includes a sending unit 740 ( Figure 7 The sending unit 740 is used to send an ACK message carrying the adjustment value to the sending end of the first data stream.
[0327] In a possible implementation manner, the adjustment unit 730 is configured to modify the RWND value carried in the ACK message of the first data flow received by the network device to the adjustment value when determining that the network is congested.
[0328] In a possible implementation manner, the second network parameter is an ECN watermark, and the adjustment unit 730 is configured to modify the ECN watermark value of the first queue to an adjustment value, where the first queue is a queue used by the network device to transmit the first data flow.
[0329] In a possible implementation, the second network parameter is a queue threshold, and the adjustment unit 730 is used to use the adjustment value to adjust the threshold value of the first queue, the first queue is a queue used by the network device to transmit the first data stream, and the threshold value of the first queue is used for queue management of the first queue.
[0330] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0331] Figure 8 is a schematic diagram of a computing device provided in an embodiment of the present application, such as Figure 8 As shown, the computing device 800 includes an acquiring unit 810 and a sending unit 820 .
[0332] The acquisition unit 810 is used to acquire a first correspondence relationship, where the first correspondence relationship indicates a correspondence relationship between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by the network device, and the first network parameter is a parameter used to perform congestion control on a network to which the network device belongs, or the first network parameter is a parameter used to perform queue management on the network device;
[0333] The sending unit 820 is used to send the first corresponding relationship to the network device, so that the network device adjusts the second network parameter according to the first corresponding relationship, and the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
[0334] In one possible implementation, when the second network parameter and the first network parameter are different parameters, the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs.
[0335] In a possible implementation, the acquisition unit 810 is specifically used to: acquire multiple sample values of a parameter set, the multiple sample values are sampled when the network device historically transmits a second data stream; acquire multiple fuzzy inference rules, the multiple fuzzy inference rules indicate the correspondence between multiple levels of the parameter set and multiple levels of the first network parameter; acquire a first correspondence based on the multiple sample values and the multiple fuzzy inference rules.
[0336] In a possible implementation, the acquisition unit 810 is specifically used to: discretize multiple sample values to obtain multiple discrete values; fuzzify each discrete value in the multiple discrete values to obtain the membership of each discrete value in multiple first fuzzy sets, where the multiple first fuzzy sets are fuzzy sets corresponding to multiple levels of the parameter set; perform fuzzy reasoning according to multiple fuzzy inference rules and the membership of each discrete value in the multiple first fuzzy sets to obtain the membership of the fuzzy inference result corresponding to each discrete value in multiple second fuzzy sets, where the multiple second fuzzy sets are fuzzy sets corresponding to multiple levels of the first network parameter; defuzzify the fuzzy inference result corresponding to each discrete value according to the membership of the fuzzy inference result corresponding to each discrete value in the multiple second fuzzy sets to obtain the precise inference result corresponding to each discrete value; use each discrete value as the first value of the parameter set, and use the precise inference result as the first value of the first network parameter; and record the correspondence between the first value of the parameter set and the first value of the first network parameter in the first corresponding relationship.
[0337] In a possible implementation manner, the relevant parameters include network performance parameters when the network device transmits the data stream and / or parameters of a queue used by the network device to transmit the data stream.
[0338] In a possible implementation manner, the network performance parameter includes at least one of the following: RTT, packet loss rate, or jitter.
[0339] In a possible implementation manner, the second network parameter is RWND, or the second network parameter is ECN waterline, or the second network parameter is queue threshold.
[0340] In one possible implementation, the sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
[0341] In one possible implementation, the computing device 800 is a network controller.
[0342] The relevant contents of the above scheme, and Figure 7 , Figure 8 A more detailed description of each unit shown can be directly referred to Figure 2-Figure 4 as well as Figure 6 The relevant descriptions in the method embodiments and other embodiments shown are directly obtained and will not be repeated here.
[0343] like Fig. 9 As shown, the communication device 900 includes a processing circuit 910 and an interface circuit 920. The processing circuit 910 and the interface circuit 920 are coupled to each other. It is understood that the interface circuit 920 can be a transceiver or an input-output interface. Optionally, the communication device 900 may also include a memory for storing instructions executed by the processing circuit or storing input data required for the processing circuit 910 to execute instructions or storing data generated after the processing circuit 910 executes instructions.
[0344] When the communication device 900 is used to implement Figure 2-Figure 4 as well as Figure 6 When the functions of the network device in the method embodiments and other embodiments shown are implemented, the processing circuit 910 is used to implement the functions of the acquisition unit 710, the query unit 720 and the adjustment unit 730 corresponding to the network device 700, and the interface circuit 920 is used to implement the functions of the sending unit 740 corresponding to the network device 700.
[0345] When the communication device 900 is used to implement Figure 2-Figure 4 as well as Figure 6When the functions of the computing device in the method embodiment and other embodiments shown are implemented, the processing circuit 910 is used to implement the functions of the acquisition unit 810 corresponding to the computing device 800, and the interface circuit 920 is used to implement the functions of the sending unit 820 corresponding to the computing device 800.
[0346] like Fig.10 As shown, the communication device 1000 includes a processor 1010 and a communication interface 1020. The processor 1010 and the communication interface 1020 are coupled to each other. It is understood that the communication interface 1020 can be a transceiver or an input-output interface. Optionally, the communication device 1000 may also include a memory 1030 for storing instructions executed by the processor 1010 or storing input data required by the processor 1010 to execute instructions or storing data generated after the processor 1010 executes instructions.
[0347] When the communication device 1000 is used to implement Figure 2-Figure 4 as well as Figure 6 When the functions of the network device in the method embodiments and other embodiments shown are implemented, the processor 1010 is used to implement the functions of the acquisition unit 710, the query unit 720 and the adjustment unit 730 corresponding to the network device 700, and the communication interface 1020 is used to implement the functions of the sending unit 740 corresponding to the network device 700.
[0348] When the communication device 1000 is used to implement Figure 2-Figure 4 as well as Figure 6 When the function of the computing device in the method embodiment and other embodiments shown is performed, the processor 1010 is used to implement the function of the acquisition unit 810 corresponding to the computing device 800, and the communication interface 1020 is used to implement the function of the sending unit 820 corresponding to the computing device 800.
[0349] When the above communication device (such as network device 700, computing device 800, communication device 900, communication device 1000) is a chip applied to a communication device, the communication device chip implements the function of the communication device in the above method embodiment. The communication device chip receives information from other modules (such as radio frequency module or antenna) in the communication device, and the information is sent to the communication device chip by other communication devices; or the communication device chip sends information to other modules (such as radio frequency module or antenna) in the communication device, and the information is sent by the communication device to other communication device chips.
[0350] It is understandable that the processor in the embodiment of the present application can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor can be a microprocessor or any conventional processor.
[0351] According to the method provided in the embodiment of the present application, the embodiment of the present application also provides a computer program product, which includes: a computer program or instruction, when the computer program or instruction is run on a computer, the computer executes Figure 2-Figure 4 as well as Figure 6 The method of any one of the embodiments such as the method embodiment shown.
[0352] According to the method provided in the embodiment of the present application, the embodiment of the present application also provides a computer-readable storage medium, which stores a program or instruction, and when the program or instruction is executed on a computer, the computer executes Figure 2-Figure 4 as well as Figure 6 The method of any one of the embodiments such as the method embodiment shown.
[0353] According to the method provided in the embodiment of the present application, the embodiment of the present application also provides a chip system, which may include a processor. The processor is coupled to the memory and can be used to execute Figure 2-Figure 4 as well as Figure 6 The method of any one of the embodiments in the method embodiment shown in the figure. Optionally, the chip system also includes a memory. The memory is used to store a computer program (also referred to as code or instruction). The processor is used to call and run the computer program from the memory so that the device equipped with the chip system executes Figure 2-Figure 4 as well as Figure 6 The method of any one of the embodiments such as the method embodiment shown.
[0354] According to the communication method provided in the embodiment of the present application, the embodiment of the present application also provides a communication system, which includes the aforementioned network device and computing device.
[0355] The method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory, register, hard disk, solid-state drive (SSD), mobile hard disk, portable read-only memory (compact disc read-only memory, CD-ROM) or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an application specific integrated circuit (ASIC). In addition, the ASIC can be located in a communication device. Of course, the processor and the storage medium can also be present in the communication device as discrete components.
[0356] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When a computer program or instruction is loaded and executed on a computer, the process or function of the embodiment of the present application is executed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program or instruction can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, a hard disk, or a tape; it can also be an optical medium, such as a digital video disc; it can also be a semiconductor medium, such as a solid-state hard disk. The computer-readable storage medium may be a volatile or nonvolatile storage medium, or may include both volatile and nonvolatile types of storage media.
[0357] In the various embodiments of the present application, unless otherwise specified or provided in a logical conflict, the terms and / or descriptions between the different embodiments are consistent and may be referenced to each other, and the technical features in the different embodiments may be combined to form new embodiments according to their inherent logical relationships.
[0358] In this application, "multiple" means two or more. "And / or" describes 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, where A and B can be singular or plural. In the text description of this application, the character " / " generally indicates that the previous and next associated objects are in an "or" relationship; in the formula of this application, the character " / " indicates that the previous and next associated objects are in a "division" relationship. "Including at least one of A, B or C" can mean: including A; including B; including C; including A and B; including A and C; including B and C; including A, B and C.
[0359] It is understood that the various numbers involved in the embodiments of the present application are only for the convenience of description and are not used to limit the scope of the embodiments of the present application. The size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic.
Claims
1. A method for adjusting network parameters, characterized in that: Applied to a network device, the method comprises: Acquire a first correspondence, where the first correspondence indicates a correspondence between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by the network device, and the first network parameter is a parameter used to perform congestion control on a network to which the network device belongs, or the first network parameter is a parameter used to perform queue management on the network device; Acquire a current value of the parameter set according to a first data stream currently transmitted by the network device; querying the first corresponding relationship according to the current value to obtain a first target value corresponding to the current value among multiple values of the first network parameter; A second network parameter is adjusted according to the first target value, wherein the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
2. The method according to claim 1, characterized in that When the second network parameter is different from the first network parameter, the first network parameter is a parameter for performing congestion control on the network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device; or, the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs.
3. The method according to claim 1 or 2, characterized in that: The obtaining of the first corresponding relationship includes: Acquire multiple sample values of the parameter set, where the multiple sample values are sampled when the network device historically transmits the second data stream; Acquire a plurality of fuzzy inference rules, wherein the plurality of fuzzy inference rules indicate a correspondence between a plurality of levels of the parameter set and a plurality of levels of the first network parameter; The first corresponding relationship is acquired according to the multiple sample values and the multiple fuzzy inference rules.
4. The method according to claim 3, characterized in that The acquiring the first corresponding relationship according to the multiple sample values and the multiple fuzzy inference rules includes: Discretizing the multiple sample values to obtain multiple discrete values; Fuzzifying each discrete value of the plurality of discrete values to obtain a membership degree of each discrete value in a plurality of first fuzzy sets, wherein the plurality of first fuzzy sets are fuzzy sets corresponding to a plurality of levels of the parameter set; Performing fuzzy reasoning according to the plurality of fuzzy reasoning rules and the membership of each discrete value in a plurality of first fuzzy sets, obtaining the membership of the fuzzy reasoning result corresponding to each discrete value in a plurality of second fuzzy sets, wherein the plurality of second fuzzy sets are fuzzy sets corresponding to a plurality of levels of the first network parameter; Defuzzifying the fuzzy reasoning result corresponding to each discrete value according to the membership degree of the fuzzy reasoning result corresponding to each discrete value in a plurality of second fuzzy sets, so as to obtain an accurate reasoning result corresponding to each discrete value; Taking each discrete value as a first value of the parameter set, and taking the precise inference result as a first value of the first network parameter; The correspondence between the first value of the parameter set and the first value of the first network parameter is recorded in the first correspondence.
5. The method according to any one of claims 1 to 4, characterized in that: The related parameters include network performance parameters when the network device transmits data streams and / or parameters of a queue used by the network device to transmit data streams.
6. The method according to claim 5, characterized in that The network performance parameter includes at least one of the following: round-trip time RTT, packet loss rate or jitter.
7. The method according to any one of claims 1 to 6, characterized in that: In a case where the second network parameter and the first network parameter are the same parameter, adjusting the second network parameter according to the first target value includes: Using the first target value as an adjustment value of the second network parameter; The second network parameter is adjusted using the adjustment value.
8. The method according to any one of claims 1 to 6, characterized in that: In a case where the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or in a case where the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, adjusting the second network parameter according to the first target value includes: querying a second corresponding relationship according to the first target value to obtain a second target value corresponding to the first target value among multiple values of the second network parameter, wherein the second corresponding relationship indicates a corresponding relationship between multiple values of the first network parameter and multiple values of the second network parameter; Using the second target value as an adjustment value of the second network parameter; The second network parameter is adjusted using the adjustment value.
9. The method according to any one of claims 1 to 6, characterized in that: In a case where the first network parameter is a parameter for performing congestion control on a network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device, or in a case where the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs, adjusting the second network parameter according to the first target value includes: querying a third corresponding relationship according to the first target value to obtain a target intermediate value corresponding to the first target value among multiple intermediate values, wherein the third corresponding relationship indicates a corresponding relationship between multiple values of the first network parameter and the multiple intermediate values; taking the product of the first target value and the target intermediate value as the adjustment value of the second network parameter; The second network parameter is adjusted using the adjustment value.
10. The method according to any one of claims 1 to 9, characterized in that: The second network parameter is a receiving window RWND, and the using the adjustment value to adjust the second network parameter includes: Modify the RWND value carried in the ACK message of the first data flow received by the network device to the adjustment value; The method further comprises: Send the ACK message carrying the adjustment value to a sender of the first data stream.
11. The method according to claim 10, characterized in that The modifying the RWND value carried in the ACK message of the first data flow received by the network device to the adjustment value includes: When it is determined that the network is congested, the RWND value carried in the ACK message of the first data flow received by the network device is modified to the adjustment value.
12. The method according to any one of claims 1 to 9, characterized in that: The second network parameter is an ECN waterline, and the adjusting the second network parameter using the adjustment value includes: The ECN watermark value of the first queue is modified to the adjustment value, and the first queue is a queue used by the network device to transmit the first data flow.
13. The method according to any one of claims 1 to 9, characterized in that: The second network parameter is a queue threshold, and the using the adjustment value to adjust the second network parameter includes: The adjustment value is used to adjust a threshold value of a first queue, where the first queue is a queue used by the network device to transmit the first data flow, and the threshold value of the first queue is used for queue management of the first queue.
14. The method according to any one of claims 3 to 13, characterized in that The sending end of the second data stream is the same as the sending end of the first data stream, the receiving end of the second data stream is the same as the receiving end of the first data stream, and the transmission path of the second data stream in the network is the same as the transmission path of the first data stream in the network.
15. A method for adjusting network parameters, characterized in that: Applied to a computing device, the method comprises: Acquire a first correspondence, where the first correspondence indicates a correspondence between multiple values of a parameter set and multiple values of a first network parameter, where the parameter set includes relevant parameters of a data stream transmitted by a network device, and the first network parameter is a parameter used to perform congestion control on a network to which the network device belongs, or the first network parameter is a parameter used to perform queue management on the network device; The first corresponding relationship is sent to the network device, so that the network device adjusts a second network parameter according to the first corresponding relationship, wherein the second network parameter is the same parameter as the first network parameter, or the second network parameter is a different parameter from the first network parameter.
16. The method according to claim 15, characterized in that When the second network parameter is different from the first network parameter, the first network parameter is a parameter for performing congestion control on the network to which the network device belongs, and the second network parameter is a parameter for performing queue management on the network device; or, the first network parameter is a parameter for performing queue management on the network device, and the second network parameter is a parameter for performing congestion control on the network to which the network device belongs.
17. The method according to claim 15 or 16, characterized in that The obtaining of the first corresponding relationship includes: Acquire multiple sample values of the parameter set, where the multiple sample values are sampled when the network device historically transmits the second data stream; Acquire a plurality of fuzzy inference rules, wherein the plurality of fuzzy inference rules indicate a correspondence between a plurality of levels of the parameter set and a plurality of levels of the first network parameter; The first corresponding relationship is acquired according to the multiple sample values and the multiple fuzzy inference rules.
18. The method according to claim 17, characterized in that The acquiring the first corresponding relationship according to the multiple sample values and the multiple fuzzy inference rules includes: Discretizing the multiple sample values to obtain multiple discrete values; Fuzzifying each discrete value of the plurality of discrete values to obtain a membership degree of each discrete value in a plurality of first fuzzy sets, wherein the plurality of first fuzzy sets are fuzzy sets corresponding to a plurality of levels of the parameter set; Performing fuzzy reasoning according to the plurality of fuzzy reasoning rules and the membership of each discrete value in a plurality of first fuzzy sets, obtaining the membership of the fuzzy reasoning result corresponding to each discrete value in a plurality of second fuzzy sets, wherein the plurality of second fuzzy sets are fuzzy sets corresponding to a plurality of levels of the first network parameter; Defuzzifying the fuzzy reasoning result corresponding to each discrete value according to the membership degree of the fuzzy reasoning result corresponding to each discrete value in a plurality of second fuzzy sets, so as to obtain the precise reasoning result corresponding to each discrete value; Taking each discrete value as a first value of the parameter set, and taking the precise inference result as a first value of the first network parameter; The correspondence between the first value of the parameter set and the first value of the first network parameter is recorded in the first correspondence.
19. The method according to any one of claims 15 to 18, characterized in that The related parameters include network performance parameters when the network device transmits data streams and / or parameters of a queue used by the network device to transmit data streams.
20. The method according to any one of claims 15 to 19, characterized in that The second network parameter is RWND, or the second network parameter is ECN waterline, or the second network parameter is queue threshold.
21. A communication device, characterized in that: The method comprises units and / or modules for executing the method according to any one of claims 1 to 20.
22. A communication device, characterized in that: including a processor and a memory; The processor is configured to execute instructions stored in the memory, so that the communication device performs the method according to any one of claims 1 to 20.
23. A computer-readable storage medium, characterized in that: The method comprises computer program instructions which, when executed by a computing device, cause the computing device to perform the method as claimed in any one of claims 1 to 20.
24. A communication system, characterized in that: The method comprises a network device and a computing device, wherein the network device is used to execute the method according to any one of claims 1 to 14, and the computing device is used to execute the method according to any one of claims 15 to 20.
Citation Information
Cited By
Network congestion control method and device based on fuzzy rule
CN120474979A
A network congestion control method and device based on fuzzy rules
CN120474979B
