CN115174408B - Data transmission method, device and system, electronic equipment and storage medium - Google Patents

Data transmission method, device and system, electronic equipment and storage medium Download PDF

Info

Publication number
CN115174408B
CN115174408B CN202210698847.6A CN202210698847A CN115174408B CN 115174408 B CN115174408 B CN 115174408B CN 202210698847 A CN202210698847 A CN 202210698847A CN 115174408 B CN115174408 B CN 115174408B
Authority
CN
China
Prior art keywords
terminal
bandwidth
allocated
terminals
data stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210698847.6A
Other languages
Chinese (zh)
Other versions
CN115174408A (en
Inventor
周超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202210698847.6A priority Critical patent/CN115174408B/en
Publication of CN115174408A publication Critical patent/CN115174408A/en
Application granted granted Critical
Publication of CN115174408B publication Critical patent/CN115174408B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The disclosure relates to a data transmission method, a device and a system, an electronic device and a storage medium, wherein the data transmission method comprises the following steps: acquiring a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal; determining a transmission bandwidth of a data stream to be transmitted based on a pre-allocated bandwidth each second terminal allows to be allocated to the first terminal; and transmitting the data stream to the server based on the determined transmission bandwidth. According to the data transmission method, the device and the system, the electronic equipment and the storage medium, the problem that bandwidth allocation can not be carried out on data transmission of users by considering network conditions of a plurality of users can be solved, downlink network conditions and uplink transmission conditions of all terminals can be comprehensively considered, transmission bandwidths of all terminals can be flexibly adjusted, and data transmission quality of all terminals is balanced.

Description

Data transmission method, device and system, electronic equipment and storage medium
Technical Field
The disclosure relates to the field of communication technologies, and in particular, to a data transmission method, a data transmission device, a data transmission system, an electronic device and a storage medium.
Background
With the development of communication technology, applications of real-time interaction of multiple people are in an explosive growth trend, such as video conference, multi-people communication, education industry and the like. In such a multi-user interaction scenario, a selective forwarding unit (Selective Forwarding Unit, SFU) is generally used to forward media data, as shown in fig. 1, where multiple users each transmit respective data streams (such as media streams of audio, video, control data, etc.) to a server, and the server, after receiving the data streams of all users, forwards the data streams of all other users to each user (not including the data stream sent by the user).
However, in the existing data transmission scheme, the transmission of the data stream cannot allocate bandwidth for the data transmission of the user in consideration of the network conditions of the plurality of users.
Disclosure of Invention
The present disclosure provides a data transmission method, apparatus and system, an electronic device and a storage medium, so as to at least solve the problem that in the related art, bandwidth allocation cannot be performed on data transmission of a user by considering network conditions of a plurality of users. The technical scheme of the present disclosure is as follows:
according to a first aspect of an embodiment of the present disclosure, a data transmission method is provided, which is applied to a first terminal, the first terminal uploads a data stream to a server, and the server forwards the data stream uploaded by the first terminal to a plurality of second terminals, and the data transmission method includes: acquiring a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal; determining a transmission bandwidth of a data stream to be transmitted based on a pre-allocated bandwidth each second terminal allows to be allocated to the first terminal; and transmitting the data stream to the server based on the determined transmission bandwidth.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the determining, based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, a transmission bandwidth of a data stream to be transmitted includes: and determining the minimum bandwidth in the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal as the transmission bandwidth of the data stream to be transmitted.
Optionally, the determining, based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, a transmission bandwidth of a data stream to be transmitted includes: discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the undiscovered preassigned bandwidths in the preassigned bandwidths of the second terminals as the transmission bandwidth of the data stream to be transmitted.
According to a second aspect of embodiments of the present disclosure, there is provided a data transmission method applied to a server, where the server forwards data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, where the plurality of terminals includes a first terminal and a plurality of second terminals, and the data transmission method includes: determining the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal by counting the bandwidth of each second terminal; transmitting the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal, so that the first terminal can determine the transmission bandwidth for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal; a data stream transmitted by the first terminal based on the transmission bandwidth is received from the first terminal, and the received data stream is forwarded to each second terminal.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, where the specified bandwidth is determined by: discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the non-discarded preassigned bandwidths in the preassigned bandwidths of the plurality of second terminals as the designated bandwidth.
According to a third aspect of the embodiments of the present disclosure, there is provided a data transmission method applied to a second terminal, where the second terminal is one of a plurality of second terminals, and each of the plurality of second terminals receives a data stream uploaded by a first terminal and forwarded by a server, where the data transmission method includes: transmitting the available bandwidths of the second terminals to the server, wherein other second terminals in the plurality of second terminals transmit the available bandwidths of the second terminals to the server; and receiving, from the server, the data stream uploaded by the first terminal, which is forwarded by the server, wherein the data stream uploaded by the first terminal is transmitted based on a transmission bandwidth determined according to a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, and wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal.
Optionally, the pre-allocated bandwidth is determined based on a bandwidth ratio of the first terminal relative to each second terminal and an available bandwidth of each second terminal, wherein the bandwidth ratio is a bandwidth ratio of a data stream uploaded by the first terminal in a data stream received by each second terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, where the specified bandwidth is determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
According to a fourth aspect of embodiments of the present disclosure, there is provided a data transmission device applied to a first terminal, where the first terminal uploads a data stream to a server, and the server forwards the data stream uploaded by the first terminal to a plurality of second terminals, and the data transmission device includes: a pre-allocation bandwidth obtaining unit configured to obtain a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocation bandwidth is determined by counting the bandwidth of each second terminal; a transmission bandwidth determining unit configured to determine a transmission bandwidth of a data stream to be transmitted based on a pre-allocation bandwidth each second terminal is allowed to allocate to the first terminal; and the data stream sending unit is configured to send the data stream to the server based on the determined sending bandwidth.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the transmission bandwidth determining unit is further configured to: and determining the minimum bandwidth in the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal as the transmission bandwidth of the data stream to be transmitted.
Optionally, the transmission bandwidth determining unit is further configured to: discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the undiscovered preassigned bandwidths in the preassigned bandwidths of the second terminals as the transmission bandwidth of the data stream to be transmitted.
According to a fifth aspect of embodiments of the present disclosure, there is provided a data transmission apparatus applied to a server, the server forwarding data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, where the plurality of terminals includes a first terminal and a plurality of second terminals, the data transmission apparatus including: a pre-allocation bandwidth determining unit configured to determine a pre-allocation bandwidth that each second terminal allows to be allocated to the first terminal by counting a bandwidth of each second terminal; a pre-allocation bandwidth transmitting unit configured to transmit a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal, for the first terminal to determine a transmission bandwidth to be transmitted for a data stream based on the pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal; and a forwarding unit configured to receive, from the first terminals, data streams transmitted by the first terminals based on the transmission bandwidth, and forward the received data streams to each of the second terminals.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, where the specified bandwidth is determined by: discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the non-discarded preassigned bandwidths in the preassigned bandwidths of the plurality of second terminals as the designated bandwidth.
According to a sixth aspect of the embodiments of the present disclosure, there is provided a data transmission apparatus applied to a second terminal, the second terminal being one of a plurality of second terminals, wherein each of the plurality of second terminals receives a data stream uploaded by a first terminal and forwarded by a server, the data transmission apparatus including: an available bandwidth transmitting unit configured to transmit an available bandwidth of the second terminal to the server, wherein other second terminals of the plurality of second terminals transmit respective available bandwidths to the server; and a data stream receiving unit configured to receive, from the server, a data stream uploaded by the first terminal, which is forwarded by the server, wherein the data stream uploaded by the first terminal is transmitted based on a transmission bandwidth determined by each second terminal based on a pre-allocated bandwidth allowed to be allocated to the first terminal, wherein the pre-allocated bandwidth is determined by counting a bandwidth of each second terminal.
Optionally, the pre-allocated bandwidth is determined based on a bandwidth ratio of the first terminal relative to each second terminal and an available bandwidth of each second terminal, wherein the bandwidth ratio is a bandwidth ratio of a data stream uploaded by the first terminal in a data stream received by each second terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, where the specified bandwidth is determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
According to a seventh aspect of the embodiments of the present disclosure, there is provided a data transmission system, where the data transmission system includes a server and a plurality of terminals, the server forwards data streams uploaded by the plurality of terminals to other terminals in the plurality of terminals, the plurality of terminals includes a first terminal and a plurality of second terminals, and the server determines, by counting a bandwidth of each second terminal, that each second terminal allows a pre-allocation bandwidth allocated to the first terminal; the server side sends the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal; the first terminal determining a transmission bandwidth to be transmitted for the data stream based on a pre-allocation bandwidth each second terminal is allowed to allocate to the first terminal, and transmitting the data stream to the server based on the determined transmission bandwidth; the server receives, from the first terminal, a data stream transmitted by the first terminal based on the transmission bandwidth, and forwards the received data stream to each second terminal.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal.
Optionally, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, where the specified bandwidth is determined by: acquiring a predetermined rejection ratio, wherein the predetermined rejection ratio is the ratio of the second terminals with smaller pre-allocated bandwidths which are rejected in the plurality of second terminals; determining a second terminal of the plurality of second terminals that is not discarded based on the predetermined discard proportion; and determining the minimum bandwidth in the pre-allocated bandwidths of the second terminal which is not discarded as the designated bandwidth.
According to an eighth aspect of embodiments of the present disclosure, there is provided an electronic device including: a processor; a memory for storing the processor-executable instructions, wherein the processor-executable instructions, when executed by the processor, cause the processor to perform a data transmission method according to the present disclosure.
According to a ninth aspect of embodiments of the present disclosure, there is provided a computer readable storage medium, which when executed by a processor of an electronic device, causes the electronic device to perform a data transmission method according to the present disclosure.
According to a tenth aspect of embodiments of the present disclosure, there is provided a computer program product comprising computer instructions which, when executed by a processor, implement a data transmission method according to the present disclosure.
The technical scheme provided by the embodiment of the disclosure at least brings the following beneficial effects:
the data flow sent by the first terminal can be adjusted based on the preallocated bandwidth allowed to be allocated to the first terminal by a plurality of second terminals under the multi-terminal data transmission scene, so that the downlink network condition and the uplink transmission condition of all terminals can be comprehensively considered, the transmission bandwidth of each terminal can be flexibly adjusted, and the data transmission quality of all terminals is balanced.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the disclosure and together with the description, serve to explain the principles of the disclosure and do not constitute an undue limitation on the disclosure.
Fig. 1 is a schematic diagram illustrating data transmission between a server and a user in a multi-user interactive scenario.
Fig. 2 is a diagram illustrating a structure of a server and a terminal in a data transmission method according to an exemplary embodiment of the present disclosure.
Fig. 3 is a flowchart illustrating a first example of a data transmission method according to an exemplary embodiment of the present disclosure.
Fig. 4 is a flowchart illustrating a second example of a data transmission method according to an exemplary embodiment of the present disclosure.
Fig. 5 is a flowchart illustrating a third example of a data transmission method according to an exemplary embodiment of the present disclosure.
Fig. 6 is a block diagram of a first example of a data transmission apparatus according to an exemplary embodiment.
Fig. 7 is a block diagram showing a second example of a data transmission apparatus according to an exemplary embodiment.
Fig. 8 is a block diagram showing a third example of a data transmission apparatus according to an exemplary embodiment.
Fig. 9 is a block diagram illustrating a data transmission system according to an exemplary embodiment.
Fig. 10 is a block diagram of an electronic device, according to an example embodiment.
Detailed Description
In order to enable those skilled in the art to better understand the technical solutions of the present disclosure, the technical solutions of the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.
It should be noted that the terms "first," "second," and the like in the description and claims of the present disclosure and in the foregoing figures are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate such that the embodiments of the disclosure described herein may be capable of operation in sequences other than those illustrated or described herein. The implementations described in the following exemplary examples are not representative of all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with some aspects of the present disclosure as detailed in the accompanying claims.
It should be noted that, in this disclosure, "at least one of the items" refers to a case where three types of juxtaposition including "any one of the items", "a combination of any of the items", "an entirety of the items" are included. For example, "including at least one of a and B" includes three cases side by side as follows: (1) comprises A; (2) comprising B; (3) includes A and B. For example, "at least one of the first and second steps is executed", that is, three cases are juxtaposed as follows: (1) performing step one; (2) executing the second step; (3) executing the first step and the second step.
In the multi-user data interaction scene, the data stream sent by each user is finally forwarded to all other users through the server, and the downlink transmission quality of all other users is affected. However, in the existing data transmission scheme, the transmission of the data stream cannot take into account the downlink network conditions of multiple users to allocate the bandwidth for uplink data transmission of the users, so that the transmission bandwidth of each user cannot be flexibly adjusted, and the data transmission quality of all users cannot be balanced.
In order to solve the above problems, the present disclosure proposes a data transmission method that can comprehensively consider the downlink network situation and the uplink transmission situation of all terminals. A data transmission method, a data transmission apparatus, an electronic device, and a computer-readable storage medium according to exemplary embodiments of the present disclosure will be described in detail below with reference to fig. 2 to 9.
Fig. 2 illustrates a server-side and terminal architecture in a data transmission method according to an exemplary embodiment of the present disclosure, where fig. 2 illustrates basic control logic for multi-user interaction by taking four terminals as an example.
Specifically, the server 10 may forward the data streams uploaded by the plurality of terminals A, B, C and D, respectively, to other terminals of the plurality of terminals.
For example, the server may be a media server, the terminal may include, but is not limited to, a mobile phone, a tablet computer, a notebook computer, a desktop computer, etc., and the data stream may be an audio stream and a video stream, where the terminal may establish a network connection with the server, the terminal may implement interconnection through the server transfer, generate and subscribe to the audio stream and the video stream of other terminals, and the server may receive the audio stream and the video stream and forward to the terminal subscribing to the media stream. However, the server and the terminal are not limited thereto, and may be any server and terminal in any data transmission scenario, and the data stream may be corresponding data in other scenarios.
In the following, a description will be given of an example of a transmission procedure of a media stream, in which the terminal a may transmit a collected and encoded media stream including an audio stream and/or a video stream to the server 10 as a media server, and the other three terminals B, C and D may also transmit their respective collected and encoded media streams to the server 10 (omitted in fig. 2 for simplicity). After receiving all the media streams sent by the terminals A, B, C and D, the server 10 forwards the media streams of the terminals A, C and D to the terminal B, the media streams of the terminals A, B and D to the terminal C, the media streams of the terminals A, B and C to the terminal D, and the media streams of the terminals B, C and D to the terminal a (omitted in fig. 2 for simplicity). For the multi-terminal data transmission scenario described above, it can be seen that a data stream sent by a single terminal (e.g., terminal a) to a server may be forwarded to all other terminals, so that the size of the data stream code rate may affect the downlink transmission quality of all other terminals.
In this regard, taking the procedure of uploading a data stream by the terminal a as an example, the terminal a may send the data stream (may also be referred to as uploading the data stream) to the server 10. The server 10 may forward the data stream uploaded by terminal a to each of the terminals B, C and D. The server 10 may determine the pre-allocated bandwidth each terminal is allowed to allocate to the terminal a based on the bandwidth duty cycle of the terminal a with respect to each of the terminals B, C and D and the available bandwidth of each terminal, where the bandwidth duty cycle is the bandwidth duty cycle of the data stream uploaded by the terminal a in the data stream received by each of the terminals B, C and D.
The server 10 may include, for example, a bandwidth allocation module 110 and flow control logic modules 120A, 120B, 120C, and 120D for each of the terminals A, B, C and D. The flow control logic modules 120A, 120B, 120C, and 120D may count the downlink transmission conditions of the corresponding terminals A, B, C and D, such as downlink bandwidth, the composition of the transmitted media streams (e.g., audio stream, video stream, control stream size of each user, etc.). The bandwidth allocation module 110 may calculate the size of the bandwidth allocated to each terminal based on the downlink transmission of the corresponding terminals A, B, C and D counted by the flow control logic modules 120A, 120B, 120C, and 120D.
Taking terminal a as an example (processing logic for terminals B, C and D is consistent with terminal a), the data stream of terminal a would be forwarded to the other three terminals B, C and D simultaneously, and therefore, for these three terminals B, C, D, the bandwidth allocation module 100 would calculate the bandwidth allowed to be allocated to terminal a based on the respective flow control logic modules 120B, 120C and 120D for terminals B, C and D, respectively, so that the bandwidth allocation module 110 would send to terminal a the pre-allocated bandwidth allowed to be allocated to terminal a by each of terminals B, C and D.
Terminal a may determine the transmission bandwidth of the data stream to be transmitted based on the pre-allocated bandwidth each of terminals B, C and D allows to allocate to terminal a. Each of the terminals B, C and D can receive the data stream uploaded by the terminal a, which is forwarded from the server 10.
The data transmission method provided by the exemplary embodiments of the present disclosure will be described in detail below with reference to fig. 3 to 5 from the perspective of a server side and different terminals, respectively.
According to the data transmission method of the exemplary embodiment of the disclosure, under the multi-terminal data transmission scene, the uplink data stream sent by the terminal can be adjusted according to the pre-allocation bandwidth determined by the downlink transmission condition, so that the downlink network condition and the uplink transmission condition of all the terminals can be comprehensively considered, the transmission bandwidth of each terminal can be flexibly adjusted, and the data transmission quality of all the terminals is balanced.
The data transmission method according to the first aspect of the exemplary embodiments of the present disclosure may be applied to a first terminal, where the first terminal may upload a data stream to a server, and the server forwards the data stream uploaded by the first terminal to a plurality of second terminals. For example, a first terminal may be the terminal a shown in fig. 2, and a second terminal may include the terminals B, C and D shown in fig. 2, however, it should be understood that the first and second terminals mentioned herein are named for convenience of description only, and the respective terminals themselves are not limited, any one of the terminals may be the first terminal, and accordingly, the other terminals are the second terminals.
As shown in fig. 3, the data transmission method may include the steps of:
in step S301, a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal may be acquired, wherein the pre-allocated bandwidth may be determined by counting the bandwidth of each second terminal.
In this step, the first terminal may receive a transmission bandwidth to which each of the second terminals transmitted from the server side is allowed to be allocated for guiding the first terminal to transmit the data stream to the server side.
As an example, the pre-allocated bandwidth may be determined based on a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, where the bandwidth duty cycle may be a bandwidth duty cycle of a data stream uploaded by the first terminal in a data stream received by each second terminal.
For example, the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal may be determined based on a product of a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal.
Here, the bandwidth ratio may be a bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
In the exemplary embodiment of the present disclosure, the downlink bandwidth may be allocated according to the current duty ratio of each terminal traffic. Therefore, in this step, it may be determined that each second terminal currently allows the pre-allocated bandwidth allocated to the first terminal, where the pre-allocated bandwidth may be used to instruct the first terminal to upload the data stream, so that the data stream uploaded by the first terminal may adapt to the current downlink transmission state of each second terminal as much as possible, thereby balancing data transmission between all terminals.
As an example, it may be determined that each second terminal allows the pre-allocated bandwidth allocated to the first terminal based on a product of a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal. In this way, the size of the bandwidth that the first terminal can occupy in the available bandwidth of the second terminal can be quantitatively calculated, so as to instruct the first terminal to determine the transmission bandwidth of the data stream to be transmitted.
Taking the procedure of forwarding the data stream sent by the first terminal a from the server to the second terminal B as an example, the data stream forwarded to the second terminal B may include data streams from three sources of the terminals A, C and D, and therefore, the bandwidth ratio occupied by the data stream from the first terminal a in the forwarded data stream needs to be considered. In this regard, by, for example, the flow control logic module 120B of the server (see fig. 2 described above), acquiring the current allowable available bandwidth (e.g., the allowable maximum downlink transmission rate) of the second terminal B, the pre-allocated bandwidth size allocated to the first terminal a for the downlink network of the second terminal B may be represented by, for example, but not limited to, the following equation (1):
wherein R is B→A Is the pre-allocated bandwidth, ER, that the second terminal B is currently allowed to allocate to the first terminal A B Is the maximum downlink transmission code rate allowable by the current second terminal B, R A Is the size of the data stream from the first terminal a among the data streams forwarded to the second terminal B,is the total size of the data stream forwarded to the second terminal B, therefore +.>Representing the bandwidth duty cycle occupied by the data stream from the first terminal a among the data streams forwarded to the second terminal B.
Here, the allowable available bandwidth of the second terminal B may be acquired from the second terminal B, for example, the second terminal B may transmit information of its current allowable available bandwidth to the server. The total size of the data stream forwarded to the second terminal B may be obtained by statistics at the server. It will be appreciated that the process of determining the available bandwidth, determining the size of the forwarded data stream may be implemented according to existing suitable methods, which are not particularly limited by the present disclosure.
Further, according to an exemplary embodiment of the present disclosure, the method of determining the pre-allocated bandwidth that the second terminal allows to be allocated to the first terminal is not limited to the above formula (1), and for example, the pre-allocated bandwidth may be calculated using any possible formula, for example, a predetermined coefficient may be multiplied at the right end of the equation of the above formula (1), and the predetermined coefficient may be used to adjust the size of the pre-allocated bandwidth, which may be arbitrarily set according to actual needs.
Based on the same logic, the procedure of forwarding the data stream sent by the first terminal a to the second terminal C, the second terminal D or other new terminals by the server is similar to the above-mentioned procedure of forwarding to the second terminal B, and therefore, the preassigned bandwidths respectively allocated to the first terminal a by the second terminals C and D can be obtained as represented by the following formulas (2) and (3):
wherein R is C→A Is the pre-allocated bandwidth, ER, currently allowed by the second terminal C to be allocated to the first terminal A C Is the maximum downlink transmission code rate allowable by the current second terminal C, R A Is the size of the data stream from the first terminal a among the data streams forwarded to the second terminal C,is the total size of the data stream forwarded to the second terminal C, therefore +.>Representing the proportion of the data stream from the first terminal a in the data stream forwarded to the second terminal C.
Wherein R is D→A Is the pre-allocated bandwidth, ER, currently allowed by the second terminal D to be allocated to the first terminal A D Is the maximum downlink transmission code rate allowable by the current second terminal D, R A Is the size of the data stream from the first terminal a among the data streams forwarded to the second terminal D,is the total size of the data stream forwarded to the second terminal D, therefore +.>Representing the proportion of the data stream from the first terminal a in the data stream forwarded to the second terminal D.
Further, according to an exemplary embodiment of the present disclosure, the manner of determining the pre-allocated bandwidth is not limited thereto, and the bandwidth of each second terminal may be counted in other manners, for example, an average value of the available bandwidth of each second terminal over a period of time may be counted, and the average value may be taken as the pre-allocated bandwidth.
In step S302, a transmission bandwidth of the data stream to be transmitted may be determined based on the pre-allocated bandwidth each second terminal allows to be allocated to the first terminal.
In this step, the first terminal may allow the pre-allocated bandwidth allocated to the first terminal on a per second terminal basis (e.g., R in the above formulas (1) to (3) B→A 、R C→A And R is D→A ) And performing bandwidth fusion to determine the transmission bandwidth of the data stream to be transmitted to the server.
The bandwidth fusing process for the first terminal will be described in detail. Here, bandwidth fusion may refer to: the procedure of determining the data stream transmitted by the first terminal, taking into account that each second terminal allows a pre-allocated bandwidth allocated to the first terminal.
In an example, the first terminal may employ a minimization scheme that minimizes the pre-allocated bandwidth to determine the transmission bandwidth of the data stream to be transmitted.
In particular, the first terminal may determine a minimum bandwidth among the pre-allocated bandwidths each second terminal allows to be allocated to the first terminal as a transmission bandwidth to which the data stream is to be transmitted.
Taking the above example as an example, the preallocated bandwidth R of the second terminals B, C and D for the first terminal a may be taken B→A 、R C→A And R is D→A Minimum of (3)Bandwidth is used as a transmission bandwidth for the first terminal a to transmit the data stream, and the first terminal a may transmit the data stream to the server with the minimum bandwidth, and the server may forward the data stream to all the second terminals B, C and D.
And so on, if N terminals are provided, any terminal will receive N-1 results of the above-mentioned pre-allocated bandwidths (i.e. not include itself), and the minimum value in the N-1 results of the pre-allocated bandwidths may be taken as the final result, so that all the terminals can be guaranteed to normally transmit downlink.
In another example, the first terminal may employ a weak network discard scheme that discards the second terminal with the smaller pre-allocated bandwidth to determine the transmission bandwidth of the data stream to be transmitted.
Specifically, the first terminal may determine the transmission bandwidth of the data stream to be transmitted by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the transmission bandwidth of the data stream to be transmitted.
In the weak network rejection scheme, the transmission bandwidth of the first terminal for transmitting the data stream may be determined based on the pre-allocated bandwidth of the second terminal in the part of the downlink network that is better without considering the transmission quality of the second terminal in the part of the downlink network that is worse.
Specifically, the preassigned bandwidths allowed to be allocated to the first terminal by the plurality of second terminals may be ordered according to the bandwidth size; discarding a predetermined proportion of the preassigned bandwidth, which is the smallest, from the preassigned bandwidths of the plurality of second terminals based on the ordering of the preassigned bandwidths; the minimum bandwidth among the pre-allocated bandwidths of the second terminal that is not discarded is determined as the transmission bandwidth of the data stream to be transmitted.
For example, assuming that there are N terminals, the first terminal a receives the pre-allocated bandwidth of N-1 second terminals. The preassigned bandwidths of the N-1 second terminals for the first terminal a may be ordered according to bandwidth sizes (e.g., from small to large), and a number of second terminals having the smallest preassigned bandwidths among the N-1 second terminals may be determined according to a predetermined ratio μ, where the predetermined ratio μmay be arbitrarily specified according to actual needs, for example, it may be 10%, and thus, the preassigned bandwidth of the smallest 10% among the preassigned bandwidths of the N-1 second terminals may be discarded, i.e., the preassigned bandwidth of 10% × (N-1) second terminals may be discarded.
Here, in the case where the number of second terminals of the predetermined ratio μ is not an integer, the number of preassigned bandwidths that eventually need to be discarded may be determined by rounding down or up the number. For example, it can be represented by the following formula (4):
k=Floor(μ×(N-1)) (4)
where k is the number of preassigned bandwidths that eventually need to be discarded in N-1 second terminals, floor (·) represents a rounding down.
In this way, the data stream can be transmitted to the server based on the minimum bandwidth among the pre-allocated bandwidths of the second terminal that is not discarded. Taking the above example as an example, the N-1-k th pre-allocated bandwidth may be used as the transmission bandwidth of the data stream to be transmitted by the first terminal in the ordering result of the N-1 th pre-allocated bandwidths.
Although the weak network discard is described above by setting the predetermined ratio in the weak network discard scheme, it is not limited thereto, and a predetermined number may be set, for example, the smallest N pre-allocated bandwidths among the pre-allocated bandwidths may be discarded, and the N-1-N th pre-allocated bandwidth is used as the transmission bandwidth of the data stream to be transmitted by the first terminal in the result of ordering the N-1 pre-allocated bandwidths.
Further, although the above describes the ordering of the preassigned bandwidths of the second terminal for the first terminal by the bandwidth size from small to large, it is not limited thereto, and may be ordered by the bandwidth size from large to small.
In the weak network rejection scheme, the transmission quality of a part of second terminals with poor downlink network can be not considered, so that the data quality (such as the definition of an audio stream or a video stream, etc.) of the last data stream of the first terminal can be ensured, the data quality forwarded to a plurality of second terminals by a service terminal can be balanced, and the influence of the poor downlink network quality of the part of second terminals on the data quality of the data streams received by other second terminals can be avoided.
It should be understood that although the procedure of determining the data stream to be transmitted by the first terminal in consideration of the pre-allocated bandwidth each second terminal allows to be allocated to the first terminal is given above by way of example, it is not limited thereto, and the transmission bandwidth of the data stream to be transmitted by the first terminal may be determined based on the pre-allocated bandwidth according to other manners, for example, may be determined based on a statistical method, and the transmission bandwidth of the data stream to be transmitted by the first terminal may be determined based on a statistical value of the pre-allocated bandwidth allowed to be allocated to the first terminal by all the second terminals, which may be, for example, a mode, a mean value, or the like.
In step S303, the data stream may be transmitted to the server based on the determined transmission bandwidth.
In this step, the first terminal may transmit the data stream to the server based on the transmission bandwidth determined as described above. The server may forward the data stream to the second terminal.
It should be noted that, although the service side, the first terminal a, and the second terminals B, C and D are described above as examples, it should be understood that the above data transmission method may be applicable to data transmission between the service side, any one of the plurality of terminals, and other terminals.
The data transmission method according to the second aspect of the exemplary embodiments of the present disclosure may be applied to a server, which may forward a data stream uploaded by each of a plurality of terminals to other terminals of the plurality of terminals, and the plurality of terminals may include a first terminal and a plurality of second terminals, for example, the first terminal may include a terminal a shown in fig. 2, and the second terminal may include terminals B, C and D shown in fig. 2, however, it should be understood that the first terminal and the second terminal mentioned herein are named for convenience of description only, and are not limiting on each terminal itself, any terminal of the plurality of terminals may be the first terminal, and accordingly, the other terminals may be the second terminal.
As shown in fig. 4, the data transmission method may include the steps of:
in step S401, it may be determined that each second terminal allows the pre-allocated bandwidth allocated to the first terminal by counting the bandwidth of each second terminal.
As an example, the bandwidth of each second terminal may be counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
For example, the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal may be determined based on a product of a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal.
Here, the bandwidth ratio, the available bandwidth acquiring method, and the pre-allocation bandwidth determining method have been described in detail above, which can be similarly applied to the example shown in fig. 3, and thus are not described here again.
In step S402, the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal may be transmitted to the first terminal, so that the first terminal determines a transmission bandwidth to be transmitted for the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal.
In the case where the pre-allocated bandwidth of each second terminal for the first terminal is determined in the above step S401, the server may pre-allocate bandwidth of each second terminal for the first terminal (e.g., R in the above formulas (1) to (3)) by signaling, for example B→A 、R C→A And R is D→A ) And transmitting the message to the first terminal. In this way, the first terminal can perform bandwidth fusion based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal to decide to the serverTransmission bandwidth of the transmission data stream.
In an example, a minimization scheme that minimizes the pre-allocated bandwidth may be employed to determine the transmission bandwidth of the first terminal to transmit the data stream.
In particular, the transmission bandwidth may allow a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
Here, the process of determining the minimum bandwidth among the pre-allocated bandwidths has been described in detail above, which can be similarly applied to the example shown in fig. 3, so that a detailed description thereof will be omitted.
In another example, a weak network discard scheme may be employed to discard a second terminal having a smaller pre-allocated bandwidth to determine the transmission bandwidth of the first terminal to transmit the data stream.
In particular, the transmission bandwidth may allow a specified bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
Here, the specified bandwidth is determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
Here, the procedure of discarding the second terminal having the smaller pre-allocated bandwidth has been described in detail above, which can be similarly applied to the example shown in fig. 3, so that a detailed description thereof will be omitted.
In step S403, a data stream transmitted by the first terminal based on the transmission bandwidth may be received from the first terminal, and the received data stream is forwarded to each second terminal.
In this step, the server may transmit a data stream from the first terminal with the transmission bandwidth described above, and forward the data stream to each second terminal, thereby implementing information transmission between the first terminal and the second terminals.
According to the data transmission method of the exemplary embodiment of the present disclosure, the size of the data stream sent by the first terminal may be dynamically determined according to the current available bandwidth of each second terminal, so as to balance the data transmission quality and the transmission bandwidth of all terminals, and overall improve the data transmission effect between all terminals.
The specific steps, modifications, and advantageous effects in the data transmission method according to the second aspect of the exemplary embodiment of the present disclosure may be the same as or similar to those in the data transmission method according to the first aspect of the exemplary embodiment of the present disclosure described above with reference to fig. 3, and thus are not described here again.
The data transmission method according to the third aspect of the exemplary embodiments of the present disclosure may be applied to a second terminal, which is one of a plurality of second terminals, wherein each of the plurality of second terminals receives a data stream uploaded by the first terminal, which is forwarded by the server. For example, a first terminal may be the terminal a shown in fig. 2, and a second terminal may include the terminals B, C and D shown in fig. 2, however, it should be understood that the first and second terminals mentioned herein are named for convenience of description only, and the respective terminals themselves are not limited, any one of the terminals may be the first terminal, and accordingly, the other terminals are the second terminals.
As shown in fig. 5, the data transmission method may include the steps of: in step S501, the available bandwidths of the second terminals may be sent to the server, where other second terminals in the plurality of second terminals send respective available bandwidths to the server; in step S502, a data stream uploaded by the first terminal and forwarded by the server may be received from the server.
In the above step S502, each of the plurality of second terminals may receive the data stream uploaded from the first terminal forwarded from the server. In particular, the data stream uploaded by the first terminal may be transmitted based on the pre-allocated bandwidth each second terminal allows to be allocated to the first terminal. The pre-allocated bandwidth may be determined by counting the bandwidth of each second terminal.
For example, the pre-allocated bandwidth may be determined based on a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, where the bandwidth duty cycle may be a bandwidth duty cycle of a data stream uploaded by the first terminal in a data stream received by each second terminal.
As an example, it may be determined that each second terminal allows the pre-allocated bandwidth allocated to the first terminal based on a product of a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal.
Here, the bandwidth ratio, the available bandwidth acquiring method, and the pre-allocation bandwidth determining method have been described in detail above, which can be similarly applied to the example shown in fig. 5, and thus are not described here again.
In an example, each second terminal may receive, from the server, a data stream forwarded by the server that was uploaded by the first terminal using a minimization scheme that minimizes the pre-allocated bandwidth.
In particular, the transmission bandwidth may allow a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
Here, the process of determining the minimum bandwidth among the pre-allocated bandwidths has been described in detail above, which can be similarly applied to the example shown in fig. 5, so that a detailed description thereof will be omitted.
In another example, each second terminal may receive from the server a data stream forwarded by the server that was uploaded by the first terminal using a weak network discard scheme that discards the smaller pre-allocated bandwidth.
In particular, the transmission bandwidth may allow a specified bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
Here, the specified bandwidth may be determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
Here, the procedure of discarding the pre-allocated bandwidth having the smaller pre-allocated bandwidth has been described in detail above, which can be similarly applied to the example shown in fig. 5, so that a detailed description thereof will be omitted.
The specific steps, modifications, and advantageous effects in the data transmission method according to the third aspect of the exemplary embodiment of the present disclosure may be the same as or similar to those in the data transmission method according to the first aspect of the exemplary embodiment of the present disclosure described above with reference to fig. 3, and thus are not described here again.
Fig. 6 is a block diagram of a first example of a data transmission apparatus according to an exemplary embodiment. The data transmission device is applied to a first terminal, the first terminal uploads data streams to a server, and the server forwards the data streams uploaded by the first terminal to a plurality of second terminals. Referring to fig. 6, the data transmission apparatus 600 may include a pre-allocation bandwidth acquisition unit 601, a transmission bandwidth determination unit 602, and a data stream transmission unit 603.
The pre-allocation bandwidth obtaining unit 601 is configured to obtain a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocation bandwidth is determined by counting the bandwidth of each second terminal.
The transmission bandwidth determining unit 602 is configured to determine a transmission bandwidth of a data stream to be transmitted based on the pre-allocated bandwidth each second terminal allows to be allocated to the first terminal.
The data stream transmission unit 603 is configured to transmit a data stream to the server based on the determined transmission bandwidth.
As an example, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
As an example, the transmission bandwidth determining unit 602 is further configured to: the minimum bandwidth among the pre-allocated bandwidths allowed by each second terminal to be allocated to the first terminal is determined as a transmission bandwidth of the data stream to be transmitted.
As another example, the transmission bandwidth determining unit 602 is further configured to: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the transmission bandwidth of the data stream to be transmitted.
As an example, the pre-allocated bandwidth may be determined by: the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal is determined based on the product of the bandwidth duty cycle of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
The specific manner in which the individual units perform the operations in relation to the apparatus of the above embodiments has been described in detail in relation to the embodiments of the method and will not be described in detail here.
Fig. 7 is a block diagram showing a second example of a data transmission apparatus according to an exemplary embodiment. The data transmission device is applied to a server, and the server forwards data streams uploaded by a plurality of terminals to other terminals in the terminals, wherein the terminals comprise a first terminal and a plurality of second terminals. Referring to fig. 7, the data transmission apparatus 700 may include a pre-allocation bandwidth determining unit 701, a pre-allocation bandwidth transmitting unit 702, and a forwarding unit 703.
The pre-allocation bandwidth determining unit 701 is configured to determine that each second terminal allows the pre-allocation bandwidth allocated to the first terminal by counting the bandwidth of each second terminal.
The pre-allocation bandwidth transmitting unit 702 is configured to transmit the pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal, for the first terminal to determine a transmission bandwidth to transmit the data stream based on the pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal.
The forwarding unit 703 is configured to receive a data stream transmitted by the first terminal based on the transmission bandwidth from the first terminal and forward the received data stream to each second terminal.
As an example, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
As an example, the transmission bandwidth allows a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
As another example, the transmission bandwidth allows a specified bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
Here, the specified bandwidth may be determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
As an example, the pre-allocation bandwidth determination unit 701 is further configured to: the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal is determined based on the product of the bandwidth duty cycle of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
The specific manner in which the individual units perform the operations in relation to the apparatus of the above embodiments has been described in detail in relation to the embodiments of the method and will not be described in detail here.
Fig. 8 is a block diagram showing a third example of a data transmission apparatus according to an exemplary embodiment. The data transmission device is applied to a second terminal, wherein the second terminal is one of a plurality of second terminals, and each of the plurality of second terminals receives the data stream uploaded by the first terminal and forwarded by the server.
Referring to fig. 8, the data transmission apparatus 800 may include an available bandwidth transmitting unit 801 and a data stream receiving unit 802.
The available bandwidth transmitting unit 801 is configured to transmit the available bandwidths of the second terminals to the server, wherein other second terminals of the plurality of second terminals transmit the respective available bandwidths to the server.
The data stream receiving unit 802 is configured to receive, from the server, a data stream uploaded by the first terminal, which is forwarded by the server. Here, the data stream uploaded by the first terminal is transmitted based on a transmission bandwidth determined by each second terminal allowing the preallocated bandwidth allocated to the first terminal, wherein the preallocated bandwidth is determined by counting the bandwidth of each second terminal.
As an example, the pre-allocated bandwidth may be determined based on a bandwidth duty cycle of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, the bandwidth duty cycle being a bandwidth duty cycle of a data stream uploaded by the first terminal in a data stream received by each second terminal.
As an example, the pre-allocated bandwidth may be determined by: the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal is determined based on the product of the bandwidth duty cycle of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
As an example, the transmission bandwidth allows a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
As an example, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, wherein the specified bandwidth is determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the designated bandwidth.
The specific manner in which the individual units perform the operations in relation to the apparatus of the above embodiments has been described in detail in relation to the embodiments of the method and will not be described in detail here.
Fig. 9 is a block diagram illustrating a data transmission system according to an exemplary embodiment. As shown in fig. 9, the data transmission system 1 includes a server 10 and a plurality of terminals, the server 10 forwarding data streams uploaded by each of the plurality of terminals to other terminals of the plurality of terminals, the plurality of terminals including a first terminal 11 and a plurality of second terminals 12.
The server 10 determines, based on the bandwidth ratio of the first terminal 11 relative to each second terminal 12 and the available bandwidth of each second terminal 12, a pre-allocated bandwidth allowed to be allocated to the first terminal 11 by each second terminal 12, where the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal 11 in the data stream received by each second terminal 12; the server 10 transmits to the first terminal 11 a pre-allocated bandwidth that each second terminal 12 allows to allocate to the first terminal 11; the first terminal 11 determines a transmission bandwidth to be transmitted for the data stream based on the pre-allocated bandwidth each second terminal 12 allows to be allocated to the first terminal 11, and transmits the data stream to the server 10 based on the determined transmission bandwidth; the server 10 receives a data stream transmitted by the first terminal 11 based on the transmission bandwidth from the first terminal 11, and forwards the received data stream to each of the second terminals 12.
The pre-allocated bandwidth may be determined by counting the bandwidth of each second terminal. As an example, the bandwidth of each second terminal is counted by: and determining the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth ratio is the bandwidth ratio of the data stream uploaded by the first terminal in the data stream received by each second terminal.
For example, the pre-allocated bandwidth is determined by: the pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal is determined based on the product of the bandwidth duty cycle of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
As an example, the transmission bandwidth allows a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
As an example, the transmission bandwidth allows, for each second terminal, a specified bandwidth among pre-allocated bandwidths allocated to the first terminal, wherein the specified bandwidth is determined by: based on a preset bandwidth rejection proportion, rejecting the preassigned bandwidths in the range of the bandwidth rejection proportion in the preassigned bandwidths of the plurality of second terminals, wherein the bandwidth rejection proportion is the proportion of the preassigned bandwidths with smaller bandwidths in the preassigned bandwidths of the plurality of second terminals; the minimum bandwidth among the pre-allocated bandwidths not discarded among the pre-allocated bandwidths of the plurality of second terminals is determined as the transmission bandwidth of the data stream to be transmitted.
The specific manner in which the server, the first terminal, and the second terminal perform operations in the system in the above embodiment has been described in detail in the embodiment related to the method, and will not be described in detail herein.
Fig. 10 is a block diagram of an electronic device, according to an example embodiment. As shown in fig. 10, the electronic device 1000 includes a processor 1001 and a memory 1002 for storing processor-executable instructions. Here, the processor executable instructions, when executed by the processor, cause the processor to perform the data transmission method as described in the above exemplary embodiments.
By way of example, the electronic device 1000 need not be a single device, but may be any means or collection of circuits capable of executing the above-described instructions (or sets of instructions) alone or in combination. The electronic device 1000 may also be part of an integrated control system or system manager, or may be configured as an electronic device that interfaces with local or remote (e.g., via wireless transmission).
In the electronic device 1000, the processor 1001 may include a Central Processing Unit (CPU), a Graphics Processor (GPU), a programmable logic device, a special purpose processor system, a microcontroller, or a microprocessor. By way of example, and not limitation, processor 1001 may also include an analog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, and so forth.
The processor 1001 may execute instructions or code stored in the memory 1002, wherein the memory 1002 may also store data. The instructions and data may also be transmitted and received over a network via a network interface device, which may employ any known transmission protocol.
The memory 1002 may be integrated with the processor 1001, for example, RAM or flash memory disposed within an integrated circuit microprocessor or the like. In addition, the memory 1002 may include a stand-alone device, such as an external disk drive, a storage array, or any other storage device usable by a database system. The memory 1002 and the processor 1001 may be operatively coupled or may communicate with each other, for example, through an I/O port, a network connection, etc., so that the processor 1001 can read files stored in the memory 1002.
In addition, the electronic device 1000 may also include a video display (such as a liquid crystal display) and a user interaction interface (such as a keyboard, mouse, touch input device, etc.). All components of the electronic device 1000 may be connected to each other via buses and/or networks.
In an exemplary embodiment, a computer-readable storage medium may also be provided, which when executed by a processor of a server, enables the server to perform the data transmission method as described in the above exemplary embodiment. The computer readable storage medium may be, for example, a memory including instructions, alternatively the computer readable storage medium may be: read-only memory (ROM), random-access memory (RAM), random-access programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), dynamic random-access memory (DRAM), static random-access memory (SRAM), flash memory, nonvolatile memory, CD-ROM, CD-R, CD + R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD + R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, blu-ray or optical disk storage, hard Disk Drives (HDD), solid State Disks (SSD), card memory (such as multimedia cards, secure Digital (SD) cards or ultra-fast digital (XD) cards), magnetic tape, floppy disks, magneto-optical data storage, hard disks, solid state disks, and any other means configured to store computer programs and any associated data, data files and data structures in a non-transitory manner and to provide the computer programs and any associated data, data files and data structures to a processor or computer to enable the processor or computer to execute the programs. The computer programs in the computer readable storage media described above can be run in an environment deployed in a computer device, such as a client, host, proxy device, server, etc., and further, in one example, the computer programs and any associated data, data files, and data structures are distributed across networked computer systems such that the computer programs and any associated data, data files, and data structures are stored, accessed, and executed in a distributed fashion by one or more processors or computers.
In an exemplary embodiment, a computer program product may also be provided, which comprises computer instructions which, when executed by a processor, implement the data transmission method as described in the above exemplary embodiment.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This disclosure is intended to cover any adaptations, uses, or adaptations of the disclosure following the general principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
It is to be understood that the present disclosure is not limited to the precise arrangements and instrumentalities shown in the drawings, and that various modifications and changes may be effected without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (10)

