IP Library Granted Patent US 12,041,028
Granted Patent B2
US 12,041,028 · App. 17/879,368 · Granted Jul 16, 2024

System and method for optimizing computing resources and data flow in networks

Inventors: David Brockhaus (Madison, AL); Hongbo Liu (Huntsville, AL); Agustin Roca (Huntsville, AL); Joerg Weedermann (Santa Clara, CA); Donald Sturgeon (Huntsville, AL)
Assignee: Vertiv IT Systems, Inc.
H04L61/256G06F3/023G06F3/038H04L12/4641
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 12,041,028
App. No.
17/879,368
Granted
Jul 16, 2024
Kind
B2
Abstract

A system and method for optimizing processing of keyboard/video/mouse (KVM) data in an internet protocol (IP) network environment receives via public interface access requests from users directed to KVM targets. The system includes a public and private virtual local area network (VLAN) linked by a bonded interface and general-purpose and optimized application containers. The general-purpose container initiates a KVM session and creates a network address translation (NAT) route (associated with an IP address visible to the user) and a dedicated interface via which the user may send KVM data directly and through the optimized application container, which prioritizes KVM data so it can pass without preemption through the private VLAN and to its intended KVM target in real-time or near real-time. The NAT route and external IP address may be reused for multiple access sessions to different KVM targets from the same user.

Claims (103)

1. A system comprising:

a plurality of keyboard, video, and mouse (KVM) targets;

a public interface communicatively coupled to a public virtual local area network (VLAN);

a private interface communicatively coupled to a private VLAN;

a bonded interface configured to communicatively couple the public VLAN and the private VLAN;

a general-purpose application container communicatively coupled to the public VLAN and the private VLAN, wherein the general-purpose application container is configured to:

process session configuration data;

and

create a network address translation (NAT) route between the public VLAN and the private VLAN;

and

a second application container communicatively coupled to the public VLAN and the private VLAN, wherein the second application container is configured to:

process KVM data;

prioritize the processing of the KVM data above all other data streams;

and

route the KVM data to each KVM target of the plurality of KVM targets via a dedicated interface corresponding to the KVM target, the dedicated interface bypassing the general-purpose application container.

2. The system of claim 1 , wherein the system is embodied in two or more processors distributed among two or more communicatively coupled KVM devices within a KVM environment.

3. The system of claim 1 , wherein the general-purpose application container is configured to preempt the KVM data in favor of one or more higher priority data streams.

4. A keyboard, video, and mouse (KVM) switching device, comprising:

one or more private interfaces configured for connecting the KVM switching device to one or more target devices via at least one routing device;

one or more public interfaces configured for connecting one or more users to the KVM switching device, the one or more public interfaces configured to receive from the one or more users at least one KVM access request associated with a target device;

a plurality of processing cores operatively coupled to the one or more private and public interfaces, the plurality of processing cores including at least one first processing core comprising:

a public virtual local area network (VLAN) communicatively coupled to the one or more public interfaces;

a private VLAN communicatively coupled to the one or more private interfaces;

a bonded interface communicatively coupling the public and private VLAN;

at least one general application container communicatively coupled to the public VLAN and the private VLAN;

and

at least one second application container communicatively coupled to the public VLAN and the private VLAN;

the at least one general application container configured to:

initiate a KVM session associated with the KVM access request, the KVM session configured for connecting the requesting user to the requested target device;

create a network address translation (NAT) route between the public VLAN and the private VLAN and associated with the KVM session, the NAT route associated with an address of the routing device connecting the KVM switching device to the target device;

and

establish a dedicated interface associated with the KVM session, the dedicated interface configured for 1) connecting the requesting user to the private VLAN via at least one of the second application container and the bonded interface and for 2) bypassing the at least one general application container;

and

the at least one second application container configured to:

receive from the user, via the dedicated interface, KVM data associated with the KVM session;

prioritize the processing of the received KVM data above all other data streams;

and

route the KVM data to the requested target device via the dedicated interface bypassing the general-purpose application container.

5. The KVM switching device of claim 3 , wherein the access request is a first access request, the target device is a first target device, the address is a first address, and the KVM session is a first KVM session, wherein:

the at least one general application container is configured to:

receive from the requesting user a second KVM access request associated with a second target device;

and

initiate a second KVM session associated with the second access request, the second KVM session configured for connecting the requesting user to the second target device;

and

the at least one second application container is configured to:

receive from the user, via the dedicated interface, second KVM data associated with the second KVM session;

assign a maximum priority level to the received second KVM data;

and

route the second KVM data to the second KVM target device via the NAT route.

6. The KVM switching device of claim 5 , wherein the at least one general application container is configured to:

