CN115174408A - 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
CN115174408A
CN115174408A CN202210698847.6A CN202210698847A CN115174408A CN 115174408 A CN115174408 A CN 115174408A CN 202210698847 A CN202210698847 A CN 202210698847A CN 115174408 A CN115174408 A CN 115174408A
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.)
Granted
Application number
CN202210698847.6A
Other languages
Chinese (zh)
Other versions
CN115174408B (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

Images

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 present disclosure relates to a data transmission method, apparatus and system, an electronic device and a storage medium, wherein the data transmission method includes: acquiring a pre-allocated bandwidth which is 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 to transmit a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal; and transmitting the data stream to the server side based on the determined transmission bandwidth. According to the data transmission method, the data transmission device and the data transmission system, the electronic equipment and the storage medium, the problem that bandwidth allocation cannot be carried out on data transmission of users in consideration of network conditions of a plurality of users can be solved, downlink network conditions and uplink sending conditions of all terminals can be comprehensively considered, the sending bandwidth of each terminal 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 present disclosure relates to the field of communications technologies, and in particular, to a data transmission method, apparatus, and system, an electronic device, and a storage medium.
Background
With the development of communication technology, the applications of multi-person real-time interaction are in an explosive growth trend, such as video conference, multi-person microphone connection, education industry, and the like. In such a multi-user interaction scenario, a Selective Forwarding Unit (SFU) architecture is generally adopted to forward media data, as shown in fig. 1, a plurality of users all send respective data streams (such as media streams of audio, video, control data, and the like) to a server, and meanwhile, after receiving data streams of all users, the server forwards data streams of all other users to each user (without including the data stream sent by the user).
However, in the existing data transmission scheme, the transmission of data streams cannot allocate bandwidth for data transmission of users in consideration of network conditions of multiple 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 in the related art that bandwidth allocation cannot be performed on data transmission of a user in consideration of network conditions of a plurality of users. The technical scheme of the disclosure is as follows:
according to a first aspect of the embodiments of the present disclosure, a data transmission method is provided, which is 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, where the data transmission method includes: acquiring a pre-allocated bandwidth which is 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 to transmit a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal; and transmitting the data stream to the server side based on the determined transmission bandwidth.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth proportion of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth proportion is the bandwidth proportion of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the determining a transmission bandwidth to be used for transmitting the data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal includes: and determining the minimum bandwidth of the pre-allocated bandwidths 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 a transmission bandwidth to be used for transmitting the data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal includes: discarding the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth of the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth of the data stream to be transmitted.
According to a second aspect of the embodiments of the present disclosure, a data transmission method is provided, which is 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 include a first terminal and a plurality of second terminals, and the data transmission method includes: determining the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal through counting the bandwidth of each second terminal; sending 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 determines the sending bandwidth of the data stream to be sent 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.
Optionally, the bandwidth of each second terminal is counted by: and determining the bandwidth proportion of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth proportion is the bandwidth proportion of the data stream uploaded by the first terminal in the data stream received by each second terminal.
Optionally, the transmission bandwidth is a minimum bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal.
Optionally, the sending bandwidth is a designated bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal, where the designated bandwidth is determined by: discarding the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the undiscarded pre-allocated bandwidths in the pre-allocated 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: sending the available bandwidth of the second terminal to the server, wherein other second terminals in the plurality of second terminals send respective available bandwidths to the server; receiving, from the server, a data stream uploaded by the first terminal and 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 the pre-allocated bandwidth is determined by counting bandwidths of each second terminal.
Optionally, the pre-allocated bandwidth is determined based on a bandwidth proportion of the first terminal relative to each second terminal and an available bandwidth of each second terminal, and the bandwidth proportion is a bandwidth proportion of a data stream uploaded by the first terminal in a data stream received by each second terminal.
Optionally, the transmission bandwidth is a minimum bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal.
Optionally, the sending bandwidth is a designated bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal, where the designated bandwidth is determined by: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
According to a fourth aspect of the embodiments of the present disclosure, there is provided a data transmission apparatus, which is 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, where the data transmission apparatus includes: a pre-allocated bandwidth acquiring unit configured to acquire a pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal, wherein the pre-allocated bandwidth is determined by counting a bandwidth of each second terminal; a transmission bandwidth determination unit configured to determine a transmission bandwidth to transmit a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal; a data stream transmitting unit configured to transmit a 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 proportion of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth proportion is the bandwidth proportion 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 of the pre-allocated bandwidths 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 the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth of the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth of the data stream to be transmitted.
According to a fifth aspect of the embodiments of the present disclosure, there is provided a data transmission apparatus, applied to a server, where the server forwards a data stream uploaded by each of a plurality of terminals to other terminals in the plurality of terminals, where the plurality of terminals include a first terminal and a plurality of second terminals, and the data transmission apparatus includes: a pre-allocation bandwidth determining unit configured to determine a pre-allocation bandwidth allowed to be allocated to the first terminal by each second terminal by counting a bandwidth of each second terminal; a pre-allocated bandwidth transmitting unit configured to transmit 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 determines a transmission bandwidth to be used for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal; a forwarding unit configured to receive, from the first terminal, a data stream transmitted by the first terminal based on the transmission bandwidth, and forward the received data stream to each second terminal.
Optionally, the bandwidth of each second terminal is counted by: and determining 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 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 is a minimum bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal.
Optionally, the sending bandwidth is a designated bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal, where the designated bandwidth is determined by: discarding the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the undiscarded pre-allocated bandwidths in the pre-allocated 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, 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, 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 in the plurality of second terminals transmit respective available bandwidths to the server; a data stream receiving unit configured to receive, from the server, a data stream uploaded by the first terminal and forwarded by the server, wherein the data stream uploaded by the first terminal is transmitted based on a transmission bandwidth determined by allowing, by each second terminal, a pre-allocated bandwidth allocated to the first terminal, wherein the pre-allocated bandwidth is determined by counting bandwidths of each second terminal.
Optionally, the pre-allocated bandwidth is determined based on a bandwidth proportion of the first terminal relative to each second terminal and an available bandwidth of each second terminal, and the bandwidth proportion is a bandwidth proportion of a data stream uploaded by the first terminal in a data stream received by each second terminal.
Optionally, the transmission bandwidth is a minimum bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal.
Optionally, the sending bandwidth is a designated bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal, where the designated bandwidth is determined by: on the basis of a preset bandwidth abandon proportion, abandoning the pre-allocated bandwidth within the bandwidth abandon proportion range in the pre-allocated bandwidths of the second terminals, wherein the bandwidth abandon proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
According to a seventh aspect of the embodiments of the present disclosure, a data transmission system is provided, where the data transmission system includes a server and a plurality of terminals, the server forwards data streams uploaded by the respective terminals to other terminals in the plurality of terminals, and the plurality of terminals include a first terminal and a plurality of second terminals, where the server determines, by performing statistics on a bandwidth of each second terminal, a pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal; the server side sends the pre-allocated bandwidth which is allowed to be allocated to the first terminal by each second terminal to the first terminal; the first terminal determines a transmission bandwidth to be transmitted with a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, and transmits 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 is a minimum bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal.
Optionally, the sending bandwidth is a designated bandwidth of pre-allocated bandwidths allowed to be allocated to the first terminal for each second terminal, where the designated bandwidth is determined by: obtaining a preset abandoning proportion, wherein the preset abandoning proportion is the proportion of the second terminal with smaller bandwidth which is abandoned in advance and allocated in the plurality of second terminals; determining a second terminal which is not discarded among the plurality of second terminals based on the predetermined discard proportion; determining a minimum bandwidth of the pre-allocated bandwidths of the second terminals that are not discarded as the designated bandwidth.
According to an eighth aspect of embodiments of the present disclosure, there is provided an electronic apparatus 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, wherein instructions, when executed by a processor of an electronic device, enable 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 the 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 stream sent by the first terminal can be adjusted based on the pre-allocated bandwidth allowed to be allocated to the first terminal by the plurality of second terminals in a multi-terminal data transmission scene, so that the downlink network condition and the uplink sending condition of all terminals can be comprehensively considered, the sending bandwidth of each terminal can be flexibly adjusted, and the data transmission quality of all terminals can be 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 present disclosure and, together with the description, serve to explain the principles of the disclosure and are not to be construed as limiting the disclosure.
Fig. 1 is a diagram illustrating data transmission between a server and a user in a multi-user interaction scenario.
Fig. 2 is an architecture diagram illustrating 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 illustrating a first example of a data transmission apparatus according to an example embodiment.
Fig. 7 is a block diagram illustrating a second example of a data transmission apparatus according to an example embodiment.
Fig. 8 is a block diagram illustrating a third example of a data transmission apparatus according to an example embodiment.
FIG. 9 is a block diagram illustrating a data transmission system in accordance with an exemplary embodiment.
FIG. 10 is a block diagram illustrating an electronic device in accordance with an example embodiment.
Detailed Description
In order to make the technical solutions of the present disclosure better understood by those of ordinary skill in the art, the technical solutions in 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 above-described drawings are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the disclosure described herein are capable of operation in other sequences than those illustrated or described herein. The implementations described in the exemplary embodiments below are not intended to represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.
In this case, the expression "at least one of the items" in the present disclosure means a case where three types of parallel expressions "any one of the items", "a combination of any plural ones of the items", and "the entirety of the items" are included. For example, "including at least one of a and B" includes the following three cases in parallel: (1) comprises A; (2) comprises B; and (3) comprises A and B. For another example, "at least one of the first step and the second step is performed", which means that the following three cases are juxtaposed: (1) executing the step one; (2) executing the step two; and (3) executing the step one and the step two.
In a multi-user data interaction scenario, a data stream sent by each user is finally forwarded to all other users through a server, and downlink transmission quality of all other users is affected. However, in the existing data transmission scheme, the transmission of data streams cannot allocate bandwidths to uplink data transmission of users in consideration of the downlink network conditions of multiple users, so that the transmission bandwidths of the users cannot be flexibly adjusted, and the data transmission quality of all the users cannot be balanced.
In order to solve the above problem, the present disclosure provides a data transmission method that can comprehensively consider the downlink network condition and the uplink transmission condition 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 shows an architecture of a server and a terminal in a data transmission method according to an exemplary embodiment of the disclosure, where fig. 2 describes basic control logic of multi-user interaction by taking four terminals as an example.
Specifically, the server 10 may forward the data streams uploaded by the multiple terminals A, B, C and D to other terminals in the multiple 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, and the like, 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 and interworking through server relay, generate and subscribe an audio stream and a video stream of another terminal, and the server may receive the audio stream and the video stream and forward the audio stream and the video stream to the terminal subscribing to the media stream. However, the server and the terminal are not limited thereto, and may also be the server and the terminal in any data transmission scenario, and the data stream may also be corresponding data in other scenarios.
Taking the transmission process of the media stream as an example, the terminal a may send the media stream, which is collected and encoded by the terminal a, including the audio stream and/or the video stream to the server 10 as a media server, and similarly, the other three terminals B, C and D may also send the media streams, which are collected and encoded by the other three terminals, to the server 10 (for simplicity, the illustration in fig. 2 is omitted). After receiving all the media streams sent by terminals A, B, C and D, server 10 forwards the media streams, specifically, server 10 forwards the media streams of terminals A, C and D to terminal B, forwards the media streams of terminals A, B and D to terminal C, forwards the media streams of terminals A, B and C to terminal D, and also forwards the media streams of terminals B, C and D to terminal a (for simplicity, the media streams are omitted in fig. 2). For the foregoing multi-terminal data transmission scenario, it can be seen that a data stream sent by a single terminal (e.g., terminal a) to a server is forwarded to all other terminals, and therefore, the size of the code rate of the data stream affects the downlink transmission quality of all other terminals.
For this, taking the process of uploading the data stream by the terminal a as an example, the terminal a may send the data stream (which may also be referred to as an upload data stream) to the server 10. The server 10 may forward the data stream uploaded by terminal a to each of terminals B, C and D. The server 10 may determine a pre-allocated bandwidth that each terminal is allowed to allocate to terminal a based on a bandwidth ratio of terminal a with respect to each of terminals B, C and D and an available bandwidth of each terminal, where the bandwidth ratio is a bandwidth ratio of a data stream received by each of terminals B, C and D for a data stream uploaded by terminal a.
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, such as the downlink bandwidth, the composition of the transmitted media stream (e.g., the size of the audio stream, the video stream, and the control stream of each user, etc.), of the corresponding terminals A, B, C and D. The bandwidth allocation module 110 may calculate the size of the bandwidth allocated to each terminal based on the downlink transmission condition 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 (the processing logic for terminals B, C and D is consistent with terminal a), the data stream of terminal a is forwarded to the other three terminals B, C and D at the same time, so for three terminals B, C, D, bandwidth allocation module 100 calculates the bandwidth allowed to be allocated to terminal a based on the respective flow control logic modules 120B, 120C and 120D of terminals B, C and D, respectively, so that bandwidth allocation module 110 can send the pre-allocated bandwidth allowed to be allocated to terminal a by each of terminals B, C and D to terminal a.
Terminal a may determine the transmission bandwidth over which to transmit the data stream based on the pre-allocated bandwidth that each of terminals B, C and D allow to be allocated to terminal a. Each of the terminals B, C and D may receive the data stream uploaded by terminal a forwarded from the server 10.
A data transmission method provided by an exemplary embodiment of the present disclosure will be described in detail below from the perspective of a server and different terminals, respectively, with reference to fig. 3 to 5.
According to the data transmission method of the exemplary embodiment of the disclosure, in a multi-terminal data transmission scenario, the uplink data stream sent by the terminal can be adjusted according to the pre-allocated bandwidth determined by the downlink transmission condition, 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 can be 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, the first terminal may be 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 and second terminals mentioned herein are named only for convenience of description and are not limited to the respective terminals themselves, and any one of the plurality of 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 obtained, where the pre-allocated bandwidth may be determined by counting the bandwidth of each second terminal.
In this step, the first terminal may receive a pre-allocated bandwidth, which each second terminal is allowed to allocate to, sent from the server, for directing the first terminal to send a transmission bandwidth of the data stream to the server.
As an example, the pre-allocated bandwidth may be determined based on a bandwidth share of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, wherein the bandwidth share may be a bandwidth share 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 allocate to the first terminal may be determined based on the product of the bandwidth occupancy of the first terminal with respect to each second terminal and the 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 ratio of the current traffic of each terminal. Therefore, in this step, a pre-allocated bandwidth currently allowed to be allocated to the first terminal by each second terminal may be determined, and 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 can adapt to the current downlink transmission state of each second terminal as much as possible, thereby balancing data transmission among all terminals.
As an example, the pre-allocated bandwidth that each second terminal allows to allocate to the first terminal may be determined based on the product of the bandwidth occupancy of the first terminal with respect to each second terminal and the available bandwidth of each second terminal. In this way, the size of the bandwidth that can be occupied by the first terminal in the available bandwidth of the second terminal can be calculated quantitatively to guide the first terminal to determine the transmission bandwidth in which the data stream is to be transmitted.
Taking the process 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 includes data streams from three sources, namely, terminal A, C and terminal D, and therefore, the bandwidth occupation ratio of the data stream from the first terminal a in the forwarded data stream needs to be considered. For this, the current allowable available bandwidth (for example, the allowable maximum downlink transmission code rate) of the second terminal B may be obtained through, for example, the flow control logic module 120B (see fig. 2 described above) of the service end, and then, for the downlink network of the second terminal B, the size of the pre-allocated bandwidth allocated to the first terminal a may be represented by, for example and without limitation, the following formula (1):
Figure BDA0003703183320000101
wherein R is B→A Is the pre-allocated bandwidth, ER, currently allowed by the second terminal B to be allocated to the first terminal a B Is the maximum allowable downlink transmission code rate, R, of the current second terminal B A Is the size of the data stream from the first terminal a in the data stream forwarded to the second terminal B,
Figure BDA0003703183320000102
is the total size of the data stream forwarded to the second terminal B, and therefore,
Figure BDA0003703183320000103
indicating the bandwidth occupation ratio occupied by the data stream from the first terminal a in the data stream forwarded to the second terminal B.
Here, the allowable available bandwidth of the second terminal B may be acquired from the second terminal B, and for example, the second terminal B may transmit information of its currently 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 is to be understood that the process of determining available bandwidth, determining the size of the forwarded data stream may be implemented according to any suitable method, and the present disclosure is not particularly limited thereto.
Furthermore, according to the exemplary embodiment of the present disclosure, the method for determining the pre-allocated bandwidth that the second terminal allows to allocate to the first terminal is not limited to the above equation (1), for example, any possible formula may be adopted to calculate the pre-allocated bandwidth, for example, a predetermined coefficient may be multiplied on the right end of the equation of the above equation (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 for 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 procedure for forwarding to the second terminal B, so that the pre-allocated bandwidths allocated to the first terminal a by the second terminals C and D, respectively, can be obtained, and can be represented by the following equations (2) and (3):
Figure BDA0003703183320000104
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 allowable downlink transmission code rate, R, of the current second terminal C A Is the size of the data stream from the first terminal a in the data stream forwarded to the second terminal C,
Figure BDA0003703183320000105
is the total size of the data stream forwarded to the second terminal C, and therefore,
Figure BDA0003703183320000106
representing the proportion of the data stream from the first terminal a in the data stream forwarded to the second terminal C.
Figure BDA0003703183320000111
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 allowable downlink transmission code rate, R, of the current second terminal D A Is the size of the data stream from the first terminal a in the data stream forwarded to the second terminal D,
Figure BDA0003703183320000112
is the total size of the data stream forwarded to the second terminal D, and therefore,
Figure BDA0003703183320000113
representing the proportion of the data stream from the first terminal a in the data stream forwarded to the second terminal D.
In addition, according to the 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 also be counted in other manners, for example, an average value of the available bandwidth of each second terminal in 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 to transmit a data stream may be determined based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal.
In this step, the first terminal may allow the pre-allocated bandwidth (e.g., R in equations (1) through (3) above) to be allocated to the first terminal on a per second terminal basis B→A 、R C→A And R D→A ) And performing bandwidth fusion to decide the sending bandwidth of the data stream to be sent to the server.
The bandwidth merging procedure for the first terminal will be described in detail below. Here, the bandwidth convergence may mean: the procedure for determining the data stream transmitted by the first terminal takes into account the pre-allocated bandwidth each second terminal allows to allocate to the first terminal.
In an example, the first terminal can employ a minimization scheme that minimizes a pre-allocated bandwidth to determine a transmission bandwidth over which the data stream is to be transmitted.
Specifically, the first terminal may determine a minimum bandwidth of pre-allocated bandwidths that each second terminal allows to be allocated to the first terminal as a transmission bandwidth to which the data stream is to be transmitted.
Still taking the above example as an example, the pre-allocated bandwidth R for the first terminal A can be taken for the second terminals B, C and D B→A 、R C→A And R D→A The first terminal a may send the data stream to the server at the minimum bandwidth, and the server may forward the data stream to all the second terminals B, C and D.
By analogy, assuming that there are N terminals, any terminal will receive N-1 results of the pre-allocated bandwidths (i.e., does not include itself), and the minimum value of the N-1 results of the pre-allocated bandwidths can be taken as the final result, so that the downlink of all terminals can be ensured to be transmitted normally.
In another example, the first terminal may employ a weak net discard scheme that discards a second terminal with a smaller pre-allocated bandwidth to determine the transmission bandwidth of the data stream to be transmitted.
Specifically, the first terminal may determine a transmission bandwidth to transmit the data stream by: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth for transmitting the data stream.
In the weak network discarding scheme, the transmission bandwidth of the data stream transmitted by the first terminal may be determined based on the pre-allocated bandwidth of the part of the second terminals with better downlink network, without considering the transmission quality of the part of the second terminals with worse downlink network.
Specifically, the pre-allocated bandwidths allowed to be allocated to the first terminal by the plurality of second terminals may be sorted according to the bandwidth size; discarding the pre-allocated bandwidth with the minimum pre-allocated bandwidth in a predetermined proportion from the pre-allocated bandwidths of the plurality of second terminals based on the sorting of the pre-allocated bandwidths; and determining the minimum bandwidth in the pre-allocated bandwidths of the second terminals which are not discarded as the transmission bandwidth for transmitting the data stream.
For example, assuming there are N terminals, the first terminal a will receive the pre-allocated bandwidths of N-1 second terminals. The pre-allocated bandwidths of the N-1 second terminals for the first terminal a may be sorted according to the bandwidth size (e.g., from small to large), and a number of second terminals with the smallest pre-allocated bandwidth 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 therefore, the minimum 10% of the pre-allocated bandwidths among the pre-allocated bandwidths of the N-1 second terminals may be discarded, that is, the pre-allocated bandwidths of 10% × (N-1) second terminals are discarded.
Here, in the case where the number of second terminals of the predetermined ratio μ is not an integer, the number of pre-allocated bandwidths that eventually need to be discarded may be determined by rounding the number down or up. For example, it can be represented by the following formula (4):
k=Floor(μ×(N-1)) (4)
wherein k is the number of pre-allocated bandwidths that are to be finally discarded in the N-1 second terminals, and Floor (·) represents rounding-down.
In this way, the data stream can be transmitted to the server based on the minimum bandwidth of the pre-allocated bandwidths of the second terminals that are not discarded. Taking the above example as an example, the N-1-k pre-allocated bandwidths in the sorting result of the N-1 pre-allocated bandwidths may be used as the transmission bandwidths for the first terminal to transmit the data stream.
Although it is described above that the weak network discarding is performed by setting a predetermined ratio in the weak network discarding 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 pre-allocated bandwidths may be used as the transmission bandwidth of the data stream to be transmitted by the first terminal in the sorting result of the N-1 pre-allocated bandwidths.
Further, although it is described above that the pre-allocated bandwidths of the second terminal for the first terminal are ordered from small to large in bandwidth size, it is not limited thereto, and may be ordered from large to small in bandwidth size.
In the weak network rejection scheme, the transmission quality of a part of second terminals with poor downlink network quality can be disregarded, so that the data quality (for example, the definition of an audio stream or a video stream and the like) of a data stream of a first terminal last time can be ensured, the data quality forwarded to a plurality of second terminals by a server can be balanced, and the influence on the data quality of the data streams received by other second terminals due to poor downlink network quality of the part of second terminals can be avoided.
It should be understood that, although the process of determining the data stream to be transmitted by the first terminal in consideration of the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal is given above by way of example, the process 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 by other means, for example, 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, an average 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 a 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 server, the first terminal a, and the second terminal B, C and D are taken as examples in the above, it should be understood that the above data transmission method can be applied to data transmission between the server, any one of the 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 data streams uploaded by each of a plurality of terminals to other terminals in 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 be 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 only for convenience of description, and do not limit each terminal itself, and any terminal in the plurality of terminals may be the first terminal, and accordingly, the other terminals are the second terminals.
As shown in fig. 4, the data transmission method may include the steps of:
in step S401, the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal may be determined by counting the bandwidth of each second terminal.
As an example, the bandwidth of each second terminal may be counted in the following manner: 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 is allowed to allocate to the first terminal may be determined based on the product of the bandwidth share of the first terminal with respect to each second terminal and the available bandwidth of each second terminal.
Here, the bandwidth ratio, the available bandwidth obtaining method, and the pre-allocated bandwidth determining method have been described in detail above, and they may be similarly applied to the example shown in fig. 3, and thus are not described herein 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 used for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal.
In the case that the pre-allocated bandwidth of each second terminal for the first terminal is determined in step S401 above, the server may, for example, signal the pre-allocated bandwidth of each second terminal for the first terminal (e.g., R in equations (1) to (3) above) B→A 、R C→A And R D→A ) And transmitted to the first terminal. In this way, the first terminal may perform bandwidth fusion based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal, so as to decide the transmission bandwidth for transmitting the data stream to the server.
In an example, a minimization scheme that minimizes a pre-allocated bandwidth can be employed to determine a transmission bandwidth for the first terminal to transmit the data stream.
In particular, the transmission bandwidth may allow for a minimum bandwidth of the pre-allocated bandwidth 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, and it may be similarly applied to the example shown in fig. 3, and thus will not be described in detail here.
In another example, a weak network discard scheme that discards a second terminal with a smaller 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 for a specified bandwidth of the pre-allocated bandwidth allocated to the first terminal for each second terminal.
Here, the specified bandwidth is determined by: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
Here, the process of discarding the second terminal with smaller pre-allocated bandwidth has been described in detail above, and it can be similarly applied to the example shown in fig. 3, and therefore will not be described again here.
In step S403, a data stream transmitted by the first terminal based on the transmission bandwidth may be received from the first terminal and forwarded to each second terminal.
In this step, the server may forward the data stream transmitted from the first terminal with the transmission bandwidth described above to each second terminal, thereby implementing information transmission between the first terminal and the second terminal.
According to the data transmission method of the exemplary embodiment of the disclosure, the size of the data stream sent by the first terminal can be dynamically determined according to the available bandwidth of each second terminal, so that the data transmission quality and the transmission bandwidth of all terminals are balanced, and the data transmission effect among all terminals is improved as a whole.
The specific steps, modifications and advantages 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 again here.
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, where each of the plurality of second terminals receives a data stream uploaded by a first terminal and forwarded by a server. For example, the first terminal may be 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 and second terminals mentioned herein are named only for convenience of description, and are not limited to the respective terminals themselves, and 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 bandwidth of the second terminal may be sent to the server, where other second terminals in the plurality of second terminals send their respective available bandwidths to the server; in step S502, the data stream uploaded by the first terminal and forwarded by the server may be received from the server.
In step S502, each of the plurality of second terminals may receive the data stream uploaded by the first terminal and 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 is allowed to allocate 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 share of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, wherein the bandwidth share may be a bandwidth share 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 that each second terminal allows to allocate to the first terminal may be determined based on the product of the bandwidth occupancy of the first terminal with respect to each second terminal and the available bandwidth of each second terminal.
Here, the bandwidth proportion, the available bandwidth obtaining method, and the pre-allocated bandwidth determining method have been described in detail above, and they may be similarly applied to the example shown in fig. 5, and thus are not described again here.
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 pre-allocated bandwidth.
In particular, the transmission bandwidth may allow for a minimum bandwidth of the pre-allocated bandwidth 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, and it may be similarly applied to the example shown in fig. 5, and thus will not be described in detail here.
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 mesh discard scheme that discards smaller pre-allocated bandwidth.
In particular, the transmission bandwidth may allow for a specified bandwidth of the pre-allocated bandwidth allocated to the first terminal for each second terminal.
Here, the specified bandwidth may be determined by: on the basis of a preset bandwidth abandon proportion, abandoning the pre-allocated bandwidth within the bandwidth abandon proportion range in the pre-allocated bandwidths of the second terminals, wherein the bandwidth abandon proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
Here, the process of discarding the pre-allocated bandwidth with smaller pre-allocated bandwidth has been described in detail above, and it can be similarly applied to the example shown in fig. 5, and therefore, the detailed description is omitted here.
The specific steps, modifications and advantages 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 again here.
Fig. 6 is a block diagram illustrating a first example of a data transmission apparatus according to an example embodiment. The data transmission device 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. Referring to fig. 6, the data transmission apparatus 600 may include a pre-allocated bandwidth acquisition unit 601, a transmission bandwidth determination unit 602, and a data stream transmission unit 603.
The pre-allocated bandwidth acquiring unit 601 is configured to acquire a pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal, wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal.
The transmission bandwidth determining unit 602 is configured to determine a transmission bandwidth to transmit the data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal.
The data stream transmitting 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: and determining the minimum bandwidth of the pre-allocated bandwidths allowed to be allocated to the first terminal by each second terminal as the transmission bandwidth for transmitting the data stream.
As another example, the transmission bandwidth determining unit 602 is further configured to: on the basis of a preset bandwidth abandon proportion, abandoning the pre-allocated bandwidth within the bandwidth abandon proportion range in the pre-allocated bandwidths of the second terminals, wherein the bandwidth abandon proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the second terminals; and determining the minimum bandwidth in the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth for transmitting the data stream.
As an example, the pre-allocated bandwidth may be determined by: and determining the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal based on the product of the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
With regard to the apparatus in the above-described embodiment, the specific manner in which each unit performs the operation has been described in detail in the embodiment related to the method, and will not be described in detail here.
Fig. 7 is a block diagram illustrating a second example of a data transmission device in accordance with an example embodiment. The data transmission device is applied to a server, the server forwards data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, and the plurality of terminals comprise a first terminal and a plurality of second terminals. Referring to fig. 7, the data transmission apparatus 700 may include a pre-allocated bandwidth determination unit 701, a pre-allocated bandwidth transmission unit 702, and a forwarding unit 703.
The pre-allocated bandwidth determining unit 701 is configured to determine the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal by counting the bandwidth of each second terminal.
The pre-allocated bandwidth transmitting unit 702 is configured to transmit 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 determines a transmission bandwidth to transmit the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal.
The forwarding unit 703 is configured to receive, from the first terminal, a data stream transmitted by the first terminal based on the transmission bandwidth, and forward the received data stream to each of the second terminals.
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 for a minimum bandwidth of the pre-allocated bandwidth 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: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
As an example, the pre-allocated bandwidth determining unit 701 is further configured to: and determining the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal based on the product of the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
With regard to the apparatus in the above-described embodiment, the specific manner in which each unit performs the operation has been described in detail in the embodiment related to the method, and will not be described in detail here.
Fig. 8 is a block diagram illustrating a third example of a data transmission apparatus according to an example embodiment. The data transmission device is applied to a second terminal which is one of a plurality of second terminals, wherein each second terminal in the plurality of second terminals receives a data stream which is forwarded by a server and uploaded by a first terminal.
Referring to fig. 8, a 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 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 and forwarded by the server. Here, the data stream uploaded by the first terminal is transmitted based on a transmission bandwidth determined by 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.
As an example, the pre-allocated bandwidth may be determined based on a bandwidth share of the first terminal with respect to each second terminal and an available bandwidth of each second terminal, the bandwidth share being a bandwidth share 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: and determining the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal based on the product of the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
As an example, the transmission bandwidth allows for a minimum bandwidth of the pre-allocated bandwidth allocated to the first terminal for each second terminal.
As an example, the transmission bandwidth allows a specified bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal, wherein the specified bandwidth is determined by: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded from the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
With regard to the apparatus in the above-described embodiment, the specific manner in which each unit performs the operation has been described in detail in the embodiment related to the method, and will not be described in detail here.
FIG. 9 is a block diagram illustrating a data transmission system in accordance with an exemplary embodiment. As shown in fig. 9, the data transmission system 1 includes a server 10 and a plurality of terminals, where the server 10 forwards data streams uploaded by the terminals to other terminals in the plurality of terminals, and the plurality of terminals include a first terminal 11 and a plurality of second terminals 12.
The server 10 determines a pre-allocated bandwidth allowed to be allocated to the first terminal 11 by each second terminal 12 based on a bandwidth ratio of the first terminal 11 relative to each second terminal 12 and an available bandwidth of each second terminal 12, wherein the bandwidth ratio is a bandwidth ratio of a data stream uploaded by the first terminal 11 in a data stream received by each second terminal 12; the server 10 sends the pre-allocated bandwidth allowed to be allocated to the first terminal 11 by each second terminal 12 to the first terminal 11; the first terminal 11 determines a transmission bandwidth to transmit the data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal 11 by each second terminal 12, 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: and determining the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal based on the product of the bandwidth ratio of the first terminal relative to each second terminal and the available bandwidth of each second terminal.
As an example, the transmission bandwidth allows for a minimum bandwidth of the pre-allocated bandwidth allocated to the first terminal for each second terminal.
As an example, the transmission bandwidth allows a specified bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal, wherein the specified bandwidth is determined by: discarding the pre-allocated bandwidth in the range of the bandwidth discarding proportion in the pre-allocated bandwidths of the plurality of second terminals based on a preset bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth in the pre-allocated bandwidths of the plurality of second terminals; and determining the minimum bandwidth in the pre-allocated bandwidths which are not discarded in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth for transmitting the data stream.
With regard to the system in the above embodiment, the specific manner in which the server, the first terminal and the second terminal perform operations has been described in detail in the embodiment related to the method, and will not be described in detail here.
FIG. 10 is a block diagram illustrating an electronic device in accordance with 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 can be any collection of devices or circuits capable of executing the above 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 Processing Unit (GPU), a programmable logic device, a dedicated 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, or the like.
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 or 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, with RAM or flash memory disposed within an integrated circuit microprocessor or the like. Further, memory 1002 may comprise a stand-alone device, such as an external disk drive, 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, such as through I/O ports, network connections, 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 a bus and/or a network.
In an exemplary embodiment, a computer-readable storage medium may also be provided, in which instructions, when executed by a processor of a server, enable 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, and optionally: 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, non-volatile 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 Drive (HDD), solid state hard disk (SSD), card storage (such as a multimedia card, a Secure Digital (SD) card, or an extreme digital (XD) card), a magnetic tape, a floppy disk, a magneto-optical data storage device, an optical data storage device, a hard disk, a solid state disk, and any other device configured to store and any associated data, and to enable a computer program and any associated data processor to execute the computer program or process data. The computer program in the computer-readable storage medium described above can be run in an environment deployed in a computer apparatus, such as a client, a host, a proxy device, a server, and the like, and further, in one example, the computer program and any associated data, data files, and data structures are distributed across a networked computer system such that the computer program 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 that, 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 invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the 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 will be understood that the present disclosure is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (13)