1. The data transmission method is applied to a first terminal, and is characterized in that the first terminal uploads a data stream to a server, and the server forwards the data stream uploaded by the first terminal to a plurality of second terminals, and the data transmission method comprises the following steps:
Acquiring a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal;
determining a transmission bandwidth of a data stream to be transmitted based on a pre-allocated bandwidth each second terminal allows to be allocated to the first terminal;
transmitting a data stream to the server based on the determined transmission bandwidth,
wherein the bandwidth of each second terminal is counted by:
the server determines a bandwidth ratio of the first terminal relative to each second terminal and a current available bandwidth of each second terminal, wherein the bandwidth ratio is a ratio of a size of a data stream from the first terminal in a data stream forwarded to the second terminal to a total size of the data stream forwarded to the second terminal.
2. The data transmission method according to claim 1, wherein the determining a transmission bandwidth of the data stream to be transmitted based on the pre-allocated bandwidth each second terminal is allowed to allocate to the first terminal comprises:
and determining the minimum bandwidth in the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal as the transmission bandwidth of the data stream to be transmitted.
3. The data transmission method according to claim 1, wherein the determining a transmission bandwidth of the data stream to be transmitted based on the pre-allocated bandwidth each second terminal is allowed to allocate to the first terminal comprises:
discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals;
and determining the minimum bandwidth in the undiscovered preassigned bandwidths in the preassigned bandwidths of the second terminals as the transmission bandwidth of the data stream to be transmitted.
4. The data transmission method is applied to a server, and is characterized in that the server forwards data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, wherein the plurality of terminals comprise a first terminal and a plurality of second terminals, and the data transmission method comprises the following steps:
determining the preallocated bandwidth allowed to be allocated to the first terminal by each second terminal by counting the bandwidth of each second terminal;
transmitting the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal, so that the first terminal can determine the transmission bandwidth for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal;
Receiving from the first terminal a data stream transmitted by the first terminal based on the transmission bandwidth, and forwarding the received data stream to each second terminal,
the server side counts the bandwidth of each second terminal in the following manner:
a bandwidth duty cycle of the first terminal relative to each second terminal and a current available bandwidth of each second terminal are determined, wherein the bandwidth duty cycle is a duty cycle of a size of a data stream from the first terminal among data streams forwarded to the second terminal in a total size of the data streams forwarded to the second terminal.
5. The data transmission method according to claim 4, wherein the transmission bandwidth allows a minimum bandwidth among preallocated bandwidths allocated to the first terminal for each second terminal.
6. The data transmission method according to claim 4, wherein the transmission bandwidth allows a specified bandwidth among preallocated bandwidths allocated to the first terminal for each second terminal,
wherein the specified bandwidth is determined by:
discarding, based on a predetermined bandwidth discarding proportion, a pre-allocated bandwidth within a range of the bandwidth discarding proportion among the pre-allocated bandwidths of the plurality of second terminals, wherein the bandwidth discarding proportion is a proportion of a pre-allocated bandwidth having a smaller bandwidth among the pre-allocated bandwidths of the plurality of second terminals;
And determining the minimum bandwidth in the non-discarded preassigned bandwidths in the preassigned bandwidths of the plurality of second terminals as the designated bandwidth.
7. A data transmission device applied to a first terminal, wherein the first terminal uploads a data stream to a server, and the server forwards the data stream uploaded by the first terminal to a plurality of second terminals, the data transmission device comprising:
a pre-allocation bandwidth obtaining unit configured to obtain a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal, wherein the pre-allocation bandwidth is determined by counting the bandwidth of each second terminal;
a transmission bandwidth determining unit configured to determine a transmission bandwidth of a data stream to be transmitted based on a pre-allocation bandwidth each second terminal is allowed to allocate to the first terminal;
a data stream transmission unit configured to transmit a data stream to the server based on the determined transmission bandwidth,
wherein the bandwidth of each second terminal is counted by:
the server determines a bandwidth ratio of the first terminal relative to each second terminal and a current available bandwidth of each second terminal, wherein the bandwidth ratio is a ratio of a size of a data stream from the first terminal in a data stream forwarded to the second terminal to a total size of the data stream forwarded to the second terminal.
8. A data transmission device applied to a server, wherein the server forwards data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, the plurality of terminals including a first terminal and a plurality of second terminals, the data transmission device comprising:
a pre-allocation bandwidth determining unit configured to determine a pre-allocation bandwidth that each second terminal allows to be allocated to the first terminal by counting a bandwidth of each second terminal;
a pre-allocation bandwidth transmitting unit configured to transmit a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal to the first terminal, for the first terminal to determine a transmission bandwidth to be transmitted for a data stream based on the pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal;
a forwarding unit configured to receive a data stream transmitted by the first terminal based on the transmission bandwidth from the first terminal and forward the received data stream to each second terminal,
wherein the pre-allocation bandwidth determination unit is further configured to count the bandwidth of each second terminal by:
A bandwidth duty cycle of the first terminal relative to each second terminal and a current available bandwidth of each second terminal are determined, wherein the bandwidth duty cycle is a duty cycle of a size of a data stream from the first terminal among data streams forwarded to the second terminal in a total size of the data streams forwarded to the second terminal.
9. An electronic device, the electronic device comprising:
a processor;
a memory for storing the processor-executable instructions,
wherein the processor executable instructions, when executed by the processor, cause the processor to perform the data transmission method according to any one of claims 1 to 6.
10. A computer readable storage medium, characterized in that instructions in the computer readable storage medium, when executed by a processor of an electronic device, enable the electronic device to perform the data transmission method according to any one of claims 1 to 6.
CN202210698847.6A 2022-06-20 2022-06-20 Data transmission method, device and system, electronic equipment and storage medium Active CN115174408B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210698847.6A CN115174408B (en) 2022-06-20 2022-06-20 Data transmission method, device and system, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210698847.6A CN115174408B (en) 2022-06-20 2022-06-20 Data transmission method, device and system, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN115174408A CN115174408A (en) 2022-10-11
CN115174408B true CN115174408B (en) 2024-01-09

