Data transmission method and device

By allocating different time slice lengths to data packet collections of different priority levels and allowing queue transmission, the problem of high-priority data occupying transmission resources for a long time is solved, and the balanced transmission of high-priority and low-priority data is achieved.

CN119865470APending Publication Date: 2025-04-22VISIONVERA INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411761767.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-03
Publication Date
2025-04-22

AI Technical Summary

Technical Problem

In the prior art, high-priority data occupy transmission resources for a long time during data transmission, affecting the transmission efficiency of low-priority data.

Method used

By creating multiple data packet collections with different priorities, setting the time slice length matching the priority for each data packet collection, allocating the time slices in sequence for data transmission in preset rotation order, and allowing high-priority data packet collections to be transferred in queue during low-priority data transmission.

Benefits of technology

It ensures the fairness and efficiency of transmission of low-priority data streams while ensuring the rapid transmission of high-priority data streams, and solves the contention problem during data transmission of different priority levels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119865470A_ABST
    Figure CN119865470A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and device, and the method comprises the steps: creating a plurality of data message sets with different priorities, and setting a time slice length matched with the priority for each data message set; caching the data message to be transmitted to a corresponding data message set according to the priority; and according to a preset rotation sequence, sequentially distributing time slices with corresponding time slice lengths for the plurality of data message sets, and transmitting the data messages in the data message sets in the time slices. According to the embodiment of the invention, the method achieves the transmission of the data with multiple priorities in a time rotation mode, solves a problem of contention during the transmission of the data with different priorities, guarantees the quick transmission of a high-priority data stream, and also can guarantee the transmission of a low-priority data stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of data transmission, and in particular to a method and device for data transmission. Background Art

[0002] With the development of science and technology, the amount of data that needs to be transmitted through the network is increasing. For example, in a video conferencing system, the data that needs to be transmitted includes screen sharing data, file transfer data, etc. on the basis of audio data and video data, but network transmission resources are limited.

[0003] In the prior art, by setting a priority for the data to be transmitted, when there is a conflict in data transmission, high-priority data is transmitted first. However, when this method is adopted, high-priority data will occupy transmission resources for a long time, affecting the transmission of low-priority data. Summary of the invention

[0004] In view of the above problems, a method and device for data transmission is proposed to overcome the above problems or at least partially solve the above problems, including:

[0005] A data transmission method, the method comprising:

[0006] Creating a plurality of data message sets with different priorities, and for each data message set, setting a time slice length that matches the priority;

[0007] According to the priority, the data packets to be transmitted are cached into the corresponding data packet set;

[0008] According to a preset rotation order, time slices of corresponding time slice lengths are allocated to the multiple data message sets in turn, and data messages in the data message sets are transmitted within the time slices.

[0009] Optionally, it also includes:

[0010] During the process of transmitting data messages within the time slice of the first data message set, if a queue-jumping transmission request of the second data message set is received, interrupting the time slice of the first data message set to suspend the transmission of the data messages in the first data message set;

[0011] A time slice is allocated for the second data packet set to jump the queue for transmission of data packets in the second data packet set, wherein the priority of the second data packet set is greater than the priority of the first data packet set.

[0012] Optionally, it also includes:

[0013] When the data packet interruption transmission in the second data packet set is completed, or when the time slice of the second data packet set ends, the time slice of the first data packet set is restored to continue transmitting the data packets in the first data packet set.

[0014] Optionally, before interrupting the time slice of the first data message set to suspend transmission of data packets in the first data message set, the method further includes:

[0015] Determine the cumulative number of queue-jumping transmissions of the second data message set; wherein the cumulative number of queue-jumping transmissions is the number of queue-jumping transmissions within the current rotation range or within a preset time length;

[0016] When the accumulated number of queue-jumping transmissions is less than the preset number of queue-jumping transmissions, the time slice of the first data message set is interrupted to suspend the transmission of data packets in the first data message set.

[0017] Optionally, the queue-jumping transmission request is a request triggered when the number of data packets in the second data packet set is greater than a packet number threshold.

[0018] Optionally, the time slice length of the second data packet set is smaller than the time slice length of the first data packet set.

[0019] Optionally, it also includes:

[0020] The real-time status of the data packets in the plurality of data packet sets is monitored, and the time slice length of the data packet set is dynamically adjusted according to the real-time status of the data packets.

[0021] Optionally, the real-time status of the data message includes any one or more of the following: data message load status, data message delay status.

[0022] Optionally, the data message is a data message in a video conferencing system, and the data message in the video conferencing system includes any one or more of the following:

[0023] Real-time video and / or audio data packets, screen sharing data packets, file transfer packets;

[0024] The priority of the real-time video and / or audio data message is higher than the priority of the screen sharing data message, and the priority of the screen sharing data message is higher than the priority of the file transfer message.