1. A 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 which is 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 to transmit a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal;
and transmitting the data stream to the server side based on the determined transmission bandwidth.
2. The data transmission method according to claim 1, wherein the bandwidth of each second terminal is counted by:
and determining the bandwidth proportion of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth proportion is the bandwidth proportion of the data stream uploaded by the first terminal in the data stream received by each second terminal.
3. The data transmission method according to claim 1, wherein the determining the transmission bandwidth to be used for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal comprises:
and determining the minimum bandwidth of the pre-allocated bandwidths allowed to be allocated to the first terminal by each second terminal as the transmission bandwidth of the data stream to be transmitted.
4. The data transmission method according to claim 1, wherein the determining the transmission bandwidth to be used for transmitting the data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal comprises:
discarding the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals;
and determining the minimum bandwidth of the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the transmission bandwidth of the data stream to be transmitted.
5. A data transmission method is applied to a server side, and is characterized in that the server side forwards data streams uploaded by a plurality of terminals to other terminals in the plurality of terminals, the plurality of terminals include a first terminal and a plurality of second terminals, and the data transmission method comprises the following steps:
determining a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal through counting the bandwidth of each second terminal;
sending 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 determines the sending bandwidth of the data stream to be sent 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.
6. The data transmission method according to claim 5, wherein the bandwidth of each second terminal is counted by:
and determining the bandwidth proportion of the first terminal relative to each second terminal and the available bandwidth of each second terminal, wherein the bandwidth proportion is the bandwidth proportion of the data stream uploaded by the first terminal in the data stream received by each second terminal.
7. The data transmission method according to claim 5, wherein the transmission bandwidth allows a minimum bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal.
8. The data transmission method according to claim 5, wherein the transmission bandwidth allows a designated bandwidth among pre-allocated bandwidths allocated to the first terminal for each second terminal,
wherein the specified bandwidth is determined by:
discarding the pre-allocated bandwidth within the range of the bandwidth discarding proportion from the pre-allocated bandwidths of the plurality of second terminals based on a predetermined bandwidth discarding proportion, wherein the bandwidth discarding proportion is the proportion of the pre-allocated bandwidth with smaller bandwidth from the pre-allocated bandwidths of the plurality of second terminals;
and determining the minimum bandwidth in the undiscarded pre-allocated bandwidths in the pre-allocated bandwidths of the plurality of second terminals as the designated bandwidth.
9. A data transmission apparatus, 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 apparatus includes:
a pre-allocated bandwidth obtaining unit configured to obtain a pre-allocated bandwidth that each second terminal allows to be allocated to the first terminal, wherein the pre-allocated bandwidth is determined by counting the bandwidth of each second terminal;
a transmission bandwidth determination unit configured to determine a transmission bandwidth to transmit a data stream based on a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal;
a data stream transmitting unit configured to transmit a data stream to the server based on the determined transmission bandwidth.
10. A data transmission apparatus, applied to a server, where the server forwards a data stream uploaded by each of a plurality of terminals to other terminals in the plurality of terminals, where the plurality of terminals include a first terminal and a plurality of second terminals, and the data transmission apparatus includes:
a pre-allocated bandwidth determining unit configured to determine a pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal by counting a bandwidth of each second terminal;
a pre-allocated bandwidth transmitting unit configured to transmit 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 determines a transmission bandwidth to be used for transmitting a data stream based on the pre-allocated bandwidth allowed to be allocated to the first terminal by each second terminal;
a forwarding unit configured to receive, from the first terminal, a data stream transmitted by the first terminal based on the transmission bandwidth, and forward the received data stream to each second terminal.
11. An electronic device, characterized in that the electronic device comprises:
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 of any one of claims 1 to 8.
12. A computer-readable storage medium, wherein 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 of any one of claims 1 to 8.
13. A computer program product comprising computer instructions, characterized in that the computer instructions, when executed by a processor, implement the data transmission method according to any one of claims 1 to 8.
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 true CN115174408A (en) 2022-10-11
CN115174408B 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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213503A1 (en) * 2004-03-23 2005-09-29 Microsoft Corporation Bandwidth allocation
CN1744516A (en) * 2004-09-02 2006-03-08 富士通株式会社 Bandwidth control method, server, user terminal and program
US20130208663A1 (en) * 2012-02-09 2013-08-15 Senthil K. Kanniappan Bandwidth allocation for multimedia conferencing
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
US20180212892A1 (en) * 2015-09-24 2018-07-26 Alibaba Group Holding Limited Method, apparatus and system for controlling service transmission rate
CN112929712A (en) * 2021-01-26 2021-06-08 游密科技(深圳)有限公司 Video code rate adjusting method and device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213503A1 (en) * 2004-03-23 2005-09-29 Microsoft Corporation Bandwidth allocation
CN1744516A (en) * 2004-09-02 2006-03-08 富士通株式会社 Bandwidth control method, server, user terminal and program
US20130208663A1 (en) * 2012-02-09 2013-08-15 Senthil K. Kanniappan Bandwidth allocation for multimedia conferencing
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
US20180212892A1 (en) * 2015-09-24 2018-07-26 Alibaba Group Holding Limited Method, apparatus and system for controlling service transmission rate
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
CN115174408B (en) 2024-01-09

