Communication method, apparatus and system, computer-readable storage medium and computer program product

By switching connection protocols and domain names when a network connection fails, and adaptively selecting the best combination, the problems of network connection failure and latency are solved, and communication performance is improved.

WO2026097405A1PCT designated stage Publication Date: 2026-05-15BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
BEIJING ZITIAO NETWORK TECH CO LTD
Filing Date
2024-11-08
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, network connection failures or long connection delays lead to a decrease in communication performance, especially when using fixed connection protocols bound to domain names.

Method used

When the first connection protocol fails to establish a connection with the domain name, it switches to the second connection protocol to connect with a different domain name, adaptively selects the best combination of connection protocol and domain name for network access, and optimizes the connection strategy through pre-connection request detection and blacklist management.

Benefits of technology

It improves the success rate and speed of network connections, enhances communication performance, and avoids long delays caused by repeated failed attempts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024130746_15052026_PF_FP_ABST
    Figure CN2024130746_15052026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of communications, and relates to a communication method, apparatus and system, a computer-readable storage medium and a computer program product. The communication method comprises: by means of a first communication protocol, requesting the establishment of a first connection with a first domain name of a server; in response to a failure to establish the first connection, requesting, by means of a second communication protocol, the establishment of a second connection with a second domain name of the server; and in response to the successful establishment of the second connection, communicating with the server by means of the second connection.
Need to check novelty before this filing date? Find Prior Art

Description

Communication methods, apparatus, systems, computer-readable storage media and computer program products Technical Field

[0001] This disclosure relates to the field of communication technology, and in particular to a communication method, communication device, communication system, computer-readable storage medium, and computer program product. Background Technology

[0002] Network access uses various connection protocols, including HTTP (Hypertext Transfer Protocol) 1.1, HTTP 2.0, and HTTP 3.0. HTTP 1.1 and HTTP 2.0 are based on the TCP (Transmission Control Protocol) protocol, while HTTP 3.0 is based on QUIC (Quick UDP Internet Connections).

[0003] In related technologies, when accessing the network, a specified connection protocol is used to access the domain name bound to that connection protocol. Even if access fails, the same connection protocol is still used to access the domain name to reconnect.

[0004] Summary of the Invention

[0005] According to some embodiments of this disclosure, a client-side communication method is provided, including: requesting to establish a first connection with a first domain name of a server via a first communication protocol; in response to the failure of establishing the first connection, requesting to establish a second connection with a second domain name of the server via a second communication protocol; and in response to the successful establishment of the second connection, communicating with the server via the second connection.

[0006] In some embodiments, the first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name.

[0007] In some embodiments, the communication method further includes: in response to the failure of establishing a first connection, sending a pre-connection request every preset time interval to detect whether a connection with a first domain name can be successfully established through a first communication protocol; and determining the domain name and communication protocol to be used in the next connection request based on the detection result.

[0008] In some embodiments, determining the domain name and communication protocol to be used in the next connection request based on the probe result includes: in response to a successful connection result, determining that the next connection request will use a first domain name and a first communication protocol.

[0009] In some embodiments, the communication method further includes: adding the first domain name to the access blacklist in response to the failure of the first connection establishment; and increasing the preset time in response to the detection result being a connection failure.

[0010] In some embodiments, the more times the detection result indicates a connection failure, the longer the preset duration is increased.

[0011] In some embodiments, adding the first domain name to the access blacklist in response to the failure of establishing the first connection includes: adding the first domain name to the access blacklist in response to the number of times the first connection fails to be established exceeding a first threshold.

[0012] In some embodiments, sending a pre-connection request every preset time interval in response to a first connection failure includes: sending a pre-connection request every preset time interval in response to a detection result indicating that the number of connection failures has not exceeded a second threshold.