delete the NAT route associated with the first KVM session;

and

re-use the NAT route for the second KVM session.

7. The KVM switching device of claim 4 , wherein the user is a first user, the access request is a first access request, the NAT route associated with an address is a first NAT route associated with a first address, and the KVM session is a first KVM session, wherein:

the at least one general application container is configured to:

receive from a second user a second KVM access request corresponding to a KVM target device;

initiate a second KVM session corresponding to the second KVM access request;

and

create a second NAT route between the public VLAN and the private VLAN and corresponding to the second KVM session, the second NAT route associated with a second address;

and

the at least one second application container is configured to:

receive from the user, via the dedicated interface, second KVM data associated with the second KVM session;

assign a maximum priority level to the received second KVM data;

and

route the second KVM data to the requested KVM target device via the second NAT route.

8. The KVM switching device of claim 7 , wherein the at least one general application container is configured to delete the first NAT route.

9. The KVM switching device of claim 7 , wherein:

the first address is visible to the first user;

and

the second address is visible to the second user.

10. The KVM switching device of claim 4 , wherein the address of the routing device is visible to the requesting user.

11. The KVM switching device of claim 4 , wherein:

the at least one general application container is not configured to prioritize the KVM data by assigning the maximum priority level to the KVM data.

12. A method for processing keyboard/video/mouse (KVM) data, the method comprising:

receiving, via a public interface of a KVM device, an access request from a user, the access request associated with a KVM target device, the public interface communicatively coupled to a public virtual local area network (VLAN), the public VLAN communicatively coupled to a general application container, the public VLAN communicatively coupled to a private VLAN via a bonded interface;

initiating, via the general application container, a KVM session associated with the access request, the KVM session configured for connecting the user to the KVM target device via a routing device communicatively coupled to the private VLAN via at least one private interface;

creating, via the general application container, a network address translation (NAT) route between the public and private VLAN and associated with the KVM session, the NAT route associated with an address of the routing device, the address visible to the user;

establishing, via the general application container, a dedicated interface associated with the KVM session, the dedicated interface configured for connecting the user to the private VLAN via the bonded interface and a second application container and for bypassing the general application container;

receiving, at the second application container and via the dedicated interface, KVM data from the user, the KVM data associated with the KVM session;

assigning, via the second application container, a maximum priority level to the received KVM data;

and

routing, via the second application container, the KVM data to the KVM target device via the dedicated interface.

13. The method of claim 12 , wherein the access request is a first access request, the KVM target device is a first KVM target device, the KVM session is a first KVM session, and the routing device is a first routing device, further comprising:

receiving, via the general application container, a second access request from the user, the second access request corresponding to a second KVM target device;

initiating, via the general application container, a second KVM session associated with the second access request, the second KVM session configured for connecting the user to the second KVM target device via a second routing device;

receiving from the user, via the second application container and through the dedicated interface, second KVM data associated with the second KVM session;

assigning, via the second application container, a maximum priority level to the second KVM data;

and

routing, via the second application container, the second KVM data to the second KVM target device via the NAT route.

14. The method of claim 13 , wherein initiating, via the general application container, a second KVM session associated with the second access request includes:

deleting the NAT route associated with the first KVM session;

and

re-using the NAT route for the second KVM session.

15. The method of claim 12 , wherein the user is a first user, the access request is a first access request, the KVM session is a first KVM session, and the NAT route associated with an address is a first NAT route associated with a first address, further comprising:

receiving, via the general application container, a second access request from a second user, the second access request associated with a KVM target device;

initiating, via the general application container, a second KVM session associated with the second access request;

creating, via the general application container, a second NAT route between the public and private VLAN and associated with the second KVM session, the second NAT route associated with a second address of a routing device;

receiving from the user, via the second application container and through the dedicated interface, second KVM data associated with the second KVM session;

assigning, via the second application container, a maximum priority level to the second KVM data;

and

routing, via the second application container, the second KVM data to the second KVM target device via the second NAT route.

16. The method of claim 15 , further comprising:

deleting, via the general application container, the first NAT route.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2024
From: VERTIV IT SYSTEMS, INC.
To: VERTIV CORPORATION
Reel/Frame 069695/0620 →
PATENT SECURITY AGREEMENT (TERM) Recorded Feb 15, 2024
From: VERTIV CORPORATION; VERTIV IT SYSTEMS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066601/0398 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2022
From: BROCKHAUS, DAVID; LIU, HONGBO; ROCA, AGUSTIN; WEEDERMANN, JOERG; STURGEON, DONALD
To: VERTIV IT SYSTEMS, INC.
Reel/Frame 061290/0634 →