Data transmission method, electronic device and device

By establishing a session connection between IoT devices and using a specific packet encapsulation method, combined with the use of sending message cache area, the problem of tight bandwidth resources of wireless networks is solved, and more efficient data transmission and lower CPU consumption is achieved.

CN115941762BActive Publication Date: 2025-05-09HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111034071.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-03
Publication Date
2025-05-09
Estimated Expiration
2041-09-03

AI Technical Summary

Technical Problem

In the field of the Internet of Things, multiple electronic devices occupy too much wireless network bandwidth resources, resulting in poor network transmission capabilities, resulting in frequent packet discarding and data retransmission, and increasing CPU consumption at the sending end.

Method used

By establishing a session connection between electronic devices, encapsulate data packets using a specific packet encapsulation method, and configure a sending message cache area on the sending end to realize the cache and retransmission of data packets, reducing dependence on TCP modules and IP modules.

Benefits of technology

It effectively reduces the CPU consumption of electronic devices, improves the fluency and efficiency of data transmission, and reduces the frequency of packet discarding and data retransmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115941762B_ABST
    Figure CN115941762B_ABST
Patent Text Reader

Abstract

The embodiments of the present application relate to a data transmission method, electronic device and apparatus. The method includes: a first electronic device configures a first sending message buffer area for caching a first specific message sent to a second electronic device, wherein the first specific message is a message obtained by encapsulating the first application data in a specific message encapsulation method different from the TCP message encapsulation method; the second electronic device configures a first receiving message buffer area for caching the first specific message received and sent by the first electronic device; when the first electronic device determines that the first specific message needs to be resent, the first electronic device obtains the first specific message from the first sending message buffer area and resends the first specific message. Through the method of the embodiments of the present application, the number of times the first electronic device encapsulates data can be reduced, the CPU consumption of the electronic device that generates data can be reduced, and the electronic device can transmit data more smoothly.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data transmission, and in particular to a data transmission method, electronic equipment and device. Background Art

[0002] In the field of Internet of Things, several electronic devices can use wireless network to transmit data through network devices at the same time. As the number of electronic devices connected to wireless network increases, if multiple electronic devices occupy more bandwidth resources of wireless network, it will cause the bandwidth resources of wireless network to be tight, resulting in poor network transmission capacity between electronic devices in wireless network and between electronic devices and network devices.

[0003] The mainstream wireless network data transmission method is message transmission. The sender encapsulates the data into a message, which is forwarded by the sender through the network device to the receiver. When the network transmission capacity of the wireless network is poor, the electronic device will not adjust the data transmission method according to the network transmission capacity, so that some messages cannot be sent to the network device, or even if the message reaches the network device, the network device fails to forward the message to the receiver, so that these messages will be discarded; even if the message is sent to the receiver, the sender will not be able to receive the confirmation information returned by the receiver. This situation will not only cause a high delay in data transmission between the sender and the receiver, but also cause the sender to generate too much data retransmission, causing the sender's CPU to frequently process data retransmission and generate additional performance consumption. Summary of the invention

[0004] The embodiments of the present application provide a data transmission method, electronic device and apparatus, which can reduce the CPU consumption of an electronic device that generates data, so that the CPU of the electronic device can provide more computing power to other applications, making the electronic device transmit data more smoothly.

[0005] A first aspect of an embodiment of the present application provides a data transmission method, which is applied to a system including a first electronic device and a second electronic device, and is characterized in that the method includes:

[0006] Establishing a first session connection between the first electronic device and the second electronic device;

[0007] The first electronic device is configured with a first sent message buffer area, wherein the first sent message buffer area is used to buffer a first specific message sent to the second electronic device through the first session connection, the first specific message is a message obtained by encapsulating the first application data in a specific message encapsulation method different from the TCP message encapsulation method, and the final destination receiving device of the first application data is a third electronic device different from the second electronic device;

[0008] The second electronic device configures a first received message buffer area, wherein the first received message buffer area is used to buffer a first specific message sent by the first electronic device and received through the first session connection;

[0009] The first electronic device sends a first specific message to the second electronic device through the first session connection;

[0010] When the first electronic device determines that the first specific message needs to be resent, the first electronic device obtains the first specific message from the first sent message buffer area and resends the first specific message.

[0011] The data transmission method provided in the first aspect can be applied to a first electronic device and a second electronic device connected via a first session, for example, a mobile phone and a WIFI router connected via WIFI. In the process of the first electronic device sending the first application data to the second electronic device, the first electronic device can use a specific message encapsulation method to encapsulate the first application data into a first specific message. Compared with the TCP message encapsulation method, the specific message encapsulation method can be omitted, such as: TCP header field and IP header field. In the process of the first electronic device encapsulating the first application data into the first specific message, there is no need to call the TCP module and the IP module, thereby speeding up the encapsulation process of the first specific message. Optionally, the first session connection can correspond to a first session identifier, and the first session identifier is used to determine that the first application data encapsulated in the first specific message comes from the first application of the first electronic device.

[0012] The first sending message buffer area can be set in a storage area of ​​the first electronic device, such as a memory. After the first electronic device sends a first specific message to the second electronic device, the first specific message is cached in the first sending message buffer area. When the first electronic device needs to retransmit the first specific message, the first electronic device can directly search and retransmit the first specific message from the first sending message buffer area without encapsulating the first application data again.

[0013] The first received message buffer area can be set in a storage area of ​​the second electronic device, such as a memory. After the second electronic device receives the first specific message sent by the first electronic device, it buffers the first specific message in the first received message buffer area.

[0014] In a possible implementation of the first aspect, the first electronic device configures a first sent message buffer area, specifically including:

[0015] The first electronic device configures a first message sending buffer area with a size corresponding to the data transmission speed according to the data transmission speed between the first electronic device and the second electronic device.

[0016] In this implementation, the first electronic device can dynamically adjust the capacity of the first message buffer area according to the data transmission speed between the first electronic device and the second electronic device, and configure the first message buffer area more flexibly, that is, if the data transmission speed between the first electronic device and the second electronic device is faster, the first electronic device can reduce the capacity of the first message buffer area; on the contrary, if the data transmission speed between the first electronic device and the second electronic device is slower, the first electronic device can increase the capacity of the first message buffer area.

[0017] In a possible implementation of the first aspect, the second electronic device configures a first received message buffer area, specifically including:

[0018] The second electronic device configures a first received message buffer area with a size corresponding to the data transmission speed according to the data transmission speed between the first electronic device and the second electronic device.

[0019] In this implementation, the second electronic device may also dynamically adjust the capacity of the first received message buffer area according to the data transmission speed between the first electronic device and the second electronic device.

[0020] In a possible implementation of the first aspect above, the first specific message includes a specific message field, and the specific message field is used to identify a sequence number and / or a sending time corresponding to the first specific message.

[0021] In this implementation, the sequence number corresponding to the first specific message may be the message sequence number of the first specific message, which is used to uniquely identify the first specific message, so that the first electronic device can quickly find the corresponding first specific message in the first sending message buffer area according to the message sequence number. The sending time corresponding to the first specific message may be the time when the first electronic device sends the first specific message. The first electronic device can also determine whether the specific message needs to be retransmitted based on whether the difference between the sending time of one specific message and the return time of the confirmation information of another specific message in two adjacent specific messages exceeds the retransmission time threshold, without having to monitor whether the confirmation information of the specific message is received by turning on the timing function, thereby speeding up the efficiency of the first electronic device in retransmitting the first specific message.

[0022] In a possible implementation of the first aspect above, when the length of the first specific message is the same as the length of the standard TCP message, the number of application data bytes that the first specific message can carry is greater than the number of application data bytes that the standard TCP message can carry.

[0023] In this implementation, since the specific message encapsulation method corresponding to the first specific message can be omitted, such as the TCP header field and the IP header field, the number of application data bytes that the first specific message can carry is greater than that of the standard TCP message, thereby improving the efficiency of data transmission.

[0024] In a possible implementation of the first aspect, the situation in which the first electronic device needs to resend the first specific message includes:

[0025] The first electronic device receives a retransmission request corresponding to the first specific message sent by the second electronic device, or the first electronic device determines that confirmation information corresponding to the first specific message is not received within a timeout period.

[0026] In this implementation, the first electronic device resends the first specific message after receiving a retransmission request corresponding to the first specific message, thereby ensuring that the first specific message that failed to be sent can be sent again; alternatively, the first electronic device may turn on the timing function after sending the first specific message, and after the waiting period has elapsed, if the first electronic device determines that the confirmation information corresponding to the first specific message has not been received within the time limit, the first electronic device resends the first specific message, thereby speeding up the efficiency of the first electronic device in retransmitting the first specific message.

[0027] In a possible implementation of the first aspect, the data transmission method further includes:

[0028] When the first electronic device determines that the first specific message is sent successfully, the first electronic device deletes the first specific message from the first sent message buffer area.

[0029] In this implementation, after the first electronic device receives confirmation information of the first specific message, the first electronic device can delete the first specific message from the first sending message buffer area, releasing the storage area of ​​the first electronic device, so that the first sending message buffer area can continue to cache other messages encapsulated in a specific message encapsulation manner to be sent subsequently.

[0030] In a possible implementation of the first aspect, the data transmission method further includes:

[0031] After the second electronic device receives the first specific message, the second electronic device stores the first specific message in the first received message buffer area.

[0032] In this implementation, after the second electronic device receives the first specific message sent by the first electronic device, it caches the first specific message in the first received message buffer area, so that if the second electronic device can obtain the received first specific message from the first received message buffer area, it is convenient to perform subsequent processing on the first specific message.

[0033] In a possible implementation of the first aspect, the data transmission method further includes:

[0034] The second electronic device obtains the first specific message from the first received message buffer area, and decapsulates the first specific message using a specific message decapsulation method corresponding to the specific message encapsulation method to obtain the first application data;

[0035] The second electronic device encapsulates the first application data in a TCP message encapsulation manner, obtains a first TCP message, and sends the first TCP message.

[0036] In this implementation, if in the entire transmission path of the message carrying the first application data, the device located at the next hop of the second electronic device does not support a specific message encapsulation method but supports a TCP message encapsulation method, the second electronic device can first unpack the first specific message to obtain the first application data, and then use the TCP message encapsulation method to encapsulate the first application data into a first TCP message, and then send it to the device located at the next hop of the second electronic device, thereby improving compatibility.

[0037] In a possible implementation of the first aspect, the data transmission method further includes:

[0038] The second electronic device copies the first specific message in the first received message buffer area to the second sent message buffer area, wherein the second sent message buffer area is used to cache the first specific message sent to the third electronic device through the second session connection, and the second session connection is a session connection established between the second electronic device and the third electronic device;

[0039] The second electronic device deletes the first specific message in the first received message buffer area.

[0040] In this implementation, the third electronic device as the destination receiving device of the first application data also supports the specific message encapsulation method and establishes a second session connection with the second electronic device. After the second electronic device sends the first specific message to the third electronic device, the first specific message is cached in the second sending message buffer area. Therefore, when the second electronic device needs to retransmit the first specific message, since the first specific message is cached in the second sending message buffer area of ​​the second electronic device, the second electronic device can directly search and retransmit the first specific message from the second sending message buffer area without sending a retransmission request for the first application data to the first electronic device, and then the first electronic device does not need to obtain, encapsulate, and send the first application data again, shortening the acquisition and transmission path of the retransmitted message, and reducing the CPU consumption of the first electronic device. After the second electronic device receives the confirmation information of the first specific message, the second electronic device can delete the first specific message from the second sending message buffer area and the first receiving message buffer area together to release the storage area of ​​the second electronic device; the second electronic device can also delete the first specific message in the first receiving message buffer area after copying the first specific message in the first receiving message buffer area to the second sending message buffer area. The second session connection may correspond to a second session identifier, which is used to determine that the first application data encapsulated in the first specific message comes from the first application of the first electronic device, and to determine that the second electronic device sends the first specific message to the third electronic device.

[0041] In a possible implementation of the first aspect, the data transmission method further includes:

[0042] The second electronic device sends a first specific message to the third electronic device through the second session connection.

[0043] In this implementation, the second electronic device and the third electronic device may be a WIFI router and a tablet computer connected via WIFI.

[0044] In a possible implementation of the first aspect above, the first electronic device is a terminal device, such as a mobile phone, and the second electronic device is a router.

[0045] A second aspect of an embodiment of the present application provides a data transmission method, which is applied to a first electronic device, and the method includes:

[0046] Establishing a first session connection between the first electronic device and the second electronic device;

[0047] The first electronic device is configured with a first sent message buffer area, wherein the first sent message buffer area is used to buffer a first specific message sent to the second electronic device through the first session connection, the first specific message is a message obtained by encapsulating the first application data in a specific message encapsulation method different from the TCP message encapsulation method, and the final destination receiving device of the first application data is a third electronic device different from the second electronic device;

[0048] The first electronic device sends a first specific message to the second electronic device through the first session connection;

[0049] When the first electronic device determines that the first specific message needs to be resent, the first electronic device obtains the first specific message from the first sent message buffer area and resends the first specific message.

[0050] The data transmission method provided in the second aspect can be applied to a first electronic device configured with a wired connection / wireless connection, for example, a mobile phone configured with a WIFI communication function. In the process of the first electronic device sending the first application data to the second electronic device, the first electronic device can use a specific message encapsulation method to encapsulate the first application data into a first specific message. Compared with the TCP message encapsulation method, the specific message encapsulation method can be omitted, such as: TCP header field and IP header field. In the process of the first electronic device encapsulating the first application data into the first specific message, there is no need to call the TCP module and the IP module, thereby speeding up the encapsulation process of the first specific message. The first session connection can correspond to a first session identifier, and the first session identifier is used to determine that the first application data encapsulated in the first specific message comes from the first application of the first electronic device.

[0051] The first transmission message buffer area can be set in a storage area of ​​the first electronic device, such as a memory. After the first electronic device sends the first specific message to the second electronic device, the first specific message is buffered in the first transmission message buffer area. When the first electronic device needs to retransmit the first specific message, the first electronic device can directly search and retransmit the first specific message from the first transmission message buffer area without encapsulating the first application data again. The first specific message can be sent to the third electronic device via the second electronic device.

[0052] In a possible implementation of the second aspect, the first electronic device configures a first sent message buffer area, specifically including:

[0053] The first electronic device configures a first message sending buffer area with a size corresponding to the data transmission speed according to the data transmission speed between the first electronic device and the second electronic device.

[0054] In this implementation, the first electronic device can dynamically adjust the capacity of the first message buffer area according to the data transmission speed between the first electronic device and the second electronic device, and configure the first message buffer area more flexibly, that is, if the data transmission speed between the first electronic device and the second electronic device is faster, the first electronic device can reduce the capacity of the first message buffer area; on the contrary, if the data transmission speed between the first electronic device and the second electronic device is slower, the first electronic device can increase the capacity of the first message buffer area.

[0055] In a possible implementation of the second aspect above, the first specific message includes a specific message field, and the specific message field is used to identify a sequence number and / or a sending time corresponding to the first specific message.

