IP Library Granted Patent US 11,902,353
Granted Patent B2
US 11,902,353 · App. 18/055,235 · Granted Feb 13, 2024

Proxy-enabled communication across network boundaries by self-replicating applications

Inventors: Akeem Jenkins (Broomfield, CO); Sean Huntley (NSW, AU); Marc Wayne Brotherson (Boulder, CO)
Assignee: VMware, Inc.
H04L67/02H04L12/4633H04L67/1095H04L67/561
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 11,902,353
App. No.
18/055,235
Granted
Feb 13, 2024
Kind
B2
Abstract

The disclosure provides an approach for cross-network communication by self-replicating applications. Embodiments include identifying, by a first instance of a self-replicating application on a first computing device having a first network connection to a parent component, a second computing device that is connected to the first computing device via a second network connection. Embodiments include self-replicating, by the first instance of the self-replicating application, across the second network connection to produce a second instance of the self-replicating application on the second computing device. Embodiments include initiating, by the first instance of the self-replicating application, a proxy tunnel on the first computing device. Embodiments include receiving, by the proxy tunnel, a first communication from the second instance of the self-replicating application via the second network connection. Embodiments include sending, by the proxy tunnel, based on the first communication, a second communication to the parent component via the first network connection.

Claims (54)

1. A method of cross-network communication by self-replicating applications, comprising:

receiving, by a second instance of a self-replicating application on a second computing device, from a first instance of the self-replicating application on a first computing device, information related to a proxy tunnel on the first computing device, wherein the first computing device and the second computing device are connected via a first network, and wherein the proxy tunnel is connected to a parent component via a second network;

attempting, by the second instance of the self-replicating application, to communicate directly with the parent component; and

upon determining that the second instance of the self-replicating application cannot communicate directly with the parent component, sending, by the second instance of the self-replicating application, a first communication to the proxy tunnel via the first network using the information related to the proxy tunnel, wherein the proxy tunnel sends a second communication to the parent component via the second network based on the first communication.

2. The method of claim 1 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises forwarding, by the proxy tunnel, the first communication to the parent component.

3. The method of claim 1 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises transforming the first communication based on one or more conditions related to the second network in order to produce the second communication.

4. The method of claim 1 , wherein:

the first communication is sent by the second instance of the self-replicating application using a first protocol; and

the second communication is sent by the proxy tunnel using a second protocol different from the first protocol.

5. The method of claim 1 , wherein the proxy tunnel is configured to forward traffic received at a first port to a second port.

6. The method of claim 1 , further comprising:

self-replicating, by the second instance of the self-replicating application, across a third network connection to produce a third instance of the self-replicating application on a third computing device;

determining, by the third instance of the self-replicating application, that the third instance of the self-replicating application is able to communicate directly with the parent component; and

sending, by the third instance of the self-replicating application, a third communication directly to the parent component.

7. The method of claim 1 , further comprising determining, by the second instance of the self-replicating application, to send the first communication to the proxy tunnel rather than sending the first communication to an alternative endpoint based on or more of:

a number of network hops;

resource utilization;

one or more security controls; or

instructions from a centralized management component for the self-replicating application.

8. A system for cross-network communication by self-replicating applications, comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor and the at least one memory configured to:

receive, by a second instance of a self-replicating application on a second computing device, from a first instance of the self-replicating application on a first computing device, information related to a proxy tunnel on the first computing device, wherein the first computing device and the second computing device are connected via a first network, and wherein the proxy tunnel is connected to a parent component via a second network;

attempt, by the second instance of the self-replicating application, to communicate directly with the parent component; and

upon determining that the second instance of the self-replicating application cannot communicate directly with the parent component, send, by the second instance of the self-replicating application, a first communication to the proxy tunnel via the first network using the information related to the proxy tunnel, wherein the proxy tunnel sends a second communication to the parent component via the second network based on the first communication.

9. The system of claim 8 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises forwarding, by the proxy tunnel, the first communication to the parent component.

10. The system of claim 8 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises transforming the first communication based on one or more conditions related to the second network in order to produce the second communication.

11. The system of claim 8 , wherein:

the first communication is sent by the second instance of the self-replicating application using a first protocol; and

the second communication is sent by the proxy tunnel using a second protocol different from the first protocol.

12. The system of claim 8 , wherein the proxy tunnel is configured to forward traffic received at a first port to a second port.

13. The system of claim 8 , wherein the at least one processor and the at least one memory are further configured to:

self-replicate, by the second instance of the self-replicating application, across a third network connection to produce a third instance of the self-replicating application on a third computing device;

determine, by the third instance of the self-replicating application, that the third instance of the self-replicating application is able to communicate directly with the parent component; and

send, by the third instance of the self-replicating application, a third communication directly to the parent component.

14. The system of claim 8 , wherein the at least one processor and the at least one memory are further configured to determine, by the second instance of the self-replicating application, to send the first communication to the proxy tunnel rather than sending the first communication to an alternative endpoint based on or more of:

a number of network hops;

resource utilization;

one or more security controls; or

instructions from a centralized management component for the self-replicating application.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

receive, by a second instance of a self-replicating application on a second computing device, from a first instance of the self-replicating application on a first computing device, information related to a proxy tunnel on the first computing device, wherein the first computing device and the second computing device are connected via a first network, and wherein the proxy tunnel is connected to a parent component via a second network;

attempt, by the second instance of the self-replicating application, to communicate directly with the parent component; and

upon determining that the second instance of the self-replicating application cannot communicate directly with the parent component, send, by the second instance of the self-replicating application, a first communication to the proxy tunnel via the first network using the information related to the proxy tunnel, wherein the proxy tunnel sends a second communication to the parent component via the second network based on the first communication.

16. The non-transitory computer-readable medium of claim 15 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises forwarding, by the proxy tunnel, the first communication to the parent component.

17. The non-transitory computer-readable medium of claim 15 , wherein the proxy tunnel sending the second communication to the parent component via the second network based on the first communication comprises transforming the first communication based on one or more conditions related to the second network in order to produce the second communication.

18. The non-transitory computer-readable medium of claim 15 , wherein:

the first communication is sent by the second instance of the self-replicating application using a first protocol; and

the second communication is sent by the proxy tunnel using a second protocol different from the first protocol.

19. The non-transitory computer-readable medium of claim 15 , wherein the proxy tunnel is configured to forward traffic received at a first port to a second port.

20. The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to:

self-replicate, by the second instance of the self-replicating application, across a third network connection to produce a third instance of the self-replicating application on a third computing device;

determine, by the third instance of the self-replicating application, that the third instance of the self-replicating application is able to communicate directly with the parent component; and

send, by the third instance of the self-replicating application, a third communication directly to the parent component.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2022
From: JENKINS, AKEEM; HUNTLEY, SEAN; BROTHERSON, MARC WAYNE
To: VMWARE, INC.
Reel/Frame 061762/0484 →
Continuity (2)
Continuation 17308696 · May 5, 2021
Related Publication 20230078581A1 · Mar 16, 2023