A network congestion reverse avoidance method and network congestion reverse avoidance network card

By broadcasting idle, waiting and transmitting notifications on the network, optimizing the use of network resources, the problems of network congestion and insufficient link layer communication flexibility in traditional network communication are solved, and network performance improvement and self-optimization capabilities are achieved.

CN117938776BActive Publication Date: 2024-12-20BEIJING GUANGRUNTONG TECH DEV CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410183997.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-02-19
Publication Date
2024-12-20
Estimated Expiration
2044-02-19

AI Technical Summary

Technical Problem

Traditional network communication mechanisms lead to network congestion, local terminal port conflicts lead to network performance degradation, and the link-layer communication of LAN lacks flexibility and security. Existing security methods such as one-way isolation cards and VLANs cannot adapt to flexible and autonomous transmission between nodes. need.

Method used

By broadcasting idle, waiting and transmission notifications in the network, the percentage of network transmission nodes is calculated, and the requesting nodes are added to the corresponding queue, the active forecast transmission mechanism and link-layer broadcast are realized, network resource usage is optimized, and network congestion is reduced.

Benefits of technology

Significantly reduces the occurrence of network congestion, improves network flexibility, and reduces the additional burden of operating systems in handling network congestion. It is fully implemented at the data link layer without system intervention or network management management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117938776B_ABST
    Figure CN117938776B_ABST
Patent Text Reader

Abstract

The present invention relates to a network congestion reverse avoidance method and a network congestion reverse avoidance network card, the network congestion reverse avoidance method comprising the following steps: generating an idle queue according to an idle notification broadcast by an idle node to the network; generating a waiting queue according to a waiting notification broadcast by a waiting node to the network; generating a transmission queue according to a transmission notification broadcast by a transmission node to the network; calculating the percentage of the number of nodes of the transmission node to the number of nodes of all nodes to obtain the percentage of network transmission nodes, wherein all nodes include the idle nodes, the waiting nodes and the transmission nodes; adding the requesting node to the idle queue, the waiting queue or the transmission queue according to the percentage of network transmission nodes or the identity of the requesting node. The network is endowed with the ability of self-optimization, so that the node actively gives up the occupation of network resources in advance, significantly reducing the extra burden of the operating system network protocol stack in handling network congestion.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the technical field of network information security, and in particular relates to a network congestion reverse avoidance method and a network congestion reverse avoidance network card. Background Art

[0002] Network congestion refers to the phenomenon that the amount of data transmitted in the network exceeds the processing capacity of network resources, resulting in a decrease in network transmission speed, increased latency, and even data loss. There is no pre-broadcast in the traditional network communication mechanism, and a point-to-point connection request (TCP) or transmission (UDP) is directly initiated. This inevitably leads to conflicts in network messages on the switch side. Conflicts in several local terminal ports will further lead to message conflicts in the entire switch, seriously reducing network performance. In addition, the link layer communication between nodes in the traditional LAN lacks flexible, secure, efficient and autonomous means of protection. Currently, the commonly used security means are one-way transmission based on one-way isolation cards and VLAN (virtual LAN). One-way isolation cards seriously reduce the flexibility of network use, and at the same time, in order to ensure the integrity of reception, a large amount of redundant transmission is inevitably generated. The application of VLAN technology has led to point-to-point transmission strictly following the registration and division of VLAN tags, which cannot adapt to flexible and autonomous transmission occasions between nodes. Summary of the invention

[0003] In view of the above problems, the present invention proposes a method for reverse avoidance of network congestion, which comprises the following steps:

[0004] generating an idle queue according to an idle notification broadcasted by an idle node to the network;

[0005] generating a waiting queue according to a waiting notification broadcasted by a waiting node to the network;

[0006] generating a transmission queue according to a transmission announcement broadcasted by a transmission node to the network;

[0007] Calculating the percentage of the number of the transmission nodes to the number of all nodes to obtain the percentage of network transmission nodes, where all nodes include the idle nodes, the waiting nodes and the transmission nodes;