[0056] In this implementation, the sequence number corresponding to the first specific message may be the message sequence number of the first specific message, which is used to uniquely identify the first specific message, so that the first electronic device can quickly find the corresponding first specific message in the first sending message buffer area according to the message sequence number. The sending time corresponding to the first specific message may be the time when the first electronic device sends the first specific message. The first electronic device can also determine whether the specific message needs to be retransmitted based on whether the difference between the sending time of one specific message and the return time of the confirmation information of another specific message in two adjacent specific messages exceeds the retransmission time threshold, without having to monitor whether the confirmation information of the specific message is received by turning on the timing function, thereby speeding up the efficiency of the first electronic device in retransmitting the first specific message.

[0057] In a possible implementation of the second aspect above, when the length of the first specific message is the same as the length of the standard TCP message, the number of application data bytes that the first specific message can carry is greater than the number of application data bytes that the standard TCP message can carry.

[0058] In this implementation, since the specific message encapsulation method corresponding to the first specific message can be omitted, such as the TCP header field and the IP header field, the number of application data bytes that the first specific message can carry is greater than that of the standard TCP message, thereby improving the efficiency of data transmission.

[0059] In a possible implementation of the second aspect, the situation in which the first electronic device needs to resend the first specific message includes:

[0060] The first electronic device receives a retransmission request corresponding to the first specific message sent by the second electronic device, or the first electronic device determines that confirmation information corresponding to the first specific message is not received within a timeout period.

[0061] In this implementation, the first electronic device resends the first specific message after receiving a retransmission request corresponding to the first specific message, thereby ensuring that the first specific message that failed to be sent can be sent again; alternatively, the first electronic device may turn on the timing function after sending the first specific message, and after the waiting period has elapsed, if the first electronic device determines that the confirmation information corresponding to the first specific message has not been received within the time limit, the first electronic device resends the first specific message, thereby speeding up the efficiency of the first electronic device in retransmitting the first specific message.

[0062] In a possible implementation of the second aspect, the method further includes:

[0063] When the first electronic device determines that the first specific message is sent successfully, the first electronic device deletes the first specific message from the first sent message buffer area.

[0064] In this implementation, after the first electronic device receives confirmation information of the first specific message, the first electronic device may delete the first specific message from the first sent message buffer area to release the storage area of ​​the first electronic device.

[0065] In a possible implementation of the second aspect above, the first electronic device is a terminal device.

[0066] In this implementation, the first electronic device may be a mobile phone.

[0067] A third aspect of an embodiment of the present application provides a data transmission method, which is applied to a second electronic device, and the method includes:

[0068] Establishing a first session connection between the second electronic device and the first electronic device;

[0069] The second electronic device is configured with a first received message buffer area, wherein the first received message buffer area is used to buffer a first specific message sent by the first electronic device and received through the first session connection, the first specific message being a message obtained by encapsulating the first application data in a specific message encapsulation method different from the TCP message encapsulation method, and the final destination receiving device of the first application data is a third electronic device different from the second electronic device;

[0070] The second electronic device receives the first specific message through the first session connection, and stores the first specific message in the first received message buffer area.

[0071] The data transmission method provided in the third aspect can be applied to a second electronic device configured with a wired connection / wireless connection, for example, a WIFI router. The first session connection can be a communication connection between the first electronic device and the second electronic device, such as a WIFI connection. The first received message buffer area can be set in a storage area of ​​the second electronic device, such as a memory. After the second electronic device receives the first specific message sent by the first electronic device, the first specific message is cached in the first received message buffer area.

[0072] In a possible implementation of the third aspect, the second electronic device configures a first received message buffer area, specifically including:

[0073] The second electronic device configures a first received message buffer area with a size corresponding to the data transmission speed according to the data transmission speed between the first electronic device and the second electronic device.

[0074] In this implementation, the second electronic device can dynamically adjust the capacity of the first received message buffer area according to the data transmission speed between the first electronic device and the second electronic device. That is, if the data transmission speed between the first electronic device and the second electronic device is faster, the second electronic device can reduce the capacity of the first received message buffer area; conversely, if the data transmission speed between the first electronic device and the second electronic device is slower, the second electronic device can increase the capacity of the first received message buffer area.

[0075] In a possible implementation of the third aspect above, the data transmission method further includes: the second electronic device sends confirmation information corresponding to the first specific message to the first electronic device.

[0076] In this implementation, the second electronic device can return confirmation information corresponding to the first specific message to the first electronic device after receiving the first specific message. Compared with the existing solution in which the first electronic device needs to wait for the confirmation information returned by the final destination receiving device of the first application data, the implementation provided by the embodiment of the present application shortens the transmission path and waiting time for the first electronic device to receive the confirmation information, speeds up the message retransmission speed, and thereby speeds up the overall message transmission speed.

[0077] In a possible implementation of the third aspect above, the first specific message includes a specific message field, the specific message field includes a sequence number and / or a sending time, and the method also includes: the second electronic device determines whether to send a retransmission request to the first electronic device based on the sequence number and / or the sending time.

[0078] In this implementation, when the second electronic device determines that the first specific message needs to be retransmitted, it sends a retransmission request to the first electronic device, which can ensure that the first specific message that failed to be sent can be sent again. For example, the second electronic device knows that it has received the first specific messages with sequence numbers 1, 3, 4, and 5 according to the sequence number of the first specific message, but has not received the first specific message with sequence number 2. Then, the second electronic device sends a retransmission request corresponding to the first specific message with sequence number 2 to the first electronic device, so as to request the first electronic device to resend the first specific message with sequence number 2 to the second electronic device. Thus, the first electronic device can find the first specific message with sequence number 2 from the first sent message buffer according to the retransmission request and resend it.

[0079] In a possible implementation of the third aspect, the data transmission method further includes:

[0080] The second electronic device obtains the first specific message from the first received message buffer area, and decapsulates the first specific message using a decapsulation method corresponding to the encapsulation method of the first specific message to obtain the first application data;

[0081] The second electronic device encapsulates the first application data in a TCP message encapsulation manner, obtains a first TCP message, and sends the first TCP message.

[0082] In this implementation, if in the entire transmission path of the message carrying the first application data, the device located at the next hop of the second electronic device does not support a specific message encapsulation method but supports a TCP message encapsulation method, the second electronic device can first unpack the first specific message to obtain the first application data, and then use the TCP message encapsulation method to encapsulate the first application data into a first TCP message, and then send it to the device located at the next hop of the second electronic device, thereby improving compatibility.

[0083] In a possible implementation of the third aspect, the data transmission method further includes:

[0084] The second electronic device copies the first specific message in the first received message buffer area to the second sent message buffer area, wherein the second sent message buffer area is used to cache the first specific message sent to the third electronic device through the second session connection, and the second session connection is a session connection established between the second electronic device and the third electronic device;

[0085] The second electronic device deletes the first specific message in the first received message buffer area;

[0086] The second electronic device sends a first specific message to the third electronic device through the second session connection.

[0087] In this implementation, the third electronic device as the destination receiving device of the first application data also supports the specific message encapsulation method and establishes a second session connection with the second electronic device. After the second electronic device sends the first specific message to the third electronic device, the first specific message is cached in the second sending message buffer area. Therefore, when the second electronic device needs to retransmit the first specific message, since the first specific message is cached in the second sending message buffer area of ​​the second electronic device, the second electronic device can directly search and retransmit the first specific message from the second sending message buffer area without sending a retransmission request for the first application data to the first electronic device, and then the first electronic device does not need to obtain, encapsulate, and send the first application data again, shortening the acquisition and transmission path of the retransmitted message, and reducing the CPU consumption of the first electronic device. After the second electronic device receives the confirmation information of the first specific message, the second electronic device can delete the first specific message from the second sending message buffer area and the first receiving message buffer area together to release the storage area of ​​the second electronic device; the second electronic device can also delete the first specific message in the first receiving message buffer area after copying the first specific message in the first receiving message buffer area to the second sending message buffer area. The second session connection may correspond to a second session identifier, and the second session identifier is used to determine that the second electronic device sends the first specific message to the third electronic device.

[0088] In a possible implementation of the third aspect, the second electronic device is a router.

[0089] The fourth aspect of an embodiment of the present application provides an electronic device, comprising at least one processor and a memory; wherein the memory is used to store computer-executable instructions; when the electronic device is running, at least one processor executes the computer-executable instructions stored in the memory so that the electronic device executes the method provided by the second aspect or the third aspect.

[0090] A fifth aspect of an embodiment of the present application provides a computer-readable storage medium, which includes computer instructions. When the computer instructions are executed on an electronic device, the electronic device executes the method provided in the second aspect or the third aspect.

[0091] A sixth aspect of the embodiments of the present application provides a computer program product, which includes computer instructions. When the computer instructions are executed on an electronic device, the electronic device executes the method provided in the second aspect or the third aspect.

[0092] The seventh aspect of an embodiment of the present application provides a chip system, which includes at least one processor and at least one interface circuit. The at least one interface circuit is used to perform transceiver functions and send instructions to at least one processor. When the at least one processor executes the instructions, the electronic device including the chip system executes the method provided by the second aspect or the third aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0093] Figure 1 According to an embodiment of the present application, a scenario diagram for implementing data transmission between multiple electronic devices is shown;

[0094] Figure 2a to Figure 2c According to an embodiment of the present application, a schematic diagram of data transmission between a mobile phone 100 and a server 300 is shown;

[0095] Figure 3a According to an embodiment of the present application, a schematic diagram of a mobile phone 100 transmitting a TCP message to a tablet computer 400 via a router 200 is shown;

[0096] Figure 3b According to an embodiment of the present application, a flow chart of a method for a mobile phone 100 to transmit a TCP message to a tablet computer 400 via a router 200 is shown;

[0097] Figure 4a According to an embodiment of the present application, a schematic diagram of transmitting a specific message between a mobile phone 100 and a router 200 is shown;

[0098] Figure 4b According to an embodiment of the present application, a flow chart of a method for transmitting a specific message between a mobile phone 100 and a router 200 is shown;

[0099] Figure 5 According to an embodiment of the present application, a software structure diagram of a message transmission service is shown;

[0100] Figure 6 According to an embodiment of the present application, a hardware structure block diagram of an electronic device is shown;

[0101] Figure 7 According to an embodiment of the present application, a software structure block diagram of an electronic device is shown;

[0102] Figure 8 According to an embodiment of the present application, a flow chart of a method for transmitting a message and retransmitting a message between a mobile phone 100 and a router 200 is shown;

[0103] Fig. 9 According to an embodiment of the present application, a schematic diagram of configuring a message transmission service for a mobile phone 100 is shown;

[0104] Fig.10A schematic diagram of a message format of a specific message is shown according to an embodiment of the present application;

[0105] Figures 11a to 11c According to an embodiment of the present application, a schematic diagram is shown in which a mobile phone 100 transmits a specific message to a tablet computer 400 via a router 200;

[0106] Fig.12 According to an embodiment of the present application, a flow chart of a method for a router 200 to forward a message to a tablet computer 400 and to retransmit the message is shown;

[0107] Fig.13 According to an embodiment of the present application, a flow chart of a method for transmitting a message and retransmitting a message between a mobile phone 100 and a router 200 is shown;

[0108] Figures 14a to 14c According to an embodiment of the present application, a schematic diagram is shown in which a mobile phone 100 transmits a specific message to a server 300 via a router 200;

[0109] Fig.15 According to an embodiment of the present application, a flow chart of a method for a router 200 to forward a message to a server 300 and to retransmit the message is shown;

[0110] Fig.16 According to an embodiment of the present application, a flow chart of a method for transmitting a message and retransmitting a message between a tablet computer 400 and a router 200 is shown;

[0111] Figures 17a to 17c According to an embodiment of the present application, a schematic diagram is shown of a tablet computer 400 transmitting a specific message to a mobile phone 100 via a router 200;

[0112] Fig.18 According to an embodiment of the present application, a flow chart of a method for a router 200 to forward a message to a mobile phone 100 and to retransmit the message is shown;

[0113] Fig.19 According to an embodiment of the present application, a flow chart of a method for transmitting a message and retransmitting a message between a server 300 and a router 200 is shown;

[0114] Figures 20a to 20c According to an embodiment of the present application, a schematic diagram of a server 300 transmitting a specific message to a mobile phone 100 through a router 200 is shown;

[0115] Fig.21 According to an embodiment of the present application, a flow chart of a method for a router 200 to forward a message to a mobile phone 100 and to retransmit the message is shown. DETAILED DESCRIPTION

[0116] The embodiments of the present application include but are not limited to a data transmission method, electronic device and apparatus. To make the purpose, technical solution and advantages of the embodiments of the present application clearer, the implementation of the embodiments of the present application will be further described in detail below in conjunction with the accompanying drawings.

[0117] Figure 1 It shows that the mobile phone 100, the smart TV 500, and the tablet computer 400 communicate with each other through the router 200 or communicate with the server 300 through the router 200, such as: the mobile phone 100 is performing live video broadcasting, the smart TV 500 is performing network on-demand broadcasting, and the tablet computer 400 is performing online teaching.

[0118] exist Figure 1 In the scenario shown, for example, the mobile phone 100 is broadcasting a live video, and the mobile phone 100 needs to transmit data with the server 300 (e.g., a live video application server). During the data transmission process, the TCP message carrying the video data generated by the mobile phone 100 can be forwarded to the server 300 via the router 200, thereby realizing the communication between the mobile phone 100 and the server 300. It can be understood that in Figure 1 In the scenario, the router 200 is used to forward the message generated by the mobile phone 100 to the server 300.

[0119] if Figure 1 In the scenario where the network transmission capacity is poor, the data transmission between the mobile phone 100 and the server 300 may have the following scenarios. Figure 2a As shown, the mobile phone 100 sends a message to the server 300 through the forwarding of the router 200, but the message is not sent to the router 200. If the mobile phone 100 cannot cache the message, the mobile phone 100 will discard the message that failed to be sent.

[0120] and Figure 2a The scenario is similar to Figure 2b As shown, if the mobile phone 100 can cache messages, but the number of messages cached by the mobile phone 100 is fixed, such as: the mobile phone 100 can cache 4 messages, after the number of messages that the mobile phone 100 fails to send to the router 200 exceeds 4, the messages that are not successfully sent to the router 200 will be discarded by the mobile phone 100.

[0121] like Figure 2c As shown, the message sent by the mobile phone 100 to the server 300 arrives at the router 200, but the router 200 fails to forward the message to the server 300, so that the message is discarded by the router 200. Since the router 200 only has the function of message forwarding, after the message forwarding fails, the mobile phone 100 needs to perform data retransmission.

[0122] It can be seen that for Figure 2a to Figure 2cIn the scenario, if the network transmission capacity of the wireless network between the mobile phone 100 and the server 300 continues to be poor, the mobile phone 100 will discard too many messages and generate too much data retransmission, causing the CPU of the mobile phone 100 to frequently process data retransmissions and generate additional performance consumption, resulting in high delays in data transmission between the mobile phone 100 and the server 300.

