[go: up one dir, main page]

CN110460641A - Data transmission method, apparatus and system - Google Patents

Data transmission method, apparatus and system Download PDF

Info

Publication number
CN110460641A
CN110460641A CN201910639170.7A CN201910639170A CN110460641A CN 110460641 A CN110460641 A CN 110460641A CN 201910639170 A CN201910639170 A CN 201910639170A CN 110460641 A CN110460641 A CN 110460641A
Authority
CN
China
Prior art keywords
server
initial
initial server
tcp
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910639170.7A
Other languages
Chinese (zh)
Inventor
李俊武
申思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910639170.7A priority Critical patent/CN110460641A/en
Publication of CN110460641A publication Critical patent/CN110460641A/en
Priority to PCT/CN2020/102479 priority patent/WO2021008591A1/en
Pending legal-status Critical Current

Links

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]

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链路的建立。

The application discloses a data transmission method, device and system, belonging to the field of computer communication. The method includes: the first target server sends instruction information of the first initial server to the client; the client sends a secondary TCP request for establishing a secondary TCP link to the second initial server according to the instruction information, and the secondary TCP request carries the instruction information ; When the second initial server is different from the first initial server indicated by the indication information, the second TCP request is forwarded to the first initial server; the first initial server forwards the second TCP request to the first target server; the first target server is based on After receiving the second TCP request, send the response of the second TCP request to the client. This application guarantees the establishment of the MPTCP link.

Description

数据传输方法、装置及系统Data transmission method, device and system

技术领域technical field

本申请涉及计算机通信领域,特别涉及一种数据传输方法、装置及系统。The present application relates to the field of computer communication, in particular to a data transmission method, device and system.

背景技术Background technique

随着移动互联网通信的兴起,客户端通常支持多种链路的数据传输。例如,该多种链路以包括基于长期演进(long term evolution,LTE)技术的链路和基于无线保真(wirelessfidelity,WIFI)技术的链路等。因此,为了合理利用该多种链路,利用多路径并发传输数据的多路径传输控制协议(multipath transport control,MPTCP)应运而生。由于负载均衡(load balance,LB)技术在通信中应用较为普遍,因此,基于LB技术的MPTCP也随之兴起。With the rise of mobile Internet communications, clients usually support data transmission over multiple links. For example, the various links may include a link based on a long term evolution (long term evolution, LTE) technology, a link based on a wireless fidelity (wirelessfidelity, WIFI) technology, and the like. Therefore, in order to reasonably utilize the various links, a multipath transport control protocol (multipath transport control, MPTCP) that uses multiple paths to transmit data concurrently emerges as the times require. Since the load balance (LB) technology is widely used in communication, MPTCP based on the LB technology also rises accordingly.

目前基于四层LB技术的MPTCP中,数据传输系统通常包括:客户端、多个初始服务器和多个目标服务器。其中,客户端能够与目标服务器建立MPTCP链路,该MPTCP链路包括客户端与该目标服务器建立的主传输控制协议(transport control,TCP)链路和次TCP链路。客户端在与目标服务器建立主TCP链路时,客户端可以将该主TCP链路的请求发送至多个初始服务器中随机选取的一个初始服务器,接收到该请求的初始服务器将接收到的请求在发送至多个目标服务器中随机选取的一个目标服务器。之后,接收到该请求的目标服务器向客户端发送该请求的响应,进而使客户端与该目标服务器建立主TCP链路。客户端与目标服务器在建立主TCP链路之后,该客户端还可以与目标服务器建立次TCP链路,客户端可以将该次TCP链路的请求发送至多个初始服务器中随机选取的一个初始服务器,接收到该请求的初始服务器将接收到的该请求再发送至多个目标服务器中随机选取的一个目标服务器。之后,接收到该请求的目标服务器向客户端发送该请求的响应,进而使客户端与该目标服务器建立次TCP链路。In the current MPTCP based on the four-layer LB technology, the data transmission system usually includes: a client, multiple initial servers, and multiple target servers. Wherein, the client can establish an MPTCP link with the 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. When the client establishes the main TCP link with the target server, the client can send the request of the main TCP link to an initial server randomly selected among multiple initial servers, and the initial server receiving the request will receive the request in the Send to a randomly selected target server among multiple target servers. Afterwards, 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. After the client and the target server establish a primary TCP link, the client can also establish a secondary TCP link with the target server, and the client can send a request for the secondary TCP link to an initial server randomly selected among multiple initial servers , the initial server receiving the request resends the received request to a randomly selected target server among the multiple target servers. Afterwards, 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.

由于MPTCP链路要求其所有TCP链路均为客户端与同一目标服务器之间的链路,而相关技术中客户端发出的用于建立主TCP链路的请求和用于建立次TCP链路的请求可能被转发至不同的初始服务器,进而被转发至不同的目标服务器,因此,可能导致建立的主TCP链路和次TCP链路无法形成MPTCP链路。Since the MPTCP link requires all its TCP links to be links between the client and the same target server, and the request sent by the client for establishing the primary TCP link and the request for establishing the secondary TCP link in the related art The request may be forwarded to different initial servers, and then forwarded to different target servers. Therefore, the established primary TCP link and secondary TCP link may fail to form an MPTCP link.

发明内容Contents of the invention

本申请提供了一种数据传输方法、装置及系统,可以解决相关技术中MPTCP链路可能无法形成的问题。The present application provides a data transmission method, device and system, which can solve the problem that the MPTCP link may not be formed in the related art.

第一方面,提供一种数据传输方法,应用于数据传输系统,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述方法包括:第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;示例地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器;所述第一目标服务器基于接收到所述次TCP请求,向所述客户端发送所述次TCP请求的响应。In a first aspect, a data transmission method is provided, which is applied to a data transmission system, and the data transmission system includes a client, a plurality of initial servers, and a plurality of target servers, and the method includes: sending the first target server to the client Sending indication information of a first initial server, wherein both the first initial server and the first target server are located on the main transmission control protocol TCP link established by the client, and the first initial server is the Any initial server among the multiple initial servers; the client sends a secondary TCP request for establishing a secondary TCP link to a second initial server according to the indication information, wherein the second initial server is one of the multiple initial servers 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 The TCP request includes an address identification field, and the address identification field carries indication information of the first 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 request to the first initial server; The request is forwarded to the first target server; based on receiving the secondary TCP request, the first target server sends a response to the secondary TCP request to the client.

这样,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。In this way, 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 information in the secondary TCP request, so that the second initial server receives the After the TCP request, the secondary TCP request may be forwarded to the first initial server based on the indication information, so that the first initial server forwards the secondary TCP request to the server receiving the primary TCP request. It ensures 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.

需要说明的是,上述以第二初始服务器与第一初始服务器不是同一设备为例进行说明,当所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。It should be noted that, the above description takes the second initial server and the first initial server as an example, and when the second initial server is the same as the first initial server indicated by the indication information, the The secondary TCP request is forwarded to the first target server.

可选地,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,客户端可以将主TCP请求发送至第一目标服务,该发送的过程包括:所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求,所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器。值得说明的是,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程可以包括:所述第一目标服务器向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。Optionally, before the first target server sends the indication information of the first initial server to the client, the client may send a main TCP request to the first target service, and the sending process includes: the client sending a primary TCP request for establishing the primary TCP link to the first initial server, and the first initial server forwards the primary TCP request to the first target server. It is worth noting that the above 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 of the main TCP request carries the indication information.

这样,通过所述主TCP请求的响应携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。当然,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程也可以是:第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。In this way, through the response of the main TCP request carrying the instruction information of the first initial server, there is no need to send the instruction information separately, saving network bandwidth and improving the compatibility of the data transmission method. Certainly, the above-mentioned process of the first target server sending the indication information of the first initial server to the client may also be: the first target server respectively sends to the client a response to the main TCP request that does not carry the above indication information, and this instruction.