[0025] A data transmission device, the device comprising:

[0026] A queue creation and time slice length setting module, used to create multiple data message sets with different priorities, and for each data message set, set a time slice length matching the priority;

[0027] A data message cache module, used for caching the data messages to be transmitted into the corresponding data message set according to the priority;

[0028] The data message transmission module is used to allocate time slices of corresponding time slice lengths to the multiple data message sets in turn according to a preset rotation order, and transmit the data messages in the data message sets within the time slices.

[0029] The embodiments of the present invention have the following advantages:

[0030] In an embodiment of the present invention, multiple data message sets with different priorities are created, and for each data message set, a time slice length matching the priority is set, and data messages to be transmitted are cached in the corresponding data message set according to the priority, and time slices with corresponding time slice lengths are allocated to the multiple data message sets in turn according to a preset rotation order, and within the time slices, the data messages in the data message set are transmitted, thereby realizing the transmission of data of multiple priorities in a time rotation manner, solving the contention problem when transmitting data of different priorities, ensuring the rapid transmission of high-priority data streams while also ensuring the transmission of low-priority data streams. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the technical solution of the present invention, the accompanying drawings required for use in the description of the present invention will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative labor.

[0032] Figure 1 is a flowchart of a method for data transmission provided by some embodiments of the present invention;

[0033] Figure 2a is a schematic diagram of a data message set provided by some embodiments of the present invention;

[0034] Figure 2b is a schematic diagram of a data transmission process provided by some embodiments of the present invention;

[0035] Figure 3 is a flowchart of another method for data transmission provided by some embodiments of the present invention;

[0036] Figure 4is a flowchart of another method for data transmission provided by some embodiments of the present invention;

[0037] Figure 5 It is a structural block diagram of another data transmission device provided by some embodiments of the present invention. DETAILED DESCRIPTION

[0038] In order to make the above-mentioned purposes, features and advantages of the present invention more obvious and easy to understand, the present invention is further described in detail below in conjunction with the accompanying drawings and specific embodiments. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all 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.

[0039] In the case of network data transmission according to priority, data with multiple priorities will frequently conflict when competing for network port data transmission, causing data packets with higher priority to occupy transmission resources for a long time, thereby affecting the transmission efficiency of data packets with lower priority, which is mainly reflected in the following aspects:

[0040] Frequent contention and conflicts: When multiple priority queues try to send data at the same time, conflicts frequently occur due to the lack of a reasonable arbitration mechanism. In particular, when high-priority channels occupy a large amount of resources, the transmission of low-priority data packets may be seriously affected.

[0041] Priority transmission imbalance: The current arbitration mechanism does not find a balance between priority strategy and fairness, resulting in high-priority channels obtaining too many transmission opportunities, while low-priority channels may be delayed due to lack of transmission opportunities for a long time.

[0042] Unreasonable allocation: The current system does not dynamically adjust the allocation of different priorities according to the actual network traffic and load conditions, resulting in high-priority data packets occupying the transmission channel too frequently in some cases, affecting the overall network throughput and packet processing delay.

[0043] In an embodiment of the present invention, transmission time slices are allocated by adopting a time rotation and priority arbitration algorithm to solve the channel contention problem during the transmission of data of different priorities, and achieve a balance between priority transmission and fairness. While ensuring that high-priority data streams can be transmitted quickly, the transmission fairness of low-priority data streams under high load conditions is also guaranteed, thereby ensuring the efficient forwarding of overall network traffic.

[0044] The embodiments of the present invention are further described below with reference to the accompanying drawings:

[0045] Reference Figure 1, showing a step flow chart of a method for data transmission provided by some embodiments of the present invention. The method can be applied to a video conferencing system. In some examples, the video conferencing system can be a video conferencing system based on a visual network, that is, the video conferencing system uses a visual network for transmission. Of course, the Internet can also be used for transmission, or both the visual network and the Internet can be used for transmission.

[0046] Specifically, the following steps may be included:

[0047] Step 101: Create multiple data message sets with different priorities, and for each data message set, set a time slice length that matches the priority.

[0048] In some examples, the data packet collection may be in the form of a queue, ie, a data packet queue.

[0049] In actual applications, multiple data message sets with different priorities can be set according to the data to be transmitted. For example, in a video conferencing system, the data messages include real-time video and / or audio data messages, screen sharing data messages, and file transfer messages. The priority of the real-time video and / or audio data messages is greater than the priority of the screen sharing data messages, and the priority of the screen sharing data messages is greater than the priority of the file transfer messages. In this case, data message sets are respectively set for the real-time video and / or audio data messages, the screen sharing data messages, and the file transfer messages, and the priority of the data message set for the real-time video and / or audio data messages is greater than the priority of the data message set for the screen sharing data messages, and the priority of the data message set for the screen sharing data messages is greater than the priority of the data message set for the file transfer messages.