[0013] According to some other embodiments of this disclosure, a server-side communication method is provided, comprising: receiving a connection request from a client to establish a first connection with a first domain name of a server through a first communication protocol; in response to the failure of the first connection establishment, receiving a connection request from a client to establish a second connection with a second domain name of a server through a second communication protocol; and in response to the successful establishment of the second connection, communicating with the client through the second connection.

[0014] In some embodiments, the first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name.

[0015] In some embodiments, the communication method further includes: in response to the failure of establishing a first connection, receiving a pre-connection request sent by the client at preset intervals, wherein the pre-connection request is used to detect whether the client can successfully connect to the first domain name through a first communication protocol, and the domain name and communication protocol used in the client's next connection request are determined based on the detection result.

[0016] In some embodiments, in response to a successful connection result from the probe, the next connection request uses the first domain name and the first communication protocol.

[0017] In some embodiments, in response to the failure of the first connection establishment, the first domain name is added to the access blacklist, and in response to the detection result of connection failure, the preset time is increased.

[0018] In some embodiments, the more times the detection result indicates a connection failure, the longer the preset duration is increased.

[0019] In some embodiments, in response to the number of times the first connection establishment fails to be completed exceeding a first threshold, the first domain name is added to the access blacklist.

[0020] In some embodiments, receiving a pre-connection request sent by the client every preset time interval in response to a first connection failure includes: receiving a pre-connection request sent by the client every preset time interval in response to a detection result indicating that the number of connection failures has not exceeded a second threshold.

[0021] According to further embodiments of the present disclosure, a communication system is provided, including: a client device for executing a client-side communication method in any embodiment of the present disclosure; and a server device for executing a server-side communication method in any embodiment of the present disclosure.

[0022] According to further embodiments of the present disclosure, a communication apparatus is provided, comprising: a memory; and a processor coupled to the memory, the processor being configured to execute a communication method of any embodiment of the present disclosure based on instructions stored in the memory.

[0023] According to further embodiments of the present disclosure, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, performs the communication method of any embodiment of the present disclosure.

[0024] According to further embodiments of the present disclosure, a computer program product is provided, including instructions that, when executed by a processor, cause the processor to perform a communication method according to any embodiment of the present disclosure.

[0025] Other features, aspects, and advantages of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description

[0026] Embodiments of this disclosure are described below with reference to the accompanying drawings. It should be understood that the drawings described below are merely illustrative of some embodiments of this disclosure and are not intended to limit the scope of this disclosure. In the drawings:

[0027] Figure 1 shows a flowchart of a communication method according to some embodiments of the present disclosure;

[0028] Figure 2 shows a signaling diagram of a communication method according to some embodiments of the present disclosure;

[0029] Figure 3 shows a flowchart of a communication method according to some other embodiments of the present disclosure;

[0030] Figure 4 shows a block diagram of a communication system according to some embodiments of the present disclosure;

[0031] Figure 5 shows a block diagram of a communication device according to some embodiments of the present disclosure;

[0032] Figure 6 shows a block diagram of a communication device according to other embodiments of the present disclosure. Detailed Implementation

[0033] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. It should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein.

[0034] It should be understood that the various steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect. Unless otherwise specifically stated, the relative arrangement, numerical expressions, and values ​​of components and steps set forth in these embodiments should be interpreted as merely exemplary and do not limit the scope of this disclosure.

[0035] As used in this disclosure, the term "comprising" and its variations are open-ended terms that include at least the following elements / features but do not exclude other elements / features, i.e., "including but not limited to". The term "based on" means "at least partially based on".

[0036] It should be noted that the concepts of "first," "second," etc., used in this disclosure are used only to distinguish different devices, modules, or units, and are not intended to define the order of functions performed by these devices, modules, or units or their interdependencies. Unless otherwise specified, the concepts of "first," "second," etc., are not intended to imply that the objects described herein must be in a given temporal, spatial, rank, or any other given order.

