WO2023093879A1 - 数据传输方法、装置、设备和介质 - Google Patents

数据传输方法、装置、设备和介质 Download PDF

Info

Publication number
WO2023093879A1
WO2023093879A1 PCT/CN2022/134627 CN2022134627W WO2023093879A1 WO 2023093879 A1 WO2023093879 A1 WO 2023093879A1 CN 2022134627 W CN2022134627 W CN 2022134627W WO 2023093879 A1 WO2023093879 A1 WO 2023093879A1
Authority
WO
WIPO (PCT)
Prior art keywords
probability
packets
receiving
retransmissions
media
Prior art date
Application number
PCT/CN2022/134627
Other languages
English (en)
French (fr)
Inventor
吴灿锐
张伟
陶雪锋
Original Assignee
北京字节跳动网络技术有限公司
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 北京字节跳动网络技术有限公司 filed Critical 北京字节跳动网络技术有限公司
Publication of WO2023093879A1 publication Critical patent/WO2023093879A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/001Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding applied to control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Definitions

  • the present disclosure relates to the field of data processing, for example, to a data transmission method, device, device and medium.
  • RTC Real Time Communication
  • RTC has two countermeasures against weak networks: forward error correction (Forward Error Correction, FEC) technology (that is, the sender sends redundant messages in advance for weak network countermeasures) and non-acknowledgment (Non-Acknowledge, NACK) Technology (that is, when the receiver finds that there is a packet loss, it will feed back the packet loss information to the sender through NACK, and request the sender to retransmit the lost packet).
  • FEC Forward Error Correction
  • NACK Non-Acknowledge
  • Embodiments of the present disclosure provide a data transmission method, device, device, and medium, which reduce the FEC redundancy ratio on the basis of meeting user resistance and delay requirements, thereby improving video definition and reducing operating costs.
  • an embodiment of the present disclosure provides a data transmission method, including:
  • an embodiment of the present disclosure further provides a data transmission device, including:
  • the first determination module is configured to determine the maximum number of retransmissions of the first target quantity of media packets
  • the second determination module is configured to determine the minimum configuration number of FEC redundant packets according to the maximum number of retransmissions, the preset recovery probability and the predetermined data packet reception probability;
  • a sending module configured to send the first target number of media packets and the minimum configured number of FEC redundancy packets to the receiving end.
  • an embodiment of the present disclosure also provides an electronic device, including:
  • a memory configured to store at least one program
  • the at least one processor When the at least one program is executed by the at least one processor, the at least one processor is made to implement the data transmission method according to any one of the foregoing embodiments.
  • an embodiment of the present disclosure further provides a computer storage medium, the medium stores a computer program, and when the computer program is executed by a processor, the data transmission method according to any one of the above embodiments is implemented.
  • FIG. 1 is a flowchart of a data transmission method provided by an embodiment of the present disclosure
  • FIG. 2 is a flowchart of another data transmission method provided by an embodiment of the present disclosure.
  • Fig. 3 is a structural block diagram of a data transmission device provided by an embodiment of the present disclosure.
  • Fig. 4 is a structural block diagram of an electronic device provided by an embodiment of the present disclosure.
  • the term “comprise” and its variations are open-ended, ie “including but not limited to”.
  • the term “based on” is “based at least in part on”.
  • the term “one embodiment” means “at least one embodiment”; the term “another embodiment” means “at least one further embodiment”; the term “some embodiments” means “at least some embodiments.” Relevant definitions of other terms will be given in the description below.
  • Fig. 1 is a flowchart of a data transmission method provided by an embodiment of the present disclosure.
  • the method can be executed by a data transmission device configured in an electronic device.
  • This embodiment is applied to the scenario of RTC communication weak network confrontation.
  • the electronic device can be a sending end, and optionally can be an intelligent terminal capable of video transmission, such as a smart phone, an iPad, a personal computer (Personal Computer, PC).
  • the method in this embodiment includes the following steps:
  • the maximum number of retransmissions refers to the maximum number of times the sender can retransmit the media packet to the receiver. It should be noted that the first media packet sent by the sender to the receiver is not included in the maximum number of retransmissions, that is, the maximum The number of retransmissions is the total number of transmissions minus 1.
  • the sending end pre-generates the first target number of media packets, and numbers each media packet, that is, each media packet corresponds to a media packet sequence number, and then the sending end sends the first target number of media packets to The receiving end, if the receiving end fails to receive the first target number of media packets, the receiving end feeds back the media packet sequence numbers corresponding to the unsuccessfully received media packets to the sending end, so that the sending end retransmits the media packet sequence numbers (that is, the media packet serial number corresponding to the media packet not successfully received by the receiving end) corresponds to the media packet.
  • the sending end may also retransmit the first target number of media packets to the receiving end, which is not limited.
  • the network conditions and business transmission scenarios between different sending ends and receiving ends are also different.
  • the maximum number of retransmissions of the media packets may be the maximum number of retransmissions of the first target number of media packets, or may be the maximum number of retransmissions of a part of the first target number of media packets.
  • S120 Determine the minimum configured quantity of FEC redundant packets according to the maximum number of retransmissions, the preset recovery probability, and the predetermined data packet reception probability.
  • the preset recovery probability refers to the probability that the receiving end can successfully recover the data packet, and can also be understood as the probability that the receiving end can successfully receive the data packet. It should be understood that the receiving probability of the data packet at the receiving end is greater than or equal to the preset recovery probability, that is, the probability that the receiving end successfully parses out the data information corresponding to the data packet is greater than or equal to the preset recovery probability.
  • the data packet reception probability (that is, the predetermined data packet reception probability in S120) can be determined according to the maximum number of retransmissions and the first target number.
  • the determination method of the data packet reception probability refer to S230 of this application; then according to the data
  • the packet reception probability and preset recovery probability determine the minimum configured number of FEC redundant packets. It can be understood that the data packet includes at least a media packet. Certainly, in the case that the data packet only includes the media packet, if the probability of receiving the data packet is less than the preset recovery probability, the FEC redundant packet is configured in the data packet.
  • the number of FEC redundant packets in the data packet should be reduced as much as possible, that is, the minimum configuration number of FEC redundant packets should be determined.
  • adding the minimum configured quantity of FEC redundant packets to the data packet will carry the first target quantity of media packets and the minimum configured quantity of FEC redundant packets packets are sent to the receiver.
  • the FEC redundant packets are numbered, that is, each FEC redundant packet is configured with a corresponding redundant packet sequence number.
  • the minimum configuration number of FEC redundant packets is determined according to the maximum number of retransmissions, the preset recovery probability, and the predetermined data packet reception probability to obtain the minimum FEC redundancy ratio, thereby achieving While user delay and weak network resistance, it reduces the FEC redundancy ratio, improves the clarity and frame rate of real-time communication, and reduces operating costs.
  • FIG. 2 is a flowchart of another data transmission method provided by an embodiment of the present disclosure. This embodiment describes the implementation process of the data transmission method on the basis of the foregoing embodiments. As shown in Figure 2, the data transmission method in this embodiment includes the following steps:
  • the maximum acceptable delay refers to the maximum delay during data transmission between the sending end and the receiving end without the peer end responding.
  • the opposite end may be a sending end or a receiving end. It can be understood that when the sending end sends data to the receiving end, the sending end is the local end and the receiving end is the opposite end; when the receiving end feeds back information to the sending end, the receiving end is the local end and the sending end is the opposite end. It can be understood that in the process of data transmission between the sending end and the receiving end, if the unresponsive time reaches the maximum acceptable delay, the receiving end (or the sending end) has not responded to the sending end (or the receiving end) ), it can be understood that the communication between the sending end and the receiving end has failed.
  • the maximum acceptable delay between the sending end and the receiving end to ensure normal communication between the sending end and the receiving end.
  • the maximum acceptable delay is related to the business transmission scenario between the sender and receiver, for example, the number of business transmissions between the sender and receiver is large, or the communication distance between the sender and receiver is relatively large , correspondingly, the maximum acceptable delay also increases.
  • the maximum acceptable delay may also be related to other factors, and the configuration may be adjusted according to the actual situation, which is not limited.
  • S220 Determine the maximum number of retransmissions of the first target number of media packets according to the round-trip delay between the sending end and the receiving end, the NACK message processing interval and the maximum acceptable delay.
  • the round-trip delay between the sending end and the receiving end refers to the total duration of the two processes of sending data from the sending end to the receiving end and sending feedback information from the receiving end to the sending end.
  • the NACK message processing interval refers to the time it takes for the receiving end to send a NACK message (that is, the time it takes for the receiving end to determine the need to send a NACK message to actually send a NACK message), that is, the NACK message processing interval plus the round-trip delay can be understood as one time The total processing time of NACK messages.
  • the sum of the round-trip delay between the sending end and the receiving end and the NACK message processing interval is first calculated, and then the maximum acceptable delay and the sum (that is, the round-trip delay between the sending end and the receiving end) are calculated. and the sum of NACK message processing intervals), and use the value obtained by the ratio as the maximum number of retransmissions of the first target number of media packets.
  • the sum of the round-trip delay between the sending end and the receiving end and the NACK message processing interval is less than or equal to the maximum acceptable delay.
  • the maximum acceptable delay is used to ensure that the recovery time between the sending end and the receiving end can guarantee normal communication, that is, the sum of the total duration of multiple NACK messages of the same data packet needs to be less than or equal to the maximum acceptable delay delay.
  • the method for determining the probability of receiving a data packet is different from that when the maximum number of retransmissions at the sending end is not 0.
  • determining the data packet reception probability includes two implementations:
  • the data packet receiving probability is determined according to the packet loss rate between the sending end and the receiving end. In an embodiment, when the maximum number of retransmissions of the data packet is 0, the receiving probability of the data packet may be determined directly according to the packet loss rate between the sending end and the receiving end.
  • the sending Determining the packet reception probability based on the packet loss rate between the sending end and the receiving end, including: determining the receiving probability of the second target number of packets according to the packet loss rate between the sending end and the receiving end, the total number of data packets, and the second target number .
  • the second target number refers to the number of successfully received data packets.
  • the packet loss rate between the sending end and the receiving end is x
  • the total number of data packets is m
  • the second target number is i
  • the receiving probability of the second target number of data packets is:
  • P(m,i) represents the reception probability of successfully receiving i data packets out of m data packets
  • x represents the packet loss rate between the sending end and the receiving end.
  • a data packet when a data packet includes a media packet or a data packet includes a media packet and an FEC redundant packet, and there is no retransmission, the reception probability that the receiving end successfully receives i data packets is the same as the difference between the sending end and the receiving end The packet loss rate between them is related.
  • Another implementation manner is to determine the data packet receiving probability according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions.
  • the probability of receiving the data packet may be determined according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions.
  • the maximum number of retransmissions determines the probability of receiving data packets of the second target number, including: determining the probability of receiving data packets of the third target number according to the packet loss rate between the sending end and the receiving end, the total number of data packets, and the third target number , as the first data packet reception probability; wherein, the first data packet reception probability is the data packet reception probability after the first transmission; the fourth target is determined according to the maximum number of retransmissions, the total number of data packets and the fourth target number
  • the number of data packet reception probabilities is used as the second data packet reception probability, wherein the second data packet reception probability is the data packet reception probability after the maximum retransmission times transmission; according to the maximum retransmission times, the first data
  • the packet reception probability and the second data packet reception probability determine a second
  • the third target number refers to the number of data packets successfully received after the first transmission
  • the fourth target number refers to the number of data packets successfully received after the maximum number of retransmissions.
  • the packet loss rate between the sending end and the receiving end is x
  • the total number of data packets is m
  • the second target number is i
  • the third target number is j
  • the fourth target number is ij
  • the maximum weight The number of transmissions is k
  • the receiving probability of the second target number of data packets is: Among them, P(m,i,k) indicates the probability of retransmitting up to k times, and successfully receiving i data packets out of m data packets;
  • P(m,j,0) indicates that after the first transmission, j
  • the probability of data packets; P(mj,ij,k-1) represents the probability of receiving ij data packets after the remaining mj data packets are transmitted k times.
  • the data packet reception probability is determined according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions, including: according to the packet loss rate between the sending end and the receiving end, the first target number and The third target quantity determines the media packet reception probability of the third target quantity as the first media packet reception probability; wherein, the first media packet reception probability is the media packet reception probability after the first transmission; according to the maximum number of retransmissions , the first target number and the fourth target number determine the media packet reception probability of the fourth target number as the second media packet reception probability, wherein the second media packet reception probability is the media packet after the maximum retransmission times transmission Receiving probability; determine the receiving probability of a second target number of media packets according to the
  • the third target number refers to the number of media packets successfully received after the first transmission
  • the fourth target number refers to the number of media packets successfully received after the maximum number of retransmissions.
  • the packet loss rate between the sending end and the receiving end is x
  • the total number of media packets is m
  • the second target number is i
  • the third target number is j
  • the fourth target number is ij
  • the maximum weight The number of transmissions is k
  • the receiving probability of the second target number of media packets is: Assuming that the total number of redundant packets is n, and the number of successfully received redundant packets is r, the probability of receiving redundant packets is: P(n,r,0); then the probability of receiving data packets is:
  • P(m,i,k) retransmits up to k times, the probability of successfully receiving i data packets out of m data packets; P(n,r,0) indicates that n FEC redundant packets are successfully received The probability of r FEC redundant packets.
  • S240 Determine whether the data packet reception probability is greater than the preset recovery probability, and execute S250 in response to the data packet reception probability being less than the preset recovery probability; and execute S260 in response to the data packet reception probability being greater than or equal to the preset recovery probability.
  • the current number of retransmissions is 0, and the data packet reception probability under the condition that only media packets are included in the data packet, if the data packet reception probability does not reach the preset recovery probability, then the current number of retransmissions is executed Add one operation, that is to determine the current retransmission times is 1, and the data packet reception probability under the condition that the data packet only includes the media packet, if the data packet reception probability has not yet reached the preset recovery probability, continue to the current retransmission
  • the number of times is increased by one, and the probability of receiving the data packet is re-determined until the current number of retransmissions reaches the maximum number of retransmissions, or the probability of receiving the data packet reaches the preset recovery probability.
  • a FEC redundant packet is configured in the data packet, that is, the data packet includes the first target number
  • the media packet and a FEC redundant packet and retransmit the media packet, and the FEC redundant packet does not retransmit, calculate the data packet reception probability in this case, if the data packet reception probability has not yet reached the preset recovery probability, add one to the configured number of FEC redundant packets in the data packet, and recalculate the data packet reception probability until the data packet reception probability reaches the preset recovery probability, and the The configured quantity of FEC redundant packages is regarded as the minimum configured quantity.
  • S260 Send the first target number of media packets and the minimum configured number of FEC redundancy packets to the receiving end.
  • the technical solution of this embodiment determines the minimum configuration number of FEC redundant packets by calculating the receiving probability of data packets in different scenarios, thereby ensuring that the FEC redundancy ratio reaches the minimum, and then realizes In order to meet the user's delay and weak network resistance, it reduces the FEC redundancy ratio, improves the clarity and frame rate of real-time communication, and reduces operating costs.
  • the data transmission method further includes: determining a minimum redundancy ratio according to the minimum configured quantity of FEC redundancy packets and the first target quantity. In an embodiment, a ratio between the minimum configured quantity of FEC redundant packets and the first target quantity is determined, and the ratio is used as the minimum redundancy ratio.
  • the number of FEC redundant packets contained in the data packet can ensure that the probability of receiving the data packet reaches the preset recovery probability
  • the number of the FEC redundant packets is taken as the minimum configuration quantity, and then according to the minimum configuration quantity, namely The corresponding minimum redundancy ratio can be obtained, so that while satisfying user delay and weak network resistance, the FEC redundancy ratio is reduced, the clarity and frame rate of real-time communication are improved, and operating costs are reduced.
  • n FEC redundant packets need to be sent, the maximum number of retransmissions is k, the packet loss rate between the sending end and the receiving end is x, and the preset recovery probability is s,
  • the calculation process of the minimum redundancy ratio is described, including the following steps:
  • P(m,i,k) indicates the probability of retransmitting up to k times, and successfully receiving i media packets out of m media packets
  • P(m,j,0) indicates that after the first transmission, j
  • P(mj,ij,k-1) represents the probability of receiving ij media packets after the remaining mj media packets have been transmitted for k times.
  • the computational complexity of this calculation method is O(m*m*k).
  • m is the number of media packets
  • k is the maximum number of retransmissions k
  • the probability that m media packets receive exactly i data packets is P(m,i,k)
  • the probability of receiving r FEC redundant packets from n FEC redundant packets is P(n,r,0)
  • the probability of receiving data packets at the opposite end is:
  • the packet loss rate between the sending end and the receiving end is configured according to the user's current network situation
  • the random packet loss rate is 50%
  • the round-trip delay rtt from the sending end to the receiving end is 80ms
  • the NACK message processing interval is 20ms.
  • the maximum acceptable delay allowed by the business is 100ms
  • the preset recovery probability is equal to 0.75.
  • Two media packets are used for FEC grouping. For the convenience of calculation, it is assumed that FEC encoding is not time-consuming.
  • the probability of receiving 0 arbitrary packets is 0.03125
  • the probability of receiving 1 arbitrary packet is 0.21875
  • the probability of receiving more than or equal to two packets is 0.75. Just fit the bill.
  • the calculation formula of the data packet reception probability in the embodiments of the present disclosure is based on the random packet loss model, and in this network environment, it is guaranteed that the peer end can receive or reply each media packet with a high probability. For lost media packets, retransmission can be performed for recovery. The probability that the peer end can recover all media packets under a specific FEC redundant packet and a specific number of retransmissions can be calculated through the calculation formula of the data packet reception probability in the above embodiment.
  • FIG. 3 is a structural block diagram of a data transmission device provided by an embodiment of the present disclosure.
  • the data transmission device in this embodiment includes: a first determining module 310 , a second determining module 320 and a sending module 330 .
  • the first determination module 310 is configured to determine the maximum number of retransmissions of the first target quantity of media packets
  • the second determination module 320 is configured to determine the minimum configuration quantity of FEC redundant packets according to the maximum number of retransmissions, the preset recovery probability and the predetermined data packet reception probability;
  • the sending module 330 is configured to send the first target number of media packets and the minimum configured number of FEC redundancy packets to the receiving end.
  • the minimum configuration number of FEC redundant packets is determined according to the maximum number of retransmissions, the preset recovery probability, and the predetermined data packet reception probability to obtain the minimum FEC redundancy ratio, thereby achieving While user delay and weak network resistance, it reduces the FEC redundancy ratio, improves the clarity and frame rate of real-time communication, and reduces operating costs.
  • the first determining module 310 includes:
  • the first determining unit is configured to determine the maximum acceptable delay according to the service transmission scenario between the sending end and the receiving end;
  • the second determining unit is configured to determine the maximum number of retransmissions of the first target number of media packets according to the round-trip delay between the sending end and the receiving end, the non-acknowledgment NACK message processing interval and the maximum acceptable delay.
  • the second determining module 320 includes:
  • the third determination unit is configured to determine the probability of receiving the data packet when the current number of retransmissions is 0;
  • a fourth determining unit configured to determine whether the probability of receiving the data packet is greater than the preset recovery probability
  • the execution unit is configured to, in response to the data packet reception probability being less than the preset recovery probability, perform an operation of adding one to the current number of retransmissions, and return to the step of determining the data packet reception probability until the current The number of retransmissions reaches the maximum number of retransmissions, or until the probability of receiving the data packet is greater than or equal to the preset recovery probability.
  • the third determining unit is set to one of the following:
  • the data packet receiving probability is determined according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions.
  • the determination of the data packet receiving probability according to the packet loss rate between the sending end and the receiving end includes:
  • the data packet receiving probability is determined according to the packet loss rate between the sending end and the receiving end, the total number of data packets and the second target number.
  • the The packet loss rate between and the maximum number of retransmissions determine the probability of receiving a data packet, including:
  • the packet loss rate between the sending end and the receiving end determines the receiving probability of the third target number of data packets as the first data packet receiving probability; wherein, the first data packet receiving Probability is the probability of receiving a data packet after one transmission;
  • the total number of data packets and the fourth target number determine the reception probability of the fourth target number of data packets as the second data packet reception probability, wherein the second data packet reception probability is after the maximum number of retransmissions Subtract the probability of packet reception after one transmission;
  • the determination of the data packet receiving probability according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions includes:
  • the first target number and the third target number determine the media packet reception probability of the third target number as the first media packet reception probability; wherein, the first media packet reception Probability is the probability of receiving a media packet after one transmission;
  • the receiving probability of the first media packet and the receiving probability of the second media packet, the receiving probability of the second target number of media packets is determined; wherein, the ratio of the third target number and the fourth target number The sum is the second target quantity; the redundant packet reception probability is determined according to the packet loss rate between the sending end and the receiving end, the total number of redundant packets and the number of successfully received redundant packets;
  • the data transmission device further includes:
  • the third determination module is configured to determine a minimum redundancy ratio according to the minimum configuration quantity of the FEC redundancy packets and the first target quantity.
  • the sum of the round-trip delay between the sending end and the receiving end and the NACK message processing interval is less than or equal to the maximum acceptable delay.
  • the above-mentioned data transmission device can execute the data transmission method provided by any embodiment of the present disclosure, and has corresponding functional modules for executing the method.
  • FIG. 4 is a structural block diagram of an electronic device provided by an embodiment of the present disclosure.
  • FIG. 4 it shows a schematic structural diagram of an electronic device (such as a terminal device, server or computer) 400 suitable for implementing the embodiments of the present disclosure.
  • Computers in embodiments of the present disclosure may include, but are not limited to, mobile phones, notebook computers, digital broadcast receivers, personal digital assistants (Personal Digital Assistant, PDA), PAD (tablet computer), portable multimedia players (Portable Media Player, PMP), mobile terminals such as vehicle-mounted terminals (such as vehicle-mounted navigation terminals), and fixed terminals such as digital television (Television, TV), desktop computers, and the like.
  • PDA Personal Digital Assistant
  • PAD tablet computer
  • PMP portable multimedia players
  • mobile terminals such as vehicle-mounted terminals (such as vehicle-mounted navigation terminals)
  • fixed terminals such as digital television (Television, TV), desktop computers, and the like.
  • the electronic device shown in FIG. 4 is only an example, and should not limit
  • an electronic device 400 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 401, which may be stored in a read-only memory (Read-Only Memory, ROM) 402 according to a program 406 is loaded into the program in the random access memory (Random Access Memory, RAM) 403 to execute various appropriate actions and processes.
  • a processing device such as a central processing unit, a graphics processing unit, etc.
  • ROM read-only memory
  • RAM Random Access Memory
  • various programs and data necessary for the operation of the electronic device 400 are also stored.
  • the processing device 401, the ROM 402, and the RAM 403 are connected to each other through a bus 404. Also connected to the bus 404 is an Input/Output (I/O) interface 405 .
  • I/O Input/Output
  • an input device 406 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; including, for example, a liquid crystal display (Liquid Crystal Display, LCD) , an output device 407 such as a speaker, a vibrator, etc.; a storage device 406 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 409.
  • the communication means 409 may allow the electronic device 400 to perform wireless or wired communication with other devices to exchange data. While FIG. 4 shows electronic device 400 having various means, it should be understood that implementing or having all of the means shown is not a requirement. More or fewer means may alternatively be implemented or provided.
  • embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer readable medium, where the computer program includes program code for executing the method shown in the flowchart.
  • the computer program may be downloaded and installed from a network via communication means 409, or from storage means 406, or from ROM 402.
  • the processing device 401 When the computer program is executed by the processing device 401, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are performed.
  • the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the two.
  • a computer readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination thereof.
  • Computer readable storage media may include, but are not limited to: electrical connections having at least one lead, portable computer diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable Read memory ((Erasable Programmable Read-Only Memory, EPROM) or flash memory), optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any of the above the right combination.
  • a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal in baseband or propagated as part of a carrier wave carrying computer-readable program code thereon. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device .
  • the program code contained on the computer readable medium can be transmitted by any appropriate medium, including but not limited to: electric wire, optical cable, radio frequency (Radio Frequency, RF), etc., or any suitable combination of the above.
  • the client and the server can communicate using any currently known or future network protocols such as HTTP (HyperText Transfer Protocol, Hypertext Transfer Protocol), and can communicate with digital data in any form or medium
  • HTTP HyperText Transfer Protocol
  • the communication eg, communication network
  • Examples of communication networks include local area networks (Local Area Network, LAN), wide area networks (Wide Area Network, WAN), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently existing networks that are known or developed in the future.
  • the above-mentioned computer-readable medium may be included in the above-mentioned electronic device, or may exist independently without being incorporated into the electronic device.
  • the above-mentioned computer-readable medium carries at least one program, and when the above-mentioned at least one program is executed by the electronic device, the electronic device: determines the maximum number of retransmissions of the first target number of media packets; according to the maximum number of retransmissions, the preset The recovery probability and the predetermined data packet reception probability are used to determine the minimum configured quantity of FEC redundant packets; the first target quantity of media packets and the minimum configured quantity of FEC redundant packets are sent to the receiving end.
  • Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, or combinations thereof, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages - such as the "C" language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer can be connected to the user computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as through an Internet service provider). Internet connection).
  • LAN local area network
  • WAN wide area network
  • Internet service provider such as AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • each block in the flowchart or block diagram may represent a module, program segment, or part of code that contains at least one programmable logic function for implementing the specified logical function.
  • Execute instructions may also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
  • the units involved in the embodiments described in the present disclosure may be implemented by software or by hardware. Wherein, the name of the unit does not constitute a limitation of the unit itself under certain circumstances, for example, the first obtaining unit may also be described as "a unit for obtaining at least two Internet Protocol addresses".
  • exemplary types of hardware logic components include: Field Programmable Gate Arrays (Field Programmable Gate Arrays, FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (Application Specific Standard Parts, ASSP), System on Chip (System on Chip, SOC), Complex Programmable Logic Device (Complex Programmable Logic Device, CPLD) and so on.
  • a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
  • a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
  • machine-readable storage media would include at least one wire-based electrical connection, a portable computer disk, a hard disk, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), or flash memory), optical fiber, compact disc read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read only memory
  • EPROM erasable programmable read only memory
  • flash memory flash memory
  • optical fiber compact disc read only memory
  • CD-ROM compact disc read only memory
  • magnetic storage or any suitable combination of the foregoing.
  • Example 1 provides a data transmission method, the data transmission method includes: determining the maximum number of retransmissions of the first target number of media packets;
  • example 2 is according to the method described in example 1, the determining the maximum number of retransmissions of the first target number of media packets includes:
  • the maximum number of retransmissions of the first target number of media packets is determined according to the round-trip delay between the sending end and the receiving end, the non-acknowledgment NACK message processing interval, and the maximum acceptable delay.
  • Example 3 is based on the method described in Example 1, determining the minimum configuration number of FEC redundant packets according to the maximum number of retransmissions, the preset recovery probability, and the predetermined data packet reception probability, include:
  • example 4 is according to the method described in example 3, and said determining the data packet reception probability includes one of the following:
  • the data packet receiving probability is determined according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions.
  • Example 5 is according to the method described in Example 4, where the data packet includes a media packet or the data packet includes a media packet and an FEC redundant packet, and the maximum number of retransmissions is 0, when the number of successfully received data packets is the second target number, the determination of the data packet receiving probability according to the packet loss rate between the sending end and the receiving end includes:
  • the data packet receiving probability is determined according to the packet loss rate between the sending end and the receiving end, the total number of data packets and the second target number.
  • example 6 is according to the method described in example 4, when the data packets include media packets, and the maximum number of retransmissions is k, the number of successfully received data packets is the second target
  • the determination of the data packet receiving probability according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions includes:
  • the packet loss rate between the sending end and the receiving end determines the receiving probability of the third target number of data packets as the first data packet receiving probability; wherein, the first data packet receiving Probability is the probability of receiving a data packet after one transmission;
  • the total number of data packets and the fourth target number determine the reception probability of the fourth target number of data packets as the second data packet reception probability, wherein the second data packet reception probability is after the maximum number of retransmissions Subtract the probability of packet reception after one transmission;
  • Example 7 is according to the method described in Example 4, where the data packet includes a media packet and an FEC redundant packet, and the maximum number of retransmissions of the media packet is k and the FEC The maximum number of retransmissions of redundant packets is 0, and the number of successfully received media packets is the second target number, the data is determined according to the packet loss rate between the sending end and the receiving end and the maximum number of retransmissions Packet reception probability, including:
  • the first target number and the third target number determine the media packet reception probability of the third target number as the first media packet reception probability; wherein, the first media packet reception Probability is the probability of receiving a media packet after one transmission;
  • the receiving probability of the first media packet and the receiving probability of the second media packet, the receiving probability of the second target number of media packets is determined; wherein, the ratio of the third target number and the fourth target number The sum is the second target quantity; the redundant packet reception probability is determined according to the packet loss rate between the sending end and the receiving end, the total number of redundant packets and the number of successfully received redundant packets;
  • Example 8 according to the method described in Example 1, further includes: determining a minimum redundancy ratio according to the minimum configured quantity of the FEC redundancy packets and the first target quantity.
  • example 9 is according to the method described in example 2, the sum of the round-trip delay between the sending end and the receiving end and the NACK message processing interval is less than or equal to the maximum acceptable delay.
  • Example 10 provides a data transmission device, including:
  • the first determination module is configured to determine the maximum number of retransmissions of the first target quantity of media packets
  • the second determination module is configured to determine the minimum configuration number of FEC redundant packets according to the maximum number of retransmissions, the preset recovery probability and the predetermined data packet reception probability;
  • a sending module configured to send the first target number of media packets and the minimum configured number of FEC redundancy packets to the receiving end.
  • Example 11 provides an electronic device, comprising:
  • a memory configured to store at least one program
  • the at least one processor When the at least one program is executed by the at least one processor, the at least one processor is made to implement the data transmission method described in any one of Examples 1-9.
  • Example 12 provides a computer storage medium, the medium stores a computer program, and when the computer program is executed by a processor, the data transmission as described in any one of Examples 1-9 is realized. method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