[0123] In addition, after sending a message to the server 300, the mobile phone 100 will wait for the confirmation information (Acknowledgement, ACK) of the message. If the mobile phone 100 determines that the confirmation information of the message has not been received after the preset waiting time, the mobile phone 100 will retransmit the message. Usually, the confirmation information is returned by the server 300 to the mobile phone 100, so the mobile phone 100 often sets a relatively long waiting time to wait for the confirmation information. If the mobile phone 100 receives the confirmation information, the mobile phone 100 confirms that the message has been sent successfully. If not, the mobile phone 100 performs data retransmission. Figure 2a to Figure 2c In the scenario, since there is a failure in message sending and the message needs to be retransmitted, the time from the first sending of the message by the mobile phone 100 to the receipt of the confirmation information of the message will be longer than the situation where there is no message sending failure and no message retransmission is required, resulting in a high delay in data transmission between the mobile phone 100 and the server 300.

[0124] Understandably, Figure 2a to Figure 2c The message in the scenario can be a TCP message, that is, a message in the transmission control protocol (TCP) format. When a data transmission based on the TCP protocol is performed between electronic devices, the data needs to be encapsulated into a TCP message through the multi-layer protocol stack of the operating system of the electronic device, such as: TCP module, IP module, and firewall module.

[0125] Figure 3a and Figure 3bThe process of sending a message from the mobile phone 100 to the server 300 includes steps S301 to S305: the video data generated by the mobile phone 100 will be encapsulated into a TCP message by the TCP module of the operating system of the mobile phone 100, and then the IP data will be added by the IP module. Finally, the firewall module will perform a security check on the TCP message and send the TCP message to the router 200 through the network card driver module. After receiving the TCP message, the router 200 will adopt a method similar to that of the mobile phone 100, first parse the TCP message through the firewall module, the IP module and the TCP module to obtain data, and then re-encapsulate the data into a TCP message and forward it to the server 200. After receiving the TCP message, the server 300 will also adopt a similar method to the above, parse the TCP message through the firewall module, the IP module and the TCP module, and obtain the video data sent to the video live broadcast application service. The server 300 will also return the confirmation information of the TCP message to the mobile phone 100. After the mobile phone 100 receives the confirmation information, the mobile phone 100 confirms that the TCP message is sent successfully.

[0126] exist Figure 2a to Figure 2c In the scenario, since the server 300 has not received the message, the server 300 will not return the message confirmation information to the mobile phone 100, so the mobile phone 100 needs to perform data retransmission, that is, message retransmission. During the message retransmission process of the mobile phone 100, the mobile phone 100 needs to re-execute Figure 3b In the steps S301 to S305 described above, after encapsulating the data into a TCP message and adding IP data and security verification operations, the data is forwarded to the server 300 through the router 200, that is, the TCP message needs to go through the process from the mobile phone 100 to the router 200 and then to the server 300. As a result, the message needs to go through multiple memory copies, message encapsulation / decapsulation, module queue operations and caches between the mobile phone 100, the router 200 and the server 300 during the retransmission process, further exacerbating the low efficiency of message retransmission, high CPU consumption of the mobile phone 100 and high delay in message transmission.

[0127] In the embodiment of the present application, taking the mobile phone 100 and the router 200 as an example, the data transmission based on TCP packets between the mobile phone 100 and the router 200 can be measured by the throughput of the TCP protocol. In the above formula, cwnd represents (congestion window, TCP congestion window), RTT represents (RoundTrip Time, round trip time), MSS represents (Maximum Segment Size, maximum data segment length), and p represents (Probability of packet loss, packet loss rate). It can be seen from this formula that if the network transmission capacity between the mobile phone 100 and the router 200 is not good, the packet loss rate between the mobile phone 100 and the router 200 will increase, and the round trip time of the message transmission between the mobile phone 100 and the router 200 will also increase, causing the throughput of the TCP protocol between the mobile phone 100 and the router 200 to decrease, making the delay of data transmission between the mobile phone 100 and the server 300 high.

[0128] To solve Figure 2a to Figure 2c In order to solve the problem of high delay in data transmission between the mobile phone 100 and the server 300 described in the specification, an embodiment of the present application provides a data transmission method for accelerating the process of data retransmission. Figure 4a and Figure 4bAs shown, the data transmission method includes steps S401 to S404: the mobile phone 100 encapsulates the data sent to the server 300 into a message of a specific format different from the format of the standard TCP message (hereinafter referred to as the "specific message"). Compared with the TCP message, the specific format can omit some or all of the message encapsulation fields, such as: the TCP header field and the IP header field, which speeds up the process of the mobile phone 100 encapsulating the data into a message; a session connection for transmitting the specific message is established between the mobile phone 100 and the router 200, and a sending and response mechanism of the specific message is established between the mobile phone 100 and the router 200 based on the session connection, that is, after the router 200 receives the specific message sent by the mobile phone 100, the router 200 can return confirmation information of the specific message to the mobile phone 100, and the mobile phone 100 does not need to wait for the server 300 to return the confirmation information, which shortens the time for the mobile phone 100 to wait for the confirmation information of the specific message. The mobile phone 100 can set a cache area for specific messages corresponding to the network transmission capacity according to the network transmission capacity between the mobile phone 100 and the router 200, so that the mobile phone 100 and the router 200 can cache a corresponding number of specific messages according to different network transmission capabilities to avoid the loss of specific messages when the network transmission capacity is poor; the mobile phone 100 can also execute a sending method of specific messages corresponding to the network transmission capacity according to the network transmission capacity between the mobile phone 100 and the router 200, and speed up or slow down the speed of sending specific messages to the server 300 according to the good or bad network transmission capacity, so as to reduce the retransmission of specific messages caused by the influence of network transmission capacity; when the mobile phone 100 needs to retransmit a specific message, the mobile phone 100 can also search and retransmit the specific message from the cached specific message, so as to avoid the mobile phone 100 from executing the process of encapsulating data into a message again.

[0129] Understandably, Figure 4a and Figure 4b The method shown can be implemented by setting a software module in the application framework layer of the operating system of the mobile phone 100 and the router 200, such as the message transmission service 500. Figure 5 As shown, the software structure of the message transmission service 500 may include: a data acquisition module 501, a session connection module 502, a sending message buffer module 503, a receiving message buffer module 504, a message encapsulation module 505, a data transmission detection module 506 and a message retransmission module 507. It can be understood that Figure 5 The message transmission service 500 shown can be run on the mobile phone 100 and the router 200 respectively, and the software structure of the message transmission service 500 running on the mobile phone 100 and the router 200 can be the same. Figure 5 Taking the example of the message transmission service 500 running on the mobile phone 100, the function description of each module in the message transmission service 500 is as follows:

[0130] The data acquisition module 501 is used to acquire data sent by the application of the mobile phone 100 to the router 200 .

[0131] The session connection module 502 can establish a session connection for transmitting messages between the mobile phone 100 and the router 200, and the session connection can correspond to the application of the mobile phone 100. In the embodiment of the present application, when the specific message sent by the mobile phone 100 to the router 200 comes from multiple applications of the mobile phone 100, the mobile phone 100 can send the specific message corresponding to each application to the router 200 through the session connection corresponding to the application, that is, the session connection module 502 can establish a session connection for each application.

[0132] The message sending buffer module 503 can set a message sending buffer area in the storage area of ​​the mobile phone 100 for storing specific messages transmitted between the mobile phone 100 and the router 200. In the embodiment of the present application, the message sending buffer module 503 can also pre-configure the corresponding relationship between the data transmission speed between the mobile phone 100 and the router 200 and the capacity of the message sending buffer area in the storage area of ​​the mobile phone 100, where the capacity of the message sending buffer area can be the number of messages that can be stored simultaneously in the message sending buffer area 100131.

[0133] The received message buffer module 504 can set a received message buffer area corresponding to the router 200 in the storage area of ​​the mobile phone 100 to store specific messages received by the mobile phone 100 from the router 200.

[0134] The message encapsulation module 505 is used to encapsulate the data sent by the mobile phone 100 to the router 200 into a specific message.

[0135] The data transmission detection module 506 is used to determine the data transmission status between the mobile phone 100 and the router 200.

[0136] The message retransmission module 507 is used to determine whether a specific message needs to be retransmitted between the mobile phone 100 and the router 200. For example, in one embodiment of the present application, after the mobile phone 100 sends a specific message to the router 200, the message retransmission module 507 can continue to monitor whether the confirmation information returned by the router 200 is received. If no confirmation information is returned, the message retransmission module 507 can search for the specific message corresponding to the message sequence number from the sending message cache module 503 according to the message sequence number of the specific message that has been sent and retransmit it.

[0137] It can be understood that in another embodiment of the present application, the sending message cache module 503 and the receiving message cache module 504 can be the same software module, without being distinguished from each other, and are used to cache specific messages sent or received by the mobile phone 100.

[0138] Above Figure 3a and Figure 3b The data transmission method between the mobile phone 100 and the server 300 shown can also be applied between the mobile phone 100 and other electronic devices connected to the router 200. For example, users can make video calls with a tablet computer 400 connected to the router 200 via the mobile phone 100. In the scenario where the mobile phone 100 and the tablet computer 400 make video calls, the mobile phone 100, the router 200 and the tablet computer 400 can all set up a message transmission service 500, so that the data transmission method of the embodiment of the present application can be applied between the mobile phone 100 and the router 200, and between the router 200 and the tablet computer 400.

[0139] Through the data transmission method of the embodiment of the present application, in the process of data transmission between multiple electronic devices, the first electronic device as the sending end uses a custom message format to encapsulate the data, which is different from the standard TCP message, and simplifies the process of the first electronic device performing the encapsulation operation on the data; in some embodiments, a session connection for transmitting the custom message is established between the first electronic device and the second electronic device, and the message sending and response mechanism between the first electronic device and the second electronic device is implemented based on the session connection, reducing the waiting time for the first electronic device to receive the confirmation information of the custom message; in some embodiments, the first electronic device and the second electronic device are respectively set with a custom message cache area corresponding to the network transmission capacity between the two, and a corresponding number of specific messages can be cached according to different network transmission capabilities, and the custom message can be sent according to the sending method corresponding to the network transmission capacity; in some embodiments, the first electronic device can fail to send the custom message and the second electronic device does not receive the custom message and needs to retransmit. The first electronic device can directly search and retransmit the message from the cache area without performing operations such as encapsulation and verification on the data again. The data transmission method of the embodiment of the present application adopts a custom message format, omits the message field in the TCP protocol, improves the efficiency of the first electronic device to encapsulate the message, and improves the bandwidth utilization of the wireless network between the electronic devices; in some embodiments, by establishing a message sending and response mechanism between the first electronic device and the second electronic device, the waiting time for the first electronic device to receive the confirmation information is shortened, and the transmission speed of the message is accelerated; in some embodiments, by setting a buffer area corresponding to the network transmission capacity to cache the message, the number of unsent messages discarded by the first electronic device can be reduced; in some embodiments, sending a custom message according to the sending mode corresponding to the network transmission capacity can speed up or slow down the speed of sending the custom message, and improve the bandwidth utilization of the network between the first electronic device and the second electronic device; in some embodiments, caching the sent message in the buffer area can speed up the process of retransmitting the message, reduce the message forwarding delay, and further reduce the message forwarding delay between electronic devices. The data transmission method of the embodiment of the present application can reduce the CPU consumption of the electronic device that generates data, so that the CPU of the electronic device can provide more computing power to other applications, so that the electronic device can transmit data more smoothly, and bring a faster connection experience to the user.

[0140] The first electronic device in the embodiment of the present application may be a terminal device that provides voice and / or data connectivity to the user. For example, common terminal devices may include: vehicle-mounted devices, mobile phones, tablet computers, laptops, PDAs, mobile internet devices (MID), wearable devices (such as smart watches, smart bracelets, pedometers, etc.), personal digital assistants, portable media players, navigation devices, video game devices, set-top boxes, virtual reality and / or augmented reality devices, Internet of Things devices, industrial control devices, streaming media client devices, e-books, reading devices, POS machines and other devices. The second electronic device in the embodiment of the present application may include, but is not limited to, network servers, signal servers, routers, switches and other electronic devices for transmitting signals.

[0141] Figure 6 A structural schematic diagram of a first electronic device 100 according to an embodiment of the present application is shown. The first electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0142] It is to be understood that the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the first electronic device 100. In other embodiments of the present application, the first electronic device 100 may include more or fewer components than shown in the figure, or combine some components, or split some components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.

[0143] The processor 110 may include one or more processing units, for example, the processor 110 may include an application processor, a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.

[0144] In an embodiment of the present application, the processor 110 encapsulates the application data into a specific message by executing a program, and sends the specific message to the second electronic device 200 through the wireless communication module 160; at the same time, the processor 110 caches the specific message in the internal memory 121; when the processor 110 determines that the specific message needs to be retransmitted, the processor 110 searches for the cached specific message and retransmits it.

[0145] The processor 110 may also be provided with a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. The memory may store instructions or data that the processor 110 has just used or cyclically used. If the processor 110 needs to use the instruction or data again, it may be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.

[0146] The charging management module 140 is used to receive charging input from a charger. The charger may be a wireless charger or a wired charger. In some wired charging embodiments, the charging management module 140 may receive charging input from the wired charger through the USB interface 130 .

[0147] The power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160. The power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle number, and battery health status (leakage, impedance).

[0148] The wireless communication function of the first electronic device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.

[0149] The mobile communication module 150 can provide wireless communication solutions including 2G / 3G / 4G / 5G etc. applied on the first electronic device 100 .

[0150] The wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR), etc., applied to the first electronic device 100. In an embodiment of the present application, a session connection is established between the wireless communication module 160 and the second electronic device 200 for transmitting specific messages.

[0151] The first electronic device 100 implements a display function through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, which connects the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or change display information.

[0152] The display screen 194 is used to display images, videos, etc. The display screen 194 includes a display panel. In some embodiments, the first electronic device 100 may include 1 or N display screens 194, where N is a positive integer greater than 1.

[0153] The first electronic device 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.

[0154] The camera 193 is used to capture still images or videos. In some embodiments, the first electronic device 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.

[0155] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the first electronic device 100. The external memory card communicates with the processor 110 through the external memory interface 120 to implement a data storage function, such as storing music, video and other files in the external memory card.

[0156] The internal memory 121 may be used to store computer executable program codes, which include instructions. The internal memory 121 may include a program storage area and a data storage area. In an embodiment of the present application, the internal memory 121 is used to cache a specific message that has been sent.

[0157] The first electronic device 100 can implement audio functions such as music playing and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone interface 170D, and the application processor.

[0158] The audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signals. The audio module 170 can also be used to encode and decode audio signals. In some embodiments, the audio module 170 can be arranged in the processor 110, or some functional modules of the audio module 170 can be arranged in the processor 110.

[0159] The speaker 170A, also called a "speaker", is used to convert an audio electrical signal into a sound signal. The first electronic device 100 can listen to music or listen to a hands-free call through the speaker 170A.

[0160] The receiver 170B, also called a "earpiece", is used to convert audio electrical signals into sound signals. When the first electronic device 100 receives a call or voice message, the voice can be received by placing the receiver 170B close to the human ear.

[0161] Microphone 170C, also called "microphone" or "microphone", is used to convert sound signals into electrical signals.

[0162] The earphone interface 170D is used to connect a wired earphone and can be a USB interface 130 or a 3.5 mm open mobile terminal platform (OMTP) standard interface or a cellular telecommunications industry association of the USA (CTIA) standard interface.

