WO2021008591A1 - 数据传输方法、装置及系统 - Google Patents

数据传输方法、装置及系统 Download PDF

Info

Publication number
WO2021008591A1
WO2021008591A1 PCT/CN2020/102479 CN2020102479W WO2021008591A1 WO 2021008591 A1 WO2021008591 A1 WO 2021008591A1 CN 2020102479 W CN2020102479 W CN 2020102479W WO 2021008591 A1 WO2021008591 A1 WO 2021008591A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
initial
client
tcp
target
Prior art date
Application number
PCT/CN2020/102479
Other languages
English (en)
French (fr)
Inventor
李俊武
申思
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021008591A1 publication Critical patent/WO2021008591A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • This application relates to the field of computer communication, and in particular to a data transmission method, device and system.
  • the multiple links may include links based on long term evolution (LTE) technology and links based on wireless fidelity (WIFI) technology. Therefore, in order to make rational use of these multiple links, a multipath transmission control protocol (MPTCP) that uses multipaths to concurrently transmit data has emerged.
  • MPTCP multipath transmission control protocol
  • load balance (LB) technology is more commonly used in communications, MPTCP based on LB technology has also emerged.
  • the data transmission system usually includes: a client, multiple initial servers, and multiple target servers.
  • the client can establish an MPTCP link with a target server, and the MPTCP link includes a primary transmission control protocol (transport control, TCP) link and a secondary TCP link established between the client and the target server.
  • TCP transport control protocol
  • the client can send the request of the main TCP link to an initial server randomly selected from multiple initial servers, and the initial server that receives the request will receive the request in Send to a randomly selected target server among multiple target servers.
  • the target server that receives the request sends a response to the request to the client, so that the client establishes a primary TCP link with the target server.
  • the client can also establish a secondary TCP link with the target server, and the client can send the request for the secondary TCP link to an initial server randomly selected from multiple initial servers , The initial server that receives the request sends the received request to a randomly selected target server among multiple target servers.
  • the target server that receives the request sends a response to the request to the client, so that the client establishes a secondary TCP link with the target server.
  • the MPTCP link requires all its TCP links to be the link between the client and the same target server, and in the related technology, the client sends a request for establishing a primary TCP link and a request for establishing a secondary TCP link.
  • the request may be forwarded to different initial servers and then to different target servers. Therefore, the established primary TCP link and secondary TCP link may not be able to form an MPTCP link.
  • This application provides a data transmission method, device and system, which can solve the problem that MPTCP links may not be formed in related technologies.
  • a data transmission method is provided, which is applied to a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • the method includes: Sending the instruction information of the first initial server, where the first initial server and the first target server are both located on the TCP link established by the client, and the first initial server is the Any one of the multiple initial servers; the client sends a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information, wherein the second initial server is the multiple initial For any initial server in the server, the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP link, and the secondary TCP request carries the indication information; for example, the secondary TCP link
  • the TCP request includes an address identification field, and the address identification field carries the indication information of the first initial server.
  • the second initial server When the second initial server is different from the first initial server indicated by the indication information, forward the secondary TCP request to the first initial server; the first initial server forwards the secondary TCP The request is forwarded to the first target server; the first target server sends a response to the secondary TCP request to the client based on receiving the secondary TCP request.
  • the client can carry the indication information in the secondary TCP request, so that the second initial server receives the secondary TCP request.
  • the secondary TCP request can be forwarded to the first initial server based on the instruction information, so that the first initial server forwards the secondary TCP request to the server that receives the primary TCP request. It is ensured that the target server on the primary TCP link and the target server on the secondary TCP link are the same target server, thereby ensuring the establishment of the MPTCP link and realizing load balancing under the MPTCP link.
  • the secondary TCP request is forwarded to the first target server.
  • the client may send the main TCP request to the first target service, and the sending process includes: the client Sending a main TCP request for establishing the main TCP link to the first initial server, and the first initial server forwards the main TCP request to the first target server.
  • the foregoing process of the first target server sending the indication information of the first initial server to the client may include: the first target server sending a response to the main TCP request to the client, The response to the main TCP request carries the indication information.
  • the response of the main TCP request carries the indication information of the first initial server, and there is no need to send the indication information separately, which saves network bandwidth and improves the compatibility of the data transmission method.
  • the above-mentioned process for the first target server to send the indication information of the first initial server to the client may also be: the first target server respectively sends the response of the main TCP request that does not carry the indication information to the client, And the instructions.
  • the indication information may be the identity of the first initial server, or information indicating the identity of the first initial server.
  • the indication information includes the identifier of the first initial server as an example for description.
  • the identification of the initial server may be a User Identification (UID) of the initial server, and the UID may be data of any size, for example, 8-bit data.
  • the multiple target servers are all configured with a correspondence relationship between the identities and addresses of the multiple initial servers.
  • the address of the initial server may be an IP address or a media access control address (Media Access Control Address, MAC), which is not limited in the embodiment of the present application.
  • MAC Media Access Control Address
  • the foregoing process of the first initial server forwarding the main TCP request to the first target server may include: the first initial server processes the main TCP request so that the processed main TCP request The request carries the address of the first initial server.
  • the first initial server sends the processed main TCP request to the first target server.
  • the method further includes: the first target server obtains the first initial server carried in the main TCP request The address of the server.
  • the first target server determines the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • the multiple initial servers may also be configured with a correspondence between the identities and addresses of the multiple initial servers.
  • the process of the second initial server forwarding the secondary TCP request to the first initial server may include:
  • the second initial server first obtains the identifier of the first initial server carried in the secondary TCP request. Then, the second initial server determines the address of the first initial server based on the identity of the first initial server and the correspondence between the identities and addresses of the multiple initial servers. Finally, the second initial server sends the secondary TCP request to the first initial server based on the address of the first initial server.
  • each initial server can forward the secondary TCP request to the initial server on the primary TCP link according to the identification of the primary server on the primary TCP link carried in the secondary TCP request, so that all TCP requests are sent by The same initial server is forwarded to the target server. Therefore, when the LB cluster is in the master master mode, there is no need for additional information synchronization between the LB clusters in the related technology, which reduces the difficulty of implementing the LB cluster in the master master mode, and realizes the LB cluster in the master master mode in the MPTCP scenario. Load balancing.
  • the primary TCP request carries the key of the MPTCP
  • the secondary TCP request carries token information for indicating the key
  • the method further includes: connecting in the first initial server Before forwarding the main TCP request to the first target server, the first initial server establishes a correspondence between the key and the first target server.
  • the first initiating server searches for the corresponding relationship between the key and the first target server The first target server corresponding to the key indicated by the token information.
  • sending the primary TCP request by the client to the first initial server may include: the client passes through the transit The device sends the main TCP request to the first initial server.
  • the process in which the client sends a secondary TCP request to the second initial server according to the instruction information may also include: the client sends the secondary TCP request to the second initial server through the transit device according to the instruction information. request.
  • a data transmission method is provided, the data transmission method is used for a client in a data transmission system, the data transmission system further includes: multiple initial servers and multiple target servers, the method includes:
  • the client receives the indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein the first target server and the first initial server are both located in the client The established main transmission control protocol TCP link.
  • the client sends a secondary TCP request for establishing a secondary TCP link to a second initial server according to the instruction information, wherein the second initial server is any one of the multiple initial servers, and the secondary The TCP link and the primary TCP link belong to the same multi-path transmission control protocol MPTCP link, and the secondary TCP request carries the indication information.
  • the client receives a response to the secondary TCP request sent by the first target server.
  • the method before the client receives the indication information of the first initial server sent by the first target server, the method further includes: the client sends to the first initial server The main TCP request to establish the main TCP link.
  • the foregoing process of the client receiving the indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers may include: the client receiving the main TCP request sent by the first target server The response to the main TCP request carries the indication information.
  • the data transmission system further includes a transit device.
  • the process of the client sending the primary TCP request for establishing the primary TCP link to the first initial server may include: the client sends the primary TCP request to the first initial server through the transit device The main TCP request.
  • the process in which the client sends a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information may include: the client sends to the second initial server through the transit device according to the instruction information TCP requests.
  • a data transmission method for use in a third initial server in a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • the third The initial server is any one of the multiple initial servers, and the method includes: the third initial server receives a secondary TCP request for establishing a secondary TCP link sent by another device, wherein the other device includes: For the client or any one of the multiple initial servers except the third initial server, the secondary TCP request carries indication information, and the indication information is used to indicate the multiple initial servers
  • the initial server located on the primary TCP link established by the client, the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP link; the third initial server is at When it is different from the initial server indicated by the indication information, forward the secondary TCP request to the initial server indicated by the indication information.
  • the third initial server when the third initial server is the same as the initial server indicated by the indication information, forwards the secondary TCP request to a first target server, and the first target server is the multiple target servers The target server located on the main TCP link.
  • the method further includes: the third initiation server receives the primary TCP request sent by the client For the primary TCP request of the TCP link, the initial server indicated by the indication information is the third initial server; the third initial server forwards the primary TCP request to the first target server.
  • the indication information includes an identifier of the third initial server, and each of the multiple target servers is configured with a correspondence between the identifiers and addresses of the multiple initial servers;
  • the third initial server forwarding the main TCP request to the first target server includes: the third initial server processes the main TCP request so that the processed main TCP request carries The address of the third initial server; the third initial server sends the processed main TCP request to the first target server.
  • the indication information carries an identifier of the initial server it indicates, and the multiple initial servers are all configured with a correspondence between the identifiers and addresses of the multiple initial servers;
  • forwarding the secondary TCP request to the initial server indicated by the indication information includes: the third initial server obtains the indication The identity of the initial server carried in the information; the third initial server determines the initial server indicated by the indication information based on the acquired identity of the initial server and the correspondence between the identities and addresses of the multiple initial servers The address; the third initial server sends the secondary TCP request to the initial server indicated by the indication information based on the address of the initial server indicated by the indication information.
  • the primary TCP request carries the key of the MPTCP
  • the secondary TCP request carries token information for indicating the key
  • the method further includes: adding the key to the third initial server Before forwarding the primary TCP request to the first target server, the third initial server establishes the correspondence between the key and the first target server; the third initial server sends the secondary TCP request Before forwarding to the first target server, the third initial server searches the corresponding relationship between the key and the first target server for the first corresponding to the key indicated by the token information One target server.
  • the data transmission system further includes a transit device;
  • the third initiating server receiving the main TCP request sent by the client to establish the main TCP link includes: the third initiating server passes through the The transit device receives the main TCP request sent by the client.
  • the receiving, by the third initial server, a secondary TCP request for establishing a secondary TCP link sent by another device includes: when the other device is the client, the third initial server receives the client through the transit device A secondary TCP request sent by the end to establish a secondary TCP link.
  • the secondary TCP request includes an address identification field, and the address identification field carries the indication information.
  • a data transmission method is provided.
  • the data transmission method is used for a first target server in a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • a target server is a server located on the main TCP link established by the client among the plurality of target servers, and the method includes:
  • the first target server sends the indication information of the first initial server to the client, where the first initial server is: the initial server located on the main TCP link among the multiple initial servers.
  • the first target server receives a secondary TCP request sent by the first initial server to establish a secondary TCP link, where the secondary TCP link and the primary TCP link belong to the same multi-path transmission control protocol MPTCP link.
  • the first target server sends a response to the secondary TCP request to the client based on the secondary TCP request.
  • the method further includes: the first target server receives the establishment of the first initial server forwarded by the first target server The main TCP request of the main TCP link.
  • the foregoing process of the first target server sending the indication information of the first initial server to the client may include: the first target server sending a response to the main TCP request to the client, The response to the main TCP request carries the indication information.
  • the response of the main TCP request carries the indication information of the first initial server, and there is no need to send the indication information separately, which saves network bandwidth and improves the compatibility of the data transmission method.
  • the above-mentioned process for the first target server to send the indication information of the first initial server to the client may also be: the first target server respectively sends the response of the main TCP request that does not carry the indication information to the client, And the instructions.
  • the indication information may be the identity of the first initial server, or information indicating the identity of the first initial server.
  • the indication information includes the identifier of the first initial server as an example for description.
  • the identification of the initial server may be a User Identification (UID) of the initial server, and the UID may be data of any size, for example, 8-bit data.
  • UID User Identification
  • the multiple target servers are all configured with a correspondence relationship between the identities and addresses of the multiple initial servers.
  • the method further includes: the first target server first obtains the first initial server carried in the main TCP request the address of. Then, the first target server determines the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • a data transmission system in a fifth aspect, includes a client, multiple initial servers, and multiple target servers,
  • the first target server is used to send indication information of the first initial server to the client, where both the first initial server and the first target server are located on the main transmission control protocol TCP link established by the client
  • the first initial server is any one of the multiple initial servers
  • the client is configured to send a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information
  • the second initial server is any one of the multiple initial servers, the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP link, and the secondary TCP request Carrying the instruction information
  • the second initial server is used to forward the secondary TCP request to the first initial server when it is different from the first initial server indicated by the instruction information
  • the first initial server is used to forward the secondary TCP request to the first target server
  • the first target server is used to send the secondary TCP request to the client based on receiving the secondary TCP request response.
  • the second initial server is configured to forward the secondary TCP request to the first target server when it is the same as the first initial server indicated by the indication information.
  • the client is configured to send, to the first initiating server, the main TCP for establishing the main TCP link before the first target server sends the instruction information of the first initiating server to the client.
  • Request the first initial server is used to forward the main TCP request to the first target server;
  • the first target server is configured to send a response to the main TCP request to the client, and the response to the main TCP request carries the indication information.
  • the indication information includes an identifier of the first initial server, and each of the multiple target servers is configured with a correspondence between the identifiers and addresses of the multiple initial servers;
  • the first initial server is used to process the main TCP request, so that the processed main TCP request carries the address of the first initial server; the first initial server is used to send the A target server sends the processed main TCP request;
  • the first target server is configured to obtain the address of the first initial server carried in the main TCP request before the first target server is used to send the instruction information of the first initial server to the client;
  • the first target server is used to determine the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • the indication information includes an identifier of the first initial server, and each of the multiple initial servers is configured with a correspondence between the identifiers and addresses of the multiple initial servers;
  • the second initial server is used to obtain the identifier of the first initial server carried in the secondary TCP request
  • the second initial server is configured to determine the address of the first initial server based on the identity of the first initial server and the correspondence between the identities and addresses of the multiple initial servers;
  • the second initial server is configured to send the secondary TCP request to the first initial server based on the address of the first initial server.
  • the address of the initial server includes an Internet Protocol IP address.
  • the secondary TCP request includes an address identification field, and the address identification field carries indication information of the first initial server.
  • the primary TCP request carries the MPTCP key
  • the secondary TCP request carries token information for indicating the key
  • the first initial server is configured to establish the correspondence between the key and the first target server before the first initial server forwards the main TCP request to the first target server;
  • the first initial server is used to search for the corresponding relationship between the key and the first target server before the first initial server forwards the secondary TCP request to the first target server The first target server corresponding to the key indicated by the token information.
  • the data transmission system further includes a transfer device
  • the client is configured to send a main TCP request to the first initial server, including: the client is configured to send the main TCP request to the first initial server through the transit device;
  • the client is configured to send a secondary TCP request to the second initial server according to the instruction information, including: the client is configured to send a secondary TCP request to the second initial server through the transit device according to the instruction information.
  • a data transmission device for a client in a data transmission system.
  • the data transmission system further includes: multiple initial servers and multiple target servers.
  • the data transmission device includes: a first receiving module, a sending module, and The second receiving module.
  • the first receiving module is configured to receive the indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein the first target server and the first initial server are both located in the host established by the client Transmission control protocol TCP link;
  • the sending module is used to send a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information, where the second initial server is any one of the multiple initial servers, and the secondary TCP link is connected to the main TCP link
  • the path belongs to the same multi-path transmission control protocol MPTCP link, and the secondary TCP request carries indication information;
  • the second receiving module is configured to receive the response to the secondary TCP request sent by the first target server.
  • the data transmission device further includes: a sending master request module, configured to send to the first initial server before receiving the instruction information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers The main TCP request to establish the main TCP link.
  • a sending master request module configured to send to the first initial server before receiving the instruction information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers The main TCP request to establish the main TCP link.
  • the first receiving device is further configured to: receive a response to the main TCP request sent by the first target server, where the response to the main TCP request carries indication information.
  • the data transmission system further includes a transfer device.
  • the sending main request module is also used to: send the main TCP request to the first initial server through the transit device.
  • the sending module is further used for sending the secondary TCP request to the second initial server through the transit device according to the instruction information.
  • a data transmission device for use in a third initial server in a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • the third The initial server is any one of the multiple initial servers, and the device includes: a receiving module and a forwarding module.
  • the receiving module is configured to receive a secondary TCP request for establishing a secondary TCP link sent by another device, where the other device includes: the client or the multiple initial servers other than the third initial server For any server, the secondary TCP request carries indication information, and the indication information is used to indicate the primary server on the primary TCP link established by the client among the multiple primary servers, the secondary TCP The link and the main TCP link belong to the same multi-path transmission control protocol MPTCP link;
  • the forwarding module is configured to forward the secondary TCP request to the initial server indicated by the indication information when the third initial server is different from the initial server indicated by the indication information.
  • the data transmission device further includes: a secondary request forwarding module, configured to forward the secondary TCP request to the first target server when the third initial server is the same as the initial server indicated by the indication information,
  • the first target server is a target server located on the main TCP link among the multiple target servers.
  • the data transmission device further includes: a receiving main request module and a forwarding main request module.
  • the receiving primary request module is configured to receive the primary TCP request for establishing the primary TCP link sent by the client before the third initial server receives the secondary TCP request for establishing the secondary TCP link sent by other devices, so
  • the initial server indicated by the indication information is the third initial server;
  • the main request forwarding module is used to forward the main TCP request to the first target server.
  • the indication information includes an identifier of the third initial server, and each of the multiple target servers is configured with a correspondence between the identifiers and addresses of the multiple initial servers.
  • the forwarding main request module is also used to process the main TCP request so that the processed main TCP request carries the address of the third initial server; and sends the processed all the addresses to the first target server.
  • the main TCP request is described.
  • the indication information carries an identifier of the initial server indicated by the indication information
  • the multiple initial servers are all configured with a correspondence between the identifiers and addresses of the multiple initial servers.
  • the forwarding module is also used to obtain the identity of the initial server carried in the indication information; based on the obtained identity of the initial server and the correspondence between the identities and addresses of the multiple initial servers, determine where the indication information is The address of the indicated initial server; based on the address of the initial server indicated by the indication information, the secondary TCP request is sent to the initial server indicated by the indication information.
  • the primary TCP request carries a key of the MPTCP
  • the secondary TCP request carries token information for indicating the key.
  • the data transmission device also includes: an establishment module and a search module.
  • An establishment module configured to establish the correspondence between the key and the first target server before the third initial server forwards the main TCP request to the first target server;
  • the searching module is configured to search for the corresponding relationship between the key and the first target server by the third initial server before the third initial server forwards the secondary TCP request to the first target server The first target server corresponding to the key indicated by the token information.
  • the data transmission system further includes a transit device; and the main request receiving module is further configured to receive the main TCP request sent by the client through the transit device.
  • the receiving secondary request module is further configured to receive, through the transit device, a secondary TCP request for establishing a secondary TCP link sent by the client when the other device is the client.
  • the secondary TCP request includes an address identification field, and the address identification field carries the indication information.
  • a data transmission device which is used in a first target server in a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • the first target server is multiple target servers.
  • the data transmission device includes: a first sending module, a receiving module, and a second sending module.
  • the first sending module is configured to send the indication information of the first initial server to the client, where the first initial server is: the initial server located on the main TCP link among the multiple initial servers.
  • the receiving module is used to receive a secondary TCP request sent by the first initial server to establish a secondary TCP link, and the secondary TCP link and the primary TCP link belong to the same multi-path transmission control protocol MPTCP link.
  • the second sending module is used to send a response to the secondary TCP request to the client based on the secondary TCP request.
  • the data transmission device further includes: a main request receiving module, configured to receive a main TCP request forwarded by the first initial server to establish a main TCP link before sending the indication information of the first initial server to the client.
  • a main request receiving module configured to receive a main TCP request forwarded by the first initial server to establish a main TCP link before sending the indication information of the first initial server to the client.
  • the first sending module is further configured to: the first target server sends a response to the main TCP request to the client, and the response to the main TCP request carries indication information.
  • the indication information includes an identifier of the first initial server, and the multiple target servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the data transmission device further includes: an acquisition module and a determination module.
  • the acquiring module is configured to acquire the address of the first initial server carried in the main TCP request before sending the instruction information of the first initial server to the client;
  • the determining module is used to determine the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • a computer-readable storage medium is provided, and instructions are stored in the computer-readable storage medium.
  • the instructions When the instructions are run on a computer, the computer executes any one of the second to fourth aspects.
  • the described data transmission method is provided.
  • a computer program product containing instructions, which when the computer program product runs on a computer, causes the computer to execute the data transmission method described in any one of the second to fourth aspects.
  • the client since the first target server sends the indication information of the first initial server on the primary TCP link to the client, the client can carry the indication in the secondary TCP request Information so that after receiving the secondary TCP request, the second initial server can forward the secondary TCP request to the first initial server based on the instruction information, so that the first initial server forwards the secondary TCP request to the receiving primary TCP request server. It is ensured that the target server on the primary TCP link and the target server on the secondary TCP link are the same target server, thereby ensuring the establishment of the MPTCP link and realizing load balancing under the MPTCP link.
  • FIG. 1 is a schematic structural diagram of a data transmission system using four-layer load balancing technology provided by this application;
  • FIG. 2 is a schematic structural diagram of a data transmission system using seven-layer load balancing technology provided by this application;
  • FIG. 3 is a flowchart of a data transmission method provided by this application.
  • FIG. 4 is a flowchart of a data transmission method provided by this application.
  • FIG. 5 is a flowchart of another data transmission method provided by this application.
  • FIG. 6 is a block diagram of a data transmission device provided by this application.
  • FIG. 7 is a block diagram of a data transmission device provided by this application.
  • FIG. 8 is a block diagram of another data transmission device provided by this application.
  • FIG. 9 is a block diagram of another data transmission device provided by this application.
  • FIG. 10 is a block diagram of another data transmission device provided by this application.
  • FIG. 11 is a block diagram of another data transmission device provided by this application.
  • the data transmission system usually includes a client and a target server.
  • the client has multiple ports (ports), and the client can select one of the multiple ports as the source port, and establish a TCP link with the target server through the source port, and then realize the connection with the target through the TCP link Single-path data transmission between servers.
  • the bandwidth performance between the client and the target server is limited by the single path, and the TCP link does not have high availability.
  • the multiple links may include a TCP link based on LTE technology (referred to as LTE-TCP link) and a TCP link based on WIFI technology (referred to as WIFI-TCP link), etc.
  • LTE-TCP link LTE-TCP link
  • WIFI-TCP link WIFI-TCP link
  • path refers to the whole process from the starting point (that is, the sending end, such as the client) to the end (that is, the receiving end, such as the target server). routing.
  • port A may be an LTE network port
  • port B may be a WIFI network port.
  • the MPTCP between the client and the target server may include a primary TCP link and a secondary TCP link, and the client may first establish a primary TCP link with the target server, and then establish a secondary TCP link with the target server.
  • the process of establishing the main TCP link between the client and the target server may include: the client sends a main TCP request to the target server through port A, and the main TCP request may be a SYN message.
  • the SYN message carries a multipath capability (MP_CAPABLE) field.
  • MP_CAPABLE field is used to indicate that the client supports the MPTCP link, and the MP_CAPABLE field contains the key (key) of the MPTCP link generated by the client. Used to identify the MPTCP link.
  • the target server After receiving the SYN message, sends a response to the main TCP request to the client.
  • the response to the main TCP request may be a SYN ACK message.
  • the SYN ACK message carries the MP_CAPABLE field, and the MP_CAPABLE field is used to indicate that the target server supports the MPTCP link.
  • the client After receiving the response to the main TCP request sent by the target server, the client sends an ACK message to the target server.
  • the ACK message carries the MP_CAPABLE field.
  • the MP_CAPABLE field is used to indicate that both the client and the target server support MPTCP connections, and the MP_CAPABLE field contains the key of the MTPTCP link generated by the client. At this point, the main TCP link is established.
  • the process of establishing a secondary TCP link between the client and the target server may include: the client sends a secondary TCP request to the server through port B, and the secondary TCP request may be a SYN message.
  • the SYN message carries a multipath join (MP_JOIN) field and a token (token) field.
  • MP_JOIN multipath join
  • token token
  • the MP_JOIN field is used to indicate that the client supports MPTCP connections
  • the token field can be used to indicate the key of the aforementioned MTPTCP link.
  • the target server After receiving the SYN message, the target server sends a response to the second TCP request to the client.
  • the response to the second TCP request may be a SYN ACK message.
  • the SYN ACK message carries the MP_JOIN field.
  • the client After receiving the SYN ACK message sent by the target server, the client sends an ACK message to the target server, and the ACK message carries the MP_JOIN field.
  • the target server After receiving the ACK message sent by the client, the target server sends an ACK message to the client.
  • the ACK message is a TCP standard ACK message, and the ACK message sent by the client indicates the receipt confirmation. At this point, the secondary TCP link is established.
  • the data transmission system usually includes: a client, a transfer device, and multiple servers. Since the LB technology in the related art includes a four-layer LB technology and a seven-layer LB technology, the above-mentioned data transmission system may include a different number of servers according to the LB technology applied thereto. The data transmission systems based on these two LB technologies will be described in detail below.
  • a data transmission system applying the four-layer LB technology may include: a client 110, a transfer device 120, and multiple servers, and the multiple servers include multiple initial servers 130 and multiple target servers 140.
  • the client 110 may be an electronic device such as a mobile phone, a personal computer (PC), or a tablet computer.
  • the transfer device 120 may be a device with a data transfer function, such as a switch or a router.
  • the multiple initial servers 130 may be a server cluster that provides four-tier LB services.
  • the target server 140 may be a physical server, a virtual machine, or a container.
  • the target server 140 is used to process data transmitted on the MPTCP link. Further, the client 110 may be respectively connected to the transit device 120 and multiple target servers 140 through the network, and the transit device 120 may also be respectively connected to the multiple initial servers 130 through the network. Multiple initial servers 130 may also be connected to multiple target servers 140 via a network.
  • FIG. 2 shows a schematic structural diagram of a data transmission system using seven-layer LB technology provided by an embodiment of the present application.
  • the data transmission system adds a layer of servers to the data transmission system shown in FIG. 1, that is, the data transmission system applying seven-layer LB may further include: multiple back-end servers 150.
  • the multiple target servers 140 may also be a server cluster of seven-tier LB servers.
  • the multiple back-end servers 150 may be physical servers, virtual machines, containers, or the like.
  • the multiple back-end servers 150 may be respectively connected to multiple target servers 140 and clients 110 via a network.
  • Wired networks include Transmission Control Protocol/Internet Protocol (TCP/IP) networks, optical fiber networks, or InfiniBand (IB) networks; wireless networks include: wireless fidelity networks, third-generation (3rd-generation) generation, 3G) mobile communication technology network or general packet radio service (GPRS), etc.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • IB InfiniBand
  • wireless networks include: wireless fidelity networks, third-generation (3rd-generation) generation, 3G) mobile communication technology network or general packet radio service (GPRS), etc.
  • GPRS general packet radio service
  • the client when a client and a target server establish an MPTCP link, first, the client can use the main TCP link used to establish the main TCP link in the MPTCP link
  • the request is sent to the transit device, where the main TCP request carries the key of the MPTCP link generated by the client (the key of the MPTCP link where the main TCP link is located).
  • the main TCP request can also carry a quintuple (the quintuple includes: the sender IP address, the sender port, the receiver IP address, the receiver port, and the transmission protocol), and the transfer device can carry based on the received main TCP request
  • the five-tuple of determines an initial server, and forwards the main TCP request to the initial server.
  • the initial server receives the main TCP request, it again determines a target server based on the five-tuple, and forwards the main TCP request to the target server.
  • the target server sends a response to the main TCP request to the client based on the received main TCP request.
  • the client sends a confirmation message to the target server based on the response.
  • the main TCP link is established.
  • a secondary TCP link is established between the client and the target server based on a process similar to the above-mentioned establishing the primary connection.
  • the IP address and port used may be different, so as a result, the quintuple information carried by the primary TCP link may be different from the quintuple information carried by the secondary TCP request. Therefore, the target server determined based on the quintuple carried by the primary TCP request is different from the quintuple information carried by the secondary TCP request.
  • the target server determined by the group may not be the same, which causes the target server on the primary TCP link and the secondary TCP link to be different.
  • the MPTCP link requires that the target server on the primary TCP link and the secondary TCP link (that is, the back-end server in the data transmission system) be the same, so that the MPTCP link cannot be formed.
  • a TCP request such as a primary TCP request or a secondary TCP request
  • the primary and secondary TCP requests may be forwarded to different target servers by the initial server and the primary TCP link.
  • the target server on the secondary TCP link is different, which leads to a different back-end server to which the target server forwards.
  • the MPTCP link requires that the target server on the primary TCP link and the secondary TCP link be the same, which also results in the failure to form the MPTCP link.
  • the embodiment of the present invention provides a data transmission method based on which an MPTCP link can be effectively established.
  • FIG. 3 shows a flowchart of a data transmission method provided by an embodiment of the present application.
  • the data transmission method can be applied to the data transmission system shown in FIG. 1, and the data transmission method can be divided into two stages: a primary TCP link establishment stage and a secondary TCP link establishment stage.
  • the data transmission method may include the following steps:
  • the main TCP link establishment phase The main TCP link establishment phase:
  • Step 101 The client sends a master TCP request for establishing a master TCP link to the first initial server, where the master TCP request carries the key of the MPTCP link where the master TCP link is located.
  • the client When the client needs to establish an MPTCP link with the target server, the client needs to first request the target server to establish the main TCP link in the MPTCP link.
  • the main TCP request may be a SYN message
  • the SYN message carries the MP_CAPABLE field
  • the MP_CAPABLE field is used to indicate that the client supports MPTCP connections
  • the MP_CAPABLE field contains the MPTCP link generated by the client Key.
  • the key can be used to identify the MPTCP link.
  • the process of the client sending the main TCP request to the first initial server may include: the client sends the first initial server through the transfer device Send the main TCP request.
  • the first initial server is any one of multiple initial servers.
  • the transit device may determine the first initial server based on the forwarding algorithm, and then distribute the main TCP request to the first initial server.
  • the forwarding algorithm may be an algorithm based on a five-tuple hash operation, or it may be a random allocation algorithm.
  • Step 102 The first initial server determines the first target server among the multiple target servers.
  • the process of determining the first target server may include: the first initial server determines the first initial server to which the main TCP request is forwarded based on a scheduling algorithm.
  • the scheduling algorithm may be an algorithm based on a five-tuple hash operation, or may also be a random allocation algorithm.
  • Step 103 The first initial server establishes a correspondence between the key of the MPTCP link and the first target server.
  • the first initial server After determining the first target server, the first initial server can establish the corresponding relationship between the key carried in the main TCP request and the first target server determined above, so that the first initial server will subsequently receive the same secret key.
  • the TCP request for the key is forwarded to the first target server.
  • the first initial server may record the correspondence between the key of the MPTCP link and the first target server through a forwarding entry of the key-target server.
  • the forwarding entry may also record the correspondence between the key of the MPTCP link carried in the main TCP request and the 5-tuple.
  • the first target server may be the IP address of the first target server.
  • the forwarding entry can be as shown in Table 1 below.
  • the key of the MPTCP link corresponding to the quintuple 1 is key 1
  • the first target server corresponding to the key of the MPTCP link is target server 1.
  • Step 104 The first initial server forwards the main TCP request to the first target server, and the main TCP request carries the address of the first initial server.
  • the process of the first initial server forwarding the main TCP request to the first target server may include: the first initial server first processes the main TCP request, so that the processed main TCP request carries the address of the first initial server. Then, the first initial server sends the processed main TCP request to the first target server.
  • the processing of the TCP request by the first initial server may be: the first initial server writes the address of the first initial server into the main TCP request.
  • the main TCP request may include session initiation protocol (SIP) information.
  • SIP session initiation protocol
  • the SIP information is used to record the address of the device that forwards the main TCP request to the first initiation server, and the first initiation server
  • the SIP information in the main TCP request can be rewritten to the address of the first initial server.
  • the address of the first initial server may be an IP address.
  • the address of the first initial server may also be a media access control (MAC) address, which is not limited in this embodiment of the application.
  • MAC media access control
  • Step 105 The first target server obtains the address of the first initial server carried in the main TCP request.
  • the first target server may obtain the IP address of the first initial server from the SIP information of the main TCP request.
  • Step 106 The first target server determines the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • Multiple target servers may each be configured with a correspondence relationship between the addresses of multiple initial server identifiers. After receiving the main TCP request and determining the address of the first initial server, the first target server may search for the first server in the correspondence relationship.
  • the identification of the first initial server corresponding to the address of an initial server.
  • the identification of the initial server may be a user identification (UID) of the initial server, and the UID may be data of any size, for example, 8-bit data.
  • UID user identification
  • a configuration file may be stored on each target server, and the configuration file may be used to record the correspondence between the UIDs and IP addresses of the multiple LB servers.
  • the content of the configuration file can be as shown in Table 2 below. Among them, the IP address corresponding to UID (00000001) is 1.75.2.128; the IP address corresponding to UID (00000010) is 1.75.2.127; the IP address corresponding to UID (00000011) is 1.75.2.126; the IP address corresponding to UID (00000100) is 1.75.2.125.
  • Step 107 The first target server sends a response to the main TCP request to the client, and the corresponding main TCP request carries the identity of the first initial server.
  • the first target server After receiving the main TCP request, the first target server needs to send a response to the main TCP request to the client, and needs to send the indication information of the first initial server to the main TCP request.
  • the indication information is taken as an example of the identification of the first initial server.
  • the indication information may not be the identification, but information indicating the identification of the first initial server. This is not limited.
  • the first target server carries the indication information of the first initial server in the response of the main TCP request.
  • the first target server may also send to the client the information not carrying the above Indicates the response of the main TCP request of the indication information and the indication information.
  • the response of the main TCP request may be a SYN ACK message, and the SYN ACK message carries the MP_CAPABLE field, and the MP_CAPABLE field is used to indicate that the server supports the MPTCP link.
  • the first target server carries the indication information to the client through the payload (payload) of the MP_CAPABLE field in the SYN ACK message.
  • the target server after the target server receives the main TCP request (that is, the SYN message), it sends a SYN ACK message to the client. Therefore, the SYN ACK message carries the first initial server's The instruction information does not need to be sent separately, which saves network bandwidth and improves the compatibility of the data transmission method.
  • the client may send to the first target server a confirmation message of the response of the main TCP request, and the confirmation message may be an ACK report. Text.
  • the main TCP link in the MPTCP connection is established.
  • Step 108 The client sends a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information.
  • the secondary TCP request carries the identity of the first initial server and a command for indicating the key of the MPTCP link. ⁇ .
  • the second initial server is any initial server among the multiple initial servers, and the secondary TCP link belongs to the same MPTCP link as the primary TCP link.
  • the TCP request carries indication information indicating the first initial server, and the indication information is not an identifier.
  • the process of the client sending the secondary TCP request to the second initial server can refer to the process of the client sending the primary TCP request to the first initial server.
  • the TCP request may be a SYN message, and the SYN message carries the MP_JOIN field and the token field.
  • the token field may be token information, and the token field may be used to indicate the key of the MPTCP link.
  • the MP_JOIN field is used to indicate that the client supports an MPTCP link, and the MP_JOIN field includes an address ID (Address ID) field.
  • the client may fill the above-mentioned indication information of the first initial server into the Address ID field, so that this TCP request carries the indication information of the first initial server.
  • the Address ID field in the MP_JOIN field carried in the SYN message is filled with the IP address of the client.
  • the SYN message sent by the client usually undergoes multiple network address translation (NAT), and each time it passes through After the network address is translated, the IP address filled in the Address ID field will be changed, so that the information in the Address ID field cannot accurately indicate the IP address of the client, resulting in the Address ID field being invalid. Therefore, in this embodiment of the present application, multiplexing the Address ID field to carry the identity of the first initial server will not affect the original SYN message, and can improve the utilization rate of the SYN message.
  • NAT network address translation
  • Step 109 The second initial server forwards the secondary TCP request to the first initial server when it is different from the first initial server indicated by the indication information carried in the secondary TCP request.
  • the second initial server obtains the identity of the first initial server carried in the secondary TCP request after receiving the secondary TCP request. After that, the second initial server needs to determine whether the identifier is the same as the identifier of the second initial server to determine whether the second initial server is the same as the first initial server.
  • the second initial server may forward the TCP request to the first initial server. The process of the second initial server forwarding the TCP request to the first initial server will be described below.
  • each initial server may store the correspondence between multiple initial server identifiers (for example, UID) and addresses (for example, IP addresses).
  • each initial server may store a configuration file, and the configuration file may be used to record the correspondence between the identities and addresses of multiple initial servers.
  • the foregoing TCP request may carry the identifier of the first LB server.
  • the second initial server may first obtain the identification of the first initial server carried in the secondary TCP request.
  • the second initial server may extract the identification of the first initial server from the Address ID field in the SYN message carried in the secondary TCP request.
  • the second initial server may determine the address of the first initial server based on the identity of the first initial server and the correspondence between the identities and addresses of the multiple initial servers.
  • the second initial server may send the secondary TCP request to the first initial server based on the address of the first initial server.
  • Step 110 The first initial server forwards the secondary TCP request to the first target server.
  • the first initial server After the first initial server receives the secondary TCP request sent by any initial server (such as the above-mentioned second initial server), it can first obtain the token information carried in the received secondary TCP request, and then determine the MPTCP chain based on the token information The key of the road. After that, the first initial server queries the correspondence between the key of the MPTCP link established above and the first target server based on the key, and then determines the first target server corresponding to the key. Finally, the first initial server forwards the TCP request to the first target server.
  • any initial server such as the above-mentioned second initial server
  • the first initial server may determine the key of the MPTCP link based on the token field in the SYN message carried in the secondary TCP request, and then query the previously established forwarding entry according to the key to determine the first corresponding to the key. A target server, and then forward the TCP request to the determined first target server according to the first target server.
  • the data transmission system is illustrated by taking the second initial server and the first initial server as an example that is not the same device.
  • the second initial server and the first initial server indicated by the indication information carried in the secondary TCP request At the same time, the second initial server can directly forward the secondary TCP request to the first target server.
  • the process in which the second initial server forwards the secondary TCP request to the first target server is the same as the foregoing step 110, which is not repeated in this embodiment of the application.
  • Step 111 The first target server sends a response to the secondary TCP request to the client based on receiving the secondary TCP request.
  • the response to this TCP request may not carry the identity of the first initial server.
  • the response to the TCP request may be a SYN ACK message, and the SYN ACK message carries the MP_JOIN field.
  • the client may send a first confirmation message to the first target server based on the response of the received secondary TCP request, and the first confirmation message may be an ACK message.
  • the first target server After receiving the first confirmation message, the first target server sends a second confirmation message to the client.
  • the second confirmation message may be an ACK message.
  • the ACK message sent by the first target server to the client is a TCP standard ACK message. So far, the TCP link establishment is completed.
  • the data transmission method shown in FIG. 3 can also be used in the data transmission system shown in FIG. 2.
  • the first target server determines the first back-end server, and stores the relationship between the key of the MPTCP link carried in the main TCP request and the first back-end server in the first target server.
  • the first target server sends the main TCP request to the first back-end server based on the correspondence.
  • the first back-end server After acquiring the main TCP request, the first back-end server sends a response to the TCP request to the client based on the main TCP request.
  • the client After receiving the main TCP request sent by the first back-end server, the client continues to perform step 108 to step 110.
  • the first target server After the first target server receives the secondary TCP request, the first target server forwards the secondary TCP request to the first back-end server based on the key of the MPTCP link carried in the secondary TCP request and the foregoing corresponding relationship. After receiving the TCP request, the first back-end server sends a response to the TCP request to the client.
  • the identity of the first initial server may be sent to the client by the first target server alone, or sent by the first target server to the first back-end server, and then sent by the first back-end server to the client alone, or It is carried in the response of the main TCP request sent by the first back-end server to the client, so as to be sent by the first back-end server to the client.
  • the main TCP request also carries application layer content information
  • the first target server may determine the first back-end server based on the selection algorithm according to the application layer content information carried in the main TCP request. Any one of multiple back-end servers.
  • the client since the first target server sends the indication information of the first initial server on the primary TCP link to the client, the client can carry this in the secondary TCP request. Instruction information, so that after receiving the secondary TCP request, the second initial server can forward the secondary TCP request to the first initial server based on the instruction information, so that the first initial server forwards the secondary TCP request to the receiving primary TCP request Server. It is ensured that the target server on the primary TCP link and the target server on the secondary TCP link are the same target server, thereby ensuring the establishment of the MPTCP link and realizing load balancing under the MPTCP link.
  • the data transmission method conforms to the request for comments (RFC) specification, avoiding the protocol affecting other devices
  • the stack processes the data transmitted by MPTCP and has high compatibility.
  • the embodiments of the present application illustrate the data transmission method with an example for a data transmission system applying the four-layer LB technology.
  • the client includes an LTE network port and a WIFI network port, and the client has two different IP addresses, IP address 1 and IP address 2.
  • the transit device is the gateway.
  • the initial server is an LB device, and the multiple initial servers include LB device 1 (also called LB node 1), LB device 2 and LB device 3.
  • the UID of the LB device 1 is 00000001 and the IP address is 1.75.2.128;
  • the UID of the LB device 2 is 00000010 and the IP address is 1.75.2.127;
  • the UID of the LB device 3 is 00000011, and the IP address is 1.75.2.126.
  • Multiple target servers include RS1, RS2, and RS3.
  • the client when the client establishes an MPTCP link with the target server, the client sends a main TCP request to the gateway through IP address 1 and the LTE network port.
  • the main TCP request carries the MPTCP where the main TCP link is located.
  • the key 1 After receiving the main TCP request, the gateway distributes the main TCP request to the LB device 2 based on the forwarding algorithm.
  • LB device 2 After LB device 2 receives the main TCP request, LB device 2 establishes the forwarding entry shown in Table 1 above, and rewrites the SIP information content in the main TCP request to its IP address 1.75.2.127, and based on the scheduling The algorithm forwards the main TCP request to RS1.
  • RS1 After RS1 receives the main TCP request, it obtains the IP address 1.75.2.127 of the LB device 2 based on the main TCP request. Then, the RS1 queries the configuration file shown in Table 2 based on the IP address, and determines that the UID of the LB device 2 is 00000010. RS1 then sends a response to the main TCP request carrying the UID of the LB device 2 to the client, and the response to the main TCP request carries the UID of the LB device 2. Based on this, the client completes the establishment of the main TCP link.
  • the client After the client establishes the primary TCP link with the target server, the client can establish a secondary TCP link with the target server, and the process of establishing the secondary TCP link is similar to the process of establishing the primary TCP link described above.
  • the client forwards the secondary TCP request to the LB device 3 through the gateway, and the secondary TCP request carries the UID of the LB device 2.
  • the LB device 3 After the LB device 3 receives the TCP request, it obtains the UID carried in the TCP request, and compares the UID with the UID of the LB device 3.
  • the LB device 3 determines that the IP address corresponding to the UID is 1.75.2.127 based on the UID obtained from the secondary TCP request, and forwards the secondary TCP request to 1.75.2.127, that is, forwarding To LB device 2. After receiving the TCP request, the LB device 2 forwards the TCP request to the aforementioned RS1. Based on this, the client completes the establishment of the secondary TCP link.
  • the client can carry the UID in the secondary TCP request, so that after receiving the secondary TCP request, the LB device 3 can be based on The UID forwards the secondary TCP request to the LB device 2, so that the LB device 2 forwards the secondary TCP request to RS1, forming an MPTCP link, and realizing load balancing under the MPTCP link.
  • the embodiments of the present application illustrate the data transmission method with an example for a data transmission system applying the seven-layer LB technology.
  • the target server is an LB7 device, and multiple target servers include LB7 device 1, LB7 device 2, and LB7 device 3.
  • the multiple back-end servers include RS1, RS2, and RS3.
  • the client forwards the primary TCP request (and secondary TCP request) to the LB7 device 1 through multiple devices.
  • the client sends the primary TCP request
  • the (and secondary TCP request) process is forwarded to RS1 through multiple devices, which is not repeated in this embodiment of the application.
  • LB7 device 1 When LB7 device 1 receives the main TCP request, LB7 device 1 not only sends the UID of LB device 2 to the client, but also sends the main TCP request to RS2 based on the forwarding algorithm. After receiving the main TCP request, RS2 sends a response to the main TCP request to the client. Based on this, the client completes the establishment of the main TCP link.
  • the LB7 device 1 may not need to send a response to the secondary TCP request to the client, but sends the secondary TCP request to the RS2 based on the forwarding algorithm.
  • RS2 After receiving the TCP request, RS2 sends a response to the TCP request to the client. Based on this, the client completes the establishment of the secondary TCP link.
  • the client can carry the UID in the secondary TCP request, so that after the LB device 3 receives the secondary TCP request,
  • the secondary TCP request can be forwarded to the LB device 2 based on the UID, so that the LB device 2 forwards the secondary TCP request to the LB7 device 1, so that the LB7 device 1 forwards the secondary TCP request to the main TCP link RS2, formed the MPTCP link, and realized load balancing under the MPTCP link.
  • the aforementioned multiple initial servers can form an LB cluster.
  • the working mode of the LB cluster can belong to the main master mode or the main backup mode.
  • the master master mode means that in the LB cluster, each initial server can forward the received TCP request to the target server.
  • the active-standby mode refers to that the initial server in the LB cluster is divided into the primary initial server and the standby initial server.
  • the primary initial server can forward the received TCP request to the target server, while the standby initial server is in normal conditions. Failed to forward the received TCP request to the target server.
  • the working mode of the above-mentioned LB cluster can belong to the main main mode, in order to solve the problem that the target server determined when establishing the main TCP link may not be the same as the target server determined when establishing the secondary TCP link.
  • the same problem In the process of establishing the main connection, after any one of the multiple initial servers determines the target server to which the main TCP request is forwarded, it can additionally send the corresponding relationship between the key carried in the main TCP request and the target server simultaneously To each initial server in the LB cluster.
  • any initial server receives the secondary TCP request, it can determine the target server to which the primary TCP request is forwarded based on the key carried in the secondary TCP request and the corresponding relationship. Therefore, the target server determined when the primary TCP link is established is the same as the target server determined when the secondary TCP link is established.
  • the technical difficulty of additional information synchronization between LB clusters is relatively large, which makes it difficult to realize the work of the LB cluster in the master mode.
  • each initial server can forward the secondary TCP request to the primary TCP according to the identifier of the primary server on the primary TCP link carried in the secondary TCP request.
  • the initial server on the link so that all TCP requests are forwarded to the target server by the same initial server. Therefore, no additional information synchronization between the LB clusters is required, which reduces the difficulty of implementing the LB cluster in the master master mode, and realizes the load balancing of the LB cluster in the master master mode in the MPTCP scenario.
  • the main initial server can also forward the TCP request to the initial server on the main TCP link through the data transmission method described in the embodiment of this application, As a result, all TCP requests are forwarded by the same initial server to the target server. Therefore, the embodiment of the present application can also be applied to load balancing of the LB cluster in the active/standby mode in the MPTCP scenario.
  • the embodiment of the present application provides a data transmission device for a client in a data transmission system.
  • the data transmission system further includes: multiple initial servers and multiple target servers.
  • the data transmission device 200 includes: A receiving module 201, a sending module 202, and a second receiving module 203.
  • the first receiving module 201 is configured to receive the indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein the first target server and the first initial server are both located in the client establishment On the main transmission control protocol TCP link;
  • the sending module 202 is configured to send a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information, where the second initial server is any one of the multiple initial servers, and the secondary TCP link is connected to the primary TCP
  • the link belongs to the same multi-path transmission control protocol MPTCP link, and the secondary TCP request carries indication information;
  • the second receiving module 203 is configured to receive a response to the secondary TCP request sent by the first target server.
  • the data transmission device 200 further includes: a sending master request module 204, configured to receive the instruction information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers Before, the primary TCP request for establishing the primary TCP link was sent to the first initial server.
  • a sending master request module 204 configured to receive the instruction information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers Before, the primary TCP request for establishing the primary TCP link was sent to the first initial server.
  • the first receiving device 201 is further configured to receive a response to the main TCP request sent by the first target server, where the response to the main TCP request carries indication information.
  • the data transmission system further includes a transfer device.
  • the sending main request module 204 is further configured to send a main TCP request to the first initial server through the transit device.
  • the sending module 202 is further configured to send a secondary TCP request to the second initial server through the transit device according to the instruction information.
  • An embodiment of the present application provides a data transmission device used for a third initial server in a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers.
  • the third initial server is multiple Any one of the initial servers, as shown in FIG. 8, the data transmission device 300 includes: a receiving module 301 and a forwarding module 302.
  • the receiving module 301 is configured to receive a secondary TCP request for establishing a secondary TCP link sent by other devices, where the other devices include: a client or any server other than the third initial server among multiple initial servers, the secondary TCP request It carries indication information, and the indication information is used to indicate the initial server on the primary TCP link established by the client among multiple initial servers, and the secondary TCP link and the primary TCP link belong to the same multi-path transmission control protocol MPTCP chain road;
  • the forwarding module 302 is configured to forward the secondary TCP request to the initial server indicated by the indication information when the third initial server is different from the initial server indicated by the indication information.
  • the data transmission device 300 further includes: a forwarding secondary request module 303, configured to forward the secondary TCP request to the first target when the third initial server is the same as the initial server indicated by the indication information Server, the first target server is the target server located on the main TCP link among the multiple target servers.
  • a forwarding secondary request module 303 configured to forward the secondary TCP request to the first target when the third initial server is the same as the initial server indicated by the indication information Server, the first target server is the target server located on the main TCP link among the multiple target servers.
  • the data transmission device 300 further includes: a receiving main request module 304 and a forwarding main request module 305.
  • the receiving primary request module 304 is configured to receive the primary TCP request for establishing the primary TCP link sent by the client before receiving the secondary TCP request for establishing the secondary TCP link sent by other devices, and the initial server indicated by the indication information is the third Initial server
  • the forwarding main request module 305 is used to forward the main TCP request to the first target server.
  • the indication information includes the identifier of the third initial server, and the multiple target servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the forwarding main request module 305 is also used to process the main TCP request so that the processed main TCP request carries the address of the third initial server; and sends the processed main TCP request to the first target server.
  • the indication information carries the identifier of the initial server it indicates, and the multiple initial servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the forwarding module 302 is also used to obtain the identity of the initial server carried in the indication information; determine the address of the initial server indicated by the indication information based on the obtained identity of the initial server and the correspondence between the identities and addresses of multiple initial servers; Based on the address of the initial server indicated by the indication information, the secondary TCP request is sent to the initial server indicated by the indication information.
  • the primary TCP request carries the MPTCP key
  • the secondary TCP request carries token information for indicating the key.
  • the data transmission device 300 further includes: an establishment module 306 and a search module 307.
  • the establishment module 306 is configured to establish the correspondence between the key and the first target server before the third initial server forwards the main TCP request to the first target server;
  • the searching module 307 is configured to search for the first corresponding to the key indicated by the token information in the correspondence between the key and the first target server before the third initial server forwards the secondary TCP request to the first target server.
  • the target server is configured to search for the first corresponding to the key indicated by the token information in the correspondence between the key and the first target server before the third initial server forwards the secondary TCP request to the first target server.
  • the data transmission system further includes a transfer device.
  • the receiving main request module 304 is also used to receive the main TCP request sent by the client through the transit device.
  • the receiving module 301 is also configured to receive the secondary TCP request sent by the client to establish the secondary TCP link through the transit device when the other device is the client.
  • the secondary TCP request includes an address identification field, and the address identification field carries the foregoing indication information.
  • This application provides a data transmission device, which is used in a first target server in a data transmission system.
  • the data transmission system includes a client, a plurality of initial servers, and a plurality of target servers.
  • the first target server is located in the plurality of target servers.
  • the server on the main TCP link established by the client, as shown in FIG. 10, the data transmission device 500 includes: a first sending module 501, a receiving module 502, and a second sending module 503.
  • the first sending module 501 is configured to send indication information of the first initial server to the client, where the first initial server is: the initial server located on the main TCP link among the multiple initial servers;
  • the receiving module 502 is configured to receive a secondary TCP request sent by the first initial server to establish a secondary TCP link, where the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP link;
  • the second sending module 503 is configured to send a response to the secondary TCP request to the client based on the secondary TCP request.
  • the data transmission device 500 further includes: a receiving master request module 504, configured to receive the establishment of the master TCP link forwarded by the first initial server before sending the indication information of the first initial server to the client The main TCP request of the route.
  • a receiving master request module 504 configured to receive the establishment of the master TCP link forwarded by the first initial server before sending the indication information of the first initial server to the client The main TCP request of the route.
  • the first sending module 501 is further configured to: the first target server sends a response to the main TCP request to the client, and the response to the main TCP request carries indication information.
  • the indication information includes an identifier of the first initial server, and the multiple target servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the data transmission device 500 further includes: an acquisition module 505 and a determination module 506.
  • the acquiring module 505 is configured to acquire the address of the first initial server carried in the main TCP request before sending the indication information of the first initial server to the client;
  • the determining module 506 is configured to determine the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • the embodiment of the present application provides a data transmission system.
  • the data transmission system includes a client, multiple initial servers, and multiple target servers,
  • the first target server is used to send the indication information of the first initial server to the client, where the first initial server and the first target server are both located on the main transmission control protocol TCP link established by the client.
  • the client is used to send a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information, where the second initial server is any one of the multiple initial servers, and the secondary TCP link is the primary TCP link It belongs to the same multi-path transmission control protocol MPTCP link, and the secondary TCP request carries indication information.
  • the second initial server is used to forward the secondary TCP request to the first initial server when it is different from the first initial server indicated by the indication information.
  • the first initial server is used to forward the secondary TCP request to the first target server.
  • the first target server is configured to send a response to the secondary TCP request to the client based on receiving the secondary TCP request.
  • the second initial server is configured to forward the secondary TCP request to the first target server when it is the same as the first initial server indicated by the indication information.
  • the client is configured to send a main TCP request for establishing a main TCP link to the first initial server before the first target server sends the indication information of the first initial server to the client.
  • the first initial server is used to forward the main TCP request to the first target server.
  • the first target server is used to send a response to the main TCP request to the client, and the response to the main TCP request carries indication information.
  • the indication information includes an identifier of the first initial server, and the multiple target servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the first initial server is used to process the main TCP request, so that the processed main TCP request carries the address of the first initial server.
  • the first initial server is used to send the processed main TCP request to the first target server.
  • the first target server is used to obtain the address of the first initial server carried in the main TCP request before the first target server is used to send the indication information of the first initial server to the client.
  • the first target server is used to determine the identity of the first initial server based on the address of the first initial server and the correspondence between the identities of the multiple initial servers and the addresses.
  • the indication information includes an identifier of the first initial server, and the multiple initial servers are configured with a correspondence between the identifiers and addresses of multiple initial servers.
  • the second initial server is used to obtain the identifier of the first initial server carried in the secondary TCP request.
  • the second initial server is used to determine the address of the first initial server based on the identity of the first initial server and the correspondence between the identities and addresses of the multiple initial servers.
  • the second initial server is used to send the secondary TCP request to the first initial server based on the address of the first initial server.
  • the address of the initial server 130 includes an Internet Protocol IP address.
  • the secondary TCP request includes an address identification field, and the address identification field carries indication information of the first initial server.
  • the primary TCP request carries the MPTCP key
  • the secondary TCP request carries token information for indicating the key.
  • the first initial server is used to establish the correspondence between the key and the first target server before the first initial server forwards the main TCP request to the first target server.
  • the first initial server is used to search for the first corresponding to the key indicated by the token information in the correspondence between the key and the first target server before the first initial server forwards the secondary TCP request to the first target server The target server.
  • the data transmission system further includes: transit equipment.
  • the client is used to send the main TCP request to the first initial server through the transit device.
  • the client is used to send a secondary TCP request to the second initial server through the transit device according to the instruction information.
  • the embodiment of the present invention also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium.
  • the computer executes the client in the data transmission method provided by the embodiment of the present invention. Steps performed. For example, step 101 and step 108 in the embodiment shown in FIG. 3.
  • the computer is made to execute the steps executed by the first initial server in the data transmission method provided by the embodiment of the present invention. For example, step 102 to step 104, and step 110 in the embodiment shown in FIG. 3.
  • the computer is caused to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention.
  • the computer is caused to execute the steps executed by the first target server in the data transmission method provided by the embodiment of the present invention. For example, step 105 to step 107, and step 111 in the embodiment shown in FIG. 3.
  • the embodiment of the present invention also provides a computer program product containing instructions, which when the computer program product runs on a computer, causes the computer to execute the steps performed by the client in the foregoing method embodiments. For example, step 101 and step 108.
  • the computer is made to execute the steps executed by the first initial server in the data transmission method provided by the embodiment of the present invention. For example, step 102 to step 104, and step 110 in the embodiment shown in FIG. 3.
  • the computer is caused to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention.
  • the computer is caused to execute the steps executed by the first target server in the data transmission method provided by the embodiment of the present invention. For example, step 105 to step 107, and step 111 in the embodiment shown in FIG. 3.
  • the embodiment of the present application provides a chip, which includes a programmable logic circuit and/or program instructions, and is used to implement the steps executed by the client in the foregoing method embodiment when the chip is running. For example, step 101 and step 108.
  • the computer is made to execute the steps executed by the first initial server in the data transmission method provided by the embodiment of the present invention. For example, step 102 to step 104, and step 110 in the embodiment shown in FIG. 3.
  • the computer is caused to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention.
  • the computer is caused to execute the steps executed by the first target server in the data transmission method provided by the embodiment of the present invention. For example, step 105 to step 107, and step 111 in the embodiment shown in FIG. 3.
  • the disclosed server, device, and method may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules is only a logical function division, and there may be other divisions in actual implementation, for example, multiple modules or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or network connection may be indirect coupling or network connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
  • each functional module in each embodiment of the present application may be integrated into one processing module, or each module may exist alone physically, or two or more modules may be integrated into one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software functional modules.
  • the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application is essentially or the part that contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种数据传输方法、装置及系统,属于计算机通信领域。所述方法包括:第一目标服务器向客户端发送第一初始服务器的指示信息;客户端根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,次TCP请求中携带有指示信息;第二初始服务器在与指示信息所指示的第一初始服务器不同时,将次TCP请求转发至第一初始服务器;第一初始服务器将次TCP请求转发至第一目标服务器;第一目标服务器基于接收到次TCP请求,向客户端发送次TCP请求的响应。本申请保证了MPTCP链路的建立。