[0008] The requesting node is added to the idle queue, the waiting queue or the transmission queue according to the percentage of the network transmission nodes and the identity of the requesting node.

[0009] Correspondingly, the present invention also proposes a network congestion reverse avoidance network card, which includes at least one processor, a memory and a network interface, and stores instructions. When the instructions are executed by at least one processor, the steps of the network congestion reverse avoidance method are implemented.

[0010] The technical solution of the present invention can significantly reduce the occurrence of network congestion and improve network flexibility, which is specifically embodied in: making full use of the network card's active broadcast mechanism for its own traffic, so that other network cards in the network can timely grasp the current network congestion situation and optimize the network transmission of their own terminals; giving the network the ability of self-optimization, so that nodes can actively give up the occupation of network resources in advance, significantly reducing the additional burden of the operating system network protocol stack in handling network congestion; it is completely implemented in the underlying data link layer, which is completely transparent to the system level, does not require any system intervention, and does not require additional management operations by the network manager. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 : Flowchart of reverse avoidance methods for network congestion of some schemes;

[0012] Figure 2 : Schematic diagram of network node implementation of some schemes of network congestion reverse avoidance methods;

[0013] Figure 3 : Schematic diagram of some network congestion reverse avoidance network cards. DETAILED DESCRIPTION

[0014] First of all, it should be noted that "broadcast" refers to a "one-to-all" network communication mode between nodes (hosts) below. The broadcast information sent by any node will be unconditionally copied and forwarded to other nodes. All nodes participating in the broadcast jointly maintain a broadcast table. "Requesting node" refers to the node that receives the network TCP request to initiate the transmission. The networks involved in the following schemes include but are not limited to local area networks, and some specific embodiments involve local area networks composed of peer nodes.

[0015] The following examples are provided to further illustrate the present invention, but should not be construed as limiting the present invention. Without departing from the spirit and substance of the present invention, modifications or substitutions made to the methods, steps or conditions of the present invention are within the scope of the present invention.

[0016] Some solutions include the following steps:

[0017] generating an idle queue according to an idle notification broadcasted by an idle node to the network;

[0018] generating a waiting queue according to a waiting notification broadcasted by a waiting node to the network;

[0019] generating a transmission queue according to a transmission announcement broadcasted by a transmission node to the network;

[0020] Calculating the percentage of the number of the transmission nodes to the number of all nodes to obtain the percentage of network transmission nodes, where all nodes include the idle nodes, the waiting nodes and the transmission nodes;

[0021] The requesting node is added to the idle queue, the waiting queue or the transmission queue according to the percentage of the network transmission nodes and the identity of the requesting node.

[0022] In the above steps, the term "network transmission node percentage ŋ" refers to the percentage of the number of nodes currently participating in the transmission to the number of all nodes. "The identity of the requesting node" refers to the legitimacy of the MAC address of the network card. The lower three bytes of the MAC address must meet the address naming specifications for the identity identifier KEY. In the step of "adding the requesting node to the idle queue, the waiting queue or the transmission queue according to the network transmission node percentage and the identity of the requesting node", specifically, as in Example 1: Example 1

[0023] Set up a Gigabit switch to connect 20 nodes. When the transmission node percentage value ŋ reaches 30% (that is, 6 out of 20 nodes are transmitting at the same time), it is close to the actual maximum load of the network. Therefore, when reviewing the enqueue request, if the current network transmission node percentage ŋ is greater than 30%, the enqueue request is prohibited. When the actual total number of nodes is less than or equal to 6, the measured network congestion will not occur.

[0024] The above scheme or implementation method uses the active forecast transmission mechanism and constantly monitors and updates the transmission status initiated by itself, so that other Guangruntong network cards on the network can adjust and arrange their upcoming transmissions in time. This significantly reduces the occurrence of network congestion and fully utilizes the network traffic under full load.