[0163] The pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal. In some embodiments, the pressure sensor 180A can be disposed on the display screen 194 .

[0164] The gyro sensor 180B may be used to determine the motion posture of the first electronic device 100 .

[0165] The air pressure sensor 180C is used to measure air pressure. In some embodiments, the first electronic device 100 calculates the altitude through the air pressure value measured by the air pressure sensor 180C to assist positioning and navigation.

[0166] The magnetic sensor 180D includes a Hall sensor.

[0167] The acceleration sensor 180E can detect the magnitude of the acceleration of the first electronic device 100 in various directions (generally three axes).

[0168] The distance sensor 180F is used to measure the distance.

[0169] The proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector.

[0170] The ambient light sensor 180L is used to sense the brightness of ambient light.

[0171] The fingerprint sensor 180H is used to collect fingerprints.

[0172] The temperature sensor 180J is used to detect the temperature.

[0173] The touch sensor 180K is also called a “touch control device.” The touch sensor 180K may be disposed on the display screen 194 , and the touch sensor 180K and the display screen 194 form a touch screen, also called a “touch control screen.”

[0174] Bone conduction sensor 180M can obtain vibration signals.

[0175] The key 190 includes a power key, a volume key, etc. The key 190 may be a mechanical key or a touch key. The first electronic device 100 may receive key input and generate key signal input related to user settings and function control of the first electronic device 100.

[0176] Motor 191 can generate vibration prompts. Motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback.

[0177] The indicator 192 may be an indicator light, which may be used to indicate the charging status, power changes, messages, missed calls, notifications, etc.

[0178] The SIM card interface 195 is used to connect a SIM card. The SIM card can be connected to or disconnected from the first electronic device 100 by inserting the SIM card into or removing the SIM card from the SIM card interface 195 .

[0179] Figure 7 It is a software structure block diagram of the first electronic device disclosed in some embodiments of the present application.

[0180] The layered architecture divides the software into several layers, each with clear roles and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom: the application layer, the application framework layer, the Android runtime and system library, and the kernel layer.

[0181] The application layer can include a series of application packages.

[0182] like Figure 7 As shown, the application package may include camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message and other applications.

[0183] like Figure 7 As shown, the application framework layer may include: message transmission service, traffic service, view system, and resource service.

[0184] The message transmission service may be the message transmission service described above, which is used to establish a session connection for messages between the first electronic device 100 and the second electronic device 200, encapsulate the data sent by the application of the first electronic device 100 to the second electronic device 200 into a specific message, cache the sent specific message after sending the specific message to the second electronic device 200, and search for the cached specific message and retransmit it after determining that the specific message needs to be retransmitted.

[0185] The traffic service is used to detect the amount of data currently sent or received between the first electronic device 100 and the second electronic device 200. In the embodiment of the present application, the amount of data here may be the total number of bytes received by the first electronic device 100 from the second electronic device 200. The message transmission service can calculate the data transmission speed between the first electronic device 100 and the second electronic device 200 per unit time through the amount of data obtained by the traffic service.

[0186] The view system includes visual controls, such as controls for displaying text, controls for displaying images, etc. The view system can be used to build applications. A display interface can be composed of one or more views. For example, a display interface including a text notification icon can include a view for displaying text and a view for displaying images.

[0187] Resource services provide various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.

[0188] Android Runtime includes core libraries and virtual machines. Android runtime is responsible for scheduling and management of the Android system.

[0189] The core library consists of two parts: one part is the function that needs to be called by the Java language, and the other part is the Android core library.

[0190] The application layer and the application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and the application framework layer as binary files. The virtual machine is used to perform functions such as object life cycle management, stack management, thread management, security and exception management, and garbage collection.

[0191] The system library may include multiple functional modules, such as surface manager, media library, 3D graphics processing library (such as OpenGL ES), 2D graphics engine (such as SGL), etc.

[0192] The surface manager is used to manage the display subsystem and provide the fusion of 2D and 3D layers for multiple applications.

[0193] The media library supports playback and recording of a variety of commonly used audio and video formats, as well as static image files, etc. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.

[0194] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.

[0195] A 2D graphics engine is a drawing engine for 2D drawings.

[0196] The kernel layer is the layer between hardware and software. The kernel layer contains at least display driver, camera driver, audio driver, and sensor driver.

[0197] Understandably, Figure 7 The software structure described in the above can be run on the first electronic device 100 as well as on other electronic devices, for example, the second electronic device 200, and the software structure block diagram of the second electronic device 200 can be the same as Figure 6 The software structure block diagram of the first electronic device 100 described is the same or similar.

[0198] The following is based on Figures 5 to 7 The hardware and software structure of the first electronic device 100 shown in the figure takes a mobile phone 100, a router 200, a tablet computer 400 and other electronic devices as examples. Figure 8 Combined with Figures 9 to 11cThe data transmission scheme between the mobile phone 100 and the tablet computer 400 is described. In the embodiment of the present application, a file is transferred between the mobile phone 100 and the tablet computer 400, and the message carrying the data corresponding to the file during the file transfer can be forwarded via the router 200. In the embodiment of the present application, a specific implementation method is used when both the sending and receiving devices are connected to the same router 200, and both the sending and receiving devices and the router 200 are configured with the present scheme. The embodiment of the present application is explained by taking the router 200 as a wireless router as an example, but it is not limited to a wireless router.

[0199] Specifically, the embodiments of the present application Figure 8 The data transmission scheme in the embodiment can be implemented by the processors of the mobile phone 100, the router 200 and the tablet computer 400 executing related programs. Figure 8 As shown, a data transmission method provided according to a specific implementation of an embodiment of the present application includes the following steps.

[0200] S801: The mobile phone 100, the router 200 and the tablet computer 400 respectively start the message transmission service.

[0201] Taking the mobile phone 100 as an example, the message transmission service 1001 can be used as a system service of the mobile phone 100, that is, the message transmission service 1001 (which can be named MessageTransmitService) runs in the framework layer (Framework layer) of the software system of the mobile phone 100. In another embodiment of the present application, the message transmission service 1001 can also be used as an application of the mobile phone 100, that is, the message transmission service application (which can be named MessageTransmitServiceApp) runs in the application layer of the software system of the mobile phone 100.

[0202] In one embodiment of the present application, Fig. 9 As shown, the mobile phone 100 can configure the on / off option 1011 of the message transmission service 1001 in the system settings of its own operating system. The user can turn on / off the message transmission service 1001 by clicking the on / off option 1011.

[0203] In an embodiment of the present application, the message transmission service 1001 can be configured as a startup item of the operating system of the mobile phone 100. After the mobile phone 100 is turned on, the message transmission service 1001 can be automatically started without the need for the user to manually start it.

[0204] In addition, the conditions for the mobile phone 100 to automatically start the message transmission service 1001 may include: the current message retransmission rate between the mobile phone 100 and the router 200 is higher than the threshold or the data transmission speed of the wireless network is lower than the threshold. That is to say, when the mobile phone 100 determines that the current network conditions between the mobile phone 100 and the router 200 are not good, the mobile phone 100 may also start the message transmission service 1001 to accelerate data transmission and reduce data loss and data retransmission between the mobile phone 100 and the tablet computer 400.

[0205] For example, taking the message retransmission rate as an example, the message retransmission rate can be determined by the number of message retransmissions / total number of sent messages in a unit time. Assuming that the unit time is 10s, the number of message retransmissions in a unit time is 30, and the total number of sent messages is 100, the message retransmission rate is 0.3. At this time, if the retransmission threshold of the message retransmission rate configured in the storage area of ​​the mobile phone 100 is 0.2, the mobile phone 100 can determine that the current message retransmission rate is higher than the retransmission threshold of the message retransmission rate, and the mobile phone 100 can start the message transmission service 1001.

[0206] In an embodiment of the present application, the conditions for the mobile phone 100 to automatically start the message transmission service 1001 may also include: after the mobile phone 100 is connected to the router 200, such as: when the router 200 is a WIFI router, the mobile phone 100 is connected to the router 200 via WIFI, and the mobile phone 100 detects that there is data transmission between the mobile phone 100 and the router 200, the mobile phone 100 starts the message transmission service 1001.

[0207] In an embodiment of the present application, the mobile phone 100 may also set the message transmission service 1001 as a startup item of the mobile phone 100 , and when the mobile phone 100 is turned on, the mobile phone 100 automatically starts the message transmission service 1001 .

[0208] It is understood that the tablet computer 400 can start the message transmission service 4001 in the same way as the mobile phone 100; for the router 200 without a touch interface, the operating system of the router 200 can start the message transmission service 2001 in the above self-starting way. The user can also use remote access, such as the user connects to the router 200 through the mobile phone 100, starts the browser of the mobile phone 100, enters the LAN address of the router 200 in the browser, opens the configuration interface of the router 200 in the browser, and starts the message transmission service 2001 in the configuration interface. Alternatively, the user can also start or stop the message transmission service by dialing or pressing a physical button on the router 200.

[0209] S802: The mobile phone 100 determines the data transmission status between the mobile phone 100 and the router 200.

[0210] The data transmission status here can be the network transmission capacity between the mobile phone 100 and the router 200, such as: data transmission speed. The data transmission detection module of the message transmission service 1001 of the mobile phone 100 can judge the data transmission speed through the flow service of the framework layer of the software system of the mobile phone 100. The flow service of the mobile phone 100 can detect the amount of data currently received or sent between the mobile phone 100 and the router 200. For example, taking the amount of data sent as an example, the amount of data here can be the total number of bytes sent by the mobile phone 100 to the router 200. The data transmission detection module can continuously detect the amount of data sent by the mobile phone 100 within a preset time period, and calculate the data transmission speed between the mobile phone 100 and the router 200 within the preset time period. For example, the preset time period here can be 10s. If the mobile phone 100 detects that the amount of data sent by the mobile phone 100 to the router 200 within 10s is 100MB (Mbyte, megabyte), then the data transmission detection module determines that the data transmission speed between the mobile phone 100 and the router 200 is 10MB / s, that is, 10 megabytes per second.

[0211] It is understandable that in addition to the data transmission speed, the mobile phone 100 can also determine the data transmission status between the mobile phone 100 and the router 200 based on the wireless network bandwidth or signal strength between the mobile phone 100 and the router 200.

[0212] S803: The mobile phone 100 configures a sending message buffer area according to the data transmission status.

[0213] like Fig.11a As shown, the sending message buffer module of the message transmission service 1001 of the mobile phone 100 can set the sending message buffer area 100131 in the storage area of ​​the mobile phone 100, such as: the internal memory. In the embodiment of the present application, the sending message buffer module can be a software module in the message transmission service 1001, which is used to divide a storage area in the internal memory of the mobile phone 100 and set the storage area as the sending message buffer area 100131. The sending message buffer module can also configure the sending message buffer area 100131 according to the data transmission state determined in step S802, such as: the data transmission speed. For example, Table 1 shows the corresponding relationship between the data transmission speed and the capacity of the sending message buffer area 100131. The correspondence between the data transmission speed and the capacity of the sending message buffer area 100131 shown in Table 1 can be pre-configured by the sending message buffer module of the message transmission service 1001 of the mobile phone 100 in the storage area of ​​the mobile phone 100; the capacity of the sending message buffer area 100131 here can be the number of messages that the sending message buffer area 100131 can store at the same time.

[0214] It can be seen that the corresponding relationship contains 3 records. When the data transmission speed is less than or equal to 10MB / s, the capacity of the send message buffer area 100131 can cache 1000 messages; when the data transmission speed is greater than 10MB / s and less than or equal to 50MB / s, the capacity of the send message buffer area 100131 can cache 100 messages; when the data transmission speed is greater than 50MB / s, the capacity of the send message buffer area 100131 can cache 10 messages.

[0215] It can be understood that in the correspondence between the data transmission speed and the capacity of the sending message buffer area 100131 shown in Table 1, the capacity of the sending message buffer area 100131 is inversely proportional to the data transmission speed. That is, if the data transmission speed between the mobile phone 100 and the router 200 is faster, the possibility of packet loss in the process of sending a specific message between the mobile phone 100 and the router 200 is lower. Therefore, when the data transmission speed between the mobile phone 100 and the router 200 is faster, there is no need to configure the mobile phone 100 with a sending message buffer area 100131 with a larger capacity.

[0216] The correspondence between the data transmission speed and the capacity of the sending message buffer area shown in Table 1 is exemplary. In another embodiment of the present application, the number of records contained in the correspondence and the data transmission speed and the capacity of the sending message buffer area can also take other arbitrary values, which are not limited here. It can be understood that the more records the correspondence between the data transmission speed and the capacity of the sending message buffer area contains, the more accurate the correspondence between the data transmission speed and the capacity of the sending message buffer area is.

[0217]

[0218]

[0219] Table 1

[0220] In another embodiment of the present application, in the above steps S802 and S803, the data transmission detection module of the message transmission service 1001 of the mobile phone 100 may not need to determine the data transmission status between the mobile phone 100 and the router 200, and the sending message cache module of the message transmission service 1001 of the mobile phone 100 may directly set the sending message cache area 100131 in the storage area of ​​the mobile phone 100, and the capacity of the sending message cache area 100131 may be a pre-configured capacity.

[0221] S804: The mobile phone 100 obtains the data to be sent, and encapsulates the data to be sent into a specific message.

[0222] The data to be sent here may be data corresponding to a file sent by the file transfer application of the mobile phone 100 to the file transfer application of the tablet computer 400. The mobile phone 100 acts as a sender, and the file transfer application of the mobile phone 100 sends data to the file transfer application of the tablet computer 400 as a receiver, and the message carrying the data is forwarded through the router 200.

[0223] The mobile phone 100 can obtain the data sent by the file transfer application through the data acquisition module of the message transmission service 1001, and then encapsulate the data into a specific message through the message encapsulation module. The data acquisition module of the message transmission service 1001 of the mobile phone 100 here replaces the TCP module of the operating system of the mobile phone 100, obtains the data of the file transfer application originally sent through the TCP module, and plays the role of proxy data transmission.

[0224] Fig.10 The format of the specific message in the embodiment of the present application and the format of the standard TCP message are shown. It can be seen that the format of the specific message omits the IP header field and the TCP header field in the format of the standard TCP message, and adds a specific message field, for example: the length of the specific message field is defined as 2 bytes, which is used to store the message sequence number and the sending time of the specific message, wherein 1 byte is used to represent the message sequence number, which can be a 16-bit unsigned number. When it increases to 2 to the 31st power, it will wrap around to 0, that is, the value range of the message sequence number is 0 to 65536; 1 byte is used to represent the sending time of the specific message. In one embodiment of the present application, compared with the length of the IP header field and the TCP header field in the format of the standard TCP message, each of which is 20 bytes, in the specific message, the sum of the omitted IP header field and the TCP header field is 40 bytes minus the sequence number field, and the remaining 38 bytes are added to the data field for carrying data, so that each specific message can carry more data than the standard TCP message. The message header field and message tail field respectively record the basic information of the message, such as the length of the message, the number of fields, etc.

