Data transmission method and related equipment
By configuring quota amount and signaling packet control for the sender, the switch cache congestion caused by unscheduled packets in the communication network is solved, and the data transmission rate and flow completion time are improved.
Patent Information
- Application Number
- CN202010241837.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-03-31
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2040-03-31
AI Technical Summary
In a communication network, the sending end blindly sends unscheduled data packets, causing congestion in the switch cache, resulting in packet loss during data stream transmission, affecting the data transmission rate and completion time.
By configuring quota for each sender, the total amount of unscheduled packets is controlled, and only sent when unscheduled packets are allowed to be sent, and combined with the control of scheduled signaling packets, a large number of unscheduled packets are avoided from queuing at the switch, and packet management is carried out using four priority queues.
Effectively prevent data packet loss, reduce additional transmission time, improve data transmission rate and stream completion time (FCT), and reduce switch cache pressure.
Smart Images

Figure CN113472692B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of Internet technology, and in particular to a data transmission method and related equipment. Background Art
[0002] Currently, data streams transmitted across communication networks typically require low latency to meet service requirements. The method by which data streams are transmitted from the sender to the receiver affects the time required to transmit the data stream. Therefore, how to transmit data streams from the sender to the receiver is a key issue currently requiring attention.
[0003] In the related technology. When the sending end receives the data stream to be transmitted, it first sends a transmission request (Ready to send, RTS) message to the receiving end. After the receiving end receives the RTS message, it returns a signaling packet to the sending end based on the current network congestion. The signaling packet is used to indicate that the sending end can send a data packet of a reference size. When the sending end receives the signaling packet, it obtains part of the data from the data stream and generates a data packet, and sends the data packet. After receiving the data packet, the receiving end continues to send the next signaling packet to the sending end based on the current network congestion to instruct the sending end to continue sending the remaining data in the data stream. When the sending end has sent all the data in the data stream, it sends a transmission end (finish, FIN) message to the receiving end. The receiving end will no longer send signaling packets for the data stream to the sending end.
[0004] Furthermore, to avoid wasting the time between the sender's RTS message and the first data packet it sends, the sender sends an unscheduled data packet after the RTS message. This unscheduled data packet includes a portion of the data stream to be transmitted, allowing the sender to send some data in the data stream while waiting for the first signaling packet. This reduces the number of data packets that must be sent based on the signaling packet, thereby shortening the time required for the sender to transmit the data stream.
[0005] However, in communication networks, communication between senders and receivers is typically facilitated through switches. As a result, for any data stream, the sender blindly sends unscheduled packets. When the sender has a large number of data streams to transmit, the switch will continuously receive a large number of unscheduled packets. If the network is congested, the switch will prioritize sending higher-priority unscheduled packets, requiring the buffering of lower-priority scheduled packets. When the buffered data exceeds the switch's capacity, the switch will be unable to receive further data, resulting in packet loss during data transmission. Summary of the Invention
[0006] This application provides a data transmission method and related equipment, which can improve the data transmission rate. The technical solution is as follows:
[0007] In a first aspect, a data transmission method is provided. The method is applied to a transmitting end in a communication network, the communication network also including a switch and a receiving end, wherein:
[0008] Sending a transmission request RTS message to a receiving end through a switch according to a first data stream to be transmitted;
[0009] Get the remaining capacity of the quota configured for the sender, which indicates the total amount of unscheduled data packets that the sender is allowed to send.
[0010] When the remaining capacity is greater than zero, a first unscheduled data packet is sent to the receiving end through the switch, where the first unscheduled data packet carries data in the first data flow;
[0011] After sending the first unscheduled data packet, if a scheduled signaling packet sent by the receiving end has been received, a scheduled data packet is sent to the receiving end through the switch. The scheduled data packet carries data in the first data stream except for the data carried by the first unscheduled data packet. The scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet of the first data stream.
[0012] To prevent a sender from blindly sending an unscheduled packet upon receiving any data stream, thereby preventing congestion at the switch due to excessive unscheduled packets, the present application configures a quota for each sender. This quota indicates the total number of unscheduled packets the sender is allowed to send. This allows for control over the total number of unscheduled packets sent by each sender in the communication network. In other words, since the present application waits until an unscheduled packet is allowed to be sent before sending unscheduled data, it prevents a large number of unscheduled packets from queuing at the switch, effectively preventing packet loss and avoiding the extra transmission time caused by retransmission of lost packets, thereby significantly reducing FCT.
[0013] Optionally, after obtaining the remaining capacity of the quota configured for the sender, the following is also included:
[0014] When the remaining capacity is equal to zero, waiting to receive an unscheduled signaling packet sent by the receiving end, the unscheduled signaling packet is used to indicate the capacity increased by the quota;
[0015] In case of receiving an unscheduled signaling packet, the increased capacity is added to the remaining capacity to obtain an updated remaining capacity;
[0016] Based on the updated remaining capacity, if no scheduled signaling packet is received, the process returns to the step of obtaining the remaining capacity of the quota configured for the sending end.
[0017] After the sender sends the RTS message, if the remaining capacity of the quota is equal to zero, the sender needs to wait for the receiver to reallocate the new capacity of the quota. Then, if no scheduled signaling packet is received, the sender will resend the unscheduled data packet based on the updated remaining capacity to achieve control over the sending of unscheduled data packets.
[0018] Optionally, after waiting to receive an unscheduled signaling packet sent by the receiving end, the method further includes:
[0019] If a scheduled signaling packet is currently received, the scheduled data packet is sent to the receiving end through the switch.
[0020] If a scheduled signaling packet is received while waiting for an unscheduled signaling packet, the remaining data in the data stream will be sent via the scheduled data packet to achieve precise control over data stream transmission.
[0021] Optionally, after sending the first unscheduled data packet to the receiving end through the switch, the method further includes:
[0022] If no scheduled signaling packet sent by the receiving end is currently received, the operation of obtaining the remaining capacity of the quota configured for the sending end is returned.
[0023] After sending an unscheduled data packet, if no scheduled signaling packet is received, the unscheduled data packet will continue to be sent based on the remaining capacity of the quota, thereby avoiding the waste of waiting for the scheduled signaling packet and improving the efficiency of transmitting data flow.
[0024] Optionally, before returning to the step of obtaining the remaining capacity of the quota configured for the sender, the method further includes:
[0025] determining a total size of the first unscheduled data packet sent;
[0026] In a case where the total size of the sent first unscheduled data packets is less than or equal to the reference number of bytes, the process returns to the step of obtaining the remaining capacity of the quota configured for the sending end.
[0027] To further control unscheduled packets, the total size of unscheduled packets allowed to be sent for each data flow is fixed, thereby achieving control over the unscheduled packets of the entire network. This prevents the switch from affecting the transmission of scheduled packets due to only sending unscheduled packets, thereby reducing the probability of packet loss.
[0028] Optionally, if a scheduled signaling packet sent by a receiving end has been received, before the switch sends the scheduled data packet to the receiving end, the process further includes:
[0029] determining a size of remaining data in the first data stream excluding data carried by the first unscheduled data packet;
[0030] In the case that the size of the remaining data is greater than zero, the step of sending the scheduled data packet to the receiving end through the switch if the scheduled signaling packet sent by the receiving end has been currently received is executed.
[0031] For small flows, in the process of sending unscheduled data packets, the method provided by the embodiment of the present application may be able to complete the sending of the data in the data flow only through the unscheduled data packets. Therefore, in the process of sending unscheduled data packets, it is necessary to detect whether the remaining data has been sent to achieve precise control of the sending of unscheduled data packets.
[0032] Optionally, the switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue, and a scheduled data packet queue;
[0033] The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are ranked in descending order.
[0034] Compared to traditional technologies that require a large number of switch priority queues for service optimization, where the more priority queues there are, the lower the FCT will be, this application only needs four priority queues to implement transmission control for various types of data packets, eliminating the need for excessive priority queues and thus achieving a better FCT effect.
[0035] Optionally, the total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
[0036] In order to control the bandwidth of data packets through signaling packets, the switch can also control the total sending rate of unscheduled signaling packets and scheduled signaling packets, thereby reducing the probability of packet loss when transmitting scheduled data packets.
[0037] In a second aspect, a data transmission method is provided. The method is applied to a receiving end in a communication network, wherein the communication network further includes a switch and a transmitting end. The method includes:
[0038] determining, upon receiving an unscheduled data packet sent by the sender via the switch, a total size of the unscheduled data packets received from the last time an unscheduled signaling packet was sent to the receiver until a current time, the unscheduled signaling packet being used to indicate a capacity increase from a quota configured for the receiver, the quota being used to indicate a total amount of unscheduled data packets allowed to be sent by the sender;
[0039] If the total size reaches a reference size, the unscheduled signaling packet is sent to the sending end through the switch.
[0040] To prevent a sender from blindly sending an unscheduled packet upon receiving any data stream, thereby preventing congestion at the switch due to excessive unscheduled packets, the present application configures a quota for each sender. This quota indicates the total number of unscheduled packets the sender is allowed to send. This allows for control over the total number of unscheduled packets sent by each sender in the communication network. In other words, since the present application waits until an unscheduled packet is allowed to be sent before sending unscheduled data, it prevents a large number of unscheduled packets from queuing at the switch, effectively preventing packet loss and avoiding the extra transmission time caused by retransmission of lost packets, thereby significantly reducing FCT.
[0041] Optionally, the method further includes:
[0042] After receiving the RTS message sent by the sender through the switch, the switch sends a scheduled signaling packet to the sender, where the scheduled signaling packet is used to indicate that the sender is currently allowed to send the scheduled data packet.
[0043] The scheduled signaling packet is used to instruct the sender to send the scheduled data packet, thereby avoiding congestion during data transmission.
[0044] Optionally, the switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue, and a scheduled data packet queue;
[0045] The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are sequentially reduced.
[0046] Compared to traditional technologies that require a large number of switch priority queues for service optimization, where the more priority queues there are, the lower the FCT will be, this application only needs four priority queues to implement transmission control for various types of data packets, eliminating the need for excessive priority queues and thus achieving a better FCT effect.
[0047] Optionally, the total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
[0048] In order to control the bandwidth of data packets through signaling packets, the switch can also control the total sending rate of unscheduled signaling packets and scheduled signaling packets, thereby reducing the probability of packet loss when transmitting scheduled data packets.
[0049] In a third aspect, a transmitting end in a communication network is provided, wherein the transmitting end has the function of implementing the data transmission method described in the first aspect. The transmitting end includes at least one module configured to implement the data transmission method described in the first aspect.
[0050] In a fourth aspect, a receiving terminal in a communication network is provided, wherein the receiving terminal has the function of implementing the data transmission method described in the second aspect. The receiving terminal includes at least one module, wherein the at least one module is configured to implement the data transmission method described in the second aspect.
[0051] In a fifth aspect, a transmitting end is provided, wherein the transmitting end includes a processor and a memory, wherein the memory is used to store a program for the transmitting end to execute the data transmission method provided in the first aspect, and to store data involved in implementing the data transmission method provided in the first aspect. The processor is configured to execute the program stored in the memory. The operating device of the storage device may further include a communication bus, which is used to establish a connection between the processor and the memory.
[0052] In a sixth aspect, a receiving end is provided, wherein the receiving end includes a processor and a memory, wherein the memory is used to store a program for the receiving end to execute the data transmission method provided in the second aspect, and to store data involved in implementing the data transmission method provided in the second aspect. The processor is configured to execute the program stored in the memory. The operating device of the storage device may further include a communication bus, which is used to establish a connection between the processor and the memory.
[0053] In a seventh aspect, a computer-readable storage medium is provided, wherein instructions are stored in the computer-readable storage medium, which, when executed on a computer, enables the computer to execute the data transmission method described in the first or second aspect above.
[0054] In an eighth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the data transmission method described in the first or second aspect above.
[0055] The technical effects obtained in the above-mentioned third, fourth, fifth, sixth, seventh and eighth aspects are similar to the technical effects obtained by the corresponding technical means in the first or second aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0056] Figure 1 This is a schematic diagram of an in-broadcast provided in an embodiment of the present application;
[0057] Figure 2 This is a schematic diagram of an active congestion control method based on receiver-driven control provided in an embodiment of the present application;
[0058] Figure 3 This is a schematic diagram of a system architecture of a communication network provided in an embodiment of the present application;
[0059] Figure 4 This is a schematic diagram of a data center network provided by an embodiment of the present application;
[0060] Figure 5 This is a flow chart of a data transmission method provided by an embodiment of the present application;
[0061] Figure 6 This is a functional diagram of an unscheduled data packet transmission and quota control module provided in an embodiment of the present application;
[0062] Figure 7 This is a functional diagram of an unscheduled data packet receiving and unscheduled signaling packet scheduling module provided in an embodiment of the present application;
[0063] Figure 8 This is a functional diagram of a packet queuing and rate limiting module provided in an embodiment of the present application;
[0064] Figure 9 This is a schematic diagram of a data transmission process provided by an embodiment of the present application;
[0065] Figure 10 This is a quota control flow diagram provided by an embodiment of the present application;
[0066] Figure 11 This is a schematic diagram of the structure of a transmitting end provided in an embodiment of the present application;
[0067] Figure 12 This is a schematic diagram of the structure of a receiving end provided in an embodiment of the present application;
[0068] Figure 13 This is a structural diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0069] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0070] Before explaining the embodiments of the present application in detail, the application scenarios involved in the embodiments of the present application are first introduced.
[0071] With the rapid development of cloud computing, in-memory computing and other businesses, the requirements for data center networks are becoming increasingly higher. Data center networks need to maintain low latency, high throughput, and zero data loss to meet business needs. Among them, businesses in data center networks are particularly sensitive to flow completion time (FCT). FCT refers to the time required for a data flow to be transmitted from the sender to the receiver. In general, the end-to-end direct round-trip time (RTT) in a data center network is very short. However, since end-to-end round-trip communication needs to be implemented through a switch, for small flows, the queuing delay of data in the switch is the main reason for the longer FCT. For large flows, the queuing delay of data in the switch is relatively small compared to the time required to transmit the entire flow. Therefore, the FCT of large flows is mainly affected by the available bandwidth.
[0072] However, the high bandwidth, low latency, and shallow buffering in data center networks make meeting business needs challenging. One of the most serious issues is in-casting, a communication model where multiple senders correspond to one receiver. Figure 1 This is a schematic diagram of a broadcasting method provided by an embodiment of the present application. Figure 1 As shown, during in-casting, multiple senders' parallel computations suddenly generate a large number of many-to-one data flows. These data flows from multiple senders cause congestion and queues in the network's bottleneck switches. For example, in a typical data center network, the top-of-rack (ToR) switch at the access layer will overload the network to connect more service terminals. At this time, multiple service terminals sending data flows in parallel can easily cause congestion in the ToR switch. In in-casting scenarios, the shallow cache of the switch (i.e., the switch's low cache capacity) can easily cause packet loss, which in turn exacerbates the increase in FCT.
[0073] Traditional data transmission methods involve the sender controlling data transmission. Specifically, after network congestion occurs, the sender makes transmission adjustments based on received congestion signals. This type of data transmission is known as passive control. Passive control methods often only make transmission adjustments after congestion occurs, significantly damaging network performance before adjustments are made.
[0074] In recent years, academia and industry have proposed receiver-driven active congestion control methods. Receiver-driven congestion control differs from traditional passive control methods in that the data transmission process is led by the receiver. Figure 2 This is a schematic diagram of an active congestion control method based on receiver-driven control provided by an embodiment of the present application. Figure 2 As shown in Figure 1, receiver-driven congestion control works as follows: Before data transmission begins, each sender sends a request (RTS) to the receiver. After receiving the request, the receiver sends signaling packets to the sender at a certain rate. After receiving each signaling packet, the sender can send a corresponding data packet until the data flow transmission is completed.
[0075] In a receiver-driven congestion control approach, the transmitter must comply with the receiver's signaling packet transmission control. The receiver sends signaling packets to the transmitter in an orderly fashion based on the priority of incoming data flows, which the receiver configures based on service requirements. The switch limits the transmission rate of signaling packets based on link conditions. Since the transmitter can only send data packets after receiving a signaling packet, the switch's rate-limiting of signaling packets helps allocate data bandwidth. Therefore, before data is sent, the network implements flow control by limiting the transmission rate of signaling packets, proactively avoiding data packet congestion. When a signaling packet successfully arrives at the transmitter, it indicates that the link has allocated available bandwidth for that data packet. This congestion control approach also reduces packet loss by controlling the flow of signaling packets, avoiding the additional traffic and transmission time caused by lost and retransmitted packets, and thus reducing packet loss costs.
[0076] The data transmission method provided in the embodiments of the present application is applied to the above-mentioned scenario of data transmission based on signaling packets. It should be noted that the above-mentioned application scenario of the data transmission method provided in the present application is described using a data center network as an example. Optionally, the data transmission method provided in the embodiments of the present application can also be applied to other types of communication networks, and will not be described one by one here.
[0077] Next, the system architecture of the communication network involved in the embodiments of the present application is explained.
[0078] Figure 3 This is a schematic diagram of the system architecture of a communication network provided by an embodiment of the present application. Figure 3 As shown, the system 300 includes a server 301 and a switch 302. Any terminal server 301 is connected to the switch 302 via a wired or wireless connection for communication.
[0079] Each terminal server 301 can serve as both a sender and a receiver at the same time, that is, for any terminal server 301, the terminal server can be the sender of the data stream or the receiver of the data stream. Figure 3 The communication network shown can implement the data transmission method provided in the embodiments of the present application.
[0080] In addition, since the data transmission method provided in the embodiment of the present application can be applied to a data center network, a brief description of the data center network is also given here. Figure 4 This is a schematic diagram of a data center network provided by an embodiment of the present application. Figure 4 As shown, each terminal server accesses the network through a ToR switch. The ToR switch is interconnected with the aggregation switches in the same cluster. The aggregation switches in each cluster are connected to the core switch, enabling interconnection and interoperability between clusters and ensuring end-to-end path diversity and redundancy. Each terminal server can also be a data sender or receiver.
[0081] Next, the data transmission method provided in the embodiment of the present application is explained in detail.
[0082] Figure 5 This is a flow chart of a data transmission method provided by an embodiment of the present application, which is applied to Figure 3 or Figure 4 In the communication network shown in Figure 5 As shown, the method includes the following steps:
[0083] Step 501: The transmitting end sends an RTS message to the receiving end through a switch according to a first data stream to be transmitted.
[0084] In this embodiment of the present application, to control data transmission, a receiver-driven active congestion control method is used to transmit data. Therefore, when the transmitter receives any data stream (this embodiment of the present application uses the first data stream as an example), the transmitter first sends an RTS message to the receiver through the switch. This RTS message is used to notify the receiver that the transmitter needs to send the data stream.
[0085] The RTS message carries information such as the identifier of the data flow and the size of the data included in the data flow, allowing the receiver to subsequently return a scheduled signaling packet to the sender based on the RTS message. In other words, after receiving the RTS message from the sender via the switch, the receiver sends a scheduled signaling packet to the sender via the switch. This scheduled signaling packet indicates that the sender is currently allowed to send scheduled data packets.
[0086] To avoid wasting the time between the sender sending the RTS message and sending the first scheduled data packet, the sender can send an unscheduled data packet to the receiver through the switch after sending the RTS message. Furthermore, to prevent the sender from blindly sending an unscheduled data packet upon receiving any data stream, thereby causing congestion at the switch due to excessive unscheduled data packets, in this embodiment of the present application, a quota is configured for each sender. This quota indicates the total amount of unscheduled data packets that the sender is allowed to send. This allows for control over the total amount of unscheduled data packets sent by each sender in the communication network.
[0087] That is, since the present application waits until the unscheduled data packets are allowed to be sent before sending them, it can avoid a large number of unscheduled data packets from queuing at the switch, thereby effectively preventing data loss and avoiding the extra transmission time caused by retransmission of lost packets, thereby significantly reducing FCT.
[0088] For the convenience of subsequent explanation, the quota amount is explained here first.
[0089] In a communication network, there can be multiple senders, each of which is configured with a quota. When any sender receives a data stream, it can send unscheduled data packets based on the remaining capacity of its quota.
[0090] The initial capacity of the quota configured for each sender can be RTTBytes (bytes) × m. Among them, RTTBytes is a network measurement value, which represents the total amount of data sent by the sender to the receiver in an RTT time with a specified bandwidth in an unloaded network topology. The specified bandwidth can be the maximum transmission rate of the network when it is unloaded. m is a pre-configured parameter, and the network controller can control the total amount of unscheduled data packets transmitted simultaneously in the entire network by adjusting this parameter. In addition, when applying the method provided in this application, other methods can also be used to set the initial capacity of the quota for each sender, which will not be explained one by one here.
[0091] Step 502: The sender obtains the remaining capacity of the quota configured for the sender, where the quota is used to indicate the total amount of unscheduled data packets that the sender is allowed to currently send.
[0092] Based on the quota configuration, the sender needs to obtain the remaining capacity of the quota before sending the unscheduled data packet. Only when the remaining capacity is greater than zero can the sender send the unscheduled data packet through the following step 503, instead of blindly sending the unscheduled data packet directly after sending the RTS message.
[0093] As the sender continues to send unscheduled data packets, the remaining capacity of the quota decreases. Therefore, the remaining capacity of the quota must be promptly compensated to allow the sender to continue sending subsequent unscheduled data packets. Therefore, when the remaining capacity is zero, it indicates that the sender is not currently allowed to send unscheduled data packets. Therefore, the sender needs to wait to receive an unscheduled signaling packet from the receiver. This unscheduled signaling packet indicates the capacity added to the quota. Upon receiving the unscheduled signaling packet, the sender adds the increased capacity to the remaining capacity to obtain an updated remaining capacity. Based on the updated remaining capacity, if no scheduled signaling packet is currently received, the sender returns to the step of obtaining the remaining capacity of the quota configured for the sender.
[0094] That is, after the sender sends the RTS message, if the remaining capacity of the quota is equal to zero, the sender needs to wait for the receiver to reallocate the new capacity of the quota. Then, if the scheduled signaling packet is still not received, the sender will resend the unscheduled data packet based on the updated remaining capacity.
[0095] The receiving end controls the sending of the unscheduled signaling packet. The receiving end may control the sending of the unscheduled data packet by, upon receiving the unscheduled data packet sent by the sending end via the switch, determining the total size of the unscheduled data packets received from the last time the unscheduled signaling packet was sent to the receiving end until the current time; and if the total size reaches a reference size, sending the unscheduled signaling packet to the sending end via the switch.
[0096] That is, for any sending end, the receiving end can maintain a statistical table, which is used to indicate the total size of the unscheduled data packets received from the last time the unscheduled signaling packet was sent to the current position. If the total size reaches the reference size, it indicates that the current invention end has sent a certain amount of unscheduled data packets, and at this time the remaining capacity of the quota needs to be supplemented.
[0097] The reference size can be the size of a maximum transmission unit (MTU). In this scenario, the receiver sends an unscheduled signaling packet every time the sender sends an unscheduled data packet of the MTU size, thereby controlling the sender's quota.
[0098] Furthermore, the unscheduled signaling packet used to indicate the capacity to be increased by the quota may also be the reference size. For example, the reference size may be the size of one MTU. In this scenario, upon receiving an unscheduled data packet of the MTU size, the receiving end controls the quota capacity of the sending end to be increased by one MTU size, thereby controlling the quota of the sending end.
[0099] The unscheduled signaling packets generated by this application compete for bandwidth resources with the scheduled signaling packets of conventional technology. Since the ratio of bandwidth resources competed for by the unscheduled signaling packets to the bandwidth resources competed for by the scheduled signaling packets is equivalent to the ratio of bandwidth resources available to the unscheduled data packets to the bandwidth resources available to the scheduled data packets, the technical solution of this application addresses the defect of conventional bandwidth allocation that ignores unscheduled data packets, solves the problem of packet loss caused by unscheduled data packets forcibly occupying bandwidth allocated only to scheduled data packets, and thus makes data bandwidth allocation more accurate and complete.
[0100] Furthermore, if the sender receives a scheduled signaling packet while waiting for an unscheduled signaling packet from the receiver, it will no longer send the unscheduled data packet to the receiver. Instead, it will send the scheduled data packet based on the scheduled signaling packet. Therefore, while the sender is waiting for an unscheduled signaling packet from the receiver, if it does not receive an unscheduled signaling packet but receives a scheduled signaling packet, it will send the scheduled data packet to the receiver via the switch.
[0101] In addition, when the sender is waiting to receive the unscheduled signaling packet sent by the receiver, if the sender receives the unscheduled signaling packet first, but after updating the remaining capacity of the quota based on the unscheduled signaling packet, it receives the scheduled signaling packet again, then the remaining data in the data stream will also be sent in the form of scheduled data packets.
[0102] In addition, when the sender is waiting to receive the unscheduled signaling packet sent by the receiver, if it receives a scheduled signaling packet first, after sending the remaining data in the data stream in the form of a scheduled data packet, if it receives an unscheduled signaling packet, it is still necessary to update the remaining capacity of the quota based on the unscheduled signaling packet.
[0103] That is, in the embodiment of the present application, no matter at what time, as long as the sending end receives an unscheduled signaling packet, the remaining capacity of the quota is updated based on the unscheduled signaling packet.
[0104] Step 503: When the remaining capacity is greater than zero, a first unscheduled data packet is sent to the receiving end through the switch, where the first unscheduled data packet carries data in the first data flow.
[0105] After sending the RTS message, if the remaining capacity is greater than zero, it indicates that the current communication network allows the sender to send unscheduled data packets. Therefore, the sender can send the first unscheduled data packet based on step 503. The first unscheduled data packet is only used to distinguish the unscheduled data packets sent by the sender from the unscheduled data packets sent by other senders and has no special meaning.
[0106] In one possible implementation, the sending end may package and send the data stream from the beginning in unscheduled data packets, thereby sending the first unscheduled data packet to the receiving end in step 503. Alternatively, the sending end may process the data stream in other ways to obtain the first unscheduled data packet to be sent.
[0107] Step 504: After sending the first unscheduled data packet, if a scheduled signaling packet sent by the receiving end has been received, a scheduled data packet is sent to the receiving end through the switch. The scheduled data packet carries data in the first data stream except for the data carried by the first unscheduled data packet. The scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet.
[0108] After sending a first unscheduled data packet, the sender determines whether a scheduled signaling packet is currently received. If received, the sender stops sending data in the form of an unscheduled data packet and instead sends data in the form of a scheduled data packet.
[0109] Accordingly, if no scheduled signaling packet has been received from the receiving end, the process returns to obtaining the remaining capacity of the quota configured for the sending end. In other words, the process continues to send the next first unscheduled data packet based on the remaining capacity of the quota. This process of sending the first unscheduled data packet is repeated until a scheduled signaling packet is received.
[0110] In the process of cyclically executing the sending of the first unscheduled data packet, in order to avoid the current network congestion causing the sender to delay receiving the scheduled signaling packet, the sender is kept in the state of sending unscheduled data packets. Before returning to execute the step of obtaining the remaining capacity of the quota configured for the sender each time, the sender can also determine the total size of the first unscheduled data packet that has been sent; when the total size of the first unscheduled data packet that has been sent is less than or equal to the reference number of bytes, the sender returns to execute the step of obtaining the remaining capacity of the quota configured for the sender. Accordingly, when the total size of the first unscheduled data packet that has been sent is greater than the reference number of bytes, the sender no longer returns to execute the step of obtaining the remaining capacity of the quota configured for the sender, that is, the sending of the first unscheduled data packet is stopped.
[0111] That is, for any data stream, the sender has an upper limit on the number of unscheduled data packets that can be sent, and this upper limit is the reference byte. The reference byte can be RTTBytes, which has been explained in detail in the previous section and will not be repeated here.
[0112] In addition, during the process of cyclically sending the first unscheduled data packet, if the sender has completed sending the data stream through the unscheduled data packet before receiving the scheduled signaling packet, the sender will no longer send the scheduled data packet to the receiver even if it receives the scheduled signaling packet.
[0113] Therefore, in one possible implementation, before the sender sends the scheduled data packet to the receiver via the switch, the sender may determine the size of the remaining data in the first data stream, excluding the data carried by the first unscheduled data packet. If the size of the remaining data is greater than zero, the sender executes the step of sending the scheduled data packet to the receiver via the switch if a scheduled signaling packet sent by the receiver has already been received. Accordingly, if the size of the remaining data is equal to zero, the sender no longer sends the scheduled data packet to the receiver.
[0114] When a new data stream arrives at the sender, through steps 501 to 504, the sender first checks whether the remaining capacity of the quota is greater than zero (that is, whether there is currently a quota for unscheduled data packets). If the remaining capacity is equal to zero (indicating that there is currently no quota), the sender waits until the remaining capacity is restored before continuing. If the remaining capacity is greater than zero (indicating that there is currently a quota), the data stream is repacked and sent as unscheduled data packets, starting from the beginning. Each time an unscheduled data packet is sent, the data usage in the packet is deducted from the quota. This process repeats until any of the following four conditions occurs, at which point the sending of unscheduled data packets ceases:
[0115] (a) All data transmission of this data stream has been completed;
[0116] (b) The first scheduled signaling packet of this data flow has been received;
[0117] (c) Exhaustion of remaining capacity;
[0118] (d) The total amount of unscheduled data packets sent for the data flow reaches the reference byte, for example, the reference byte is RTTBytes, that is, the total amount of unscheduled data packets sent for the data flow reaches RTTBytes.
[0119] If (a) occurs, the flow operation ends. If (b) occurs, the remaining unsent data of the data flow is sent as scheduled data packets. If (c) occurs, the data flow stops sending until a new unscheduled signaling packet arrives to increase the remaining capacity of the quota. If (d) occurs, the remaining unsent data of the data flow is sent as scheduled data packets.
[0120] The above steps 502 to 503 can be implemented by deploying an unscheduled data packet transmission and quota control module in the transmitting end and an unscheduled data packet reception and unscheduled signaling packet scheduling module in the receiving end.
[0121] Figure 6 This is a functional diagram of an unscheduled data packet transmission and quota control module provided by an embodiment of the present application. Figure 6 As shown, when a new data stream arrives at the transmitter, after sending an RTS message, the unscheduled data packet transmission control module determines whether the remaining capacity of the quota is sufficient. If so, the data stream is transmitted as unscheduled data packets until any of the four aforementioned conditions occurs, at which point the transmission of unscheduled data packets ceases. In the figures of the embodiments of the present application, squares with a checkered background represent unscheduled data packets (UD), and circles with a checkered background represent unscheduled signaling packets (UT).
[0122] In addition, if Figure 6 As shown, each time an unscheduled data packet is sent, the unscheduled data packet transmission control module deducts the capacity of the quota, that is, updates the remaining capacity.
[0123] In addition, the unscheduled data packet quota control module increases the remaining capacity of the quota each time it receives an unscheduled signaling packet, thereby achieving quota control. For example, each time it receives an unscheduled signaling packet, it increases the remaining capacity of the quota by one MTU size.
[0124] Figure 7 This is a functional diagram of an unscheduled data packet receiving and unscheduled signaling packet scheduling module provided by an embodiment of the present application. Figure 7 As shown, the receiving end is deployed with an unscheduled data packet receiving module and an unscheduled signaling packet scheduling module.
[0125] When a receiver receives an unscheduled data packet (UD), the UD packet receiving module in the receiver not only sends the data to the upper-layer application but also records the data volume of the received UD packet and sends the recorded data volume to the UD signaling packet scheduling module. The UD signaling packet scheduling module maintains a statistical table for each sender, which records the amount of UD data received by the receiver from each sender.
[0126] For any sender, when the sender accumulates a reference size (e.g., MTU) of unscheduled data packets, the unscheduled signaling packet scheduling module sends an unscheduled signaling packet to the sender to increase its quota. After the unscheduled signaling packet is sent, the statistics table is updated, for example, by clearing the table to zero, to begin the next round of unscheduled data packet statistics.
[0127] Figure 6 and Figure 7The two modules in each of the two modules can realize the corresponding functions of the modules in the network protocol stack of the terminal server, or a corresponding module can be added to the network card of the terminal server.
[0128] Furthermore, since different types of data packets in a switch typically require queues with different priorities, in embodiments of the present application, the switch can be configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue, and a scheduled data packet queue. The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are arranged in descending order. This allows the switch to prioritize sending unscheduled signaling packets in the unscheduled signaling packet queue during network congestion. If there is no data in the unscheduled signaling packet queue, the scheduled signaling packet queue is sent first. If there is no data in the scheduled signaling packet queue, the unscheduled data packets in the unscheduled data packet queue are sent first. If there is no data in the unscheduled data packet queue, the scheduled data packets in the scheduled data packet queue are sent first. By setting these priorities, control over unscheduled signaling packets, scheduled signaling packets, unscheduled data packets, and scheduled data packets can be achieved.
[0129] Compared to traditional technologies that require a large number of switch priority queues for service optimization, where the more priority queues there are, the lower the FCT will be, this application only needs four priority queues to implement transmission control for various types of data packets, eliminating the need for excessive priority queues and thus achieving a better FCT effect.
[0130] Furthermore, the unscheduled signaling packet queue has a higher priority than the scheduled signaling packet queue. Because any new flow may need to send unscheduled data packets, and small flows are likely to be completed using unscheduled data packets, this priority setting effectively allocates bandwidth resources to new and small flows and optimizes the completion time of small flows. In other words, this application can fully utilize the first RTT time to transmit data, eliminating this waiting time and enabling the rapid completion of small flows.
[0131] Furthermore, to control the bandwidth of data packets using signaling packets, the switch can also control the combined sending rate of unscheduled and scheduled signaling packets. In one possible implementation, the combined sending rate of the unscheduled and scheduled signaling packet queues does not exceed a reference ratio of the bandwidth of the switch's output link.
[0132] Since the maximum capacity of a data packet is 1538 bytes and the maximum capacity of a signaling packet is 84 bytes, the ratio of 84 / 1538 is approximately 5%. Therefore, the switch only needs to control the total sending rate of the queues for sending unscheduled signaling packets and the queue for sending scheduled signaling packets to not exceed 5% of the bandwidth of the switch's output link to achieve a one-to-one correspondence between signaling packets and data packets. In other words, in this scenario, the reference ratio can be 5%.
[0133] Optionally, the reference ratio may also be set to other ratios according to the network congestion status, or may be set based on the bytes of data packets and signaling packets actually sent, which will not be described one by one here.
[0134] The priority queues and rate control configured at the above switches only require appropriate parameter settings in traditional technology switches, without modifying the functions and codes on the traditional technology switches. There is no need to know the traffic model in advance to prioritize each flow, which greatly reduces the complexity of deployment and simplifies deployment.
[0135] In one possible implementation, a packet queuing and rate limiting module may be deployed in a switch. Figure 8 This is a functional diagram of a packet queuing and rate limiting module provided in an embodiment of the present application. Figure 8 As shown, this module is responsible for queuing various packets. Priority queues must follow the following order, from highest to lowest: unscheduled signaling packet queue > scheduled signaling packet queue > unscheduled data packet queue > scheduled data packet queue. Furthermore, this module is responsible for limiting the port rate of the two signaling packet queues, ensuring that the combined transmission rate of the two queues does not exceed 5% of the port's output link.
[0136] In addition, the packet queuing and rate limiting module can be directly set in the existing functional module of the switch, and the priority queue of the outgoing port can be used to allocate the appropriate queue and perform port rate limiting.
[0137] In addition, in the switch priority setting, Figure 8 On the basis of the priority queue shown, the priority of the RTS message may also be set to the maximum, which will not be described in detail here.
[0138] In order to further clearly explain the technical solution of the present application, the technical solution of the present application can be explained again through the following two flow charts.
[0139] Figure 5 The data transmission method provided mainly includes two core processes, one is the data transmission process and the other is the quota control process. Figure 9 This is a data transmission flow diagram provided in an embodiment of the present application. Figure 10This is a quota control flow diagram provided in an embodiment of the present application.
[0140] like Figure 9 As shown, the data transmission process includes the following steps:
[0141] Step 1: Start the system at the sending end and set the parameters and initial capacity of the quota. The initial capacity can be set to RTTBytes×m.
[0142] Step 2: When a new data stream arrives, the sender sends an RTS message to the receiver to request the scheduled signaling packet.
[0143] Step 3: The sender checks whether there is a quota (whether the remaining capacity of the quota is greater than zero). If yes, skip to step 4; if no, skip to step 5
[0144] Step 4: Encapsulate an unscheduled data packet and send it, deducting the quota (updating the remaining quota capacity). If the data does not fit into a data packet, encapsulate an unscheduled data packet and send it, deducting the actual quota used. After completion, skip to step 7.
[0145] Step 5: Wait for the quota to be restored, then proceed to Step 6.
[0146] Step 6: If the quota has been restored, skip to step 4 to continue the rest of the process; if a scheduled signaling packet is received while waiting for the quota, skip to step 9.
[0147] Step 7: Check whether there is any remaining data in the data stream that has not been sent. If yes, skip to step 8; if not, skip to step 10.
[0148] Step 8: Check whether the scheduled signaling packet is received. If yes, skip to step 9; if not, skip to step 3.
[0149] Step 9: After receiving the scheduled signaling packet, encapsulate the remaining data into a scheduled data packet and send it according to the traditional active congestion control rules. Continue until all data has been sent, then jump to step 10.
[0150] Step 10: All the stream data is sent, and a FIN is sent to the receiving end to request the termination of the connection and stop sending signaling packets. All steps of the data transmission method are completed.
[0151] like Figure 10 As shown in the figure, the quota control process includes the following steps:
[0152] Step 1: Start the system at the sending end and set the parameters and initial capacity of the quota. The initial capacity can be set to RTTBytes×m.
[0153] Step 2: The data transfer process checks whether there is a quota (is the remaining capacity greater than zero). If there is a quota, skip to step 3; if not, skip to step 5.
[0154] Step 3: The data transmission process sends the unscheduled data packet and then jumps to step 4. At the receiving end, step 6 is performed at the same time.
[0155] Step 4: The sender deducts the amount of data used by the unscheduled packets from the current remaining capacity and then jumps to step 2.
[0156] Step 5: Since there is no available quota, the sender temporarily stops sending unscheduled packets and waits for the quota to be restored.
[0157] Step 6: The receiver receives the unscheduled data packet and jumps to step 7.
[0158] Step 7: On the receiving end, maintain the amount of unscheduled data received by each sender. Whenever an unscheduled data packet is received, update the cumulative number in this table. Then jump to step 8.
[0159] Step 8: Check whether the amount of data sent by the sender has accumulated a full MTU size. If not, jump to step 6 and wait for receiving new unscheduled data packets. If yes, jump to step 9. The MTU is the above Figure 5 In the illustrated embodiment, the reference size used to trigger the sending of the unscheduled signaling packet and the MTU size in step 8 are only used for illustration.
[0160] Step 9: Whenever a sender accumulates unscheduled data equal to one MTU, send an unscheduled signaling packet to that sender. Update the statistics table by subtracting one MTU from the data volume. Then proceed to Step 10.
[0161] Step 10: After receiving the unscheduled signaling packet sent by the receiving end, the sending end jumps to step 11.
[0162] Step 11: Restore the 1 MTU size quota and jump back to step 2. Continue the loop.
[0163] It should be noted that the above Figure 9 and Figure 10 It is merely one of the implementations of the data transmission method provided in this application and does not constitute a limitation on the implementation of the data transmission method provided in the embodiments of this application.
[0164] In addition, based on Figure 4 As can be seen from the system architecture shown, the communication network of the embodiment of the present application can be Figure 4 In this scenario, if Figure 4As shown, corresponding functional modules can be deployed in the terminal server and the switch respectively to implement the data transmission method provided in the embodiment of the present application. Figure 4 The modules with a medium gray background are newly added modules in the embodiment of the present application, and the modules with a white background are modules already existing in the traditional technology.
[0165] Since the terminal server can have the functions of both the sender and the receiver, the relevant modules of both the sender and the receiver are configured at the same time. For the sender, the sender-related modules include the unscheduled data packet transmission and quota control module newly added in this application, and the scheduled data packet sending module already in the traditional technology. The data transmission method process related to the unscheduled data packet described above is all deployed on the sender. In addition, Figure 10 Steps 1, 2, 3, 4, 5, 10, and 11 in the quota scheduling process are also deployed in the unscheduled data packet transmission and quota control module at the sending end.
[0166] The receiving end deploys the unscheduled data packet receiving and unscheduled signaling packet scheduling modules newly added in this application, and the scheduled signaling packet scheduling and scheduled data packet receiving modules already in the traditional technology. Figure 10 Steps 6, 7, 8 and 9 in the quota scheduling process shown are all deployed in the unscheduled data packet receiving and unscheduled signaling packet scheduling modules at the receiving end.
[0167] In addition, if Figure 4 As shown, the switch deploys the packet queuing and rate limiting modules newly introduced in this application, responsible for enqueuing packets based on priority and rate limiting the signaling packet queue. The implementation of these modules only requires appropriate configuration on the top-of-rack switches, aggregation switches, and core switches.
[0168] Figure 11 1 is a schematic diagram of the structure of a transmitting end in a communication network provided by an embodiment of the present application. The communication network also includes a switch and a receiving end. Figure 11 As shown, the sending end 1100 includes:
[0169] The sending module 1101 is configured to send a transmission request RTS message to a receiving end through a switch according to a first data stream to be transmitted;
[0170] An acquisition module 1102 is configured to acquire a remaining capacity of a quota configured for the sender, where the quota indicates the total amount of unscheduled data packets that the sender is allowed to currently send.
[0171] The sending module is further configured to send a first unscheduled data packet to the receiving end through the switch when the remaining capacity is greater than zero, wherein the first unscheduled data packet carries data in the first data flow;
[0172] The sending module is further configured to, after sending the first unscheduled data packet, send a scheduled data packet to the receiving end through the switch if a scheduled signaling packet sent by the receiving end has been currently received, the scheduled data packet carrying data in the first data stream other than the data carried by the first unscheduled data packet, and the scheduled signaling packet being used to indicate that the sending end is currently allowed to send the scheduled data packet of the first data stream.
[0173] Optionally, the sending end further includes:
[0174] a receiving module, configured to wait for receiving an unscheduled signaling packet sent by a receiving end when the remaining capacity is zero, wherein the unscheduled signaling packet is used to indicate the capacity increased by the quota;
[0175] an adding module, configured to add the increased capacity to the remaining capacity to obtain an updated remaining capacity when receiving an unscheduled signaling packet;
[0176] The acquisition module is further configured to return to the step of acquiring the remaining capacity of the quota configured for the sending end based on the updated remaining capacity when no scheduled signaling packet is received.
[0177] Optionally, after the receiving module waits to receive an unscheduled signaling packet sent by the receiving end, the sending module is further configured to send a scheduled data packet to the receiving end through the switch if a scheduled signaling packet is currently received.
[0178] Optionally, after the sending module sends the first unscheduled data packet to the receiving end through the switch, the acquiring module is further configured to: if no scheduled signaling packet sent by the receiving end is currently received, return to execute the operation of acquiring the remaining capacity of the quota configured for the sending end.
[0179] Optionally, before returning to execute the step of obtaining the remaining capacity of the quota configured for the sending end, the obtaining module is further configured to:
[0180] determining a total size of the first unscheduled data packet sent;
[0181] In a case where the total size of the sent first unscheduled data packets is less than or equal to the reference number of bytes, the process returns to the step of obtaining the remaining capacity of the quota configured for the sending end.
[0182] Optionally, if the sending module has currently received a scheduled signaling packet sent by the receiving end, before sending the scheduled data packet to the receiving end through the switch, it is further configured to:
[0183] determining a size of remaining data in the first data stream excluding data carried by the first unscheduled data packet;
[0184] In the case that the size of the remaining data is greater than zero, the step of sending the scheduled data packet to the receiving end through the switch if the scheduled signaling packet sent by the receiving end has been currently received is executed.
[0185] Optionally, the switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue, and a scheduled data packet queue;
[0186] The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are ranked in descending order.
[0187] Optionally, the total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
[0188] To prevent a sender from blindly sending an unscheduled packet upon receiving any data stream, thereby preventing congestion at the switch due to excessive unscheduled packets, the present application configures a quota for each sender. This quota indicates the total number of unscheduled packets the sender is allowed to send. This allows for control over the total number of unscheduled packets sent by each sender in the communication network. In other words, since the present application waits until an unscheduled packet is allowed to be sent before sending unscheduled data, it prevents a large number of unscheduled packets from queuing at the switch, effectively preventing packet loss and avoiding the extra transmission time caused by retransmission of lost packets, thereby significantly reducing FCT.
[0189] It should be noted that the transmitting end provided in the above embodiment is merely an example of the division of the above functional modules when transmitting data. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the transmitting end provided in the above embodiment and the data transmission method embodiment are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0190] Figure 12 is a receiving end in a communication network provided by an embodiment of the present application, and the communication network also includes a switch and a sending end. Figure 12 As shown, the receiving end 1200 includes:
[0191] The determining module 1201 is configured to determine, upon receiving an unscheduled data packet sent by a sending end through a switch, a total size of the unscheduled data packets received from the last time an unscheduled signaling packet was sent to the receiving end until the current time, wherein the unscheduled signaling packet indicates a capacity increase from a quota configured for the receiving end, and the quota indicates a total amount of unscheduled data packets that the sending end is allowed to send;
[0192] The sending module 1202 is configured to send an unscheduled signaling packet to the sending end through the switch if the total size reaches the reference size.
[0193] Optionally, the sending module is further configured to send a scheduled signaling packet to the sending end through the switch after receiving an RTS message sent by the sending end through the switch, where the scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet.
[0194] Optionally, the switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue, and a scheduled data packet queue;
[0195] The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are ranked in descending order.
[0196] Optionally, the total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
[0197] To prevent a sender from blindly sending an unscheduled packet upon receiving any data stream, thereby preventing congestion at the switch due to excessive unscheduled packets, the present application configures a quota for each sender. This quota indicates the total number of unscheduled packets the sender is allowed to send. This allows for control over the total number of unscheduled packets sent by each sender in the communication network. In other words, since the present application waits until an unscheduled packet is allowed to be sent before sending unscheduled data, it prevents a large number of unscheduled packets from queuing at the switch, effectively preventing packet loss and avoiding the extra transmission time caused by retransmission of lost packets, thereby significantly reducing FCT.
[0198] It should be noted that the receiving end provided in the above embodiment is merely an example of the division of the above functional modules when transmitting data. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the receiving end provided in the above embodiment and the data transmission method embodiment are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0199] Figure 13 This is a schematic diagram of the structure of an electronic device provided by an embodiment of the present application. The transmitting end, receiving end or switch in the embodiment of the present application can be Figure 13 The electronic devices shown are implemented. Figure 13 The electronic device includes at least one processor 1301 , a communication bus 1302 , a memory 1303 and at least one communication interface 1304 .
[0200] The processor 1301 may be a general-purpose central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
[0201] The communication bus 1302 may include a pathway for transmitting information between the aforementioned components.
[0202] The memory 1303 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1303 may exist independently and be connected to the processor 1301 via the communication bus 1302. The memory 1303 may also be integrated with the processor 1301.
[0203] The memory 1303 is used to store the program code for executing the solution of the present application, and the execution is controlled by the processor 1301. The processor 1301 is used to execute the program code stored in the memory 1303. The program code may include one or more software modules. For example, Figure 11 or Figure 12 In the software module.
[0204] The communication interface 1304 uses any transceiver or other device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc.
[0205] In a specific implementation, as an embodiment, the electronic device may include multiple processors, such as Figure 13 1 and 1305. Each of these processors can be a single-CPU processor or a multi-CPU processor. A processor herein can refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0206] The electronic device can be a general-purpose electronic device or a dedicated electronic device. In a specific implementation, the electronic device can be a desktop computer, a portable computer, a network server, a personal digital assistant (PDA), a mobile phone, a tablet computer, a wireless terminal device, a communication device, or an embedded device. The embodiments of the present application do not limit the type of electronic device.
[0207] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions 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 instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a digital versatile disc (DVD)), or a semiconductor medium (eg, a solid state disk (SSD)).
[0208] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, which may be a read-only memory, a disk, or an optical disk, etc.
[0209] The above description is an embodiment provided for this application and is not intended to limit this application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this application should be included in the scope of protection of this application.
Claims
1. A data transmission method, characterized in that: Applied to a transmitting end in a communication network, the communication network further comprising a switch and a receiving end, the method comprising: Sending a transmission request RTS message to the receiving end through the switch according to the first data stream to be transmitted; Obtaining a remaining capacity of a quota configured for the sender, where the quota indicates a total amount of unscheduled data packets that the sender is allowed to currently send; When the remaining capacity is greater than zero, sending a first unscheduled data packet to the receiving end through the switch, where the first unscheduled data packet carries data in the first data flow; After sending the first unscheduled data packet, if a scheduled signaling packet sent by the receiving end has been currently received, a scheduled data packet is sent to the receiving end through the switch, where the scheduled data packet carries data in the first data stream except for the data carried by the first unscheduled data packet, and the scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet of the first data stream.
2. The method according to claim 1, wherein After obtaining the remaining capacity of the quota configured for the sending end, the method further includes: When the remaining capacity is zero, waiting to receive an unscheduled signaling packet sent by the receiving end, the unscheduled signaling packet is used to indicate the capacity increased by the quota; Upon receiving the unscheduled signaling packet, adding the increased capacity to the remaining capacity to obtain an updated remaining capacity; Based on the updated remaining capacity, in the case where the scheduled signaling packet is not received, the step of obtaining the remaining capacity of the quota configured for the sending end is returned to.
3. The method according to claim 2, wherein After waiting to receive the unscheduled signaling packet sent by the receiving end, the method further includes: If the scheduled signaling packet is currently received, the scheduled data packet is sent to the receiving end through the switch.
4. The method according to claim 1, wherein After sending the first unscheduled data packet to the receiving end through the switch, the method further includes: If no scheduled signaling packet sent by the receiving end is currently received, the process returns to executing the operation of obtaining the remaining capacity of the quota configured for the sending end.
5. The method according to claim 4, wherein Before returning to execute the step of obtaining the remaining capacity of the quota configured for the sending end, the method further includes: determining a total size of the first unscheduled data packets sent; In a case where the total size of the first unscheduled data packets that have been sent is less than or equal to the reference number of bytes, the method returns to the step of obtaining the remaining capacity of the quota configured for the sending end.
6. The method according to claim 1, wherein If the scheduled signaling packet sent by the receiving end has been received, before the scheduled data packet is sent to the receiving end through the switch, the method further includes: determining a size of remaining data in the first data stream excluding data carried by the first unscheduled data packet; In a case where the size of the remaining data is greater than zero, the step of sending a scheduled data packet to the receiving end through the switch if a scheduled signaling packet sent by the receiving end has been currently received is performed.
7. The method according to claim 2, wherein The switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue and a scheduled data packet queue; The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are sequentially reduced.
8. The method according to claim 7, wherein The total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
9. A data transmission method, characterized in that: Applied to a receiving end in a communication network, the communication network further comprising a switch and a transmitting end, the method comprising: determining, upon receiving an unscheduled data packet sent by the sender via the switch, a total size of the unscheduled data packets received from the last time an unscheduled signaling packet was sent to the sender until a current time, the unscheduled signaling packet being used to indicate a capacity increase from a quota configured for the sender, the quota being used to indicate a total amount of unscheduled data packets that the sender is allowed to send; If the total size reaches a reference size, sending the unscheduled signaling packet to the sending end through the switch; receiving a transmit request RTS message sent by the sender through the switch, and sending a scheduled signaling packet to the sender through the switch in response to the RTS message, wherein the scheduled signaling packet is used to indicate that the sender is currently allowed to send a scheduled data packet; The sending end sends the unscheduled data packet before sending the RTS message and before receiving the scheduled signaling packet, and sends the scheduled data packet to the receiving end after receiving the scheduled signaling packet.
10. The method according to claim 9, wherein The switch is configured with an unscheduled signaling packet queue, a scheduled signaling packet queue, an unscheduled data packet queue and a scheduled data packet queue; The priorities of the unscheduled signaling packet queue, the scheduled signaling packet queue, the unscheduled data packet queue, and the scheduled data packet queue are sequentially reduced.
11. The method according to claim 10, wherein The total sending rate of the two queues, the unscheduled signaling packet queue and the scheduled signaling packet queue, sent by the switch does not exceed a reference ratio of the bandwidth of the output link of the switch.
12. A transmitting end in a communication network, characterized in that: The communication network further includes a switch and a receiving end, and the sending end includes: a sending module, configured to send a transmission request RTS message to the receiving end through the switch according to the first data stream to be transmitted; an acquisition module, configured to acquire a remaining capacity of a quota configured for the sender, wherein the quota is used to indicate a total amount of unscheduled data packets currently allowed to be sent by the sender; The sending module is further configured to send a first unscheduled data packet to the receiving end through the switch when the remaining capacity is greater than zero, wherein the first unscheduled data packet carries data in the first data flow; The sending module is further configured to, after sending the first unscheduled data packet, send a scheduled data packet to the receiving end through the switch if a scheduled signaling packet sent by the receiving end has been currently received, wherein the scheduled data packet carries data in the first data stream other than the data carried by the first unscheduled data packet, and the scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet of the first data stream.
13. A receiving end in a communication network, characterized in that: The communication network further includes a switch and a transmitting end, and the receiving end includes: a determination module configured to, upon receiving an unscheduled data packet sent by the sender via the switch, determine a total size of the unscheduled data packets received from the last time an unscheduled signaling packet was sent to the sender until a current time, wherein the unscheduled signaling packet indicates a capacity increase from a quota configured for the sender, the quota indicating a total amount of unscheduled data packets allowed to be sent by the sender; a sending module, configured to send the unscheduled signaling packet to the sending end through the switch if the total size reaches a reference size; The receiving end is further configured to receive a transmit request RTS message sent by the sending end through the switch, and in response to the RTS message, send a scheduled signaling packet to the sending end through the switch, wherein the scheduled signaling packet is used to indicate that the sending end is currently allowed to send the scheduled data packet; The sending end sends the unscheduled data packet before sending the RTS message and before receiving the scheduled signaling packet, and sends the scheduled data packet to the receiving end after receiving the scheduled signaling packet.
14. A transmitting end in a communication network, characterized in that: The transmitting end includes a memory and a processor; The memory is used to store a program that supports the sending end to execute the method according to any one of claims 1 to 8, and to store data involved in implementing the method according to any one of claims 1 to 8; The processor is configured to execute the program stored in the memory.
15. A receiving end in a communication network, characterized in that: The receiving end includes a memory and a processor; The memory is used to store a program that supports the receiving end to execute the method according to any one of claims 9 to 11, and to store data involved in implementing the method according to any one of claims 9 to 11; The processor is configured to execute the program stored in the memory.
16. A computer-readable storage medium, wherein instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is executed on a computer, the computer executes the method according to any one of claims 1 to 8, or the method according to any one of claims 9 to 11.
Citation Information
Patent Citations
Network congestion control method
CN110868359A