Description

数据传输方法、装置及系统 技术领域
本申请涉及计算机通信领域,特别涉及一种数据传输方法、装置及系统。
背景技术
随着移动互联网通信的兴起,客户端通常支持多种链路的数据传输。例如,该多种链路以包括基于长期演进(long term evolution,LTE)技术的链路和基于无线保真(wireless fidelity,WIFI)技术的链路等。因此,为了合理利用该多种链路,利用多路径并发传输数据的多路径传输控制协议(multipath transport control,MPTCP)应运而生。由于负载均衡(load balance,LB)技术在通信中应用较为普遍,因此,基于LB技术的MPTCP也随之兴起。
目前基于四层LB技术的MPTCP中,数据传输系统通常包括:客户端、多个初始服务器和多个目标服务器。其中,客户端能够与目标服务器建立MPTCP链路,该MPTCP链路包括客户端与该目标服务器建立的主传输控制协议(transport control,TCP)链路和次TCP链路。客户端在与目标服务器建立主TCP链路时,客户端可以将该主TCP链路的请求发送至多个初始服务器中随机选取的一个初始服务器,接收到该请求的初始服务器将接收到的请求在发送至多个目标服务器中随机选取的一个目标服务器。之后,接收到该请求的目标服务器向客户端发送该请求的响应,进而使客户端与该目标服务器建立主TCP链路。客户端与目标服务器在建立主TCP链路之后,该客户端还可以与目标服务器建立次TCP链路,客户端可以将该次TCP链路的请求发送至多个初始服务器中随机选取的一个初始服务器,接收到该请求的初始服务器将接收到的该请求再发送至多个目标服务器中随机选取的一个目标服务器。之后,接收到该请求的目标服务器向客户端发送该请求的响应,进而使客户端与该目标服务器建立次TCP链路。
由于MPTCP链路要求其所有TCP链路均为客户端与同一目标服务器之间的链路,而相关技术中客户端发出的用于建立主TCP链路的请求和用于建立次TCP链路的请求可能被转发至不同的初始服务器,进而被转发至不同的目标服务器,因此,可能导致建立的主TCP链路和次TCP链路无法形成MPTCP链路。
发明内容
本申请提供了一种数据传输方法、装置及系统,可以解决相关技术中MPTCP链路可能无法形成的问题。
第一方面,提供一种数据传输方法,应用于数据传输系统,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述方法包括:第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位 于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;示例地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器;所述第一目标服务器基于接收到所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
这样,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。
需要说明的是,上述以第二初始服务器与第一初始服务器不是同一设备为例进行说明,当所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。
可选地,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,客户端可以将主TCP请求发送至第一目标服务,该发送的过程包括:所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求,所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器。值得说明的是,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程可以包括:所述第一目标服务器向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
这样,通过所述主TCP请求的响应携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。当然,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程也可以是:第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。
可选地,指示信息可以为第一初始服务器的标识,也可以为指示该第一初始服务器的标识的信息。本申请实施例以所述指示信息包括所述第一初始服务器的标识为例进行说明。示例地,初始服务器的标识可以为初始服务器的用户身份证明(User Identification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。其中,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。所述初始服务器的地址额可以为IP地址,也可以为媒体访问控制地址(Media Access Control Address,MAC),本申请实施例对此不作限定。
上述所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器的过程可以包括:所述第一初始服务器将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址。所述第一初始服务器向所述第一目标服务器发送处理后的所述主TCP请求。
进一步的,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器获取所述主TCP请求携带的所述第一初始服务器的地址。所述第一目标服务器基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。
可选地,所述多个初始服务器也可以均配置有所述多个初始服务器的标识和地址的对应关系。上述所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,第二初始服务器将所述次TCP请求转发至所述第一初始服务器的过程可以包括:
所述第二初始服务器首先获取所述次TCP请求携带的所述第一初始服务器的标识。然后所述第二初始服务器基于所述第一初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的地址。最后,所述第二初始服务器基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。
这样,由于每个初始服务器可以根据次TCP请求中携带的主TCP链路上的初始服务器的标识,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器。因此,在LB集群处于主主模式时,无需相关技术中LB集群间额外的信息同步,降低了LB集群在主主模式下工作的实现难度,实现了MPTCP场景中LB集群在主主模式下的负载均衡。
可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,所述方法还包括:在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,所述第一初始服务器建立所述密钥和所述第一目标服务器的对应关系。相应的,在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,所述第一初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
需要说明的是,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,所述客户端向所述第一初始服务器发送主TCP请求可以包括:所述客户端通过所述中转设备向所述第一初始服务器发送所述主TCP请求。相应的,所述客户端根据所述指示信息向第二初始服务器发送次TCP请求的过程也可以包括:所述客户端根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。
第二方面,提供一种数据传输方法,该数据传输方法用于数据传输系统中的客户端,所述数据传输系统还包括:多个初始服务器和多个目标服务器,所述方法包括:
客户端接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,所述第一目标服务器和所述第一初始服务器均位于所述客户端建立的主传输控制协议TCP链路上。所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息。所述客户端接收所述第一目标服务器发送的所述次TCP请求的响应。
作为一种可选地实现方式,在所述客户端接收第一目标服务器发送的所述第一初始服务器的指示信息之前,所述方法还包括:所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求。
上述客户端接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息的过程可以包括:所述客户端接收所述第一目标服务器发送的主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
可选地,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,所述数据传输系统还包括中转设备。此时,所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求的过程可以包括:所述客户端通过所述中转设备向所述第一初始服务器发送所述主TCP请求。所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求的过程可以包括:所述客户端根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。
第三方面,提供一种数据传输方法,该数据传输方法用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述方法包括:所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求,其中,所述其他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;所述第三初始服务器在与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。
可选地,所述第三初始服务器在与所述指示信息所指示的初始服务器相同时,将所述次TCP请求转发至第一目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述主TCP链路上的目标服务器。
可选地,在所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求之前,所述方法还包括:所述第三初始服务器接收所述客户端发送的建立所述主TCP链路的主TCP请求,所述指示信息所指示的初始服务器为所述第三初始服务器;所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器。
可选地,所述指示信息包括所述第三初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;
所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器,包括:所述第三初始服务器将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第三初始服务器的地址;所述第三初始服务器向所述第一目标服务器发送处理后的所述主TCP请求。
可选地,所述指示信息携带有其指示的初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系;
所述第三初始服务器在与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器,包括:所述第三初始服务器获取所述指示信息携带的初始服务器的标识;所述第三初始服务器基于获取到的所述初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述指示信息所指示的初始服务器的地址;所述第三初始服务器基于所述指示信息所指示的初始服务器的地址,将所述次TCP请求发送至所述指示信息所指示的初始服务器。
可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,所述方法还包括:在所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器之前,所述第三初始服务器建立所述密钥和所述第一目标服务器的对应关系;在所述第三初始服务器将所述次TCP请求转发至第一目标服务器之前,所述第三初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
可选地,所述数据传输系统还包括中转设备;所述第三初始服务器接收所述客户端发送的建立所述主TCP链路的主TCP请求,包括:所述第三初始服务器通过所述中转设备接收所述客户端发送的所述主TCP请求。
所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求,包括:当所述其他设备为所述客户端时,所述第三初始服务器通过所述中转设备接收所述客户端发送的建立次TCP链路的次TCP请求。
可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述指示信息。
第四方面,提供一种数据传输方法,该数据传输方法,用于数据传输系统中的第一目标服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述客户端建立的主TCP链路上的服务器,所述方法包括:
所述第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器为:多个初始服务器中位于所述主TCP链路上的初始服务器。所述第一目标服务器接收所述第一初始服务器发送的建立次TCP链路的次TCP请求,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路。所述第一目标服务器基于所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
可选地,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器接收所述第一初始服务器转发的建立所述主TCP链路的主TCP请求。
值得说明的是,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程可以包括:所述第一目标服务器向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
这样,通过所述主TCP请求的响应携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。
当然,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程也可以是:第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。
可选地,指示信息可以为第一初始服务器的标识,也可以为指示该第一初始服务器的标识的信息。本申请实施例以所述指示信息包括所述第一初始服务器的标识为例进行说明。示例地,初始服务器的标识可以为初始服务器的用户身份证明(User Identification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。
其中,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。
则在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器首先获取所述主TCP请求携带的所述第一初始服务器的地址。然后,所述第一目标服务器基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。
第五方面,提供一种数据传输系统,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,
第一目标服务器用于向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;所述客户端用于根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;所述第二初始服务器用于在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;所述第一初始服务器用于将所述次TCP请求转发至所述第一目标服务器;所述第一目标服务器用于基于接收到所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
可选地,所述第二初始服务器用于在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。
可选地,所述客户端用于在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,向所述第一初始服务器发送建立所述主TCP链路的主TCP请求;所述第一初始服务器用于将所述主TCP请求转发至所述第一目标服务器;
所述第一目标服务器用于向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
可选地,所述指示信息包括所述第一初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;
所述第一初始服务器用于将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址;所述第一初始服务器用于向所述第一目标服务器发送处理后的所述主TCP请求;
所述第一目标服务器用于在所述第一目标服务器用于向所述客户端发送第一初始服务器的指示信息之前,获取所述主TCP请求携带的所述第一初始服务器的地址;所述第一目标服务器用于基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。
可选地,所述指示信息包括所述第一初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系;
所述第二初始服务器用于获取所述次TCP请求携带的所述第一初始服务器的标识;
所述第二初始服务器用于基于所述第一初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的地址;
所述第二初始服务器用于基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。
可选地,所述初始服务器的地址包括互联网协议IP地址。
可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。
可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,
所述第一初始服务器用于在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,建立所述密钥和所述第一目标服务器的对应关系;
所述第一初始服务器用于在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
可选地,所述数据传输系统还包括中转设备;
所述客户端用于向所述第一初始服务器发送主TCP请求,包括:所述客户端用于通过所述中转设备向所述第一初始服务器发送所述主TCP请求;
所述客户端用于根据所述指示信息向第二初始服务器发送次TCP请求,包括:所述客户端用于根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。
第六方面,提供一种数据传输装置,用于数据传输系统中的客户端,数据传输系统还包括:多个初始服务器和多个目标服务器,数据传输装置包括:第一接收模块、发送模块和第二接收模块。
第一接收模块,用于接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,第一目标服务器和第一初始服务器均位于客户端建立的主传输控制协议TCP链路上;
发送模块,用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息;
第二接收模块,用于接收第一目标服务器发送的次TCP请求的响应。
可选地,数据传输装置还包括:发送主请求模块,用于在接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。
第一接收装置,还用于:接收第一目标服务器发送的主TCP请求的响应,主TCP请求的响应携带有指示信息。
可选地,数据传输系统还包括中转设备。
发送主请求模块,还用于:通过中转设备向第一初始服务器发送主TCP请求。
发送模块,还用于:根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。
第七方面,提供一种数据传输装置,该数据传输装置用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述装置包括:接收模块和转发模块。
接收模块,用于接收其他设备发送的建立次TCP链路的次TCP请求,其中,所述其 他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;
转发模块,用于在所述第三初始服务器与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。
可选地,数据传输装置还包括:转发次请求模块,用于在所述第三初始服务器与所述指示信息所指示的初始服务器相同时,将所述次TCP请求转发至第一目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述主TCP链路上的目标服务器。
可选地,数据传输装置还包括:接收主请求模块和转发主请求模块。
接收主请求模块,用于在所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求之前,接收所述客户端发送的建立所述主TCP链路的主TCP请求,所述指示信息所指示的初始服务器为所述第三初始服务器;
转发主请求模块,用于将所述主TCP请求转发至所述第一目标服务器。
可选地,所述指示信息包括所述第三初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。
转发主请求模块,还用于将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第三初始服务器的地址;向所述第一目标服务器发送处理后的所述主TCP请求。
可选地,所述指示信息携带有其指示的初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系。转发模块,还用于获取所述指示信息携带的初始服务器的标识;基于获取到的所述初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述指示信息所指示的初始服务器的地址;基于所述指示信息所指示的初始服务器的地址,将所述次TCP请求发送至所述指示信息所指示的初始服务器。
可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息。数据传输装置还包括:建立模块和查找模块。
建立模块,用于在所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器之前,建立所述密钥和所述第一目标服务器的对应关系;
查找模块,用于在所述第三初始服务器将所述次TCP请求转发至第一目标服务器之前,所述第三初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
可选地,所述数据传输系统还包括中转设备;接收主请求模块,还用于通过所述中转设备接收所述客户端发送的所述主TCP请求。
接收次请求模块,还用于当所述其他设备为所述客户端时,通过所述中转设备接收所述客户端发送的建立次TCP链路的次TCP请求。
可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述指示信息。
第八方面,提供一种数据传输装置,其用于数据传输系统中的第一目标服务器,数据 传输系统包括客户端、多个初始服务器和多个目标服务器,第一目标服务器为多个目标服务器中位于客户端建立的主TCP链路上的服务器,数据传输装置包括:第一发送模块、接收模块和第二发送模块。
第一发送模块,用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器为:多个初始服务器中位于主TCP链路上的初始服务器。
接收模块,用于接收第一初始服务器发送的建立次TCP链路的次TCP请求,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路。
第二发送模块,用于基于次TCP请求,向客户端发送次TCP请求的响应。
可选地,数据传输装置还包括:接收主请求模块,用于在向客户端发送第一初始服务器的指示信息之前,接收第一初始服务器转发的建立主TCP链路的主TCP请求。
第一发送模块,还用于:第一目标服务器向客户端发送主TCP请求的响应,主TCP请求的响应携带有指示信息。
可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。数据传输装置还包括:获取模块和确定模块。
获取模块,用于在向客户端发送第一初始服务器的指示信息之前,获取主TCP请求携带的第一初始服务器的地址;
确定模块,用于基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。
第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第二方面至第四方面任一所述的数据传输方法。
第十方面,提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第二方面至第四方面任一所述的数据传输方法。
本申请提供的技术方案带来的有益效果至少可以包括:
本申请实施例提供的数据传输方法、装置及系统,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。
附图说明
图1是本申请提供的一种应用四层负载均衡技术的数据传输系统的结构示意图;
图2为本申请提供的一种应用七层负载均衡技术的数据传输系统的结构示意图;
图3为本申请提供的一种数据传输方法流程图;
图4为本申请提供的一种数据传输方法流程图;
图5为本申请提供的另一种数据传输方法流程图;
图6为本申请提供的一种数据传输装置的框图;
图7为本申请提供的一种数据传输装置的框图;
图8为本申请提供的另一种数据传输装置的框图;
图9为本申请提供的另一种数据传输装置的框图;
图10为本申请提供的又一种数据传输装置的框图;
图11为本申请提供的又一种数据传输装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
数据传输系统通常包括客户端和目标服务器。其中,客户端具有多个端口(port),客户端能够在该多个端口中选择一个端口作为源端口,并通过该源端口与目标服务器建立TCP链路,进而通过该TCP链路实现与目标服务器之间的单路径的数据传输。但是,客户端和目标服务器之间的带宽性能受限于该单路径,且该TCP链路不具备高可用性。
随着移动互联网通信的兴起,客户端通常支持多种链路的数据传输。例如,该多种链路可以包括基于LTE技术的TCP链路(简称LTE-TCP链路)和基于WIFI技术的TCP链路(简称WIFI-TCP链路)等。由于LTE技术和WIFI技术均受限于网络覆盖范围和信号强弱等因素。因此,客户端和目标服务器之间的链路可以在上述两种TCP链路下进行切换,也可以同时包括该上述两种TCP链路。其中,当客户端和目标服务器之间的链路同时包括上述两种TCP链路时,客户端和目标服务器之间的数据传输效率和网络带宽(网络带宽指的是在单位时间内传输的数据量)较高。基于此,利用多路径并发传输数据的MPTCP应运而生,其中,路径(path)指的是从起点(也即发送端,如客户端)到终点(也即接收端,如目标服务器)的全程路由。
以下将基于数据传输系统对MPTCP链路的建立过程进行说明:
假设数据传输系统中客户端具有端口A和端口B,端口A可以是LTE网络端口,端口B可以是WIFI网络端口。客户端与目标服务器之间的MPTCP可以包括主TCP链路和次TCP链路,并且,客户端可以先与目标服务器建立主TCP链路,然后再于该目标服务器建立次TCP链路。
一方面,客户端与目标服务器建立主TCP链路的过程可以包括:客户端通过端口A向目标服务器发送主TCP请求,该主TCP请求可以为SYN报文。SYN报文中携带有多路径能力(MP_CAPABLE)字段,该MP_CAPABLE字段用于表示客户端支持MPTCP链路,且该MP_CAPABLE字段中包含客户端生成的MPTCP链路的密钥(key),该密钥用于标识该MPTCP链路。目标服务器在接收到该SYN报文后,向客户端发送主TCP请求的响应,该主TCP请求的响应可以为SYN ACK报文。SYN ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示目标服务器支持MPTCP链路。客户端在接收到目标服务器发送的主TCP请求的响应后,向目标服务器发送ACK报文。该ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示客户端和目标服务器均支持MPTCP连接,且该MP_CAPABLE字段中包含客户端生成的MTPTCP链路的密钥。至此,主TCP链路建立完成。
另一方面,客户端与目标服务器建立次TCP链路的过程可以包括:客户端通过端口B向服务器发送次TCP请求,该次TCP请求可以为SYN报文。该SYN报文中携带有多路 径加入(MP_JOIN)字段和令牌(token)字段。其中,MP_JOIN字段用于表示该客户端支持MPTCP连接,token字段可以用于指示上述MTPTCP链路的密钥。目标服务器在接收到该SYN报文后,向客户端发送次TCP请求的响应,该次TCP请求的响应可以为SYN ACK报文。该SYN ACK报文中携带有MP_JOIN字段。客户端在接收到目标服务器发送的SYN ACK报文后,向目标服务器发送ACK报文,该ACK报文中携带有MP_JOIN字段。目标服务器在接收到客户端发送ACK报文后,向客户端发送ACK报文,该ACK报文为TCP标准的ACK报文,以对客户端发送的ACK报文表示收到确认。至此,次TCP链路建立完成。
进一步地,由于LB技术在通信中应用较为普遍,因此,基于LB技术的MPTCP也随之兴起。目前基于LB技术的MPTCP中,数据传输系统通常包括:客户端、中转设备和多个服务器。由于相关技术中LB技术包括四层LB技术和七层LB因此,上述数据传输系统可以根据其应用的LB技术的不同,包括不同个数的服务器。以下将分别对基于这两种LB技术的数据传输系统进行详细说明。
请参考图1,其示出了本申请实施例提供的一种应用四层LB技术的数据传输系统的结构示意图。如图1所示,应用四层LB技术的数据传输系统可以包括:客户端110、中转设备120和多个服务器,且该多个服务器包括多个初始服务器130和多个目标服务器140。其中,客户端110可以为手机、个人电脑(personal computer,PC)或平板电脑等电子设备。中转设备120可以是网关(switch)或者路由器等具有数据中转功能的设备。多个初始服务器130可以是提供四层LB服务的服务器集群。目标服务器140可以为物理服务器、虚拟机或容器等。该目标服务器140用于处理MPTCP链路上传输的数据。进一步地,客户端110可以通过网络分别与中转设备120和多个目标服务器140连接,该中转设备120也可以通过网络分别与多个初始服务器130连接。多个初始服务器130也可以通过网络分别与多个目标服务器140连接。
请参考图2,其示出了本申请实施例提供的一种应用七层LB技术的数据传输系统的结构示意图。该数据传输系统为在图1所示的数据传输系统增加一层服务器,也即是,该应用七层LB的数据传输系统还可以包括:多个后端服务器150。其中,多个目标服务器140也可以是七层LB服务器的服务器集群。多个后端服务器150可以为物理服务器、虚拟机或容器等。该多个后端服务器150可以通过网络分别与多个目标服务器140和客户端110连接。
需要说明的是,上述图1和图2中的网络可以是有线或无线网络(wireless network)。有线网络包括传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)网络、光纤网络或无限带宽(InfiniBand,IB)网络;无线网络包括:无线保真网络、第三代(3rd-generation,3G)移动通信技术网络或通用分组无线服务技术(general packet radio service,GPRS)等。
示例地,以基于四层LB技术的数据传输系统为例,在客户端和目标服务器建立MPTCP链路时,首先,客户端可以将用于建立该MPTCP链路中的主TCP链路的主TCP请求发送至中转设备,其中,该主TCP请求中携带有客户端生成的MPTCP链路的密钥(该主TCP链路所在的MPTCP链路的密钥)。该主TCP请求还可以携带有五元组(五元组包括:发送端IP地址、发送端端口、接收端IP地址、接收端端口以及传输协议),中转 设备可以基于接收到的主TCP请求携带的五元组确定一个初始服务器,并将该主TCP请求转发至该初始服务器。该初始服务器在接收到该主TCP请求时,再次基于该五元组确定一个目标服务器,将该主TCP请求转发至该目标服务器。之后,该目标服务器基于接收到的主TCP请求向客户端发送该主TCP请求的响应。然后,客户端基于该响应发送确认消息至该目标服务器。至此,该主TCP链路建立完成。之后,基于与上述建立主连接相似的过程在客户端和该目标服务器之间建立次TCP链路。
但是,由于客户端具有多个IP地址和多个端口,且在每次客户端发送TCP请求(无论是主TCP请求还是次TCP请求)时,所使用的IP地址和端口可能均不相同,这样导致主TCP链路携带的五元组与次TCP请求携带的五元组信息可能并不相同,因此,基于主TCP请求携带的五元组确定的目标服务器,与基于次TCP请求携带的五元组确定的目标服务器可能并不相同,这就导致主TCP链路与次TCP链路上的目标服务器为不同。而MPTCP链路要求主TCP链路和次TCP链路上的目标服务器(也即该数据传输系统中的后端服务器)相同,这样就导致无法形成MPTCP链路。
在基于七层LB技术的数据传输系统中,每层服务器在接收到TCP请求(如主TCP请求或次TCP请求)后,均需要根据该TCP请求携带的五元组确定下一层设备中的一个设备。基于四层LB技术的数据传输系统相似的理由,基于七层LB技术的数据传输系统中,初始服务器与可能将主TCP请求和次TCP请求转发至不同的目标服务器,从而导致主TCP链路与次TCP链路上的目标服务器为不同,进而导致该目标服务器转发至的后端服务器不同。而MPTCP链路要求主TCP链路和次TCP链路上的目标服务器相同,这样也导致无法形成MPTCP链路。
本发明实施例提供了一种数据传输方法,基于该数据传输方法能够有效地建立MPTCP链路。请参考图3,其示出了本申请实施例提供的一种数据传输方法的流程图。该数据传输方法可以应用于上述图1所示的数据传输系统,该数据传输方法可以分为两个阶段:主TCP链路建立阶段和次TCP链路建立阶段。如图3所示,该数据传输方法可以包括如下几个步骤:
主TCP链路建立阶段:
步骤101、客户端向第一初始服务器发送建立主TCP链路的主TCP请求,该主TCP请求携带有该主TCP链路所在的MPTCP链路的密钥。
客户端在需要与目标服务器请求建立MPTCP链路时,该客户端需要先向目标服务器请求建立MPTCP链路中的主TCP链路。示例地,该主TCP请求可以为SYN报文,该SYN报文携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示该客户端支持MPTCP连接,且该MP_CAPABLE字段中包含客户端生成的该MPTCP链路的密钥。该密钥可以用于标识该MPTCP链路。
需要说明的是,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,客户端向第一初始服务器发送主TCP请求的过程可以包括:客户端通过中转设备向第一初始服务器发送主TCP请求。其中,该第一初始服务器为多个初始服务器中的任意一个。该中转设备在接收到客户端发送的主TCP请求后,可以基于转发算法,确定第一初始服务器,然后将该主TCP请求分发至第一初始服务器。示例地,该转发算法 可以是基于五元组进行哈希运算的算法,或者也可以是随机分配算法。
步骤102、第一初始服务器确定多个目标服务器中的第一目标服务器。
该第一目标服务器的确定过程可以包括:第一初始服务器基于调度算法,确定该主TCP请求被转发的第一初始服务器。示例地,该调度算法可以是基于五元组进行哈希运算的算法,或者也可以是随机分配算法。
步骤103、第一初始服务器建立MPTCP链路的密钥和第一目标服务器的对应关系。
第一初始服务器在确定第一目标服务器后,便可以建立主TCP请求中携带的密钥和上述确定的第一目标服务器的对应关系,以便后续该第一初始服务器将接收到的携带有相同密钥的TCP请求,转发至该第一目标服务器。
示例地,第一初始服务器可以通过密钥-目标服务器的转发表项,记录MPTCP链路的密钥和第一目标服务器的对应关系。可选地,该转发表项还可以记录主TCP请求携带的MPTCP链路的密钥与五元组的对应关系。其中,该第一目标服务器可以是第一目标服务器的IP地址。例如,该转发表项可以如下述表1所示。
表1
五元组 密钥 第一目标服务器
五元组1 密钥1 目标服务器1
如表1所示,五元组1对应的MPTCP链路的密钥为密钥1,MPTCP链路的密钥对应的第一目标服务器的为目标服务器1。
需要说明的是,上述转发表项中,仅记录了一个主TCP请求携带的MPTCP链路的密钥与五元组和第一目标服务器的对应关系。当第一初始服务器转发下一个主TCP请求时,该转发表项将再次记录该下一个主TCP请求携带的MPTCP的密钥对应的五元组和目标服务器。
步骤104、第一初始服务器将主TCP请求转发至第一目标服务器,该主TCP请求携带有第一初始服务器的地址。
第一初始服务器将主TCP请求转发至第一目标服务器的过程可以包括:第一初始服务器先将主TCP请求进行处理,以使处理后的主TCP请求携带有第一初始服务器的地址。然后,该第一初始服务器向第一目标服务器发送处理后的主TCP请求。
其中,第一初始服务器将TCP请求进行处理可以是:第一初始服务器将该第一初始服务器的地址写入该主TCP请求中。示例地,该主TCP请求可以包括会话初始协议(session initiation protocol,SIP)信息,该SIP信息用于记录将主TCP请求转发至第一初始服务器的设备的地址,第一初始服务器在对该主TCP请求进行处理时,可以将该主TCP请求中SIP信息改写为该第一初始服务器的地址。示例地,该第一初始服务器的地址可以为IP地址,当然该第一初始服务器的地址也可以为媒体访问控制(media access control,MAC)地址,本申请实施例对此不作限定。
步骤105、第一目标服务器获取主TCP请求携带的第一初始服务器的地址。
示例地,第一目标服务器接收第一初始服务器转发的主TCP请求后,可以从该主TCP请求的SIP信息中,获取第一初始服务器的IP地址。
步骤106、第一目标服务器基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。
多个目标服务器可以均配置有多个初始服务器的标识的地址的对应关系,第一目标服务器在接收到主TCP请求,并确定第一初始服务器的地址后,可以在该对应关系中查找该第一初始服务器的地址对应的第一初始服务器的标识。示例地,初始服务器的标识可以为初始服务器的用户身份证明(user identification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。
可选地,每个目标服务器上可以存储有配置文件,该配置文件可以用于记录上述多个LB服务器的UID和IP地址的对应关系。例如,该配置文件的内容可以如下述表2所示。其中,UID(00000001)对应的IP地址为1.75.2.128;UID(00000010)对应的IP地址为1.75.2.127;UID(00000011)对应的IP地址为1.75.2.126;UID(00000100)对应的IP地址为1.75.2.125。
表2
UID IP地址
00000001 1.75.2.128
00000010 1.75.2.127
00000011 1.75.2.126
00000100 1.75.2.125
需要说明的是,上述配置文件中仅记录了4对UID和IP地址的对应关系。本申请实施例对该配置文件中记录的对应关系的对数并不限定。
步骤107、第一目标服务器向客户端发送主TCP请求的响应,该主TCP请求的相应携带有第一初始服务器的标识。
第一目标服务器在接收到主TCP请求后,需要向客户端发送主TCP请求的响应,并且需要向主TCP请求发送第一初始服务器的指示信息。步骤107中以该指示信息为第一初始服务器的标识为例,可选地,该指示信息也可以不为该标识,而是为指示该第一初始服务器的标识的信息,本申请实施例对此不作限定。
可选地,本发明实施例中以第一目标服务器将第一初始服务器的指示信息携带在主TCP请求的响应中为例,当然也可以是第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。其中,当主TCP请求的响应携带有指示信息时,该主TCP请求的响应可以为SYN ACK报文,该SYN ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示该服务器支持MPTCP链路。第一目标服务器通过该SYN ACK报文中MP_CAPABLE字段的有效负载(payload)将该指示信息携带至客户端。并且,由于相关技术中,目标服务器在接收到主TCP请求(也即是SYN报文)后,就会向客户端发送SYN ACK报文,因此,通过该SYN ACK报文携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。
需要说明的是,在客户端接收到该第一目标服务器发送的主TCP请求的响应后,客户端可以向第一目标服务器发送该主TCP请求的响应的确认消息,该确认消息可以为ACK报文。至此,该MPTCP连接中的主TCP链路建立完成。
次TCP链路建立阶段:
步骤108、客户端根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请 求,该次TCP请求中携带有第一初始服务器的标识,以及用于指示MPTCP链路的密钥的令牌信息。
其中,第二初始服务器为多个初始服务器中的任一初始服务器,该次TCP链路与上述主TCP链路属于同一MPTCP链路。当上述指示信息不是第一初始服务器的标识时,相应的,该次TCP请求中携带有指示该第一初始服务器的指示信息,该指示信息并非标识。
本申请实施例中,客户端向第二初始服务器发送次TCP请求的过程可以参考上述客户端向第一初始服务器发送主TCP请求的过程。示例地,该次TCP请求可以为SYN报文,该SYN报文中携带有MP_JOIN字段和token字段。其中,该token字段可以为令牌信息,token字段可以用于指示上述MPTCP链路的密钥。该MP_JOIN字段用于表示该客户端支持MPTCP链路,且该MP_JOIN字段中包含地址标识(Address ID)字段。客户端可以将上述第一初始服务器的指示信息填充至该Address ID字段,以使得该次TCP请求中携带有第一初始服务器的指示信息。
相关技术中,SYN报文携带的MP_JOIN字段中Address ID字段填充的是该客户端的IP地址,但是由于客户端发送的SYN报文通常会经过多次网络地址转换(NAT),且在每次经过网络地址转换后,该Address ID字段中填充的IP地址将会被改变,使得该Address ID字段的信息无法准确指示客户端的IP地址,导致该Address ID字段无效。因此,本申请实施例中复用该Address ID字段携带第一初始服务器的标识,并不会对原有的SYN报文造成影响,且能够提高SYN报文的利用率。
步骤109、第二初始服务器在与次TCP请求携带的指示信息所指示的第一初始服务器不同时,将次TCP请求转发至第一初始服务器。
当第一初始服务器的指示信息包括第一初始服务器的标识时,第二初始服务器在接收到次TCP请求后,获取该次TCP请求中携带的该第一初始服务器的标识。之后,第二初始服务器需要判断该标识与第二初始服务器的标识是否相同,以判断该第二初始服务器与第一初始服务器是否相同。当第二初始服务器确定其与第一初始服务器不同时,该第二初始服务器可以将该次TCP请求转发至第一初始服务器。以下将对第二初始服务器将该次TCP请求转发至第一初始服务器的过程进行说明。
需要说明的是,每个初始服务器上可以存储有多个初始服务器的标识(例如,UID)和地址(例如,IP地址)的对应关系。比如,每个初始服务器上可以存储有个配置文件,该配置文件可以用于记录多个初始服务器的标识和地址的对应关系。上述次TCP请求可以携带有第一LB服务器的标识。第二初始服务器可以首先获取次TCP请求携带的第一初始服务器的标识,比如,第二初始服务器可以从次TCP请求中携带的SYN报文中Address ID字段中提取第一初始服务器的标识。之后,第二初始服务器可以基于第一初始服务器的标识,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的地址。最后,第二初始服务器可以基于第一初始服务器的地址,将次TCP请求发送至第一初始服务器。
步骤110、第一初始服务器将次TCP请求转发至第一目标服务器。
第一初始服务器在接收到任一初始服务器(如上述第二初始服务器)发送的次TCP请求后,可以首先获取接收到的次TCP请求携带的令牌信息,然后基于该令牌信息确定MPTCP链路的密钥。之后,第一初始服务器基于该密钥查询前述建立的MPTCP链路的 密钥和第一目标服务器的对应关系,进而确定该密钥对应的第一目标服务器。最后,第一初始服务器将该次TCP请求转发至该第一目标服务器。
示例地,第一初始服务器可以基于次TCP请求携带的SYN报文中token字段确定MPTCP链路的密钥,进而根据该密钥查询先前建立的转发表项,以确定与该密钥对应的第一目标服务器,然后根据该第一目标服务器将该次TCP请求转发至确定的第一目标服务器。
需要说明的是,图3中以数据传输系统以第二初始服务器与第一初始服务器不是同一设备为例进行说明,当第二初始服务器与次TCP请求携带的指示信息所指示的第一初始服务器相同时,第二初始服务器可以直接将次TCP请求转发至第一目标服务器。并且,该第二初始服务器将次TCP请求转发至第一目标服务器的过程与上述步骤110相同,本申请实施例在此不做赘述。
步骤111、第一目标服务器基于接收到次TCP请求,向客户端发送次TCP请求的响应。
其中,该次TCP请求的响应可以不携带有第一初始服务器的标识。该次TCP请求的响应可以为SYN ACK报文,该SYN ACK报文中携带有MP_JOIN字段。
需要说明的是,在步骤111之后,客户端可以基于接收到的次TCP请求的响应,向第一目标服务器发送第一确认消息,该第一确认消息可以为ACK报文。第一目标服务器在接收到第一确认消息后,向客户端发送第二确认消息,该第二确认消息可以为ACK报文。该第一目标服务器向客户端发送的ACK报文为TCP标准的ACK报文。至此,该次TCP链路建立完成。
还需要说明的是,图3所示的数据传输方法也可以用于图2所示的数据传输系统。此时,在上述步骤107之后,第一目标服务器确定第一后端服务器,并在该第一目标服务器存储该主TCP请求携带的MPTCP链路的密钥与第一后端服务器的关系。第一目标服务器基于该对应关系向第一后端服务器发送主TCP请求。该第一后端服务器在获取到该主TCP请求后,基于该主TCP请求向客户端发送该TCP请求的响应。客户端在接收到第一后端服务器发送的主TCP请求后,继续执行步骤108至步骤110。在第一目标服务器接收到次TCP请求后,该第一目标服务器基于次TCP请求中携带的MPTCP链路的密钥和上述对应关系,将该次TCP请求转发至第一后端服务器。第一后端服务器在接收到该次TCP请求后向客户端发送该次TCP请求的响应。其中,第一初始服务器的标识可以由第一目标服务器单独发送至客户端,也可以由第一目标服务器发送至第一后端服务器,再由第一后端服务器单独发送至客户端,还可以携带在第一后端服务器向客户端发送的主TCP请求的响应中,以由该第一后端服务器发送至客户端。可选地,主TCP请求中还携带有应用层内容信息,第一目标服务器可以根据该主TCP请求中携带的应用层内容信息,基于选择算法确定第一后端服务器,该第一后端服务器为多个后端服务器中的任意一个。
综上所述,本发明实施例提供的数据传输方法,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一 目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。
进一步地,由于第一初始服务器的指示信息可以被携带在相关技术中MPTCP的有关报文中,因此,该数据传输方法符合请求评议(request for comments,RFC)规范,避免了影响其他设备的协议栈对MPTCP传输的数据进行处理,具有较高的兼容性。
为了便于读者理解,本申请实施例针对应用四层LB技术的数据传输系统对数据传输方法进行举例说明。
假设,数据传输系统中,客户端包括一个LTE网络端口和一个WIFI网络端口,且该客户端具有IP地址1和IP地址2两个不同的IP地址。中转设备为网关。初始服务器为LB设备,多个初始服务器包括LB设备1(又称LB节点1)、LB设备2以及LB设备3。该LB设备1的UID为00000001,IP地址为1.75.2.128;LB设备2的UID为00000010,IP地址为1.75.2.127;LB设备3的UID为00000011,IP地址为1.75.2.126。多个目标服务器包括RS1、RS2以及RS3。
如图4所示,客户端在与目标服务器建立MPTCP链路时,客户端通过IP地址1和LTE网络端口向网关发送主TCP请求,该主TCP请求中携带有该主TCP链路所在的MPTCP的密钥1。网关在接收到该主TCP请求后,基于转发算法将该主TCP请求分发至LB设备2。LB设备2在接收到该主TCP请求后,LB设备2建立了如上述表1所示的转发表项,并将该主TCP请求中SIP信息内容改写为其IP地址1.75.2.127,并基于调度算法将该主TCP请求转发至的RS1。
RS1接收到主TCP请求后,基于该主TCP请求获取LB设备2的IP地址1.75.2.127。然后,该RS1基于该IP地址查询如上述表2所示的配置文件,确定该LB设备2的UID为00000010。然后RS1向客户端发送携带有LB设备2的UID的主TCP请求的响应,该主TCP请求的响应携带该LB设备2的UID。客户端基于此完成主TCP链路的建立。
在客户端与目标服务器建立TCP主链路后,客户端可以与该目标服务器建立次TCP链路,该建立次TCP链路的过程与上述建立主TCP链路的过程相似。客户端通过网关将次TCP请求转发至LB设备3,该次TCP请求中,携带有LB设备2的UID。当LB设备3接收到该次TCP请求后,获取该次TCP请求中携带的UID,并将该UID与LB设备3的UID进行对比。由于二者并不相同,因此,LB设备3基于从次TCP请求中获取的UID,确定该UID对应的IP地址为1.75.2.127,并将该次TCP请求转发至1.75.2.127,也即是转发至LB设备2。LB设备2在接收到该次TCP请求后,将该次TCP请求转发至上述RS1。客户端基于此完成次TCP链路的建立。
本发明实施例提供的数据传输方法,由于RS1向客户端发送的LB设备2的UID,客户端可以在次TCP请求中携带该UID,使得LB设备3在接收到该次TCP请求后,可以基于该UID将该次TCP请求转发至LB设备2,从而使得该LB设备2将次TCP请求转发至RS1,形成了MPTCP链路,实现了MPTCP链路下的负载均衡。
进一步地,本申请实施例针对应用七层LB技术的数据传输系统对数据传输方法进行举例说明。
假设,数据传输系统中,客户端和初始服务器均与上述应用四层LB技术的数据传输系统中客户端和初始服务器一致。目标服务器为LB7设备,多个目标服务器包括LB7设 备1、LB7设备2和LB7设备3。多个后端服务器包括RS1、RS2以及RS3。
如图5所示,在该数据传输系统中,客户端将主TCP请求(和次TCP请求)经过多个设备转发至LB7设备1的过程可以参考上述数传输方法中,客户端将主TCP请求(和次TCP请求)经过多个设备转发至RS1的过程,本申请实施例对此不做赘述。
当LB7设备1接收到主TCP请求后,LB7设备1不仅向客户端发送LB设备2的UID,还基于转发算法将该主TCP请求发送至RS2。RS2在接收到该主TCP请求后,向客户端发送该主TCP请求的响应。客户端基于此完成主TCP链路的建立。
当LB7设备1接收到次TCP请求后,LB7设备1可以无需向客户端发送该次TCP请求的响应,而是基于转发算法将该次TCP请求发送至RS2。RS2在接收到该次TCP请求后,向客户端发送该次TCP请求的响应。客户端基于此完成次TCP链路的建立。
本发明实施例提供的数据传输方法,由于LB7设备1向客户端发送的LB设备2的UID,客户端可以在次TCP请求中携带该UID,使得LB设备3在接收到该次TCP请求后,可以基于该UID将该次TCP请求转发至LB设备2,从而使得该LB设备2将次TCP请求转发至LB7设备1,进而使得该LB7设备1将该次TCP请求转发至与主TCP链路上的RS2,形成了MPTCP链路,实现了MPTCP链路下的负载均衡。
需要说明的是,前述多个初始服务器可以构成LB集群。该LB集群的工作模式可以属于主主模式,也可以属于主备模式。该主主模式指的是,在LB集群中,每个初始服务器均可以将接收到的TCP请求转发至目标服务器。该主备模式指的是,在LB集群中的初始服务器被划分为主初始服务器和备初始服务器,其中,主初始服务器可以将接收到的TCP请求转发至目标服务器,而备初始服务器在通常情况下,无法将接收到的TCP请求转发至目标服务器。
相关技术中,在上述LB集群的工作模式可以属于主主模式的情况下,为了解决前述在建立主TCP链路时确定的目标服务器,与在建立次TCP链路时确定的目标服务器可能并不相同的问题。在建立主连接的过程中,多个初始服务器中任一初始服务器在确定主TCP请求所被转发的目标服务器后,可以将该主TCP请求携带的密钥与该目标服务器的对应关系额外同步发送至该LB集群中每个初始服务器。此时,在建立次连接的过程中,任一初始服务器接收到次TCP请求后,可以基于次TCP请求中携带的密钥和该对应关系,确定主TCP请求被转发至的目标服务器。从而使得在建立主TCP链路时确定的目标服务器,与在建立次TCP链路时确定的目标服务器相同。但是,LB集群间额外的信息同步的技术难度较大,导致LB集群在主主模式下工作的实现难度较大。
而本发明实施例提供的数据传输方法中,由于LB集群中,每个初始服务器可以根据次TCP请求中携带的主TCP链路上的初始服务器的标识,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器。因此,无需LB集群间额外的信息同步,降低了LB集群在主主模式下工作的实现难度,实现了MPTCP场景中LB集群在主主模式下的负载均衡。
进一步地,由于LB集群的工作模式在主备模式下时,主初始服务器也可以通过本申请实施例所述的数据传输方法,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器,因此,本申请实施例也可以应用在MPTCP场景中LB集群在主备模式下的负载均衡。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
本申请实施例提供一种数据传输装置,用于数据传输系统中的客户端,数据传输系统还包括:多个初始服务器和多个目标服务器,如图6所示,数据传输装置200包括:第一接收模块201、发送模块202和第二接收模块203。
第一接收模块201,用于接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,第一目标服务器和第一初始服务器均位于客户端建立的主传输控制协议TCP链路上;
发送模块202,用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息;
第二接收模块203,用于接收第一目标服务器发送的次TCP请求的响应。
可选地,如图7所示,数据传输装置200还包括:发送主请求模块204,用于在接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。
第一接收装置201,还用于:接收第一目标服务器发送的主TCP请求的响应,主TCP请求的响应携带有指示信息。
可选地,数据传输系统还包括中转设备。
发送主请求模块204,还用于:通过中转设备向第一初始服务器发送主TCP请求。
发送模块202,还用于:根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。
本申请实施例提供一种数据传输装置,该数据传输装置用于数据传输系统中的第三初始服务器,数据传输系统包括客户端、多个初始服务器和多个目标服务器,第三初始服务器为多个初始服务器中的任一初始服务器,如图8所示,数据传输装置300包括:接收模块301和转发模块302。
接收模块301,用于接收其他设备发送的建立次TCP链路的次TCP请求,其中,其他设备包括:客户端或多个初始服务器中除第三初始服务器之外的任一服务器,次TCP请求中携带有指示信息,且指示信息用于指示多个初始服务器中位于客户端建立的主TCP链路上的初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;
转发模块302,用于在第三初始服务器与指示信息所指示的初始服务器不同时,将次TCP请求转发至指示信息所指示的初始服务器。
可选地,如图9所示,数据传输装置300还包括:转发次请求模块303,用于在第三初始服务器与指示信息所指示的初始服务器相同时,将次TCP请求转发至第一目标服务器,第一目标服务器为多个目标服务器中位于主TCP链路上的目标服务器。
可选地,请继续参考图9,数据传输装置300还包括:接收主请求模块304和转发主请求模块305。
接收主请求模块304,用于在接收其他设备发送的建立次TCP链路的次TCP请求之前,接收客户端发送的建立主TCP链路的主TCP请求,指示信息所指示的初始服务器为第三初始服务器;
转发主请求模块305,用于将主TCP请求转发至第一目标服务器。
可选地,指示信息包括第三初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。转发主请求模块305,还用于将主TCP请求进行处理,以使处理后的主TCP请求携带有第三初始服务器的地址;并向第一目标服务器发送处理后的主TCP请求。
可选地,指示信息携带有其指示的初始服务器的标识,多个初始服务器均配置有多个初始服务器的标识和地址的对应关系。转发模块302,还用于获取指示信息携带的初始服务器的标识;基于获取到的初始服务器的标识,以及多个初始服务器的标识和地址的对应关系,确定指示信息所指示的初始服务器的地址;基于指示信息所指示的初始服务器的地址,将次TCP请求发送至指示信息所指示的初始服务器。
可选地,主TCP请求携带有MPTCP的密钥,次TCP请求携带有用于指示密钥的令牌信息。如图9所示,数据传输装置300还包括:建立模块306和查找模块307。
建立模块306,用于在第三初始服务器将主TCP请求转发至第一目标服务器之前,建立密钥和第一目标服务器的对应关系;
查找模块307,用于在第三初始服务器将次TCP请求转发至第一目标服务器之前,在密钥和第一目标服务器的对应关系中,查找令牌信息所指示的密钥所对应的第一目标服务器。
可选地,数据传输系统还包括中转设备。接收主请求模块304,还用于通过中转设备接收客户端发送的主TCP请求。
接收模块301,还用于当其他设备为客户端时,通过中转设备接收客户端发送的建立次TCP链路的次TCP请求。
可选地,次TCP请求包括地址标识字段,地址标识字段携带有上述指示信息。
本申请提供一种数据传输装置,其用于数据传输系统中的第一目标服务器,数据传输系统包括客户端、多个初始服务器和多个目标服务器,第一目标服务器为多个目标服务器中位于客户端建立的主TCP链路上的服务器,如图10所示,数据传输装置500包括:第一发送模块501、接收模块502和第二发送模块503。
第一发送模块501,用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器为:多个初始服务器中位于主TCP链路上的初始服务器;
接收模块502,用于接收第一初始服务器发送的建立次TCP链路的次TCP请求,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;
第二发送模块503,用于基于次TCP请求,向客户端发送次TCP请求的响应。
可选地,如图11所示,数据传输装置500还包括:接收主请求模块504,用于在向客户端发送第一初始服务器的指示信息之前,接收第一初始服务器转发的建立主TCP链路的主TCP请求。
第一发送模块501,还用于:第一目标服务器向客户端发送主TCP请求的响应,主 TCP请求的响应携带有指示信息。
可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。数据传输装置500还包括:获取模块505和确定模块506。
获取模块505,用于在向客户端发送第一初始服务器的指示信息之前,获取主TCP请求携带的第一初始服务器的地址;
确定模块506,用于基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。
本申请实施例提供了一种数据传输系统,如图1或2所示,数据传输系统包括客户端、多个初始服务器和多个目标服务器,
第一目标服务器用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器和第一目标服务器均位于客户端建立的主传输控制协议TCP链路上。
客户端用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息。
第二初始服务器用于在与指示信息所指示的第一初始服务器不同时,将次TCP请求转发至第一初始服务器。
第一初始服务器用于将次TCP请求转发至第一目标服务器。
第一目标服务器用于基于接收到次TCP请求,向客户端发送次TCP请求的响应。
可选地,第二初始服务器用于在与指示信息所指示的第一初始服务器相同时,将次TCP请求转发至第一目标服务器。
可选地,客户端用于在第一目标服务器向客户端发送第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。
第一初始服务器用于将主TCP请求转发至第一目标服务器。
第一目标服务器用于向客户端发送主TCP请求的响应,主TCP请求的响应携带有指示信息。
可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。
第一初始服务器用于将主TCP请求进行处理,以使处理后的主TCP请求携带有第一初始服务器的地址。
第一初始服务器用于向第一目标服务器发送处理后的主TCP请求。
第一目标服务器在第一目标服务器用于向客户端发送第一初始服务器的指示信息之前,用于获取主TCP请求携带的第一初始服务器的地址。
第一目标服务器用于基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。
可选地,指示信息包括第一初始服务器的标识,多个初始服务器均配置有多个初始服务器的标识和地址的对应关系。
第二初始服务器用于获取次TCP请求携带的第一初始服务器的标识。
第二初始服务器用于基于第一初始服务器的标识,以及多个初始服务器的标识和地址 的对应关系,确定第一初始服务器的地址。
第二初始服务器用于基于第一初始服务器的地址,将次TCP请求发送至第一初始服务器。
可选地,初始服务器130的地址包括互联网协议IP地址。
可选地,次TCP请求包括地址标识字段,地址标识字段携带有第一初始服务器的指示信息。
可选地,主TCP请求携带有MPTCP的密钥,次TCP请求携带有用于指示密钥的令牌信息。
第一初始服务器在第一初始服务器将主TCP请求转发至第一目标服务器之前,用于建立密钥和第一目标服务器的对应关系。
第一初始服务器用于在第一初始服务器将次TCP请求转发至第一目标服务器之前,在密钥和第一目标服务器的对应关系中,查找令牌信息所指示的密钥所对应的第一目标服务器。
可选地,数据传输系统还包括:中转设备。
客户端用于通过中转设备向第一初始服务器发送主TCP请求。
客户端用于根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行本发明实施例提供的数据传输方法中客户端执行的步骤。例如,图3所示的实施例中的步骤101和步骤108。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。
或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。
本发明实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中客户端执行的步骤。例如,步骤101和步骤108。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。
或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。
本申请实施例提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当芯片运行时用于实现上述方法实施例中客户端执行的步骤。例如,步骤101和步骤108。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。
或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。
或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的服务器、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或网络连接可以是通过一些接口、装置或单元的间接耦合或网络连接,也可以是电的,机械的或其它的形式连接。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权 利要求的保护范围为准。

Claims (25)

  1. 一种数据传输方法,其特征在于,应用于数据传输系统,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述方法包括:
    第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;
    所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;
    所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;
    所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器;
    所述第一目标服务器基于接收到的所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。
  3. 根据权利要求1或2所述的方法,其特征在于,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:
    所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求;
    所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器;
    所述第一目标服务器向所述客户端发送第一初始服务器的指示信息,包括:
    所述第一目标服务器向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
  4. 根据权利要求3所述的方法,其特征在于,所述指示信息包括所述第一初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;
    所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器,包括:
    所述第一初始服务器将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址;
    所述第一初始服务器向所述第一目标服务器发送处理后的所述主TCP请求;
    在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:
    所述第一目标服务器获取所述主TCP请求携带的所述第一初始服务器的地址;
    所述第一目标服务器基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。
  5. 根据权利要求3或4所述的方法,其特征在于,所述指示信息包括所述第一初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关 系;
    所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器,包括:
    所述第二初始服务器获取所述次TCP请求携带的所述第一初始服务器的标识;
    所述第二初始服务器基于所述第一初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的地址;
    所述第二初始服务器基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。
  6. 根据权利要求4或5所述的方法,其特征在于,所述初始服务器的地址包括互联网协议IP地址。
  7. 根据权利要求3至6任一所述的方法,其特征在于,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,所述方法还包括:
    在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,所述第一初始服务器建立所述密钥和所述第一目标服务器的对应关系;
    在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,所述第一初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
  8. 根据权利要求3至7任一所述的方法,其特征在于,所述数据传输系统还包括中转设备;
    所述客户端向所述第一初始服务器发送主TCP请求,包括:所述客户端通过所述中转设备向所述第一初始服务器发送所述主TCP请求;
    所述客户端根据所述指示信息向第二初始服务器发送次TCP请求,包括:所述客户端根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。
  9. 根据权利要求1至8任一所述的方法,其特征在于,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。
  10. 一种数据传输方法,其特征在于,用于数据传输系统中的客户端,所述数据传输系统还包括:多个初始服务器和多个目标服务器,所述方法包括:
    客户端接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,所述第一目标服务器和所述第一初始服务器均位于所述客户端建立的主传输控制协议TCP链路上;
    所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;
    所述客户端接收所述第一目标服务器发送的所述次TCP请求的响应。
  11. 一种数据传输方法,其特征在于,用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述方法包括:
    所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求,其中,所 述其他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;
    所述第三初始服务器在与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。
  12. 一种数据传输方法,其特征在于,用于数据传输系统中的第一目标服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述客户端建立的主TCP链路上的服务器,所述方法包括:
    所述第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器为:多个初始服务器中位于所述主TCP链路上的初始服务器;
    所述第一目标服务器接收所述第一初始服务器发送的建立次TCP链路的次TCP请求,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;
    所述第一目标服务器基于所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
  13. 一种数据传输系统,其特征在于,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,
    第一目标服务器用于向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;
    所述客户端用于根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;
    所述第二初始服务器用于在所述第二初始服务器与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;
    所述第一初始服务器用于将所述次TCP请求转发至所述第一目标服务器;
    所述第一目标服务器用于基于接收到所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
  14. 根据权利要求13所述的系统,其特征在于,所述第二初始服务器用于在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。
  15. 根据权利要求13或14所述的系统,其特征在于,所述客户端用于在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,向所述第一初始服务器发送建立所述主TCP链路的主TCP请求;
    所述第一初始服务器用于将所述主TCP请求转发至所述第一目标服务器;
    所述第一目标服务器用于向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。
  16. 根据权利要求15所述的系统,其特征在于,所述指示信息包括所述第一初始服 务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;
    所述第一初始服务器用于将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址;
    所述第一初始服务器用于向所述第一目标服务器发送处理后的所述主TCP请求;
    所述第一目标服务器用于在所述第一目标服务器用于向所述客户端发送第一初始服务器的指示信息之前,获取所述主TCP请求携带的所述第一初始服务器的地址;
    所述第一目标服务器用于基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。
  17. 根据权利要求15或16所述的系统,其特征在于,所述指示信息包括所述第一初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系;
    所述第二初始服务器用于获取所述次TCP请求携带的所述第一初始服务器的标识;
    所述第二初始服务器用于基于所述第一初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的地址;
    所述第二初始服务器用于基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。
  18. 根据权利要求16或17所述的系统,其特征在于,所述初始服务器的地址包括互联网协议IP地址。
  19. 根据权利要求13至18任一所述的系统,其特征在于,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。
  20. 根据权利要求15至19任一所述的系统,其特征在于,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,
    所述第一初始服务器用于在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,建立所述密钥和所述第一目标服务器的对应关系;
    所述第一初始服务器用于在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。
  21. 根据权利要求15至20任一所述的系统,其特征在于,所述数据传输系统还包括中转设备;
    所述客户端用于通过所述中转设备向所述第一初始服务器发送所述主TCP请求;
    所述客户端用于根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。
  22. 一种数据传输装置,其特征在于,用于数据传输系统中的客户端,所述数据传输系统还包括:多个初始服务器和多个目标服务器,所述装置包括:
    第一接收模块,用于接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,所述第一目标服务器和所述第一初始服务器均位于所述客户端建立的主传输控制协议TCP链路上;
    发送模块,用于根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP 请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;
    第二接收模块,用于接收所述第一目标服务器发送的所述次TCP请求的响应。
  23. 一种数据传输装置,其特征在于,用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述装置包括:
    接收模块,用于接收其他设备发送的建立次TCP链路的次TCP请求,其中,所述其他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;
    转发模块,用于在所述第三初始服务器与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。
  24. 一种数据传输装置,其特征在于,用于数据传输系统中的第一目标服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述客户端建立的主TCP链路上的服务器,所述装置包括:
    第一发送模块,用于向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器为:多个初始服务器中位于所述主TCP链路上的初始服务器;
    接收模块,用于接收所述第一初始服务器发送的建立次TCP链路的次TCP请求,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;
    第二发送模块,用于基于所述次TCP请求,向所述客户端发送所述次TCP请求的响应。
  25. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求10至12任一所述的数据传输方法。
PCT/CN2020/102479 2019-07-16 2020-07-16 数据传输方法、装置及系统 WO2021008591A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910639170.7A CN110460641A (zh) 2019-07-16 2019-07-16 数据传输方法、装置及系统
CN201910639170.7 2019-07-16

Publications (1)

Publication Number Publication Date
WO2021008591A1 true WO2021008591A1 (zh) 2021-01-21

Family

ID=68481295

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/102479 WO2021008591A1 (zh) 2019-07-16 2020-07-16 数据传输方法、装置及系统

Country Status (2)

Country Link
CN (1) CN110460641A (zh)
WO (1) WO2021008591A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110460641A (zh) * 2019-07-16 2019-11-15 华为技术有限公司 数据传输方法、装置及系统
CN113132248A (zh) * 2019-12-30 2021-07-16 网宿科技股份有限公司 负载均衡方法、设备及系统
CN114205301A (zh) * 2020-08-28 2022-03-18 华为技术有限公司 Mptcp负载均衡方法、介质及设备
CN114531475A (zh) * 2020-11-02 2022-05-24 中兴通讯股份有限公司 一种业务传输方法、通信设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016155826A1 (en) * 2015-04-01 2016-10-06 Telefonaktiebolaget Lm Ericsson (Publ) System, apparatus and method for load balancing
CN107846364A (zh) * 2016-09-19 2018-03-27 阿里巴巴集团控股有限公司 一种报文的处理方法和装置
CN108667880A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种负载均衡系统、方法及装置
CN108696557A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 信息处理系统、方法和装置
CN108768878A (zh) * 2018-06-06 2018-11-06 北京奇艺世纪科技有限公司 一种负载均衡系统、方法、装置及负载均衡设备
CN109510770A (zh) * 2018-12-07 2019-03-22 北京金山云网络技术有限公司 负载均衡节点之间的信息同步方法、装置和处理设备
WO2019125483A1 (en) * 2017-12-22 2019-06-27 Nokia Technologies Oy Designs of an mptcp-aware load balancer and load balancer using the designs
CN110460641A (zh) * 2019-07-16 2019-11-15 华为技术有限公司 数据传输方法、装置及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9451415B2 (en) * 2011-06-17 2016-09-20 Qualcomm Incorporated Cooperative data transport
US10142799B2 (en) * 2014-08-19 2018-11-27 Qualcomm Incorporated Multicasting traffic using multi-connectivity
CN106533937B (zh) * 2016-11-01 2019-08-30 佛山科学技术学院 一种多路径分布式的报文转发方法、及基站
CN107396396B (zh) * 2017-05-31 2020-03-24 北京交通大学 支持多源多径的数据传输管理方法
CN109088892B (zh) * 2018-10-19 2021-02-12 网宿科技股份有限公司 数据传输方法、系统以及代理服务器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016155826A1 (en) * 2015-04-01 2016-10-06 Telefonaktiebolaget Lm Ericsson (Publ) System, apparatus and method for load balancing
CN107846364A (zh) * 2016-09-19 2018-03-27 阿里巴巴集团控股有限公司 一种报文的处理方法和装置
CN108667880A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种负载均衡系统、方法及装置
CN108696557A (zh) * 2017-04-11 2018-10-23 北京京东尚科信息技术有限公司 信息处理系统、方法和装置
WO2019125483A1 (en) * 2017-12-22 2019-06-27 Nokia Technologies Oy Designs of an mptcp-aware load balancer and load balancer using the designs
CN108768878A (zh) * 2018-06-06 2018-11-06 北京奇艺世纪科技有限公司 一种负载均衡系统、方法、装置及负载均衡设备
CN109510770A (zh) * 2018-12-07 2019-03-22 北京金山云网络技术有限公司 负载均衡节点之间的信息同步方法、装置和处理设备
CN110460641A (zh) * 2019-07-16 2019-11-15 华为技术有限公司 数据传输方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
C.PAASCH ET AL.: "Multipath TCP behind Layer-4 loadbalancers; draft-paasch-mptcp-loadbalancer-00", INTERNET-DRAFT: MPTCP WORKING GROUP, IETF, 8 September 2015 (2015-09-08), pages 1 - 8, XP015108100 *
F.DUCHENE ET AL.: "Multipath TCP Load Balancing; draft-duchene-mptcp-load-balancing-01", INTERNET-DRAFT: MPTCP WORKING GROUP, IETF, 3 July 2017 (2017-07-03), pages 1 - 12, XP015120718 *

Also Published As

Publication number Publication date
CN110460641A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
US10079803B2 (en) Peer-to-peer connection establishment using TURN
WO2021008591A1 (zh) 数据传输方法、装置及系统
US11522734B2 (en) Method for controlling a remote service access path and relevant device
CN113872855B (zh) 用于全局虚拟网络中的虚拟接口和高级智能路由的系统和方法
US11277313B2 (en) Data transmission method and corresponding device
CN111512611B (zh) Mptcp感知的负载均衡器的设计方法和使用该设计的负载均衡器
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络系统
US20230308951A1 (en) Data processing method, network element device, and readable storage medium
CN102148767A (zh) 一种基于nat的数据路由方法及其装置
WO2007033363A2 (en) System and method for providing packet connectivity between heterogeneous networks
CN101827039B (zh) 一种负载分担的方法和设备
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
CN111107672A (zh) 一种建立多路径连接的子流的方法、装置和系统
KR20180051621A (ko) 전기통신 네트워크와 적어도 하나의 사용자 장비 간의 적어도 하나의 통신 교환의 개선된 핸들링을 위한 방법, 전기통신 네트워크, 사용자 장비, 시스템, 프로그램 및 컴퓨터 프로그램 제품
WO2012110771A2 (en) Mobile data communication
CN112291815B (zh) 一种mptcp连接建立方法及装置
WO2014063501A1 (zh) 报文传输方法及装置
EP3688969B1 (en) Traffic management in data networks
WO2018149673A1 (en) A method of distributing a sub-flow associated with a session and a network apparatus
CN114793221B (zh) Nat关联表的处理方法及装置
KR101308089B1 (ko) 고가용성을 지원하기 위한 IPSec VPN 시스템 및 방법
US20130124688A1 (en) Wireless network system and content provision method using the same
CN116506369A (zh) 一种双栈网络流量调度方法
CN114205301A (zh) Mptcp负载均衡方法、介质及设备
CN113132248A (zh) 负载均衡方法、设备及系统

Legal Events

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

Ref document number: 20840067

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20840067

Country of ref document: EP

Kind code of ref document: A1