[0050] For data message sets of different priorities, different time slice lengths can be set, and the time slice length can be used to control the duration of the time slice (also called "time window") allocated to the data message set. The data messages in the data message set can be transmitted within the allocated time slice.

[0051] Among them, the time slice length can match the priority of the data packet set to ensure that while high-priority data is processed first, low-priority data can also be properly taken care of. For example, the time slice length can be set according to the average size of the traffic and transmission delay in the data packet set of this priority.

[0052] In some examples, the time slice length may be negatively correlated with the priority of the data packet set, that is, the higher the priority of the data packet set, the shorter the time slice length, and the lower the priority of the data packet set, the longer the time slice length. The high-priority channel time slice is short (such as 10ms), but its goal is to ensure that high-priority traffic can be processed in a timely manner and respond quickly to application requirements. Although the amount of data transmitted each time is small, the frequent processing of high-priority channel traffic can improve overall performance. The low-priority channel has a long time slice (such as 30ms), allowing it to accumulate more data in a waiting state, thereby ensuring that after the high-priority traffic is processed, the time slice can be efficiently used to transmit more data.

[0053] Step 102: Buffer the data packets to be transmitted into a corresponding data packet set according to the priority.

[0054] In some embodiments of the present invention, the data message may be a data message in a video conferencing system, and the data message in the video conferencing system includes any one or more of the following:

[0055] Real-time video and / or audio data packets, screen sharing data packets, file transfer packets;

[0056] The priority of the real-time video and / or audio data message is higher than the priority of the screen sharing data message, and the priority of the screen sharing data message is higher than the priority of the file transfer message.

[0057] The data message to be transmitted through the channel may have different priorities and may be transmitted to the data message set corresponding to the corresponding priority through the corresponding sub-number channel (Sub Number Channel), and then cached in the data message set to wait for the time slice for transmission.

[0058] like Figure 2a There are three data packet queues corresponding to the sub-number channels, namely: 1Channel data packet queue, 2Channel data packet queue, and 3Channel data packet queue. The priority of 1Channel data packet queue is greater than the priority of 2Channel data packet queue, and the priority of 2Channel data packet queue is greater than the priority of 3Channel data packet queue. Among them, 1Channel data packet queue caches 8 data packets, 2Channel data packet queue caches 4 data packets, and 3Channel data packet queue caches 7 data packets.

[0059] Step 103: allocating time slices of corresponding time slice lengths to the plurality of data message sets in turn according to a preset rotation order, and transmitting the data messages in the data message sets within the time slices.

[0060] In actual applications, time slices can be allocated to multiple data message sets in sequence according to preset rotation data. For example, the preset rotation order can be in order from high to low priority. Then, time slices can be allocated to multiple data message sets in sequence according to the order from high to low priority, and then the data messages cached in the data message set can be transmitted within the time slice of the data message set.

[0061] Since each data packet set is set with a corresponding time slice length, when allocating time slices for the data packet set, the time slices indicated by the time slice length can be allocated. Taking the video conferencing system as an example, high priority (video / audio traffic): allocate 10ms time slices to ensure real-time transmission, medium priority (screen sharing traffic): allocate 20ms time slices, low priority (file transfer traffic): allocate 30ms time slices for batch processing of data.

[0062] In an embodiment of the present invention, by allocating different time slice lengths to data message sets of different priorities, and allocating time slices to multiple data message sets in turn in a time rotation manner, frequent conflicts caused by lack of a reasonable arbitration mechanism are avoided, especially when high-priority channels occupy a large amount of resources, the transmission of low-priority data messages may be seriously affected.

[0063] In some examples, if the transmission of the data packets in the data packet set has been completed within the time slice allocated for the data packet set, the time slice may be released immediately and the next time slice may be entered.

[0064] In some embodiments of the present invention, it also includes:

[0065] During the process of transmitting data packets within the time slice of the first data packet set, if a queue-jumping transmission request for the second data packet set is received, the time slice of the first data packet set is interrupted to suspend the transmission of the data packets in the first data packet set; and a time slice is allocated to the second data packet set to jump the queue for transmission of the data packets in the second data packet set.

[0066] The priority of the second data message set is greater than the priority of the first data message set.

[0067] Within the time slice of the first data message set with a low priority, the data messages in the first data message set can be transmitted, while the second data message set with a high priority is allowed to jump in the transmission process of the first data message set with a low priority. Specifically, after receiving the queue-jumping transmission request of the second data message set with a high priority, the time slice of the first data message set with a low priority can be interrupted, the transmission of the data messages in the first data message set can be suspended, and then the time slice is allocated to the second data message set with a high priority, so that the data messages in the second data message set can be jumped in the transmission process.