[0037] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0038] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0039] The embodiments of this disclosure are described in detail below with reference to the accompanying drawings; however, this disclosure is not limited to these specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. Furthermore, in one or more embodiments, specific features, structures, or characteristics can be combined in any suitable manner that will be apparent to those skilled in the art from this disclosure.

[0040] The inventors of this disclosure have discovered the following problems in the aforementioned related technologies: persistent network connection failures or prolonged connection delays lead to decreased communication performance. Therefore, this disclosure proposes a communication technology solution that can improve the success rate and speed of network connections, thereby enhancing communication performance.

[0041] As mentioned earlier, using a strong binding between domain names and connection protocols for network access can lead to persistent network connection failures or prolonged connection delays. For example, when accessing a website using HTTP / 2.0, accessing the domain https: / / www.XX.com; if establishing a TCP connection fails, a retry process is triggered, but the connection is still established again using TCP. In certain network environments, the domain https: / / www.XX.com cannot establish a normal network connection using TCP, which will cause persistent network access failures or prolonged delays for that domain, rendering network functionality unavailable.

[0042] Furthermore, different domain names exhibit varying performance under different connection protocols. For example, for the same website, the performance ranking of accessing different domain names using different protocols, from highest to lowest, is: accessing domain A using QUIC, accessing domain B using TCP, accessing domain B using QUIC, and then accessing domain A using TCP. Therefore, using a fixed connection protocol to access a strongly bound domain name may result in poor communication performance.

[0043] To address the aforementioned technical problems, this disclosure proposes a communication technology solution that adaptively optimizes network connection protocols. If establishing a connection with the server's first domain name using the first communication protocol fails, a second communication protocol is used to establish a connection with the server's second domain name. In this way, the appropriate connection protocol is adaptively used for different domain names, improving the success rate and speed of network connections, thereby enhancing communication performance.

[0044] For example, the technical solution of this disclosure can be implemented through the following embodiments.

[0045] Figure 1 shows a flowchart of a communication method according to some embodiments of the present disclosure.

[0046] As shown in Figure 1, the communication method on the client side includes steps 110 to 130. In step 110, a first connection is requested to be established with the first domain name of the server through a first communication protocol. For example, the first communication protocol can be QUIC, TCP, etc.

[0047] In step 120, in response to the failure of the first connection establishment, a second connection is requested to be established with the second domain name of the server through the second communication protocol. For example, the second communication protocol can be QUIC, TCP, etc.; the binding relationship between the first domain name and the first service protocol, and the binding relationship between the second domain name and the second service protocol, can be pre-configured.

[0048] In some embodiments, the first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name. For example, the communication performance of the first domain name under the first communication protocol is better than that of the second domain name under the second communication protocol. The communication performance may include channel quality performance such as packet loss rate and latency rate.

[0049] For example, for a network access request to a specific interface, such as a news list interface ( / news / feed / ), a connection can first be established using QUIC to connect to the interface under domain A. If the connection fails, a fallback occurs, using TCP to establish a connection to the interface under domain B. The communication performance of domain A under QUIC is better than that of domain B under TCP. In this way, prioritizing the combination of the first domain name and the first communication protocol with better communication performance for network access, and then falling back to the combination of the second domain name and the second communication protocol with slightly lower performance in the event of connection failure, ensures both communication quality and improves the connection success rate, thereby improving overall communication performance.

[0050] In step 130, in response to the successful establishment of the second connection, communication with the server is initiated through the second connection.

[0051] In the above embodiments, if establishing a connection with the server's first domain name using the first communication protocol fails, a second communication protocol is used to establish a connection with the server's second domain name. This adaptive use of the appropriate connection protocol for different domain names improves the success rate and speed of network connections, thereby enhancing communication performance.

[0052] The technical solutions of this disclosure are illustrated below by way of the embodiments shown in Figure 2.

[0053] Figure 2 shows a signaling diagram of a communication method according to some embodiments of the present disclosure.