本公开公开了一种数据传输方法、装置、设备和介质。该方法包括:确定第一目标数量媒体包的最大重传次数;根据最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;将第一目标数量的媒体包和最小配置数量的FEC冗余包发送至接收端。

Description

数据传输方法、装置、设备和介质
本申请要求在2021年11月26日提交中国专利局、申请号为202111424223.7的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本公开涉及数据处理领域,例如涉及一种数据传输方法、装置、设备和介质。
背景技术
实时通信(Real Time Communication,RTC)技术,由于用户网络环境复杂及其对实时体验的极致要求,不可避免的需要与弱网进行对抗。
目前RTC进行弱网对抗的对抗策略包括两种:前向纠错(Forward Error Correction,FEC)技术(即发送方提前发送冗余报文进行弱网对抗)和非确认(Non-Acknowledge,NACK)技术(即接收方发现有丢包时,将丢包信息通过NACK反馈给发送方,请求发送方重传丢失的报文)。通常来说,FEC冗余比例越高,主动抗丢包能力越强,需要的重传次数也越小,延时越小。然而,FEC未用于恢复丢包时,会造成网络资源的浪费,增加运营成本。此外,在带宽一定情况下,过高的FEC比例,会造成媒体核心码率的降低,影响实时通信的清晰度与帧率。因此,在满足用户延时与弱网抗性的同时,如何降低FEC冗余比例,降低运营成本尤为重要。
发明内容
本公开实施例提供一种数据传输方法、装置、设备和介质,在满足用户抗性与延时需求的基础上,降低了FEC冗余比例,进而提升了视频清晰度和降低了运营成本。
第一方面,本公开实施例提供了一种数据传输方法,包括:
确定第一目标数量媒体包的最大重传次数;
根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;
将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
第二方面,本公开实施例还提供了一种数据传输装置,包括:
第一确定模块,设置为确定第一目标数量媒体包的最大重传次数;
第二确定模块,设置为根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;
发送模块,设置为将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
第三方面,本公开实施例还提供了一种电子设备,包括:
至少一个处理器;
存储器,设置为存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如上述实施例中任一项所述的数据传输方法。
第四方面,本公开实施例还提供了一种计算机存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例任一项所述的数据传输方法。
附图说明
贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例提供的一种数据传输方法的流程图;
图2是本公开实施例提供的另一种数据传输方法的流程图;
图3是本公开实施例提供的一种数据传输装置的结构框图;
图4是本公开实施例提供的一种电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“至少一个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1是本公开实施例提供的一种数据传输方法的流程图。该方法可以由配置于电子设备中的数据传输装置来执行。本实施例应用于RTC通信弱网对抗的场景。该电子设备可以是发送端,可选可以是智能手机、iPad、个人计算机(Personal Computer,PC)等可以进行视频传输的智能终端。如图1所示,本实施例中的方法包括如下步骤:
S110、确定第一目标数量媒体包的最大重传次数。
其中,最大重传次数指的是发送端最多可以向接收端重传媒体包的次数,需要说明的是,发送端向接收端第一次发送媒体包不包括在最大重传次数内,即最大重传次数即为所有传输次数减去1。可以理解为,发送端预先生成第一目 标数量的媒体包,并对每个媒体包进行编号,即每个媒体包均对应一个媒体包序号,然后发送端将第一目标数量的媒体包发送至接收端,若接收端未成功接收到第一目标数量的媒体包的情况下,接收端向发送端反馈未成功接收到的媒体包对应的媒体包序号,以使发送端重传该媒体包序号(即接收端未成功接收到的媒体包对应的媒体包序号)对应的媒体包。当然,发送端也可以将第一目标数量的媒体包重传至接收端,对此并不进行限定。
在实施例中,不同的发送端和接收端之间的网络情况,以及业务传输场景也是不同的,为了保证发送端和接收端之间的正常通信,可以根据业务传输场景和/或网络情况,适应地配置媒体包的最大重传次数。其中,媒体包的最大重传次数可以为第一目标数量媒体包的最大重传次数,也可以为第一目标数量中一部分媒体包的最大重传次数。
S120、根据最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量。
在实施例中,预设恢复概率指的是接收端能够成功恢复出数据包的概率,也可以理解为,接收端能够成功接收到数据包的概率。需要理解的是,接收端的数据包接收概率大于或等于预设恢复概率,即接收端成功地解析出数据包对应的数据信息的概率大于或等于预设恢复概率。
在实施例中,可以根据最大重传次数和第一目标数量确定数据包接收概率(即S120中的预先确定的数据包接收概率),数据包接收概率的确定方法参见本申请S230;然后根据数据包接收概率和预设恢复概率确定FEC冗余包的最小配置数量。可以理解为,数据包至少包括媒体包。当然,在数据包只包括媒体包的情况下,若数据包接收概率小于预设恢复概率,则在数据包中配置FEC冗余包。可以理解为,在保证数据包接收概率大于或等于预设恢复概率的前提下,尽可能减少数据包中FEC冗余包的数量,即确定FEC冗余包的最小配置数量。
S130、将第一目标数量的媒体包和最小配置数量的FEC冗余包发送至接收端。
在实施例中,在确定FEC冗余包的最小配置数量之后,在数据包中添加最小配置数量的FEC冗余包,并将携带第一目标数量的媒体包和最小配置数量的FEC冗余包的数据包发送至接收端。当然,为了便于对FEC冗余包的解析,对FEC冗余包进行编号,即每个FEC冗余包配置对应的冗余包序号。
本实施例的技术方案,通过根据最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量,以得到最小的FEC冗余比例,从而实现了在满足用户延时与弱网抗性的同时,降低了FEC冗余比例,提高了实时通信的清晰度与帧率,以及降低了运营成本。
在一实施例中,图2是本公开实施例提供的另一种数据传输方法的流程图。本实施例是在上述实施例的基础上,对数据传输方法的实现过程作说明。如图2所示,本实施例中的数据传输方法包括如下步骤:
S210、根据发送端和接收端之间的业务传输场景确定最大可接受延时。
其中,最大可接受延时,指的是发送端和接收端之间传输数据,对端未响应的最大延时。需要说明的是,对端可以为发送端,也可以为接收端。可以理解为,在发送端向接收端发送数据时,发送端为本端,接收端为对端;在接收端向发送端反馈信息时,接收端为本端,发送端为对端。可以理解为,在发送端和接收端之间进行数据传输的过程中,若在未响应时长达到最大可接受延时的情况下,接收端(或发送端)仍未响应发送端(或接收端),则可以理解为发送端和接收端的通信出现故障。因此,在发送端和接收端之间配置最大可接受延时,以保证发送端和接收端之间的正常通信。当然,最大可接受延时与发送端和接收端之间的业务传输场景有关,比如,发送端和接收端之间的业务传输数量大,或者,发送端和接收端之间的通信距离较大,相应的,最大可接受延时也随之增加。当然,最大可接受延时也可以与其它因素有关,可根据实际情况进行调整配置,对此并不进行限定。
S220、根据发送端和接收端之间的往返延时、NACK消息处理间隔和最大 可接受延时确定第一目标数量媒体包的最大重传次数。
其中,发送端和接收端之间的往返延时,指的是发送端向接收端发送数据,和接收端向发送端发送反馈信息这两个过程的总时长。NACK消息处理间隔,指的是接收端发送NACK消息耗时,(即接收端从判断需要发送NACK消息到实际发送NACK消息的耗时),即NACK消息处理间隔加上往返延时可以理解为一次NACK消息的处理总时长。在实施例中,首先计算出发送端和接收端之间的往返延时以及NACK消息处理间隔的总和,然后计算出最大可接受延时与总和(即发送端和接收端之间的往返延时以及NACK消息处理间隔的总和)之间的比值,并将该比值得到的数值作为第一目标数量媒体包的最大重传次数。
需要说明的是,发送端和接收端之间的往返延时,与NACK消息处理间隔的总和小于或等于最大可接受延时。在实施例中,最大可接受延时是用于保证发送端和接收端之间恢复时长能够保障正常通信,即同个数据包的多次NACK消息总时长之和,需要小于或等于最大可接受延时。
S230、确定数据包接收概率。
需要说明的是,在发送端的最大重传次数为0的情况下,与发送端的最大重传次数不为0的情况下,数据包接收概率的确定方式是不同的。
在一实施例中,确定数据包接收概率,包括两种实现方式:
一种实现方式,根据发送端和接收端之间的丢包率确定数据包接收概率。在实施例中,在数据包的最大重传次数为0的情况下,可以直接根据发送端和接收端之间的丢包率确定数据包的接收概率。
在一实施例中,在数据包包括媒体包或数据包包括媒体包和FEC冗余包,且最大重传次数为0,成功接收到数据包的数量为第二目标数量的情况下,根据发送端和接收端之间的丢包率确定数据包接收概率,包括:根据发送端和接收端之间的丢包率、数据包总数量和第二目标数量确定第二目标数量的数据包接收概率。
其中,第二目标数量指的是成功接收到数据包数量。示例性地,假设发送 端和接收端之间的丢包率为x,数据包总数量为m,第二目标数量的为i,则第二目标数量的数据包接收概率为:
Figure PCTCN2022134627-appb-000001
其中,P(m,i)表示m个数据包中成功接收到i个数据包的接收概率;x表示发送端和接收端之间的丢包率。
在实施例中,在数据包包括媒体包或数据包包括媒体包和FEC冗余包,且没有重传的情况下,接收端成功接收到i个数据包的接收概率与发送端和接收端之间的丢包率有关。
另一种实现方式,根据发送端和接收端之间的丢包率以及最大重传次数确定数据包接收概率。在实施例中,在数据包的最大重传次数不为0的情况下,可以根据发送端和接收端之间的丢包率,以及最大重传次数确定数据包的接收概率。
在一实施例中,在数据包仅包括媒体包,且最大重传次数为k,成功接收到数据包的数量为第二目标数量的情况下,根据发送端和接收端之间的丢包率以及最大重传次数确定第二目标数量的数据包接收概率,包括:根据发送端和接收端之间的丢包率、数据包总数量和第三目标数量确定第三目标数量的数据包接收概率,作为第一数据包接收概率;其中,所述第一数据包接收概率为第一次传输之后的数据包接收概率;根据最大重传次数、数据包总数量和第四目标数量确定第四目标数量的数据包接收概率,作为第二数据包接收概率,其中,所述第二数据包接收概率为经过最大重传次数传输之后的数据包接收概率;根据最大重传次数、所述第一数据包接收概率和所述第二数据包接收概率确定第二目标数量的数据包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量。
其中,第三目标数量指的是在第一次传输之后成功接收到的数据包数量;第四目标数量指的是在经过最大重传次数传输之后成功接收到的数据包数量。 示例性地,假设发送端和接收端之间的丢包率为x,数据包总数量为m,第二目标数量的为i,第三目标数量为j,第四目标数量为i-j,最大重传次数为k,则第二目标数量的数据包接收概率为:
Figure PCTCN2022134627-appb-000002
其中,P(m,i,k)表示最多重传k次,m个数据包中成功接收到i个数据包的概率;P(m,j,0)表示第一次传输之后,接收到j个数据包的概率;P(m-j,i-j,k-1)表示剩下的m-j个数据包经过k次传输之后,接收到i-j个数据包的概率。
在一实施例中,在数据包包括媒体包和FEC冗余包,且媒体包的最大重传次数为k以及FEC冗余包的最大重传次数为0,成功接收到媒体包的数量为第二目标数量的情况下,根据发送端和接收端之间的丢包率以及最大重传次数确定数据包接收概率,包括:根据发送端和接收端之间的丢包率、第一目标数量和第三目标数量确定第三目标数量的媒体包接收概率,作为第一媒体包接收概率;其中,所述第一媒体包接收概率为第一次传输之后的媒体包接收概率;根据最大重传次数、第一目标数量和第四目标数量确定第四目标数量的媒体包接收概率,作为第二媒体包接收概率,其中,所述第二媒体包接收概率为经过最大重传次数传输之后的媒体包接收概率;根据最大重传次数、所述第一媒体包接收概率和所述第二媒体包接收概率确定第二目标数量的媒体包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量;根据发送端和接收端之间的丢包率、冗余包总数量和成功接收到的冗余包数量确定冗余包接收概率;根据所述媒体包接收概率和所述冗余包接收概率确定数据包接收概率。
其中,第三目标数量指的是在第一次传输之后成功接收到的媒体包数量;第四目标数量指的是在经过最大重传次数传输之后成功接收到的媒体包数量。示例性地,假设发送端和接收端之间的丢包率为x,媒体包总数量为m,第二目标 数量的为i,第三目标数量为j,第四目标数量为i-j,最大重传次数为k,则第二目标数量的媒体包接收概率为:
Figure PCTCN2022134627-appb-000003
假设冗余包总数量为n,成功接收到的冗余包数量为r,则冗余包接收概率为:P(n,r,0);则数据包接收概率为:
Figure PCTCN2022134627-appb-000004
其中,P(m,i,k)最多重传k次,m个数据包中成功接收到i个数据包的概率;P(n,r,0)表示n个FEC冗余包中成功接收到r个FEC冗余包的概率。
S240、确定数据包接收概率是否大于预设恢复概率,响应于数据包接收概率小于预设恢复概率,执行S250;响应于数据包接收概率大于或等于预设恢复概率,执行S260。
S250、对当前重传次数执行加一操作,并返回执行S230,直至当前重传次数达到最大重传次数,或者,数据包接收概率大于或等于预设恢复概率为止。
在实施例中,首先确定当前重传次数为0,且数据包中只包括媒体包的情况下的数据包接收概率,若数据包接收概率未达到预设恢复概率,则对当前重传次数执行加一操作,即确定当前重传次数为1,且数据包中只包括媒体包的情况下的数据包接收概率,若该数据包接收概率仍未达到预设恢复概率,则继续对当前重传次数执行加一操作,并重新确定数据包接收概率,直至当前重传次数达到最大重传次数,或者数据包接收概率达到预设恢复概率为止。当然,若在当前重传次数达到最大重传次数的情况下,数据包接收概率仍未达到预设恢复概率,则在数据包中配置一个FEC冗余包,即数据包中包括第一目标数量的媒体包和一个FEC冗余包,并对媒体包进行重传,以及FEC冗余包不进行重传,计算出此情况下的数据包接收概率,若该数据包接收概率仍未达到预设恢复概 率,则对数据包中的FEC冗余包的配置数量执行加一操作,并重新计算数据包接收概率,直至数据包接收概率达到预设恢复概率为止,将此时数据包中所包含的FEC冗余包的配置数量作为最小配置数量。
S260、将第一目标数量的媒体包和最小配置数量的FEC冗余包发送至接收端。
本实施例的技术方案,在上述实施例的基础上,通过对不同场景下数据包接收概率的计算方式,确定FEC冗余包的最小配置数量,从而保证了FEC冗余比例达到最小,进而实现了在满足用户延时与弱网抗性的同时,降低了FEC冗余比例,提高了实时通信的清晰度与帧率,以及降低了运营成本。
在一实施例中,数据传输方法,还包括:根据FEC冗余包的最小配置数量和所第一目标数量确定最小冗余比例。在实施例中,确定FEC冗余包的最小配置数量与第一目标数量之间的比值,将该比值作为最小冗余比例。可以理解为,在数据包中所包含FEC冗余包的数量可以保证数据包接收概率达到预设恢复概率的情况下,将该FEC冗余包的数量作为最小配置数量,进而根据最小配置数量即可得到对应的最小冗余比例,从而在满足用户延时与弱网抗性的同时,降低了FEC冗余比例,提高了实时通信的清晰度与帧率,以及降低了运营成本。
在一实施例中,假设有m个媒体包,n个FEC冗余包需要发送,最大重传次数为k,发送端和接收端之间的丢包率为x,预设恢复概率为s,对最小冗余比例的计算过程进行说明,包括如下步骤:
首先,假设有m个媒体包需要发送,丢包率为x,在没有重传的情况下,对端恰好接收到i(0<=i<=m)个媒体包的概率为:
Figure PCTCN2022134627-appb-000005
然后,假设m个媒体包最多可以重传k次,对端恰好接收到i(0<=i<=m) 个媒体包的概率为:
Figure PCTCN2022134627-appb-000006
其中,P(m,i,k)表示最多重传k次,m个媒体包中成功接收到i个媒体包的概率;P(m,j,0)表示第一次传输之后,接收到j个媒体包的概率;P(m-j,i-j,k-1)表示剩下的m-j个媒体包经过k次传输之后,接收到i-j个媒体包的概率。其中,P(m,j,0)的值可以根据
Figure PCTCN2022134627-appb-000007
计算得到,即P(m,j,0)=P(m,j),从而相加即可得到P(m,i,k)。
采用该计算方式的计算复杂度为O(m*m*k),通常一组媒体包的分组m(m为媒体包的个数)和最大重传次数k的数值较小,可以快速的进行计算。
然后,对于m个媒体包,n个FEC冗余包,如果FEC冗余包不进行重传,并且,媒体包最大允许k次重传,m个媒体包恰好接收到i个数据包的概率为P(m,i,k),从n个FEC冗余包中接收到r个FEC冗余包的概率为P(n,r,0),则对端的数据包接收概率为:
Figure PCTCN2022134627-appb-000008
最后,假设编码侧生成m个媒体包需要耗时N毫秒,并且,对端的恢复概率需要达到s;假设发送端为m个媒体包生成n个FEC冗余包需要耗时N毫秒,对端的恢复概率需要达到s;最大可接受延时为delay,rtt为发送端到接收端的往返延时,则最小冗余比例f的计算公式为:f=min(n/m);其中,f的计算公式需要满足如下条件:
Figure PCTCN2022134627-appb-000009
在一实施例中,假设根据用户当前网络情况配置发送端和接收端之间的丢包率为随机丢包50%,发送端到接收端的往返延时rtt为80ms,NACK消息处理间隔为20ms,业务上允许的最大可接受延时为100ms,预设恢复概率等于0.75,使用2个媒体包进行FEC分组,为了方便计算,假设FEC编码不耗时。
首先计算出最大重传次数K=100ms/(80ms+20ms)=1次;
然后,依次可以计算出两个媒体包重传0次,并接收到0个媒体包的概率为0.25,接收到1个的概率为0.5,接收到2个的概率为0.25;
两个媒体包重传1次,并接收到0个媒体包的概率为0.0625,接收到1个的概率为0.375,接收到2个的概率为0.5625。因此,在数据包中没有FEC冗余包的情况是不符合要求的。
假设FEC冗余包个数为1,重传1次,则接收到0个任意包的概率为0.03125,接收到1个任意包的概率为0.21875,接收到大于等于两个包的概率为0.75,刚好符合要求。
基于此,可以得出在此环境下一组媒体包满足要求的FEC冗余包的最小配置数量为1。
需要说明的是,本公开实施例中的数据包接收概率的计算公式是以随机丢包模型为基础,在此网络环境下保证对端大概率能够接收到或回复每一个媒体包。对于丢失的媒体包,可以进行重传进行恢复。通过上述实施例中数据包接收概率的计算公式可以计算特定FEC冗余包和特定重传次数下对端能够恢复出所有媒体包的概率。
在一实施例中,图3是本公开实施例提供的一种数据传输装置的结构框图。如图3所示,本实施例中的数据传输装置包括:第一确定模块310、第二确定模块320和发送模块330。
其中,第一确定模块310,设置为确定第一目标数量媒体包的最大重传次数;
第二确定模块320,设置为根据所述最大重传次数、预设恢复概率和预先确 定的数据包接收概率确定FEC冗余包的最小配置数量;
发送模块330,设置为将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
本实施例的技术方案,通过根据最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量,以得到最小的FEC冗余比例,从而实现了在满足用户延时与弱网抗性的同时,降低了FEC冗余比例,提高了实时通信的清晰度与帧率,以及降低了运营成本。
在一实施例中,第一确定模块310,包括:
第一确定单元,设置为根据发送端和接收端之间的业务传输场景确定最大可接受延时;
第二确定单元,设置为根据发送端和接收端之间的往返延时、非确认NACK消息处理间隔和所述最大可接受延时确定第一目标数量媒体包的最大重传次数。
在一实施例中,第二确定模块320,包括:
第三确定单元,设置为在当前重传次数为0时,确定数据包接收概率;
第四确定单元,设置为确定所述数据包接收概率是否大于所述预设恢复概率;
执行单元,设置为响应于所述数据包接收概率小于所述预设恢复概率,对所述当前重传次数执行加一操作,并返回执行所述确定数据包接收概率的步骤,直至所述当前重传次数达到最大重传次数,或者,所述数据包接收概率大于或等于预设恢复概率为止。
在一实施例中,第三确定单元,设置为下述之一:
根据发送端和接收端之间的丢包率确定数据包接收概率;
根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率。
在一实施例中,在所述数据包包括媒体包或所述数据包包括媒体包和FEC冗余包,且所述最大重传次数为0,成功接收到数据包的数量为第二目标数量的 情况下,所述根据发送端和接收端之间的丢包率确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、数据包总数量和第二目标数量确定数据包接收概率。
在一实施例中,在所述数据包包括媒体包,且所述最大重传次数为k,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、数据包总数量和第三目标数量确定第三目标数量的数据包接收概率,作为第一数据包接收概率;其中,所述第一数据包接收概率为一次传输之后的数据包接收概率;
根据最大重传次数、数据包总数量和第四目标数量确定第四目标数量的数据包接收概率,作为第二数据包接收概率,其中,所述第二数据包接收概率为经过最大重传次数减一次传输之后的数据包接收概率;
根据最大重传次数、所述第一数据包接收概率和所述第二数据包接收概率确定数据包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量。
在一实施例中,在所述数据包包括媒体包和FEC冗余包,且所述媒体包的最大重传次数为k以及所述FEC冗余包的最大重传次数为0,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、第一目标数量和第三目标数量确定第三目标数量的媒体包接收概率,作为第一媒体包接收概率;其中,所述第一媒体包接收概率为一次传输之后的媒体包接收概率;
根据最大重传次数、第一目标数量和第四目标数量确定第四目标数量的媒体包接收概率,作为第二媒体包接收概率,其中,所述第二媒体包接收概率为经过最大重传次数减一次传输之后的媒体包接收概率;
根据最大重传次数、所述第一媒体包接收概率和所述第二媒体包接收概率 确定第二目标数量的媒体包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量;根据发送端和接收端之间的丢包率、冗余包总数量和成功接收到的冗余包数量确定冗余包接收概率;
根据所述媒体包接收概率和所述冗余包接收概率确定数据包接收概率。
在一实施例中,数据传输装置,还包括:
第三确定模块,设置为根据所述FEC冗余包的最小配置数量和所述第一目标数量确定最小冗余比例。
在一实施例中,所述发送端和接收端之间的往返延时,与所述NACK消息处理间隔的总和小于等于所述最大可接受延时。
上述数据传输装置可执行本公开任意实施例所提供的数据传输方法,具备执行方法相应的功能模块。
在一实施例中,图4是本公开实施例提供的一种电子设备的结构框图。下面参考图4,其示出了适于用来实现本公开实施例的电子设备(例如终端设备、服务器或计算机)400的结构示意图。本公开实施例中的计算机可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,PDA)、PAD(平板电脑)、便携式多媒体播放器(Portable Media Player,PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(Television,TV)、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(Read-Only Memory,ROM)402中的程序或者从存储装置406加载到随机访问存储器(Random Access Memory,RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(Input/Output,I/O)接口405也连接至 总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(Liquid Crystal Display,LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置406;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置406被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有至少一个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器((Erasable Programmable Read-Only Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在 基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有至少一个程序,当上述至少一个程序被该电子设备执行时,使得该电子设备:确定第一目标数量媒体包的最大重传次数;根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算 机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由至少一个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(Application Specific Standard Parts,ASSP)、片上系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programmable Logic Device,CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机 器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于至少一个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的至少一个实施例,示例1提供了一种数据传输方法,该数据传输方法,包括:确定第一目标数量媒体包的最大重传次数;
根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;
将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
根据本公开的至少一个实施例,示例2根据示例1所述的方法,,所述确定第一目标数量媒体包的最大重传次数,包括:
根据发送端和接收端之间的业务传输场景确定最大可接受延时;
根据发送端和接收端之间的往返延时、非确认NACK消息处理间隔和所述最大可接受延时确定第一目标数量媒体包的最大重传次数。
根据本公开的至少一个实施例,示例3根据示例1所述的方法,,根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量,包括:
在当前重传次数为0时,确定数据包接收概率;
确定所述数据包接收概率是否大于所述预设恢复概率;
响应于所述数据包接收概率小于所述预设恢复概率,对所述当前重传次数执行加一操作,并返回执行所述确定数据包接收概率的步骤,直至所述当前重传次数达到最大重传次数,或者,所述数据包接收概率大于或等于预设恢复概率为止。
根据本公开的至少一个实施例,示例4根据示例3所述的方法,,所述确 定数据包接收概率,包括下述之一:
根据发送端和接收端之间的丢包率确定数据包接收概率;
根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率。
根据本公开的至少一个实施例,示例5根据示例4所述的方法,,在所述数据包包括媒体包或所述数据包包括媒体包和FEC冗余包,且所述最大重传次数为0,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、数据包总数量和第二目标数量确定数据包接收概率。
根据本公开的至少一个实施例,示例6根据示例4所述的方法,,在所述数据包包括媒体包,且所述最大重传次数为k,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、数据包总数量和第三目标数量确定第三目标数量的数据包接收概率,作为第一数据包接收概率;其中,所述第一数据包接收概率为一次传输之后的数据包接收概率;
根据最大重传次数、数据包总数量和第四目标数量确定第四目标数量的数据包接收概率,作为第二数据包接收概率,其中,所述第二数据包接收概率为经过最大重传次数减一次传输之后的数据包接收概率;
根据最大重传次数、所述第一数据包接收概率和所述第二数据包接收概率确定数据包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量。
根据本公开的至少一个实施例,示例7根据示例4所述的方法,,在所述数据包包括媒体包和FEC冗余包,且所述媒体包的最大重传次数为k以及所述FEC冗余包的最大重传次数为0,成功接收到媒体包的数量为第二目标数量的情 况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
根据发送端和接收端之间的丢包率、第一目标数量和第三目标数量确定第三目标数量的媒体包接收概率,作为第一媒体包接收概率;其中,所述第一媒体包接收概率为一次传输之后的媒体包接收概率;
根据最大重传次数、第一目标数量和第四目标数量确定第四目标数量的媒体包接收概率,作为第二媒体包接收概率,其中,所述第二媒体包接收概率为经过最大重传次数减一次传输之后的媒体包接收概率;
根据最大重传次数、所述第一媒体包接收概率和所述第二媒体包接收概率确定第二目标数量的媒体包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量;根据发送端和接收端之间的丢包率、冗余包总数量和成功接收到的冗余包数量确定冗余包接收概率;
根据所述媒体包接收概率和所述冗余包接收概率确定数据包接收概率。
根据本公开的至少一个实施例,示例8根据示例1所述的方法,,还包括:根据所述FEC冗余包的最小配置数量和所述第一目标数量确定最小冗余比例。
根据本公开的至少一个实施例,示例9根据示例2所述的方法,,所述发送端和接收端之间的往返延时,与所述NACK消息处理间隔的总和小于等于所述最大可接受延时。
根据本公开的至少一个实施例,示例10提供了一种数据传输装置,包括:
第一确定模块,设置为确定第一目标数量媒体包的最大重传次数;
第二确定模块,设置为根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量;
发送模块,设置为将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
根据本公开的至少一个实施例,示例11提供了一种电子设备,包括:
至少一个处理器;
存储器,设置为存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如示例1-9任一项所述的数据传输方法。
根据本公开的至少一个实施例,示例12提供了一种计算机存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如示例1-9任一项所述的数据传输方法。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (12)

  1. 一种数据传输方法,包括:
    确定第一目标数量媒体包的最大重传次数;
    根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定前向纠错FEC冗余包的最小配置数量;
    将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
  2. 根据权利要求1所述的方法,其中,所述确定第一目标数量媒体包的最大重传次数,包括:
    根据发送端和接收端之间的业务传输场景确定最大可接受延时;
    根据发送端和接收端之间的往返延时、非确认NACK消息处理间隔和所述最大可接受延时确定第一目标数量媒体包的最大重传次数。
  3. 根据权利要求1所述的方法,其中,所述根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定FEC冗余包的最小配置数量,包括:
    响应于当前重传次数为0,确定数据包接收概率;
    确定所述数据包接收概率是否大于所述预设恢复概率;
    响应于所述数据包接收概率小于所述预设恢复概率,对所述当前重传次数执行加一操作,并返回执行所述确定数据包接收概率的步骤,直至所述当前重传次数达到最大重传次数,或者,所述数据包接收概率大于或等于预设恢复概率为止。
  4. 根据权利要求3所述的方法,其中,所述确定数据包接收概率,包括下述之一:
    根据发送端和接收端之间的丢包率确定数据包接收概率;
    根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率。
  5. 根据权利要求4所述的方法,其中,在所述数据包包括媒体包或所述数据包包括媒体包和FEC冗余包,且所述最大重传次数为0,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率确定 数据包接收概率,包括:
    根据发送端和接收端之间的丢包率、数据包总数量和第二目标数量确定数据包接收概率。
  6. 根据权利要求4所述的方法,其中,在所述数据包包括媒体包,且所述最大重传次数为k,成功接收到数据包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
    根据发送端和接收端之间的丢包率、数据包总数量和第三目标数量确定第三目标数量的数据包接收概率,作为第一数据包接收概率;其中,所述第一数据包接收概率为一次传输之后的数据包接收概率;
    根据最大重传次数、数据包总数量和第四目标数量确定第四目标数量的数据包接收概率,作为第二数据包接收概率,其中,所述第二数据包接收概率为经过最大重传次数减一次传输之后的数据包接收概率;
    根据最大重传次数、所述第一数据包接收概率和所述第二数据包接收概率确定数据包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量。
  7. 根据权利要求4所述的方法,其中,在所述数据包包括媒体包和FEC冗余包,且所述媒体包的最大重传次数为k以及所述FEC冗余包的最大重传次数为0,成功接收到媒体包的数量为第二目标数量的情况下,所述根据发送端和接收端之间的丢包率以及所述最大重传次数确定数据包接收概率,包括:
    根据发送端和接收端之间的丢包率、第一目标数量和第三目标数量确定第三目标数量的媒体包接收概率,作为第一媒体包接收概率;其中,所述第一媒体包接收概率为一次传输之后的媒体包接收概率;
    根据最大重传次数、第一目标数量和第四目标数量确定第四目标数量的媒体包接收概率,作为第二媒体包接收概率,其中,所述第二媒体包接收概率为经过最大重传次数减一次传输之后的媒体包接收概率;
    根据最大重传次数、所述第一媒体包接收概率和所述第二媒体包接收概率确定第二目标数量的媒体包接收概率;其中,所述第三目标数量和所述第四目标数量的总和为第二目标数量;
    根据发送端和接收端之间的丢包率、冗余包总数量和成功接收到的冗余包数量确定冗余包接收概率;
    根据所述媒体包接收概率和所述冗余包接收概率确定数据包接收概率。
  8. 根据权利要求1所述的方法,还包括:
    根据所述FEC冗余包的最小配置数量和所述第一目标数量确定最小冗余比例。
  9. 根据权利要求2所述的方法,其中,所述发送端和接收端之间的往返延时,与所述NACK消息处理间隔的总和小于等于所述最大可接受延时。
  10. 一种数据传输装置,包括:
    第一确定模块,设置为确定第一目标数量媒体包的最大重传次数;
    第二确定模块,设置为根据所述最大重传次数、预设恢复概率和预先确定的数据包接收概率确定前向纠错FEC冗余包的最小配置数量;
    发送模块,设置为将第一目标数量的媒体包和所述最小配置数量的FEC冗余包发送至接收端。
  11. 一种电子设备,包括:
    至少一个处理器;
    存储器,设置为存储至少一个程序;
    当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-9任一项所述的数据传输方法。
  12. 一种计算机存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述的数据传输方法。
PCT/CN2022/134627 2021-11-26 2022-11-28 数据传输方法、装置、设备和介质 WO2023093879A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111424223.7A CN114039703B (zh) 2021-11-26 2021-11-26 数据传输方法、装置、设备和介质
CN202111424223.7 2021-11-26

Publications (1)

Publication Number Publication Date
WO2023093879A1 true WO2023093879A1 (zh) 2023-06-01

Family

ID=80139013

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/134627 WO2023093879A1 (zh) 2021-11-26 2022-11-28 数据传输方法、装置、设备和介质

Country Status (2)

Country Link
CN (1) CN114039703B (zh)
WO (1) WO2023093879A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039703B (zh) * 2021-11-26 2023-10-20 北京字节跳动网络技术有限公司 数据传输方法、装置、设备和介质
CN114666247B (zh) * 2022-03-15 2023-09-08 西安电子科技大学广州研究院 一种MPSoCNoC通信架构的设计性能评估方法及系统
CN115314479B (zh) * 2022-07-05 2023-12-29 上海赛连信息科技有限公司 流媒体传输容错控制方法及其系统
CN116137560B (zh) * 2023-04-14 2023-06-30 海马云(天津)信息技术有限公司 处理重传请求的方法及装置、数据发送端设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212943A1 (en) * 2001-12-21 2003-11-13 Chengdong Zhang Adaptive error resilience for signal transmission over a network
CN108667563A (zh) * 2018-01-19 2018-10-16 唐桥科技(杭州)有限公司 一种前向纠错包个数获取方法及装置
CN109951254A (zh) * 2019-03-21 2019-06-28 腾讯科技(深圳)有限公司 一种数据处理方法及装置、计算机可读存储介质
CN110247736A (zh) * 2019-06-27 2019-09-17 北京奇艺世纪科技有限公司 一种数据传输方法及装置
CN114039703A (zh) * 2021-11-26 2022-02-11 北京字节跳动网络技术有限公司 数据传输方法、装置、设备和介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006060036A1 (en) * 2004-12-02 2006-06-08 Thomson Licensing Adaptive forward error correction
JP4513725B2 (ja) * 2005-11-09 2010-07-28 ソニー株式会社 パケット送信装置、通信システム及びプログラム
US9312989B2 (en) * 2008-07-07 2016-04-12 Cisco Technology, Inc. Importance-based FEC-aware error-repair scheduling
CN102143367B (zh) * 2010-01-30 2013-01-30 华为技术有限公司 一种纠错校验方法、设备和系统
RU2018132348A (ru) * 2016-02-26 2020-03-26 Нэт Инсайт Интеллекчуал Пропэрти Аб Повторная передача данных в пакетных сетях
CN107196746B (zh) * 2016-03-15 2020-11-27 中兴通讯股份有限公司 实时通信中的抗丢包方法、装置和系统
US10389487B2 (en) * 2017-01-17 2019-08-20 At&T Intellectual Property I, L.P. Adaptive downlink control channel structure for 5G or other next generation networks
CN109525458B (zh) * 2018-11-20 2021-01-15 网易(杭州)网络有限公司 数据传输方法、装置、介质及电子设备
CN110855400B (zh) * 2019-11-29 2022-02-25 江苏方天电力技术有限公司 基于纠错码的自适应丢包恢复方法、计算设备及存储介质
CN112187817B (zh) * 2020-10-09 2023-03-31 厦门亿联网络技术股份有限公司 流媒体数据传输方法、装置、设备及存储介质
CN112804028B (zh) * 2020-10-22 2023-04-07 北京佳讯飞鸿电气股份有限公司 一种数据包的传输方法、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212943A1 (en) * 2001-12-21 2003-11-13 Chengdong Zhang Adaptive error resilience for signal transmission over a network
CN108667563A (zh) * 2018-01-19 2018-10-16 唐桥科技(杭州)有限公司 一种前向纠错包个数获取方法及装置
CN109951254A (zh) * 2019-03-21 2019-06-28 腾讯科技(深圳)有限公司 一种数据处理方法及装置、计算机可读存储介质
CN110247736A (zh) * 2019-06-27 2019-09-17 北京奇艺世纪科技有限公司 一种数据传输方法及装置
CN114039703A (zh) * 2021-11-26 2022-02-11 北京字节跳动网络技术有限公司 数据传输方法、装置、设备和介质

Also Published As

Publication number Publication date
CN114039703B (zh) 2023-10-20
CN114039703A (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
WO2023093879A1 (zh) 数据传输方法、装置、设备和介质
US10009259B2 (en) Multi-path data transfer using network coding
US7502860B1 (en) Method and apparatus for client-side flow control in a transport protocol
CN103780972A (zh) 服务器、客户端装置及其控制方法
CN111147606B (zh) 数据传输的方法、装置、终端及存储介质
KR102046792B1 (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
WO2017202290A1 (zh) 语音数据传输方法及装置
CN112787945B (zh) 数据传输方法、装置、计算机可读介质及电子设备
CN104753980A (zh) 数据传输方法及相关装置和通信系统
CN113783775B (zh) 数据传输的方法和装置
CN112583529A (zh) 一种数据处理方法、装置、设备及存储介质
WO2023078222A1 (zh) 数据传输方法、装置、设备和介质
CN111385068A (zh) 数据传输方法、装置、电子设备及通信系统
WO2019001352A1 (zh) 数据传输的方法、装置和系统
CN113300818A (zh) 数据传输系统及方法
CN112713969A (zh) 数据传输方法和使用该方法的装置、系统
CN109586931B (zh) 组播方法及终端设备
CN110958084B (zh) 传输确认报文的方法和通信设备
CN107566291B (zh) 组播传输方法、装置、电子设备及存储介质
CN113242318B (zh) 数据传输方法和电子设备
CN108667563A (zh) 一种前向纠错包个数获取方法及装置
CN116980393A (zh) 一种音频传输方法、装置、设备和存储介质
CN114339883A (zh) 一种数据传输方法、装置、电子设备和存储介质
WO2024074085A1 (zh) 数据传输方法、电子设备、传屏器及存储介质
WO2023155725A1 (zh) 一种对象的操作方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22897960

Country of ref document: EP

Kind code of ref document: A1