Similar Documents

Publication Publication Date Title
JP5897447B2 (en) Method and system for resizing multimedia content based on quality and rate information
EP3226122A1 (en) Complex event processing method, apparatus and system
US20210234940A1 (en) Resource Request Management Using Bandwidth Allocation and Time Slots
EP4234060A1 (en) Service processing method and apparatus, and storage medium
EP2684346B1 (en) Method and apparatus for prioritizing media within an electronic conference according to utilization settings at respective conference participants
US8850055B1 (en) Intelligently streaming portions of media at higher quality over a limited bandwidth connection
CN111327471B (en) Network quality analysis method, device, computer equipment and storage medium
EP3361703A1 (en) Load balancing method, related device and system
CN109450606B (en) Data transmission control method and device
JP7136084B2 (en) Communication device, media delivery system, media delivery method and program
CN114221870B (en) Bandwidth allocation method and device for server
CN105794150A (en) Method for measuring end-to-end internet application performance
CN115174408B (en) Data transmission method, device and system, electronic equipment and storage medium
CN109845217A (en) The method and apparatus of data is transmitted in flexible Ethernet
CN112492351A (en) Video processing method, device, equipment and storage medium
US20140289307A1 (en) Method for transmitting data between electronic devices
US11757967B2 (en) Video communications network with value optimization
CN112584525B (en) Uplink data segmentation method and device based on multi-user access
CN116980662A (en) Streaming media playing method, streaming media playing device, electronic equipment, storage medium and program product
EP3910881A1 (en) Poor-qoe assessment method and related device
CN114025190B (en) Multi-code rate scheduling method and multi-code rate scheduling device
CN111669610B (en) Live video transmission method, system, device, server, electronic equipment and storage medium
CN106230748A (en) A kind of packet sending, receiving method and equipment
CN107995037B (en) Pre-judging method and device for wide area network optimization
KR20220070781A (en) Method, apparatus and system for controlling peer to peer connection

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