Processing method for reducing short message transmission delay of data center network
By dividing messages into "unplanned" and "to be scheduled" packets in the data center network and implementing priority management, the problem of delay and head-of-line blocking of TCP protocol when processing short messages is solved, and low-latency and efficient data transmission is achieved.
Patent Information
- Application Number
- CN202411842700.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-13
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2044-12-13
AI Technical Summary
In the prior art, the TCP protocol has problems with head-of-line blocking and delay when processing short messages in the data center network, especially under high network load, it cannot effectively meet the requirements of short messages for low latency.
By dividing the messages to be transmitted into "unplanned" packets and "scheduled" packets, and implementing priority management between the receiver and the transmitter, ensuring that high-priority short messages can be sent quickly and reduce latency. Under high load conditions, the receiver monitors the buffer status in real time, adjusts the frequency of sending "Agree" messages to prevent excessive buffer consumption.
It effectively reduces the transmission delay of short messages in the data center network, improves the system response speed, avoids the problem of head-of-line blocking, and prevents system congestion under high load conditions, ensuring stable and orderly data transmission.
Smart Images

Figure CN119697129A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data transmission, and in particular to a processing method for reducing short message transmission delay in a data center network. Background Art
[0002] Research has found that many data centers widely use request-response protocols based on very short messages (usually a few hundred bytes or even less) in their applications. These short messages are usually located in the control link and transmit important business logic information, such as heartbeat information (services use this message to determine whether the services are connected and whether the service is available). The number of messages transmitted in the data center network accounts for a high proportion, but due to their small size, they account for a low proportion of the transmission traffic. Due to their importance, these short messages usually have high requirements for latency. The lower the latency, the better the performance of the application. However, currently commonly used transmission protocols, such as the TCP transmission protocol, often introduce high latency for the processing of short messages, and this latency far exceeds the performance that the underlying hardware itself can provide. Especially when the network load is high, the latency problem caused by TCP becomes particularly prominent: for example, head-of-line blocking problems, delays caused by congestion control, and so on. The vast majority of services in the data center network rely on the TCP protocol as the transport layer protocol, although it is not always the best choice for processing very short messages, which affects the overall network performance of the data center.
[0003] TCP, also known as the Transmission Control Protocol, is a reliable, connection-oriented basic communication protocol for streaming data transmission. During data transmission, TCP divides data into segments of appropriate size, each of which contains a sequence number and an acknowledgment number. After the sender sends a data segment, it will wait for the receiver's confirmation. If the confirmation is not received within a certain period of time, the sender will retransmit the data segment to ensure the integrity of the data.
[0004] Another common transport layer protocol is UDP (User Datagram Protocol), which is a simple packet-oriented communication protocol. UDP only provides unreliable data delivery. Once it sends the data sent by the application to the network layer, it does not retain the data itself. UDP is suitable for applications that do not need or perform error checking and correction in the program, and it avoids the overhead of such processing in the protocol stack. Applications with high time requirements usually use UDP because discarding packets is preferable to waiting or retransmission and causing delays. Because UDP lacks reliability and is a connectionless protocol, applications usually have to tolerate some lost, erroneous, or duplicate packets. Some applications (such as TFTP) may add basic reliability mechanisms in the application layer as needed. Because UDP lacks congestion control, network-based mechanisms are required to reduce the congestion collapse effects caused by uncontrolled and high-speed UDP traffic loads. In other words, because the UDP sender cannot detect congestion, network infrastructure devices such as routers that use packet queues and discard techniques are used to reduce excessive UDP traffic. See Figure 1 ,in Figure 1 The five-layer network model of TCP and UDP is shown;
[0005] Further research found that the obvious technical defects of the above TCP protocol when used as a transport layer are as follows:
[0006] The first aspect is head-of-line blocking. TCP uses streaming transmission. When a short message is waiting to be transmitted after a long message, it will cause serious delays: the short message needs to wait for the previous long message to be transmitted, and the delay is significantly increased. In data center applications, short message communication is generally relied on, which affects application performance. Head-of-line blocking is a common problem in network communications. It occurs in the TCP protocol, especially when the application layer protocol needs to respond quickly, the impact is particularly significant. TCP is a connection-oriented protocol that provides reliable data transmission. Its streaming transmission characteristics mean that data packets are transmitted and assembled in sequence. The problem with head-of-line blocking is that when a shorter message follows a longer message and waits to be sent, the transmission of the short message will be blocked by the longer message due to the flow control mechanism. The long message needs to be received completely before the short message can start to be transmitted. This design is no problem for long messages, but for short messages that focus on low latency, it will cause unnecessary transmission waiting. In actual applications in data centers, services usually rely on a large number of small requests and responses, such as database queries, cache reads, etc. These operations are generally short, so in the streaming environment of TCP, any long message may cause head-of-line blocking of subsequent short messages. This blocking increases transmission delay, which in turn affects the overall performance of the application and user experience.
[0007] Second, it is not suitable for small messages. In modern data center networks, a large number of applications use request-response protocols, in which short messages dominate. When TCP handles burst traffic of such small messages, it is not designed to be optimized for small messages and cannot effectively distinguish the traffic characteristics of small and large messages. It may treat small messages the same as large messages, causing small messages to queue in the buffer, increasing the delay of short messages. This situation is particularly obvious under high network load, because TCP cannot use mechanisms such as network priority queues to prioritize short messages, and thus cannot meet the strict requirements of short messages for low latency.
[0008] At the same time, the disadvantages of UDP protocol as a transport layer are:
[0009] UDP does not provide any built-in reliability guarantees. During UDP transmission, there is no confirmation after sending a data packet, and there is no retransmission mechanism or flow control measures. If data packets are lost, damaged, or out of order during transmission, the UDP protocol itself will not automatically correct these problems, and the receiving end has no way to confirm whether the data has arrived intact and correctly. This means that applications need to implement reliability mechanisms on their own to ensure that data is transmitted accurately. This may be acceptable for real-time applications such as video streaming and online games, but it is not suitable for applications that require guaranteed data integrity.
[0010] No congestion control: UDP lacks a built-in congestion control mechanism. If the network is congested, UDP packets may be discarded without any processing, resulting in data loss. The sender will continue to send packets regardless of the actual transmission capacity of the network, which may further aggravate network congestion. The application layer needs to sense and handle these situations on its own, usually requiring the introduction of complex logic to avoid network overload. This may cause performance issues in high-load and unstable network environments.
[0011] Therefore, there is an urgent need for a multi-level method to reduce the delay in short message transmission in a data center network. Summary of the invention
[0012] The purpose of the present invention is to provide a processing method for reducing the transmission delay of short messages in a data center network, thereby solving the above-mentioned technical problems pointed out in the prior art.
[0013] The present invention provides a processing method for reducing the transmission delay of short messages in a data center network, comprising the following steps:
[0014] The receiver divides the messages to be transmitted into “unscheduled” packets and “to be scheduled” packets;
[0015] The sender first immediately sends the "unscheduled" data packet;
[0016] After sending the "unscheduled" data packet, the sender waits for the "accepted" data packet returned by the receiver;
[0017] The receiver assigns priority to the “to-be-scheduled” packets in the “accepted” packets;
[0018] The sender sends the corresponding "to be scheduled" data packets one by one from high priority to low priority according to the priority of the "to be scheduled" data packets specified by the receiver;
[0019] The receiver records the data message size of the currently sent "to be scheduled" data packet, and calculates the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains the preset standard ratio, and determines that the proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio. The unscheduled part of the message is of low priority; the receiver allocates the highest priority sending authority to the "unplanned" data packet, and reserves the low priority sending authority for the "to be scheduled" data packet;
[0020] It should be noted that the above receiver determines the dividing line between unscheduled priorities to ensure that each priority level processes the same number of unscheduled bytes and uses a higher priority for shorter messages; by utilizing the priority characteristics of the switch, a high priority is configured for short messages (such as unscheduled data packets) and a low priority is configured for long messages (such as unscheduled partial messages whose bytes account for a proportion of all bytes to be transmitted that is lower than a preset standard proportion, which is a low "to be scheduled" data packet) to achieve low-latency transmission;
[0021] Under high load conditions, the receiver grants permission to multiple senders; the current receiver calculates the remaining space in the current receiver buffer in real time; if the remaining space in the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "consent messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
[0022] Preferably, as an implementable solution; under high load conditions, before the receiver grants permission to multiple senders, it also includes: the receiver schedules data packets one by one, invites the sender to transmit subsequent bytes by sending an "agreement message", and ensures that there is always some data in an "agreement" but "not received" state.
[0023] Preferably, as an implementable embodiment; the transmitter first immediately sends the "unscheduled" data packet, and based on the allocation priority pre-set in the recent traffic pattern, passes multiple "unscheduled" data packets to the receiver.
[0024] Preferably, as an implementable embodiment, the "Agree" packet includes a "To be scheduled" packet specifying a priority. The "Agree" packet indicates that the sender can now transmit all bytes in the message up to a given offset and specifies the priority to be used, so that messages with fewer unauthorized bytes are given higher priority.
[0025] Preferably, as an implementable embodiment; after the transmitter first immediately sends the "unplanned" data packet, it also includes: the receiver determines whether the reception timeout occurs within a predetermined time, and if so, the receiver instructs the transmitter to "retransmit the message"; if not, the receiver receives the "unplanned" data packet.
[0026] When the receiver instructs the transmitter to “retransmit the message”, the receiver sends a “retransmit message”, wherein the “retransmit message” identifies the message range of the missing bytes, and then the transmitter retransmits the message of the missing bytes.
[0027] Preferably, as an implementation scheme, when the current sender is in a busy state, it also includes a busy message sent by the sender to the receiver; the busy message indicates that the sender is currently unable to process the retransmission request immediately, and is used to notify the receiver that the sender is busy transmitting other messages with higher priority, and to prevent the receiver from triggering a timeout mechanism due to not receiving the expected retransmission message within a preset time period. This helps maintain the stability of data transmission, avoid unnecessary retransmissions, and thus reduce network burden.
[0028] A system for reducing short message transmission delay in a data center network, comprising:
[0029] The receiver is used to classify the messages to be transmitted into "unscheduled" data packets and "to be scheduled" data packets; the receiver assigns a priority to the "to be scheduled" data packets in the "agreement" data packets;
[0030] The transmitter is used to immediately send the "unscheduled" data packet first; and is also used to wait for the "approved" data packet returned by the receiver after sending the "unscheduled" data packet; the transmitter sends the corresponding "to be scheduled" data packets from high priority to low priority one by one according to the priority of the "to be scheduled" data packet specified by the receiver;
[0031] The receiver is also used to record the data message size of the "to be scheduled" data packet currently being sent, and calculate the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains a preset standard ratio, and determines that the proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio. The unscheduled part of the message is of low priority; the receiver allocates the highest priority transmission authority to the "unplanned" data packet, and reserves the low priority transmission authority for the "to be scheduled" data packet;
[0032] Under high load conditions, the receiver grants permission to multiple senders; the current receiver calculates the remaining space in the current receiver buffer in real time; if the remaining space in the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "consent messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
[0033] The receiver is also used to schedule data packets one by one, inviting the transmitter to transmit subsequent bytes by sending an "acceptance message", and ensuring that some data is always in the "accepted" but "not received" state. The switch module supports configuring a priority level for each network port, and the priority level is used to distinguish short messages from long messages to achieve hardware-level priority transmission.
[0034] A storage medium includes a stored program, wherein when the program is running, the device where the storage medium is located is controlled to execute the above-mentioned processing method for reducing the delay of short message transmission in a data center network.
[0035] Compared with the prior art, the embodiments of the present invention have at least the following technical advantages:
[0036] By analyzing the above-mentioned processing method for reducing the transmission delay of short messages in a data center network provided by the present invention, it can be known that in a specific application, the receiver divides the messages to be transmitted into "unscheduled" data packets and "to be scheduled" data packets;
[0037] The sender first immediately sends the "unscheduled" data packet;
[0038] After sending the "unscheduled" data packet, the sender waits for the "accepted" data packet returned by the receiver; the receiver specifies the priority for the "to be scheduled" data packet in the "accepted" data packet;
[0039] The sender sends the corresponding "to be scheduled" data packets one by one from high priority to low priority according to the priority of the "to be scheduled" data packets specified by the receiver;
[0040] The receiver records the data message size of the currently sent "to be scheduled" data packet, and calculates the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains the preset standard ratio, and determines that the proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio. The unscheduled part of the message is of low priority; the receiver allocates the highest priority sending authority to the "unplanned" data packet, and reserves the low priority sending authority for the "to be scheduled" data packet;
[0041] Under high load conditions, the receiver grants permission to multiple senders; the current receiver calculates the remaining space in the current receiver buffer in real time; if the remaining space in the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "consent messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
[0042] It should be noted that the above receiver determines the dividing line between unscheduled priorities to ensure that each priority level processes the same number of unscheduled bytes and uses a higher priority for shorter messages; by utilizing the priority characteristics of the switch, a high priority is configured for short messages (such as unscheduled data packets) and a low priority is configured for long messages (such as unscheduled partial messages whose bytes account for a proportion of all bytes to be transmitted that is lower than a preset standard proportion, which is a low "to be scheduled" data packet) to achieve low-latency transmission;
[0043] The above-mentioned processing method for reducing the transmission delay of short messages in a data center network provided by the present invention has the function of optimizing data transmission efficiency: by classifying data packets ("unscheduled" data packets and "to be scheduled" data packets), priority management is implemented to ensure that high-priority data packets (short messages) can be sent quickly, thereby reducing delays. Dynamic priority adjustment is implemented: that is, the receiver dynamically adjusts the sending authority according to the proportion of unscheduled messages to ensure that low-priority "to be scheduled" data packets do not hinder high-priority "unscheduled" data packets, thereby improving the response speed of the system. In addition, under high load conditions, the receiver can monitor the status of its buffer in real time, and adjust the frequency of sending "agree" messages according to the remaining space to prevent excessive occupancy of the buffer and ensure the stability of the system. By giving priority to short messages and slowing down the sending rate when the load is high, the risk of system congestion is effectively reduced, thereby achieving low-latency message transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0045] Figure 1 It is a flow chart in the prior art;
[0046] Figure 2 A flowchart of a processing method for reducing short message transmission delay in a data center network provided in Embodiment 1 of the present invention;
[0047] Figure 3 A specific operation flow chart of a method for reducing short message transmission delay in a data center network provided in Embodiment 1 of the present invention. DETAILED DESCRIPTION
[0048] The technical solution of the present invention will be described clearly and completely below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0049] The present invention is further described in detail below through specific embodiments in conjunction with the accompanying drawings.
[0050] Embodiment 1
[0051] like Figure 2 As shown, the present invention proposes a processing method for reducing the transmission delay of short messages in a data center network, comprising the following steps:
[0052] S10, the receiver divides the message to be transmitted into an "unscheduled" data packet and a "to be scheduled" data packet;
[0053] S20, the sender first immediately sends the "unplanned" data packet;
[0054] S30, after sending the "unplanned" data packet, the sender waits for the "accepted" data packet returned by the receiver;
[0055] S40, the receiver specifies a priority for the "to be scheduled" data packet in the "accepted" data packet;
[0056] S50, the transmitter sends the corresponding "to be scheduled" data packets one by one from high priority to low priority according to the priority of the "to be scheduled" data packets specified by the receiver;
[0057] S60, the receiver records the data message size of the "to be scheduled" data packet currently being sent, and calculates the proportion of the bytes of the unscheduled partial message in the corresponding bytes of all the "to be scheduled" data packets that need to be transmitted; the receiver obtains the preset standard ratio, and determines that the proportion of the bytes of the current unscheduled partial message in all the bytes that need to be transmitted is lower than the preset standard ratio, and the unscheduled partial message is of low priority; the receiver allocates the highest priority sending authority to the "unscheduled" data packet, and reserves the low priority sending authority for the "to be scheduled" data packet; it should be noted that the above-mentioned receiver determines the dividing line between the unscheduled priorities to ensure that each priority level processes the same number of unscheduled bytes, and makes shorter messages use higher priorities; using the priority characteristics of the switch, high priority is configured for short messages (such as unscheduled data packets), and low priority is configured for long messages (such as the proportion of the bytes of the current unscheduled partial message in all the bytes that need to be transmitted is lower than the preset standard ratio, and the unscheduled partial message is a low "to be scheduled" data packet) to achieve low-latency transmission;
[0058] S70. Under high load conditions, the receiver grants permission to multiple senders; the current receiver calculates the remaining space of the current receiver buffer in real time; if the remaining space of the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "agreement messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate. This method ensures that each incoming message occupies a certain buffer space at most in the receiver by controlling the excessive use of the receiver's downlink. This is different from the situation where TCP may cause excessive buffer occupancy when processing burst traffic, which enables this method to ensure efficient use of the buffer while avoiding the delay caused by an overly long buffer queue.
[0059] The above-mentioned processing method for reducing the transmission delay of short messages in a data center network provided by the present invention has the function of optimizing data transmission efficiency: by classifying data packets ("unscheduled" data packets and "to be scheduled" data packets), priority management is implemented to ensure that high-priority data packets (short messages) can be sent quickly, thereby reducing delays. Dynamic priority adjustment is implemented: that is, the receiver dynamically adjusts the sending authority according to the proportion of unscheduled messages to ensure that low-priority "to be scheduled" data packets do not hinder high-priority "unscheduled" data packets, thereby improving the response speed of the system. In addition, under high load conditions, the receiver can monitor the status of its buffer in real time, and adjust the frequency of sending "agree" messages according to the remaining space to prevent excessive occupancy of the buffer and ensure the stability of the system. By giving priority to short messages and slowing down the sending rate when the load is high, the risk of system congestion is effectively reduced, thereby achieving low-latency message transmission.
[0060] Preferably, as an implementable solution; under high load conditions, before the receiver grants permission to multiple senders, it also includes: the receiver schedules data packets one by one, invites the sender to transmit subsequent bytes by sending an "agreement message", and ensures that there is always some data in an "agreement" but "not received" state.
[0061] Preferably, as an implementable embodiment; the transmitter first immediately sends the "unscheduled" data packet, and based on the allocation priority pre-set in the recent traffic pattern, passes multiple "unscheduled" data packets to the receiver.
[0062] The receiver dynamically determines the priority based on the message size and real-time traffic conditions. For "unscheduled" packets, the receiver pre-assigns priority based on recent traffic patterns and passes this information to the sender; for "pending" packets, the receiver specifies the priority in the "agreed" packet, achieving more precise priority control. This is different from TCP's single priority (that is, no priority) processing method, which effectively solves the problem of TCP's lack of flexibility in handling different types of messages and ensures that short messages can be transmitted quickly through the network.
[0063] Preferably, as an implementable embodiment, the "Agree" packet includes a "To be scheduled" packet specifying a priority. The "Agree" packet indicates that the sender can now transmit all bytes in the message up to a given offset and specifies the priority to be used, so that messages with fewer unauthorized bytes are given higher priority.
[0064] Preferably, as an implementable embodiment; Figure 3 As shown, after the transmitter first immediately sends the "unscheduled" data packet, it also includes:
[0065] S21. The receiver determines whether the reception timeout occurs within the predetermined time. If so, the receiver sends a "resend message" instruction to the transmitter; if not, the receiver receives an "unplanned" data packet.
[0066] S22. When the receiver instructs the transmitter to "retransmit the message", the receiver sends a "retransmit message", wherein the "retransmit message" identifies the message range of the missing bytes, and then the transmitter retransmits the message of the missing bytes.
[0067] Preferably, as an implementable solution, when the current transmitter is in a busy state, it also includes a busy message sent by the transmitter to the receiver;
[0068] The busy message indicates that the sender is currently unable to process the retransmission request immediately, and is used to inform the receiver that the sender is busy transmitting other messages with higher priority, and to prevent the receiver from triggering a timeout mechanism due to not receiving the expected retransmission message within a preset time period. This helps maintain the stability of data transmission, avoid unnecessary retransmissions, and thus reduce network burden.
[0069] The receiver records the data message size of the currently sent "to be scheduled" data packet, and calculates the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains the preset standard ratio, and determines that the unscheduled part of the message whose proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio is a low priority; the receiver allocates the highest priority sending authority to the "unplanned" data packet, and reserves the low priority sending authority for the "to be scheduled" data packet; then in a further technical solution, the receiver determines the dividing line between the priorities of the unscheduled data packets so that each priority level processes the same number of unscheduled bytes, and shorter messages use higher priorities. By ensuring that each priority level processes the same number of unscheduled bytes, the receiver can allocate resources fairly, while giving priority to short messages, thereby improving overall transmission efficiency.
[0070] The following table shows various message types involved in a processing method for reducing the transmission delay of short messages in a data center network proposed by the present invention;
[0071]
[0072] The present invention proposes a processing method for reducing the transmission delay of short messages in a data center network, using a shortest remaining processing time strategy. Compared with the method in which TCP does not distinguish the order of message processing, the present method can give priority to processing short messages with fewer remaining bytes, thereby significantly reducing the delay of short messages and improving the overall performance. The shortest remaining processing time strategy is characterized in that, for example, three people queue up to get water, two people use small buckets, and it takes one minute to get water once, and one person uses a large bucket, and it takes ten minutes to get water once; at this time, the optimal strategy is that the person using the small bucket gets water first, and the person using the large bucket gets water later, and the total waiting time is 1+(1+1)+(1+1+10)=15 minutes. This is the shortest remaining time strategy. However, the fair scheduling strategy of TCP may result in a situation in which the person using the large bucket gets water first, and the person using the small bucket gets water later, making the total waiting time 10+(10+1)+(10+1+1)=33 minutes.
[0073] Each receiver keeps statistics on the size of its incoming messages and uses the message size distribution to calculate the fraction of all incoming bytes that are unscheduled to determine the priority level, and then assigns those available priorities with the highest fraction to "unscheduled" packets, and reserves the remaining lower priority levels for "to be scheduled" packets. The receiver then determines the dividing line between the unscheduled priorities so that each priority level handles the same number of unscheduled bytes, and shorter messages use higher priorities.
[0074] For scheduled packets, the receiver assigns a priority in each "yes" packet, and the sender uses that priority for the bytes that have been granted. This allows the receiver to dynamically adjust the priority assignments based on the precise set of messages received. The receiver uses a different priority level for each message, with messages with fewer ungranted bytes being given a higher priority.
[0075] Embodiment 2
[0076] Embodiment 2 of the present invention provides a system for reducing short message transmission delay in a data center network, including:
[0077] The receiver is used to classify the messages to be transmitted into "unscheduled" data packets and "to be scheduled" data packets; the receiver assigns a priority to the "to be scheduled" data packets in the "agreement" data packets;
[0078] The transmitter is used to immediately send the "unscheduled" data packet first; and is also used to wait for the "approved" data packet returned by the receiver after sending the "unscheduled" data packet; the transmitter sends the corresponding "to be scheduled" data packets from high priority to low priority one by one according to the priority of the "to be scheduled" data packet specified by the receiver;
[0079] The receiver is also used to record the data message size of the "to be scheduled" data packet currently being sent, and calculate the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains a preset standard ratio, and determines that the proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio. The unscheduled part of the message is of low priority; the receiver allocates the highest priority transmission authority to the "unplanned" data packet, and reserves the low priority transmission authority for the "to be scheduled" data packet;
[0080] Under high load conditions, the receiver grants permission to multiple senders; the current receiver calculates the remaining space in the current receiver buffer in real time; if the remaining space in the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "consent messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
[0081] Preferably, as an implementable solution, the receiver is also used to schedule data packets one by one, invite the transmitter to transmit subsequent bytes by sending an "agreement message", and ensure that there is always some data in the "agreement" but "not received" state.
[0082] Embodiment 3
[0083] Embodiment 3 of the present invention provides a storage medium, which includes a stored program, wherein when the program is running, the device where the storage medium is located is controlled to execute the above-mentioned processing method for reducing the delay of short message transmission in a data center network.
[0084] In summary, the processing method, system and storage medium for reducing the transmission delay of short messages in a data center network proposed in the example of the present invention can be known that compared with UDP, the present method has the following advantages: First, reliable data transmission. UDP does not check whether the data packet arrives successfully and lacks a retransmission mechanism. The processing method adopted by the present invention performs timeout retransmission during the message delivery process. If no additional data packets arrive for a message for a long time (several milliseconds), the receiver sends a "retransmission message" that identifies the first range of missing bytes, and then the sender retransmits these bytes. If all the initial data packets of a request are lost, the server will not know about the message, so it will not send a "retransmission" request. However, the client will time out due to not receiving a response message, and it will send a "retransmission" request for the response. When the server receives a retransmission request for a response represented by an unknown identifier, it assumes that the request message must have been lost, and then sends a retransmission request for the previous part of the request.
[0085] The second aspect is congestion control. UDP lacks a congestion control mechanism. When the network is under high load, data packets may be discarded by network devices, and the network is in a congested state. If the application is allowed to continue to send data packets in an unordered manner, the congestion will become more serious. The processing method adopted by the present invention realizes receiver-driven congestion control: when the receiver buffer is close to saturation or the network is congested, the frequency of sending "agreement messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate, avoids network overload, ensures stable and orderly data transmission, and prevents data packet loss and congestion due to excessive sending.
[0086] At the same time, compared with TCP, the delay of short messages is greatly reduced. That is, in the case of mixed transmission of long and short messages, due to the implementation of the priority mechanism, the worst delay of small messages can be controlled to a level close to the hardware delay, which greatly reduces the delay of short messages compared with TCP. Avoiding the head-of-line blocking problem: Since there is no mechanism for the sender to blindly send data like TCP, the receiver can better control the inflow of data. High throughput: By actively utilizing the priority queue provided by the network switch and dynamically allocating priorities at the receiver, combined with the receiver-driven flow control mechanism, the network bandwidth is effectively used, the utilization of bandwidth is improved, and the throughput of long messages is improved while ensuring the delay of short messages.
[0087] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. A person skilled in the art may modify the technical solutions described in the above embodiments, or replace part or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for reducing the delay of short message transmission in a data center network, characterized in that: The steps include: The receiver divides the messages to be transmitted into "unscheduled" packets and "to be scheduled" packets; The sender first immediately sends the "unscheduled" data packet; After sending the "unplanned" data packet, the sender waits for the "accepted" data packet returned by the receiver; The receiver assigns priority to the "to-be-scheduled" packets in the "accepted" packets; The sender sends the corresponding "to be scheduled" data packets one by one from high priority to low priority according to the priority of the "to be scheduled" data packets specified by the receiver; The receiver records the data message size of the currently sent "to be scheduled" data packet, and calculates the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains the preset standard ratio, and determines that the unscheduled part of the message whose proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio is a low priority; The receiver allocates the highest priority sending rights to the "unscheduled" data packets, and reserves the lower priority sending rights for the "to be scheduled" data packets; Under high load conditions, receivers grant permissions to multiple senders; The current receiver calculates the remaining space of the current receiver buffer in real time; if the remaining space of the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "agreement messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
2. The method according to claim 1, characterized in that Under high load conditions, before the receiver grants permission to multiple senders, it also includes: the receiver schedules data packets one by one, invites the sender to transmit subsequent bytes by sending an "acceptance message", and ensures that there is always some data in the "accepted" but "not received" state.
3. The method according to claim 2, characterized in that The sender first immediately sends the "unscheduled" data packets and passes multiple "unscheduled" data packets to the receiver based on the pre-set allocation priority based on the recent traffic pattern.
4. The method according to claim 2, characterized in that: The "agree" data packet includes the priority specified by the "to be scheduled" data packet.
5. The method according to claim 2, characterized in that: After the transmitter immediately sends the "unplanned" data packet, the method also includes: the receiver determines whether the reception has timed out within a predetermined time. If so, the receiver instructs the transmitter to "retransmit the message"; if not, the receiver receives the "unplanned" data packet. When the receiver instructs the transmitter to “retransmit the message”, the receiver sends a “retransmit message”, wherein the “retransmit message” identifies the message range of the missing bytes, and then the transmitter retransmits the message of the missing bytes.
6. The method according to claim 2, characterized in that When the current transmitter is in a busy state, it also includes a busy message sent by the transmitter to the receiver; the busy message indicates that the transmitter is currently unable to process the retransmission request immediately, and is used to notify the receiver that the transmitter is busy transmitting other messages with higher priority, and to prevent the receiver from triggering a timeout mechanism due to failure to receive the expected retransmission message within a preset time period.
7. A system for reducing short message transmission delay in a data center network, characterized in that: include: The receiver is used to divide the messages to be transmitted into "unscheduled" data packets and "to be scheduled" data packets; The receiver assigns priority to the "to-be-scheduled" packets in the "accepted" packets; The transmitter is used to first immediately send the "unscheduled" data packet; and is also used to wait for the "accepted" data packet returned by the receiver after sending the "unscheduled" data packet; The sender sends the corresponding "to be scheduled" data packets one by one from high priority to low priority according to the priority of the "to be scheduled" data packets specified by the receiver; The receiver is also used to record the data message size of the currently sent "to be scheduled" data packet, and calculate the proportion of the bytes of the unscheduled part of the message in the corresponding bytes of all the "to be scheduled" data packets to be transmitted; the receiver obtains the preset standard ratio, and determines that the proportion of the bytes of the current unscheduled part of the message in all the bytes to be transmitted is lower than the preset standard ratio, and the unscheduled part of the message has a low priority; The receiver allocates the highest priority sending rights to the "unscheduled" data packets, and reserves the lower priority sending rights for the "to be scheduled" data packets; Under high load conditions, receivers grant permissions to multiple senders; The current receiver calculates the remaining space of the current receiver buffer in real time; if the remaining space of the current receiver buffer is lower than the minimum buffer remaining threshold, the current receiver buffer is determined to be over-occupied, and at the same time, the frequency of sending "agreement messages" to the sender can be slowed down, so that the sender automatically reduces the sending rate.
8. The system according to claim 7, characterized in that The receiver is also used to schedule data packets one by one, invite the transmitter to transmit subsequent bytes by sending an "acceptance message", and ensure that there is always some data in the "accepted" but "not received" state.
9. A storage medium, characterized in that: The storage medium includes a stored program, wherein when the program is running, the device where the storage medium is located is controlled to execute a processing method for reducing the delay of short message transmission in a data center network as described in any one of claims 1 to 6.
Citation Information
Patent Citations
LTE scheduling method and device for packet real-time service perception
CN109981483A
Flow scheduling method, device, equipment and medium
CN117097676A
Low-delay packet service-oriented energy-saving method, device and equipment for 5G network
CN117676595A
Time slot scheduling method and device, and medium
US20220061082A1
Packet scheduling based on message length
USH2103H1