可选地,指示信息可以为第一初始服务器的标识,也可以为指示该第一初始服务器的标识的信息。本申请实施例以所述指示信息包括所述第一初始服务器的标识为例进行说明。示例地,初始服务器的标识可以为初始服务器的用户身份证明(UserIdentification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。其中,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。所述初始服务器的地址额可以为IP地址,也可以为媒体访问控制地址(Media Access Control Address,MAC),本申请实施例对此不作限定。Optionally, the indication information may be the identifier of the first initial server, or may be information indicating the identifier of the first initial server. This embodiment of the present application is described by taking the indication information including the identifier of the first initial server as an example. Exemplarily, the identifier of the initial server may be a user identification (UserIdentification, UID) of the initial server, and the UID may be data of any size, for example, 8-bit (bit) data. Wherein, each of the multiple target servers is configured with a corresponding relationship between the identifiers 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 this embodiment of the present application.

上述所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器的过程可以包括:所述第一初始服务器将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址。所述第一初始服务器向所述第一目标服务器发送处理后的所述主TCP请求。The 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 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.

进一步的,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器获取所述主TCP请求携带的所述第一初始服务器的地址。所述第一目标服务器基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。Further, before the first target server sends the indication information of the first initial server to the client, 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 identifier of the first initial server based on the address of the first initial server and the correspondence between identifiers and addresses of the plurality of initial servers.

可选地,所述多个初始服务器也可以均配置有所述多个初始服务器的标识和地址的对应关系。上述所述第二初始服务器在与所述指示信息所指示的所述第一初始服务器不同时,第二初始服务器将所述次TCP请求转发至所述第一初始服务器的过程可以包括:Optionally, each of the multiple initial servers may also be configured with a corresponding relationship between identifiers and addresses of the multiple initial servers. When the above-mentioned second initial server is different from the first initial server indicated by the indication information, the process of the second initial server forwarding the secondary TCP request to the first initial server may include:

所述第二初始服务器首先获取所述次TCP请求携带的所述第一初始服务器的标识。然后所述第二初始服务器基于所述第一初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的地址。最后,所述第二初始服务器基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。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 identifier of the first initial server and the correspondence between identifiers and addresses of the plurality of 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.

这样,由于每个初始服务器可以根据次TCP请求中携带的主TCP链路上的初始服务器的标识,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器。因此,在LB集群处于主主模式时,无需相关技术中LB集群间额外的信息同步,降低了LB集群在主主模式下工作的实现难度,实现了MPTCP场景中LB集群在主主模式下的负载均衡。In this way, since each initial server can forward the secondary TCP request to the initial server on the primary TCP link according to the identification of the initial server on the primary TCP link carried in the secondary TCP request, so that all TCP requests are sent by The same origin server forwards to the destination server. Therefore, when the LB cluster is in the active-active mode, there is no need for additional information synchronization between the LB clusters in related technologies, which reduces the difficulty of implementing the LB cluster working in the active-active mode, and realizes the LB cluster in the active-active mode in the MPTCP scenario. Load balancing.

可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,所述方法还包括:在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,所述第一初始服务器建立所述密钥和所述第一目标服务器的对应关系。相应的,在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,所述第一初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。Optionally, the primary TCP request carries the key of the MPTCP, and the secondary TCP request carries token information for indicating the key, and the method further includes: sending Before the main TCP request is forwarded to the first target server, the first initial server establishes a correspondence between the key and the first target server. Correspondingly, before the first initial server forwards the secondary TCP request to the first target server, the first initial 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.

需要说明的是,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,所述客户端向所述第一初始服务器发送主TCP请求可以包括:所述客户端通过所述中转设备向所述第一初始服务器发送所述主TCP请求。相应的,所述客户端根据所述指示信息向第二初始服务器发送次TCP请求的过程也可以包括:所述客户端根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。It should be noted that, since the client and the initial server in the data transmission system establish a communication connection through a transit device, therefore, the sending of the main TCP request by the client to the first initial server may include: the client passes through the transit The device sends the primary TCP request to the first initial server. Correspondingly, the process of the client sending a secondary TCP request to the second initial server according to the indication information may also include: the client sends a secondary TCP request to the second initial server through the transit device according to the indication information ask.

第二方面,提供一种数据传输方法,该数据传输方法用于数据传输系统中的客户端,所述数据传输系统还包括:多个初始服务器和多个目标服务器,所述方法包括:In a second aspect, 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: a plurality of initial servers and a plurality of target servers, and the method includes:

客户端接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,所述第一目标服务器和所述第一初始服务器均位于所述客户端建立的主传输控制协议TCP链路上。所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息。所述客户端接收所述第一目标服务器发送的所述次TCP请求的响应。The client receives indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein both the first target server and the first initial server are located at the client Establish the master Transmission Control Protocol on the TCP link. The client sends a secondary TCP request for establishing a secondary TCP link to a second initial server according to the indication information, where the second initial server is any initial server among the plurality of initial servers, and the secondary The TCP link and the primary TCP link belong to the same MPTCP link, and the secondary TCP request carries the indication information. The client receives a response to the second TCP request sent by the first target server.

作为一种可选地实现方式,在所述客户端接收第一目标服务器发送的所述第一初始服务器的指示信息之前,所述方法还包括:所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求。As an optional implementation manner, 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 an A master TCP request to establish the master TCP link.

上述客户端接收所述多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息的过程可以包括:所述客户端接收所述第一目标服务器发送的主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。The process for the client to receive the indication information of the first of 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 A response of the main TCP request carries the indication information.

可选地,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,所述数据传输系统还包括中转设备。此时,所述客户端向所述第一初始服务器发送建立所述主TCP链路的主TCP请求的过程可以包括:所述客户端通过所述中转设备向所述第一初始服务器发送所述主TCP请求。所述客户端根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求的过程可以包括:所述客户端根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。Optionally, since the communication connection between the client and the initial server is established through the transfer device in the data transfer system, the data transfer system further includes the transfer device. At this time, 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 Master TCP request. The process for the client to send a secondary TCP request for establishing a secondary TCP link to the second initial server according to the indication information may include: the client sends a request to the second initial server through the transit device according to the indication information TCP requests.

第三方面,提供一种数据传输方法,该数据传输方法用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述方法包括:所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求,其中,所述其他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;所述第三初始服务器在与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。In a third aspect, a data transmission method is provided, the data transmission method is 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 The initial server is any initial server among the plurality of initial servers, and the method includes: the third initial server receives a secondary TCP request for establishing a secondary TCP link sent by other devices, wherein the other devices include: The client or any server in the multiple initial servers except the third initial server, the secondary TCP request carries indication information, and the indication information is used to indicate that the multiple initial servers The initial server located on the primary TCP link established by the client in the server, 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.

可选地,所述第三初始服务器在与所述指示信息所指示的初始服务器相同时,将所述次TCP请求转发至第一目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述主TCP链路上的目标服务器。Optionally, when the third initial server is the same as the initial server indicated by the indication information, forward the secondary TCP request to the first target server, and the first target server is the plurality of target servers The target server located on the primary TCP link.

可选地,在所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求之前,所述方法还包括:所述第三初始服务器接收所述客户端发送的建立所述主TCP链路的主TCP请求,所述指示信息所指示的初始服务器为所述第三初始服务器;所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器。Optionally, before the third initial server receives a secondary TCP request sent by other devices to establish a secondary TCP link, the method further includes: the third initial server receives a request sent by the client to establish the primary TCP link. For the main 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 main TCP request to the first target server.

可选地,所述指示信息包括所述第三初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;Optionally, the indication information includes an identifier of the third initial server, and each of the plurality of target servers is configured with a correspondence between the identifiers and addresses of the plurality of initial servers;

所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器,包括:所述第三初始服务器将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第三初始服务器的地址;所述第三初始服务器向所述第一目标服务器发送处理后的所述主TCP请求。The third initial server forwarding the main TCP request to the first target server includes: the third initial server processing 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.

可选地,所述指示信息携带有其指示的初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系;Optionally, the indication information carries an identifier of the indicated initial server, and each of the plurality of initial servers is configured with a correspondence between the identifiers and addresses of the plurality of initial servers;

所述第三初始服务器在与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器,包括:所述第三初始服务器获取所述指示信息携带的初始服务器的标识;所述第三初始服务器基于获取到的所述初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述指示信息所指示的初始服务器的地址;所述第三初始服务器基于所述指示信息所指示的初始服务器的地址,将所述次TCP请求发送至所述指示信息所指示的初始服务器。When the third initial server is different from the initial server indicated by the indication information, forwarding the secondary TCP request to the initial server indicated by the indication information includes: acquiring the indication by the third initial server The identification 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 identification of the initial server and the correspondence between the identifications and addresses of the plurality of initial servers 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.

可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,所述方法还包括:在所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器之前,所述第三初始服务器建立所述密钥和所述第一目标服务器的对应关系;在所述第三初始服务器将所述次TCP请求转发至第一目标服务器之前,所述第三初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。Optionally, the primary TCP request carries the key of the MPTCP, and the secondary TCP request carries token information for indicating the key, and the method further includes: sending Before the primary TCP request is forwarded to the first target server, the third initial server establishes the corresponding relationship between the key and the first target server; Before forwarding to the first target server, the third initial server searches for the first key corresponding to the key indicated by the token information in the corresponding relationship between the key and the first target server. a target server.

可选地,所述数据传输系统还包括中转设备;所述第三初始服务器接收所述客户端发送的建立所述主TCP链路的主TCP请求,包括:所述第三初始服务器通过所述中转设备接收所述客户端发送的所述主TCP请求。Optionally, the data transmission system further includes a transfer device; the third initial server receives the main TCP request sent by the client to establish the main TCP link, including: the third initial server through the The transit device receives the main TCP request sent by the client.

所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求,包括:当所述其他设备为所述客户端时,所述第三初始服务器通过所述中转设备接收所述客户端发送的建立次TCP链路的次TCP请求。The third initial server receives a secondary TCP request for establishing a secondary TCP link sent by other devices, including: 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 peer to establish a secondary TCP link.

可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述指示信息。Optionally, the secondary TCP request includes an address identification field, and the address identification field carries the indication information.

第四方面,提供一种数据传输方法,该数据传输方法,用于数据传输系统中的第一目标服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述客户端建立的主TCP链路上的服务器,所述方法包括:In a fourth aspect, 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, and the first 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:

所述第一目标服务器向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器为:多个初始服务器中位于所述主TCP链路上的初始服务器。所述第一目标服务器接收所述第一初始服务器发送的建立次TCP链路的次TCP请求,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路。所述第一目标服务器基于所述次TCP请求,向所述客户端发送所述次TCP请求的响应。The first target server sends indication information of a first initial server to the client, where the first initial server is: an initial server located on the primary TCP link among multiple initial servers. The first target server receives a secondary TCP request for establishing a secondary TCP link sent by the first initial server, and the secondary TCP link and the primary TCP link belong to the same MPTCP link. The first target server sends a response to the secondary TCP request to the client based on the secondary TCP request.

可选地,在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器接收所述第一初始服务器转发的建立所述主TCP链路的主TCP请求。Optionally, before the first target server sends the indication information of the first initial server to the client, the method further includes: the first target server receives the establishment of the Primary TCP request for the primary TCP link.

值得说明的是,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程可以包括:所述第一目标服务器向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。It is worth noting that the above 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 of the main TCP request carries the indication information.

这样,通过所述主TCP请求的响应携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。In this way, through the response of the main TCP request carrying the instruction information of the first initial server, there is no need to send the instruction information separately, saving network bandwidth and improving the compatibility of the data transmission method.

当然,上述所述第一目标服务器向所述客户端发送第一初始服务器的指示信息的过程也可以是:第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。Certainly, the above-mentioned process of the first target server sending the indication information of the first initial server to the client may also be: the first target server respectively sends to the client a response to the main TCP request that does not carry the above indication information, and this instruction.

可选地,指示信息可以为第一初始服务器的标识,也可以为指示该第一初始服务器的标识的信息。本申请实施例以所述指示信息包括所述第一初始服务器的标识为例进行说明。示例地,初始服务器的标识可以为初始服务器的用户身份证明(UserIdentification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。Optionally, the indication information may be the identifier of the first initial server, or may be information indicating the identifier of the first initial server. This embodiment of the present application is described by taking the indication information including the identifier of the first initial server as an example. Exemplarily, the identifier of the initial server may be a user identification (UserIdentification, UID) of the initial server, and the UID may be data of any size, for example, 8-bit (bit) data.

其中,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。Wherein, each of the multiple target servers is configured with a corresponding relationship between the identifiers and addresses of the multiple initial servers.

则在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,所述方法还包括:所述第一目标服务器首先获取所述主TCP请求携带的所述第一初始服务器的地址。然后,所述第一目标服务器基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。Then before the first target server sends the indication information of the first initial server to the client, the method further includes: the first target server first obtains the first initial server carried by the main TCP request the address of. Then, the first target server determines the identifier of the first initial server based on the address of the first initial server and the correspondence between the identifiers and addresses of the multiple initial servers.

第五方面,提供一种数据传输系统,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,In a fifth aspect, a data transmission system is provided, the data transmission system includes a client, multiple initial servers, and multiple target servers,

第一目标服务器用于向所述客户端发送第一初始服务器的指示信息,其中,所述第一初始服务器和所述第一目标服务器均位于所述客户端建立的主传输控制协议TCP链路上,所述第一初始服务器为所述多个初始服务器中的任一初始服务器;所述客户端用于根据所述指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,所述第二初始服务器为所述多个初始服务器中的任一初始服务器,所述次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,所述次TCP请求中携带有所述指示信息;所述第二初始服务器用于在与所述指示信息所指示的所述第一初始服务器不同时,将所述次TCP请求转发至所述第一初始服务器;所述第一初始服务器用于将所述次TCP请求转发至所述第一目标服务器;所述第一目标服务器用于基于接收到所述次TCP请求,向所述客户端发送所述次TCP请求的响应。The first target server is used to send the indication information of the first initial server to the client, wherein both the first initial server and the first target server are located on the main transmission control protocol TCP link established by the client Above, the first initial server is any initial server among the plurality of 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 indication information, wherein , the second initial server is any initial server in the plurality of 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 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 The first initial server is configured to forward the secondary TCP request to the first target server; the first target server is configured to send the secondary TCP request to the client based on receiving the secondary TCP request response.

可选地,所述第二初始服务器用于在与所述指示信息所指示的所述第一初始服务器相同时,将所述次TCP请求转发至所述第一目标服务器。Optionally, 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.

可选地,所述客户端用于在所述第一目标服务器向所述客户端发送第一初始服务器的指示信息之前,向所述第一初始服务器发送建立所述主TCP链路的主TCP请求;所述第一初始服务器用于将所述主TCP请求转发至所述第一目标服务器;Optionally, the client is configured to, before the first target server sends the indication information of the first initial server to the client, send the primary TCP link for establishing the primary TCP link to the first initial server. request; the first initial server is used to forward the main TCP request to the first target server;

所述第一目标服务器用于向所述客户端发送所述主TCP请求的响应,所述主TCP请求的响应携带有所述指示信息。The first target server is configured to send a response to the main TCP request to the client, where the response to the main TCP request carries the indication information.

可选地,所述指示信息包括所述第一初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系;Optionally, the indication information includes an identifier of the first initial server, and each of the plurality of target servers is configured with a correspondence between the identifiers and addresses of the plurality of initial servers;

所述第一初始服务器用于将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第一初始服务器的地址;所述第一初始服务器用于向所述第一目标服务器发送处理后的所述主TCP请求;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; A target server sends the processed main TCP request;

所述第一目标服务器用于在所述第一目标服务器用于向所述客户端发送第一初始服务器的指示信息之前,获取所述主TCP请求携带的所述第一初始服务器的地址;所述第一目标服务器用于基于所述第一初始服务器的地址,以及所述多个初始服务器的标识和地址的对应关系,确定所述第一初始服务器的标识。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 sends the indication information of the first initial server to the client; The first target server is configured to determine the identifier of the first initial server based on the address of the first initial server and the correspondence between the identifiers and addresses of the plurality of initial servers.

可选地,所述指示信息包括所述第一初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系;Optionally, the indication information includes an identifier of the first initial server, and each of the plurality of initial servers is configured with a correspondence between the identifiers and addresses of the plurality of initial servers;

所述第二初始服务器用于获取所述次TCP请求携带的所述第一初始服务器的标识;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 identifier of the first initial server and the correspondence between the identifiers and addresses of the plurality of initial servers;

所述第二初始服务器用于基于所述第一初始服务器的地址,将所述次TCP请求发送至所述第一初始服务器。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.

可选地,所述初始服务器的地址包括互联网协议IP地址。Optionally, the address of the initial server includes an Internet Protocol IP address.

可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述第一初始服务器的指示信息。Optionally, the secondary TCP request includes an address identification field, and the address identification field carries indication information of the first initial server.

可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息,Optionally, the primary TCP request carries the MPTCP key, and the secondary TCP request carries token information indicating the key,

所述第一初始服务器用于在所述第一初始服务器将所述主TCP请求转发至所述第一目标服务器之前,建立所述密钥和所述第一目标服务器的对应关系;The first initial server is configured to establish a correspondence between the key and the first target server before the first initial server forwards the main TCP request to the first target server;

所述第一初始服务器用于在所述第一初始服务器将所述次TCP请求转发至所述第一目标服务器之前,在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。The first initial server is used to search 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.

可选地,所述数据传输系统还包括中转设备;Optionally, the data transmission system further includes a transfer device;

所述客户端用于向所述第一初始服务器发送主TCP请求,包括:所述客户端用于通过所述中转设备向所述第一初始服务器发送所述主TCP请求;The client is used to send the main TCP request to the first initial server, including: the client is used to send the main TCP request to the first initial server through the transit device;

所述客户端用于根据所述指示信息向第二初始服务器发送次TCP请求,包括:所述客户端用于根据所述指示信息通过所述中转设备,向第二初始服务器发送次TCP请求。The client is configured to send a secondary TCP request to the second initial server according to the indication information, including: the client is configured to send the secondary TCP request to the second initial server through the transit device according to the indication information.

第六方面,提供一种数据传输装置,用于数据传输系统中的客户端,数据传输系统还包括:多个初始服务器和多个目标服务器,数据传输装置包括:第一接收模块、发送模块和第二接收模块。In a sixth aspect, a data transmission device is provided for a client in a data transmission system, the data transmission system further includes: a plurality of initial servers and a plurality of target servers, and the data transmission device includes: a first receiving module, a sending module and Second receiving module.

第一接收模块,用于接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,第一目标服务器和第一初始服务器均位于客户端建立的主传输控制协议TCP链路上;The first receiving module is configured to receive indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein both the first target server and the first initial server are located in the main server established by the client Transmission Control Protocol TCP link;

发送模块,用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息;A sending module, configured to send 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 initial server in a plurality of initial servers, and the secondary TCP link is connected to the primary TCP link The paths belong to the same multipath transmission control protocol MPTCP link, and the secondary TCP request carries indication information;

第二接收模块,用于接收第一目标服务器发送的次TCP请求的响应。The second receiving module is configured to receive a response to the secondary TCP request sent by the first target server.

可选地,数据传输装置还包括:发送主请求模块,用于在接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。Optionally, the data transmission device further includes: a sending main request module, configured to send to the first initial server before receiving indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers A master TCP request to establish a master TCP link.

第一接收装置,还用于:接收第一目标服务器发送的主TCP请求的响应,主TCP请求的响应携带有指示信息。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.

可选地,数据传输系统还包括中转设备。Optionally, the data transmission system further includes a transfer device.

发送主请求模块,还用于:通过中转设备向第一初始服务器发送主TCP请求。The module for sending the main request is also used for: sending the main TCP request to the first initial server through the transit device.

发送模块,还用于:根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。The sending module is further configured to: send a secondary TCP request to the second initial server through the transfer device according to the indication information.

第七方面,提供一种数据传输装置,该数据传输装置用于数据传输系统中的第三初始服务器,所述数据传输系统包括客户端、多个初始服务器和多个目标服务器,所述第三初始服务器为所述多个初始服务器中的任一初始服务器,所述装置包括:接收模块和转发模块。In a seventh aspect, a data transmission device is provided, the data transmission device is used for a third initial 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 third The initial server is any initial server among the multiple initial servers, and the device includes: a receiving module and a forwarding module.

接收模块,用于接收其他设备发送的建立次TCP链路的次TCP请求,其中,所述其他设备包括:所述客户端或所述多个初始服务器中除所述第三初始服务器之外的任一服务器,所述次TCP请求中携带有指示信息,且所述指示信息用于指示所述多个初始服务器中位于所述客户端建立的主TCP链路上的初始服务器,所述次TCP链路与所述主TCP链路属于同一多路径传输控制协议MPTCP链路;A receiving module, configured to receive a secondary TCP request for establishing a secondary TCP link sent by other devices, wherein the other devices include: the client or the multiple initial servers except the third initial server Any server, the secondary TCP request carries indication information, and the indication information is used to indicate the initial server located on the primary TCP link established by the client among the multiple initial servers, the secondary TCP The link and the main TCP link belong to the same multipath transmission control protocol MPTCP link;

转发模块,用于在所述第三初始服务器与所述指示信息所指示的初始服务器不同时,将所述次TCP请求转发至所述指示信息所指示的初始服务器。A forwarding module, 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.

可选地,数据传输装置还包括:转发次请求模块,用于在所述第三初始服务器与所述指示信息所指示的初始服务器相同时,将所述次TCP请求转发至第一目标服务器,所述第一目标服务器为所述多个目标服务器中位于所述主TCP链路上的目标服务器。Optionally, the data transmission device further includes: a forwarding secondary request 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.

可选地,数据传输装置还包括:接收主请求模块和转发主请求模块。Optionally, the data transmission device further includes: a module for receiving the main request and a module for forwarding the main request.

接收主请求模块,用于在所述第三初始服务器接收其他设备发送的建立次TCP链路的次TCP请求之前,接收所述客户端发送的建立所述主TCP链路的主TCP请求,所述指示信息所指示的初始服务器为所述第三初始服务器;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, The initial server indicated by the indication information is the third initial server;

转发主请求模块,用于将所述主TCP请求转发至所述第一目标服务器。A forwarding main request module, configured to forward the main TCP request to the first target server.

可选地,所述指示信息包括所述第三初始服务器的标识,所述多个目标服务器均配置有所述多个初始服务器的标识和地址的对应关系。Optionally, 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.

转发主请求模块,还用于将所述主TCP请求进行处理,以使处理后的所述主TCP请求携带有所述第三初始服务器的地址;向所述第一目标服务器发送处理后的所述主TCP请求。The forwarding main request module is further configured to process the main TCP request, so that the processed main TCP request carries the address of the third initial server; Describe the main TCP request.

可选地,所述指示信息携带有其指示的初始服务器的标识,所述多个初始服务器均配置有所述多个初始服务器的标识和地址的对应关系。转发模块,还用于获取所述指示信息携带的初始服务器的标识;基于获取到的所述初始服务器的标识,以及所述多个初始服务器的标识和地址的对应关系,确定所述指示信息所指示的初始服务器的地址;基于所述指示信息所指示的初始服务器的地址,将所述次TCP请求发送至所述指示信息所指示的初始服务器。Optionally, the indication information carries an identifier of the indicated initial server, and each of the plurality of initial servers is configured with a correspondence between the identifiers and addresses of the plurality of initial servers. The forwarding module is further configured to obtain the identifier of the initial server carried in the instruction information; based on the obtained identifier of the initial server and the corresponding relationship between the identifiers and addresses of the plurality of initial servers, determine the The address of the indicated initial server; based on the address of the initial server indicated by the indication information, sending the secondary TCP request to the initial server indicated by the indication information.

可选地,所述主TCP请求携带有所述MPTCP的密钥,所述次TCP请求携带有用于指示所述密钥的令牌信息。数据传输装置还包括:建立模块和查找模块。Optionally, the primary TCP request carries the key of the MPTCP, and the secondary TCP request carries token information for indicating the key. The data transmission device also includes: a building module and a searching module.

建立模块,用于在所述第三初始服务器将所述主TCP请求转发至所述第一目标服务器之前,建立所述密钥和所述第一目标服务器的对应关系;An establishment module, configured to establish a correspondence between the key and the first target server before the third initial server forwards the main TCP request to the first target server;

查找模块,用于在所述第三初始服务器将所述次TCP请求转发至第一目标服务器之前,所述第三初始服务器在所述密钥和所述第一目标服务器的对应关系中,查找所述令牌信息所指示的所述密钥所对应的所述第一目标服务器。A search module, configured to search for the third initial server in the corresponding relationship between the key and the first target 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.

可选地,所述数据传输系统还包括中转设备;接收主请求模块,还用于通过所述中转设备接收所述客户端发送的所述主TCP请求。Optionally, the data transmission system further includes a relay device; a main request receiving module, further configured to receive the master TCP request sent by the client through the relay device.

接收次请求模块,还用于当所述其他设备为所述客户端时,通过所述中转设备接收所述客户端发送的建立次TCP链路的次TCP请求。The receiving secondary request module is further configured to receive a secondary TCP request for establishing a secondary TCP link sent by the client through the transit device when the other device is the client.

可选地,所述次TCP请求包括地址标识字段,所述地址标识字段携带有所述指示信息。Optionally, the secondary TCP request includes an address identification field, and the address identification field carries the indication information.

第八方面,提供一种数据传输装置,其用于数据传输系统中的第一目标服务器,数据传输系统包括客户端、多个初始服务器和多个目标服务器,第一目标服务器为多个目标服务器中位于客户端建立的主TCP链路上的服务器,数据传输装置包括:第一发送模块、接收模块和第二发送模块。In an eighth aspect, a data transmission device is provided, which is used for 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, and the first target server is a plurality of target servers In the server located on the main TCP link established by the client, the data transmission device includes: a first sending module, a receiving module and a second sending module.

第一发送模块,用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器为:多个初始服务器中位于主TCP链路上的初始服务器。The first sending module is configured to send the indication information of the first initial server to the client, wherein the first initial server is: an initial server located on the main TCP link among the multiple initial servers.

接收模块,用于接收第一初始服务器发送的建立次TCP链路的次TCP请求,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路。The receiving module is configured to receive a secondary TCP request for establishing a secondary TCP link sent by the first initial server, and the secondary TCP link and the primary TCP link belong to the same MPTCP link.

第二发送模块,用于基于次TCP请求,向客户端发送次TCP请求的响应。The second sending module is configured to send a response of the secondary TCP request to the client based on the secondary TCP request.

可选地,数据传输装置还包括:接收主请求模块,用于在向客户端发送第一初始服务器的指示信息之前,接收第一初始服务器转发的建立主TCP链路的主TCP请求。Optionally, the data transmission device further includes: a main request receiving module, configured to receive a main TCP request for establishing a main TCP link forwarded by the first initial server before sending the indication information of the first initial server to the client.

第一发送模块,还用于:第一目标服务器向客户端发送主TCP请求的响应,主TCP请求的响应携带有指示信息。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.

可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。数据传输装置还包括:获取模块和确定模块。Optionally, the indication information includes an identifier of the first initial server, and multiple target servers are configured with correspondences between identifiers and addresses of multiple initial servers. The data transmission device also includes: an acquisition module and a determination module.

获取模块,用于在向客户端发送第一初始服务器的指示信息之前,获取主TCP请求携带的第一初始服务器的地址;An acquisition module, 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 is configured to determine the identifier of the first initial server based on the address of the first initial server and the correspondence between identifiers and addresses of multiple initial servers.

第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第二方面至第四方面任一所述的数据传输方法。In a ninth aspect, a computer-readable storage medium is provided. Instructions are stored in the computer-readable storage medium. When the instructions are run on a computer, the computer is made to execute any one of the above-mentioned second aspect to the fourth aspect. The data transmission method described.

第十方面,提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第二方面至第四方面任一所述的数据传输方法。In a tenth aspect, a computer program product containing instructions is provided, and when the computer program product is run on a computer, the computer is made to execute the data transmission method described in any one of the above-mentioned second aspect to the fourth aspect.

本申请提供的技术方案带来的有益效果至少可以包括:The beneficial effects brought by the technical solution provided by this application may at least include:

本申请实施例提供的数据传输方法、装置及系统,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。In the data transmission method, device and system provided by the embodiments of the present application, 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 the second initial server receives the TCP request, it can forward the TCP request to the first initial server based on the indication information, so that the first initial server forwards the secondary TCP request to the server receiving the primary TCP request. server. It ensures 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.

附图说明Description of drawings

图1是本申请提供的一种应用四层负载均衡技术的数据传输系统的结构示意图;Fig. 1 is a kind of structural representation of the data transmission system that applies four-layer load balancing technology that the application provides;

图2为本申请提供的一种应用七层负载均衡技术的数据传输系统的结构示意图;Fig. 2 is a schematic structural diagram of a data transmission system applying seven-layer load balancing technology provided by the present application;

图3为本申请提供的一种数据传输方法流程图;FIG. 3 is a flow chart of a data transmission method provided by the present application;

图4为本申请提供的一种数据传输方法流程图;FIG. 4 is a flow chart of a data transmission method provided by the present application;

图5为本申请提供的另一种数据传输方法流程图;FIG. 5 is a flowchart of another data transmission method provided by the present application;

图6为本申请提供的一种数据传输装置的框图;FIG. 6 is a block diagram of a data transmission device provided by the present application;

图7为本申请提供的一种数据传输装置的框图;FIG. 7 is a block diagram of a data transmission device provided by the present application;

图8为本申请提供的另一种数据传输装置的框图;FIG. 8 is a block diagram of another data transmission device provided by the present application;

图9为本申请提供的另一种数据传输装置的框图;FIG. 9 is a block diagram of another data transmission device provided by the present application;

图10为本申请提供的又一种数据传输装置的框图;FIG. 10 is a block diagram of another data transmission device provided by the present application;

图11为本申请提供的又一种数据传输装置的框图。FIG. 11 is a block diagram of another data transmission device provided by the present application.

具体实施方式Detailed ways

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。In order to make the purpose, technical solution and advantages of the present application clearer, the implementation manners of the present application will be further described in detail below in conjunction with the accompanying drawings.

数据传输系统通常包括客户端和目标服务器。其中,客户端具有多个端口(port),客户端能够在该多个端口中选择一个端口作为源端口,并通过该源端口与目标服务器建立TCP链路,进而通过该TCP链路实现与目标服务器之间的单路径的数据传输。但是,客户端和目标服务器之间的带宽性能受限于该单路径,且该TCP链路不具备高可用性。A data transfer system usually includes a client and a destination server. Wherein, 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 server through the TCP link. Single-path data transfer between servers. However, the bandwidth performance between the client and target server is limited by this single path, and this TCP link is not highly available.

随着移动互联网通信的兴起,客户端通常支持多种链路的数据传输。例如,该多种链路可以包括基于LTE技术的TCP链路(简称LTE-TCP链路)和基于WIFI技术的TCP链路(简称WIFI-TCP链路)等。由于LTE技术和WIFI技术均受限于网络覆盖范围和信号强弱等因素。因此,客户端和目标服务器之间的链路可以在上述两种TCP链路下进行切换,也可以同时包括该上述两种TCP链路。其中,当客户端和目标服务器之间的链路同时包括上述两种TCP链路时,客户端和目标服务器之间的数据传输效率和网络带宽(网络带宽指的是在单位时间内传输的数据量)较高。基于此,利用多路径并发传输数据的MPTCP应运而生,其中,路径(path)指的是从起点(也即发送端,如客户端)到终点(也即接收端,如目标服务器)的全程路由。With the rise of mobile Internet communications, clients usually support data transmission over multiple links. For example, the various links may include a TCP link based on LTE technology (LTE-TCP link for short), a TCP link based on WIFI technology (WIFI-TCP link for short), and the like. Both LTE technology and WIFI technology are limited by factors such as network coverage and signal strength. Therefore, the link between the client and the target server may be switched under the above two TCP links, or may include the above two TCP links at the same time. Among them, when the link between the client and the target server includes the above two TCP links at the same time, the data transmission efficiency and network bandwidth between the client and the target server (the network bandwidth refers to the data transmitted in a unit time amount) is higher. Based on this, MPTCP, which uses multiple paths to transmit data concurrently, came into being. The path (path) refers to the whole process from the starting point (that is, the sending end, such as the client) to the end point (that is, the receiving end, such as the target server). routing.

以下将基于数据传输系统对MPTCP链路的建立过程进行说明:The following will describe the establishment process of the MPTCP link based on the data transmission system:

假设数据传输系统中客户端具有端口A和端口B,端口A可以是LTE网络端口,端口B可以是WIFI网络端口。客户端与目标服务器之间的MPTCP可以包括主TCP链路和次TCP链路,并且,客户端可以先与目标服务器建立主TCP链路,然后再于该目标服务器建立次TCP链路。Assuming that the client has port A and port B in the data transmission system, port A may be an LTE network port, and 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 the primary TCP link with the target server, and then establish a secondary TCP link with the target server.

一方面,客户端与目标服务器建立主TCP链路的过程可以包括:客户端通过端口A向目标服务器发送主TCP请求,该主TCP请求可以为SYN报文。SYN报文中携带有多路径能力(MP_CAPABLE)字段,该MP_CAPABLE字段用于表示客户端支持MPTCP链路,且该MP_CAPABLE字段中包含客户端生成的MPTCP链路的密钥(key),该密钥用于标识该MPTCP链路。目标服务器在接收到该SYN报文后,向客户端发送主TCP请求的响应,该主TCP请求的响应可以为SYNACK报文。SYN ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示目标服务器支持MPTCP链路。客户端在接收到目标服务器发送的主TCP请求的响应后,向目标服务器发送ACK报文。该ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示客户端和目标服务器均支持MPTCP连接,且该MP_CAPABLE字段中包含客户端生成的MTPTCP链路的密钥。至此,主TCP链路建立完成。On the one hand, the process of establishing the primary TCP link between the client and the target server may include: the client sends a primary TCP request to the target server through port A, and the primary TCP request may be a SYN message. The multi-path capability (MP_CAPABLE) field is carried in the SYN message, and the 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, the key Used to identify the MPTCP link. After receiving the SYN message, the target server sends a response to the main TCP request to the client, and the response to the main TCP request may be a SYNACK message. The MP_CAPABLE field is carried in the SYN ACK message, and the MP_CAPABLE field is used to indicate that the target server supports the MPTCP link. After receiving the response of the main TCP request sent by the target server, the client sends an ACK message to the target server. The ACK message carries an MP_CAPABLE field, which is used to indicate that both the client and the target server support MPTCP connections, and the MP_CAPABLE field includes the key of the MTTPCP link generated by the client. So far, the establishment of the main TCP link is completed.

另一方面,客户端与目标服务器建立次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链路建立完成。On the other hand, 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. Wherein, the MP_JOIN field is used to indicate that the client supports MPTCP connection, and the token field can be used to indicate the key of the above-mentioned MTTPTCP link. After receiving the SYN message, the target server sends a response to the TCP request to the client, and the response to the TCP request may be a SYN ACK message. The SYN ACK message carries the MP_JOIN field. 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. 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 to the client indicates receipt confirmation. So far, the establishment of the secondary TCP link is completed.

进一步地,由于LB技术在通信中应用较为普遍,因此,基于LB技术的MPTCP也随之兴起。目前基于LB技术的MPTCP中,数据传输系统通常包括:客户端、中转设备和多个服务器。由于相关技术中LB技术包括四层LB技术和七层LB因此,上述数据传输系统可以根据其应用的LB技术的不同,包括不同个数的服务器。以下将分别对基于这两种LB技术的数据传输系统进行详细说明。Further, since the LB technology is widely used in communication, the MPTCP based on the LB technology also rises accordingly. In the current MPTCP based on LB technology, the data transmission system usually includes: a client, a transit device, and multiple servers. Since the LB technology in the related art includes four-layer LB technology and seven-layer LB technology, the above-mentioned data transmission system may include different numbers of servers according to different applied LB technologies. The data transmission systems based on these two LB technologies will be described in detail below.

请参考图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连接。Please refer to FIG. 1 , which shows a schematic structural diagram of a data transmission system applying four-layer LB technology provided by an embodiment of the present application. As shown in FIG. 1 , the 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 . Wherein, the client 110 may be an electronic device such as a mobile phone, a personal computer (personal computer, PC) or a tablet computer. The transfer device 120 may be a device with a data transfer function such as a gateway (switch) or a router. The plurality of initial servers 130 may be server clusters that provide 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 for processing data transmitted on the MPTCP link. Further, the client 110 may be respectively connected to the transfer device 120 and the multiple target servers 140 through the network, and the transfer device 120 may be respectively connected to the multiple initial servers 130 through the network. Multiple origin servers 130 may be respectively connected to multiple target servers 140 via a network.

请参考图2,其示出了本申请实施例提供的一种应用七层LB技术的数据传输系统的结构示意图。该数据传输系统为在图1所示的数据传输系统增加一层服务器,也即是,该应用七层LB的数据传输系统还可以包括:多个后端服务器150。其中,多个目标服务器140也可以是七层LB服务器的服务器集群。多个后端服务器150可以为物理服务器、虚拟机或容器等。该多个后端服务器150可以通过网络分别与多个目标服务器140和客户端110连接。Please refer to FIG. 2 , which shows a schematic structural diagram of a data transmission system applying 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 using a seven-layer LB may further include: multiple backend servers 150 . Wherein, the plurality of target servers 140 may also be a server cluster of seven layers of LB servers. The plurality of backend servers 150 may be physical servers, virtual machines or containers. The plurality of backend servers 150 may be respectively connected to the plurality of target servers 140 and the client 110 through a network.

需要说明的是,上述图1和图2中的网络可以是有线或无线网络(wirelessnetwork)。有线网络包括传输控制协议/互联网协议(Transmission Control Protocol/InternetProtocol,TCP/IP)网络、光纤网络或无限带宽(InfiniBand,IB)网络;无线网络包括:无线保真网络、第三代(3rd-generation,3G)移动通信技术网络或通用分组无线服务技术(general packet radio service,GPRS)等。It should be noted that, the above-mentioned network in FIG. 1 and FIG. 2 may be a wired or wireless network (wireless network). Wired networks include Transmission Control Protocol/Internet Protocol (Transmission Control Protocol/Internet Protocol, TCP/IP) networks, optical fiber networks, or InfiniBand (IB) networks; wireless networks include: Wi-Fi networks, third-generation (3rd-generation , 3G) mobile communication technology network or general packet radio service technology (general packet radio service, GPRS), etc.

示例地,以基于四层LB技术的数据传输系统为例,在客户端和目标服务器建立MPTCP链路时,首先,客户端可以将用于建立该MPTCP链路中的主TCP链路的主TCP请求发送至中转设备,其中,该主TCP请求中携带有客户端生成的MPTCP链路的密钥(该主TCP链路所在的MPTCP链路的密钥)。该主TCP请求还可以携带有五元组(五元组包括:发送端IP地址、发送端端口、接收端IP地址、接收端端口以及传输协议),中转设备可以基于接收到的主TCP请求携带的五元组确定一个初始服务器,并将该主TCP请求转发至该初始服务器。该初始服务器在接收到该主TCP请求时,再次基于该五元组确定一个目标服务器,将该主TCP请求转发至该目标服务器。之后,该目标服务器基于接收到的主TCP请求向客户端发送该主TCP请求的响应。然后,客户端基于该响应发送确认消息至该目标服务器。至此,该主TCP链路建立完成。之后,基于与上述建立主连接相似的过程在客户端和该目标服务器之间建立次TCP链路。Exemplarily, taking a data transmission system based on four-layer LB technology as an example, when the client and the target server establish an MPTCP link, first, the client can use the primary TCP link used to establish the primary TCP link in the MPTCP link The request is sent to the transit device, wherein 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: IP address of the sending end, port of the sending end, IP address of the receiving end, port of the receiving end, and transmission protocol), and the transfer device can carry the quintuple 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. When the initial server receives the main TCP request, it again determines a target server based on the quintuple, and forwards the main TCP request to the target server. Afterwards, the target server sends a response to the main TCP request to the client based on the received main TCP request. Then, the client sends an acknowledgment message to the target server based on the response. So far, the establishment of the primary TCP link is completed. Afterwards, a secondary TCP link is established between the client and the target server based on a procedure similar to that of establishing the primary connection described above.

但是,由于客户端具有多个IP地址和多个端口,且在每次客户端发送TCP请求(无论是主TCP请求还是次TCP请求)时,所使用的IP地址和端口可能均不相同,这样导致主TCP链路携带的五元组与次TCP请求携带的五元组信息可能并不相同,因此,基于主TCP请求携带的五元组确定的目标服务器,与基于次TCP请求携带的五元组确定的目标服务器可能并不相同,这就导致主TCP链路与次TCP链路上的目标服务器为不同。而MPTCP链路要求主TCP链路和次TCP链路上的目标服务器(也即该数据传输系统中的后端服务器)相同,这样就导致无法形成MPTCP链路。However, since the client has multiple IP addresses and multiple ports, and each time the client sends a TCP request (no matter whether it is a primary TCP request or a secondary TCP request), the used IP addresses and ports 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 carried by the secondary TCP request. The target servers determined by the group may be different, which causes the target servers on the primary TCP link and the secondary TCP link to be different. However, the MPTCP link requires that the target server (that is, the backend server in the data transmission system) on the primary TCP link and the secondary TCP link be the same, so that the MPTCP link cannot be formed.

在基于七层LB技术的数据传输系统中,每层服务器在接收到TCP请求(如主TCP请求或次TCP请求)后,均需要根据该TCP请求携带的五元组确定下一层设备中的一个设备。基于四层LB技术的数据传输系统相似的理由,基于七层LB技术的数据传输系统中,初始服务器与可能将主TCP请求和次TCP请求转发至不同的目标服务器,从而导致主TCP链路与次TCP链路上的目标服务器为不同,进而导致该目标服务器转发至的后端服务器不同。而MPTCP链路要求主TCP链路和次TCP链路上的目标服务器相同,这样也导致无法形成MPTCP链路。In a data transmission system based on seven-layer LB technology, after each layer of server receives a TCP request (such as a primary TCP request or a secondary TCP request), it needs to determine the device in the next layer according to the five-tuple carried by the TCP request. a device. The reason is similar to the data transmission system based on the four-layer LB technology. In the data transmission system based on the seven-layer LB technology, the initial server may forward the primary TCP request and the secondary TCP request to different target servers, resulting in the main TCP link and The target servers on the secondary TCP links are different, which leads to different backend servers forwarded by the target server. The MPTCP link requires the same target server on the primary TCP link and the secondary TCP link, which also makes it impossible to form an MPTCP link.

本发明实施例提供了一种数据传输方法,基于该数据传输方法能够有效地建立MPTCP链路。请参考图3,其示出了本申请实施例提供的一种数据传输方法的流程图。该数据传输方法可以应用于上述图1所示的数据传输系统,该数据传输方法可以分为两个阶段:主TCP链路建立阶段和次TCP链路建立阶段。如图3所示,该数据传输方法可以包括如下几个步骤:An embodiment of the present invention provides a data transmission method, based on which an MPTCP link can be effectively established. Please refer to FIG. 3 , which 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 above, and the data transmission method can be divided into two stages: a primary TCP link establishment stage and a secondary TCP link establishment stage. As shown in Figure 3, the data transmission method may include the following steps:

主TCP链路建立阶段:The main TCP link establishment phase:

步骤101、客户端向第一初始服务器发送建立主TCP链路的主TCP请求,该主TCP请求携带有该主TCP链路所在的MPTCP链路的密钥。Step 101, the client sends a primary TCP request for establishing a primary TCP link to the first initial server, and the primary TCP request carries the key of the MPTCP link where the primary TCP link is located.

客户端在需要与目标服务器请求建立MPTCP链路时,该客户端需要先向目标服务器请求建立MPTCP链路中的主TCP链路。示例地,该主TCP请求可以为SYN报文,该SYN报文携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示该客户端支持MPTCP连接,且该MP_CAPABLE字段中包含客户端生成的该MPTCP链路的密钥。该密钥可以用于标识该MPTCP链路。When the client needs to request to establish an MPTCP link with the target server, the client needs to first request the target server to establish a primary TCP link in the MPTCP link. For example, the main TCP request may be a SYN message, the SYN message carries an MP_CAPABLE field, the MP_CAPABLE field is used to indicate that the client supports MPTCP connections, and the MP_CAPABLE field includes the MPTCP link generated by the client. key. The key can be used to identify the MPTCP link.

需要说明的是,由于数据传输系统中客户端与初始服务器通过中转设备建立通信连接,因此,客户端向第一初始服务器发送主TCP请求的过程可以包括:客户端通过中转设备向第一初始服务器发送主TCP请求。其中,该第一初始服务器为多个初始服务器中的任意一个。该中转设备在接收到客户端发送的主TCP请求后,可以基于转发算法,确定第一初始服务器,然后将该主TCP请求分发至第一初始服务器。示例地,该转发算法可以是基于五元组进行哈希运算的算法,或者也可以是随机分配算法。It should be noted that, since the client and the initial server establish a communication connection through the transfer device in the data transmission system, the process of the client sending the main TCP request to the first initial server may include: the client sends the first initial server to the first initial server through the transfer device Send the main TCP request. Wherein, the first initial server is any one of multiple initial servers. After receiving the main TCP request sent by the client, the transit device may determine the first initial server based on a forwarding algorithm, and then distribute the main TCP request to the first initial server. Exemplarily, the forwarding algorithm may be an algorithm based on a five-tuple hash operation, or may also be a random allocation algorithm.

步骤102、第一初始服务器确定多个目标服务器中的第一目标服务器。Step 102, the first initial server determines a first target server among multiple target servers.

该第一目标服务器的确定过程可以包括:第一初始服务器基于调度算法,确定该主TCP请求被转发的第一初始服务器。示例地,该调度算法可以是基于五元组进行哈希运算的算法,或者也可以是随机分配算法。The determining process of 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. Exemplarily, the scheduling algorithm may be an algorithm based on a five-tuple hash operation, or may also be a random allocation algorithm.

步骤103、第一初始服务器建立MPTCP链路的密钥和第一目标服务器的对应关系。Step 103, the first initial server establishes a corresponding relationship between the key of the MPTCP link and the first target server.

第一初始服务器在确定第一目标服务器后,便可以建立主TCP请求中携带的密钥和上述确定的第一目标服务器的对应关系,以便后续该第一初始服务器将接收到的携带有相同密钥的TCP请求,转发至该第一目标服务器。After the first initial server determines the first target server, it can establish the corresponding relationship between the key carried in the main TCP request and the above-mentioned determined first target server, so that the first initial server will receive the key carrying the same key. The TCP request of the key is forwarded to the first target server.

示例地,第一初始服务器可以通过密钥-目标服务器的转发表项,记录MPTCP链路的密钥和第一目标服务器的对应关系。可选地,该转发表项还可以记录主TCP请求携带的MPTCP链路的密钥与五元组的对应关系。其中,该第一目标服务器可以是第一目标服务器的IP地址。例如,该转发表项可以如下述表1所示。For example, the first initial server may record the corresponding relationship between the key of the MPTCP link and the first target server through the key-target server forwarding entry. Optionally, the forwarding entry may also record the correspondence between the key of the MPTCP link carried in the main TCP request and the quintuple. Wherein, the first target server may be the IP address of the first target server. For example, the forwarding entry may be as shown in Table 1 below.

表1Table 1

五元组Quintuple 密钥key 第一目标服务器first target server 五元组1quintuple 1 密钥1key 1 目标服务器1target server 1

如表1所示,五元组1对应的MPTCP链路的密钥为密钥1,MPTCP链路的密钥对应的第一目标服务器的为目标服务器1。As shown in Table 1, the key of the MPTCP link corresponding to quintuple 1 is key 1, and the key of the MPTCP link corresponding to the first target server is target server 1.

需要说明的是,上述转发表项中,仅记录了一个主TCP请求携带的MPTCP链路的密钥与五元组和第一目标服务器的对应关系。当第一初始服务器转发下一个主TCP请求时,该转发表项将再次记录该下一个主TCP请求携带的MPTCP的密钥对应的五元组和目标服务器。It should be noted that, in the above forwarding entry, only the corresponding relationship between the key of the MPTCP link carried in a main TCP request, the quintuple and the first target server is recorded. When the first initial server forwards the next main TCP request, the forwarding entry will again record the quintuple corresponding to the MPTCP key carried in the next main TCP request and the target server.

步骤104、第一初始服务器将主TCP请求转发至第一目标服务器,该主TCP请求携带有第一初始服务器的地址。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.

第一初始服务器将主TCP请求转发至第一目标服务器的过程可以包括:第一初始服务器先将主TCP请求进行处理,以使处理后的主TCP请求携带有第一初始服务器的地址。然后,该第一初始服务器向第一目标服务器发送处理后的主TCP请求。The process of the first initial server forwarding the main TCP request to the first target server may include: first processing the main TCP request by the first initial server, so that the processed main TCP request carries the address of the first initial server. Then, the first initial server sends the processed primary TCP request to the first target server.

其中,第一初始服务器将TCP请求进行处理可以是:第一初始服务器将该第一初始服务器的地址写入该主TCP请求中。示例地,该主TCP请求可以包括会话初始协议(sessioninitiation protocol,SIP)信息,该SIP信息用于记录将主TCP请求转发至第一初始服务器的设备的地址,第一初始服务器在对该主TCP请求进行处理时,可以将该主TCP请求中SIP信息改写为该第一初始服务器的地址。示例地,该第一初始服务器的地址可以为IP地址,当然该第一初始服务器的地址也可以为媒体访问控制(media access control,MAC)地址,本申请实施例对此不作限定。Wherein, 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. Exemplarily, the main TCP request may include session initiation protocol (sessioninitiation protocol, SIP) information, and the SIP information is used to record the address of the device that forwards the main TCP request to the first initial server. When the request is processed, the SIP information in the main TCP request may be rewritten as the address of the first initial server. For example, the address of the first initial server may be an IP address, and of course the address of the first initial server may also be a media access control (media access control, MAC) address, which is not limited in this embodiment of the present application.

步骤105、第一目标服务器获取主TCP请求携带的第一初始服务器的地址。Step 105, the first target server obtains the address of the first initial server carried in the main TCP request.

示例地,第一目标服务器接收第一初始服务器转发的主TCP请求后,可以从该主TCP请求的SIP信息中,获取第一初始服务器的IP地址。For example, after receiving the main TCP request forwarded by the first initial server, the first target server may acquire the IP address of the first initial server from the SIP information of the main TCP request.

步骤106、第一目标服务器基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。Step 106, the first target server determines the identifier of the first initial server based on the address of the first initial server and the correspondence between identifiers and addresses of multiple initial servers.

多个目标服务器可以均配置有多个初始服务器的标识的地址的对应关系,第一目标服务器在接收到主TCP请求,并确定第一初始服务器的地址后,可以在该对应关系中查找该第一初始服务器的地址对应的第一初始服务器的标识。示例地,初始服务器的标识可以为初始服务器的用户身份证明(user identification,UID),该UID可以为任一大小的数据,例如,8比特(bit)的数据。Multiple target servers can be configured with a corresponding relationship between addresses identified by multiple initial servers. After the first target server receives the main TCP request and determines the address of the first initial server, it can search for the first target server in the corresponding relationship. An ID of the first initial server corresponding to the address of the initial server. Exemplarily, the identifier of the initial server may be a user identification (user identification, UID) of the initial server, and the UID may be data of any size, for example, 8-bit (bit) data.

可选地,每个目标服务器上可以存储有配置文件,该配置文件可以用于记录上述多个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。Optionally, 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 above-mentioned multiple LB servers. For example, the content of the configuration file may 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.

表2Table 2

UIDUID IP地址IP address 0000000100000001 1.75.2.1281.75.2.128 0000001000000010 1.75.2.1271.75.2.127 0000001100000011 1.75.2.1261.75.2.126 0000010000000100 1.75.2.1251.75.2.125

需要说明的是,上述配置文件中仅记录了4对UID和IP地址的对应关系。本申请实施例对该配置文件中记录的对应关系的对数并不限定。It should be noted that only four pairs of correspondences between UIDs and IP addresses are recorded in the above configuration file. The embodiment of the present application does not limit the logarithm of the corresponding relationship recorded in the configuration file.

步骤107、第一目标服务器向客户端发送主TCP请求的响应,该主TCP请求的相应携带有第一初始服务器的标识。Step 107, the first target server sends a response to the main TCP request to the client, and the response to the main TCP request carries the identifier of the first initial server.

第一目标服务器在接收到主TCP请求后,需要向客户端发送主TCP请求的响应,并且需要向主TCP请求发送第一初始服务器的指示信息。步骤107中以该指示信息为第一初始服务器的标识为例,可选地,该指示信息也可以不为该标识,而是为指示该第一初始服务器的标识的信息,本申请实施例对此不作限定。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. In step 107, the indication information is the identity of the first initial server as an example. Optionally, the indication information may not be the identity, but information indicating the identity of the first initial server. This is not limited.

可选地,本发明实施例中以第一目标服务器将第一初始服务器的指示信息携带在主TCP请求的响应中为例,当然也可以是第一目标服务器向客户端分别发送不携带有上述指示信息的主TCP请求的相应,以及该指示信息。其中,当主TCP请求的响应携带有指示信息时,该主TCP请求的响应可以为SYN ACK报文,该SYN ACK报文中携带有MP_CAPABLE字段,该MP_CAPABLE字段用于表示该服务器支持MPTCP链路。第一目标服务器通过该SYN ACK报文中MP_CAPABLE字段的有效负载(payload)将该指示信息携带至客户端。并且,由于相关技术中,目标服务器在接收到主TCP请求(也即是SYN报文)后,就会向客户端发送SYN ACK报文,因此,通过该SYN ACK报文携带第一初始服务器的指示信息,无需单独进行该指示信息的发送,节省网络带宽,提高该数据传输方法的兼容性。Optionally, in this embodiment of the present invention, it is taken as an example that the first target server carries the indication information of the first initial server in the response of the main TCP request. The response to the main TCP request of the indication information, and the indication information. Wherein, when the response of the main TCP request carries indication information, the response of the main TCP request may be a SYN ACK message, and the SYN ACK message carries an MP_CAPABLE field, and the MP_CAPABLE field is used to indicate that the server supports MPTCP links. 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. And, because in the related art, after the target server receives the main TCP request (that is, the SYN message), it will send a SYN ACK message to the client, therefore, the SYN ACK message carries the first initial server's The indication information does not need to be sent separately, which saves network bandwidth and improves the compatibility of the data transmission method.

需要说明的是,在客户端接收到该第一目标服务器发送的主TCP请求的响应后,客户端可以向第一目标服务器发送该主TCP请求的响应的确认消息,该确认消息可以为ACK报文。至此,该MPTCP连接中的主TCP链路建立完成。It should be noted that, after the client receives the response to the main TCP request sent by the first target server, the client may send an acknowledgment message of the response to the main TCP request to the first target server, and the acknowledgment message may be an ACK message. arts. So far, the establishment of the main TCP link in the MPTCP connection is completed.

次TCP链路建立阶段:Secondary TCP link establishment phase:

步骤108、客户端根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,该次TCP请求中携带有第一初始服务器的标识,以及用于指示MPTCP链路的密钥的令牌信息。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, and the TCP request carries the identifier of the first initial server and the order for indicating the key of the MPTCP link card information.

其中,第二初始服务器为多个初始服务器中的任一初始服务器,该次TCP链路与上述主TCP链路属于同一MPTCP链路。当上述指示信息不是第一初始服务器的标识时,相应的,该次TCP请求中携带有指示该第一初始服务器的指示信息,该指示信息并非标识。Wherein, the second initial server is any initial server among multiple initial servers, and the secondary TCP link and the above-mentioned primary TCP link belong to the same MPTCP link. When the above indication information is not the identification of the first initial server, correspondingly, the TCP request carries indication information indicating the first initial server, and the indication information is not an identification.

本申请实施例中,客户端向第二初始服务器发送次TCP请求的过程可以参考上述客户端向第一初始服务器发送主TCP请求的过程。示例地,该次TCP请求可以为SYN报文,该SYN报文中携带有MP_JOIN字段和token字段。其中,该token字段可以为令牌信息,token字段可以用于指示上述MPTCP链路的密钥。该MP_JOIN字段用于表示该客户端支持MPTCP链路,且该MP_JOIN字段中包含地址标识(Address ID)字段。客户端可以将上述第一初始服务器的指示信息填充至该Address ID字段,以使得该次TCP请求中携带有第一初始服务器的指示信息。In this embodiment of the present application, the process of the client sending the secondary TCP request to the second initial server may refer to the above-mentioned process of the client sending the primary TCP request to the first initial server. Exemplarily, the TCP request may be a SYN message, and the SYN message carries an MP_JOIN field and a token field. Wherein, the token field may be token information, and the token field may be used to indicate a key of the above-mentioned MPTCP link. The MP_JOIN field is used to indicate that the client supports the MPTCP link, and the MP_JOIN field includes an address identification (Address ID) field. The client may fill the above-mentioned indication information of the first initial server into the Address ID field, so that the TCP request carries the indication information of the first initial server.

相关技术中,SYN报文携带的MP_JOIN字段中Address ID字段填充的是该客户端的IP地址,但是由于客户端发送的SYN报文通常会经过多次网络地址转换(NAT),且在每次经过网络地址转换后,该Address ID字段中填充的IP地址将会被改变,使得该Address ID字段的信息无法准确指示客户端的IP地址,导致该Address ID字段无效。因此,本申请实施例中复用该Address ID字段携带第一初始服务器的标识,并不会对原有的SYN报文造成影响,且能够提高SYN报文的利用率。In related technologies, the Address ID field in the MP_JOIN field carried by the SYN message is filled with the IP address of the client. After network address translation, 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 invalidation of the Address ID field. Therefore, in the embodiment of the present application, the reuse of the Address ID field to carry the identifier of the first initial server will not affect the original SYN message, and can improve the utilization rate of the SYN message.

步骤109、第二初始服务器在与次TCP请求携带的指示信息所指示的第一初始服务器不同时,将次TCP请求转发至第一初始服务器。Step 109, when the second initial server is different from the first initial server indicated by the indication information carried in the secondary TCP request, forward the secondary TCP request to the first initial server.

当第一初始服务器的指示信息包括第一初始服务器的标识时,第二初始服务器在接收到次TCP请求后,获取该次TCP请求中携带的该第一初始服务器的标识。之后,第二初始服务器需要判断该标识与第二初始服务器的标识是否相同,以判断该第二初始服务器与第一初始服务器是否相同。当第二初始服务器确定其与第一初始服务器不同时,该第二初始服务器可以将该次TCP请求转发至第一初始服务器。以下将对第二初始服务器将该次TCP请求转发至第一初始服务器的过程进行说明。When the indication information of the first initial server includes the identifier of the first initial server, the second initial server obtains the identifier of the first initial server carried in the TCP request after receiving the second TCP request. Afterwards, the second initial server needs to determine whether the identifier is the same as the identifier of the second initial server, so as to determine whether the second initial server is the same as the first initial server. When the second initial server determines that it is different from the first initial server, the second initial server may forward the TCP request to the first initial server. The process in which the second initial server forwards the TCP request to the first initial server will be described below.

需要说明的是,每个初始服务器上可以存储有多个初始服务器的标识(例如,UID)和地址(例如,IP地址)的对应关系。比如,每个初始服务器上可以存储有个配置文件,该配置文件可以用于记录多个初始服务器的标识和地址的对应关系。上述次TCP请求可以携带有第一LB服务器的标识。第二初始服务器可以首先获取次TCP请求携带的第一初始服务器的标识,比如,第二初始服务器可以从次TCP请求中携带的SYN报文中Address ID字段中提取第一初始服务器的标识。之后,第二初始服务器可以基于第一初始服务器的标识,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的地址。最后,第二初始服务器可以基于第一初始服务器的地址,将次TCP请求发送至第一初始服务器。It should be noted that each initial server may store multiple correspondences between identifiers (for example, UID) and addresses (for example, IP addresses) of the initial server. For example, a configuration file may be stored on each initial server, and the configuration file may be used to record correspondence between identifiers and addresses of multiple initial servers. The above secondary TCP request may carry the identifier of the first LB server. The second initial server may first obtain the identifier of the first initial server carried in the secondary TCP request. For example, the second initial server may extract the identifier of the first initial server from the Address ID field in the SYN packet carried in the secondary TCP request. Afterwards, the second initial server may determine the address of the first initial server based on the identifier of the first initial server and the correspondence between identifiers and addresses of multiple initial servers. Finally, the second initial server may send the secondary TCP request to the first initial server based on the address of the first initial server.

步骤110、第一初始服务器将次TCP请求转发至第一目标服务器。Step 110, the first initial server forwards the secondary TCP request to the first target server.

第一初始服务器在接收到任一初始服务器(如上述第二初始服务器)发送的次TCP请求后,可以首先获取接收到的次TCP请求携带的令牌信息,然后基于该令牌信息确定MPTCP链路的密钥。之后,第一初始服务器基于该密钥查询前述建立的MPTCP链路的密钥和第一目标服务器的对应关系,进而确定该密钥对应的第一目标服务器。最后,第一初始服务器将该次TCP请求转发至该第一目标服务器。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 by the received secondary TCP request, and then determine the MPTCP chain based on the token information. road key. Afterwards, based on the key, the first initial server queries the corresponding relationship between the key of the previously established MPTCP link and the first target server, 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.

示例地,第一初始服务器可以基于次TCP请求携带的SYN报文中token字段确定MPTCP链路的密钥,进而根据该密钥查询先前建立的转发表项,以确定与该密钥对应的第一目标服务器,然后根据该第一目标服务器将该次TCP请求转发至确定的第一目标服务器。For example, the first initial server can determine the key of the MPTCP link based on the token field in the SYN message carried by the secondary TCP request, and then query the previously established forwarding entry according to the key, so as to determine the first key 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.

需要说明的是,图3中以数据传输系统以第二初始服务器与第一初始服务器不是同一设备为例进行说明,当第二初始服务器与次TCP请求携带的指示信息所指示的第一初始服务器相同时,第二初始服务器可以直接将次TCP请求转发至第一目标服务器。并且,该第二初始服务器将次TCP请求转发至第一目标服务器的过程与上述步骤110相同,本申请实施例在此不做赘述。It should be noted that, in FIG. 3, the data transmission system is illustrated by taking the second initial server and the first initial server as an example. When 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 may directly forward the secondary TCP request to the first target server. Moreover, the process of the second initial server forwarding the secondary TCP request to the first target server is the same as the above-mentioned step 110, which will not be repeated in this embodiment of the present application.

步骤111、第一目标服务器基于接收到次TCP请求,向客户端发送次TCP请求的响应。Step 111 , based on receiving the secondary TCP request, the first target server sends a response to the secondary TCP request to the client.

其中,该次TCP请求的响应可以不携带有第一初始服务器的标识。该次TCP请求的响应可以为SYN ACK报文,该SYN ACK报文中携带有MP_JOIN字段。Wherein, the response of this TCP request may not carry the identifier of the first initial server. The response to this TCP request may be a SYN ACK message, and the SYN ACK message carries an MP_JOIN field.

需要说明的是,在步骤111之后,客户端可以基于接收到的次TCP请求的响应,向第一目标服务器发送第一确认消息,该第一确认消息可以为ACK报文。第一目标服务器在接收到第一确认消息后,向客户端发送第二确认消息,该第二确认消息可以为ACK报文。该第一目标服务器向客户端发送的ACK报文为TCP标准的ACK报文。至此,该次TCP链路建立完成。It should be noted that after step 111, the client may send a first confirmation message to the first target server based on the received response of the secondary TCP request, and the first confirmation message may be an ACK message. After receiving the first confirmation message, the first target server sends a second confirmation message to the client, where 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 establishment of the TCP link is completed.

还需要说明的是,图3所示的数据传输方法也可以用于图2所示的数据传输系统。此时,在上述步骤107之后,第一目标服务器确定第一后端服务器,并在该第一目标服务器存储该主TCP请求携带的MPTCP链路的密钥与第一后端服务器的关系。第一目标服务器基于该对应关系向第一后端服务器发送主TCP请求。该第一后端服务器在获取到该主TCP请求后,基于该主TCP请求向客户端发送该TCP请求的响应。客户端在接收到第一后端服务器发送的主TCP请求后,继续执行步骤108至步骤110。在第一目标服务器接收到次TCP请求后,该第一目标服务器基于次TCP请求中携带的MPTCP链路的密钥和上述对应关系,将该次TCP请求转发至第一后端服务器。第一后端服务器在接收到该次TCP请求后向客户端发送该次TCP请求的响应。其中,第一初始服务器的标识可以由第一目标服务器单独发送至客户端,也可以由第一目标服务器发送至第一后端服务器,再由第一后端服务器单独发送至客户端,还可以携带在第一后端服务器向客户端发送的主TCP请求的响应中,以由该第一后端服务器发送至客户端。可选地,主TCP请求中还携带有应用层内容信息,第一目标服务器可以根据该主TCP请求中携带的应用层内容信息,基于选择算法确定第一后端服务器,该第一后端服务器为多个后端服务器中的任意一个。It should also be noted that the data transmission method shown in FIG. 3 can also be used in the data transmission system shown in FIG. 2 . At this time, after the above step 107, the first target server determines the first backend server, and stores the relationship between the key of the MPTCP link carried in the main TCP request and the first backend server in the first target server. The first target server sends the main TCP request to the first backend server based on the correspondence. After obtaining the main TCP request, the first backend server sends a response to the TCP request to the client based on the main TCP request. After receiving the main TCP request sent by the first backend server, the client continues to execute steps 108 to 110 . After the first target server receives the secondary TCP request, the first target server forwards the secondary TCP request to the first backend server based on the key of the MPTCP link carried in the secondary TCP request and the above correspondence. After receiving the TCP request, the first backend server sends a response to the TCP request to the client. Wherein, the identifier of the first initial server may be sent to the client separately by the first target server, or may be sent by the first target server to the first backend server, and then sent to the client separately by the first backend server, or carried in the response of the main TCP request sent by the first backend server to the client, so as to be sent by the first backend server to the client. Optionally, the main TCP request also carries application layer content information, and the first target server can determine the first backend server based on a selection algorithm based on the application layer content information carried in the main TCP request, and the first backend server Any one of multiple backend servers.

综上所述,本发明实施例提供的数据传输方法,由于第一目标服务器向客户端发送主TCP链路上的第一初始服务器的指示信息,因此,客户端可以在次TCP请求中携带该指示信息,使得第二初始服务器在接收到该次TCP请求后,可以基于指示信息将该次TCP请求转发至第一初始服务器,从而使得该第一初始服务器将次TCP请求转发至接收主TCP请求的服务器。保证了主TCP链路上的目标服务器和次TCP链路上的目标服务器为同一目标服务器,进而保证了MPTCP链路的建立,实现MPTCP链路下的负载均衡。To sum up, in the data transmission method provided by the embodiment of the present invention, 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 information in the secondary TCP request. indication information, so that after receiving the TCP request, the second initial server can forward the TCP request to the first initial server based on the indication information, so that the first initial server forwards the secondary TCP request to receive the primary TCP request server. It ensures 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.

进一步地,由于第一初始服务器的指示信息可以被携带在相关技术中MPTCP的有关报文中,因此,该数据传输方法符合请求评议(request for comments,RFC)规范,避免了影响其他设备的协议栈对MPTCP传输的数据进行处理,具有较高的兼容性。Further, since the indication information of the first initial server can be carried in the relevant message of MPTCP in the related art, the data transmission method conforms to the request for comments (request for comments, RFC) specification, and avoids affecting the protocol of other devices The stack processes the data transmitted by MPTCP and has high compatibility.

为了便于读者理解,本申请实施例针对应用四层LB技术的数据传输系统对数据传输方法进行举例说明。To facilitate readers' understanding, the embodiments of the present application illustrate a data transmission method for a data transmission system applying the four-layer LB technology.

假设,数据传输系统中,客户端包括一个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。Suppose, in the data transmission system, 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 a gateway. The initial server is an LB device, and 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. The multiple target servers include RS1, RS2 and 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。As shown in Figure 4, when the client establishes an MPTCP link with the target server, the client sends a main TCP request to the gateway through the IP address 1 and the LTE network port, and the main TCP request carries the MPTCP link where the main TCP link is located. key 1. After receiving the main TCP request, the gateway distributes the main TCP request to the LB device 2 based on a forwarding algorithm. After LB device 2 receives the master TCP request, LB device 2 establishes the forwarding entry shown in Table 1 above, and rewrites the SIP information content in the master TCP request to its IP address 1.75.2.127, and based on the scheduling The algorithm forwards the master TCP request to 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链路的建立。After receiving the master TCP request, RS1 obtains the IP address 1.75.2.127 of the LB device 2 based on the master TCP request. Then, the RS1 queries the configuration file shown in Table 2 above based on the IP address, and determines that the UID of the LB device 2 is 00000010. Then RS1 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.

在客户端与目标服务器建立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链路的建立。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 above process of establishing the primary TCP link. The client forwards the second TCP request to the LB device 3 through the gateway, and this TCP request carries the UID of the LB device 2 . After receiving the TCP request, the LB device 3 obtains the UID carried in the TCP request, and compares the UID with the UID of the LB device 3 . Since the two are not the same, 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 second TCP request, and forwards the 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 above-mentioned RS1. Based on this, the client completes the establishment of the secondary TCP link.

本发明实施例提供的数据传输方法,由于RS1向客户端发送的LB设备2的UID,客户端可以在次TCP请求中携带该UID,使得LB设备3在接收到该次TCP请求后,可以基于该UID将该次TCP请求转发至LB设备2,从而使得该LB设备2将次TCP请求转发至RS1,形成了MPTCP链路,实现了MPTCP链路下的负载均衡。In the data transmission method provided by the embodiment of the present invention, since RS1 sends the UID of the LB device 2 to the client, the client can carry the UID in the second TCP request, so that after the LB device 3 receives the TCP request, it can use the UID based on The UID forwards the TCP request to the LB device 2, so that the LB device 2 forwards the TCP request to RS1, forming an MPTCP link, and realizing load balancing under the MPTCP link.

进一步地,本申请实施例针对应用七层LB技术的数据传输系统对数据传输方法进行举例说明。Further, the embodiment of the present application illustrates a data transmission method for a data transmission system applying a seven-layer LB technology.

假设,数据传输系统中,客户端和初始服务器均与上述应用四层LB技术的数据传输系统中客户端和初始服务器一致。目标服务器为LB7设备,多个目标服务器包括LB7设备1、LB7设备2和LB7设备3。多个后端服务器包括RS1、RS2以及RS3。It is assumed that, in the data transmission system, both the client and the initial server are the same as the client and the initial server in the above data transmission system applying the four-layer LB technology. The target server is an LB7 device, and the multiple target servers include LB7 device 1, LB7 device 2, and LB7 device 3. The multiple backend servers include RS1, RS2 and RS3.

如图5所示,在该数据传输系统中,客户端将主TCP请求(和次TCP请求)经过多个设备转发至LB7设备1的过程可以参考上述数传输方法中,客户端将主TCP请求(和次TCP请求)经过多个设备转发至RS1的过程,本申请实施例对此不做赘述。As shown in Figure 5, in this data transmission system, the client forwards the primary TCP request (and the secondary TCP request) to the LB7 device 1 through multiple devices. (and the secondary TCP request) are forwarded to RS1 by multiple devices, which will not be described in this embodiment of the present application.

当LB7设备1接收到主TCP请求后,LB7设备1不仅向客户端发送LB设备2的UID,还基于转发算法将该主TCP请求发送至RS2。RS2在接收到该主TCP请求后,向客户端发送该主TCP请求的响应。客户端基于此完成主TCP链路的建立。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.

当LB7设备1接收到次TCP请求后,LB7设备1可以无需向客户端发送该次TCP请求的响应,而是基于转发算法将该次TCP请求发送至RS2。RS2在接收到该次TCP请求后,向客户端发送该次TCP请求的响应。客户端基于此完成次TCP链路的建立。After the LB7 device 1 receives the TCP request, the LB7 device 1 does not need to send the response of the TCP request to the client, but sends the TCP request to the RS2 based on the forwarding algorithm. 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.

本发明实施例提供的数据传输方法,由于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链路下的负载均衡。In the data transmission method provided by the embodiment of the present invention, since the UID of the LB device 2 sent by the LB7 device 1 to the client, the client can carry the UID in the second TCP request, so that after the LB device 3 receives the TCP request, The TCP request can be forwarded to the LB device 2 based on the UID, so that the LB device 2 forwards the TCP request to the LB7 device 1, and the LB7 device 1 forwards the TCP request to the primary TCP link The RS2 of the MPTCP link is formed, and the load balancing under the MPTCP link is realized.

需要说明的是,前述多个初始服务器可以构成LB集群。该LB集群的工作模式可以属于主主模式,也可以属于主备模式。该主主模式指的是,在LB集群中,每个初始服务器均可以将接收到的TCP请求转发至目标服务器。该主备模式指的是,在LB集群中的初始服务器被划分为主初始服务器和备初始服务器,其中,主初始服务器可以将接收到的TCP请求转发至目标服务器,而备初始服务器在通常情况下,无法将接收到的TCP请求转发至目标服务器。It should be noted that the aforementioned multiple initial servers may form an LB cluster. The working mode of the LB cluster may belong to the active-active mode, or may belong to the active-standby mode. The active-active mode means that in the LB cluster, each initial server can forward the received TCP request to the target server. The active/standby mode means that the initial server in the LB cluster is divided into the active initial server and the standby initial server, wherein the active initial server can forward the received TCP request to the target server, and the standby initial server can normally , the received TCP request cannot be forwarded to the target server.

相关技术中,在上述LB集群的工作模式可以属于主主模式的情况下,为了解决前述在建立主TCP链路时确定的目标服务器,与在建立次TCP链路时确定的目标服务器可能并不相同的问题。在建立主连接的过程中,多个初始服务器中任一初始服务器在确定主TCP请求所被转发的目标服务器后,可以将该主TCP请求携带的密钥与该目标服务器的对应关系额外同步发送至该LB集群中每个初始服务器。此时,在建立次连接的过程中,任一初始服务器接收到次TCP请求后,可以基于次TCP请求中携带的密钥和该对应关系,确定主TCP请求被转发至的目标服务器。从而使得在建立主TCP链路时确定的目标服务器,与在建立次TCP链路时确定的目标服务器相同。但是,LB集群间额外的信息同步的技术难度较大,导致LB集群在主主模式下工作的实现难度较大。In related technologies, in the case where the working mode of the above-mentioned LB cluster can belong to the primary-primary mode, in order to solve the above-mentioned target server determined when the primary TCP link is established, it may not be the same as the target server determined when the secondary TCP link is established. same problem. In the process of establishing the main connection, any initial server among the multiple initial servers can additionally send the corresponding relationship between the key carried in the main TCP request and the target server after determining the target server to which the main TCP request is forwarded to each initial server in the LB cluster. At this time, in the process of establishing the secondary connection, after 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. However, the technical difficulty of additional information synchronization between LB clusters is relatively large, which makes it difficult to realize that the LB clusters work in the master-master mode.

而本发明实施例提供的数据传输方法中,由于LB集群中,每个初始服务器可以根据次TCP请求中携带的主TCP链路上的初始服务器的标识,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器。因此,无需LB集群间额外的信息同步,降低了LB集群在主主模式下工作的实现难度,实现了MPTCP场景中LB集群在主主模式下的负载均衡。In the data transmission method provided by the embodiment of the present invention, since in the LB cluster, each initial server can forward the secondary TCP request to the primary TCP according to the identifier of the initial 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, there is no need for additional information synchronization between LB clusters, which reduces the implementation difficulty of LB clusters working in master-master mode, and realizes load balancing of LB clusters in master-master mode in MPTCP scenarios.

进一步地,由于LB集群的工作模式在主备模式下时,主初始服务器也可以通过本申请实施例所述的数据传输方法,将该次TCP请求转发至该主TCP链路上的初始服务器,从而使得所有TCP请求均由同一个初始服务器转发至目标服务器,因此,本申请实施例也可以应用在MPTCP场景中LB集群在主备模式下的负载均衡。Further, since the working mode of the LB cluster is in the active/standby mode, the primary initial server can also forward the TCP request to the initial server on the primary TCP link through the data transmission method described in the embodiment of the present application, Therefore, all TCP requests are forwarded to the target server by the same initial server. Therefore, the embodiment of the present application can also be applied to the load balancing of the LB cluster in the active/standby mode in the MPTCP scenario.

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。The following are device embodiments of the present application, which can be used to implement the method embodiments of the present application. For details not disclosed in the device embodiments of the present application, please refer to the method embodiments of the present application.

本申请实施例提供一种数据传输装置,用于数据传输系统中的客户端,数据传输系统还包括:多个初始服务器和多个目标服务器,如图6所示,数据传输装置200包括:第一接收模块201、发送模块202和第二接收模块203。An embodiment of the present application provides a data transmission device, which is used for a client in a data transmission system. The data transmission system further includes: multiple initial servers and multiple target servers. As shown in FIG. 6 , the data transmission device 200 includes: a first A receiving module 201 , a sending module 202 and a second receiving module 203 .

第一接收模块201,用于接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息,其中,第一目标服务器和第一初始服务器均位于客户端建立的主传输控制协议TCP链路上;The first receiving module 201 is configured to receive indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers, wherein both the first target server and the first initial server are located in the client-established On the main transmission control protocol TCP link;

发送模块202,用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息;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 indication information, wherein the second initial server is any initial server in a plurality of initial servers, and the secondary TCP link is connected to the primary TCP link. The link belongs to the same multipath transmission control protocol MPTCP link, and the secondary TCP request carries indication information;

第二接收模块203,用于接收第一目标服务器发送的次TCP请求的响应。The second receiving module 203 is configured to receive a response to the secondary TCP request sent by the first target server.

可选地,如图7所示,数据传输装置200还包括:发送主请求模块204,用于在接收多个目标服务器中第一目标服务器发送的多个初始服务器中第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。Optionally, as shown in FIG. 7 , the data transmission device 200 further includes: a sending main request module 204, configured to receive indication information of the first initial server among the multiple initial servers sent by the first target server among the multiple target servers Before, send a master TCP request to establish a master TCP link to the first initial server.

第一接收装置201,还用于:接收第一目标服务器发送的主TCP请求的响应,主TCP请求的响应携带有指示信息。The first receiving means 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.

可选地,数据传输系统还包括中转设备。Optionally, the data transmission system further includes a transfer device.

发送主请求模块204,还用于:通过中转设备向第一初始服务器发送主TCP请求。The sending main request module 204 is further configured to: send the main TCP request to the first initial server through the transit device.

发送模块202,还用于:根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。The sending module 202 is further configured to: send the secondary TCP request to the second initial server through the transfer device according to the indication information.

本申请实施例提供一种数据传输装置,该数据传输装置用于数据传输系统中的第三初始服务器,数据传输系统包括客户端、多个初始服务器和多个目标服务器,第三初始服务器为多个初始服务器中的任一初始服务器,如图8所示,数据传输装置300包括:接收模块301和转发模块302。An embodiment of the present application provides a data transmission device, the data transmission device is 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, and the third initial server is multiple Any initial server in the initial servers, as shown in FIG. 8 , the data transmission device 300 includes: a receiving module 301 and a forwarding module 302.

接收模块301,用于接收其他设备发送的建立次TCP链路的次TCP请求,其中,其他设备包括:客户端或多个初始服务器中除第三初始服务器之外的任一服务器,次TCP请求中携带有指示信息,且指示信息用于指示多个初始服务器中位于客户端建立的主TCP链路上的初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;The receiving module 301 is configured to receive a secondary TCP request for establishing a secondary TCP link sent by other devices, wherein the other devices include: any server in the client or multiple initial servers except the third initial server, the secondary TCP request carries indication information, and the indication information is used to indicate the initial server located on the primary TCP link established by the client among the multiple initial servers, and the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP chain road;

转发模块302,用于在第三初始服务器与指示信息所指示的初始服务器不同时,将次TCP请求转发至指示信息所指示的初始服务器。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.

可选地,如图9所示,数据传输装置300还包括:转发次请求模块303,用于在第三初始服务器与指示信息所指示的初始服务器相同时,将次TCP请求转发至第一目标服务器,第一目标服务器为多个目标服务器中位于主TCP链路上的目标服务器。Optionally, as shown in FIG. 9, 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 a target server located on the main TCP link among the multiple target servers.

可选地,请继续参考图9,数据传输装置300还包括:接收主请求模块304和转发主请求模块305。Optionally, please continue to refer to FIG. 9 , the data transmission device 300 further includes: a receiving main request module 304 and a forwarding main request module 305 .

接收主请求模块304,用于在接收其他设备发送的建立次TCP链路的次TCP请求之前,接收客户端发送的建立主TCP链路的主TCP请求,指示信息所指示的初始服务器为第三初始服务器;The receiving primary request module 304 is used 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;

转发主请求模块305,用于将主TCP请求转发至第一目标服务器。A forwarding main request module 305, configured to forward the main TCP request to the first target server.

可选地,指示信息包括第三初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。转发主请求模块305,还用于将主TCP请求进行处理,以使处理后的主TCP请求携带有第三初始服务器的地址;并向第一目标服务器发送处理后的主TCP请求。Optionally, the indication information includes an identifier of the third initial server, and multiple target servers are configured with correspondences between identifiers and addresses of multiple initial servers. The forwarding main request module 305 is further configured to process the main TCP request, so that the processed main TCP request carries the address of the third initial server; and send the processed main TCP request to the first target server.

可选地,指示信息携带有其指示的初始服务器的标识,多个初始服务器均配置有多个初始服务器的标识和地址的对应关系。转发模块302,还用于获取指示信息携带的初始服务器的标识;基于获取到的初始服务器的标识,以及多个初始服务器的标识和地址的对应关系,确定指示信息所指示的初始服务器的地址;基于指示信息所指示的初始服务器的地址,将次TCP请求发送至指示信息所指示的初始服务器。Optionally, the indication information carries an identifier of the indicated initial server, and multiple initial servers are configured with correspondences between identifiers and addresses of multiple initial servers. The forwarding module 302 is further configured to acquire the identifier of the initial server carried in the indication information; based on the acquired identifier of the initial server and the corresponding relationship between identifiers and addresses of multiple initial servers, determine the address of the initial server indicated by the indication information; 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.

可选地,主TCP请求携带有MPTCP的密钥,次TCP请求携带有用于指示密钥的令牌信息。如图9所示,数据传输装置300还包括:建立模块306和查找模块307。Optionally, the primary TCP request carries an MPTCP key, and the secondary TCP request carries token information for indicating the key. As shown in FIG. 9 , the data transmission device 300 further includes: an establishment module 306 and a search module 307 .

建立模块306,用于在第三初始服务器将主TCP请求转发至第一目标服务器之前,建立密钥和第一目标服务器的对应关系;Establishing module 306, used for establishing the corresponding relationship between the key and the first target server before the third initial server forwards the main TCP request to the first target server;

查找模块307,用于在第三初始服务器将次TCP请求转发至第一目标服务器之前,在密钥和第一目标服务器的对应关系中,查找令牌信息所指示的密钥所对应的第一目标服务器。The search module 307 is configured to search for the first TCP request corresponding to the key indicated by the token information in the corresponding relationship between the key and the first target server before the third initial server forwards the secondary TCP request to the first target server. target server.

可选地,数据传输系统还包括中转设备。接收主请求模块304,还用于通过中转设备接收客户端发送的主TCP请求。Optionally, the data transmission system further includes a transfer device. The main request receiving module 304 is also configured to receive the main TCP request sent by the client through the transfer device.

接收模块301,还用于当其他设备为客户端时,通过中转设备接收客户端发送的建立次TCP链路的次TCP请求。The receiving module 301 is further configured to, when the other device is a client, receive a secondary TCP request for establishing a secondary TCP link sent by the client through the transit device.

可选地,次TCP请求包括地址标识字段,地址标识字段携带有上述指示信息。Optionally, the secondary TCP request includes an address identification field, and the address identification field carries the above indication information.

本申请提供一种数据传输装置,其用于数据传输系统中的第一目标服务器,数据传输系统包括客户端、多个初始服务器和多个目标服务器,第一目标服务器为多个目标服务器中位于客户端建立的主TCP链路上的服务器,如图10所示,数据传输装置500包括:第一发送模块501、接收模块502和第二发送模块503。The present application provides a data transmission device, which 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. The first target server is located among the multiple target servers. For 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 .

第一发送模块501,用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器为:多个初始服务器中位于主TCP链路上的初始服务器;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: an initial server located on the main TCP link among the multiple initial servers;

接收模块502,用于接收第一初始服务器发送的建立次TCP链路的次TCP请求,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路;The receiving module 502 is configured to receive a secondary TCP request for establishing a secondary TCP link sent by the first initial server, and the secondary TCP link and the primary TCP link belong to the same multipath transmission control protocol MPTCP link;

第二发送模块503,用于基于次TCP请求,向客户端发送次TCP请求的响应。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.

可选地,如图11所示,数据传输装置500还包括:接收主请求模块504,用于在向客户端发送第一初始服务器的指示信息之前,接收第一初始服务器转发的建立主TCP链路的主TCP请求。Optionally, as shown in FIG. 11 , the data transmission device 500 further includes: a receiving main request module 504, configured to receive the establishing main TCP chain 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.

第一发送模块501,还用于:第一目标服务器向客户端发送主TCP请求的响应,主TCP请求的响应携带有指示信息。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.

可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。数据传输装置500还包括:获取模块505和确定模块506。Optionally, the indication information includes an identifier of the first initial server, and multiple target servers are configured with correspondences between identifiers and addresses of multiple initial servers. The data transmission device 500 also includes: an acquisition module 505 and a determination module 506 .

获取模块505,用于在向客户端发送第一初始服务器的指示信息之前,获取主TCP请求携带的第一初始服务器的地址;An acquisition module 505, 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;

确定模块506,用于基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。The determining module 506 is configured to determine the identifier of the first initial server based on the address of the first initial server and the correspondence between identifiers and addresses of multiple initial servers.

本申请实施例提供了一种数据传输系统,如图1或2所示,数据传输系统包括客户端、多个初始服务器和多个目标服务器,An embodiment of the present application provides a data transmission system, as shown in Figure 1 or 2, the data transmission system includes a client, multiple initial servers and multiple target servers,

第一目标服务器用于向客户端发送第一初始服务器的指示信息,其中,第一初始服务器和第一目标服务器均位于客户端建立的主传输控制协议TCP链路上。The first target server is configured to send the 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.

客户端用于根据指示信息向第二初始服务器发送建立次TCP链路的次TCP请求,其中,第二初始服务器为多个初始服务器中的任一初始服务器,次TCP链路与主TCP链路属于同一多路径传输控制协议MPTCP链路,次TCP请求中携带有指示信息。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, wherein the second initial server is any initial server among the multiple initial servers, and 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 indication information.

第二初始服务器用于在与指示信息所指示的第一初始服务器不同时,将次TCP请求转发至第一初始服务器。The second initial server is configured 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.

第一初始服务器用于将次TCP请求转发至第一目标服务器。The first initial server is used to forward the secondary TCP request to the first target server.

第一目标服务器用于基于接收到次TCP请求,向客户端发送次TCP请求的响应。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.

可选地,第二初始服务器用于在与指示信息所指示的第一初始服务器相同时,将次TCP请求转发至第一目标服务器。Optionally, 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.

可选地,客户端用于在第一目标服务器向客户端发送第一初始服务器的指示信息之前,向第一初始服务器发送建立主TCP链路的主TCP请求。Optionally, the client is configured to send a primary TCP request for establishing a primary TCP link to the first initial server before the first target server sends the instruction information of the first initial server to the client.

第一初始服务器用于将主TCP请求转发至第一目标服务器。The first initial server is used to forward the main TCP request to the first target server.

第一目标服务器用于向客户端发送主TCP请求的响应,主TCP请求的响应携带有指示信息。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 indication information.

可选地,指示信息包括第一初始服务器的标识,多个目标服务器均配置有多个初始服务器的标识和地址的对应关系。Optionally, the indication information includes an identifier of the first initial server, and multiple target servers are configured with correspondences between identifiers and addresses of multiple initial servers.

第一初始服务器用于将主TCP请求进行处理,以使处理后的主TCP请求携带有第一初始服务器的地址。The first initial server is configured to process the main TCP request, so that the processed main TCP request carries the address of the first initial server.

第一初始服务器用于向第一目标服务器发送处理后的主TCP请求。The first initial server is used to send the processed primary TCP request to the first target server.

第一目标服务器在第一目标服务器用于向客户端发送第一初始服务器的指示信息之前,用于获取主TCP请求携带的第一初始服务器的地址。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 acquire the address of the first initial server carried in the main TCP request.

第一目标服务器用于基于第一初始服务器的地址,以及多个初始服务器的标识和地址的对应关系,确定第一初始服务器的标识。The first target server is configured to determine the identifier of the first initial server based on the address of the first initial server and the correspondence between identifiers and addresses of multiple initial servers.

可选地,指示信息包括第一初始服务器的标识,多个初始服务器均配置有多个初始服务器的标识和地址的对应关系。Optionally, the indication information includes an identifier of the first initial server, and multiple initial servers are configured with correspondences between identifiers and addresses of multiple initial servers.

第二初始服务器用于获取次TCP请求携带的第一初始服务器的标识。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 identifier of the first initial server and the correspondence between identifiers and addresses of multiple initial servers.

第二初始服务器用于基于第一初始服务器的地址,将次TCP请求发送至第一初始服务器。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.

可选地,初始服务器130的地址包括互联网协议IP地址。Optionally, the address of the origin server 130 includes an Internet Protocol IP address.

可选地,次TCP请求包括地址标识字段,地址标识字段携带有第一初始服务器的指示信息。Optionally, the secondary TCP request includes an address identification field, and the address identification field carries indication information of the first initial server.

可选地,主TCP请求携带有MPTCP的密钥,次TCP请求携带有用于指示密钥的令牌信息。Optionally, the primary TCP request carries an MPTCP key, and the secondary TCP request carries token information for indicating the key.

第一初始服务器在第一初始服务器将主TCP请求转发至第一目标服务器之前,用于建立密钥和第一目标服务器的对应关系。The first initial server is used to establish a corresponding relationship between the key and the first target server before the first initial server forwards the main TCP request to the first target server.

第一初始服务器用于在第一初始服务器将次TCP请求转发至第一目标服务器之前,在密钥和第一目标服务器的对应关系中,查找令牌信息所指示的密钥所对应的第一目标服务器。Before the first initial server forwards the secondary TCP request to the first target server, in the corresponding relationship between the key and the first target server, search for the first key corresponding to the key indicated by the token information. target server.

可选地,数据传输系统还包括:中转设备。Optionally, the data transmission system further includes: a transfer device.

客户端用于通过中转设备向第一初始服务器发送主TCP请求。The client is configured to send a main TCP request to the first initial server through the transit device.

客户端用于根据指示信息通过中转设备,向第二初始服务器发送次TCP请求。The client is configured to send a secondary TCP request to the second initial server through the transit device according to the indication information.

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行本发明实施例提供的数据传输方法中客户端执行的步骤。例如,图3所示的实施例中的步骤101和步骤108。The embodiment of the present invention also provides a computer-readable storage medium, the computer-readable storage medium stores an instruction, and when the instruction is run on the computer, the computer executes the client in the data transmission method provided by the embodiment of the present invention. steps to execute. For example, step 101 and step 108 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。Alternatively, 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, steps 102 to 104 and step 110 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。Alternatively, the computer is made to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention. For example, step 109 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。Alternatively, the computer is made 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, steps 105 to 107 and step 111 in the embodiment shown in FIG. 3 .

本发明实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中客户端执行的步骤。例如,步骤101和步骤108。The embodiment of the present invention also provides a computer program product containing instructions, and when the computer program product runs on a computer, it causes the computer to execute the steps performed by the client in the above method embodiments. For example, step 101 and step 108 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。Alternatively, 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, steps 102 to 104 and step 110 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。Alternatively, the computer is made to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention. For example, step 109 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。Alternatively, the computer is made 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, steps 105 to 107 and step 111 in the embodiment shown in FIG. 3 .

本申请实施例提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当芯片运行时用于实现上述方法实施例中客户端执行的步骤。例如,步骤101和步骤108。An embodiment of the present application provides a chip, and the chip includes a programmable logic circuit and/or program instructions, which are used to implement the steps executed by the client in the above method embodiments when the chip is running. For example, step 101 and step 108 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一初始服务器执行的步骤。例如,图3所示的实施例中的步骤102至步骤104,以及步骤110。Alternatively, 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, steps 102 to 104 and step 110 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第二初始服务器执行的步骤。例如,图3所示的实施例中的步骤109。Alternatively, the computer is made to execute the steps executed by the second initial server in the data transmission method provided by the embodiment of the present invention. For example, step 109 in the embodiment shown in FIG. 3 .

或者,使得计算机执行本发明实施例提供的数据传输方法中第一目标服务器执行的步骤。例如,图3所示的实施例中的步骤105至步骤107,以及步骤111。Alternatively, the computer is made 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, steps 105 to 107 and step 111 in the embodiment shown in FIG. 3 .

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps for implementing the above embodiments can be completed by hardware, and can also be completed by instructing related hardware through a program. The program can be stored in a computer-readable storage medium. The above-mentioned The storage medium mentioned may be a read-only memory, a magnetic disk or an optical disk, and the like.

在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。In the present application, the terms "first" and "second" are used for descriptive purposes only, and should not be construed as indicating or implying relative importance. The term "plurality" means two or more, unless otherwise clearly defined.

本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art can realize that, in combination with the various method steps and units described in the embodiments disclosed herein, they can be implemented by electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the possibility of hardware and software For interchangeability, in the above description, the steps and components of each embodiment have been generally described according to their functions. Whether these functions are executed by hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art may implement the described functionality using different methods for each particular application, but such implementation should not be considered as exceeding the scope of the present application.

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that for the convenience and brevity of the description, the specific working process of the above-described system, device and module can refer to the corresponding process in the foregoing method embodiment, which will not be repeated here.

在本申请所提供的几个实施例中,应该理解到,所揭露的服务器、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或网络连接可以是通过一些接口、装置或单元的间接耦合或网络连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided in this application, it should be understood that the disclosed server, device and method may be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the modules is only a logical function division. In actual implementation, there may be other division methods. For example, multiple modules or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented. In addition, the mutual coupling or direct coupling or network connection shown or discussed may be indirect coupling or network connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。In addition, each functional module in each embodiment of the present application may be integrated into one processing module, each module may exist separately 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 in the form of software function modules.

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated modules are realized in the form of software function modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of software products, and the computer software products are stored in a storage medium In, several instructions are included 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 methods described in the various embodiments of the present application. The aforementioned storage medium includes: 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 various media that can store program codes. .

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。The above is only a specific embodiment of the application, but the scope of protection of the application is not limited thereto. Any person familiar with the technical field can easily think of various equivalents within the scope of the technology disclosed in the application. Modifications or replacements, these modifications or replacements shall be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims (25)

1. a kind of data transmission method, which is characterized in that be applied to data transmission system, the data transmission system includes client End, multiple initial servers and multiple destination servers, which comprises
First object server sends the instruction information of the first initial server to the client, wherein described first is initial Server and the first object server are respectively positioned on the main transmission control protocol TCP chain road that the client is established, described First initial server is any initial server in the multiple initial server;
The client sends the secondary TCP request for establishing time TCP link according to the instruction information to the second initial server, In, second initial server is any initial server in the multiple initial server, the secondary TCP link and master TCP link belongs to same multi-path transmission control protocol MPTCP link, carries the instruction information in the secondary TCP request;
Second initial server, will be described when with the first initial server difference indicated by the instruction information Secondary TCP request is forwarded to first initial server;
The secondary TCP request is forwarded to the first object server by first initial server;
The first object server sends the secondary TCP request based on the secondary TCP request received, Xiang Suoshu client Response.
2. the method according to claim 1, wherein the method also includes:
Second initial server, will be described when identical as first initial server indicated by the instruction information Secondary TCP request is forwarded to the first object server.
3. method according to claim 1 or 2, which is characterized in that in the first object server to the client Before sending the instruction information of the first initial server, the method also includes:
The client sends the main TCP request for establishing the main TCP link to first initial server;
The main TCP request is forwarded to the first object server by first initial server;
The first object server sends the instruction information of the first initial server to the client, comprising:
The first object server sends the response that the main TCP is requested, the response of the main TCP request to the client Carry the instruction information.
4. according to the method described in claim 3, it is characterized in that, the instruction information includes first initial server Mark, the multiple destination server are each equipped with the mark of the multiple initial server and the corresponding relationship of address;
The main TCP request is forwarded to the first object server by first initial server, comprising:
First initial server handles the main TCP request, so that treated, the main TCP request is carried The address of first initial server;
First initial server is to the first object server main TCP request that sends that treated;
Before the first object server sends the instruction information of the first initial server to the client, the method Further include:
The first object server obtains the address for first initial server that the main TCP request carries;
The mark of address and the multiple initial server of the first object server based on first initial server Know the corresponding relationship with address, determines the mark of first initial server.
5. the method according to claim 3 or 4, which is characterized in that the instruction information includes first initial service The mark of device, the multiple initial server are each equipped with the mark of the multiple initial server and the corresponding relationship of address;
Second initial server, will be described when with the first initial server difference indicated by the instruction information Secondary TCP request is forwarded to first initial server, comprising:
Second initial server obtains the mark for first initial server that the secondary TCP request carries;
The mark of mark and the multiple initial server of second initial server based on first initial server Know the corresponding relationship with address, determines the address of first initial server;
The secondary TCP request is sent to described by address of second initial server based on first initial server First initial server.
6. method according to claim 4 or 5, which is characterized in that the address of the initial server includes internet protocol Discuss IP address.
7. according to any method of claim 3 to 6, which is characterized in that the main TCP request carries the MPTCP Key, the secondary TCP request carries the token information for being used to indicate the key, the method also includes:
Before the main TCP request is forwarded to the first object server by first initial server, described first Initial server establishes the corresponding relationship of the key and the first object server;
Before the secondary TCP request is forwarded to the first object server by first initial server, described first Initial server is searched indicated by the token information in the corresponding relationship of the key and the first object server The first object server corresponding to the key.
8. according to any method of claim 3 to 7, which is characterized in that the data transmission system further includes that transfer is set It is standby;
The client sends main TCP request to first initial server, comprising: the client is set by the transfer It is standby to send the main TCP request to first initial server;
The client sends time TCP request to the second initial server according to the instruction information, comprising: the client root According to the instruction information by the relay device, time TCP request is sent to the second initial server.
9. method according to any one of claims 1 to 8, which is characterized in that the secondary TCP request includes that address label is become literate Section, the address identification field carry the instruction information of first initial server.
10. a kind of data transmission method, which is characterized in that for the client in data transmission system, the data transmission system System further include: multiple initial servers and multiple destination servers, which comprises
Client receives at the beginning of first in multiple initial servers that first object server is sent in the multiple destination server The instruction information of beginning server, wherein the first object server and first initial server are respectively positioned on the client Hold the main transmission control protocol TCP chain road established;
The client sends the secondary TCP request for establishing time TCP link according to the instruction information to the second initial server, In, second initial server is any initial server in the multiple initial server, the secondary TCP link and master TCP link belongs to same multi-path transmission control protocol MPTCP link, carries the instruction information in the secondary TCP request;
The client receives the response for the secondary TCP request that the first object server is sent.
11. a kind of data transmission method, which is characterized in that for the third initial server in data transmission system, the number It include client, multiple initial servers and multiple destination servers according to Transmission system, the third initial server is described Any initial server in multiple initial servers, which comprises
Secondary TCP that the third initial server receives the foundation time TCP link that other equipment are sent is requested, wherein it is described its His equipment includes: any service in the client or the multiple initial server in addition to the third initial server Device carries instruction information in the secondary TCP request, and the instruction information is used to indicate position in the multiple initial server Initial server in the main TCP chain road that the client is established, the secondary TCP link and the main TCP link belong to together One multi-path transmission control protocol MPTCP link;
The third initial server asks the secondary TCP when with initial server difference indicated by the instruction information It asks and is forwarded to initial server indicated by the instruction information.
12. a kind of data transmission method, which is characterized in that for the first object server in data transmission system, the number It include client, multiple initial servers and multiple destination servers according to Transmission system, the first object server is described It is located at the server for the main TCP chain road that the client is established in multiple destination servers, which comprises
The first object server sends the instruction information of the first initial server to the client, wherein described first Initial server are as follows: be located at the initial server of the main TCP chain road in multiple initial servers;
The first object server receives the secondary TCP request for the foundation time TCP link that first initial server is sent, institute It states time TCP link and main TCP link belongs to same multi-path transmission control protocol MPTCP link;
The first object server is based on the secondary TCP request, and Xiang Suoshu client sends the response of the secondary TCP request.
13. a kind of data transmission system, which is characterized in that the data transmission system includes client, multiple initial servers With multiple destination servers,
First object server is used to send the instruction information of the first initial server to the client, wherein described first Initial server and the first object server are respectively positioned on the main transmission control protocol TCP chain road that the client is established, First initial server is any initial server in the multiple initial server;
The client is used to send the secondary TCP for establishing secondary TCP link to the second initial server according to the instruction information and asks It asks, wherein second initial server is any initial server in the multiple initial server, the secondary TCP chain Lu Yuzhu TCP link belongs to same multi-path transmission control protocol MPTCP link, carries the finger in the secondary TCP request Show information;
Second initial server is used for described first indicated by second initial server and the instruction information When initial server difference, the secondary TCP request is forwarded to first initial server;
First initial server is used to the secondary TCP request being forwarded to the first object server;
The first object server is used for based on the secondary TCP request is received, and Xiang Suoshu client sends the secondary TCP and asks The response asked.
14. system according to claim 13, which is characterized in that second initial server be used for the instruction When first initial server indicated by information is identical, the secondary TCP request is forwarded to the first object server.
15. system described in 3 or 14 according to claim 1, which is characterized in that the client is used to take in the first object Before business device sends the instruction information of the first initial server to the client, the first initial server of Xiang Suoshu, which is sent, to be established The main TCP of the main TCP link is requested;
First initial server is used to the main TCP request being forwarded to the first object server;
The first object server is used to send the response that the main TCP is requested to the client, the main TCP request Response carries the instruction information.
16. system according to claim 15, which is characterized in that the instruction information includes first initial server Mark, the multiple destination server is each equipped with the mark of the multiple initial server and the corresponding relationship of address;
First initial server is used to handle the main TCP request, so that treated, the main TCP request is taken Address with first initial server;
First initial server is used to send treated the main TCP request to the first object server;
The first object server is used to be used to send first to the client in the first object server and initially take It is engaged in front of the instruction information of device, obtains the address for first initial server that the main TCP request carries;
The first object server is used for address and the multiple initial server based on first initial server Mark and address corresponding relationship, determine the mark of first initial server.
17. system according to claim 15 or 16, which is characterized in that the instruction information includes the described first initial clothes The mark of business device, the multiple initial server is each equipped with the mark of the multiple initial server and the corresponding of address is closed System;
Second initial server is used to obtain the mark for first initial server that the secondary TCP request carries;
Second initial server is used for mark and the multiple initial server based on first initial server Mark and address corresponding relationship, determine the address of first initial server;
Second initial server is used for the address based on first initial server, and the secondary TCP request is sent to First initial server.
18. system according to claim 16 or 17, which is characterized in that the address of the initial server includes internet Protocol IP address.
19. 3 to 18 any system according to claim 1, which is characterized in that the secondary TCP request includes that address label is known Field, the address identification field carry the instruction information of first initial server.
20. 5 to 19 any system according to claim 1, which is characterized in that the main TCP request carries described The key of MPTCP, the secondary TCP request carry the token information for being used to indicate the key,
First initial server is used to that the main TCP request to be forwarded to first mesh in first initial server Before marking server, the corresponding relationship of the key and the first object server is established;
First initial server is used to that the secondary TCP request to be forwarded to first mesh in first initial server Before marking server, in the corresponding relationship of the key and the first object server, it is signified to search the token information The first object server corresponding to the key shown.
21. 5 to 20 any system according to claim 1, which is characterized in that the data transmission system further includes transfer Equipment;
The client is used to send the main TCP to first initial server by the relay device and request;
The client is used to according to the instruction information send time TCP to the second initial server by the relay device Request.
22. a kind of data transmission device, which is characterized in that for the client in data transmission system, the data transmission system System further include: multiple initial servers and multiple destination servers, described device include:
First receiving module, for receiving multiple initial services that first object server is sent in the multiple destination server The instruction information of first initial server in device, wherein the first object server and the equal position of the first initial server In the main transmission control protocol TCP chain road that the client is established;
Sending module, for being asked according to the instruction information to the secondary TCP that the second initial server sends foundation time TCP link It asks, wherein second initial server is any initial server in the multiple initial server, the secondary TCP chain Lu Yuzhu TCP link belongs to same multi-path transmission control protocol MPTCP link, carries the finger in the secondary TCP request Show information;
Second receiving module, for receiving the response for the secondary TCP request that the first object server is sent.
23. a kind of data transmission device, which is characterized in that for the third initial server in data transmission system, the number It include client, multiple initial servers and multiple destination servers according to Transmission system, the third initial server is described Any initial server in multiple initial servers, described device include:
Receiving module, the secondary TCP request of the foundation time TCP link for receiving other equipment transmission, wherein the other equipment It include: any server in the client or the multiple initial server in addition to the third initial server, institute It states and carries instruction information in time TCP request, and the instruction information is used to indicate in the multiple initial server and is located at institute The initial server of the main TCP chain road of client foundation is stated, the secondary TCP link and the main TCP link belong to same more Path transmission control protocol MPTCP link;
Forwarding module, when for the initial server difference indicated by the third initial server and the instruction information, The secondary TCP request is forwarded to initial server indicated by the instruction information.
24. a kind of data transmission device, which is characterized in that for the first object server in data transmission system, the number It include client, multiple initial servers and multiple destination servers according to Transmission system, the first object server is described It is located at the server for the main TCP chain road that the client is established in multiple destination servers, described device includes:
First sending module, for sending the instruction information of the first initial server to the client, wherein at the beginning of described first Beginning server are as follows: be located at the initial server of the main TCP chain road in multiple initial servers;
Receiving module, it is described secondary for receiving the secondary TCP request for the foundation time TCP link that first initial server is sent TCP link and main TCP link belong to same multi-path transmission control protocol MPTCP link;
Second sending module, for based on the secondary TCP request, Xiang Suoshu client to send the response of the secondary TCP request.
25. a kind of computer readable storage medium, which is characterized in that instruction is stored in the computer readable storage medium, When described instruction is run on computers, so that the computer executes the data as described in claim 10 to 12 is any and passes Transmission method.
CN201910639170.7A 2019-07-16 2019-07-16 Data transmission method, apparatus and system Pending CN110460641A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910639170.7A CN110460641A (en) 2019-07-16 2019-07-16 Data transmission method, apparatus and system
PCT/CN2020/102479 WO2021008591A1 (en) 2019-07-16 2020-07-16 Data transmission method, device, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910639170.7A CN110460641A (en) 2019-07-16 2019-07-16 Data transmission method, apparatus and system

Publications (1)

Publication Number Publication Date
CN110460641A true CN110460641A (en) 2019-11-15

Family

ID=68481295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910639170.7A Pending CN110460641A (en) 2019-07-16 2019-07-16 Data transmission method, apparatus and system

Country Status (2)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021008591A1 (en) * 2019-07-16 2021-01-21 华为技术有限公司 Data transmission method, device, and system
WO2021134860A1 (en) * 2019-12-30 2021-07-08 网宿科技股份有限公司 Load balancing method, device and system
WO2022042370A1 (en) * 2020-08-28 2022-03-03 华为技术有限公司 Mptcp load balancing method, medium and device
WO2022089245A1 (en) * 2020-11-02 2022-05-05 中兴通讯股份有限公司 Service transmission method, communication device and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120321008A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Cooperative data transport
CN106533937A (en) * 2016-11-01 2017-03-22 佛山科学技术学院 Multipath distributed message forwarding method and base station
CN107396396A (en) * 2017-05-31 2017-11-24 北京交通大学 Support the data transfer management method of multi-source multipath
CN108667880A (en) * 2017-03-31 2018-10-16 华为技术有限公司 A load balancing system, method and device
CN109088892A (en) * 2018-10-19 2018-12-25 网宿科技股份有限公司 Data transmission method, system and proxy server
CN109905849A (en) * 2014-08-19 2019-06-18 高通股份有限公司 Multicast is carried out to business using multi-connection
WO2019125483A1 (en) * 2017-12-22 2019-06-27 Nokia Technologies Oy Designs of an mptcp-aware load balancer and load balancer using the designs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10924533B2 (en) * 2015-04-01 2021-02-16 Telefonaktiebolaget Lm Ericsson (Publ) System, apparatus and method for load balancing
CN107846364A (en) * 2016-09-19 2018-03-27 阿里巴巴集团控股有限公司 A kind for the treatment of method and apparatus of message
CN108696557B (en) * 2017-04-11 2021-08-10 北京京东尚科信息技术有限公司 Information processing system, method and device
CN108768878A (en) * 2018-06-06 2018-11-06 北京奇艺世纪科技有限公司 A kind of SiteServer LBS, method, apparatus and load-balancing device
CN109510770B (en) * 2018-12-07 2021-05-04 北京金山云网络技术有限公司 Information synchronization method, device and processing device between load balancing nodes
CN110460641A (en) * 2019-07-16 2019-11-15 华为技术有限公司 Data transmission method, apparatus and system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120321008A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Cooperative data transport
CN109905849A (en) * 2014-08-19 2019-06-18 高通股份有限公司 Multicast is carried out to business using multi-connection
CN106533937A (en) * 2016-11-01 2017-03-22 佛山科学技术学院 Multipath distributed message forwarding method and base station
CN108667880A (en) * 2017-03-31 2018-10-16 华为技术有限公司 A load balancing system, method and device
CN107396396A (en) * 2017-05-31 2017-11-24 北京交通大学 Support the data transfer management method of multi-source multipath
WO2019125483A1 (en) * 2017-12-22 2019-06-27 Nokia Technologies Oy Designs of an mptcp-aware load balancer and load balancer using the designs
CN109088892A (en) * 2018-10-19 2018-12-25 网宿科技股份有限公司 Data transmission method, system and proxy server

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MING LI1, ANDREY LUKYANENKO1, SASU TARKOMA2, ANTTI YLÄ-JÄÄSKI1: "MPTCP Incast in Data Center Networks", 《CHINA COMMUNICATIONS》 *
REIDO HORIGOME,NAOYA KITAGAWA: "Alternating Primary Subflow in MPTCP by External Program without Kernel Modification", 《IEEE INTERNATIONAL CONFERENCE ON COMPUTER SOFTWARE & APPLICATIONS》 *
YANBING LIU, XIAOWEI QIN ∗, TING ZHU, XIAOHUI CHEN, GUOWEI: "Improve MPTCP with SDN: From the perspective of resource pooling", 《JOURNAL OF NETWORK AND COMPUTER APPLICATIONS》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021008591A1 (en) * 2019-07-16 2021-01-21 华为技术有限公司 Data transmission method, device, and system
WO2021134860A1 (en) * 2019-12-30 2021-07-08 网宿科技股份有限公司 Load balancing method, device and system
WO2022042370A1 (en) * 2020-08-28 2022-03-03 华为技术有限公司 Mptcp load balancing method, medium and device
CN114205301A (en) * 2020-08-28 2022-03-18 华为技术有限公司 MPTCP load balancing method, medium and device
WO2022089245A1 (en) * 2020-11-02 2022-05-05 中兴通讯股份有限公司 Service transmission method, communication device and storage medium
CN114531475A (en) * 2020-11-02 2022-05-24 中兴通讯股份有限公司 Service transmission method, communication equipment and storage medium

Also Published As

Publication number Publication date
WO2021008591A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
US10079803B2 (en) Peer-to-peer connection establishment using TURN
CN110351191B (en) Network configuration method, system, device and storage medium
US9674054B2 (en) Concept for providing information on a data packet association and for forwarding a data packet
CN101296238B (en) Method and equipment for remaining persistency of security socket layer conversation
US11223565B2 (en) Designs of an MPTCP-aware load balancer and load balancer using the designs
WO2021008591A1 (en) Data transmission method, device, and system
CN103597794B (en) For providing information about data array associations and for forwarding data array assumptions
WO2020248963A1 (en) Method and apparatus for establishing end-to-end network connection, and network system
CN102148767A (en) Network address translation (NAT)-based data routing method and device
US11419171B2 (en) Method for establishing subflow of multipath connection, apparatus, and system
CN106572132B (en) Distributed chain building method, device and system
CN107087023A (en) Data forwarding method and system
WO2023071522A1 (en) Connection establishment method and device, storage medium and electronic device
EP3364624A1 (en) A method of distributing a sub-flow associated with a session and a network apparatus
CN107483628B (en) One-way proxy method and system based on DPDK
US12316602B2 (en) Traffic management in data networks
CN115643646A (en) Data transmission method and device and electronic equipment
CN114205301A (en) MPTCP load balancing method, medium and device
KR20250057505A (en) Method and electronic device for load balancing in wireless access network
HK40009168A (en) Network configuration method, system, apparatus and storage medium
HK40009168B (en) Network configuration method, system, apparatus and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191115

RJ01 Rejection of invention patent application after publication