[0225] In an embodiment of the present application, compared with the message format of the standard TCP message, the format of the specific message omits the IP header field and the TCP header field, which can increase the amount of data that the specific message can carry each time. At the same time, the message sequence number and sending time are added to the specific message, and the specific message sent by the mobile phone 100 can be recorded in sequence. If there is a specific message that needs to be retransmitted, the message can be quickly found according to the message sequence number and retransmitted in time.

[0226] In another embodiment of the present application, the length of the data field in the specific message may also be the same as the length of the data field in the standard TCP message.

[0227] It can be seen that after the mobile phone 100 uses the message format of a specific message to encapsulate the data, compared with the message format of a standard TCP message, multiple message fields in the TCP protocol are omitted, thereby improving the efficiency of the mobile phone 100 in encapsulating specific messages.

[0228] S805: The mobile phone 100 buffers the specific message and sends the specific message according to the sending mode corresponding to the data transmission state.

[0229] The mobile phone 100 can send a specific message to the tablet computer 400 through the transmission method between the mobile phone 100 and the router 200. For example, when the router 200 is a WIFI router, the transmission method can be WIFI transmission. The message transmission service 1001 of the mobile phone 100 can establish a session connection for sending a specific message with the router 200 through WIFI, and send the specific message to the router 200 through the session connection.

[0230] The session connection here can be a socket connection. The session connection module of the message transmission service 1001 of the mobile phone 100 can establish a session connection between the specific port of the mobile phone 100, such as port number 222, and the session connection module of the message transmission service 2001 running on the router 200 according to the IP address of the router 200; after the session connection is established, for the router 200, the router 200 receives and forwards the specific message sent by the mobile phone 100 to the tablet computer 400 in real time; and the mobile phone 100 can monitor in real time through the session connection whether the router 200 returns confirmation information of the specific message.

[0231] like Fig.11aAs shown, before the mobile phone 100 sends a specific message through the session connection, the mobile phone 100 can cache the specific message in the sending message buffer area 100131. Table 2 shows a storage method of a specific message in the sending message buffer area 100131. It can be seen that Table 2 stores the sent message by establishing a corresponding relationship between the specific message, the sending state and the session identifier. In an embodiment of the present application, the sending state can include the following four types: sent, failed to send, successfully sent and null value. Sent means that the specific message has been sent by the mobile phone 100 through the session connection with the router 200; failed to send means that after the mobile phone 100 sends the specific message, the mobile phone 100 does not receive the confirmation information of the specific message, such as: the network transmission capacity between the mobile phone 100 and the router 200 is not good, resulting in the specific message being unable to be sent to the router 200 through the session connection between the mobile phone 100 and the router 200, or the router 200 receives the specific message, and the mobile phone 100 fails to receive the confirmation information in time; successfully sent means that after the mobile phone 100 sends the specific message, the mobile phone 100 receives the confirmation information corresponding to the specific message; null value means that the mobile phone 100 has not processed the specific message. In the embodiment of the present application, after the mobile phone 100 sends the specific message to the router 200 through the session connection, the sending status of the specific message can be changed to sent; after the mobile phone 100 receives the confirmation information of the sent specific message, the sending status of the specific message can be changed to sent successfully; if the mobile phone 100 does not receive the confirmation information of the sent specific message in time, the sending status of the specific message can be changed to sent failed.

[0232] The session identifier here may be a session ID (Identification) of the session connection between the mobile phone 100 and the router 200 , and the session identifier may be used to determine the electronic device that sends a specific message to the router 200 and the application of the electronic device corresponding to the specific message.

[0233] For example, during the process of file transfer between the mobile phone 100 and the tablet computer 400, a session connection with a session identifier of 10001 is established between the mobile phone 100 and the router 200, and a specific message carrying file data is sent to the router 200 through the session connection with the session identifier of 10001. The router 200 can determine based on the session identifier 10001 that the specific message sent by the mobile phone 100 through the session connection with the session identifier 10001 is sent to the tablet computer 400; the router 200 can also determine based on the session identifier 10001 that the specific message corresponds to the file transfer application of the mobile phone 100, that is, the data carried by the specific message is generated by the file transfer application of the mobile phone 100.

[0234] Session ID Serial number Message Send Status 10001 1 Message 1 Null Value 10001 2 Message 2 Null Value 10001 3 Message 3 Null Value

[0235] Table 2

[0236] The correspondence between the specific message and the sending status shown in Table 2 is exemplary. In another embodiment of the present application, the number of records contained in the correspondence in Table 2, the fields, and the specific message and the sending status may also take any other numerical values, which are not limited here.

[0237] In the embodiment of the present application, only an example is taken for explanation of establishing a session connection between the mobile phone 100 and the router 200 when files are transferred between the mobile phone 100 and the tablet computer 400; in another embodiment of the present application, while files are transferred between the mobile phone 100 and the tablet computer 400, the mobile phone 100 can also make a video call with the tablet computer 400. In this case, two session connections can be established between the mobile phone 100 and the router 200, respectively transmitting a specific message carrying file data and a specific message carrying video call data.

[0238] After the mobile phone 100 caches the specific message, the mobile phone 100 can send the specific message according to the sending mode corresponding to the data transmission state between the mobile phone 100 and the router 200. The data transmission state here can be the data transmission speed determined in step S803. Table 3 shows a correspondence between a data transmission state and a sending mode. For example, when the data transmission speed between the mobile phone 100 and the router 200 is less than 10MB / s, it means that the network transmission capacity between the mobile phone 100 and the router 200 is not good. The mobile phone 100 can send the specific message to the tablet computer 400 in a sending mode of 100 messages / s. When the data transmission speed between the mobile phone 100 and the router 200 is greater than 50MB / s, the mobile phone 100 can adjust the sending mode of sending the specific message to the tablet computer 400 to 1000 messages / s.

[0239] Serial number Data transfer speed Sending method 1 Less than 10MB / s 100 pieces / s 2 Greater than 10MB / s and less than 50MB / s 500 pieces / s 3 More than 50MB / s 1000 pieces / s

[0240] Table 3

[0241] It can be understood that in the correspondence between the data transmission speed and the sending mode shown in Table 3, the capacity of the sending message buffer area 100131 is proportional to the data transmission speed, that is, if the data transmission speed between the mobile phone 100 and the router 200 is faster, the speed of sending specific messages between the mobile phone 100 and the router 200 is also faster.

[0242] In the embodiment of the present application, the correspondence between the data transmission speed and the sending mode shown in Table 3 is exemplary, and the number of records contained in the correspondence and the data transmission speed and the sending mode can also take any other values, which are not limited here. It can be understood that the more records the correspondence between the data transmission speed and the sending mode contains, the more accurate the correspondence between the data transmission speed and the sending mode is.

[0243] It can be seen that the mobile phone 100 and the router 200 transmit messages through a session connection specifically used for transmitting specific messages, and the mobile phone 100 can adjust the sending method of transmitting specific messages in real time according to the data transmission speed between the mobile phone 100 and the router 200, thereby speeding up the transmission speed of specific messages when the data transmission speed is fast, and conversely, reducing the transmission speed of specific messages when the data transmission speed is slow, thereby improving the bandwidth utilization of the wireless network between the mobile phone 100 and the router 200.

[0244] In another embodiment of the present application, if in the above steps S802 and S803, the data transmission detection module of the message transmission service 1001 of the mobile phone 100 has not determined the data transmission status between the mobile phone 100 and the router 200, specific messages can be sent between the mobile phone 100 and the router 200 through a default sending method. The default sending method can be a pre-configured number of specific messages sent by the mobile phone 100 to the router 200 per time unit, such as: 200 / s.

[0245] After the mobile phone 100 sends the specific message, the mobile phone 100 can update the sending status of the specific message cached in the sending message cache area 100131. As shown in Table 4, the specific messages with sequence numbers 1 and 3 are sent, and the specific message with sequence number 2 fails to be sent.

[0246]

[0247]

[0248] Table 4

[0249] The correspondence between the specific message and the sending status shown in Table 4 is exemplary. In another embodiment of the present application, the number of records, fields, and the correspondence between the specific message and the sending status included in the correspondence in Table 4 may also take any other numerical values, which are not limited here.

[0250] S806: The mobile phone 100 determines whether the specific message needs to be retransmitted.

[0251] For a specific message that has been sent, the mobile phone 100 can start the timing function after the mobile phone 100 sends the specific message according to the preset waiting time. After the waiting time has passed, if the mobile phone 100 does not receive the confirmation information of the specific message that has been sent from the router 200, the mobile phone 100 determines that the specific message has failed to be sent, and the mobile phone 100 needs to retransmit the specific message. For example, the mobile phone 100 can start the timing function for the message 1 and the message 3 in Table 4 respectively to determine whether the confirmation information of the message 1 and the message 3 is received within the waiting time.

[0252] For a specific message that fails to be sent, the mobile phone 100 can find the specific message that fails to be sent in the sending message buffer area 100131 and can immediately retransmit the specific message.

[0253] If the mobile phone 100 determines that a specific message needs to be retransmitted, it enters S807, and the mobile phone 100 obtains the specific message corresponding to the message sequence number from the sending message buffer area 100131 for retransmission based on the message sequence number in the specific message field contained in the specific message; if not, the mobile phone 100 returns to S804, and the mobile phone 100 continues to obtain data and encapsulates the data into a specific message for sending.

[0254] Here, for the specific message that has been sent, the message retransmission module 10017 of the message transmission service 1001 of the mobile phone 100 can start the timing function after the mobile phone 100 sends the specific message, and monitor whether the confirmation information corresponding to the returned specific message is received within the preset waiting time, and the confirmation information can be sent by the router 200. After the mobile phone 100 receives the confirmation information corresponding to the specific message within the preset waiting time, the mobile phone 100 determines that the specific message is sent successfully; if the mobile phone 100 does not receive the confirmation information corresponding to the specific message within the preset waiting time, the mobile phone 100 determines that the specific message fails to be sent and needs to be retransmitted.

[0255] In one embodiment of the present application, the message retransmission module 10017 of the message transmission service 1001 of the mobile phone 100 can start a timing function after the mobile phone 100 sends a specific message, and monitor whether the confirmation information of the specific message is received within a preset waiting time, such as 200ms (millisecond). When the mobile phone 100 does not receive the confirmation information of the specific message for more than 200ms, the mobile phone 100 determines that the specific message has failed to be sent and needs to be retransmitted. For example, the mobile phone 100 sends the specific messages with sequence numbers 1 and 3 in Table 4 to the tablet computer 400 in sequence. If the router 200 that plays a forwarding role only receives the specific message with sequence number 1 and does not receive the specific message with sequence number 3, the router 200 will return confirmation information of the specific message with sequence number 1 to the mobile phone 100, and will not return confirmation information of the specific message with sequence number 3 to the mobile phone 100. After the mobile phone 100 sends the specific message with sequence number 3 for 200ms and does not receive confirmation information of the specific message with sequence number 3, it determines that the specific message with sequence number 3 needs to be retransmitted.

[0256] In another embodiment of the present application, the message retransmission module 10017 of the message transmission service 1001 of the mobile phone 100 can also determine whether a specific message needs to be retransmitted based on whether the difference between the sending time of one specific message and the return time of the confirmation information of another specific message in two adjacent specific messages exceeds the retransmission time threshold, without having to turn on the timing function to monitor whether the confirmation information of the specific message is received. For example, the mobile phone 100 sends specific messages with sequence numbers 1 and 3 to the tablet computer 400 in sequence. The mobile phone 100 receives confirmation information of the specific message with sequence number 3 at a return time, such as 2021-01-01 09:51:17.3629. If, at this time, the confirmation information of the specific message with sequence number 1 has not been received, and the sending time of the specific message with sequence number 1 is, for example, 2021-01-01 09:51:17.3411, the difference between the return time of the confirmation information of the specific message with sequence number 3 and the sending time of the specific message with sequence number 1 is 208ms, if the retransmission time threshold is 200ms, then the mobile phone 100 can determine to retransmit the specific message with sequence number 1. In this way, the resource consumption of the mobile phone 100 needing to turn on the timing function to monitor whether the confirmation information of the specific message is received can be reduced.

[0257] S807: The mobile phone 100 retransmits the specific message.

[0258] After the mobile phone 100 determines that a specific message needs to be retransmitted, such as Fig.11b As shown, the mobile phone 100 can search for the specific message corresponding to the message sequence number from the sending message buffer area 100131 described in step S805 according to the message sequence number of the specific message, and resend the specific message again. After the router 200 receives the specific message, the router 200 can directly forward the message to the tablet computer 400 according to the session connection between the router 200 and the tablet computer 400 for transmitting the specific message.

[0259] For example, taking the specific message with sequence number 3 in step S806 as an example, when the mobile phone 100 determines that the specific message with sequence number 3 needs to be retransmitted, the mobile phone 100 can find the specific message corresponding to the message sequence number of the specific message with sequence number 3 in the sending message buffer area 100131 described in step S805, that is, Table 4, based on the message sequence number contained in the message field of the specific message with sequence number 3, and retransmit it.

[0260] It can be understood that after the mobile phone 100 sends the specific message and receives the confirmation information returned by the router 200, the mobile phone 100 can delete the specific message cached in the sending message buffer area 100131.

[0261] It can be seen that the mobile phone 100 can directly search for and retransmit the cached specific message, thereby avoiding the need for the mobile phone 100 to re-acquire the data to be sent and encapsulate the data into a message again, thereby speeding up the process of the mobile phone 100 retransmitting the message, reducing the message forwarding delay, and further reducing the message forwarding delay between the mobile phone 100 and the router 200 and the tablet computer 400, while also reducing the CPU consumption of the mobile phone 100.

[0262] Above Figure 8 The present invention describes the process of transmitting a file from the mobile phone 100 to the tablet computer 400, the method of transmitting a message carrying file data between the mobile phone 100 and the router 200 and the method of retransmitting the message. Fig.12 A data transmission scheme is described in which the router 200 forwards a message carrying file data to the tablet computer 400 and performs message retransmission. The data transmission scheme includes:

[0263] S1201: The router 200 receives and caches a specific message sent by the mobile phone 100.

[0264] like Fig.11a As shown, the received message buffer module of the message transmission service 2001 of the router 200 configures a received message buffer area 200141 corresponding to the mobile phone 100 in the storage area of ​​the router 200, such as the memory, for caching specific messages received from the mobile phone 100. Table 5 shows a storage method in which the router 200 configures a specific message in a received message buffer area for the mobile phone 100. It can be seen that Table 5 stores the received message by establishing a corresponding relationship between the session identifier and the received message. Here, the session identifier is Figure 8 The session identifier is the same as the session identifier described in step S805, which may be the session ID of the session connection between the mobile phone 100 and the router 200, for example, 10001.

[0265] In the embodiment of the present application, when multiple electronic devices are connected to the router 200 and all send specific messages to the router 200, the router 200 can set a received message buffer area for each electronic device. For example, the mobile phone 100 and the tablet computer 400 are connected to the router 200, and the mobile phone 100 and the tablet computer 400 both send specific messages to the router 200. The router 200 can configure a received message buffer area 200141 and a received message buffer 200142 for the mobile phone 100 and the tablet computer 400, respectively.