[0068] In some examples, in the case of a queue-jumping transmission request, time slices are allocated to a high-priority second data packet set. Time slices may be allocated according to the time slice length of the second data packet set, or according to the number or size of data packets to be queued for transmission.

[0069] In some examples, during the data packet transmission of a high-priority second data packet set, a low-priority first data packet set is not allowed to interrupt the transmission, and the highest-priority data packet set is in a locked state by default, and other priority data packet sets are not allowed to interrupt the transmission within its time slice.

[0070] In some embodiments of the present invention, the queue-jumping transmission request is a request triggered when the number of data packets in the second data packet set is greater than the message number threshold. In some examples, the arbitrator may set the message number threshold of the data packet set of each priority level according to the monitoring situation, the message number threshold of the high-priority data packet set is less than the message number threshold of the data packet set of the low-priority channel, and the queue-jumping request is triggered when the number of data packets in the data packet set is greater than the message number threshold, thereby avoiding frequent queue-jumping transmission and affecting the overall transmission efficiency.

[0071] In some embodiments of the present invention, it also includes:

[0072] When the data packet interruption transmission in the second data packet set is completed, or when the time slice of the second data packet set ends, the time slice of the first data packet set is restored to continue transmitting the data packets in the first data packet set.

[0073] In the scenario of queue-jumping transmission, if the queue-jumping transmission of data packets in the high-priority second data packet set is completed, or the time slice allocated for the second data packet set ends, the time slice of the low-priority first data packet set is restored and the data packets in the first data packet set continue to be transmitted.

[0074] In some examples, based on the time slice of the interrupted first data packet set, the remaining time slice of the first data packet set can be determined, and then the remaining time slice can be restored. For example, if the time slice of the first data packet set is 10ms and it is interrupted at the 6ms, there will be a 4ms time slice remaining when it is restored.

[0075] like Figure 2a There are three data packet queues corresponding to the sub-number channels, namely: 1Channel data packet queue, 2Channel data packet queue, and 3Channel data packet queue. The priority of 1Channel data packet queue is greater than the priority of 2Channel data packet queue, and the priority of 2Channel data packet queue is greater than the priority of 3Channel data packet queue. Among them, 1Channel data packet queue caches 8 data packets, 2Channel data packet queue caches 4 data packets, and 3Channel data packet queue caches 7 data packets.

[0076] like Figure 2b , the time slice length of the 3-channel data message queue is 5ms, the time slice length of the 2-channel data message queue is 8ms, and the time slice length of the 1-channel data message queue is 13ms. Assuming that a data message takes 1ms, after being processed by the arbitration controller, the transmission process is as follows:

[0077] 1. The 3-channel data message queue has the highest priority and is allocated a 5 ms time slice first. Five data messages in the 3-channel data message queue are transmitted, and two data messages are left.

[0078] 2. The 2Channel data message queue has the second highest priority and is allocated an 8ms time slice. However, there are only 4 data messages in the 2Channel data message queue. After the 4 data messages are transmitted, the time slice is released. That is, the 2Channel data message queue only uses a 4ms time slice.

[0079] 3. The 1Channel data message queue has the lowest priority and is allocated a 13ms time slice. After it uses 4ms to transmit 4 data messages (4 data messages remain), a new data message is added to the 3Channel data message queue (for example, 4 data messages are added, and the total number of data messages reaches 6). Then the 3Channel data message queue requests to jump in and transmit. A 5ms time slice is allocated to the 3Channel data message queue. The 3Channel data message queue can transmit 5 data messages using the 5ms time slice, and there is 1 data message left (which can be transmitted in the next rotation or wait for queue-jumping transmission again);

[0080] 4. After the 3Channel data message queue is completed, the time slice of the 1Channel data message queue is restored, that is, there are 9ms left in the 13ms time slice, and the remaining 4 data messages are transmitted using the remaining 9ms time slice. When the remaining 4 data messages are transmitted using 4ms, the remaining time slice is released;

[0081] 5. When the current rotation ends, the next rotation starts, and time slices are allocated to the 3-channel data packet queue, the 2-channel data packet queue, and the 1-channel data packet queue in turn.

[0082] In some embodiments of the present invention, before interrupting the time slice of the first data packet set to suspend transmission of data packets in the first data packet set, the method further includes:

[0083] Determine the cumulative number of queue-jumping transmissions of the second data message set; when the cumulative number of queue-jumping transmissions is less than the preset number of queue-jumping transmissions, execute the time slice of interrupting the first data message set to suspend the transmission of data packets in the first data message set.

[0084] The cumulative number of queue-jumping transmissions is the number of queue-jumping transmissions within the current rotation range or the preset duration, and one rotation is the process of allocating time slices to all data message sets according to a preset rotation order.