[0025] Some specific plans based on the above plans include: Figure 1 In the steps shown, the node periodically sends out two types of link layer broadcast information, including the broadcast idle notification as shown in Table 1 and the broadcast transmission notification as shown in Table 2, wherein the broadcast idle notification is a message of requesting transmission broadcasted to the link layer every 5 seconds when the node requests transmission. The broadcast transmission notification is a message of the node's current transmission occupation broadcasted to the link layer every 5 seconds during the transmission process.

[0026] Table 1. Broadcast idle announcement message Ethernet frame format

[0027]

[0028] Table 2. Ethernet frame format of broadcast transmission announcement message

[0029]

[0030] Based on the above solutions, some more specific solutions, such as Figure 2Including transmission queue, waiting queue and idle queue, all nodes will self-generate a broadcast table through the broadcast mechanism. Some specific broadcast tables are network node status lists such as Table 3 saved in each node, which do not require network management maintenance.

[0031] Table 3. Network node status list

[0032]

[0033] Some solutions based on the above solutions also include assigning weights to the requesting nodes that join the idle queue, the waiting queue or the transmission queue.

[0034] In some solutions based on the above solutions, the requesting node added to the transmission queue runs the following steps in the current time period:

[0035] Decrease the weight of the request node currently added to the transmission queue in the previous time period by 1 weight unit to obtain the current transmission weight of the request node currently added to the transmission queue;

[0036] Calculate the cumulative running time of the current time period of the request node currently added to the transmission queue, calculate the average running time based on the cumulative running time of each time period of the request node added to the transmission queue, and calculate the ratio of the difference between the cumulative running time and the average running time to the average running time;

[0037] If the ratio of the difference between the accumulated running time and the average running time to the average running time is greater than the time threshold, or the current transmission weight is equal to 0,

[0038] Then the requesting node currently added to the transmission queue sends the message with the maximum delay.

[0039] If the requesting node added to the transmission queue no longer sends or receives messages,

[0040] The requesting node that joins the transmission queue updates the current transmission weight to 0, exits the transmission queue and joins the idle queue.

[0041] The step of the request node added to the transmission queue running in the current time period also includes: calculating the average of the current transmission weights of all the transmission nodes in the transmission queue to obtain the current transmission queue average weight; if the current transmission queue average weight is too small, pausing the weight update of the waiting nodes in the waiting queue in the current time period; after the percentage of network transmission nodes drops to less than the preset value, the weights of the nodes in the waiting queue continue to be updated.

[0042] It should be explained that the term "weight" is an integer data used to characterize the node status and transmission priority, and 1 weight unit is 1. The term "time period" is a time period synchronized with the broadcast table timing unit. For example, Table 3 proposes a time period synchronized with 5s as a timing unit, that is, the previous time period is within the previous 5s time period.

[0043] The original network link layer has no means to intervene in the ongoing transmission, causing the node to occupy the network load for a long time. In response to this situation, the above scheme enables the requesting node to actively reduce its own weight once it finds that the weight of the waiting transmission node is significantly higher than that of other waiting nodes. When the weight reaches the lower limit of the transmission queue weight, it becomes a transmission node that yields weight, that is, the requesting node achieves the purpose of speed reduction by adjusting the sending delay of UDP or TCP messages at the link layer, and the requesting node is still in the transmission queue at this time, but does not participate in the transmission node percentage calculation and does not participate in the weight calculation.

[0044] Example 2

[0045] The steps of the request node added to the transmission queue in each time period in the above scheme are specifically described through a specific implementation method. This embodiment assumes that there are n nodes in the transmission queue, the nth node is the request node that has been added to the transmission queue the most recently, and each time period is 5s. The initial weight value of the transmission node is set to 360.

[0046] Each node in the transmission queue receives a broadcast notification from other nodes every 5 seconds, and the nth node (the requesting node) is calculated as follows:

[0047] Starting from the initial weight, based on the requesting node's own weight in the last 5 seconds, the weight unit is decreased by 1:

