Patent ID: 9591085
Date: 2017-03-07
CPC Classifications: H04L

Claim:
1. A method implemented in a computer system for migrating communication between a client device and a first server to communication between the client device and a second server, the method comprising: communicating between the client device and the first server via a first communication session, wherein the first communication session has associated therewith at least one communication state; determining, by the client device, the at least one communication state; sending by the client device, to the second server, an identification of the at least one communication state that was determined by the client device, wherein the identification of the at least one communication state that was determined by the client device is sent in a packet that has a reserved 1-bit flag in a TCP header set so as to identify the packet as distinguishable with respect to the information contained therein, and wherein the packet includes both a TCP state associated with a TCP protocol and an application state associated with an application layer, said application state includes information regarding data segments in the application layer that client device is currently expecting to receive but has not yet received including an identification of an application data object and an offset position of the application data object expected to be received in the number of bytes from a beginning of a downloaded object, said application data object offset position being included in a TCP payload of the packet; and communicating between the client device and the second server via a second communication session, wherein the second communication session is based at least in part upon the identification of the at least one communication state that was sent by the client device to the second server, wherein the communication is migrated from between the client device and the first server to between the client device and the second server as a result of at least one of: (a) load-balancing; and (b) a virtual machine process.