[0085] In actual applications, the maximum preset number of queue-jumping transmissions can be set, and then the cumulative number of queue-jumping transmissions of the high-priority second data message set can be counted to determine whether the cumulative number of queue-jumping transmissions is less than the preset number of queue-jumping transmissions. If the cumulative number of queue-jumping transmissions is less than the preset number of queue-jumping transmissions, queue-jumping transmission is allowed; if the cumulative number of queue-jumping transmissions is greater than or equal to the preset number of queue-jumping transmissions, queue-jumping transmission is rejected. This can prevent high-priority traffic from occupying resources for a long time, ensure that low-priority traffic can also get transmission opportunities, avoid being suppressed by high priority for a long time, and ensure the fairness of data transmission.

[0086] In an embodiment of the present invention, by setting the maximum preset number of queue-jumping transmissions, on the one hand, a high-priority data packet set can be queue-jumped for transmission, and on the other hand, it can prevent a high-priority data packet set from obtaining too many transmission opportunities, thereby finding a balance between priority strategy and fairness and preventing a high-priority data packet set from being delayed due to a lack of transmission opportunities for a long time.

[0087] In some embodiments of the present invention, the time slice length of the second data packet set is smaller than the time slice length of the first data packet set, and the high-priority channel time slice is short (e.g., 10ms), but its goal is to ensure that high-priority traffic can be processed in a timely manner and respond quickly to application requirements. Although the amount of data transmitted each time is small, the frequent processing of high-priority channel traffic can improve the overall performance. The low-priority channel has a long time slice (e.g., 30ms), allowing it to accumulate more data in a waiting state, thereby ensuring that after the high-priority traffic is processed, the time slice can be efficiently used to transmit more data.

[0088] In some embodiments of the present invention, it also includes:

[0089] The real-time status of the data packets in the plurality of data packet sets is monitored, and the time slice length of the data packet set is dynamically adjusted according to the real-time status of the data packets.

[0090] In some embodiments of the present invention, the real-time status of the data message includes any one or more of the following: data message load status, data message delay status.

[0091] In practical applications, a dynamic modulation mechanism can be used. The arbitrator monitors the real-time situation of data message sets of each priority in real time, records the waiting time and transmission delay of data packets, and can dynamically adjust the time length according to the real-time network load and delay. In particular, the arbitrator can apply for the extension of the single time slice length as needed for the congestion of data messages in the low-priority data message set. For example, if the data messages in a queue of a certain priority are frequently empty, its time slice length can be reduced; if the waiting time of data messages in a queue of a certain priority is too long, its time slice length can be increased.

[0092] In an embodiment of the present invention, by dynamically adjusting the time slice length of data packet sets of each priority level according to actual network traffic and load conditions, it is avoided that high-priority data packets occupy the transmission channel too frequently, affecting the overall network throughput and data packet processing delay.

[0093] In an embodiment of the present invention, multiple data message sets with different priorities are created, and for each data message set, a time slice length matching the priority is set, and data messages to be transmitted are cached in the corresponding data message set according to the priority, and time slices with corresponding time slice lengths are allocated to the multiple data message sets in turn according to a preset rotation order, and within the time slices, the data messages in the data message set are transmitted, thereby realizing the transmission of data of multiple priorities in a time rotation manner, solving the contention problem when transmitting data of different priorities, ensuring the rapid transmission of high-priority data streams while also ensuring the transmission of low-priority data streams.

[0094] Taking the video conferencing system as an example, the system needs to process data streams of different priorities:

[0095] High priority traffic: real-time video and audio data, requiring extremely low latency (less than 50ms). The high priority queue (i.e., high priority data packet queue) caches 10 data packets (i.e., 10 time packets). Each data packet requires 1ms to transmit, for a total of 10ms.

[0096] Medium priority traffic: screen sharing data, with relatively loose latency (less than 500ms). The medium priority queue (i.e. medium priority data packet queue) caches 5 data packets (i.e. 5 data packets), each data packet takes 4ms to transmit, for a total of 20ms.

[0097] Low priority traffic: Background file transfer, low latency requirement (transfer can be completed within a few seconds). The low priority queue (i.e. low priority data packet queue) caches 2 large files (i.e. 2 data packets), each file requires 15ms transmission time, totaling 30ms.

[0098] 1. Initialize and allocate time slices

[0099] Based on the needs of different priority traffic, the system pre-allocates time slices of different lengths:

[0100] High priority (video / audio traffic): Allocate 10ms time slice to ensure real-time transmission.

[0101] Medium priority (screen sharing traffic): 20ms time slice is allocated.

[0102] Low priority (file transfer traffic): A 30ms time slice is allocated for batch processing of data.

[0103] 2. Normal data transmission process

[0104] High priority traffic: The system first schedules the high priority queue to transmit the first 10 packets. Each packet takes 1ms, and 10 packets consume exactly 10ms of the time slice.