[0048] Wn(t) = Wn(t-1)-1 Formula (1)

[0049] In formula (1), t is a time variable, Wn(t) is the weight of the requesting node in the t-th time period, Wn(t-1) is the weight of the requesting node in the t-1th time period, and n is the number of the requesting node in the transmission queue.

[0050] Determine whether the current running time of the requesting node meets any one of the conditions of formula (2-3):

[0051] Wn(t)=0 Formula (2)

[0052] In formula (2), t is a time variable, Wn(t) is the weight of the requesting node in the tth time period, and n is the number of the requesting node in the transmission queue.

[0053] [(Tn(t)-Te(t)) / Te(t)]>35% Formula (3)

[0054] In formula (3), t is the time variable, n is the number of the requesting node in the transmission queue, Tn(t) is the cumulative running time of the requesting node up to the tth time period, and Te(t) is the average running time of all nodes in the current transmission queue up to the tth time period.

[0055] If any of the conditions in the above formula (2-3) is met, the packet sending delay of the requesting node is adjusted to the maximum delay, and the identity of the requesting node is updated to the right-yielding transmission node. At this time, the requesting node is still in the transmission queue, but does not participate in the transmission node percentage calculation and does not participate in the weight calculation. This can effectively reduce the current network node transmission percentage ŋ.

[0056] The requesting node added to the transmission queue specifically runs the following steps in each time period:

[0057] Calculate the average weight We of the current transmission queue:

[0058]

[0059] Formula (4) t is the time variable, We is the average weight of the current transmission queue, and W i (t) is the weight of the i-th node in the transmission queue in the t-th time period; N is the number of all transmission nodes in the transmission queue, i is the node number in the transmission queue, and takes values ​​of 1, 2,…, N.

[0060] If We<100, it means that the current average network occupancy rate is high, and the nodes in the waiting queue will not update their weights. When the percentage of network transmission nodes ŋ≦35%, the weight update of the nodes in the waiting queue will be resumed.

[0061] The requesting node added to the transmission queue specifically runs the following steps in each time period:

[0062] Calculate the cumulative running time Tn(t) of the request node up to the tth time period:

[0063] Tn(t) = Tn(t-1)+1 Formula (5)

[0064] In formula (5), t is the time variable, n is the number of the requesting node in the transmission queue, Tn(t) is the cumulative running time of the requesting node up to the t-th time period, and Tn(t-1) is the cumulative running time of the requesting node up to the t-1th time period.

[0065] Calculate the average running time Te(t) of all nodes in the current transmission queue:

[0066]

[0067] In formula (6), t is the time variable, T i (t) is the cumulative running time of the i-th node in the transmission queue up to the t-th time period, Te(t) is the average running time of all nodes in the current transmission queue up to the t-th time period; N is the number of all transmission nodes in the transmission queue, i is the node number in the transmission queue, and takes values ​​of 1, 2,…, N.

[0068] The weighted transmission node is still in the transmission queue, but does not participate in the transmission node percentage calculation and does not participate in the weight calculation.

[0069] If the requesting node no longer sends or receives messages, and the transmission interruption caused by abnormal factors is eliminated, the requesting node joining the transmission queue directly clears the current weight Wn(t) of the requesting node, and the state of the current node is changed to idle (exiting the transmission queue and joining the idle queue). This means that the current node actively and completely gives up the right to use the transmission queue.

[0070] In some solutions based on the above solution, the requesting node initiates a transmission task after obtaining a network transmission token, and returns the network transmission token after the transmission task is completed. A token refers to a frame containing control information. The token process allows a network device to transmit data to the network.

[0071] In some solutions based on the above solution, the requesting node added to the waiting queue runs the following steps in the current time period:

[0072] Increment the weight of the previous time period of the request node currently added to the waiting queue by 1 weight unit to obtain the current waiting weight of the request node currently added to the waiting queue;

