Externally initiated application session endpoint migration
First Claim
1. A method comprising:
- determining that an endpoint of an application communication session is to be migrated from a first host to a second host, wherein the application communication session uses a transport layer connection for a communications between the first host and a third host;
configuring, in a middlebox, a first network address translation rule to translate an address of the first host to an address of the second host for protocol data units associated with the transport layer connection and being transmitted to the first host from the third host;
configuring, in the middlebox, a second network address translation rule to translate the address of the second host to the address of the first host for protocol data units associated with the transport layer connection and being transmitted to the third host from the second host;
creating, in the middlebox, an acknowledgement message as if from the third host and with an acknowledgement number that is not expected by the first host;
transmitting the acknowledgment message to the first host;
after receipt of an acknowledgement message from the first host, creating a reset message as if from the third host, wherein the reset message is created with a sequence field set to an acknowledgment number indicated in the acknowledgement message from the first host; and
transmitting the reset message to the first host.
1 Assignment
0 Petitions
Accused Products
Abstract
In storage networks (e.g., SAN and NAS), various reasons can arise for migrating an application layer communication session endpoint to a different host. To achieve scalability and robustness, the migration can be enacted externally and carried out at a middlebox at the transport layer. When a migration is triggered to migrate an application layer communication session endpoint from a host A to a host B, the middlebox coordinates network address translation with a transport protocol reset mechanism to switch the connection to host B and close the connection on host A with minimal disruption to the non-migrating application layer communication session endpoint using the connection. At the application layer, the non-migrating application layer communication session endpoint will initiate a new connection in response to detecting the reset, and retry any operation that was aborted as a result of the connection switch.
-
Citations
20 Claims
-
1. A method comprising:
-
determining that an endpoint of an application communication session is to be migrated from a first host to a second host, wherein the application communication session uses a transport layer connection for a communications between the first host and a third host; configuring, in a middlebox, a first network address translation rule to translate an address of the first host to an address of the second host for protocol data units associated with the transport layer connection and being transmitted to the first host from the third host; configuring, in the middlebox, a second network address translation rule to translate the address of the second host to the address of the first host for protocol data units associated with the transport layer connection and being transmitted to the third host from the second host; creating, in the middlebox, an acknowledgement message as if from the third host and with an acknowledgement number that is not expected by the first host; transmitting the acknowledgment message to the first host; after receipt of an acknowledgement message from the first host, creating a reset message as if from the third host, wherein the reset message is created with a sequence field set to an acknowledgment number indicated in the acknowledgement message from the first host; and
transmitting the reset message to the first host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product, the computer program product comprising:
-
a non-transitory computer readable storage medium having program code embodied therewith, the program code comprising a program code to;
determine that an endpoint of an application layer communication session is to be migrated from a first host to a second host;determine whether the second host is associated with a transport layer connection already being used by the endpoint of the application layer communication session; if the second host is not associated with a transport layer connection already being used by endpoint of the application layer communication session, configure a first network address translation rule to translate an address of the first host to an address of the second host for protocol data units associated with the transport layer connection and being transmitted to the first host from a third host associated with the transport layer connection; configure a second network address translation rule to translate the address of the second host to the address of the first host for protocol data units associated with the transport layer connection and being transmitted to the third host from the second host; if the second host is associated with the transport layer connection already used by the endpoint of the application layer communication session, remove network address translation rules being applied to the transport layer connection; create an acknowledgement message as if from the third host and with an acknowledgement number that is not expected by the first host; cause transmission of the acknowledgment message to the first host;
after receipt of an acknowledgement message from the first host, create a reset message as if from the third host with a sequence field set to an acknowledgment number indicated in the acknowledgement message from the first host; andcause transmission of the reset message to the first host. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A network device comprising:
-
a processor; a plurality of network interfaces; and a computer readable storage medium having program code embodied therewith, the program code executable by the processor to cause the network device to, determine that an endpoint of an application layer communication session is to be migrated from a first host to a second host; determine whether the second host is associated with a transport layer connection already being used by the endpoint of the application layer communication session; if the second host is not associated with a transport layer connection already being used by the endpoint of the application layer communication session, configure a first network address translation rule to translate an address of the first host to an address of the second host for protocol data units associated with the transport layer connection and being transmitted to the first host from a third host; configure a second network address translation rule to translate the address of the second host to the address of the first host for protocol data units associated with the transport layer connection and being transmitted to the third host from the second host; if the second host is indicated as associated with a transport layer connection already being used by the endpoint of the application layer communication session, remove network address translation rules being applied to the transport layer connection; create an acknowledgement message as if from the third host and with an acknowledgement number that is not expected by the first host; cause transmission of the acknowledgment message to the first host via one of the plurality of network interfaces; after receipt of an acknowledgement message from the first host, create a reset message as if from the third host with a sequence field set to an acknowledgment number indicated in the acknowledgement message from the first host; and cause transmission of the reset message to the first host via one of the plurality of network interfaces. - View Dependent Claims (17, 18, 19, 20)
-
Specification