[0105] Time slice (10ms): [packet 1 (1ms), packet 2 (1ms), packet 3 (1ms), ..., packet 10 (1ms)]

[0106] Transmission result: All data in the high-priority queue has been transmitted, and the system enters the medium-priority queue.

[0107] Medium priority traffic: After the high priority data is completed, the system enters the medium priority transmission stage and schedules 5 screen sharing data packets. Each data packet takes 4ms, and the system transmits all data within a 20ms time slice.

[0108] Time slice (20ms): [packet 1 (4ms), packet 2 (4ms), packet 3 (4ms), packet 4 (4ms), packet 5 (4ms)]

[0109] Transmission result: All data in the medium priority queue is transmitted and enters the low priority queue.

[0110] Low priority traffic: The low priority queue contains 2 files, each of which takes 15ms to transfer. The system transfers these 2 files in the allocated 30ms time slice.

[0111] Time slice (30ms): [File 1 (15ms), File 2 (15ms)]

[0112] Transfer result: The two files in the low priority queue are successfully transferred and enter the next cycle.

[0113] 3. High priority traffic completes transmission ahead of time

[0114] The high priority traffic is completed ahead of time, and in this round of rotation, 5 data packets are transmitted using only a 5ms time slice.

[0115] Time slice (5ms): [packet 1 (1ms), packet 2 (1ms), packet 3 (1ms), ..., packet 5 (1ms)]

[0116] The remaining 5ms time slice is released, and the system immediately enters the transmission of the medium priority queue, and uses the remaining time to continue transmitting the screen sharing data packet. The medium priority traffic uses the 5ms time slice released in advance to continue transmitting the screen sharing data.

[0117] Time slice (5ms): [packet 1 (4ms), packet 2 (1ms)]

[0118] 4. High priority traffic requests queue jumping

[0119] The high-priority queue suddenly receives a new video data packet, and the system detects a surge in real-time video traffic, so the high-priority traffic requests to jump the queue. At this time, the medium-priority queue has started to use a 20ms time slice to transmit screen sharing data, but when transmitting the second data packet (using 6ms), the high-priority traffic requests to jump the queue. The system allows the queue to jump, and the HLOCK signal interrupts the medium-priority time slice.

[0120] The high priority obtains a 10ms time slice and transmits the 10 new video data packets.

[0121] Time slice (10ms): [packet 1 (1ms), packet 2 (1ms), packet 3 (1ms), ..., packet 10 (1ms)]

[0122] After the high-priority traffic has finished interrupting the queue, the system resumes medium-priority transmission and continues to use the remaining 14ms time slice to complete the transmission of the second data packet and the remaining three data packets.

[0123] Time slice (14ms): [packet 2 (continue transmission for 2ms), packet 3 (4ms), packet 4 (4ms), packet 5 (4ms)]

[0124] 5. High priority traffic reaches queue-jumping request limit

[0125] Based on the above steps, the system detects that there are still 12 video packets in the real-time high priority, and the high priority traffic requests to jump the queue. At this time, the medium priority queue has started to use the remaining 12ms time slice to transmit the screen sharing data, but when transmitting the 4th packet (using 12ms time), the high priority traffic requests to jump the queue. The system allows the queue to jump, and the HLOCK signal interrupts the time slice of the medium priority.

[0126] The high priority obtains a 10ms time slice and transmits the 10 new video data packets.

[0127] Time slice (10ms): [packet 1 (1ms), packet 2 (1ms), packet 3 (1ms), ..., packet 10 (1ms)]

[0128] After the high-priority traffic has finished interrupting the queue, the system resumes medium-priority transmission and continues to use the remaining 12ms time slice to complete the transmission of the fourth data packet and the remaining three data packets.

[0129] Time slice (12ms): [packet 4 (continue transmission for 2ms), packet 5 (4ms)]

[0130] At this time, there are still 2 video data packets in the high priority. When the high priority traffic tries to jump the queue again, the system arbitrator detects that the high priority traffic has reached the maximum number of queue jumps (that is, the preset number of queue jump transmissions), so it rejects its queue jump request. At this time, the system will continue the transmission of the medium and low priority queues to ensure that the low priority traffic gets a fair transmission opportunity. After this round of rotation, the high priority traffic must wait for the next rotation to continue transmission.

[0131] 6. Data congestion within the time slice

[0132] Congestion of low-priority traffic: When a large amount of data accumulates in the low-priority queue, the system detects queue overflow in the third round of time rotation. The arbitrator dynamically adjusts the time slice, increasing the originally allocated 30ms to 40ms to ensure that more data is transmitted.

[0133] Time slice (40ms): [file 1 (15ms), file 2 (15ms), file 3 (10ms)].

[0134] Reference Figure 3 , shows a flowchart of another method for data transmission provided by some embodiments of the present invention, which may specifically include the following steps:

[0135] Step 301, creating multiple data message sets with different priorities, and for each data message set, setting a time slice length that matches the priority;

[0136] Step 302: Buffer the data packets to be transmitted into a corresponding data packet set according to the priority.

[0137] Step 303: allocating time slices of corresponding time slice lengths to the multiple data message sets in turn according to a preset rotation order, and transmitting the data messages in the data message sets within the time slices.

[0138] Step 304, during the process of transmitting data packets within the time slice of the first data packet set, if a queue-jumping transmission request for a second data packet set is received, determine the cumulative number of queue-jumping transmissions of the second data packet set; wherein the cumulative number of queue-jumping transmissions is the number of queue-jumping transmissions within the current rotation range or within a preset time length.

[0139] Step 305: When the accumulated queue-jumping transmission times are less than the preset queue-jumping transmission times, the time slice of the first data message set is interrupted to suspend the transmission of the data messages in the first data message set.

[0140] Step 306: Allocate a time slice for the second data message set to jump the queue for transmission of the data messages in the second data message set; wherein the priority of the second data message set is greater than the priority of the first data message set.

[0141] Step 307: When the data packet interruption transmission in the second data packet set is completed, or when the time slice of the second data packet set ends, the time slice of the first data packet set is restored to continue transmitting the data packets in the first data packet set.

[0142] Reference Figure 4, shows a flowchart of another method for data transmission provided by some embodiments of the present invention, which may specifically include the following steps:

[0143] Step 401: Create multiple data message sets with different priorities, and for each data message set, set a time slice length that matches the priority.

[0144] Step 402: monitor the real-time status of the data packets in the plurality of data packet sets, and dynamically adjust the time slice length of the data packet set according to the real-time status of the data packets.

[0145] Step 403: Buffer the data packets to be transmitted into a corresponding data packet set according to the priority.

[0146] Step 404: allocating time slices of corresponding time slice lengths to the plurality of data message sets in turn according to a preset rotation order, and transmitting the data messages in the data message sets within the time slices.

[0147] It should be noted that, for the sake of simplicity, the method embodiments are described as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present invention are not limited by the order of the actions described, because according to the embodiments of the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.

[0148] Reference Figure 5 , shows a schematic diagram of the structure of a data transmission device provided by some embodiments of the present invention, which may specifically include the following modules:

[0149] The time slice length setting module 501 is used to create a plurality of data message sets with different priorities, and for each data message set, set a time slice length matching the priority.

[0150] The data message buffering module 502 is used to buffer the data messages to be transmitted into the corresponding data message set according to the priority.

[0151] The data message transmission module 503 is used to allocate time slices of corresponding time slice lengths to the multiple data message sets in sequence according to a preset rotation order, and transmit the data messages in the data message sets within the time slices.

[0152] In some embodiments of the present invention, it also includes:

[0153] A transmission suspension module, configured to interrupt the time slice of the first data message set to suspend the transmission of the data messages in the first data message set if a queue-jumping transmission request of the second data message set is received during the process of transmitting the data message within the time slice of the first data message set;

[0154] A queue-jumping transmission module is used to allocate time slices for the second data message set to jump the queue to transmit the data messages in the second data message set, wherein the priority of the second data message set is greater than the priority of the first data message set.

[0155] In some embodiments of the present invention, it also includes:

[0156] The retransmission module is used to restore the time slice of the first data message set when the data message queue interruption transmission in the second data message set is completed, or when the time slice of the second data message set ends, so as to continue transmitting the data packets in the first data message set.

[0157] In some embodiments of the present invention, before interrupting the time slice of the first data packet set to suspend transmission of data packets in the first data packet set, the method further includes:

[0158] A cumulative number of queue-jumping transmission times judgment module is used to determine the cumulative number of queue-jumping transmission times of the second data message set; when the cumulative number of queue-jumping transmission times is less than the preset number of queue-jumping transmission times, the queue-jumping transmission module is called to execute the time slice of interrupting the first data message set to suspend the transmission of data packets in the first data message set; wherein the cumulative number of queue-jumping transmission times is the number of queue-jumping transmissions within the current rotation range or the preset time length.

[0159] In some embodiments of the present invention, the queue-jumping transmission request is a request triggered when the number of data packets in the second data packet set is greater than a packet number threshold.

[0160] In some embodiments of the present invention, the time slice length of the second data packet set is smaller than the time slice length of the first data packet set.

[0161] In some embodiments of the present invention, it also includes:

[0162] The length dynamic adjustment module is used to monitor the real-time status of the data messages in the plurality of data message sets, and dynamically adjust the time slice length of the data message set according to the real-time status of the data messages.

[0163] In some embodiments of the present invention, the real-time status of the data message includes any one or more of the following: data message load status, data message delay status.

[0164] In some embodiments of the present invention, the data message is a data message in a video conferencing system, and the data message in the video conferencing system includes any one or more of the following:

[0165] Real-time video and / or audio data packets, screen sharing data packets, file transfer packets;

[0166] The priority of the real-time video and / or audio data message is higher than the priority of the screen sharing data message, and the priority of the screen sharing data message is higher than the priority of the file transfer message.

[0167] In an embodiment of the present invention, multiple data message sets with different priorities are created, and for each data message set, a time slice length matching the priority is set, and data messages to be transmitted are cached in the corresponding data message set according to the priority, and time slices with corresponding time slice lengths are allocated to the multiple data message sets in turn according to a preset rotation order, and within the time slices, the data messages in the data message set are transmitted, thereby realizing the transmission of data of multiple priorities in a time rotation manner, solving the contention problem when transmitting data of different priorities, ensuring the rapid transmission of high-priority data streams while also ensuring the transmission of low-priority data streams.

[0168] Some embodiments of the present invention further provide an electronic device, comprising a processor, a memory, and a computer program stored in the memory and capable of running on the processor, wherein the above method is implemented when the computer program is executed by the processor.

[0169] Some embodiments of the present invention further provide a computer-readable storage medium, on which a computer program is stored, and the computer program implements the above method when executed by a processor.

[0170] Some embodiments of the present invention further provide a computer program product, including a computer program, which implements the above method when executed by a processor.

[0171] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0172] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0173] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0174] Those skilled in the art will appreciate that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0175] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0176] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0177] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0178] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0179] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the above elements.

[0180] The above is a detailed introduction to a method and device for data transmission provided. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea; at the same time, for those skilled in the art, according to the idea of ​​the present invention, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.

Claims

1. A method for data transmission, characterized in that: The method comprises: Creating a plurality of data message sets with different priorities, and for each data message set, setting a time slice length that matches the priority; According to the priority, the data packets to be transmitted are cached into the corresponding data packet set; According to a preset rotation order, time slices of corresponding time slice lengths are allocated to the multiple data message sets in turn, and data messages in the data message sets are transmitted within the time slices.

2. The method according to claim 1, characterized in that Also includes: During the process of transmitting data messages within the time slice of the first data message set, if a queue-jumping transmission request of the second data message set is received, interrupting the time slice of the first data message set to suspend the transmission of the data messages in the first data message set; A time slice is allocated for the second data packet set to jump the queue for transmission of data packets in the second data packet set, wherein the priority of the second data packet set is greater than the priority of the first data packet set.

3. The method according to claim 2, characterized in that Also includes: When the data packet interruption transmission in the second data packet set is completed, or when the time slice of the second data packet set ends, the time slice of the first data packet set is restored to continue transmitting the data packets in the first data packet set.

4. The method according to claim 2 or 3, characterized in that: Before interrupting the time slice of the first data message set to suspend transmission of data packets in the first data message set, the method further includes: Determine the cumulative number of queue-jumping transmissions of the second data message set; wherein the cumulative number of queue-jumping transmissions is the number of queue-jumping transmissions within the current rotation range or within a preset time length; When the accumulated queue-jumping transmission times are less than the preset queue-jumping transmission times, the interruption of the time slice of the first data message set is executed to suspend the transmission of the data packets in the first data message set.

5. The method according to claim 2 or 3, characterized in that: The queue-jumping transmission request is a request triggered when the number of data packets in the second data packet set is greater than a packet number threshold.

6. The method according to claim 2 or 3, characterized in that: The time slice length of the second data packet set is smaller than the time slice length of the first data packet set.

7. The method according to any one of claims 1 to 3, characterized in that: Also includes: The real-time status of the data packets in the plurality of data packet sets is monitored, and the time slice length of the data packet set is dynamically adjusted according to the real-time status of the data packets.

8. The method according to claim 7, characterized in that The real-time status of the data message includes any one or more of the following: data message load status, data message delay status.

9. The method according to claim 1, characterized in that: The data message is a data message in a video conferencing system, and the data message in the video conferencing system includes any one or more of the following: Real-time video and / or audio data packets, screen sharing data packets, file transfer packets; The priority of the real-time video and / or audio data message is higher than the priority of the screen sharing data message, and the priority of the screen sharing data message is higher than the priority of the file transfer message.

10. A data transmission device, characterized in that: The device comprises: A queue creation and time slice length setting module, used to create multiple data message sets with different priorities, and for each data message set, set a time slice length matching the priority; A data message cache module, used for caching the data messages to be transmitted into the corresponding data message set according to the priority; The data message transmission module is used to allocate time slices of corresponding time slice lengths to the multiple data message sets in turn according to a preset rotation order, and transmit the data messages in the data message sets within the time slices.