IP Library Granted Patent US 10,181,963
Granted Patent B2
US 10,181,963 · App. 15/169,060 · Granted Jan 15, 2019

Data transfer method and system

Inventors: Feihu Zhou (Shenzhen, CN); Liqiang Xie (Shenzhen, CN); Yingpai Song (Shenzhen, CN)
Assignee: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
H04L12/6418H04L45/72H04L47/193
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,181,963
App. No.
15/169,060
Granted
Jan 15, 2019
Kind
B2
Abstract

The present disclosure relates to a method and a device for transferring data between multiple clients and a destination node. The method includes: receiving request data sent by the plurality of clients, adding a unique label to the request data sent by each client, and sending the labeled request data to the second node; removing the labels from the request data, and sending the request data with the labels removed to the destination node for processing; receiving processing result data returned by the destination node, adding unique labels to the processing result data, and returning the processing result data with the labels to the first node; removing the labels from the processing result data and returning the processing result data with the labels removed to the clients corresponding to the labels.

Claims (92)

1. A method for transferring data between a plurality of clients and a destination node, wherein at least a first node and a second node are situated between the plurality of clients and the destination node, comprising:

adjusting system TCP parameters of the first node, the second node, and the destination node, wherein:

ip_local_port_range is set to a maximum value;

a conntrack module of a firewall is uninstalled;

a maximum port backlog is set to a maximum value;

a syncookie function is enabled;

tcp_max_orphans is set to four times an actual maximum number of connections; and

file-max and nr_open are set to values that are greater than a number of connections that a single unit needs to support;

receiving, by a processor of the first node, request data sent by the plurality of clients, adding a unique label to the request data sent by each of the plurality of client, and sending the labeled request data to the second node by using a first connection channel;

removing, by a processor of the second node, the unique label from the request data corresponding to each of the plurality of clients, and sending the request data with the unique label removed to the destination node for processing;

receiving, by the processor of the second node, the result data returned by the destination node corresponding to the request data, adding the unique label to the result data, and returning the result data with the unique label to the first node by using the first connection channel; and

removing, by the first node, the unique label from the result data and returning the result data with the unique label removed to the plurality of clients corresponding to the unique label.

2. The method of claim 1 , wherein the first connection channel is a persistent connection based on a Transmission Control Protocol (TCP).

3. The method of claim 1 , wherein the receiving the request data sent by the plurality clients comprises:

establishing the first connection channel between the first node and the second node; and

receiving, by the first node with the processor, the request data sent by each of the plurality of clients by using one of the plurality of second connection channels.

4. The method of claim 3 , wherein:

the plurality of second connection channels that are established between the first node and the plurality of clients comprise at least one of: a TCP persistent connection or a TCP non-persistent connection.

5. The method of claim 1 , wherein the sending the request data with the unique label removed to the destination node for processing comprises:

establishing a plurality of third connection channels between the second node and the destination node, and

sending, by the second node with the processor, the request data corresponding to each of the plurality of clients to the destination node by using one of the plurality of third connection channels.

6. The method of claim 5 , wherein the establishing the plurality of third connection channels comprises at least one of: a TCP persistent connection or a TCP non-persistent connection.

7. The method of claim 5 , wherein:

the receiving, by the first node with the processor, the request data sent by the plurality of clients comprises:

establishing a plurality of TCP persistent connections between the first node and the plurality of clients, and

receiving, by the first node with the processor, the request data sent by each of the plurality of clients by using one of the plurality of TCP persistent connections; and

the sending the request data with the unique label removed to the destination node for processing comprises:

establishing a plurality of TCP non-persistent connections between the second node and the destination node, and

sending, by the processor of the second node, the request data corresponding to each of the plurality of clients to the destination node by using one of the plurality of TCP non-persistent connections.

8. The method of claim 1 , wherein the unique label is added as a packet header to the request data or to the processing result data.

9. The method of claim 1 , wherein the removing the unique label from the request data corresponding to each of the plurality of client further comprises:

reading, by the second node with the processor, the unique label in the request data corresponding to each of the plurality of clients;

searching the unique label locally;

when the unique label is found, sending, by the second node with the processor, the request data with the unique label removed directly to the destination node; and

when the unique label is not found, registering, by the second node with the processor, a client corresponding to the unique label locally and sending the request data with the unique label removed to the destination node.