[0073] Calculate the current network transmission node percentage of the request node currently added to the waiting queue in the current time period;

[0074] If the current network transmission node percentage is less than a preset value, and the current waiting weight is the maximum value among the weights of all nodes added to the waiting queue;

[0075] Then the requesting node currently joining the waiting queue exits the waiting queue and joins the transmission queue.

[0076] Example 3

[0077] The method of increasing the weight of a waiting node is specifically explained through an embodiment. The embodiment assumes that the mth node in the waiting queue is the request node (current node) that has recently joined the transmission queue, and each time period is 5 seconds. The initial weight of the transmission node is set to 0.

[0078] When the waiting queue receives a broadcast notification from other nodes on the network every 5 seconds, the weight is calculated according to the following rules:

[0079] Calculate the current self-weight Wm(t) of the mth node, and increase the self-weight of the previous time period by one weight unit each time, as shown in formula (7):

[0080] Wm(t) = Wm(t-1) + 1 Formula (7)

[0081] It should be noted that, in formula (7), t is the time variable, Wm(t) is the weight of the request node in the tth time period, Wm(t-1) is the weight of the request node in the t-1th time period, and m is the number of the request node in the waiting queue.

[0082] Calculate the current transmission node percentage ŋ. If ŋ is less than 30%, determine whether the self-weight of the mth node has reached the maximum value in the current waiting queue. If the self-weight of the mth node is the maximum value in the current waiting queue, change the state of the mth node to the transmission state, and add the mth node to the transmission queue.

[0083] In some schemes based on the above scheme, the idle node initiates a transmission operation based on the context of the protocol stack; specifically, the idle node performs the following steps: when the idle node receives a message sent by the protocol stack, it directly joins the waiting queue. That is, when the idle node receives a UDP message or a TCP message sent by the protocol stack, it directly enters the waiting queue. Even if the percentage of transmission nodes ŋ in the current network is less than a preset value, it will not directly apply to join the transmission queue, but must go through the sequence of joining the idle queue and the waiting queue before joining the transmission queue.

[0084] In some solutions based on the above solutions, if the requesting node fails to join the waiting queue or the transmission queue, the current message is discarded, and the current message includes a UDP message or a TCP connection request.

[0085] Some solutions respond to network congestion by circumventing the network card, such as Figure 3 , includes at least one processor, a memory and a network interface, which stores instructions. When the instructions are executed by at least one processor, all the steps of all the above-mentioned schemes are implemented.

[0086] The processes and logic flows described in this specification may be performed by one or more programmable computers that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits), and the apparatus may also be implemented as special purpose logic circuits.

[0087] To transmit interactions with a user, embodiments of the subject matter described in this specification may be implemented on a computer having: a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user; and a keyboard and a pointing device, such as a mouse or a trackball, with which the user can transmit input to the computer. Other kinds of devices may also be used to transmit interactions with a user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic input, voice input, or tactile input. In addition, a computer may interact with a user by sending documents to a device used by the user and receiving documents from the device; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

[0088] The embodiments of the subject matter described in this specification can be implemented in a computing system, which includes a back-end component such as a data server, or includes an intermediate component such as an application server, or includes a front-end component such as a client computer, and the client computer has a graphical user interface or a web browser, and a user can interact with the implementation of the subject matter described in this specification through a graphical user interface or a web browser, or the computer system includes any combination of one or more such back-end components, intermediate components, or front-end components. The components in the system can be interconnected by digital data communication of any form or medium such as a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), for example, the Internet.

[0089] Specific implementations of the subject matter have been described. Other implementations are within the scope of the following claims. For example, the activities recited in the claims can be performed in a different order and still achieve the desired results. As an example, the processes described in the accompanying drawings do not necessarily require the specific order or sequential order shown in order to achieve the desired results. In certain implementations, multitasking and parallel processing may be advantageous.