[0054] As shown in Figure 2, in event 210, the client device uses QUIC to establish a connection to the domain name A of a certain interface for a network access request.

[0055] In event 220, in response to the connection establishment failure in event 210, the server device informs the client device that the connection establishment has failed.

[0056] In event 230, the client device uses TCP to establish a connection to the interface for domain name B.

[0057] In event 240, in response to the successful connection establishment in event 230, the server device informs the client device that the connection has been successfully established.

[0058] In event 250, the client device and the server device use the connection from event 230 to communicate data.

[0059] The following examples illustrate, by way of example, how this disclosure handles communication protocol and domain name combinations that result in connection failure.

[0060] In some embodiments, in response to the failure of establishing the first connection, the first domain name is added to the access blacklist. For example, for a network access request for a certain interface, in response to the failure of establishing the first connection with the first domain name of the server through the first communication protocol, the combination of the first communication protocol and the first domain name will no longer be given priority in the next network access request for that interface.

[0061] By adding the domain name used before the fallback to the access blacklist, the longer time consumption caused by another fallback can be avoided, thereby improving the success rate and speed of network connection.

[0062] In some embodiments, in response to a failure to establish a first connection, a pre-connection request is sent at preset intervals to probe whether a successful connection can be established with the first domain name via a first communication protocol. Based on the probe result, the domain name and communication protocol to be used in the next connection request are determined. For example, if the number of times the first connection fails to establish exceeds a first threshold, the first domain name is added to an access blacklist. For example, if the probe result indicates a successful connection, the first domain name and the first communication protocol are determined to be used in the next connection request.

[0063] For example, in response to the failure to establish a connection with domain A using QUIC, domain A is added to the access blacklist; in response to the time limit for domain A being added to the access blacklist, a QUIC Preconnect request is used to probe whether a successful connection with domain A can be established using QUIC; in response to the probe result indicating a successful connection, domain A is removed from the access blacklist, and subsequent connection requests will use QUIC to establish a connection with domain A.

[0064] In this way, compared to directly removing domains from the blacklist after reaching the time threshold for access, probing can reduce the probability of connection failure and thus improve communication performance.

[0065] In some embodiments, in response to the detection result indicating that the number of connection failures does not exceed a second threshold, a pre-connection request is sent every preset time interval. For example, in response to the failure of establishing a first connection, the first domain name is added to the access blacklist; in response to the detection result indicating a connection failure, the preset time interval is increased. For example, the more times the detection result indicates a connection failure, the longer the preset time interval is increased.

[0066] For example, in response to a connection failure when probing domain A in the access blacklist, domain A is kept in the access blacklist; while domain A is in the access blacklist, a TCP connection can be established with domain B; if domain A is in the access blacklist for a longer period than a preset duration, a pre-connection request is sent to probe the establishment of a connection with domain A using QUIC; if the number of failed probes has not reached the threshold, the number of failures is incremented by 1, and the preset duration is updated (i.e., the time interval for sending pre-connection requests for QUIC and domain A is extended); if the number of failed probes reaches the threshold, no more pre-connection requests for QUIC and domain A are sent, and subsequent connection requests establish a TCP connection with domain B.

[0067] For example, if the number of consecutive failed attempts to establish a connection with domain A using QUIC exceeds threshold a (e.g., 3 times) and a successful connection is established with domain B using TCP, domain A is added to the access blacklist; if the number of times domain A is added to the access blacklist exceeds threshold b (e.g., 3 times), that is, if the number of consecutive failed probe results after domain A is added to the access blacklist exceeds threshold b, no more pre-connection requests for QUIC and domain A are sent.

[0068] For example, the preset duration broken_delay can be updated according to broken_delay = broken_delay × (2^(brokencount-1)), where brokencount is the number of times the probe result is a failure. If the initial value of brokencount is 0, brokencount is incremented by 1 each time the probe fails, and the preset duration is updated.