[0266] In another embodiment of the present application, when the specific message sent by the electronic device to the router 200 comes from multiple applications of the electronic device, the electronic device can send the specific message corresponding to each application to the router 200 through the session connection corresponding to the application, that is, the session identifier of each application session connection is different. For example, the specific message sent by the mobile phone 100 to the tablet computer 400 comes from the file transfer application and the video call application of the mobile phone 100, then two session connections corresponding to the file transfer application and the video call application can be established between the router 200 and the mobile phone 100, and the session identifiers of the two session connections are different, for example: the session identifier corresponding to the file transfer application is 10001, and the session identifier corresponding to the video call application is 10002. The specific messages corresponding to the session identifier 10001 and the session identifier 10002 can be stored in the received message buffer 200141 of the router 200. The router 200 can determine the forwarding object of the specific message in the received message buffer 200141 according to the session identifier.

[0267] Serial number Received message Session ID 1 Message 1 10001 2 Message 2 10001 3 Message 3 10001

[0268] Table 5

[0269] The correspondence between the specific message and the session identifier shown in Table 5 is exemplary. In another embodiment of the present application, the number of records, fields, and the correspondence between the specific message and the session identifier included in Table 5 can also take any other numerical values, which are not limited here.

[0270] In one embodiment of the present application, the router 200 may also adjust the capacity of the received message buffer area 200141 corresponding to the mobile phone 100 in the storage area of ​​the router 200 according to the data transmission state between the mobile phone 100 and the router 200 determined in step S802, that is, the data transmission speed. For example, Table 6 shows the corresponding relationship between the data transmission speed and the capacity of the received message buffer area 200141. In Table 6, when the data transmission speed is less than or equal to 10MB / s, the capacity of the received message buffer area 200141 can cache 10 messages; when the data transmission speed is greater than 10MB / s and less than or equal to 50MB / s, the capacity of the received message buffer area 200141 can cache 100 messages; when the data transmission speed is greater than 50MB / s, the capacity of the received message buffer area 200141 can cache 1000 messages.

[0271] It can be understood that in the correspondence between the data transmission speed and the capacity of the received message buffer area shown in Table 6, the capacity of the received message buffer area can be proportional to the data transmission speed, that is, if the data transmission speed between the mobile phone 100 and the router 200 is faster, the router 200 can receive more specific messages sent by the mobile phone 100 within a unit time, such as 1s.

[0272]

[0273] Table 6

[0274] It can be understood that the correspondence between the data transmission speed and the capacity of the received message buffer shown in Table 6 is exemplary, and the number of records contained in the correspondence and the data transmission speed and the capacity of the received message buffer may also take any other values, which are not limited here.

[0275] S1202 : The router 200 determines the data transmission status between the router 200 and the tablet computer 400 .

[0276] exist Figure 8 In step S801, the message transmission services of the router 200 and the tablet computer 400 have been started. Figure 8 The data transmission status between the router 200 and the tablet computer 400 , that is, the data transmission speed between the router 200 and the tablet computer 400 is determined in the same manner as step S802 .

[0277] The router 200 may run a data transmission speed detection program having the same or similar function as the traffic service of the mobile phone 100, and may detect the amount of data received or sent between the router 200 and the tablet computer 400 per unit time, that is, the total number of bytes received or sent between the router 200 and the tablet computer 400 per unit time.

[0278] S1203: Router 200 configures a sending message buffer area according to the data transmission status.

[0279] The message transmission buffer module of the message transmission service 2001 of the router 200 can configure a corresponding message transmission buffer area for each electronic device that accesses the router 200 through wireless access and receives a specific message from the router 200. For example, the server 300 and the tablet computer 400 access the router 200, and the router 300 forwards a specific message to the server 300 and the tablet computer 400, then the router 200 can configure a message transmission buffer area for each of the server 300 and the tablet computer 400.

[0280] Taking the tablet computer 400 as an example, the router 200 can be used in the same manner as Figure 8In a similar manner to step S803, a sending message buffer area 200131 corresponding to the tablet computer 400 is configured in the memory of the router 200 through the sending message buffer module of the message transmission service 2001 of the router 200, for caching specific messages sent to the tablet computer 400. The capacity of the sending message buffer area 200131 may correspond to the data transmission speed between the router 200 and the tablet computer 400 obtained in S1202.

[0281] In another embodiment of the present application, in the above steps S1202 and S1203, the message transmission service 2001 of the router 200 may not need to determine the data transmission status between the router 200 and the tablet computer 400, and the sending message cache module of the message transmission service 2001 of the router 200 may directly set the sending message cache area 200131 in the storage area of ​​the router 200, and the capacity of the sending message cache area 200131 may be a pre-configured capacity.

[0282] S1204: After forwarding the specific message to the tablet computer 400, the router 200 caches the specific message.

[0283] Router 200 uses Figure 8 In a manner similar to step S805, through a session connection for transmitting a specific message established with the tablet computer 400, the specific message is forwarded to the tablet computer 400 using a sending method corresponding to the data transmission state determined in step S1202, and the forwarded specific message is cached in a sending message cache area 200131 corresponding to the tablet computer 400 configured in the storage area of ​​the router 200 in step S1203.

[0284] In another embodiment of the present application, in step S1204, the data transmission detection module of the message transmission service 2001 of the router 200 may not need to determine the data transmission status between the router 200 and the tablet computer 400, and the router 200 and the tablet computer 400 may send specific messages between them through a default sending method.

[0285] The specific message forwarded by the router 200 to the tablet computer 400 is sent by the mobile phone 100 to the tablet computer 400, such as Fig.11aAs shown, the router 200 can first obtain a specific message from the received message buffer area 200141 corresponding to the mobile phone 100 configured in the storage area of ​​the router 200 in step S1201, and determine that the specific message needs to be forwarded to the tablet computer 400 according to the session identifier corresponding to the specific message, that is, the session identifier of the session connection between the mobile phone 100 and the router 200; after the router 200 forwards the specific message, the router 200 caches the sending status of the specific message and the session identifier of the session connection between the router 200 and the tablet computer 400 in the sending message buffer area 200131 corresponding to the tablet computer 400.

[0286] It can be understood that in the process of the router 200 forwarding the specific message in the received message buffer area 200141 corresponding to the mobile phone 100 to the tablet computer 400 and caching it in the sent message buffer area 200131 corresponding to the tablet computer 400, the router 200 does not need to decapsulate and encapsulate the specific message, but directly obtains the specific message from the received message buffer area 200141 corresponding to the mobile phone 100, forwards it, and then caches it in the sent message buffer area 200131 corresponding to the tablet computer 400. In the process of the router 200 forwarding the specific message to the tablet computer 400, the router 200 can also copy the specific message from the received message buffer area 200141 corresponding to the mobile phone 100 to the sent message buffer area 200131 corresponding to the tablet computer 400, and delete the specific message in the received message buffer area 200141 corresponding to the mobile phone 100. Table 7 shows a storage method of a specific message in the sent message buffer area 200131 corresponding to the tablet computer 400. It can be seen that the sending message buffer area in Table 7 is the same as the sending message buffer area in Table 4, and the specific message forwarded by the router 200 to the tablet computer 400 is cached by establishing a corresponding relationship between the specific message, the sending state and the session identifier. Figure 8 The difference between the sending message buffer area 100131 in the mobile phone 100 described in step S805 is that the session identifier in the sending message buffer area 200131 corresponding to the tablet computer 400 in Table 7 is the session identifier of the session connection between the router 200 and the tablet computer 400.

[0287] Session ID Serial number Message Send Status 10003 1 Message 1 Sent 10003 2 Message 2 Send failed 10003 3 Message 3 Sent

[0288] Table 7

[0289] The correspondence between the specific message and the sending status shown in Table 7 is exemplary. In another embodiment of the present application, the number of records, fields, and the correspondence between the specific message and the sending status included in the correspondence in Table 7 can also take any other numerical values, which are not limited here.

[0290] It can be understood that the router 200 can configure a corresponding sending message buffer area in the storage area of ​​the router 200 for each electronic device that is connected to the router 200 and serves as a receiving end of a specific message. For example, for the server 300 and the tablet computer 400 that are connected to the router 200, when the server 300 and the tablet computer 400 serve as receiving ends of the specific message, the router 200 can configure a corresponding sending message buffer area for the server 300 and the tablet computer 400, respectively. Taking the tablet computer 400 as an example, if the file transfer application of the tablet computer 400 receives a specific message from the file transfer application of the mobile phone 100 through the router 200, and the session identifier of the session connection between the tablet computer 400 and the router 200 is 10003, then the sending message buffer area 200131 corresponding to the tablet computer 400 in the storage area of ​​the router 200 may include the specific message corresponding to the session identifier 10003. In another embodiment of the present application, if the file transfer application and the video call application of the tablet computer 400 receive their own specific messages from the file transfer application and the video call application of the mobile phone 100 through the router 200, and the session identifiers of the session connection used by the file transfer application and the video call application are 10003 and 10004, respectively, then the sending message buffer area 200131 corresponding to the tablet computer 400 in the storage area of ​​the router 200 may include specific messages corresponding to the session identifiers 10003 and 10004 of the above two session connections.

[0291] S1205: Router 200 determines whether the specific message needs to be retransmitted.

[0292] Router 200 can use Figure 8 The router 200 determines whether the specific message needs to be retransmitted in a similar manner to step S806. If the router 200 determines that the specific message needs to be retransmitted, it proceeds to S1206, and the router 200 obtains the specific message corresponding to the message sequence number from the corresponding sending message buffer area 200131 of the tablet computer 400 according to the message sequence number in the specific message field contained in the specific message for retransmission; if not, the router 200 returns to S1204, and the router 200 continues to forward the specific message.

[0293] S1206: Router 200 retransmits the specific message.

[0294] like Fig.11c As shown, router 200 can be used with Figure 8 The specific message is retransmitted in a similar manner to step S807. No further description is given here. After the tablet computer 400 receives the specific message, the specific message can be cached in the received message cache area 400141 set in the storage area by the message transmission service 4001 of the tablet computer 400. The tablet computer 400 can also use Fig.12 In the method of step S1201, a received message buffer area 400141 is set in a storage area of ​​the tablet computer 400, such as a memory.

[0295] S1207: The tablet computer 400 obtains and decapsulates the specific message to obtain the data carried in the specific message.

[0296] The message encapsulation module of the message transmission service 4001 of the tablet computer 400 decapsulates the specific message and obtains the data carried by the specific message. Fig.11a As shown, the tablet computer 400 adopts Figure 8 The method for decapsulating the specific message corresponding to the encapsulation of the specific message in step S804 is based on Fig.10 The specific message format described above obtains data from the data field of the specific message cached in the received message buffer area 400141, and sends the data to the application of the tablet computer 400.

[0297] In passing Figures 8 to 12 After describing the file transmission between the mobile phone 100 and the tablet computer 400 in the embodiment of the present application, and the message carrying the file data sent by the mobile phone 100 is forwarded to the tablet computer 400 by the router 200, the data transmission scheme in another embodiment of the present application is described below. In this data transmission scheme, the mobile phone 100 is performing a live video broadcast, and the mobile phone 100 and the server 300 (such as a live video application server) perform data transmission. During the data transmission process, the message carrying the data generated by the mobile phone 100 can be forwarded to the server 300 via the router 200. It can be understood that the data transmission scheme here is different from Figure 8 and Fig.12 Similar to the description Figure 8 The difference between the described data transmission scheme is that the message transmission service is not started on the server 300. When the router 200 forwards the specific message sent by the mobile phone 100 to the server 300, the router 200 needs to convert the specific message into a standard TCP message and then forward it to the server 300. This embodiment of the present application takes the data transmission between the mobile phone 100 and the server 300 as an example to illustrate the method provided by the embodiment of the present application, which is a specific implementation method when one of the sending and receiving devices is configured with the scheme and the other device is not configured with the scheme. Fig.13 As shown, the data transmission scheme includes:

[0298] S1301: The mobile phone 100 and the router 200 respectively start the message transmission service.

[0299] Here, step S1301 is Figure 8Similar to step S801, the mobile phone 100 and the router 200 can start the message transmission service 1001 and the message transmission service 2001 respectively.

[0300] S1302: The mobile phone 100 determines the data transmission status between the mobile phone 100 and the router 200.

[0301] Here, step S1302 is Figure 8 Similar to step S802 , the data transmission detection module of the message transmission service 1001 of the mobile phone 100 can determine the data transmission speed through the flow service of the framework layer of the software system of the mobile phone 100 .

[0302] S1303: The mobile phone 100 configures a sending message buffer area according to the data transmission status.

[0303] Here, step S1303 is Figure 8 The step S803 is similar to that of Fig.14a As shown, the message transmission service 1001 of the mobile phone 100 can set a message transmission buffer area 100131 in a storage area of ​​the mobile phone 100, such as a memory. The message transmission service 1001 of the mobile phone 100 can also configure the capacity of the message transmission buffer area 100131 according to the data transmission speed.

[0304] In another embodiment of the present application, in the above steps S1302 and S1303, the message transmission service 1001 of the mobile phone 100 may not need to determine the data transmission status between the mobile phone 100 and the router 200, and the sending message cache module of the message transmission service 1001 of the mobile phone 100 may directly set the sending message cache area 100131 in the storage area of ​​the mobile phone 100, and the capacity of the sending message cache area 100131 may be a pre-configured capacity.

[0305] S1304: The mobile phone 100 obtains the data to be sent, and encapsulates the data to be sent into a specific message.

[0306] Here, step S1304 is Figure 8 The data to be sent here can be video data generated by the mobile phone 100 in the live video broadcast. The mobile phone 100 acts as a sender, and the live video application of the mobile phone 100 sends video data to the live video application service of the server 300, and the message carrying the video data is forwarded by the router 200.

[0307] S1305: The mobile phone 100 buffers the specific message and sends the specific message according to the sending mode corresponding to the data transmission state.

[0308] Here, step S1305 is Figure 8Similar to step S805, the mobile phone 100 sends a specific message to the server 300 through the session connection established between the mobile phone 100 and the router 200; at the same time, the mobile phone 100 caches the sent specific message in the sent message buffer area 100131.

[0309] In another embodiment of the present application, if in the above steps S1302 and S1303, the data transmission detection module of the message transmission service 1001 of the mobile phone 100 has not determined the data transmission status between the mobile phone 100 and the router 200, a specific message can be sent between the mobile phone 100 and the router 200 through a default sending method.

[0310] S1306: The mobile phone 100 determines whether the specific message needs to be retransmitted.

[0311] Here, step S1306 is Figure 8 Similar to step S806, if the mobile phone 100 does not receive confirmation information of the specific message sent by the mobile phone 100 from the router 200, it enters S1307, and the mobile phone 100 obtains the specific message corresponding to the message sequence number from the sending message buffer area 100131 according to the message sequence number contained in the specific message for retransmission; if not, the mobile phone 100 returns to S1304, and the mobile phone 100 continues to obtain data and encapsulates the data into a specific message for sending.

[0312] S1307: The mobile phone 100 retransmits the specific message.

[0313] Here, step S1307 is Figure 8 The step S807 is similar to that of Fig.14b As shown, the mobile phone 100 can search for the specific message corresponding to the message sequence number from the sending message buffer area 100131 described in step S1305 according to the message sequence number of the specific message, and resend the specific message again; after the router 200 receives the specific message, since there is no session connection between the router 200 and the server 300 for transmitting the specific message, the router 200 can obtain the data carried by the specific message by decapsulating the specific message, and then encapsulate the data into a standard TCP message, and then forward the TCP message to the server 300.

