IP Library Granted Patent US 10,868,801
Granted Patent B2
US 10,868,801 · App. 16/216,652 · Granted Dec 15, 2020

Method and system for establishing connection

Inventors: Wenchao Wang (Beijing, CN); Chunhui Zhang (Hangzhou, CN); Yanming Cai (Hangzhou, CN); Ji Zhao (Beijing, CN)
Assignee: BANMA ZHIXING NETWORK (HONGKONG) CO., LIMITED
H04L63/0428H04L9/0869H04L9/3247H04L63/08H04L63/0876H04L63/0884H04L63/0892H04L67/02H04L67/141H04L67/146H04L67/26
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,868,801
App. No.
16/216,652
Granted
Dec 15, 2020
Kind
B2
Abstract

Establishing a connection is disclosed including acquiring an authentication code, sending data including the authentication code to a management server, receiving parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code, and establishing, using the parameter information, a channel to a connection server.

Claims (113)

1. A method, comprising:

acquiring, using a user device, an authentication code;

sending, using the user device, data including a unique ID of the user device and the authentication code to a management server, wherein the sending of the data including the unique ID of the user device and the authentication code to the management server comprises:

signing the unique ID of the user device, the authentication code, an application key, and an application secret; and

sending a signature value, the unique ID of the user device, the authentication code, and the application key to the management server, wherein the unique ID, a version, and a keyword are signed using the application key to obtain the signature value;

receiving, using the user device, parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code; and

establishing, using the parameter information, a channel to a connection server.

2. The method as described in claim 1 , wherein the acquiring of the authentication code comprises:

acquiring the authentication code from an identification server.

3. The method as described in claim 2 , wherein the acquiring of the authentication code comprises:

sending, using the user device, a unique ID of the user device to the identification server; and

receiving the authentication code for the unique ID of the user device sent back by the identification server.

4. The method as described in claim 1 , wherein the parameter information comprises:

connection parameters and a seed key for encrypting, decrypting, or both transmission data.

5. The method as described in claim 4 , wherein the connection parameters comprise:

a session ID (SID), an IP address of the connection server, a port number, or any combination thereof.

6. The method as described in claim 4 , wherein the establishing of the channel to the connection server comprises:

establishing, using the connection parameters, a TCP long connection to the connection server;

sending a channel connection request to the connection server;

receiving a channel connection confirmation sent back by the connection server to establish a cloud channel to the connection server; and

encrypting, decrypting, or both, using the seed key, data transmitted on the cloud channel.

7. The method as described in claim 1 , further comprising:

sending data on the channel asynchronously; and

receiving data on the channel asynchronously.

8. The method as described in claim 7 , wherein the receiving of the data on the channel asynchronously comprises:

receiving and reorganizing, using a finite state machine approach, data packets sent through the channel.

9. The method as described in claim 1 , further comprising:

analyzing data packets received through the channel; and

in the event that, based on the analysis of the data packets, the data packets include a push message, extracting application data from the data packets with a callback for processing by a higher-level business service module.

10. A method, comprising:

acquiring, using a user device, an authentication code;

sending, using the user device, data including the authentication code to a management server;

receiving, using the user device, parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code, wherein the parameter information comprises: connection parameters and a seed key for encrypting, decrypting, or both transmission data, wherein the receiving of the parameter information sent back by the management server comprises:

receiving a message sent back by the management server;

decrypting, using a unique ID of the user device, a message header of the received message to obtain the seed key; and

decrypting, using the seed key, a message body of the message to obtain the connection parameters; and

establishing, using the parameter information, a channel to a connection server.

11. A method, comprising:

acquiring, using a user device, an authentication code;

sending, using the user device, data including the authentication code to a management server;

receiving, using the user device, parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code;

establishing, using the parameter information, a channel to a connection server;

sending data on the channel asynchronously; and

receiving data on the channel asynchronously, comprising:

receiving and reorganizing, using a finite state machine approach, data packets sent through the channel, wherein the receiving and reorganizing of the data packets sent through the channel comprises:

entering a packet receiving and packet length unknown state in the event that, while in a normal received state, a protocol header and variable-length code have not been received in their entirety;

entering a packet receiving and packet length known state in the event that, while in the packet receiving and packet length unknown state, a full-length variable-length code is received and a data packet has not yet been received in its entirety;

entering a packet receiving completed state in the event that a new fragment is received and the variable length code and a data packet are both received in their entirety;

entering the packet receiving completed state in the event that, while in the packet receiving and packet length known state, a new fragment is received and the data packet is received in its entirety; and

while in the packet receiving completed state, reorganizing each fragment belonging to the data packet and entering the normal received state.