[0069] For example, a maximum default value for `brokencount` can be set as a threshold for the number of times a domain name is added to the access blacklist. For instance, if the maximum default value is 10, and the time interval for sending a pre-connection request corresponding to the access blacklist is 300 seconds, the maximum time for adding a domain name to the access blacklist is 42 hours.

[0070] In the above embodiments, in response to a domain name in the access blacklist reaching a time threshold, a pre-connection method is used to probe whether the domain name and its corresponding communication protocol can successfully establish a connection, and the probe frequency is adaptively adjusted according to the number of probe failures. This avoids connection failures caused by directly removing the domain name from the access blacklist, improving the connection success rate and thus enhancing communication performance.

[0071] Figure 3 shows a flowchart of a communication method according to some other embodiments of the present disclosure.

[0072] As shown in Figure 3, the communication method on the server side includes steps 310 to 330. In step 310, a connection request is received from the client to establish a first connection with the server's first domain name through a first communication protocol.

[0073] In step 320, in response to the failure of the first connection establishment, a connection request is received from the client to establish a second connection with the server's second domain name through the second communication protocol.

[0074] In some embodiments, the first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name.

[0075] In step 330, in response to the successful establishment of the second connection, communication with the client is initiated through the second connection.

[0076] In some embodiments, in response to the failure of the first connection establishment, a pre-connection request sent by the client is received at preset intervals. The pre-connection request is used to detect whether the client can successfully connect to the first domain name through the first communication protocol. The domain name and communication protocol used in the client's next connection request are determined based on the detection result.

[0077] In some embodiments, in response to a successful connection detection, the next connection request uses the first domain name and the first communication protocol. For example, in response to a connection failure detection result not exceeding a second threshold, a pre-connection request sent by the client is received every preset time interval.

[0078] In some embodiments, in response to a first connection failure, the first domain name is added to an access blacklist, and in response to a connection failure detected by the probe, a preset duration is increased. For example, the more times the probe detects connection failures, the longer the preset duration is increased. For example, in response to the number of first connection failures exceeding a first threshold, the first domain name is added to the access blacklist.

[0079] Figure 4 shows a block diagram of a communication system according to some embodiments of the present disclosure.

[0080] As shown in Figure 4, the communication system 4 includes: a client device 41, used to execute the client-side communication method in any embodiment of the present disclosure; and a server device 42, used to execute the server-side communication method in any embodiment of the present disclosure.

[0081] Figure 5 shows a block diagram of a communication device according to some embodiments of the present disclosure.

[0082] As shown in Figure 5, memory 51 is used to store one or more computer-readable instructions. Memory 51 may include any combination of various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory, including but not limited to random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), and flash memory. Memory 51 may, for example, store operating systems, application programs, boot loaders, databases, and other programs, as well as various application programs and various data.

[0083] The processor 52 is configured to execute computer-readable instructions to implement the communication method described in any of the foregoing embodiments. Specific implementations of each step of the communication method can be found in the above embodiments; repeated details will not be elaborated upon here.

[0084] Processor 52 can be configured to perform the steps in any of the above embodiments. Processor 52 can be embodied in various processing devices, such as a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. The central processing unit (CPU) can be an x86 or ARM architecture, etc.

[0085] The processor 52 and the memory 51 can communicate with each other directly or indirectly. For example, the processor 52 and the memory 51 can communicate via a network. The network can include a wireless network, a wired network, and / or any combination of wireless and wired networks. The processor 52 and the memory 51 can also communicate with each other via a system bus, which is not limited in this disclosure.

[0086] It should be noted that the components of the communication device 5 shown in Figure 5 are merely exemplary and not limiting. The communication device 5 may have other components depending on the specific application requirements. The processor 52 can control other components in the communication device 5 to perform the desired functions.

[0087] The communication device 5 can be implemented by software, firmware and / or hardware, and can be integrated into a device with the relevant application installed.

[0088] Figure 6 shows a block diagram of a communication device according to other embodiments of the present disclosure.