[0090] Although the present invention has been described in detail above by general description, specific implementation methods and experiments, it is obvious to those skilled in the art that some modifications or improvements can be made to the present invention. Therefore, these modifications or improvements made without departing from the spirit of the present invention all belong to the scope of protection claimed by the present invention.

Claims

1. A method for avoiding network congestion reversely, characterized in that: The method comprises the following steps: generating an idle queue according to an idle notification broadcasted by an idle node to the network; generating a waiting queue according to a waiting notification broadcasted by a waiting node to the network; generating a transmission queue according to a transmission announcement broadcasted by a transmission node to the network; Calculating the percentage of the number of the transmission nodes to the number of all nodes to obtain the percentage of network transmission nodes, where all nodes include the idle nodes, the waiting nodes and the transmission nodes; If the percentage of network transmission nodes is less than the actual maximum load of the network, the requesting node is added to the transmission queue; if the percentage of network transmission nodes is greater than or equal to the actual maximum load of the network, the requesting node is prohibited from joining the transmission queue; the requesting node added to the transmission queue runs the following steps in the current time period: Decrease the weight of the request node currently added to the transmission queue in the previous time period by 1 weight unit to obtain the current transmission weight of the request node currently added to the transmission queue; Calculate the cumulative running time of the current time period of the request node currently added to the transmission queue, calculate the average running time based on the cumulative running time of each time period of the request node added to the transmission queue, and calculate the ratio of the difference between the cumulative running time and the average running time to the average running time; If the ratio of the difference between the accumulated running time and the average running time to the average running time is greater than the time threshold, or the current transmission weight is equal to 0; Then the requesting node currently added to the transmission queue sends the message with the maximum delay.

2. The method for avoiding network congestion reversely as claimed in claim 1, characterized in that: The method further comprises the steps of: Weights are assigned to nodes of the idle queue, the waiting queue or the transmission queue.

3. The network congestion reverse avoidance method according to claim 2, characterized in that: The step of adding the requesting node to the waiting queue is also included, and the requesting node in the waiting queue runs the following steps in the current time period: Incrementally increase the weight of the requesting node in the previous time period by 1 weight unit to obtain the current waiting weight of the requesting node; Calculate the current network transmission node percentage of the current requesting node in the current time period; If the current network transmission node percentage is less than a preset value, and the current waiting weight is the maximum value among the weights of all nodes in the waiting queue; Then the current requesting node exits the waiting queue and joins the transmission queue.

4. The method for avoiding network congestion reversely as claimed in claim 3, characterized in that: The step of the request node of the transmission queue running in the current time period also includes: calculating the average of the current transmission weights of all the transmission nodes in the transmission queue to obtain the current transmission queue average weight; if the current transmission queue average weight is too small, pausing the weight update of the waiting nodes in the waiting queue in the current time period; after the percentage of network transmission nodes drops to less than the preset value, the weights of the nodes in the waiting queue continue to be updated.

5. The method for avoiding network congestion reversely as claimed in claim 4, characterized in that: If the requesting node of the transmission queue no longer sends or receives messages, Then the requesting node of the transmission queue updates the current transmission weight to 0, exits the transmission queue and joins the idle queue.

6. The method for avoiding network congestion reversely according to claim 1, characterized in that: After receiving the message sent by the protocol stack, the idle nodes in the idle queue directly join the waiting queue.

7. The method for avoiding network congestion reversely as claimed in claim 1, characterized in that: If the requesting node fails to join the waiting queue or the transmission queue, the current message is discarded, and the current message includes a UDP message or a TCP connection request.

8. The method for avoiding network congestion reversely as claimed in claim 1, characterized in that: The requesting node initiates a transmission task after acquiring a network transmission token, and returns the network transmission token after the transmission task is completed.

9. A network congestion reverse avoidance network card, characterized in that: The network card includes at least one processor, a memory and a network interface, which stores instructions. When the instructions are executed by at least one processor, the steps of the network congestion reverse avoidance method described in any one of claims 1-8 are implemented.