CN113259370B - Data transmission method, device, equipment, system and readable storage medium - Google Patents

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

Info

Publication number
CN113259370B
CN113259370B CN202110618485.0A CN202110618485A CN113259370B CN 113259370 B CN113259370 B CN 113259370B CN 202110618485 A CN202110618485 A CN 202110618485A CN 113259370 B CN113259370 B CN 113259370B
Authority
CN
China
Prior art keywords
data packet
receiving
data
receiving terminal
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110618485.0A
Other languages
Chinese (zh)
Other versions
CN113259370A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110618485.0A priority Critical patent/CN113259370B/en
Publication of CN113259370A publication Critical patent/CN113259370A/en
Application granted granted Critical
Publication of CN113259370B publication Critical patent/CN113259370B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Abstract

The embodiment of the application discloses a data transmission method, a data transmission device, data transmission equipment, a data transmission system and a readable storage medium. The method comprises the following steps: receiving a first data packet sent by a sending terminal, wherein the packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals; analyzing the packet header of the first data packet to obtain the information of a receiving terminal; determining the number of receiving terminals based on the information of the receiving terminals; responding to the number of the receiving terminals, and acquiring second data packets sent to each receiving terminal based on the first data packets and the information of the receiving terminals; and sending the corresponding second data packet to each receiving terminal. The data transmission method provided by the embodiment of the application ensures the orderliness, integrity and reliability of data in the transmission process; and by means of segmented transmission, the data transmission quantity of the sending terminal is reduced, and the data transmission efficiency is improved.

Description

Data transmission method, device, equipment, system and readable storage medium
Technical Field
The embodiment of the application relates to the technical field of computers, in particular to a data transmission method, a data transmission device, data transmission equipment, a data transmission system and a readable storage medium.
Background
With the development of computer and internet technologies, data transmission between terminals is more frequent and complex, and a data transmission scenario is changed from data transmission between one terminal and one terminal (one-to-one), to data transmission between one terminal and a plurality of terminals (one-to-many).
In the related art, data transmission between one terminal and a plurality of terminals is implemented based on a User data packet Protocol (UDP). However, the data transmission mode based on the UDP protocol is prone to data packet loss, and the ordering, integrity and reliability of data transmission are poor.
Disclosure of Invention
The embodiment of the application provides a data transmission method, a data transmission device, data transmission equipment, a data transmission system and a readable storage medium, and aims to solve the problem that data are poor in order, integrity and reliability due to data loss in a data transmission process.
In a first aspect, a data transmission method is provided, where the method includes:
receiving a first data packet sent by a sending terminal, wherein the packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
analyzing the packet header of the first data packet to obtain the information of the receiving terminal;
determining the number of receiving terminals based on the information of the receiving terminals;
responding to the situation that the number of the receiving terminals is multiple, and acquiring second data packets sent to each receiving terminal based on the first data packets and the information of the receiving terminals;
and sending corresponding second data packets to the receiving terminals.
In a second aspect, a data transmission method is provided, the method including:
acquiring a first data packet, wherein a packet header of the first data packet carries information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
and sending the first data packet to a data transfer server so as to send corresponding second data packets to each receiving terminal through the data transfer server based on the first data packet.
In a third aspect, a data transmission method is provided, where the method includes:
receiving a second data packet sent by a data transfer server, wherein the second data packet is obtained by the data transfer server based on a first data packet received from a sending terminal, the packet header of the first data packet carries information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
and sending a second feedback data packet to the data transfer server, wherein the second feedback data packet is used for the data transfer server to determine the receiving terminal meeting the retransmission condition.
In another aspect, an apparatus for data transmission is provided, the apparatus comprising:
the data receiving module is used for receiving a first data packet sent by a sending terminal, wherein the packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
the analysis module is used for analyzing the packet header of the first data packet to obtain the information of the receiving terminal;
a determining module, configured to determine the number of receiving terminals based on the information of the receiving terminals;
an obtaining module, configured to obtain, in response to that the number of the receiving terminals is multiple, a second data packet sent to each receiving terminal based on the first data packet and information of the receiving terminal;
and the first sending module is used for sending the corresponding second data packet to each receiving terminal.
In one possible implementation, the apparatus further includes:
a second sending module, configured to send, in response to that the number of the receiving terminals is multiple, a first feedback data packet to the sending terminal based on the received first data packet, where the first feedback data packet is used to indicate a received data packet, and determine a data packet whose transmission is overtime based on the first feedback data packet;
and the data receiving terminal is used for receiving the retransmission data packet retransmitted by the transmitting terminal, wherein the retransmission data packet is a data packet with overtime transmission.
In a possible implementation manner, the first sending module is further configured to receive a second feedback data packet sent by the multiple receiving terminals, determine a target receiving terminal according to the second feedback data packet, and resend a corresponding second data packet to the target receiving terminal, where the target receiving terminal is a receiving terminal that meets a retransmission condition among the multiple receiving terminals.
In a possible implementation manner, the first sending terminal is configured to determine a retransmission probability according to the second feedback data packet; if the relation between the random number corresponding to each receiving terminal and the retransmission probability meets the retransmission condition, determining a target receiving terminal in the plurality of receiving terminals; and retransmitting the corresponding second data packet to the target receiving terminal.
In a possible implementation manner, the first sending terminal is configured to determine, based on the second feedback data packet, the number of sessions in which transmission of the second data packet is timed out; determining a retransmission probability based on the number of sessions, the total number of sessions, and the reward factor for which the second data packet transmission times out.
In a possible implementation manner, the information of the receiving terminal includes member codes of the receiving terminal, one member code corresponds to one receiving terminal, and the header length of the first data packet is determined based on the number of the member codes of the receiving terminal; the determining module is configured to use the number of member codes of the receiving terminal carried in the packet header of the first data packet as the number of the receiving terminals.
In a possible implementation manner, the information of the receiving terminal includes a reference value, the reference value is used for indicating the number of receiving terminals, and the header length of the first data packet is determined based on the reference value; the determining module is configured to determine the number of receiving terminals based on a reference value carried in a packet header of the first data packet.
In a possible implementation manner, the number of the first data packets is multiple, and the first data packets carry sequence numbers;
the second sending module is configured to, in response to that the number of the receiving terminals is multiple, perform a first parsing operation based on multiple first data packets to obtain a first parsing result, where the first parsing result includes a sequence number of each first data packet; determining the plurality of first data packets to be received out of order based on the sequence numbers of the first data packets, and sequencing the plurality of first data packets based on the sequence numbers; and generating the first feedback data packet based on the sequenced plurality of first data packets.
In one possible implementation, the first data packet carries a sequence number; the obtaining module is configured to, in response to that the number of the receiving terminals is multiple, perform replication based on the first data packet; determining a receiving state corresponding to each receiving terminal based on information of a plurality of receiving terminals; and updating the sequence number carried in each copied data packet based on the receiving state corresponding to each receiving terminal, and acquiring a second data packet sent to each receiving terminal.
In a possible implementation manner, the apparatus further includes a forwarding module, configured to send the first data packet to the receiving terminal in response to that the number of the receiving terminals is one.
In another aspect, a data transmission apparatus is provided, the apparatus including:
an obtaining module, configured to obtain a first data packet, where a packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on a data amount of the receiving terminal;
and the sending module is used for sending the first data packet to a data transfer server so as to send corresponding second data packets to each receiving terminal through the data transfer server based on the first data packet.
In one possible implementation, the apparatus further includes:
a receiving module, configured to receive a first feedback data packet sent by the data relay server, where the first feedback data packet is used to indicate a received data packet;
a determining module, configured to determine a data packet with a transmission timeout based on the first feedback data packet;
the sending module is further configured to resend the retransmission data packet to the data relay server, where the retransmission data packet is a data packet with a transmission timeout.
In another aspect, a data transmission apparatus is provided, the apparatus including:
a receiving module, configured to receive a second data packet sent by a data relay server, where the second data packet is obtained by the data relay server based on a first data packet received from a sending terminal, a packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals;
and a sending module, configured to send a second feedback data packet to the data relay server, where the second feedback data packet is used for the data relay server to determine a receiving terminal that meets a retransmission condition.
In a possible implementation manner, the receiving module is further configured to receive the second data packet retransmitted by the data relay server if a retransmission condition is met.
In another aspect, a computer device is provided, which includes a processor and a memory, where at least one computer program or instruction is stored in the memory, and the at least one computer program or instruction is loaded and executed by the processor, so as to enable the computer device to implement any one of the above data transmission methods.
In another aspect, a data transmission system is provided, the system comprising: the system comprises a sending terminal, a data transfer server and a receiving terminal;
the sending terminal is configured to execute the data transmission method according to any one of the second aspect;
the data transfer server is configured to execute the data transmission method of the first aspect;
the receiving terminal is configured to execute the data transmission method according to the third aspect.
In another aspect, a computer-readable storage medium is provided, in which at least one computer program or instruction is stored, and the at least one computer program or instruction is loaded and executed by a processor, so as to enable a computer to implement any of the above-mentioned data transmission methods.
In another aspect, a computer program product or a computer program is also provided, comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer readable storage medium, and executes the computer instructions, so that the computer device executes any one of the data transmission methods.
The technical scheme provided by the embodiment of the application at least has the following beneficial effects.
The data transmission method provided by the embodiment of the application adopts a segmented reliable UDP scheme, and improves the orderliness, integrity and reliability of data in the data transmission process of one terminal and a plurality of terminals (one to many). And the reliable UDP scheme is segmented, so that the data transmission quantity of the sending terminal is reduced, and the data transmission efficiency is improved.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
Fig. 1 is a schematic diagram of an implementation environment of a data transmission method provided in an embodiment of the present application;
fig. 2 is a flowchart of a data transmission method provided in an embodiment of the present application;
fig. 3 is a schematic structural diagram of a data packet according to an embodiment of the present application;
fig. 4 is a flowchart of another data transmission method provided in the embodiment of the present application;
fig. 5 is a flowchart of another data transmission method provided in the embodiment of the present application;
fig. 6 is a flowchart of another data transmission method provided in the embodiments of the present application;
fig. 7 is a schematic diagram of a data transmission apparatus according to an embodiment of the present application;
fig. 8 is a schematic diagram of a data transmission apparatus according to an embodiment of the present application;
fig. 9 is a schematic diagram of a data transmission apparatus according to an embodiment of the present application;
fig. 10 is a schematic diagram of a data transmission apparatus according to an embodiment of the present application;
fig. 11 is a schematic structural diagram of a server provided in an embodiment of the present application;
fig. 12 is a schematic structural diagram of a terminal according to an embodiment of the present application.
Detailed Description
To make the objects, technical solutions and advantages of the present application more clear, embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
With the continuous development of computer technology, data transmission between terminals is more frequent and complex, and a data transmission scene is developed from data transmission between one terminal and one terminal (one-to-one), to data transmission between one terminal and a plurality of terminals (one-to-many). The application provides a reliable data transmission method, and in practical application, the method can be applied to a multi-person audio and video call scene to realize transmission of audio and video data. Before introducing the data transmission method provided by the embodiment of the present application, a part of technical concepts will be explained first to better understand the content of the embodiment of the present application.
Reliable User data packet transmission Protocol (RUDP): the Protocol aims to provide a solution, which is more reliable than a User data packet transmission Protocol (UDP) and has lower cost than a Transmission Control Protocol (TCP) (terminal Control Protocol), wherein the UDP abandons the reliability and the orderliness of data packet transmission for the characteristics of low time delay, low bandwidth occupation and the like, and on the other hand, the TCP increases too much complexity and cost to achieve the reliability. The RUDP provides reliability guarantees by extending UDP while maintaining the transmission efficiency of UDP to some extent.
The data transfer server: in multi-user audio and video communication applications, due to the limitation of a transmission link router (NAT), audio and video data generally cannot be directly transmitted from one terminal to other terminals. In addition, the requirement of one-to-many transmission for uploading broadband by a terminal is too high, so that servers with Internet Protocol (IP) addresses are deployed in such a communication system to complete audio and video data transfer transmission, and these servers are called data transfer servers.
Referring to fig. 1, an embodiment of the present application provides a schematic diagram of an implementation environment of a data transmission method. The implementation environment includes: a transmitting terminal 11, a data relay server 12, and a plurality of receiving terminals 13.
Based on the implementation environment shown in fig. 1, the sending terminal 11 and the plurality of receiving terminals 13 constitute a current data transmission scenario, and the sending terminal 11 and the receiving terminals 13 may be referred to as members in the current data transmission scenario. Fig. 1 provides a system architecture of an implementation environment and a transmission path of a data packet between devices in the system. The sending terminal 11 sends the data packet to the data relay server 12, and the data relay server 12 invokes a corresponding module to process the data packet according to the information carried in the data packet, and then sends the data packet to the receiving terminal 13.
Referring to fig. 1, based on the data transmission method provided in the embodiment of the present application, a sending terminal 11 may send a data packet to a receiving terminal 13 based on a path 1- >2- >3- >4, and the receiving terminal 13 sends a feedback data packet to the sending terminal 11 (path 5) after receiving the data packet. The sending terminal 11 may also send the data packet to multiple receiving terminals 13 based on the path 1- >2- >6- >8- >9, in this process, the data relay server 12 sends a feedback data packet (path 7) to the sending terminal 11, where the steps of sending the feedback data packet (path 7) and sending data to the next module (path 8) may be performed simultaneously; the plurality of receiving terminals 13, upon receiving the data packet, transmit a feedback data packet to the data relay server 12 (path 10).
Referring to fig. 1, in the implementation process of the data transmission method provided in the embodiment of the present application, the modules applied in the data relay server 12 include, but are not limited to: the system comprises a data receiving module, an RUDP strategy control module, a transparent transmission transfer module, an RUDP receiving module and an RUDP sending module.
In one possible implementation, the sending terminal 11 and the receiving terminal 13 may be smart devices such as a mobile phone, a tablet computer, a personal computer, and the like. The data relay server 12 may be one server, a server cluster composed of a plurality of servers, or a cloud computing service center. The sending terminal 11, the receiving terminal 13 and the data relay server 12 establish communication connection through a wired or wireless network, which is not limited in this embodiment of the present application.
It should be understood by those skilled in the art that the above-mentioned transmitting terminal 11, receiving terminal 13 and data relay server 12 are only examples, and other existing or future terminals or servers may also be included in the scope of the present application, if applicable, and are herein incorporated by reference.
In an exemplary embodiment, the data transmission method provided in the embodiment of the present application may be implemented in a blockchain system, and information of a transmitting terminal or a receiving terminal and the like related to the data transmission method provided in the embodiment of the present application may be stored in a blockchain in the blockchain system, so that the security and reliability of the system are high.
Referring to fig. 2, an embodiment of the present application provides a data transmission method, which may implement reliable data transmission between one terminal and multiple other terminals (one-to-many) in a data transmission scenario formed by multiple terminals. It is also possible in one possible implementation to accommodate data transmission between one terminal and one terminal (one-to-one). The method can be used in a scene of multi-person audio and video call in practical application. The implementation of the method includes, but is not limited to, the following steps 201 and 205.
Step 201, receiving a first data packet sent by a sending terminal, where a packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals.
The first data packet received by the data relay server is sent by the sending terminal, and the first data packet may carry target information that the sending terminal needs to send, information of the receiving terminal that receives the target information, and the like. The information of the receiving terminal is carried in the packet header of a first data packet, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals. The content of the target information is not limited in the embodiment of the present application, and exemplarily, the target information is a signaling/message, for example, an instruction for instructing information to stop transmission; the target information may also be audio-visual data. Compared with audio/video data, the signaling/command has higher requirement on reliability, but has smaller data volume.
The transmitting terminal generates a data packet based on the target information to be transmitted, and transmits the generated data packet to the data relay server. In the transmitting terminal, the transmitted packets constitute a transmission queue. Based on the above contents, the data packet carries various contents such as target information, information of the receiving terminal, and the like. The information of the receiving terminal is carried in the packet head of the data packet; based on the implementation environment of the embodiment of the application, the number of the receiving terminals is at least one; the header length of the first data packet is determined based on the number of receiving terminals.
Fig. 3 is a schematic diagram of a packet structure suitable for the environment in which the present application is implemented. Referring to fig. 3, an exemplary packet structure is provided, which includes, but is not limited to, the following fields: a communication code (ID) field, a from _ member field, a list size (to _ member _ size) field, a target member (to _ member) list field, a sequence number (seq) field, and a transmission information (data) field. Wherein the list size field indicates information of the receiving terminal together with the target member list field.
(1) ID: a communication code field. This field is used to identify the current data transmission scenario, which may also be referred to as a communication scenario. Illustratively, this field is represented by 4 bytes.
In the embodiment of the present application, a plurality of terminals form one data transmission scenario, and all terminals belonging to the data transmission scenario may be referred to as members. When data transmission is carried out, the member as the sending terminal can choose to send the data packet to one or more terminals in the rest members.
In constructing the communication scenario (data transmission scenario), a communication set may be constructed based on the terminal under the current data transmission scenario. The server will issue a corresponding communication code identifying the communication set, i.e. representing the current data transmission scenario. The communication code is unique and no duplicate communication codes occur. When each terminal joins the communication scene, the server also issues a corresponding member code, and the member code is determined based on the communication set joined by the terminal (joined data transmission scene) and the corresponding attribute of the terminal itself. The member codes of the members are different in the same communication set (i.e., in the same data scenario). In one possible scenario, the same member code may be present in different communication sets.
In a possible implementation manner, the server for issuing the communication code and the member code may be a data relay server. In this possible implementation manner, the data relay server may include a computing module, so as to generate a code in the computing module; the system can also comprise a recording module for recording various basic information in a communication scene so as to be used by other modules in the terminal and the data transfer server to call various information in the data transmission process. Optionally, the server may also be an individual signaling server, and the signaling server is responsible for generating a communication code and a member code, recording a data transmission condition, recording the total number of members in a current data transmission scenario, sending a control instruction for a data transmission process, and the like, so as to maintain normal data transmission between members in a communication set. When the server is a signaling server, the receiving terminal, the sending terminal and the data relay server can communicate with the signaling server. The signaling server sends information such as communication codes, member codes, total member numbers in the current data transmission scene and the like to a sending terminal, a receiving terminal or a data transfer server in the processes of generating data packets, determining the number of receiving terminals and the like through wired or wireless communication methods and the like.
In an exemplary embodiment, in an audio and video call scene, a plurality of terminals participating in the audio and video call form a call room, and then a corresponding communication code (ID) is generated to identify the audio and video call room, and is globally unique, and the ID is issued by a signaling server when the call is established.
(2) from _ memberid: a bundle member field. The field is used for recording the member code corresponding to the sending terminal, so as to indicate which terminal in the communication scene sends the data packet. Illustratively, this field is represented by two bytes, and the value range of the member code of the represented transmitting terminal is [0, 65534 ].
(3) to _ memberid _ size: a list size field. The value of the element in this field is used to indicate the size of the target member list and to indicate the number of elements in the target member list. Based on the value of the element in the list size field, the number of bytes occupied by the target member list field may be determined. Illustratively, this field is represented by two bytes.
(4) to _ memberid list: a target member list field. The target member list field carries information of the receiving terminals, and the number of the receiving terminals can be determined based on the information of the receiving terminals. One or more elements may be included in the target member list field. The element in this field is used to indicate the target member, i.e. the receiving terminal. The size of the field is determined based on the number of receiving terminals, and optionally the number of elements in the field may be the same as or different from the number of receiving terminals. Illustratively, each element in the target member list field is stored with two bytes, and if there are N elements in the target member list field, the field occupies 2N bytes, where N is a positive integer.
In the target member list field, values of the respective elements include, but are not limited to, member codes or reference values of the receiving terminal, and the reference values include, but are not limited to, a first reference value or a second reference value. The first reference value is a set fixed value and is used for indicating all terminals except the sending terminal in the current data transmission scene; the second reference value is at least one, and one second reference value is a numerical value corresponding to one receiving terminal, and the second reference value may be determined based on a basic attribute of the corresponding receiving terminal, and the determination manner of the second reference value is not limited in the present application.
In one possible implementation, the values of the respective elements are encoded for members of the receiving terminal. In the embodiment of the present application, the value range of the member code of the receiving terminal is [0, 65534 ]. That is, the value of each element is any one of [0, 65534 ]. In this manner, the transmitting terminal transmits a packet to the receiving terminal indicated by each element. In another possible implementation, there is only one element, and the element value is the first reference value, which is 65535. The first reference value is used for indicating that the receiving terminal is all members except the sending terminal in the current communication set; that is, in this possible implementation, the sending terminal sends the data packet to all other terminals. In another possible implementation, there are multiple elements, and the element values are second reference values, one second reference value corresponding to one receiving terminal. Illustratively, the reference value may have the same value range as the value range of the member code of the receiving terminal.
In one possible implementation, the number of receiving terminals may be determined based on member codes or reference values of the receiving terminals within the field.
(5) seq: a sequence number field. The field is used for identifying the transmission sequence of the data packets so as to judge whether the data packets are transmitted in order and reliably. This field is represented by two bytes. In one possible implementation, the field may be updated according to data transmission needs.
Illustratively, when the data relay server receives a plurality of first data packets, whether the plurality of first data packets are sequentially received is judged based on the sequence numbers of the respective first data packets. The plurality of data packets are ordered based on sequence number under out-of-order reception.
(6) data: a transmission information field. The field is an actual information area (payload) of the data packet, and includes various target information such as signaling/messages or audio/video data. The size of this field is determined based on the actual circumstances of the information to be transmitted.
Referring to fig. 3, the 6 fields are sequentially arranged in the data packet. 0-3 bytes corresponding to the ID field; 4-5 bytes corresponding to a from _ member field; 6-7 bytes correspond to a to _ memberid _ size field; 2N bytes in total correspond to the to _ member field from 8 bytes based on the value N indicated by the to _ member _ size field; 2N + 8-2N +11 bytes correspond to the seq field; the corresponding data field starts from 2N +12 bytes. Wherein the 1-5 fields form the header of the data packet, and the header of the data packet includes a to _ numbered field carrying the information of the receiving terminal. Based on that the to _ member field occupies N bytes, the packet header length of the packet may be changed based on the value of N, that is, the packet header length of the packet is determined based on the length of the target member list (to _ member) field; the length of this field is determined based on the number of receiving terminals, i.e. the header length of the data packet may be determined based on the number of receiving terminals.
Step 202, parsing the header of the first data packet to obtain the information of the receiving terminal.
The process of determining the information of the receiving terminal includes, but is not limited to, the following steps: determining a list size (to _ member _ size) field based on the structure of the data packet, and acquiring the numerical value of an element in the list size field, namely the size of a target member list field; determining the number of bytes occupied by the target member list field based on the size of the target member list field; determining a plurality of bytes as a target member list field after the list size field; and analyzing the target member list field to obtain the information of the receiving terminal.
Analyzing the target member list field to obtain the information of the receiving terminal, wherein the steps comprise: analyzing a target member list field, and determining the value of at least one element in the field; whether the content included in the target member list field is a member code or a reference value of the receiving terminal is determined based on the value of each element. In one possible implementation, the parameter value includes, but is not limited to, a first reference value or a second reference value.
Based on the structure of the data packet shown in fig. 3, the field corresponding to 0-7 bytes in the first data packet is fixed, and the data relay server may directly analyze the content of the field at the corresponding position in the packet header of the data packet to obtain the information corresponding to the field. Illustratively, 6-7 bytes are directly analyzed, the size of a target member list is determined, and the bytes occupied by fields of the target member list are determined; and then, starting from 8 bytes, analyzing the range corresponding to the bytes with corresponding byte numbers to obtain the information of the receiving terminal carried by the packet header of the data packet, and determining the receiving terminal indicated by the information.
In the exemplary embodiment, it is assumed that there are X terminals in total in the current data transmission scenario, and X is a positive integer greater than or equal to 2. Referring to the structure of the data packet given in fig. 3, it can be determined that the 6 th to 7 th bytes in the first data packet correspond to the list size field, and the content of the field is directly analyzed to obtain the size of the target member list, i.e., the number of elements in the target member list field. Illustratively, if the value corresponding to the size field of the list obtained by the analysis is M, the number of elements in the target member list is M. It is determined that the number of bytes occupied by the target member list field is 2M bytes, M being a positive integer.
Based on the structure of the data packet, if the target member list field is adjacent to the list size field, from 8 bytes, determining 2M bytes as the target member list field; and analyzing the field to determine the values of M elements in the target member list, wherein the values of the M elements are used for indicating the receiving terminal. Information of the receiving terminal may be determined based on the values of the M elements.
Step 203, determining the number of receiving terminals based on the information of the receiving terminals.
The information of the receiving terminal includes, but is not limited to, a member code or a reference value of the receiving terminal.
And in response to the information of the receiving terminals including the member codes of at least one receiving terminal, taking the number of the member codes of at least one receiving terminal as the number of the receiving terminals.
In response to the information of the receiving terminals including a reference value, the number of receiving terminals is determined based on the reference value, the reference value indicating the number of receiving terminals. In one possible implementation manner, in response to the information of the receiving terminal being a first reference value, the first reference value indicates that the number of the receiving terminals is: the number of all terminals in the current data transmission scenario is subtracted by the number of transmitting terminals, i.e. by 1. In one possible implementation manner, in response to that the information of the receiving terminals is at least one second reference value, the number of the second reference values is taken as the number of the receiving terminals, and the second reference values correspond to the respective receiving terminals.
If the number of member codes of the receiving terminal or the number of second reference values is 1, corresponding to a one-to-one communication mode; if the number of the member codes of the receiving terminal or the number of the second reference values is multiple, the receiving terminal corresponds to a one-to-many communication mode; and if the first reference value is the first reference value, the first reference value corresponds to a broadcast mode, and the broadcast mode refers to that the sending terminal sends information to all other terminals in the current data transmission scene.
In one possible implementation, the determined member codes of the plurality of receiving terminals or the plurality of second reference values may be represented in a list form.
In an exemplary embodiment, if the value of each element is in the range of [0, 65534], the value of each element is encoded for the member of the receiving terminal; then the number of receiving terminals is determined to be M, and the value of M is in the range of [1, X-1 ]. If an element is analyzed and the value of the element is 65535, it means that the value of the element is the first reference value, and the number of receiving terminals is X-1.
And step 204, responding to the plurality of receiving terminals, and acquiring second data packets sent to each receiving terminal based on the first data packets and the information of the receiving terminals.
In this step, in response to the number of the receiving terminals being plural, copying is performed based on the first packet; determining a receiving state corresponding to each receiving terminal based on the information of the plurality of receiving terminals; and updating the sequence number carried in each copied data packet based on the receiving state corresponding to each receiving terminal, and acquiring a second data packet sent to each receiving terminal. The receiving state corresponding to each receiving terminal refers to the number of data packets currently received by each receiving terminal.
In this possible implementation, a plurality of receiving terminals are determined, and the first data packet is copied to the corresponding number of copies based on the number of receiving terminals. After the duplication is completed, since the data packet is sent to different receiving terminals, and the receiving states of the receiving terminals before the data packet are possibly different, the sequence number field in the duplicated data packet is updated based on the receiving states of the receiving terminals, and the second data packet corresponding to the receiving terminals is obtained. Wherein the reception status is used to indicate the number of data packets received by the receiving terminal before.
Illustratively, the data relay server receives a first packet with sequence number 5, and shares two receiving terminals, i.e., receiving terminal 1 and receiving terminal 2. Based on the data transmission record, it is known that the receiving terminal 1 has received 5 data packets before, and the receiving terminal 2 has received 2 data packets before, the sequence number of the data packet addressed to the receiving terminal 1 is changed to 6, and the sequence number of the data packet addressed to the receiving terminal 2 is changed to 3, so as to obtain two second data packets corresponding to the receiving terminal.
In one possible implementation, the transmission of the second data packet is performed based on sessions of the receiving terminals, and the sessions of the receiving terminals are independent of each other. Based on the context information recorded in each session, an update operation of the sequence number field in the data packet is performed, and based on the context information, the number of data packets received by each receiving terminal can be determined.
Step 205, the corresponding second data packet is sent to each receiving terminal.
The data transfer server establishes sessions with the receiving terminals, and sends corresponding second data packets to the receiving terminals based on the sessions of the receiving terminals. Wherein the sessions of the respective receiving terminals are independent of each other.
In a possible implementation, referring to fig. 4, step 206 is also performed after step 205, and in case of a timeout of the sending data transmission, the reliability of the data transmission is guaranteed by retransmission.
Step 206, receiving second feedback data packets sent by the multiple receiving terminals, determining a target receiving terminal according to the second feedback data packets, and resending the corresponding second data packets to the target receiving terminal, where the target receiving terminal is a receiving terminal that meets the resending condition among the multiple receiving terminals.
In a possible implementation manner, after the data relay server sends the second data packet to the receiving terminals, each receiving terminal sends a second feedback data packet to the data relay server according to the received second data packet, where the second feedback data packet is used to indicate a receiving condition of each receiving terminal for the second data packet.
Determining a target receiving terminal according to the second feedback data packet, and retransmitting the corresponding second data packet to the target receiving terminal, wherein the process includes but is not limited to: determining retransmission probability according to the second feedback data packet; if the relation between the random number corresponding to each receiving terminal and the retransmission probability meets the retransmission condition, determining a target receiving terminal in the plurality of receiving terminals; and retransmitting the corresponding second data packet to the target receiving terminal.
In the process of determining the target receiving terminal, the retransmission conditions to be satisfied are: and the random number corresponding to the receiving terminal is not more than the retransmission probability. For each receiving terminal, a random number in the range of [0, 1] is determined, and the random number is compared with the retransmission probability. And in response to the random number being less than or equal to the retransmission probability, retransmitting the abnormal data packet to the receiving terminal, otherwise, giving up the retransmission. Illustratively, the random number may be represented by x.
In one possible implementation, the second data packet and the second feedback data packet are transmitted based on a session corresponding to each receiving terminal. Then the process of determining the retransmission probability according to the second feedback data packet includes but is not limited to: determining the number of sessions for which a second packet transmission timeout occurs based on the second feedback packet; the retransmission probability is determined based on the number of sessions for which the second data packet transmission timed out, the total number of sessions, and the reward factor.
The process of determining the retransmission probability includes: determining a first value based on the number of the sessions with overtime second data packet reception, the total number of the sessions and the reward coefficient, wherein if the first value is a non-negative number less than or equal to 1, the first value is retransmission probability; if the first value is greater than 1, the retransmission probability is 1.
In one possible implementation, the retransmission probability is determined based on the following equation 1.
Figure 811027DEST_PATH_IMAGE001
Wherein, PiIs the retransmission probability; s represents the total number of sessions (obtainable by the number of receiving terminals); ciThe number of sessions indicating the reception timeout of the second data packet (which can be obtained by the first number of receiving terminals having the abnormal packet transmission timeout phenomenon);
Figure 387502DEST_PATH_IMAGE002
Figure 517132DEST_PATH_IMAGE003
) Is a reward factor; i is used to identify the packet. As can be seen from the basis of equation 1,
Figure 174247DEST_PATH_IMAGE004
with respect to the above-mentioned formula 1,
Figure 793447DEST_PATH_IMAGE005
the larger the value is, the larger PiThe larger the value of (a), the easier it is to trigger retransmission, but retransmission operations will increase the amount of data in the transmission network, and network congestion is likely to occur. In an actual application scenario, the reason for the occurrence of the transmission timeout phenomenon may be that network congestion occurs at an exit of the data transfer server, and at this time, retransmission operation is performed, which may aggravate the congestion degree; the transmission timeout may also occur due to poor network conditions at the receiving terminal, when the retransmission has little effect on the congestion level of the system. Therefore, it is not only easy to use
Figure 873530DEST_PATH_IMAGE006
The actual value can be determined according to the tolerance degree of the system to the congestionIt is determined that, without considering network congestion,
Figure 806851DEST_PATH_IMAGE007
the value is 1, namely retransmission is carried out when transmission timeout exists.
For example, a packet is transmitted to 10 receiving terminals, and it is assumed that the packet has an identifier (i) of 9. According to the feedback data packet fed back by the receiving terminal, determining that the data packet has transmission timeout at 7 receiving terminals, based on formula 1, assuming that
Figure 69205DEST_PATH_IMAGE007
If the value is 0.5, the retransmission probability P is determined9Is 0.8. Then, for each receiving terminal, the value of x is randomly determined, x being in the range 0, 1]And (4) the following steps. Illustratively, a receiving terminal determines that x has a value of 0.7, 0.7<0.8, i.e. the random number is less than the retransmission probability, the data packet is retransmitted to the receiving terminal. By this comparison, the session to be retransmitted among the 10 sessions is determined.
In a possible implementation manner, the first data packet received by the data transmission terminal is multiple, for example, the number is Y, and in response to that the number of the receiving terminals is multiple, the data relay server sends Y second data packets to each receiving terminal based on the session of each receiving terminal; and the data transfer server determines that the transmission timeout of the data packet identified as i in the Y data packets in one session occurs based on the fed-back second feedback data packet, and then determines whether the transmission timeout of the data packet i also occurs in other sessions. The total number of sessions and the number of sessions with overtime transmission of the data packet i are substituted into the above equation 1 to determine the retransmission probability. And determining the random number of each receiving terminal, and retransmitting the data packet i to a target receiving terminal meeting the retransmission condition.
In a possible implementation manner, if all the second data packets are lost or the second feedback data packets are lost, which would result in that the data relay server does not receive the first feedback data packet, it is considered that the transmission of the second data packets is overtime, it is considered that the receiving terminal does not receive the second data packets, and the data relay server also retransmits the second data packets to the receiving terminal.
In this possible implementation manner, after receiving the second data packet, the receiving terminal parses the second data packet, and adds the second data packet to the first queue of the receiving terminal to update the first queue. The first queue is a queue of data packets that have been received by the receiving terminal. And generating a second feedback data packet based on the updated first queue, and sending the second feedback data packet to the data transit server to instruct the data transit server to determine that the second data packet has been received. The steps executed by the receiving terminal in this process are similar to the steps after the data relay server receives the first data packet in step 2, and are not described herein again.
In one possible implementation, the following steps 1-2 may also be performed after step 201 is performed. The step 1-2 is used for ensuring the reliability of the data packet received by the data transit server.
Step 1, responding to the number of the receiving terminals being multiple, sending a first feedback data packet to the sending terminal based on the received first data packet, wherein the first feedback data packet is used for indicating the received data packet, and determining a data packet with transmission overtime based on the first feedback data packet.
In one possible implementation manner, in response to that the number of the first data packets is multiple, the first data packets carry sequence numbers; performing a first analysis operation based on the plurality of first data packets to obtain a first analysis result, wherein the first analysis result comprises the serial number of each first data packet; determining that the first data packets are received out of order based on the sequence numbers of the first data packets, and sequencing the first data packets based on the sequence numbers; and generating a first feedback data packet based on the sequenced plurality of first data packets. If the plurality of first data packets are received in sequence, the first feedback data packets are directly generated.
In one possible implementation, the data packets are stored in the data relay server in a queue. In this case, if a first packet is received, the first packet is added to the corresponding position in the received queue. If a plurality of first data packets are received, after the plurality of first data packets are sequenced, the plurality of first data packets are added to corresponding positions of a received queue according to sequence numbers of the plurality of first data packets. And updating the received queue in the data transfer server, and generating a second data packet based on the updated received queue.
Referring to the structure of the data packet shown in fig. 3, for example, data packets with sequence numbers 1, 2, and 4 exist in a received queue existing in the data relay server, and the sequence numbers of the received first data packets are 5 and 3, the first data packets are arranged in sequence as 3 and 5; and then added to the corresponding position of the received queue to update the received queue, and the sequence of the data packets in the updated first queue is 1, 2, 3, 4 and 5.
The second data feedback packet is used for indicating a data packet received by the data transfer server, and after the sending terminal receives the second feedback data, the sending terminal determines a data packet which is successfully received and a data packet which is transmitted overtime based on the first feedback data packet. In one possible implementation, there is a transmission queue in the transmitting terminal, and the data packet with the transmission timeout occurs in the transmission queue.
In a possible implementation manner, the instability of the network may cause the loss of the data packets, that is, the number of the data packets sent by the sending terminal is greater than the number of the first data packets received by the data relay server. And the sending terminal determines the successfully received data packet based on the received second data feedback packet, compares the successfully received data packet with the data packet in the sending queue in the sending terminal, determines the data packet with overtime transmission, and determines that the data packet with overtime transmission is lost.
In a possible implementation manner, the sending terminal further clears the data packets that have been successfully received in the sending queue based on the first feedback data packet, so as to reduce the data amount of the sending terminal.
And step 2, receiving a retransmission data packet retransmitted by the transmitting terminal, wherein the retransmission data packet is a data packet with overtime transmission.
In a possible implementation manner, after the data relay server sends the first feedback data packet to the sending terminal, the data relay server receives a retransmission data packet retransmitted by the sending terminal, where the retransmission data packet is a data packet with an overtime transmission in a sending queue, and the sending terminal compares the second feedback data packet with the sending queue of the sending terminal to determine the retransmission data packet; and retransmitting the retransmission data packet to the data relay server. In a possible implementation manner, the second feedback data packet is lost during the transmission to the sending terminal, and the sending terminal will also perform the retransmission operation.
In one possible implementation, step 3 is performed after step 202 is performed to achieve compatibility with one-to-one transmission scenarios.
And 3, responding to the condition that the number of the receiving terminals is one, and sending the first data packet to the receiving terminals by the data transfer server.
In this possible implementation manner, the data relay server directly performs forwarding operation on the first data packet without processing the first data packet, so as to implement transparent transmission of the first data packet. And after receiving the first data packet, the receiving terminal analyzes the first data packet, updates a received queue of the receiving terminal and sends a feedback data packet to the sending terminal. The steps executed by the receiving terminal in the process are similar to the steps of the data relay server in step 1, and the steps executed by the sending terminal are similar to steps 1 and 2, which are not described herein again in this embodiment of the present application.
In the possible implementation manner, the data transfer server performs transparent transfer on the data packet, that is, directly forwards the received data packet, the processing logic is simple, and the load of the data transfer server can be effectively reduced to improve the efficiency of data transmission.
In a possible implementation manner, referring to the implementation environment shown in fig. 1, if the scheme adopts a segmented reliable UDP protocol scheme, the sending terminal may be an RUDP terminal, and correspondingly, an RUDP sending module may exist in the sending terminal. Based on the implementation environment shown in fig. 1, step 201, step 202, step 2 may be performed in the data receiving module, step 203 may be performed in the RUDP policy control module, and step 1, step 204, step 205, step 206 may be performed in the RUDP receiving module and the RUDP transmitting module; step 3 can be performed in the transparent transmission transfer module.
The data transmission method provided by the embodiment of the application adopts a segmented reliable UDP scheme, and improves the orderliness, integrity and reliability of data in the data transmission process of one terminal and a plurality of terminals (one to many). And the RUDP scheme is segmented, and retransmission operations are dispersed in the sending terminal and the data transfer server, so that the data transmission quantity of the sending terminal is reduced, the data packet loss condition can be found in the data transfer server more timely, the flow in the data retransmission process is saved, and the efficiency of data transmission is integrally improved. And a new retransmission algorithm is applied, and the efficiency in the data retransmission process is also improved.
Referring to fig. 5, an embodiment of the present application provides a data transmission method, which is executed by a sending terminal as an example, and includes the following steps 501 and 502.
Step 501, a first data packet is obtained, where a packet header of the first data packet carries information of receiving terminals, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals.
The first data packet carries target information that the sending terminal needs to send, information of the receiving terminal that receives the target information, and the like. The information of the receiving terminal is carried in the packet header of a first data packet, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals. The content of the target information is not limited in the embodiment of the present application, and exemplarily, the target information is a signaling/message, for example, an instruction for instructing information to stop transmission; the target information may also be audio-visual data. Compared with audio/video data, the signaling/command has higher requirement on reliability, but has smaller data volume.
The transmitting terminal generates a packet based on the destination information to be transmitted, and transmits the generated packet to the data relay server. In the transmitting terminal, the transmitted packets constitute a transmission queue. Based on the above contents, the data packet carries various contents such as target information, information of the receiving terminal, and the like. The data packet carries a packet header with information of the receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the data packet is determined based on the number of the receiving terminals. Referring to fig. 3, a schematic diagram of a structure of a data packet suitable for the environment of this application is shown. The process of step 501 may refer to the description of the relevant functions executed by the sending terminal in step 201 shown in fig. 2, and is not described herein again.
Step 502, sending the first data packet to the data relay server, so as to send the corresponding second data packet to each receiving terminal based on the first data packet through the data relay server.
The process of executing step 502 may refer to the description of the relevant functions executed by the sending terminal in step 201 shown in fig. 2, and is not described herein again.
Referring to fig. 6, an embodiment of the present application provides a data transmission method, which is executed by a receiving terminal as an example, and includes the following steps 601 and 602.
Step 601, receiving a second data packet sent by the data relay server, where the second data packet is obtained by the data relay server based on a first data packet received from a sending terminal, a packet header of the first data packet carries information of receiving terminals, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals.
The data transfer server establishes sessions with the receiving terminals, and sends corresponding second data packets to the receiving terminals based on the sessions of the receiving terminals, and the receiving terminals receive the second data packets. Wherein the sessions of the respective receiving terminals are independent of each other. The process of step 601 may refer to the description of the relevant functions executed by the receiving terminal in step 205 shown in fig. 2, and is not described herein again. The description of the first data packet in step 601 may refer to the related content of the first data packet in step 201 shown in fig. 2, and is not repeated herein.
Step 602, sending a second feedback data packet to the data relay server, where the second feedback data packet is used for the data relay server to determine the receiving terminal that meets the retransmission condition.
The process of step 602 may refer to the description of the relevant functions executed by the receiving terminal in step 205 shown in fig. 2, and is not described herein again.
Referring to fig. 7, an embodiment of the present application provides a data transmission apparatus for performing functions performed by the data relay server in the data transmission method shown in fig. 2 or fig. 4, where the apparatus includes, but is not limited to the following modules:
a data receiving module 701, configured to receive a first data packet sent by a sending terminal, where the first data packet carries information of a receiving terminal;
an analyzing module 702, configured to analyze a packet header of the first data packet to obtain information of the receiving terminal;
a determining module 703, configured to determine the number of receiving terminals based on the information of the receiving terminals;
an obtaining module 704, configured to, in response to that the number of the receiving terminals is multiple, obtain, based on the first data packet and information of the receiving terminals, a second data packet sent to each receiving terminal;
a first sending module 705, configured to send corresponding second data packets to each receiving terminal.
In one possible implementation, referring to fig. 8, the apparatus further includes:
a second sending module 706, configured to, in response to that the number of receiving terminals is multiple, send a first feedback data packet to the sending terminal based on the received first data packet, where the first feedback data packet is used to indicate a data packet that has been received, and determine a data packet whose transmission is over time based on the first feedback data packet;
the data receiving terminal 701 is configured to receive a retransmission packet retransmitted by the transmitting terminal, where the retransmission packet is a packet with a transmission timeout.
In a possible implementation manner, the first sending module 705 is further configured to receive a second feedback data packet sent by the multiple receiving terminals, determine a target receiving terminal according to the second feedback data packet, and resend the corresponding second data packet to the target receiving terminal, where the target receiving terminal is a receiving terminal that satisfies a retransmission condition among the multiple receiving terminals.
In a possible implementation manner, the first sending module 705 is configured to determine a retransmission probability according to the second feedback data packet; if the relation between the random number corresponding to each receiving terminal and the retransmission probability meets the retransmission condition, determining a target receiving terminal in the plurality of receiving terminals; and retransmitting the corresponding second data packet to the target receiving terminal.
In a possible implementation manner, the first sending module 705 is configured to determine, based on the second feedback data packet, the number of sessions for which a transmission timeout of the second data packet occurs; the retransmission probability is determined based on the number of sessions for which the second data packet transmission timed out, the total number of sessions, and the reward factor.
In a possible implementation manner, the information of the receiving terminal includes member codes of the receiving terminal, one member code corresponds to one receiving terminal, and the header length of the first data packet is determined based on the number of the member codes of the receiving terminal; a determining module 703, configured to use the number of member codes of the receiving terminal carried in the packet header of the first data packet as the number of receiving terminals.
In a possible implementation manner, the reference value is used for indicating the number of receiving terminals, and the header length of the first data packet is determined based on the reference value; a determining module 703 is configured to determine the number of receiving terminals based on a reference value carried in a packet header of the first data packet.
In a possible implementation manner, the number of the first data packets is multiple, and the first data packets carry sequence numbers; a second sending module 706, configured to perform a first parsing operation based on the plurality of first data packets in response to that the number of the receiving terminals is multiple, to obtain a first parsing result, where the first parsing result includes a sequence number of each first data packet; determining that the first data packets are received out of order based on the sequence numbers of the first data packets, and sequencing the first data packets based on the sequence numbers; and generating a first feedback data packet based on the sequenced plurality of first data packets.
In one possible implementation, the first data packet carries a sequence number; an obtaining module 704, configured to respond to that the number of receiving terminals is multiple, and perform replication based on the first data packet; determining a receiving state corresponding to each receiving terminal based on the information of the plurality of receiving terminals; and updating the sequence number carried in each copied data packet based on the receiving state corresponding to each receiving terminal, and acquiring a second data packet sent to each receiving terminal.
In a possible implementation manner, the apparatus further includes a forwarding module 707, configured to send the first data packet to the receiving terminal in response to that the number of the receiving terminals is one.
An embodiment of the present application further provides a data transmission apparatus, where the apparatus is configured to execute a function executed by a sending terminal, and referring to fig. 9, the apparatus includes:
an obtaining module 901, configured to obtain a first data packet, where a packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and a length of the packet header of the first data packet is determined based on a data amount of the receiving terminal;
a sending module 902, configured to send the first data packet to the data relay server, so as to send, by the data relay server, the corresponding second data packet to each receiving terminal based on the first data packet.
In one possible implementation, the apparatus further includes:
the receiving module is used for receiving a first feedback data packet sent by the data transfer server, wherein the first feedback data packet is used for indicating the received data packet;
a determining module, configured to determine a data packet with a transmission timeout based on the first feedback data packet;
and the sending module is further used for resending the retransmission data packet to the data transfer server, wherein the retransmission data packet is a data packet with overtime transmission.
An embodiment of the present application further provides a data transmission apparatus, where the apparatus is configured to execute a function executed by a receiving terminal, and referring to fig. 10, the apparatus includes:
a receiving module 1001, configured to receive a second data packet sent by a data relay server, where the second data packet is obtained by the data relay server based on a first data packet received from a sending terminal, a packet header of the first data packet carries information of a receiving terminal, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals;
the sending module 1002 is configured to send a second feedback data packet to the data relay server, where the second feedback data packet is used for the data relay server to determine a receiving terminal that meets the retransmission condition.
In a possible implementation manner, the receiving module 1001 is further configured to receive the second data packet retransmitted by the data relay server if the retransmission condition is met.
Fig. 11 is a schematic structural diagram of a server according to an embodiment of the present application, where the server may generate a relatively large difference due to different configurations or performances, and may include one or more processors (CPUs) 1101 and one or more memories 1102, where the one or more memories 1102 store at least one computer program, and the at least one computer program is loaded and executed by the one or more processors 1101 to implement the data transmission method provided by each of the method embodiments. Of course, the server may also have components such as a wired or wireless network interface, a keyboard, and an input/output interface, so as to perform input/output, and the server may also include other components for implementing the functions of the device, which are not described herein again.
Fig. 12 is a schematic structural diagram of a terminal 1200 according to an embodiment of the present application. The terminal 1200 may be: a smartphone, a tablet, a laptop, or a desktop computer. A terminal may also be referred to by other names such as user equipment, portable terminal, laptop terminal, desktop terminal, etc.
In general, terminal 1200 includes: a processor 1201 and a memory 1202.
The processor 1201 may include one or more processing cores, such as a 4-core processor, an 8-core processor, or the like. The processor 1201 may be implemented in at least one hardware form of a DSP (Digital Signal Processing), an FPGA (Field-Programmable Gate Array), and a PLA (Programmable Logic Array). The processor 801 may also include a main processor and a coprocessor, where the main processor is a processor for Processing data in an awake state, and is also called a Central Processing Unit (CPU); a coprocessor is a low power processor for processing data in a standby state.
Memory 1202 may include one or more computer-readable storage media, which may be non-transitory. Memory 1202 may also include high-speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash memory storage devices. In some embodiments, a non-transitory computer readable storage medium in memory 1202 is used to store at least one instruction for execution by processor 1201 to implement the data transmission methods provided by the method embodiments herein.
In some embodiments, the terminal may further include: a peripheral interface 1203 and at least one peripheral. The processor 1201, memory 1202, and peripheral interface 1203 may be connected by a bus or signal line. Various peripheral devices may be connected to peripheral interface 1203 via a bus, signal line, or circuit board. Specifically, the peripheral device includes: at least one of radio frequency circuitry 1204, display 1205, camera assembly 1206, audio circuitry 1207, positioning assembly 1208, and power supply 1209.
The peripheral interface 1203 may be used to connect at least one peripheral associated with I/O (Input/Output) to the processor 1201 and the memory 1202. In some embodiments, the processor 1201, memory 1202, and peripheral interface 1203 are integrated on the same chip or circuit board; in some other embodiments, any one or two of the processor 1201, the memory 1202 and the peripheral device interface 1203 may be implemented on a separate chip or circuit board, which is not limited in this embodiment.
The Radio Frequency circuit 1204 is used for receiving and transmitting RF (Radio Frequency) signals, also called electromagnetic signals. The radio frequency circuit 1204 communicates with a communication network and other communication devices by electromagnetic signals. The radio frequency circuit 1204 converts an electric signal into an electromagnetic signal to transmit, or converts a received electromagnetic signal into an electric signal. Optionally, the radio frequency circuit 1204 comprises: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, and so forth. The radio frequency circuit 1204 may communicate with other terminals through at least one wireless communication protocol. The wireless communication protocols include, but are not limited to: metropolitan area networks, various generation mobile communication networks (2G, 3G, 4G, and 5G), Wireless local area networks, and/or WiFi (Wireless Fidelity) networks. In some embodiments, the rf circuit 1204 may further include NFC (Near Field Communication) related circuits, which are not limited in this application.
The display screen 1205 is used to display a UI (User Interface). The UI may include graphics, text, icons, video, and any combination thereof. When the display screen 1205 is a touch display screen, the display screen 1205 also has the ability to acquire touch signals on or over the surface of the display screen 1205. The touch signal may be input to the processor 1201 as a control signal for processing. At this point, the display 1205 may also be used to provide virtual buttons and/or a virtual keyboard, also referred to as soft buttons and/or a soft keyboard. In some embodiments, the display 1205 may be one, disposed on the front panel of the terminal; in other embodiments, the display 1205 can be at least two, respectively disposed on different surfaces of the terminal or in a folded design; in other embodiments, the display 1205 may be a flexible display disposed on a curved surface or on a folded surface of the terminal. Even further, the display screen 1205 may be arranged in a non-rectangular irregular figure, i.e., a shaped screen. The Display panel 1205 can be made of LCD (Liquid Crystal Display), OLED (Organic Light-Emitting Diode), or other materials.
Camera assembly 1206 is used to capture images or video. Optionally, camera assembly 1206 includes a front camera and a rear camera. Generally, a front camera is disposed at a front panel of the terminal, and a rear camera is disposed at a rear surface of the terminal. In some embodiments, the number of the rear cameras is at least two, and each rear camera is any one of a main camera, a depth-of-field camera, a wide-angle camera and a telephoto camera, so that the main camera and the depth-of-field camera are fused to realize a background blurring function, and the main camera and the wide-angle camera are fused to realize panoramic shooting and VR (Virtual Reality) shooting functions or other fusion shooting functions. In some embodiments, camera assembly 1206 may also include a flash. The flash lamp can be a monochrome temperature flash lamp or a bicolor temperature flash lamp. The double-color-temperature flash lamp is a combination of a warm-light flash lamp and a cold-light flash lamp, and can be used for light compensation at different color temperatures.
The audio circuitry 1207 may include a microphone and a speaker. The microphone is used for collecting sound waves of a user and the environment, converting the sound waves into electric signals, and inputting the electric signals into the processor 1201 for processing or inputting the electric signals into the radio frequency circuit 1204 to achieve voice communication. For the purpose of stereo sound collection or noise reduction, a plurality of microphones can be arranged at different parts of the terminal respectively. The microphone may also be an array microphone or an omni-directional pick-up microphone. The speaker is used to convert electrical signals from the processor 1201 or the radio frequency circuit 1204 into sound waves. The loudspeaker can be a traditional film loudspeaker or a piezoelectric ceramic loudspeaker. When the speaker is a piezoelectric ceramic speaker, the speaker can be used for purposes such as converting an electric signal into a sound wave audible to a human being, or converting an electric signal into a sound wave inaudible to a human being to measure a distance. In some embodiments, the audio circuitry 1207 may also include a headphone jack.
The positioning component 1208 is used to locate the current geographic Location of the terminal to implement navigation or LBS (Location Based Service). The Positioning component 1208 can be a Positioning component based on the united states GPS (Global Positioning System), the chinese beidou System, the russian graves System, or the european union galileo System.
The power supply 1209 is used to supply power to various components in the terminal. The power source 1209 may be alternating current, direct current, disposable or rechargeable. When the power source 1209 includes a rechargeable battery, the rechargeable battery may support wired or wireless charging. The rechargeable battery may also be used to support fast charge technology.
In some embodiments, the terminal also includes one or more sensors 1210. The one or more sensors 1210 include, but are not limited to: acceleration sensor 1211, gyro sensor 1212, pressure sensor 1213, fingerprint sensor 1214, optical sensor 1215, and proximity sensor 1216.
The acceleration sensor 1211 can detect magnitudes of accelerations on three coordinate axes of a coordinate system established with the terminal. For example, the acceleration sensor 1211 may be used to detect components of the gravitational acceleration in three coordinate axes. The processor 1201 may control the display screen 1205 to display the user interface in a landscape view or a portrait view according to the gravitational acceleration signal collected by the acceleration sensor 1211. The acceleration sensor 1211 may also be used for acquisition of motion data of a game or a user.
The gyro sensor 1212 may detect a body direction and a rotation angle of the terminal, and the gyro sensor 1212 may cooperate with the acceleration sensor 1211 to collect a 3D motion of the user with respect to the terminal. The processor 1201 can implement the following functions according to the data collected by the gyro sensor 1212: motion sensing (such as changing the UI according to a user's tilting operation), image stabilization at the time of photographing, game control, and inertial navigation.
Pressure sensors 1213 may be provided on the side frames of the terminal and/or on the lower layers of the display 1205. When the pressure sensor 1213 is disposed on the side frame of the terminal, the holding signal of the terminal by the user can be detected, and the processor 1201 performs left-right hand recognition or shortcut operation according to the holding signal collected by the pressure sensor 1213. When the pressure sensor 1213 is disposed at a lower layer of the display screen 1205, the processor 1201 controls the operability control on the UI interface according to the pressure operation of the user on the display screen 1205. The operability control comprises at least one of a button control, a scroll bar control, an icon control and a menu control.
The fingerprint sensor 1214 is used for collecting a fingerprint of the user, and the processor 1201 identifies the user according to the fingerprint collected by the fingerprint sensor 1214, or the fingerprint sensor 1214 identifies the user according to the collected fingerprint. When the user identity is identified as a trusted identity, the processor 1201 authorizes the user to perform relevant sensitive operations, including unlocking a screen, viewing encrypted information, downloading software, paying, changing settings, and the like. The fingerprint sensor 1214 may be disposed on the front, back, or side of the terminal. When a physical button or a vendor Logo is provided on the terminal, the fingerprint sensor 1214 may be integrated with the physical button or the vendor Logo.
The optical sensor 1215 is used to collect the ambient light intensity. In one embodiment, the processor 1201 may control the display brightness of the display 1205 according to the ambient light intensity collected by the optical sensor 1215. Specifically, when the ambient light intensity is high, the display luminance of the display panel 1205 is increased; when the ambient light intensity is low, the display brightness of the display panel 1205 is turned down. In another embodiment, processor 1201 may also dynamically adjust the camera head 1206 shooting parameters based on the ambient light intensity collected by optical sensor 1215.
A proximity sensor 1216, also known as a distance sensor, is typically provided on the front panel of the terminal. The proximity sensor 1216 is used to collect a distance between the user and the front surface of the terminal. In one embodiment, when the proximity sensor 1216 detects that the distance between the user and the front surface of the terminal gradually decreases, the processor 1201 controls the display 1205 to switch from the bright screen state to the dark screen state; when the proximity sensor 1216 detects that the distance between the user and the front surface of the terminal gradually becomes larger, the processor 1201 controls the display 1205 to switch from the rest screen state to the bright screen state.
Those skilled in the art will appreciate that the configuration shown in fig. 12 is not intended to be limiting and may include more or fewer components than those shown, or some components may be combined, or a different arrangement of components may be used.
In an exemplary embodiment, a computer device is also provided that includes a processor and a memory having at least one computer program or instructions stored therein. The at least one computer program or instructions may be loaded and executed by one or more processors to cause the computer apparatus to perform any of the data transmission methods described above.
There is provided a data transmission system, the system comprising: the system comprises a sending terminal, a data transfer server and a receiving terminal; the sending terminal is configured to perform the functions performed by the sending terminal in the data transmission method described in fig. 2 or fig. 4; the data relay server is configured to perform functions performed by the data relay server in the data transmission method described in fig. 2 or fig. 4; the receiving terminal is configured to perform the functions performed by the receiving terminal in the data transmission method described in fig. 2 or fig. 4.
In an exemplary embodiment, there is also provided a computer-readable storage medium having at least one computer program or instruction stored therein, the at least one computer program or instruction being loaded and executed by a processor of a computer device to cause the computer to implement any one of the data transmission methods described above.
In one possible implementation, the computer-readable storage medium may be a Read-Only Memory (ROM), a Random Access Memory (RAM), a Compact Disc Read-Only Memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, and the like.
In an exemplary embodiment, a computer program product or computer program is also provided, the computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions to cause the computer device to perform any one of the data transmission methods described above.
In an exemplary embodiment, a computer program according to an embodiment of the present application may be deployed to be executed on one computer device or on multiple computer devices located at one site, or may be executed on multiple computer devices distributed at multiple sites and interconnected by a communication network, and the multiple computer devices distributed at the multiple sites and interconnected by the communication network may constitute a block chain system. That is, the server and the terminal may both be node devices in the blockchain system.
It is noted that the terms first, second and the like in the description and in the claims of the present application 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 application described herein are capable of operation in sequences other than those illustrated or described herein. The implementations described in the above exemplary embodiments do not represent all implementations consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present application, as detailed in the appended claims.
It should be understood that reference to "a plurality" herein means two or more. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
The above description is only exemplary of the present application and should not be taken as limiting the present application, and any modifications, equivalents, improvements and the like that are made within the spirit and principle of the present application should be included in the protection scope of the present application.

Claims (18)

1. A method of data transmission, the method comprising:
receiving a first data packet sent by a sending terminal, wherein a list size field and a target member list field included in a packet header of the first data packet are used for indicating information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
determining the list size field based on a structure of the first packet; obtaining the numerical value of an element in the list size field, wherein the numerical value is the size of the target member list field; determining the number of bytes occupied by the target member list field based on the size of the target member list field; determining the number of bytes after the list size field as the target member list field; analyzing the target member list field to obtain the information of the receiving terminal; the information of the receiving terminal comprises a member code or a reference value of the receiving terminal;
determining the number of receiving terminals based on the information of the receiving terminals;
responding to the situation that the number of the receiving terminals is multiple, and acquiring second data packets sent to each receiving terminal based on the first data packets and the information of the receiving terminals;
sending corresponding second data packets to each receiving terminal;
receiving second feedback data packets sent by a plurality of receiving terminals; determining retransmission probability according to the second feedback data packet; if the relation between the random number corresponding to each receiving terminal and the retransmission probability meets the retransmission condition, determining a target receiving terminal in the plurality of receiving terminals, and retransmitting a corresponding second data packet to the target receiving terminal; otherwise, abandoning the retransmission operation of the second data packet;
the target receiving terminal is a receiving terminal which meets a retransmission condition in the plurality of receiving terminals, and the second feedback data packet is used for indicating the receiving condition of each receiving terminal to the second data packet.
2. The method of claim 1, wherein after determining the number of receiving terminals based on the information of the receiving terminals, further comprising:
responding to the number of the receiving terminals being multiple, sending a first feedback data packet to the sending terminal based on the received first data packet, wherein the first feedback data packet is used for indicating the received data packet, and determining a data packet with transmission overtime based on the first feedback data packet;
and receiving a retransmission data packet retransmitted by the transmitting terminal, wherein the retransmission data packet is a data packet with overtime transmission.
3. The method of claim 1, wherein determining the retransmission probability according to the second feedback data packet comprises:
determining the number of sessions for which a second packet transmission timeout occurs based on the second feedback packet;
determining a retransmission probability based on the number of sessions, the total number of sessions, and the reward factor for which the second data packet transmission times out.
4. The method according to any one of claims 1 to 3, wherein the information of the receiving terminal is member codes of the receiving terminal, one member code corresponds to each receiving terminal, and the header length of the first data packet is determined based on the number of member codes of the receiving terminal;
the determining the number of receiving terminals based on the information of the receiving terminals includes:
and taking the number of member codes of the receiving terminal carried in the packet header of the first data packet as the number of the receiving terminals.
5. The method according to any one of claims 1-3, wherein the information of the receiving terminal is a reference value, the reference value is used for indicating the number of receiving terminals, and the header length of the first data packet is determined based on the reference value;
the determining the number of receiving terminals based on the information of the receiving terminals includes:
and determining the number of receiving terminals based on the reference value carried in the packet header of the first data packet.
6. The method according to claim 2 or 3, wherein the number of the first data packets is multiple, and the first data packets carry sequence numbers; the sending a first feedback data packet to the sending terminal based on the received first data packet includes:
responding to the situation that the number of the receiving terminals is multiple, and performing first analysis operation based on multiple first data packets to obtain a first analysis result, wherein the first analysis result comprises the serial number of each first data packet;
determining the plurality of first data packets to be received out of order based on the sequence numbers of the first data packets, and sequencing the plurality of first data packets based on the sequence numbers;
and generating the first feedback data packet based on the sequenced plurality of first data packets.
7. A method according to any of claims 1-3, wherein the first data packet carries a sequence number; the acquiring, in response to the number of the receiving terminals being multiple, a second data packet addressed to each receiving terminal based on the first data packet and the information of the receiving terminal includes:
in response to the number of the receiving terminals being multiple, performing replication based on the first data packet;
determining a receiving state corresponding to each receiving terminal based on information of a plurality of receiving terminals;
and updating the sequence number carried in each copied data packet based on the receiving state corresponding to each receiving terminal, and acquiring a second data packet sent to each receiving terminal.
8. The method according to any of claims 1-3, wherein after determining the number of receiving terminals based on the information of the receiving terminals, further comprising:
and responding to the condition that the number of the receiving terminals is one, and sending the first data packet to the receiving terminals.
9. A method of data transmission, the method comprising:
acquiring a first data packet, wherein a list size field and a target member list field included in a packet header of the first data packet are used for indicating information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
sending the first data packet to a data transfer server so as to send corresponding second data packets to each receiving terminal through the data transfer server based on the first data packet;
wherein the list size field is determined based on a structure of the first packet; the value of an element in the list size field is the size of the target member list field, the size of the target member list field is used for determining the number of bytes occupied by the target member list field, and the number of bytes is determined to be the target member list field after the list size field; the target member list field is used for analyzing and obtaining the information of the receiving terminal; the information of the receiving terminal includes a member code or a reference value of the receiving terminal.
10. The method of claim 9, wherein after sending the first packet to the data relay server, the method further comprises:
receiving a first feedback data packet sent by the data transfer server, wherein the first feedback data packet is used for indicating the received data packet;
determining a data packet with transmission overtime based on the first feedback data packet;
and retransmitting a retransmission data packet to the data transfer server, wherein the retransmission data packet is a data packet with overtime transmission.
11. A method of data transmission, the method comprising:
receiving a second data packet sent by a data relay server, wherein the second data packet is obtained by the data relay server based on a first data packet received from a sending terminal, a packet header of the first data packet comprises a list size field and a target member list field for indicating information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
sending a second feedback data packet to the data relay server, where the second feedback data packet is used to indicate the receiving condition of the receiving terminal to the second data packet, and the second feedback data packet is also used by the data relay server to determine a receiving terminal meeting a retransmission condition;
wherein the list size field is determined based on a structure of the first packet; the value of an element in the list size field is the size of the target member list field, the size of the target member list field is used for determining the number of bytes occupied by the target member list field, and the number of bytes is determined to be the target member list field after the list size field; the target member list field is used for analyzing and obtaining the information of the receiving terminal; the information of the receiving terminal includes a member code or a reference value of the receiving terminal.
12. The method of claim 11, wherein after sending the second feedback packet to the data relay server, the method further comprises:
and if the retransmission condition is met, receiving a second data packet retransmitted by the data transfer server.
13. A data transmission apparatus, characterized in that the apparatus comprises:
the data receiving module is used for receiving a first data packet sent by a sending terminal, wherein a list size field and a target member list field included in a packet header of the first data packet are used for indicating information of receiving terminals, the number of the receiving terminals is at least one, and the length of the packet header of the first data packet is determined based on the number of the receiving terminals;
the analysis module is used for analyzing the packet header of the first data packet to obtain the information of the receiving terminal; wherein, the analyzing the packet header of the first data packet to obtain the information of the receiving terminal includes: determining the list size field based on a structure of the first packet; obtaining the numerical value of an element in the list size field, wherein the numerical value is the size of the target member list field; determining the number of bytes occupied by the target member list field based on the size of the target member list field; determining the number of bytes after the list size field as the target member list field; analyzing the target member list field to obtain the information of the receiving terminal; the information of the receiving terminal comprises a member code or a reference value of the receiving terminal;
a determining module, configured to determine the number of receiving terminals based on the information of the receiving terminals;
an obtaining module, configured to obtain, in response to that the number of the receiving terminals is multiple, a second data packet sent to each receiving terminal based on the first data packet and information of the receiving terminal;
a first sending module, configured to send corresponding second data packets to the receiving terminals; the receiving terminal is also used for receiving a second feedback data packet sent by the plurality of receiving terminals; determining retransmission probability according to the second feedback data packet; if the relation between the random number corresponding to each receiving terminal and the retransmission probability meets the retransmission condition, determining a target receiving terminal in the plurality of receiving terminals, and retransmitting a corresponding second data packet to the target receiving terminal; otherwise, abandoning the retransmission operation of the second data packet; the target receiving terminal is a receiving terminal which meets a retransmission condition in the plurality of receiving terminals, and the second feedback data packet is used for indicating the receiving condition of each receiving terminal to the second data packet.
14. A data transmission apparatus, characterized in that the apparatus comprises:
an obtaining module, configured to obtain a first data packet, where a list size field and a target member list field included in a packet header of the first data packet are used to indicate information of a receiving terminal, the number of the receiving terminals is at least one, and a length of the packet header of the first data packet is determined based on the number of the receiving terminals;
a sending module, configured to send the first data packet to a data relay server, so as to send, by the data relay server, a corresponding second data packet to each receiving terminal based on the first data packet;
wherein the list size field is determined based on a structure of the first packet; the value of an element in the list size field is the size of the target member list field, the size of the target member list field is used for determining the number of bytes occupied by the target member list field, and the number of bytes is determined to be the target member list field after the list size field; the target member list field is used for analyzing and obtaining the information of the receiving terminal; the information of the receiving terminal includes a member code or a reference value of the receiving terminal.
15. A data transmission apparatus, characterized in that the apparatus comprises:
a receiving module, configured to receive a second data packet sent by a data relay server, where the second data packet is obtained by the data relay server based on a first data packet received from a sending terminal, a packet header of the first data packet includes a list size field and a target member list field, where the list size field and the target member list field are used to indicate information of receiving terminals, the number of the receiving terminals is at least one, and a packet header length of the first data packet is determined based on the number of the receiving terminals;
a sending module, configured to send a second feedback data packet to the data relay server, where the second feedback data packet is used to indicate a receiving condition of the receiving terminal for the second data packet, and the second feedback data packet is also used for the data relay server to determine a receiving terminal that meets a retransmission condition;
wherein the list size field is determined based on a structure of the first packet; the value of an element in the list size field is the size of the target member list field, the size of the target member list field is used for determining the number of bytes occupied by the target member list field, and the number of bytes is determined to be the target member list field after the list size field; the target member list field is used for analyzing and obtaining the information of the receiving terminal; the information of the receiving terminal includes a member code or a reference value of the receiving terminal.
16. A computer device, characterized in that it comprises a processor and a memory, in which at least one computer program or instructions is stored, which is loaded and executed by the processor, so as to cause the computer device to implement the data transmission method according to any one of claims 1-12.
17. A data transmission system, the system comprising: the system comprises a sending terminal, a data transfer server and a receiving terminal;
the transmitting terminal is configured to perform the data transmission method of claim 9 or 10;
the data transit server is used for executing the data transmission method of any one of claims 1 to 8;
the receiving terminal is configured to perform the data transmission method of claim 11 or 12.
18. A computer-readable storage medium, having stored therein at least one computer program or instructions, which is loaded and executed by a processor, to cause a computer to implement the method of data transmission according to any one of claims 1 to 12.
CN202110618485.0A 2021-06-03 2021-06-03 Data transmission method, device, equipment, system and readable storage medium Active CN113259370B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110618485.0A CN113259370B (en) 2021-06-03 2021-06-03 Data transmission method, device, equipment, system and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110618485.0A CN113259370B (en) 2021-06-03 2021-06-03 Data transmission method, device, equipment, system and readable storage medium

Publications (2)

Publication Number Publication Date
CN113259370A CN113259370A (en) 2021-08-13
CN113259370B true CN113259370B (en) 2021-11-02

Family

ID=77186202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110618485.0A Active CN113259370B (en) 2021-06-03 2021-06-03 Data transmission method, device, equipment, system and readable storage medium

Country Status (1)

Country Link
CN (1) CN113259370B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534941A (en) * 2003-03-31 2004-10-06 联想(北京)有限公司 Reliable one to mang data transmission method
CN106161254A (en) * 2016-07-18 2016-11-23 中国科学院计算技术研究所 A kind of many purposes data transmission network road route device, method, chip, router
CN109361671A (en) * 2018-10-23 2019-02-19 华南理工大学 A kind of streaming media framework method based on Session Initiation Protocol

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018793A1 (en) * 2001-07-19 2003-01-23 Oscar Mora Reliable transport layer protocol in low performance 8-bit microcontrollers
US8165041B2 (en) * 2008-12-15 2012-04-24 Microsoft Corporation Peer to multi-peer routing
CN101854286B (en) * 2009-04-01 2012-09-05 北京大学 UDP (User Datagram Protocol)-based data stream sending-receiving method and device
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1534941A (en) * 2003-03-31 2004-10-06 联想(北京)有限公司 Reliable one to mang data transmission method
CN106161254A (en) * 2016-07-18 2016-11-23 中国科学院计算技术研究所 A kind of many purposes data transmission network road route device, method, chip, router
CN109361671A (en) * 2018-10-23 2019-02-19 华南理工大学 A kind of streaming media framework method based on Session Initiation Protocol

Also Published As

Publication number Publication date
CN113259370A (en) 2021-08-13

Similar Documents

Publication Publication Date Title
CN110868459B (en) Data transmission method, device, terminal and storage medium
CN110213024B (en) Data packet retransmission method, device and equipment
CN111596885B (en) Audio data processing method, server and storage medium
CN111355774B (en) Service communication method, device and system based on P2P
CN111092809B (en) Method and device for pushing information in real time, computer equipment and storage medium
CN110602733B (en) Application acceleration and bandwidth management method, device, terminal and storage medium
WO2021179667A1 (en) Data transmission method and apparatus, storage medium, and device
CN112256425A (en) Load balancing method and system, computer cluster, information editing method and terminal
CN110149491B (en) Video encoding method, video decoding method, terminal and storage medium
WO2022228011A1 (en) Method and apparatus for data transmission using quic, client, and server
KR102491006B1 (en) Data Transmission Methods and Electronic Devices
CN111315038B (en) Data transmission method and device, electronic equipment and storage medium
CN111061550A (en) Task processing method, device, equipment and storage medium
CN111427949A (en) Method and device for creating big data service
CN110601921B (en) Method and device for detecting data packet transmission parameters and data packet transmission system
KR102524305B1 (en) Connection establishment method and terminal device
CN111106902B (en) Data message transmission method, device, equipment and computer readable storage medium
CN110912830A (en) Method and device for transmitting data
WO2021088773A1 (en) Method, apparatus and system for displaying alarm file
CN110086814B (en) Data acquisition method and device and storage medium
CN113259370B (en) Data transmission method, device, equipment, system and readable storage medium
CN113225688B (en) Data transmission method and display device
CN111741040B (en) Connection establishing method, address obtaining method, device, equipment and storage medium
CN110119508B (en) Chat message filtering method, system and equipment
CN113225268B (en) Data transmission method, device, electronic equipment and storage medium

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40052175

Country of ref document: HK