[0314] Above Fig.13 The present invention describes the process of transmitting video data from the mobile phone 100 to the server 300, the method of transmitting a message carrying video data between the mobile phone 100 and the router 200 and the method of retransmitting the message. Fig.15 A data transmission scheme is described in which the router 200 forwards a message carrying video data to the server 300 and performs message retransmission. The data transmission scheme includes:

[0315] S1501: The router 200 receives and caches a specific message sent by the mobile phone 100.

[0316] Here, step S1501 is Fig.12 Similar to step S1201, Fig.14a As shown, the router 200 configures a received message buffer area 200141 corresponding to the mobile phone 100 in a storage area, such as a memory, for caching specific messages received from the mobile phone 100.

[0317] S1502: Router 200 configures the capacity of the sending message buffer area.

[0318] Here, step S1502 is Fig.12 The difference from the method of step S1202 is that the router 200 and the server 300 (such as a live video application server) are usually connected through a wired network, such as an optical fiber network. In this case, the capacity of the sending message buffer area 200132 corresponding to the server 300 set in the storage area of ​​the router 200 can be configured according to the bandwidth of the current wired network. For example, for a gigabit wired network, the capacity of the sending message buffer area can be configured to 10, and for a 100M wired network, the capacity of the sending message buffer area can be configured to 100. It can be understood that the corresponding relationship between the bandwidth of the wired network and the capacity of the sending message buffer area shown in step S1502 is exemplary. In another embodiment of the present application, the bandwidth of the wired network and the capacity of the sending message buffer area contained in the corresponding relationship can also take other arbitrary values, which are not limited here.

[0319] S1503: The router 200 converts the specific message into a TCP message and forwards it to the server 300.

[0320] The router 200 may first obtain a specific message from the received message buffer area 200141 corresponding to the mobile phone 100 configured in the storage area of ​​the router 200 in step S1501, and determine that the specific message needs to be forwarded to the server 300 based on the session identifier corresponding to the specific message, that is, the session identifier of the session connection between the mobile phone 100 and the router 200; after the router 200 forwards the specific message, the router 200 caches the sending status of the specific message and the session identifier of the session connection between the router 200 and the server 300 in the sending message buffer area 200132 corresponding to the server 300.

[0321] When the router 200 forwards a specific message to the server 300, the message encapsulation module 20015 of the message transmission service 2001 of the router 200 can decapsulate the specific message, such as Fig.10 The message format of the specific message shown in the figure obtains the video data carried by the specific message, and then follows Fig.10 The message format of the TCP message shown encapsulates the video data into a standard TCP message, and then forwards the TCP message to the server 300.

[0322] S1504: Router 200 determines whether the TCP message needs to be retransmitted.

[0323] Router 200 can use Fig.12 The router 200 determines whether the TCP message needs to be retransmitted in a similar manner to step S1204. If the router 200 determines that the specific message needs to be retransmitted, it proceeds to S1505, and the router 200 obtains the specific message corresponding to the message sequence number from the corresponding sending message buffer area 200132 of the server 300 according to the message sequence number of the specific message corresponding to the TCP message, and converts the specific message into a TCP message and retransmits it; if not, the router 200 returns to S1503, and the router 200 continues to forward the specific message.

[0324] S1505: Router 200 retransmits the TCP message.

[0325] Here, if Fig.14c As shown, the router 200 can search for the specific message corresponding to the message sequence number from the sending message buffer area 200132 corresponding to the server 300 according to the message sequence number of the specific message corresponding to the TCP message that needs to be retransmitted, and again convert the specific message into a TCP message for retransmission through the message encapsulation module 20015 of the message transmission service 2001 through a method similar to step S1503.

[0326] S1506: The server 300 obtains and decapsulates the TCP message, and obtains the data carried in the TCP message.

[0327] The server 300 can obtain the video data from the data field of the TCP message through the message format of the TCP message, and send the video data to the video live broadcast application service of the server 300.

[0328] Above Figures 8 to 12 The technical solution for file transmission between the mobile phone 100 and the tablet computer 400 of the embodiment of the present application is described. In the technical solution, the message carrying the file data sent by the mobile phone 100 is forwarded to the tablet computer 400 via the router 200. The following is another embodiment of the present application, in which the message returned by the tablet computer 400 to the mobile phone 100 is forwarded to the mobile phone 100 via the router 200. It can be understood that in the above technical solution, the data transmission solution between the tablet computer 400 and the router 200 can be as follows: Fig.16 As shown, this data transmission scheme is similar to Figure 8The data transmission scheme shown is similar, and the mobile phone 100, the router 200 and the tablet computer 400 have respectively started the message transmission service. The data transmission scheme includes:

[0329] S1601 : The tablet computer 400 determines the data transmission status between the tablet computer 400 and the router 200 .

[0330] Here, step S1601 is Figure 8 Similar to step S802, the data transmission status here may be the data transmission speed, and the data transmission detection module of the message transmission service 4001 of the tablet computer 400 may determine the data transmission speed through the flow service of the framework layer of the software system of the tablet computer 400.

[0331] S1602: The tablet computer 400 configures a sending message buffer area according to the data transmission status.

[0332] Here, step S1602 is Figure 8 The step S803 is similar to that of Fig.17a As shown, the message transmission service 4001 of the tablet computer 400 can set a message transmission buffer area 400131 in a storage area of ​​the tablet computer 400, such as a memory. The message transmission service 1001 of the tablet computer 400 can also configure the capacity of the message transmission buffer area 400131 according to the data transmission speed.

[0333] In another embodiment of the present application, in the above steps S1601 and S1602, the data transmission detection module of the message transmission service 4001 of the tablet computer 400 may not need to determine the data transmission status between the tablet computer 400 and the router 200, and the sending message cache module of the message transmission service 4001 of the tablet computer 400 may directly set the sending message cache area 400131 in the storage area of ​​the tablet computer 400, and the capacity of the sending message cache area 400131 may be a pre-configured capacity.

[0334] S1603: The tablet computer 400 obtains the response data and encapsulates the response data into a specific message.

[0335] Here, step S1603 is Figure 8 The response data here may be response data corresponding to the data sent by the mobile phone 100 to the tablet computer 400. For example, in the process of transferring a file from the mobile phone 100 to the tablet computer 400, the response data may be response data after the tablet computer 400 confirms receipt of the file. The tablet computer 400 encapsulates the response data into a specific message.

[0336] S1604: The tablet computer 400 buffers the specific message and sends the specific message according to the sending mode corresponding to the data transmission state.

[0337] Here, step S1604 is Figure 8 Similar to step S805, the tablet computer 400 sends a specific message to the server 300 through the session connection established with the router 200; at the same time, the tablet computer 400 caches the sent specific message in the sent message buffer area 400131.

[0338] In another embodiment of the present application, if in the above steps S1601 and S1602, the data transmission detection module of the message transmission service 4001 of the tablet computer 400 has not determined the data transmission status between the mobile phone 100 and the router 200, a specific message can be sent between the tablet computer 400 and the router 200 through a default sending method.

[0339] S1605: The tablet computer 400 determines whether the specific message needs to be retransmitted.

[0340] Here, step S1605 is Figure 8 Similar to step S806, if the tablet computer 400 does not receive confirmation information of the specific message sent by the tablet computer 400 from the router 200, it enters S1606, and the tablet computer 400 obtains the specific message corresponding to the message sequence number from the sending message buffer area 400131 according to the message sequence number contained in the specific message for retransmission; if not, the tablet computer 400 returns to S1603, and the tablet computer 400 continues to encapsulate the response data into a specific message for sending.

[0341] S1606: The tablet computer 400 retransmits the specific message.

[0342] Here, step S1606 is Figure 8 The step S807 is similar to that of Fig.17b As shown, the tablet computer 400 can search for the specific message corresponding to the message sequence number from the sending message buffer area 400131 described in step S1604 according to the message sequence number of the specific message, and resend the specific message again.

[0343] Above Fig.16 A method for transmitting and retransmitting messages between a tablet computer 400 and a router 200 is described below. Fig.18 A data transmission scheme for forwarding a message from the router 200 to the mobile phone 100 and retransmitting the message is described. The data transmission scheme includes:

[0344] S1801: The router 200 receives and caches a specific message sent by the tablet computer 400.

[0345] Here, step S1801 is Fig.12 Similar to step S1201, Fig.17b As shown, the router 200 configures a received message buffer area 200142 corresponding to the tablet computer 400 in a storage area, such as a memory, for caching specific messages received from the tablet computer 400. In an embodiment of the present application, the received message buffer area 200142 can cache specific messages sent by the tablet computer 400 through a session identifier, such as a session ID, that the router 200 can connect to the tablet computer 400 through a session.

[0346] S1802: The router 200 determines the data transmission status between the router 200 and the mobile phone 100.

[0347] Here, step S1802 is Fig.12 Similar to step S1202, the data transmission status may be a data transmission speed. The router 200 may detect the amount of data received or sent between the router 200 and the mobile phone 100 within a unit time through a data transmission speed detection program, that is, the total number of bytes received or sent between the router 200 and the mobile phone 100 within a unit time.

[0348] S1803: Router 200 configures a sending message buffer area according to the data transmission status.

[0349] Taking the mobile phone 100 as an example, the router 200 can be used with Fig.12 In a similar manner to step S1203, a sending message buffer area 200133 of the mobile phone 100 corresponding to the sending message buffer area 200133 of the mobile phone 100 is configured in the memory of the router 200 through the sending message buffer module of the message transmission service 2001 of the router 200, and the capacity of the sending message buffer area 200133 of the mobile phone 100 can correspond to the data transmission speed between the router 200 and the mobile phone 100 obtained in S1802.

[0350] In another embodiment of the present application, in the above steps S1802 and S1803, the router 200 may not need to determine the data transmission status between the router 200 and the mobile phone 100, and the sending message cache module of the sending message cache module of the message transmission service 2001 of the router 200 may directly set the sending message cache area 200133 in the storage area of ​​the router 200, and the capacity of the sending message cache area 200133 may be a pre-configured capacity.

[0351] S1804: The router 200 caches the specific message after forwarding it to the mobile phone 100.

[0352] Router 200 uses Fig.12In the same manner as step S1204, the specific message is forwarded to the mobile phone 100 through the session connection established with the mobile phone 100 for transmitting the specific message, and the forwarded specific message is cached in the sending message cache area 200133 corresponding to the mobile phone 100 configured in the storage area of ​​the router 200 in step S1803.

[0353] S1805: Router 200 determines whether the specific message needs to be retransmitted.

[0354] Router 200 can use Fig.12 The router 200 determines whether the specific message needs to be retransmitted in the same manner as step S1205. If the router 200 determines that the specific message needs to be retransmitted, it proceeds to S1806, and the router 200 obtains the specific message corresponding to the message sequence number from the corresponding sending message buffer area 200133 of the mobile phone 100 according to the message sequence number in the specific message field contained in the specific message for retransmission; if not, the router 200 returns to S1804, and the router 200 continues to forward the specific message.

[0355] S1806: Router 200 retransmits the specific message.

[0356] like Fig.17c As shown, router 200 can be used with Fig.12 The specific message is retransmitted in the same manner as step S1206. No further details are given here. After the mobile phone 100 receives the specific message, the specific message can be cached in the received message cache area 100141 set in the storage area of ​​the mobile phone 100. The mobile phone 100 can also use Fig.12 In the method of step S1201, a received message buffer area 100141 is set in a storage area of ​​the mobile phone 100, such as a memory.

[0357] S1807: The mobile phone 100 obtains and decapsulates the specific message, and obtains the data carried by the specific message.

[0358] The message encapsulation module of the message transmission service 1001 of the mobile phone 100 decapsulates the specific message and obtains the data carried by the specific message. Fig.17a As shown, the mobile phone 100 adopts Fig.12 The method is opposite to the method of encapsulating the specific message in step S1207, obtaining data from the data field of the specific message cached in the received message buffer area 100141, and sending the data to the application of the mobile phone 100.

[0359] Above Figures 13 to 15The data transmission scheme of the mobile phone 100 in the embodiment of the present application is described. In this technical scheme, the mobile phone 100 and the server 300 (for example, a video live application server) perform data transmission. During the data transmission process, the message carrying data generated by the mobile phone 100 can be forwarded to the server 300 via the router 200. The following introduces a technical scheme in which the message returned by the server 300 to the mobile phone 100 is forwarded to the mobile phone 100 via the router 200 in another embodiment of the present application. It can be understood that in this technical scheme, the data transmission scheme between the server 300 and the router 200 can be as follows: Fig.19 As shown, the message transmission service is not started on the server 300, and the server 300 and the router 200 can use the standard TCP message data transmission method, that is, after the router 200 receives the TCP message sent by the server 300, the router 200 needs to convert the TCP message into a specific message and then forward it to the mobile phone 100. Fig.19 As shown, the data transmission scheme includes:

[0360] S1901: The server 300 sends a TCP message to the router 200.

[0361] like Fig.20a As shown, the server 300 can encapsulate the data returned by the application service to the mobile phone 100 into a TCP message through the TCP module and the IP module, for example, the bullet screen and comments generated by the video live application service during the video live broadcast. The server 300 can send the TCP message to the router 200 through the session connection of the TCP message.

[0362] S1902: The server 300 determines whether the TCP message needs to be retransmitted.

[0363] If the server 300 does not receive confirmation information of the TCP message sent by the server 300 from the router 200, it enters S1903, the server 300 re-acquires the data, encapsulates the data into a TCP message and retransmits it; if not, the server 300 returns to S1901, and the server 300 continues to encapsulate the data into a TCP message and send it.

[0364] S1903: The server 300 retransmits the TCP message.

[0365] like Fig.20b As shown, the server 300 can obtain data from the application service again, and re-encapsulate it into a TCP message and then retransmit it.

[0366] Above Fig.19 The method for transmitting and retransmitting messages between the server 300 and the router 200 is described below. Fig.21A data transmission scheme for forwarding a message from the router 200 to the mobile phone 100 and retransmitting the message is described. The data transmission scheme includes:

[0367] S2101: Router 200 receives a TCP message, converts the TCP message into a specific message, and caches the message.

[0368] The TCP module and IP module of the router 200 first decapsulate the TCP message and obtain the data carried by the TCP message. The message encapsulation module 20015 of the message transmission service 2001 of the router 200 encapsulates the data into a specific message.

[0369] like Fig.20b As shown, the router 200 configures a received message buffer area 200143 corresponding to the server 300 in a storage area, such as a memory, for caching a specific message received from the server 300. In an embodiment of the present application, the received message buffer area 200143 can cache a specific message converted from a TCP message sent by the server 300 through a session identifier, such as a session ID, of the session connection between the router 200 and the server 300.

[0370] S2102: The router 200 determines the data transmission status between the router 200 and the mobile phone 100.

[0371] Here step S2101 is Fig.12 Similar to step S1202, the data transmission status may be a data transmission speed. The router 200 may detect the amount of data received or sent between the router 200 and the mobile phone 100 within a unit time through a data transmission speed detection program, that is, the total number of bytes received or sent between the router 200 and the mobile phone 100 within a unit time.