[0089] The communication device 6 shown in Figure 6 can be a computer system with a dedicated hardware structure, which can perform corresponding functions when relevant applications are installed.

[0090] Communication devices 6 include, but are not limited to, mobile terminals such as smartphones, laptops, personal digital assistants (PDAs), tablet PCs, portable multimedia players (PMPs), in-vehicle terminals (e.g., in-vehicle navigation terminals), wearable devices, and fixed terminals such as digital televisions and desktop computers.

[0091] As shown in Figure 6, the Central Processing Unit (CPU) 61 performs various processes based on a program stored in the Read-Only Memory (ROM) 62 or a program loaded from the Storage Section 68 into the Random Access Memory (RAM) 63. The RAM 63 stores data required as needed when the CPU 61 performs various processes. The CPU is merely exemplary and can also be other types of processors, such as the various processors described above. The ROM 62, RAM 63, and Storage Section 68 can be various forms of computer-readable storage media. It should be noted that although the ROM 62, RAM 63, and Storage Section 68 are shown separately in Figure 6, one or more of them can be combined or located in the same or different memories or storage modules.

[0092] CPU 61, ROM 62 and RAM 63 are interconnected via bus 64. Input / output interface 65 is also connected to bus 64.

[0093] The following components are connected to the input / output interface 65: input section 66, such as a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output section 67, including displays such as cathode ray tube (CRT), liquid crystal display (LCD), speakers, vibrators, etc.; storage section 68, including hard disks, magnetic tapes, etc.; and communication section 69, including network interface cards such as LAN cards, modems, etc. The communication section 69 allows communication processing to be performed via a network such as the Internet. It is readily understood that although the parts of the communication device 6 shown in Figure 6 communicate via bus 64, they can also communicate via a network or other means, wherein the network can include wireless networks, wired networks, and / or any combination of wireless and wired networks.

[0094] As needed, drive 610 is also connected to input / output interface 65. Removable media 611, such as disks, optical disks, magneto-optical disks, semiconductor memories, etc., are installed on drive 610 as needed, so that computer programs read from them can be installed into storage section 68 as needed.

[0095] When the above series of processes are implemented through software, the program constituting the software can be installed from a network such as the Internet or a storage medium such as removable medium 611.

[0096] According to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of this disclosure include a computer program product that, when run on a computer, causes the computer to implement the communication methods described in any of the foregoing embodiments. The computer program product includes computer instructions carried on a computer-readable medium, containing program code for performing the communication methods shown in the flowcharts. In such embodiments, the computer instructions can be downloaded and installed from a network via communication section 69, or installed from storage section 68, or installed from ROM 62. When the computer program is executed by CPU 61, the communication methods of the embodiments of this disclosure are performed.

[0097] It should be noted that, in the context of this disclosure, a computer-readable medium can be a tangible medium that may contain or store programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0098] A computer-readable medium may be a computer-readable storage medium, a computer-readable signal medium, or any combination thereof.

[0099] Computer-readable storage media include, but are not limited to, systems, apparatuses, or devices that are electrical, magnetic, optical, electromagnetic, infrared, or semiconductor, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. Computer instructions are stored on the computer-readable storage medium that, when executed by a processor, implement the communication method described in any of the foregoing embodiments.

[0100] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0101] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.

[0102] In some embodiments, a computer program is also provided, comprising: instructions that, when executed by a processor, cause the processor to perform the communication method described in any of the foregoing embodiments. For example, the instructions may be embodied in computer program code.

[0103] In embodiments of this disclosure, computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof. These programming languages ​​include, but are not limited to, object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0104] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0105] The functions described above can be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary hardware logic components that can be used include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0106] While specific embodiments of this disclosure have been described in detail by way of example, those skilled in the art should understand that the examples are for illustrative purposes only and not intended to limit the scope of this disclosure. Those skilled in the art should understand that modifications can be made to the above embodiments without departing from the scope and spirit of this disclosure. The scope of this disclosure is defined by the appended claims.