Family

ID=83488053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210698847.6A Active CN115174408B (en) 2022-06-20 2022-06-20 Data transmission method, device and system, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115174408B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744516A (en) * 2004-09-02 2006-03-08 富士通株式会社 Bandwidth control method, server, user terminal and program
CN103281509A (en) * 2013-05-29 2013-09-04 华为技术有限公司 Optimizing display method and device in video session
JP2016178356A (en) * 2015-03-18 2016-10-06 株式会社リコー Communication device, communication system, reception control method and program
CN106453143A (en) * 2016-10-31 2017-02-22 北京百度网讯科技有限公司 Bandwidth setting method, device and system
CN112929712A (en) * 2021-01-26 2021-06-08 游密科技(深圳)有限公司 Video code rate adjusting method and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7489656B2 (en) * 2004-03-23 2009-02-10 Microsoft Corporation Bandwidth allocation
US9444635B2 (en) * 2012-02-09 2016-09-13 Cisco Technology, Inc. Bandwidth allocation for multimedia conferencing
CN106559349B (en) * 2015-09-24 2019-03-19 阿里巴巴集团控股有限公司 Control method and device, the system of service transmission rate

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744516A (en) * 2004-09-02 2006-03-08 富士通株式会社 Bandwidth control method, server, user terminal and program
CN103281509A (en) * 2013-05-29 2013-09-04 华为技术有限公司 Optimizing display method and device in video session
JP2016178356A (en) * 2015-03-18 2016-10-06 株式会社リコー Communication device, communication system, reception control method and program
CN106453143A (en) * 2016-10-31 2017-02-22 北京百度网讯科技有限公司 Bandwidth setting method, device and system
CN112929712A (en) * 2021-01-26 2021-06-08 游密科技(深圳)有限公司 Video code rate adjusting method and device