[0372] S2103: Router 200 configures a sending message buffer area according to the data transmission status.

[0373] Taking the mobile phone 100 as an example, the router 200 can be used with Fig.12 In a manner similar to step S1203, a sending message buffer area 200133 corresponding to the mobile phone 100 is configured in the memory of the router 200 through the sending message buffer module of the message transmission service 2001 of the router 200, and the capacity of the sending message buffer area 200133 of the mobile phone 100 can correspond to the data transmission speed between the router 200 and the mobile phone 100 obtained in S2001.

[0374] In another embodiment of the present application, in the above steps S2102 and S2103, the router 200 may not need to determine the data transmission status between the router 200 and the mobile phone 100, and the sending message cache module of the sending message cache module of the message transmission service 2001 of the router 200 may directly set the sending message cache area 200133 in the storage area of ​​the router 200, and the capacity of the sending message cache area 200133 may be a pre-configured capacity.

[0375] S2104: The router 200 caches the specific message after forwarding the specific message to the mobile phone 100.

[0376] Router 200 uses Fig.12 In the same manner as step S1204, the specific message is forwarded to the mobile phone 100 through the session connection established with the mobile phone 100 for transmitting the specific message, and the forwarded specific message is cached in the sending message cache area 200133 corresponding to the mobile phone 100 configured in the storage area of ​​the router 200 in step S2002.

[0377] S2105: Router 200 determines whether the specific message needs to be retransmitted.

[0378] Router 200 can use Fig.12 The router 200 determines whether the specific message needs to be retransmitted in the same manner as step S1205. If the router 200 determines that the specific message needs to be retransmitted, it proceeds to S2106, and the router 200 obtains the specific message corresponding to the message sequence number from the corresponding sending message buffer area 200133 of the mobile phone 100 according to the message sequence number in the specific message field contained in the specific message for retransmission; if not, the router 200 returns to S2104, and the router 200 continues to forward the specific message.

[0379] S2105: Router 200 retransmits the specific message.

[0380] like Fig.20c As shown, router 200 can be used with Fig.12 The specific message is retransmitted in the same manner as step S1206. No further details are given here. After the mobile phone 100 receives the specific message, the specific message can be cached in the received message cache area 100141 set in the storage area of ​​the mobile phone 100. The mobile phone 100 can also use Fig.12 In the method of step S1201, a received message buffer area 100141 is set in a storage area of ​​the mobile phone 100, such as a memory.

[0381] S2107: The mobile phone 100 obtains and decapsulates the specific message, and obtains the data carried by the specific message.

[0382] The message encapsulation module of the message transmission service 1001 of the mobile phone 100 decapsulates the specific message and obtains the data carried by the specific message. Fig.20a As shown, the mobile phone 100 adopts Fig.12 The method is opposite to the method of encapsulating the specific message in step S1207, obtaining data from the data field of the specific message cached in the received message buffer area 100141, and sending the data to the application of the mobile phone 100, such as a video live broadcast application.

[0383] Above Figures 8 to 21 In one embodiment of the present application, a technical solution for data transmission between multiple electronic devices through a router is shown. It can be understood that in another embodiment of the present application, the number of electronic devices and routers can be greater than two. For example, the mobile phone 100 and the tablet computer 400 are connected to the router 201 and the router 202 respectively, and the router 201 and the router 202 can be connected via wired or wireless connection. The data transmission method between the mobile phone 100 and the tablet computer 400 includes:

[0384] The mobile phone 100, the tablet computer 400, the router 201 and the router 202 respectively run their own message transmission services; between the mobile phone 100 and the router 201, the same Figure 8 The specific message is stored, sent and retransmitted in a similar manner; a corresponding session connection is established between router 201 and router 202 for specific messages from different applications, and router 201 can also configure a corresponding sending message buffer area of ​​router 202 for storing specific messages, so as to forward the specific message from router 201 to router 202. When router 201 needs to retransmit a specific message to router 202, router 201 can directly search and retransmit the specific message from the sending message buffer area corresponding to router 202; between router 202 and tablet computer 400, the same Fig.12 In a similar manner, the tablet computer 400 can also store, send and retransmit specific messages according to Fig.10 The specific message format shown obtains data from the data field of the specific message and sends the data to the application of the tablet computer 400.

[0385] It should be understood that although the terms "first", "second", etc. may be used herein to describe various features, these features should not be limited by these terms. These terms are used only to distinguish and should not be understood as indicating or implying relative importance. For example, a first feature may be referred to as a second feature, and similarly a second feature may be referred to as a first feature without departing from the scope of the exemplary embodiments.

[0386] In addition, various operations will be described as multiple separate operations in a manner that is most helpful for understanding the illustrative embodiments; however, the order of description should not be interpreted as implying that these operations must rely on the order of description, and many of the operations can be implemented in parallel, concurrently, or simultaneously. In addition, the order of the operations can also be rearranged. When the described operations are completed, the process can be terminated, but there can also be additional operations not included in the drawings. The process can correspond to a method, function, procedure, subroutine, subprogram, etc.

[0387] References in the specification to "one embodiment," "an embodiment," "an illustrative embodiment," etc. indicate that the described embodiment may include a particular feature, structure, or property, but each embodiment may or may not necessarily include the particular feature, structure, or property. Moreover, these phrases are not necessarily directed to the same embodiment. In addition, when particular features are described in conjunction with a specific embodiment, the knowledge of those skilled in the art can affect the combination of these features with other embodiments, whether or not these embodiments are explicitly described.

[0388] Unless the context dictates otherwise, the terms "comprising," "having," and "including" are synonymous. The phrase "A / B" means "A or B." The phrase "A and / or B" means "(A), (B), or (A and B)."

[0389] As used herein, the term "module" may refer to, be part of, or include: a memory (shared, dedicated, or group) for running one or more software or firmware programs, an application-specific integrated circuit (ASIC), an electronic circuit and / or processor (shared, dedicated, or group), a combinational logic circuit, and / or other suitable components that provide the described functionality.

[0390] In the accompanying drawings, some structural or method features may be shown in a specific arrangement and / or order. However, it should be understood that such a specific arrangement and / or order is not required. Instead, in some embodiments, these features may be described in a manner and / or order different from that shown in the illustrative drawings. In addition, the structural or method features included in a specific figure do not mean that all embodiments need to include such features. In some embodiments, these features may not be included, or these features may be combined with other features.

[0391] The embodiments of the present application are described in detail above in conjunction with the accompanying drawings, but the use of the technical solution of the present application is not limited to the various applications mentioned in the embodiments of the present patent. Various structures and variations can be easily implemented with reference to the technical solution of the present application to achieve the various beneficial effects mentioned herein. Various changes made within the knowledge of ordinary technicians in the field without departing from the purpose of the present application should all fall within the scope of the patent application.

Claims

1. A data transmission method, applied to a system including a first electronic device and a second electronic device, characterized in that: The method comprises: Establishing a first session connection between the first electronic device and the second electronic device; The first electronic device is configured with a first sent message buffer area, wherein the first sent message buffer area is used to buffer a first specific message sent to the second electronic device through the first session connection, the first specific message is a message obtained by encapsulating first application data in a specific message encapsulation method different from the TCP message encapsulation method, and the final destination receiving device of the first application data is a third electronic device different from the second electronic device; The second electronic device is configured with a first received message buffer area, wherein the first received message buffer area is used to buffer the first specific message sent by the first electronic device and received through the first session connection; The first electronic device sends the first specific message to the second electronic device through the first session connection; When the first electronic device determines that the first specific message needs to be resent, the first electronic device obtains the first specific message from the first sent message buffer area and resends the first specific message; Among them, when the length of the first specific message is the same as the length of the standard TCP message, the number of application data bytes that the first specific message can carry is greater than the number of application data bytes that the standard TCP message can carry.

2. The method according to claim 1, characterized in that: The first electronic device configures a first sending message buffer area, specifically including: The first electronic device configures the first message sending buffer area of ​​a size corresponding to the data transmission speed between the first electronic device and the second electronic device according to the data transmission speed between the first electronic device and the second electronic device.

3. The method according to claim 1, characterized in that The second electronic device configures a first received message buffer area, specifically including: The second electronic device configures the first received message buffer area of ​​a size corresponding to the data transmission speed between the first electronic device and the second electronic device according to the data transmission speed between the first electronic device and the second electronic device.

4. The method according to claim 1, characterized in that: The first specific message includes a specific message field, and the specific message field is used to identify a sequence number and / or a sending time corresponding to the first specific message.

5. The method according to claim 1, characterized in that The situation where the first electronic device needs to resend the first specific message includes: The first electronic device receives a retransmission request corresponding to the first specific message sent by the second electronic device, or the first electronic device determines that confirmation information corresponding to the first specific message is not received due to timeout.

6. The method according to claim 1, characterized in that The method further comprises: When the first electronic device determines that the first specific message is sent successfully, the first electronic device deletes the first specific message from the first sent message buffer area.

7. The method according to claim 1, characterized in that The method further comprises: After the second electronic device receives the first specific message, the second electronic device stores the first specific message in the first received message buffer area.

8. The method according to claim 1, characterized in that The method further comprises: The second electronic device obtains the first specific message from the first received message buffer area, and decapsulates the first specific message using a specific message decapsulation method corresponding to the specific message encapsulation method to obtain the first application data; The second electronic device encapsulates the first application data using the TCP message encapsulation method to obtain a first TCP message, and sends the first TCP message.

9. The method according to claim 1, characterized in that: The method further comprises: The second electronic device copies the first specific message in the first received message buffer area to a second sent message buffer area, wherein the second sent message buffer area is used to cache the first specific message sent to the third electronic device through a second session connection, and the second session connection is a session connection established between the second electronic device and the third electronic device; The second electronic device deletes the first specific message in the first received message buffer area.

10. The method according to claim 9, characterized in that The method further comprises: The second electronic device sends the first specific message to the third electronic device through the second session connection.

11. The method according to any one of claims 1 to 10, characterized in that The first electronic device is a terminal device, and the second electronic device is a router.

12. A data transmission method, applied to a first electronic device, characterized in that: The method comprises: Establishing a first session connection between the first electronic device and the second electronic device; The first electronic device is configured with a first sent message buffer area, wherein the first sent message buffer area is used to buffer a first specific message sent to the second electronic device through the first session connection, the first specific message is a message obtained by encapsulating first application data in a specific message encapsulation method different from the TCP message encapsulation method, and the final destination receiving device of the first application data is a third electronic device different from the second electronic device; The first electronic device sends the first specific message to the second electronic device through the first session connection; When the first electronic device determines that the first specific message needs to be resent, the first electronic device obtains the first specific message from the first sent message buffer area and resends the first specific message; Among them, when the length of the first specific message is the same as the length of the standard TCP message, the number of application data bytes that the first specific message can carry is greater than the number of application data bytes that the standard TCP message can carry.

13. The method according to claim 12, characterized in that The first electronic device configures a first sending message buffer area, specifically including: The first electronic device configures the first message sending buffer area of ​​a size corresponding to the data transmission speed between the first electronic device and the second electronic device according to the data transmission speed between the first electronic device and the second electronic device.

14. The method according to claim 12, characterized in that The first specific message includes a specific message field, and the specific message field is used to identify a sequence number and / or a sending time corresponding to the first specific message.

15. The method according to claim 12, characterized in that The situation where the first electronic device needs to resend the first specific message includes: The first electronic device receives a retransmission request corresponding to the first specific message sent by the second electronic device, or the first electronic device determines that confirmation information corresponding to the first specific message is not received due to timeout.

16. The method according to claim 12, characterized in that The method further comprises: When the first electronic device determines that the first specific message is sent successfully, the first electronic device deletes the first specific message from the first sent message buffer area.

17. The method according to any one of claims 12 to 16, characterized in that: The first electronic device is a terminal device.

18. A data transmission method, applied to a second electronic device, characterized in that: The method comprises: Establishing a first session connection between the second electronic device and the first electronic device; The second electronic device is configured with a first received message buffer area, wherein the first received message buffer area is used to buffer a first specific message sent by the first electronic device and received through the first session connection, the first specific message being a message obtained by encapsulating first application data in a specific message encapsulation method different from the TCP message encapsulation method, and a final destination receiving device of the first application data is a third electronic device different from the second electronic device; The second electronic device receives the first specific message through the first session connection, and stores the first specific message in the first received message buffer area; Among them, when the length of the first specific message is the same as the length of the standard TCP message, the number of application data bytes that the first specific message can carry is greater than the number of application data bytes that the standard TCP message can carry.

19. The method according to claim 18, characterized in that The second electronic device configures a first received message buffer area, specifically including: The second electronic device configures the first received message buffer area of ​​a size corresponding to the data transmission speed between the first electronic device and the second electronic device according to the data transmission speed between the first electronic device and the second electronic device.

20. The method according to claim 18, characterized in that The method further comprises: The second electronic device sends confirmation information corresponding to the first specific message to the first electronic device.

21. The method according to claim 18, characterized in that The first specific message includes a specific message field, the specific message field includes a sequence number and / or a sending time, and the method further includes: The second electronic device determines whether to send a retransmission request to the first electronic device according to the sequence number and / or the sending time.

22. The method according to claim 18, characterized in that The method further comprises: The second electronic device obtains the first specific message from the first received message buffer area, and decapsulates the first specific message in a decapsulation manner corresponding to the encapsulation manner of the first specific message to obtain first application data; The second electronic device encapsulates the first application data using the TCP message encapsulation method to obtain a first TCP message, and sends the first TCP message.

23. The method according to claim 18, characterized in that The method further comprises: The second electronic device copies the first specific message in the first received message buffer area to a second sent message buffer area, wherein the second sent message buffer area is used to cache the first specific message sent to the third electronic device through a second session connection, and the second session connection is a session connection established between the second electronic device and the third electronic device; The second electronic device deletes the first specific message in the first received message buffer area; The second electronic device sends the first specific message to the third electronic device through the second session connection.

24. The method according to any one of claims 18 to 23, characterized in that The second electronic device is a router.

25. An electronic device, characterized in that: It includes at least one processor and a memory; wherein the memory is used to store computer-executable instructions; when the electronic device is running, the at least one processor executes the computer-executable instructions stored in the memory, so that the electronic device executes the method described in any one of claims 12 to 17, or executes the method described in any one of claims 18 to 24.

26. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes computer instructions, and when the computer instructions are executed on an electronic device, the electronic device executes the method of any one of claims 12 to 17, or executes the method of any one of claims 18 to 24.

27. A computer program product, characterized in that The computer program product includes computer instructions, and when the computer instructions are executed on an electronic device, the electronic device executes the method according to any one of claims 12 to 17, or executes the method according to any one of claims 18 to 24.

28. A chip system, characterized in that: The chip system includes at least one processor and at least one interface circuit, and the at least one interface circuit is used to perform transceiver functions and send instructions to the at least one processor. When the at least one processor executes the instructions, the electronic device containing the chip system executes the method described in any one of claims 12-17, or executes the method described in any one of claims 18-24.

Citation Information

Patent Citations

  • Data transmission method and apparatus

    CN107277853A

  • Message transmission method and device

    CN110830356A