12. A method, comprising:

receiving, using a management server, data including an authentication code sent by a user device, wherein the data including the authentication code further comprises: a unique ID information of the user device, an application key, and signature information;

conducting, using the data including the authentication code, an authentication, comprising:

sending the unique ID information of the user device and the authentication code to an identification server;

acquiring back from the identification server an authentication result for the authentication code;

determining a locally maintained application secret (appsecret) corresponding to the application key;

checking, using the appsecret, the unique ID information of the user device, the authentication code, and the application key, the signature information sent by the user device; and

determining that the authentication fails in the event that the check fails; and

after conducting a successful authentication, sending back, to the user device, parameter information for establishing a channel to help the user device establish the channel to a connection server.

13. The method as described in claim 12 , wherein:

the conducting of the authentication further comprises:

sending the unique ID information of the user device to the identification server;

acquiring back, from the identification server, the authentication code corresponding to the unique ID information; and

verifying, using the authentication code acquired from the identification server, the authentication code sent by the user device.

14. The method as described in claim 12 , wherein the parameter information comprises:

connection parameters and a seed key for encrypting, decrypting, or both transmission data.

15. The method as described in claim 14 , wherein the connection parameters comprise:

a session ID (SID), an IP address of the connection server, a port number, or any combination thereof.

16. A system, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

acquire an authentication code;

send data including a unique ID of user device and the authentication code to a management server, wherein the sending of the data including the unique ID of the user device and the authentication code to the management server comprises to:

sign the unique ID of the user device, the authentication code, an application key, and an application secret; and

send a signature value, the unique ID of the user device, the authentication code, and the application key to the management server, wherein the unique ID, a version, and a keyword are signed using the application key to obtain the signature value;

receive parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code; and

establish, using the parameter information, a channel to a connection server.

17. A system, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

acquire an authentication code;

send data including the authentication code to a management server;

receive parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code, wherein the parameter information comprises: connection parameters and a seed key for encrypting, decrypting, or both transmission data, wherein the receiving of the parameter information sent back by the management server comprises to:

receive a message sent back by the management server;

decrypt, using a unique ID of user device, a message header of the received message to obtain the seed key; and

decrypt, using the seed key, a message body of the message to obtain the connection parameters; and

establish, using the parameter information, a channel to a connection server.

18. A system, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

acquire, using a user device, an authentication code;

send, using the user device, data including the authentication code to a management server;

receive, using the user device, parameter information sent back by the management server after the management server performed a successful authentication using the data including the authentication code;

establish, using the parameter information, a channel to a connection server;

send data on the channel asynchronously; and

receive data on the channel asynchronously, comprising to:

receive and reorganize, using a finite state machine approach, data packets sent through the channel, wherein the receiving and reorganizing of the data packets sent through the channel comprises to:

enter a packet receiving and packet length unknown state in the event that, while in a normal received state, a protocol header and variable-length code have not been received in their entirety;

enter a packet receiving and packet length known state in the event that, while in the packet receiving and packet length unknown state, a full-length variable-length code is received and a data packet has not yet been received in its entirety;

enter a packet receiving completed state in the event that a new fragment is received and the variable length code and a data packet are both received in their entirety;

enter the packet receiving completed state in the event that, while in the packet receiving and packet length known state, a new fragment is received and the data packet is received in its entirety; and

while in the packet receiving completed state, reorganize each fragment belonging to the data packet and entering the normal received state.

19. A system, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

receive, using a management server, data including an authentication code sent by a user device, wherein the data including the authentication code further comprises: a unique ID information of the user device, an application key, and signature information;

conduct, using the data including the authentication code, an authentication, comprising to:

send the unique ID information of the user device and the authentication code to an identification server;

acquire back from the identification server an authentication result for the authentication code;

determine a locally maintained application secret (appsecret) corresponding to the application key;

check, using the appsecret, the unique ID information of the user device, the authentication code, and the application key, the signature information sent by the user device; and

determine that the authentication fails in the event that the check fails; and

after conducting a successful authentication, send back, to the user device, parameter information for establishing a channel to help the user device establish the channel to a connection server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2020
From: ALIBABA GROUP HOLDING LIMITED
To: BANMA ZHIXING NETWORK (HONGKONG) CO., LIMITED
Reel/Frame 054384/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2019
From: WANG, WENCHAO; ZHANG, CHUNHUI; CAI, YANMING; ZHAO, JI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048485/0109 →
Continuity (2)
Continuation In Part PCTCN2017086914 · Jun 2, 2017
Related Publication 20190182223A1 · Jun 13, 2019