Also Published As

Publication number Publication date
CN115174408A (en) 2022-10-11

Similar Documents

Publication Publication Date Title
US10637916B2 (en) Method and device for storage resource allocation for video cloud storage
US11509744B2 (en) Resource request management using bandwidth allocation and time slots
EP3226122A1 (en) Complex event processing method, apparatus and system
EP4234060A1 (en) Service processing method and apparatus, and storage medium
US8850055B1 (en) Intelligently streaming portions of media at higher quality over a limited bandwidth connection
US10200268B2 (en) Methods and systems for congestion-based content delivery
US20160098602A1 (en) Method for computing a similarity measure for video segments
CN113157418A (en) Server resource allocation method and device, storage medium and electronic equipment
JP2022141644A (en) System and method for optimizing simulcast stream in group video call
CN112383600A (en) Information processing method and device, computer readable medium and electronic equipment
CN115174408B (en) Data transmission method, device and system, electronic equipment and storage medium
CN112866390A (en) Data transmission method, device, terminal equipment and storage medium
US8489688B2 (en) Managing delivery of electronic meeting content
CN112492351A (en) Video processing method, device, equipment and storage medium
WO2023109053A1 (en) Bandwidth allocation method and apparatus for server
CN116980662A (en) Streaming media playing method, streaming media playing device, electronic equipment, storage medium and program product
CN114025190B (en) Multi-code rate scheduling method and multi-code rate scheduling device
CN112584525B (en) Uplink data segmentation method and device based on multi-user access
CN112770138B (en) Decoding resource management method, device, decoding equipment and readable storage medium
KR20220070781A (en) Method, apparatus and system for controlling peer to peer connection
CN109818999B (en) Data transmission method and device
CN113079103A (en) Audio transmission method, audio transmission device, electronic equipment and storage medium
CN107995037B (en) Pre-judging method and device for wide area network optimization
CN113301100A (en) Data disaster tolerance method, device, equipment and medium based on content distribution network
CN113873577A (en) Data sending method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant