WO2020140729A1 - 数据传输方法、装置、计算机可读介质及电子设备 - Google Patents
数据传输方法、装置、计算机可读介质及电子设备 Download PDFInfo
- Publication number
- WO2020140729A1 WO2020140729A1 PCT/CN2019/125125 CN2019125125W WO2020140729A1 WO 2020140729 A1 WO2020140729 A1 WO 2020140729A1 CN 2019125125 W CN2019125125 W CN 2019125125W WO 2020140729 A1 WO2020140729 A1 WO 2020140729A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data packet
- data
- channel
- address information
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1006—Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/086—Load balancing or load distribution among access entities
- H04W28/0861—Load balancing or load distribution among access entities between base stations
- H04W28/0865—Load balancing or load distribution among access entities between base stations of different Radio Access Technologies [RATs], e.g. LTE® or Wi-Fi®
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/086—Load balancing or load distribution among access entities
- H04W28/0866—Load balancing or load distribution among access entities between wireless and wire-based access points, e.g. via LTE and via DSL connected access points
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/0875—Load balancing or load distribution to or through Device to Device [D2D] links, e.g. direct-mode links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/22—Communication route or path selection, e.g. power-based or shortest path routing using selective relaying for reaching a BTS [Base Transceiver Station] or an access point
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/30—Connection release
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0017—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
- H04L1/0018—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement based on latency requirement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0023—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
- H04L1/0026—Transmission of channel quality indication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/02—Arrangements for detecting or preventing errors in the information received by diversity reception
- H04L1/04—Arrangements for detecting or preventing errors in the information received by diversity reception using frequency diversity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Definitions
- the present application relates to the field of computers and communication technologies, and in particular, to a data transmission method, device, computer-readable medium, and electronic equipment.
- Wi-Fi Wireless Fidelity
- Mobile communication networks such as 3G/4G/5G are less susceptible to interference due to the narrower spectrum, but data transmission needs to pass through the operator’s access layer, which in turn will result in higher latency, and will also be affected by the deployment and Capacity causes high latency and congestion problems.
- An embodiment of the present application provides a data transmission method, which is executed by a server and includes: receiving a first data packet sent by a first device through multiple data channels; parsing the first data packet to obtain address information of the first device And aggregate the first data packet according to the data packet header of the first data packet to obtain a second data packet; replace the source address information of the second data packet with specified address information to obtain third data Packet; send the third data packet to a second device, wherein the second device is a device that the first device needs to access.
- An embodiment of the present application provides a data transmission apparatus, including: a receiving unit, configured to receive a first data packet sent by a first device through multiple data channels; a first processing unit, configured to parse the first data packet to obtain The address information of the first device, and performing aggregation processing on the first data packet according to the data packet header of the first data packet to obtain a second data packet; a second processing unit is used to convert the second data The source address information of the packet is replaced with the specified address information to obtain a third data packet; a sending unit is used to send the third data packet to a second device, where the second device is the first device that needs access device of.
- An embodiment of the present application further provides a computer-readable medium on which a computer program is stored, and when the computer program is executed by a processor, the data transmission method as described in the foregoing embodiment is implemented.
- An embodiment of the present application also provides an electronic device, including: one or more processors; a storage device, configured to store one or more programs, when the one or more programs are used by the one or more processors When executed, the one or more processors are caused to implement the data transmission method as described in the above embodiments.
- FIG. 1 shows a schematic diagram of an exemplary system architecture to which the technical solutions of the embodiments of the present application can be applied;
- FIG. 2 schematically shows a flowchart of a data transmission method according to an embodiment of the present application
- FIG. 3 schematically shows a flowchart of a data transmission method according to an embodiment of the present application
- FIG. 4 schematically shows a flowchart of determining a fourth data packet that needs to be sent to a first device from data packets sent by a second device according to an embodiment of the present application
- FIG. 5 shows a schematic structural diagram of a dual-channel communication system according to an embodiment of the present application
- FIG. 6 shows a schematic structural diagram of a dual-channel communication system according to an embodiment of the present application.
- FIG. 8 shows a schematic diagram of adding a dual-channel header to an ip packet by a dual-channel client according to an embodiment of the present application
- FIG. 9 schematically shows a flowchart of processing a received data packet by a dual-channel client according to an embodiment of the present application
- FIG. 10 schematically shows a flowchart of interaction between a dual-channel proxy server and an application server according to an embodiment of the present application
- FIG. 11 schematically shows an interaction flowchart between a dual-channel proxy server and a dual-channel load balancing server according to an embodiment of the present application
- FIG. 12 shows a schematic diagram of a dual-channel system composed of a wireless local area network channel and a wired channel according to an embodiment of the present application
- FIG. 13 shows a schematic diagram of a dual-channel system composed of a wireless local area network channel and a Bluetooth channel according to an embodiment of the present application
- FIG. 15 shows a schematic structural diagram of a computer system suitable for implementing an electronic device according to an embodiment of the present application.
- Example embodiments will now be described more fully with reference to the drawings.
- the example embodiments can be implemented in various forms and should not be construed as being limited to the examples set forth herein; on the contrary, providing these embodiments makes the application more comprehensive and complete, and fully conveys the concept of the example embodiments For those skilled in the art.
- FIG. 1 shows a schematic diagram of an exemplary system architecture to which the technical solutions of the embodiments of the present application can be applied.
- the system architecture may include a terminal device 101, a multi-channel proxy server 102, and an application server 103.
- the multi-channel proxy server 102 is used to aggregate the data sent by the terminal device 101 through multiple data channels and send it to the application server 103, and is used to return the data sent by the application server 103 to the terminal device 101 through multiple data channels.
- the terminal device 101 may be one or more of a smart phone, a tablet computer and a portable computer, and may also be a desktop computer or the like.
- terminal devices 101, multi-channel proxy servers 102, and application servers 103 in FIG. 1 are only schematic. According to implementation requirements, there may be any number of terminal devices 101, multi-channel proxy server 102, and application server 103.
- the application server 103 may be a game server.
- the game server may be a single server or a server cluster composed of multiple servers.
- the multi-channel proxy server 102 may send the smart phone to the smart phone after receiving the link data sent by the smart phone Assign a virtual port, and then associate the virtual port with the real address information of the smartphone, and record the VIP (Virtual IP) of the application server accessed by the smartphone.
- VIP Virtual IP
- the multi-channel proxy server 102 When the multi-channel proxy server 102 receives the application service data packets sent by the smartphone through multiple data channels, it performs aggregation processing (such as deduplication processing), and then replaces the source address information of the application service data packets after deduplication processing with multiple The address information (including the aforementioned virtual port) of the channel proxy server 102 is further sent to the application server 103.
- the above multiple data channels may include a wireless local area network channel such as a Wi-Fi channel and a mobile communication channel such as a 4G channel.
- the multi-channel proxy server 102 After the multi-channel proxy server 102 receives the data packet sent by the application server 103, it filters out the data packets that need to be sent to the smartphone according to the source address information of the data packet and the previously recorded VIP information, and then according to the recorded virtual port and The real address information of the smart phone modifies the destination address information of the filtered data packet to the real address information of the smart phone, and then can be sent to the smart phone through multiple data channels.
- the technical solutions of the embodiments of the present application can jointly transmit data packets through multiple data channels to ensure the transmission stability of the data packets, effectively solve the problems of high packet loss rate and high delay during data transmission, and can achieve full
- the multi-channel data transmission process of the stack meets the business needs in various communication scenarios.
- FIG. 2 schematically shows a flowchart of a data transmission method according to an embodiment of the present application.
- the data transmission method may be executed by a server, and the server may be a proxy server, for example, may be the multi-channel shown in FIG. 1 Proxy server 102.
- the data transmission method includes at least steps S210 to S240, which are described in detail as follows:
- step S210 a first data packet sent by a first device through multiple data channels is received.
- the multiple data channels may include two or more of the following data channels: Wi-Fi channel, Bluetooth channel, wired channel, mobile communication network (such as 3G/4G/5G, etc.) Data channel etc.
- the data packets sent by the first device through multiple data channels may be identical; or a data channel may send a full amount of data packets, and other data channels send a non-full amount of data packets (such as every 5 Only two data packets are sent, etc.); it is also possible to send incomplete data packets by multiple data channels separately, so that the receiver can perform aggregation processing to obtain a complete data packet.
- the first data packet sent by the first device may be a TCP (Transmission Control Protocol) data packet, or a UDP (User Datagram Protocol, user datagram protocol) data packet, Or it can be an IP packet.
- TCP Transmission Control Protocol
- UDP User Datagram Protocol, user datagram protocol
- a data message for resetting the connection is sent to the first device to ensure that the first device can reestablish the connection with the multi-channel proxy server as soon as possible.
- the multi-channel proxy server when the multi-channel proxy server receives a data packet (such as a fin message) that disconnects the TCP connection sent by the first device, it can delete the stored data with the first device after a predetermined period of time Related information (such as address information of the first device, information of the virtual port allocated to the first device, address information that the first device needs to access, etc.).
- a data packet such as a fin message
- Related information such as address information of the first device, information of the virtual port allocated to the first device, address information that the first device needs to access, etc.
- step S220 the first data packet is parsed to obtain the address information of the first device, and the first data packet is aggregated according to the data packet header of the first data packet to obtain a second data packet.
- the address information of the first device may include an intranet IP (Internet Protocol) address and intranet port information of the first device.
- intranet IP Internet Protocol
- the aggregation processing of the first data packet according to the data packet header of the first data packet may be deduplication processing and/or integration processing of the data packet sent by the first device through multiple data channels, In order to get the full and non-duplicate data packets. For example, according to the packet sequence number in the data packet header of the first data packet, deduplication processing (such as deleting a data packet with a repeated packet sequence number) and/or integration processing (such as integrating data packets with different packet sequence numbers).
- step S230 the source address information of the second data packet is replaced with designated address information to obtain a third data packet.
- the specified address information may include the IP address of the multi-channel proxy server and virtual port information allocated by the multi-channel proxy server to the first device.
- the multi-channel proxy server may store the virtual port information in association with the real address information of the first device, and when receiving data packets sent by other devices, the multi-channel proxy server may The virtual port information included in the data packet determines whether the data packet is a data packet sent to the first device.
- step S240 the third data packet is sent to the second device.
- the second device may be a device that the first device needs to access, such as an application server.
- the first data packet sent by the first device may be parsed to obtain address information that the first device needs to access, and then the second device may be determined according to the address information that the first device needs to access.
- the address information to be accessed by the first device may be a VIP of the application server, where one VIP of the application server corresponds to one first device.
- the multi-channel proxy server may also set the maximum segment length of the data packet sent by the second device. For example, by setting the mss field of the TCP message protocol to set the maximum message segment length.
- the technical solution of the embodiment shown in FIG. 2 enables the transmission of data packets through multiple data channels to ensure the transmission stability of the data packets, effectively solving the problems of high packet loss rate and high delay in the data transmission process, and the aggregation process It can also ensure that the second device does not need to receive the same data repeatedly, and realizes the multi-data channel transmission process of the second device without perception.
- the source address information of the second data packet is replaced with the specified address information (such as the address information of the proxy server) and sent to the second device, no matter which communication method is adopted between the first device and the multi-channel proxy server, All data channels can be transmitted, which realizes the full-stack multi-channel data transmission process and meets the business needs in various communication scenarios.
- FIG. 3 schematically shows a flowchart of a data transmission method according to an embodiment of the present application.
- the data transmission method may be executed by a server, which may be shown in FIG. 1
- the data transmission method includes at least steps S310 to S330, which are described in detail as follows:
- step S310 a fourth data packet that needs to be sent to the first device is determined from the data packets sent by the second device.
- the fourth data packet may be an IP data packet, that is, the second device may directly send the IP data packet to the multi-channel proxy server, and thus may seamlessly support multi-channel transmission of the full-stack network.
- the multi-channel proxy server may parse the first data packet to obtain address information that the first device needs to access, and then store the address information.
- the fourth data packet that needs to be sent to the first device may be determined based on the stored address information that the first device needs to access.
- FIG. 4 is a flowchart of determining a fourth data packet that needs to be sent to the first device from the data packets sent by the second device in the embodiment of the present application. As shown in Fig. 4, it specifically includes the following steps:
- Step S410 Determine the source address information of the data packet sent by the second device.
- the source address information of the data packet can be obtained by parsing the data packet sent by the second device.
- the source address information of the data packet sent by the second device may be the virtual address information of the application server.
- Step S420 according to the address information that the first device needs to access, filter out the data packets that match the source address information and the address information that the first device needs to access from the data packets sent by the second device,
- the filtered data packet is used as the fourth data packet.
- not all data packets sent by the second device are to be sent to the first device, but the source address information of the data packet to be sent to the first device and the data packet sent by the first device
- the destination address information is the same, so you can filter out the data packets that match the source address information and the address information that the first device needs to access from the data packets sent by the second device, and use this as the data that needs to be sent to the first device
- the fourth data packet not all data packets sent by the second device are to be sent to the first device, but the source address information of the data packet to be sent to the first device and the data packet sent by the first device The destination address information is the same, so you can filter out the data packets that match the source address information and the address information that the first device needs to access from the data packets sent by the second device, and use this as the data that needs to be sent to the first device The fourth data packet.
- step S320 the destination address information of the fourth data packet is replaced with the address information of the first device to obtain a fifth data packet.
- the multi-channel proxy server may allocate a virtual port to the first device in advance, and then associate and store the virtual port allocated to the first device with the address information of the first device.
- the destination address information of the fourth data packet includes the IP address of the multi-channel proxy server and the virtual port information allocated by the multi-channel proxy server to the first device, so that the virtual port information can be used from the stored virtual port and address information.
- the address information of the first device is queried out in the association relationship, and then the destination address information of the fourth data packet is replaced with the address information of the first device.
- the address information of the first device may include the intranet address and intranet port of the first device.
- step S330 the fifth data packet is sent to the first device.
- the fifth data packet may be sent to the first device through multiple data channels to ensure the transmission stability of the data packet, thereby solving the problem of high packet loss rate and high delay during data transmission problem.
- the first device may also perform aggregation processing.
- the aggregation processing may be deduplication processing and/or integration of the data packets received by the first device through multiple data channels. Process to get full and non-repetitive data packets.
- the first device may also be used to transmit the data channel information of the first data packet to the multi-channel proxy server.
- the specific sending method may be real-time sending, periodic sending, and sending when changes occur Wait, after the multi-channel proxy server receives the data channel information, it can store it, and then the multi-channel proxy server can send the fifth data packet to the first device according to the latest stored data channel information to the fifth The data packet is sent to the first device to ensure that the multi-channel proxy server can know and can use the latest data channel information to send the data packet to the first device.
- the multi-channel proxy server may also determine the data used by the first device when sending the data packet based on the reception of the first data packet sent by the first device or the reception of other data packets The network status of the channel, such as delay, congestion, etc., and then when the multi-channel proxy server sends the fifth data packet to the first device, it can be based on the network status of the data channel used by the first device when sending the data packet Pros and cons, choose one or more data channels to send the fifth data packet to the first device.
- the fifth data packet can be transmitted only through the data channel with better network status, which can reduce the occupation of the data channel and the consumption of traffic; when multiple data channels When all of the network conditions are poor, the fifth data packet can be transmitted through multiple data channels, thereby ensuring the transmission stability of the data packet, and avoiding the problems of high packet loss rate and high delay during data transmission.
- determining the network state of the data channel used by the first device when sending the data packet may be based on the first moment when the data packet sent by the first device is received and the data packet sent by the first device At the second moment included in it, the delay of the data packet sent by the first device is calculated, and then the network status of the data channel used by the first device to send the data packet is determined according to the delay of the data packet sent by the first device.
- the delay of the data packet sent by the first device is greater, it means that the network state of the data channel used by the first device to send the data packet is worse; if the delay of the data packet sent by the first device is smaller, then the The better the network status of the data channel used by a device to send data packets.
- the second time is determined according to the time when the first device sends the data packet and the clock synchronization compensation value between the proxy server and the first device.
- the multi-channel proxy server may also receive the reception of the first data packet transmitted to the first device fed back by the first device to determine the data used by the first device when receiving the data packet The network status of the channel, such as delay, congestion, etc., and then the multi-channel proxy server can send the fifth data packet to the first device according to the network status of the data channel used by the first device when receiving the data packet Pros and cons, choose one or more data channels to send the fifth data packet to the first device.
- the fifth data packet can be transmitted only through the data channel with better network status, which can reduce the occupation of the data channel and the consumption of traffic; when multiple data channels When all of the network conditions are poor, the fifth data packet can be transmitted through multiple data channels, thereby ensuring the transmission stability of the data packet, and avoiding the problems of high packet loss rate and high delay during data transmission.
- the multi-channel proxy server may also determine the data used by the first device when sending the data packet based on the reception of the first data packet sent by the first device or the reception of other data packets The network status of the channel, and then send the network status of the data channel used by the first device when sending the data packet to the first device, so that the first device selects the data channel used when sending the data packet again according to the network status .
- the first device can send data packets to the multi-channel proxy server only through the data channel with better network status when sending the data packet again, which can reduce the number of data channels.
- the first device can send data packets to the multi-channel proxy server through multiple data channels when sending the data packets again, which can ensure the data packets Transmission stability, to avoid the problem of high packet loss rate and high delay during data transmission.
- the first device may also determine the network status of the data channel used by the first device when receiving the data packet based on the reception of the first data packet sent by the multi-channel proxy server, and then The network state selects the data channel used when sending data packets. For example, when the network status of a data channel is good, the first device can only send data packets to the proxy server through the data channel with a good network status, which can reduce the occupation of the data channel and the consumption of traffic; When the network status of multiple data channels is poor, the first device can send data packets to the proxy server through multiple data channels, which can ensure the transmission stability of the data packets and avoid high packet loss rates and The problem of high latency.
- the following uses the first device as a dual-channel client, the proxy server as a dual-channel proxy server (that is, the following description uses data transmission through two data channels as an example), and the second device as an application server as an example.
- the implementation details of the technical solution are elaborated:
- a dual-channel communication system mainly includes: a user terminal 51, a dual-channel load balancing server 502, a dual-channel proxy server 503, and an application server 504.
- the user terminal 51 is provided with an application client 505, a network card 506, and a dual-channel client 501.
- the dual-channel client 501 communicates with the application client 505 through the network card.
- the application client 505 and the dual-channel client 501 can send tcp messages and udp messages.
- the dual-channel client 501 receives the udp message sent by the application client 505, it can be sent to the dual-channel load balancing server 502 through dual channels (such as Wi-Fi channel and 4G channel), and then the dual-channel load balancing server 502 Forwarded to the dual-channel proxy server 503, the dual-channel proxy server 503 deduplicates the received udp message and forwards it to the application server 504.
- dual channels such as Wi-Fi channel and 4G channel
- the udp message can be sent to the dual channel through the dual channel (such as Wi-Fi channel and 4G channel)
- the load balancing server 502 is then forwarded by the dual channel load balancing server 502 to the dual channel client 501, and the dual channel client 501 deduplicates the received udp message and forwards it to the application client 505 through the network card.
- the dual-channel client 501 after the dual-channel client 501 intercepts the syn message of tcp from the network card 506 (syn message indicates a connection establishment message), the dual-channel client 501 immediately communicates with the application according to the destination address information The server 504 establishes a tcp link. After the tcp link is established, the dual-channel client 501 sends the tcp ack+syn message (the ack+syn message indicates the message confirming the connection establishment) to the application client 505 through the network card 506, and the subsequent tcp link establishment process is continued.
- bridge fd1 communication with the application client 505
- fd2 communication with the application server 504
- the uplink tcp message is forwarded, and the downlink tcp message sent by the application server 504 to the application client 505 is forwarded.
- a dual-channel communication system mainly includes: a user terminal 61, a dual-channel load balancing server 602 (dual-channel load balancing Server 602a and dual channel load balancing server 602b), dual channel proxy server 603 and application server 604.
- the user terminal 61 is provided with an application client 605, a network card 606, and a dual-channel client 601.
- the number of dual-channel load balancing servers 602 shown in FIG. 6 is only an example. In other embodiments of the present application, any number of dual-channel load balancing servers may be provided, or dual-channel loads may not be provided Balance server.
- the dual-channel proxy server 603 when receiving the fin packet of the tcp link sent by a dual-channel client 601, marks the tcp link status of the dual-channel client 601 as the fin status, and After finOutTime (default 10 seconds), delete the tcp link information from the client information module 6031.
- the finOutTime timeout period is used to ensure that the 4 wave of tcp links can be ended normally.
- a dual-channel proxy server 603 when a dual-channel proxy server 603 creates a tcp link of a dual-channel client, it will determine whether the first tcp message of the tcp link is a three-way handshake syn message, and if so, establish The tcp link information is stored in the client information module 6031; if not, the rst message is returned to the dual-channel client to interrupt the illegal tcp link to ensure that the dual-channel client can quickly rebuild the tcp link.
- the dual-channel client 601 can set the value of the mss field of the tcp message protocol when receiving the syn message of the tcp link sent by the application client 605 to ensure the data sent by the application server 604
- the packets are all within the controllable length range (tcp message length takes the minimum value of mss value and sending window value) to prevent buffer overflow and affect transmission efficiency problems caused by excessive data packets.
- the dual-channel proxy server 603 when receiving the syn+ack message of the tcp link returned by the application server 604, the dual-channel proxy server 603 sets the mss field of the tcp message protocol to ensure the data sent by the application client The packets are all within the controllable length to prevent buffer overflow and affect transmission efficiency problems caused by excessive data packets.
- the dual-channel proxy server 603 can respectively turn off the following options for network card optimization: GRO (Generic Receive Offloading), TSO (TCP Segmentation Offload, TCP segmentation), GSO (Generic Segmentation) Offload, universal segmentation), LRO (Large, Receive, Offload, large reception), to ensure that the mss value setting of the tcp link takes effect.
- GRO Generic Receive Offloading
- TSO TCP Segmentation Offload, TCP segmentation
- GSO Generic Segmentation
- LRO Large, Receive, Offload, large reception
- a virtual network card 607 is created (the virtual network card communicates with the application client through the physical network card in the mobile phone), and two threads (ie, an upstream thread and a downstream thread are established) Thread), at the same time, two udp socket links can be established and bound to wireless channels such as Wi-Fi channels and fourth-generation mobile communication (referred to as 4G) channels.
- the dual-channel client 601 requests the cloud control server according to the corresponding application service configuration and delivers the IP address of the application server 604. According to this IP address, an iptables filtering strategy is set, and the IP packet sent by the application client 605 is intercepted and forwarded to the virtual network card 607 through the network card 606.
- the dual-channel client 601 may add a dual-channel header to form a “dual-channel header +
- the dual-channel upstream message in the format of "application service IP message" can then be sent based on the udp protocol and through two channels of a wireless local area network channel such as Wi-Fi and a mobile communication channel such as a 4G channel.
- the dual-channel client 601 when the dual-channel client 601 sends through the dual channel, it can be sent to the dual-channel load balancing server 602 first, and then forwarded by the dual-channel load balancing server 602 to the dual channel
- the uplink thread of the proxy server 603 is further de-duplicated by the dual-channel proxy server 603 and forwarded to the application server 604.
- the dual-channel client 601 can also be directly sent to the dual-channel proxy server 603 when sending through the dual-channel, and then the dual-channel proxy server 603 performs deduplication processing Forward to the application server 604.
- the protocol field of the dual-channel uplink message sent by the dual-channel client 601 may be as follows:
- uint8_t type //Type, the channel number or packet type of the current upstream packet
- the dual-channel client 601 after receiving the dual-channel downlink message in the format of “dual-channel header + application service IP message” sent through the dual channel, the dual-channel client 601 passes Re-logic performs de-duplication processing on the received dual-channel downlink packets and removes the header of the dual-channel downlink packets, and directly sends the IP message stored in the data field to the virtual network card 607 to facilitate virtual
- the network card 607 sends the application service IP message to the application client 605 through the network card 606.
- the application service IP message may be a game IP message.
- the protocol field of the dual-channel downlink packet received by the dual-channel client 601 may be as follows:
- the dual-channel downlink message received by the dual-channel client 601 may be a downlink thread where the application server 604 sends the application service IP packet to the dual-channel proxy server 603 , And then generated by the dual-channel proxy server 603 after adding the dual-channel header. After the dual-channel proxy server 603 generates the dual-channel downlink message, it sends it to the dual-channel load balancing server 602, and then the dual-channel load balancing server 602 forwards it to the dual-channel client 601.
- the dual-channel proxy server 603 after the dual-channel proxy server 603 generates the dual-channel downlink message, it can be directly sent to the dual-channel client 601. Then, the dual-channel client 601 performs deduplication processing, and after removing the header of the dual-channel downlink message, directly sends the IP message stored in the data field to the application client 605.
- the application server may be a game server.
- the interaction process between the dual-channel proxy server and the application server includes the following steps:
- Step S1001 the dual-channel proxy server receives the dual-channel client (which can directly receive the data packet sent by the dual-channel client or indirectly received by the load balancing server) the uplink data packet sent by the dual channel.
- step S1002 the dual-channel proxy server removes the received dual-channel header and internal communication header and deduplicates them, and then masquerades the address and port in the IP packet and sends it to the application server.
- the dual-channel proxy server after receiving the uplink data packet sent by the dual-channel client, the dual-channel proxy server will include the real address information (including the intranet IP) of the dual-channel client included in the header of the uplink data packet. And intranet port) are recorded in the client information module, and a virtual local port is assigned to the dual-channel client through the virtual port pool module.
- the VIP information module is updated according to the address of the application server to be accessed by the upstream data packet, and the VIP of the application server to be accessed is added to the module.
- the dual-channel proxy server can identify the client IP message sent from the 4G and Wi-Fi channel according to the unique identifier of the client contained in the header of the upstream data packet, and perform deduplication deal with.
- the dual-channel proxy server disguises the address and port information in the IP packet mainly by disguising the address information in the upstream IP packet after deduplication processing as the address information of the machine (including dual-channel The IP address of the proxy server and the virtual port assigned to the dual-channel client), and then recalculate the checksum field in the header of the ip, tcp, or udp message, and send it to the application server through the raw socket (RawSocket) thread.
- Step 1003 the downstream thread of the dual-channel proxy server creates a rawSocket to receive the IP message, and then filters the IP message according to the source address (srcAddr) of the IP message through the IP information of the application server recorded in the VIP information module to obtain the need to send IP packets to the dual-channel client.
- the link information is found from the client information module according to the destination port (dstPort) in the IP message, that is, the real address information of the dual-channel client is found.
- the dual-channel client can send the channel information of the data packet to the dual-channel proxy server in real time to facilitate the proxy server to switch channels, which can ensure that when the 4G or Wi-Fi channel is abnormally switched,
- the proxy server can update the channel information corresponding to the client at the first time.
- Step S1004 the dual-channel proxy server adds the dual-channel downlink header and dual-channel back-end internal protocol header before applying the service downlink IP packet according to the latest Wi-Fi and 4G channel information sent by the dual-channel client.
- the channel is sent to the dual channel client.
- the dual-channel proxy server can send the processed data packets to the dual-channel client based on the udp protocol.
- the dual-channel proxy server may also send the application service IP packet with the dual-channel header and dual-channel back-end internal header first to the dual-channel load balancing server. Then the dual-channel load balancing server removes the internal header of the dual-channel backend and sends it to the dual-channel client.
- the dual-channel proxy server can periodically clear the channel information of the dual-channel client (which can be triggered by the timing task module shown in FIG. 6), such as there is no dual-channel client within the timeout period When the data passes through the dual-channel proxy server, the thread and channel information data of the dual-channel client is cleared.
- the dual-channel proxy server can transparently forward the IP packets between the dual-channel client and the application server (the IP packets of the dual-channel client come from the application client), it can support the udp protocol and The multi-channel data transmission of the full-stack network protocol of the tcp protocol avoids that the tcp link that communicates with the application server cannot be established in time due to the poor network between the dual-channel client and the application server, which will invert the application client The establishment of the tcp link of the terminal communication fails, causing the tcp link to continuously reconnect, and the user experience will be relatively poor.
- the clock synchronization between the dual-channel client and the dual-channel proxy server is as follows:
- the dual-channel client requests the dual-channel proxy server's timestamp from the dual-channel proxy server (for example, 10 requests can be requested at intervals of 500 ms each), and records the return delay of each dual-channel proxy server. Average delay avgDelay between client and dual-channel proxy server;
- the dual-channel client records the time stamp svrTime of the dual-channel proxy server returned by the last request to the dual-channel proxy server and the localStartTime of the dual-channel client time at this time;
- the dual-channel proxy server determines the current stutter level of the Wi-Fi channel based on the delay of the upstream packet (the current time of the dual-channel proxy server-CStime) to formulate 4G Channel sending rules, for example, when the Wi-Fi channel has a good network status, the 4G channel may not send packets or not send packets in full to save users' downstream traffic.
- the dual-channel proxy server can also receive the delay of the downlink packet fed back by the dual-channel client, and then determine the current lag level of the Wi-Fi channel to formulate a 4G channel packet sending rule.
- the dual-channel client determines the current lag level of the Wi-Fi channel based on the delay of the downlink packet (the current time of the dual-channel client-Stime), and thereby formulates the 4G channel packet sending rules, such as the network status of the Wi-Fi channel When it is better, the 4G channel may not send packets or not send packets in full to save users' upstream traffic.
- the dual-channel client can also receive the delay of the upstream packet fed back by the dual-channel proxy server, and then determine the current lag level of the Wi-Fi channel to formulate a 4G channel packet sending rule.
- the dual channels may also be Wireless channel and wired channel
- wireless channel can be Wi-Fi channel
- wired channel can be connected to the network through OTG (On-The-Go) line to network cable; or as shown in Figure 13, dual channel can also be wireless channel and
- the Bluetooth channel and the wireless channel may be Wi-Fi channels.
- the Bluetooth channel is connected to the network through a Bluetooth network sharing device.
- the Bluetooth network sharing device may be a dedicated sharing device, or may be a mobile phone Bluetooth network hotspot or a computer hotspot.
- the dual channel can also be a wired channel and a Bluetooth channel, or a wired channel and a 4G channel, a Bluetooth channel and a 4G channel, and so on.
- data transmission may also be achieved through three or more channels, where these data channels may include Wi-Fi channels, Bluetooth channels, wired channels, and mobile communication networks (such as 3G/4G /5G, etc.) data channels, etc.
- data channels may include Wi-Fi channels, Bluetooth channels, wired channels, and mobile communication networks (such as 3G/4G /5G, etc.) data channels, etc.
- the multi-channel data transmission solution of the embodiment of the present application is flexible, and most services can be accessed at zero cost without any changes and adaptations of the services, and can support all types of services and applications, such as game services.
- a network failure occurs in one of the data channels, the user is completely unaware, and can effectively prevent more than 70% of the client's network stalls, especially when the Wi-Fi network is more complex, the effect is more significant.
- it can prevent most Wi-Fi wireless interference situations, and perfectly solves the problems of tcp link and dual-channel acceleration.
- FIG. 14 schematically shows a block diagram of a data transmission device according to an embodiment of the present application.
- a data transmission device 1400 includes: a receiving unit 1402, a first processing unit 1404, a second processing unit 1406, and a sending unit 1408.
- the receiving unit 1402 is used to receive the first data packet sent by the first device through multiple data channels; the first processing unit 1404 is used to parse the first data packet to obtain the address information of the first device, and according to the The data packet header of the first data packet performs aggregation processing on the first data packet to obtain a second data packet; the second processing unit 1406 is configured to replace the source address information of the second data packet with specified address information to obtain The third data packet; the sending unit 1408 is used to send the third data packet to a second device, where the second device is a device that the first device needs to access.
- the data transmission device 1400 further includes: a first determining unit, configured to determine a fourth data packet that needs to be sent to the first device from the data packets sent by the second device;
- the second processing unit 1406 is further used to replace the destination address information of the fourth data packet with the address information of the first device to obtain a fifth data packet;
- the sending unit 1408 is also used to The fifth data packet is sent to the first device.
- the data transmission device 1400 further includes: a first storage unit; wherein, the first processing unit 1404 is further configured to parse the first data packet to obtain an address that the first device needs to access Information, the second device is determined according to address information that the first device needs to access; the first storage unit is configured to store address information that the first device needs to access.
- the first determining unit is configured to: determine the source address information of the data packet sent by the second device; according to the address information that the first device needs to access, from the second A data packet matching the source address information and the address information that the first device needs to access is filtered out of the data packets sent by the device, and the filtered data packet is used as the fourth data packet.
- the data transmission apparatus 1400 further includes: an allocation unit for allocating a virtual port to the first device; and a second storage unit for allocating the address information of the first device to the The virtual port allocated by the first device is associated and stored, wherein the specified address information includes the virtual port allocated to the first device.
- the second processing unit 1406 is further configured to: before replacing the destination address information of the fourth data packet with the address information of the first device, Obtain the stored address information of the first device by using the virtual port information included in the destination address information.
- the receiving unit 1402 is further configured to receive and store data channel information sent by the first device to transmit the first data packet; the sending unit 1408 is configured to: according to the stored Send the fifth data packet to the first device with the latest data channel information.
- the data transmission device 1400 further includes: a second determining unit, configured to determine that the first device is sending a data packet based on the reception of the first data packet sent by the first device The network status of the data channel used at the time; the sending unit 1408 is configured to select one or more data channels according to the network status of the data channel used by the first device when sending the data packet.
- the fifth data packet is sent to the first device.
- the second determining unit is configured to: according to the first moment when the data packet sent by the first device is received and the second time contained in the data packet sent by the first device Time, the delay of the data packet sent by the first device is calculated, wherein the second time is the time according to which the first device sends the data packet, and the clock between the proxy server and the first device The synchronization compensation value is determined; according to the delay of the data packet sent by the first device, the network status of the data channel used by the first device to send the data packet is determined.
- the data transmission apparatus 1400 further includes: a third determining unit, configured to receive the feedback of the first data packet transmitted to the first device fed back by the first device to determine The network state of the data channel used by the first device when receiving the data packet; the sending unit 1408 is configured to: according to the quality of the network state of the data channel used by the first device when receiving the data packet, Select one or more data channels to send the fifth data packet to the first device.
- a third determining unit configured to receive the feedback of the first data packet transmitted to the first device fed back by the first device to determine The network state of the data channel used by the first device when receiving the data packet
- the sending unit 1408 is configured to: according to the quality of the network state of the data channel used by the first device when receiving the data packet, Select one or more data channels to send the fifth data packet to the first device.
- the data transmission apparatus 1400 further includes: a fourth determining unit, configured to determine that the first device is sending a data packet based on the reception of the first data packet sent by the first device The network status of the data channel used at the time; the sending unit 1408 is further configured to send the network status of the data channel used by the first device when sending the data packet to the first device, so that the first A device selects the data channel used when sending the data packet again according to the network status.
- a fourth determining unit configured to determine that the first device is sending a data packet based on the reception of the first data packet sent by the first device The network status of the data channel used at the time
- the sending unit 1408 is further configured to send the network status of the data channel used by the first device when sending the data packet to the first device, so that the first A device selects the data channel used when sending the data packet again according to the network status.
- the data transmission apparatus 1400 further includes: a third processing unit, configured to delete the storage after a predetermined length of time has elapsed when receiving the data packet sent by the first device to disconnect the TCP connection Information related to the first device; and/or during the establishment of a TCP connection with the first device, if the received first TCP data packet sent by the first device is not to establish a TCP connection Data packet, send a data packet to reset the connection to the first device; and/or set the maximum segment length of the data packet sent by the second device.
- a third processing unit configured to delete the storage after a predetermined length of time has elapsed when receiving the data packet sent by the first device to disconnect the TCP connection Information related to the first device; and/or during the establishment of a TCP connection with the first device, if the received first TCP data packet sent by the first device is not to establish a TCP connection Data packet, send a data packet to reset the connection to the first device; and/or set the maximum segment length of the data packet sent by the second device.
- FIG. 15 shows a schematic structural diagram of a computer system suitable for implementing an electronic device according to an embodiment of the present application.
- the computer system 1500 includes a central processing unit (Central Processing Unit, CPU) 1501, which can be loaded into a random portion from the storage section 1508 according to a program stored in a read-only memory (Read-Only Memory, ROM) 1502.
- the program in the RAM (Access Random) 1503 is accessed to perform various appropriate actions and processes, for example, the method described in the above embodiment.
- RAM 1503 various programs and data required for system operation are also stored.
- the CPU 1501, ROM 1502, and RAM 1503 are connected to each other through a bus 1504.
- An input/output (Input/Output, I/O) interface 1505 is also connected to the bus 1504.
- the following components are connected to the I/O interface 1505: input section 1506 including keyboard, mouse, etc.; including output section 1507 such as cathode ray tube (Cathode Ray Tube, CRT), liquid crystal display (Liquid Crystal Display, LCD), etc. and speakers A storage section 1508 including a hard disk, etc.; and a communication section 1509 including a network interface card such as a LAN (Local Area Network) card, modem, etc.
- the communication section 1509 performs communication processing via a network such as the Internet.
- the driver 1510 is also connected to the I/O interface 1505 as needed.
- a removable medium 1511 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 1510 as necessary, so that the computer program read out therefrom is installed into the storage portion 1508 as needed.
- the process described below with reference to the flowchart may be implemented as a computer software program.
- the embodiments of the present application include a computer program product including a computer program carried on a computer-readable medium, the computer program containing program code for performing the method shown in the flowchart.
- the computer program may be downloaded and installed from the network through the communication section 1509, and/or installed from the removable medium 1511.
- CPU central processing unit
- the computer-readable medium shown in the embodiments of the present application may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two.
- the computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above.
- Computer-readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Erasable Programmable Read Only Memory (EPROM), flash memory, optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable of the above The combination.
- the computer-readable storage medium may be any tangible medium that contains or stores a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device.
- the computer-readable signal medium may include a data signal propagated in the baseband or as part of the carrier wave, in which the computer-readable program code is carried.
- This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, and the computer-readable medium may send, propagate, or transmit a program for use by or in combination with an instruction execution system, apparatus, or device .
- the program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wired, etc., or any suitable combination of the foregoing.
- each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, and the above-mentioned module, program segment, or part of code contains one or more for implementing a specified logical function Executable instructions.
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may actually be executed in parallel, and they may sometimes be executed in reverse order, depending on the functions involved.
- each block in the block diagram or flowchart, and a combination of blocks in the block diagram or flowchart can be implemented with a dedicated hardware-based system that performs a prescribed function or operation, or can be used It is realized by a combination of dedicated hardware and computer instructions.
- the units described in the embodiments of the present application may be implemented in software or hardware, and the described units may also be provided in a processor. Among them, the names of these units do not constitute a limitation on the unit itself under certain circumstances.
- the present application also provides a computer-readable medium, which may be included in the electronic device described in the foregoing embodiments; or may exist alone without being assembled into the electronic device in.
- the computer-readable medium carries one or more programs. When the one or more programs are executed by one of the electronic devices, the electronic device causes the electronic device to implement the method described in the foregoing embodiments.
- the example embodiments described here can be implemented by software, or can be implemented by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to enable a computing device (which may be a personal computer, server, touch terminal, or network device, etc.) to perform the method according to the embodiments of the present application.
- a computing device which may be a personal computer, server, touch terminal, or network device, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
Claims (19)
- 一种数据传输方法,由服务器执行,包括:接收第一设备通过多个数据通道发送的第一数据包;解析所述第一数据包得到所述第一设备的地址信息,并根据所述第一数据包的数据包头对所述第一数据包进行聚合处理,得到第二数据包;将所述第二数据包的源地址信息更换为指定地址信息,得到第三数据包;将所述第三数据包发送至第二设备,其中,所述第二设备为所述第一设备需要访问的设备。
- 根据权利要求1所述的数据传输方法,进一步包括:在接收到所述第一设备通过多个数据通道发送的第一数据包之后,解析所述第一数据包得到所述第一设备需要访问的地址信息,根据所述第一设备需要访问的地址信息确定所述第二设备;存储所述第一设备需要访问的地址信息。
- 根据权利要求2所述的数据传输方法,进一步包括:根据所述存储的第一设备需要访问的地址信息,从所述第二设备发送的数据包中确定出需要发送至所述第一设备的第四数据包;将所述第四数据包的目的地址信息更换为所述第一设备的地址信息,得到第五数据包;将所述第五数据包通过一个或多个数据通道发送至所述第一设备。
- 根据权利要求3所述的数据传输方法,其中,根据所述存储的第一设备需要访问的地址信息,从所述第二设备发送的数据包中确定出需要发送至所述第一设备的第四数据包,包括:确定所述第二设备发送的数据包的源地址信息;根据所述第一设备需要访问的地址信息,从所述第二设备发送的数据包中过滤出所述源地址信息与所述第一设备需要访问的地址信息相匹配的数据包,将过滤出的数据包作为所述第四数据包。
- 根据权利要求3所述的数据传输方法,其中,当首次接收到所述第一设备发送的数据包时,所述数据传输方法进一步包括:向所述第一设备分配虚拟端口;将所述第一设备的地址信息与向所述第一设备分配的虚拟端口进行关联存储,其中,所述指定地址信息包括向所述第一设备分配的虚拟端口。
- 根据权利要求5所述的数据传输方法,其中,所述第四数据包的目的地址中包括所述虚拟端口的信息,在将所述第四数据包的目的地址信息更换为所述第一设备的地址信息之前,所述数据传输方法还包括:根据所述第四数据包的目的地址信息中所包含的虚拟端口的信息,获取已存储的所述第一设备的地址信息。
- 根据权利要求3所述的数据传输方法,进一步包括:接收并存储所述第一设备发送的用于传输所述第一数据包的数据通道信息;将所述第五数据包通过一个或多个数据通道发送至所述第一设备,包括:根据存储的最新的数据通道信息,将所述第五数据包发送至所述第一设备。
- 根据权利要求3所述的数据传输方法,进一步包括:基于对所述第一设备发送的第一数据包的接收情况,确定所述第一设备在发送第一数据包时所采用的数据通道的网络状态;将所述第五数据包通过一个或多个数据通道发送至所述第一设备,包括:根据所述第一设备在发送数据包时所采用的数据通道的网络状态,选择一个或多个数据通道将所述第五数据包发送至所述第一设备。
- 根据权利要求8所述的数据传输方法,其中,基于对所述第一设备发送的第一数据包的接收情况,确定所述第一设备在发送第一数据包时所采用的数据通道的网络状态,包括:根据接收到所述第一设备发送的数据包的第一时刻和所述第一设备发送的数据包中所包含的第二时刻,计算所述第一设备发送的数据包的延迟,其中,所述第二时刻为根据所述第一设备发送数据包的时刻,以及所述代理服务器与所述第一设备之间的时钟同步补偿值确定的;根据所述第一设备发送的数据包的延迟,确定所述第一设备发送数据包所采用的数据通道的网络状态。
- 根据权利要求3所述的数据传输方法,进一步包括:接收所述第一设备 反馈的对传输至所述第一设备的数据包的接收情况,以确定所述第一设备在接收数据包时所采用的数据通道的网络状态;将所述第五数据包通过一个或多个数据通道发送至所述第一设备,包括:根据所述第一设备在接收数据包时所采用的数据通道的网络状态,选择一个或多个数据通道将所述第五数据包发送至所述第一设备。
- 根据权利要求1所述的数据传输方法,进一步包括:基于对所述第一设备发送的第一数据包的接收情况,确定所述第一设备在发送数据包时所采用的数据通道的网络状态;将所述第一设备在发送数据包时所采用的数据通道的网络状态发送至所述第一设备,以使所述第一设备根据所述网络状态在再次发送数据包时选择所采用的数据通道。
- 根据权利要求1至11中任一项所述的数据传输方法,进一步包括:若接收到所述第一设备发送的断开传输控制协议TCP连接的数据报文,则在经过预定时长后删除存储的与所述第一设备相关的信息。
- 根据权利要求1至11中任一项所述的数据传输方法,进一步包括:在与所述第一设备建立TCP连接的过程中,若接收到的所述第一设备发送的第一个TCP数据报文不是建立TCP连接的数据报文,则向所述第一设备发送重置连接的数据报文。
- 一种数据传输装置,包括:接收单元,用于接收第一设备通过多个数据通道发送的第一数据包;第一处理单元,用于解析所述第一数据包得到所述第一设备的地址信息,并根据所述第一数据包的数据包头对所述第一数据包进行聚合处理,得到第二数据包;第二处理单元,用于将所述第二数据包的源地址信息更换为指定地址信息,得到第三数据包;发送单元,用于将所述第三数据包发送至第二设备,其中,所述第二设备为所述第一设备需要访问的设备。
- 根据权利要求14所述的装置,其中,所述装置还包括:第一存储单元;所述第一处理单元,还用于解析所述第一数据包得到所述第一设备需要访问的地址信息,根据所述第一设备需要访问的地址信息确定所述第二设备;第一存储单元,用于存储所述第一设备需要访问的地址信息。
- 根据权利要求15所述的装置,其中,所述装置还包括:第一确定单元,用于根据所述存储的第一设备需要访问的地址信息,从所述第二设备发送的数据包中确定出需要发送至所述第一设备的第四数据包;所述第二处理单元,还用于将所述第四数据包的目的地址信息更换为所述第一设备的地址信息,得到第五数据包;所述发送单元,还用于将所述第五数据包通过一个或多个数据通道发送至所述第一设备。
- 根据权利要求16所述的装置,其中,所述第一确定单元,用于确定所述第二设备发送的数据包的源地址信息;根据所述第一设备需要访问的地址信息,从所述第二设备发送的数据包中过滤出所述源地址信息与所述第一设备需要访问的地址信息相匹配的数据包,将过滤出的数据包作为所述第四数据包。
- 一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至13中任一项所述的数据传输方法。
- 一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至13中任一项所述的数据传输方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021515152A JP7154399B2 (ja) | 2019-01-03 | 2019-12-13 | データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス |
| EP19908065.6A EP3907955B1 (en) | 2019-01-03 | 2019-12-13 | Data transmission method and apparatus, computer readable medium, and electronic device |
| US17/229,699 US12126530B2 (en) | 2019-01-03 | 2021-04-13 | Data transmission method and apparatus, computer readable medium, and electronic device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910004540.XA CN109600388B (zh) | 2019-01-03 | 2019-01-03 | 数据传输方法、装置、计算机可读介质及电子设备 |
| CN201910004540.X | 2019-01-03 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/229,699 Continuation US12126530B2 (en) | 2019-01-03 | 2021-04-13 | Data transmission method and apparatus, computer readable medium, and electronic device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020140729A1 true WO2020140729A1 (zh) | 2020-07-09 |
Family
ID=65965946
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2019/125125 Ceased WO2020140729A1 (zh) | 2019-01-03 | 2019-12-13 | 数据传输方法、装置、计算机可读介质及电子设备 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12126530B2 (zh) |
| EP (1) | EP3907955B1 (zh) |
| JP (1) | JP7154399B2 (zh) |
| CN (1) | CN109600388B (zh) |
| WO (1) | WO2020140729A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022160265A1 (zh) * | 2021-01-29 | 2022-08-04 | 华为技术有限公司 | 通信方法和通信装置 |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109600388B (zh) * | 2019-01-03 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机可读介质及电子设备 |
| CN110099403B (zh) * | 2019-05-17 | 2022-07-19 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备及存储介质 |
| CN110247955A (zh) * | 2019-05-21 | 2019-09-17 | 菜鸟智能物流控股有限公司 | 一种无人车的通信方法和无人车 |
| CN113518085B (zh) * | 2019-07-05 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种基于多通道的数据传输方法以及相关装置 |
| CN110730102B (zh) * | 2019-10-23 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 一种网络加速方法及装置、存储介质 |
| CN113206875B (zh) * | 2021-04-27 | 2022-09-02 | 深圳市晨北科技有限公司 | 数据传输方法、装置及存储介质 |
| CN114615347B (zh) * | 2022-03-08 | 2024-03-12 | 上海哔哩哔哩科技有限公司 | 基于udp gso的数据传输方法、装置、计算机设备和存储介质 |
| CN114615348B (zh) * | 2022-03-08 | 2024-03-12 | 上海哔哩哔哩科技有限公司 | 基于udp gso的数据传输方法、装置、计算机设备和存储介质 |
| CN114666745B (zh) * | 2022-03-29 | 2023-07-21 | 杭州中天微系统有限公司 | 数据传输方法、节点控制方法、网络设备、网络系统 |
| US12463888B2 (en) * | 2022-04-28 | 2025-11-04 | Avago Technologies International Sales Pte. Limited | Method for verifying flow completion times in data centers |
| CN118317367A (zh) * | 2023-01-07 | 2024-07-09 | 华为技术有限公司 | 数据传输方法、装置和系统 |
| US12143457B1 (en) * | 2023-08-02 | 2024-11-12 | Google Llc | Usage-based network connection management |
| CN117676638B (zh) * | 2023-11-17 | 2025-04-25 | 重庆河狸家网络技术有限公司 | 一种基于物联网的无线网络优化监管系统及方法 |
| CN119342162B (zh) * | 2024-09-02 | 2025-11-07 | 中移互联网有限公司 | 一种通话方法、装置、电子设备及存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102656862A (zh) * | 2009-12-18 | 2012-09-05 | 高通股份有限公司 | 在应用层绑定/聚合多个接口 |
| US20130237226A1 (en) * | 2012-03-09 | 2013-09-12 | Research In Motion Limited | Methods to Enable Simultaneous Use of Multiple Radio Access Technologies |
| CN103441996A (zh) * | 2013-08-16 | 2013-12-11 | 上海理工大学 | 并发传输文件的方法及系统 |
| CN103493399A (zh) * | 2011-06-03 | 2014-01-01 | Sk电信有限公司 | 用于利用两个或更多个网络的同时数据传输服务的设备和方法 |
| CN108809549A (zh) * | 2018-04-23 | 2018-11-13 | 维沃移动通信有限公司 | 一种传输数据的方法及设备 |
| CN109600388A (zh) * | 2019-01-03 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机可读介质及电子设备 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010114692A (ja) | 2008-11-06 | 2010-05-20 | Nomura Research Institute Ltd | データ送信システム、伝送制御装置および送信装置 |
| JP5327864B2 (ja) | 2009-09-04 | 2013-10-30 | 独立行政法人情報通信研究機構 | 通信ネットワークシステム及びネットワーク通信方法 |
| JP2012227704A (ja) * | 2011-04-19 | 2012-11-15 | Fujitsu Ltd | 伝送装置、伝送制御方法及び伝送制御プログラム |
| WO2013171648A1 (en) * | 2012-05-17 | 2013-11-21 | Liveu Ltd. | Multi-modem communication using virtual identity modules |
| JP5870078B2 (ja) | 2012-12-11 | 2016-02-24 | 東日本電信電話株式会社 | キャプチャデータ解析装置 |
| CN103532878B (zh) * | 2013-09-26 | 2017-01-04 | 华为技术有限公司 | 数据包的处理方法和网络流量的管理方法及装置和系统 |
| KR101746191B1 (ko) | 2014-06-27 | 2017-06-12 | 주식회사 케이티 | 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램 |
| FR3032852A1 (fr) | 2015-02-13 | 2016-08-19 | Orange | Procede de selection de concentrateurs de connexions reseau |
| CN105187312B (zh) * | 2015-08-12 | 2018-05-01 | 北京锐安科技有限公司 | 批量终端设备进行网络通信方法、装置及路由器 |
| CN107623646B (zh) * | 2017-09-06 | 2020-11-17 | 华为技术有限公司 | 数据流传输方法、发送设备及接收设备 |
-
2019
- 2019-01-03 CN CN201910004540.XA patent/CN109600388B/zh active Active
- 2019-12-13 WO PCT/CN2019/125125 patent/WO2020140729A1/zh not_active Ceased
- 2019-12-13 JP JP2021515152A patent/JP7154399B2/ja active Active
- 2019-12-13 EP EP19908065.6A patent/EP3907955B1/en active Active
-
2021
- 2021-04-13 US US17/229,699 patent/US12126530B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102656862A (zh) * | 2009-12-18 | 2012-09-05 | 高通股份有限公司 | 在应用层绑定/聚合多个接口 |
| CN103493399A (zh) * | 2011-06-03 | 2014-01-01 | Sk电信有限公司 | 用于利用两个或更多个网络的同时数据传输服务的设备和方法 |
| US20130237226A1 (en) * | 2012-03-09 | 2013-09-12 | Research In Motion Limited | Methods to Enable Simultaneous Use of Multiple Radio Access Technologies |
| CN103441996A (zh) * | 2013-08-16 | 2013-12-11 | 上海理工大学 | 并发传输文件的方法及系统 |
| CN108809549A (zh) * | 2018-04-23 | 2018-11-13 | 维沃移动通信有限公司 | 一种传输数据的方法及设备 |
| CN109600388A (zh) * | 2019-01-03 | 2019-04-09 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、计算机可读介质及电子设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3907955A4 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022160265A1 (zh) * | 2021-01-29 | 2022-08-04 | 华为技术有限公司 | 通信方法和通信装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109600388A (zh) | 2019-04-09 |
| EP3907955A1 (en) | 2021-11-10 |
| US20210234798A1 (en) | 2021-07-29 |
| EP3907955B1 (en) | 2026-01-28 |
| JP7154399B2 (ja) | 2022-10-17 |
| CN109600388B (zh) | 2021-01-15 |
| EP3907955A4 (en) | 2022-02-23 |
| JP2022501899A (ja) | 2022-01-06 |
| US12126530B2 (en) | 2024-10-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020140729A1 (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
| EP3758412B1 (en) | Multichannel data transmission method, apparatus, system and computer-readable medium | |
| US11277313B2 (en) | Data transmission method and corresponding device | |
| US20210203434A1 (en) | Data transmitting method, data receiving method, and device | |
| JP2017516188A (ja) | 要求マネージャおよび接続マネージャの機能を実装するトランスポートアクセラレータ | |
| US11316916B2 (en) | Packet processing method, related device, and computer storage medium | |
| US11503104B1 (en) | Implementing a queuing system in a distributed network | |
| WO2023005747A1 (zh) | 数据传输方法、装置及分布式存储系统 | |
| US20150271226A1 (en) | Transport accelerator implementing a multiple interface architecture | |
| WO2022001175A1 (zh) | 数据包发送的方法、装置 | |
| WO2020010670A1 (zh) | 一种获取网络资源的方法、装置及调度服务器 | |
| CN109756464B (zh) | 一种通信方法及服务器、客户端 | |
| US10432530B2 (en) | System and method of providing compression technique for jitter sensitive application through multiple network links | |
| WO2019242638A1 (zh) | 一种负载均衡方法和装置 | |
| CN104010001A (zh) | 移动终端中同类联网请求进行连接通信的方法和系统 | |
| WO2024207870A1 (zh) | 一种数据传输方法和相关装置 | |
| CN103181140A (zh) | 识别服务请求类型的方法、媒体服务器和终端设备 | |
| WO2017113373A1 (zh) | 一种缓存的方法及分组数据网关 | |
| EP4044535A1 (en) | Method for acquiring common maximum segment size (mss), and device | |
| CN110611622B (zh) | 用于负载均衡的方法、网络接口卡以及计算机可读介质 | |
| CN113840331B (zh) | 数据传输方法、网络接入设备及网络系统 | |
| WO2019168153A1 (ja) | 制御装置、通信制御方法、及びプログラム | |
| CN105872648A (zh) | 视频数据共享的方法及装置 | |
| US20240171504A1 (en) | Multi-path architecture for hardware offloading | |
| KR101577034B1 (ko) | 소프트웨어적인 네트워크 부가기능 추가가 용이한 멀티코어 기반의 toe 시스템 및 그 제어 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19908065 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021515152 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2019908065 Country of ref document: EP Effective date: 20210803 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2019908065 Country of ref document: EP |