Claims

1. A communication method, comprising: Using the first communication protocol, a request is made to establish a first connection with the server's first domain name; In response to the failure of the first connection establishment, a second connection is requested to be established with the second domain name of the server through the second communication protocol; In response to the successful establishment of the second connection, communication with the server is initiated through the second connection.

2. The communication method according to claim 1, wherein, The first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name.

3. The communication method according to claim 1 further includes: In response to the failure of the first connection establishment, a pre-connection request is sent every preset time interval to detect whether a successful connection can be established with the first domain name through the first communication protocol. Based on the detection results, determine the domain name and communication protocol to be used in the next connection request.

4. The communication method according to claim 3, wherein, The step of determining the domain name and communication protocol for the next connection request based on the detection results includes: In response to the detection result indicating a successful connection, it is determined that the next connection request will use the first domain name and the first communication protocol.

5. The communication method according to claim 3 further includes: In response to the failure of the first connection establishment, the first domain name is added to the access blacklist; In response to the detection result indicating a connection failure, the preset time is increased.

6. The communication method according to claim 5, wherein, The more times the connection fails, the longer the preset duration is increased.

7. The communication method according to claim 5, wherein, The response to the failure of the first connection establishment, adding the first domain name to the access blacklist includes: In response to the first connection failing to establish more than a first threshold, the first domain name is added to the access blacklist.

8. The communication method according to claim 3, wherein, The response to the failure of the first connection establishment, sending a pre-connection request at preset intervals includes: In response to the detection result indicating that the number of connection failures has not exceeded the second threshold, a pre-connection request is sent every preset time interval.

9. A communication method, comprising: Receives a connection request from the client to establish a first connection with the server's first domain name via a first communication protocol; In response to the failure of the first connection establishment, a connection request from the client to establish a second connection with the second domain name of the server through a second communication protocol is received. In response to the successful establishment of the second connection, communication is initiated with the client through the second connection.

10. The communication method according to claim 9, wherein, The first communication protocol is different from the second communication protocol, and the first domain name is different from the second domain name.

11. The communication method according to claim 9, further comprising: In response to the failure of the first connection establishment, a pre-connection request sent by the client is received every preset time interval. The pre-connection request is used to detect whether the client can successfully connect to the first domain name via the first communication protocol. The domain name and communication protocol used in the client's next connection request are determined based on the detection results.

12. The communication method according to claim 11, wherein, In response to the detection result indicating a successful connection, the next connection request will use the first domain name and the first communication protocol.

13. The communication method according to claim 11, wherein, In response to the failure of the first connection establishment, the first domain name is added to the access blacklist; in response to the detection result being a connection failure, the preset duration is increased.

14. The communication method according to claim 13, wherein, The more times the connection fails, the longer the preset duration is increased.

15. The communication method according to claim 13, wherein, If the number of times the first connection fails to be established exceeds a first threshold, the first domain name is added to the access blacklist.

16. The communication method according to claim 11, wherein, The response to the failure of the first connection establishment, receiving a pre-connection request sent by the client at preset intervals, includes: In response to the detection result indicating that the number of connection failures has not exceeded the second threshold, a pre-connection request sent by the client is received every preset time interval.

17. A communication system, comprising: A client device, configured to perform the communication method according to any one of claims 1-8; A server-side device for executing the communication method according to any one of claims 9-16.

18. A communication device, comprising: Memory; and A processor coupled to the memory, the processor being configured to execute the communication method of any one of claims 1-8, or the communication method of any one of claims 9-16, based on instructions stored in the memory device.

19. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the communication method as described in any one of claims 1-8, or the communication method as described in any one of claims 9-16.

20. A computer program product comprising instructions that, when executed by a processor, cause the processor to perform the communication method of any one of claims 1-8, or the communication method of any one of claims 9-16.