10. The method of claim 9 , further comprising:

before the reading the unique label in the request data corresponding to each of the plurality of clients, verifying integrity of the request data.

11. The method of claim 1 , wherein:

a first distance between the first node and the plurality of clients is smaller than a first threshold,

a second distance between the first node and the second node is greater than a second threshold, and

a third distance between the second node and the destination node is smaller than a third threshold, wherein the third threshold is greater than the first threshold and the second threshold.

12. A data transfer system used for transferring data between multiple clients and a destination node, comprising a first node and a second node, wherein:

the first node having one or more processors coupled with a memory is used to:

generate a unique label for each of the multiple clients when multiple second connection channels are established between the first node and the multiple clients, wherein the unique label comprises a character string,

receive request data sent by the multiple clients,

add the unique label to the request data sent by each of the multiple client, and

send the labeled request data to the second node by using a first connection channel;

the second node having one or more processors coupled with a memory is used to:

remove the unique label from the request data corresponding to each of the multiple clients,

send the request data with the unique label removed to the destination node for processing,

receive result data returned by the destination node corresponding to the request data,

add the unique label to the result data, and

return the result data with the unique label to the first node by using the first connection channel;

the first node is used to:

remove the unique label from the result data, and

return the result data with the unique label removed to the client corresponding to the label; and

the first node, the second node, and the destination node are used to:

set ip_local_port_range to a maximum value,

connect a conntrack module of the firewall,

set a maximum port backlog to a maximum value,

enable a syncookie function,

set tcp_max_orphans to four times an actual maximum number of connections, and

set file-max and nr_open to values that are greater than a number of connections that a single unit needs to support.

13. The system of claim 12 , wherein the first connection channel is a TCP persistent connection.

14. The system of claim 13 , wherein:

the first node is further used to:

establish multiple TCP persistent connections between the first node and the multiple clients, and

receive the request data sent by each of the multiple clients by using one of the multiple TCP persistent connections; and

the second node is further used to:

establish multiple TCP non-persistent connections between the second node and the destination node, and

send the request data corresponding to each of the multiple clients to the destination node by using the one of multiple TCP non-persistent connections.

15. The system of claim 12 , wherein, when the first node is used to receive the request data sent by the multiple clients, the first node is used to:

establish the first connection channel between the first node and the second node; and

receive the request data sent by each of the multiple clients by using one of the multiple second connection channels.

16. The system of claim 15 , wherein the multiple second connection channels established between the first node and the multiple clients comprise at least one of: a TCP persistent connection or a TCP non-persistent connection.

17. The system of claim 12 , wherein the second node is used to:

establish the first connection channel between the first node and the second node;

establish a plurality of third connection channels between the second node and the destination node;

by using the first connection channel, receive the labeled request data sent by the first node;

receive the result data returned by the one of the multiple third connection channels that corresponds to the request data; and

send the request data corresponding to each of the multiple clients to the destination node by using one of the multiple third connection channels.

18. The system of claim 17 , wherein the multiple third connection channels established between the second node and the destination node comprises at least one of: a TCP persistent connection or a TCP non-persistent connection.

19. The system of claim 12 , wherein the unique label is added as a packet header to the request data or to the processing result data.

20. The system of claim 12 , wherein the second node is further used to:

read the unique label in the request data corresponding to each of the multiple clients,

search the unique label locally,

when the unique label is found, send the request data with the unique label removed to the destination node directly, and

when the unique label is not found, register a client corresponding to the unique label locally and then send the request data with the unique label removed to the destination node.

21. The system of claim 20 , wherein the second node is further used to verify the integrity of the request data.

22. The system of claim 12 , wherein:

a first distance between the first node and the multiple clients is smaller than a first threshold, a second distance between the first node and the second node is greater than the second threshold, and

a third distance between the second node and the destination node is smaller than a third threshold, wherein the second threshold is greater than the first threshold and the second threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: ZHOU, FEIHU; XIE, LIQIANG; SONG, YINGPAI
To: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
Reel/Frame 038759/0337 →
Priority Claims (1)
CN 2013 1 0745744 · Dec 30, 2013 · national
Continuity (2)
Continuation PCTCN2014095215 · Dec 27, 2014
Related Publication 20160277215A1 · Sep 22, 2016
Cited By (1)
US 12,531,809