Systems and methods for optimizing compute resources and data flow in a network

CN117795928BActive Publication Date: 2026-10-09VERTIV IT SYST INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202280054480.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-08-03
Filing Date
2022-08-02
Publication Date
2026-10-09
Estimated Expiration
2042-08-02

AI Technical Summary

Technical Problem

传统网络采用复杂的硬件设备来路由KVM传输,但是这种系统受到其采用过高的成本和有限的适应性的限制

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117795928B_ABST
    Figure CN117795928B_ABST
Patent Text Reader

Abstract

A system and method for optimizing keyboard / video / mouse (KVM) data processing in an Internet Protocol (IP) network environment receives a request for access to a KVM target from a user via a public interface. The system includes public and private virtual local area networks (VLANs) linked by a binding interface and general and optimized application containers. The general container initiates a KVM session and creates a network address translation (NAT) route (which is associated with an IP address visible to the user) and a private interface via which the user can send KVM data directly through the optimized application container, which prioritizes the KVM data such that it can be delivered in real-time or near real-time to its intended KVM target over the private VLAN without preemption. The NAT route and external IP address can be reused for multiple access sessions from the same user to different KVM targets.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 228,941, filed August 3, 2021, and U.S. Non-Provisional Patent Application Serial No. 17 / 879,368, filed August 2, 2022, the entire contents of which are incorporated herein by reference. Technical Field

[0003] This disclosure generally relates to data flow in a network, and more specifically to computational resources and data flow for optimizing keyboard, video, and mouse (KVM) data in a network. Background Technology

[0004] When using network computing data, the server receives keyboard and mouse signals from the client, processes those signals using applications on the server, creates video signals based on the signals and the application, and transmits the video signals back to the client for display at the client's workstation. In this way, client users can communicate with the server using input from the client to access the server's services and receive appropriate video information generated by the client's requests and the server's responses.

[0005] Using keyboard, mouse, and video (KVM) transport, customers want to access end-point targets efficiently, while those managing the network want to ensure network security and adherence to appropriate access control protocols. Traditional networks employ complex hardware to route KVM transports, but such systems are limited by their high cost and limited adaptability.

[0006] Therefore, it may be advantageous for a system or method to overcome the shortcomings of the aforementioned traditional methods. Summary of the Invention

[0007] Embodiments of the inventive concepts disclosed herein pertain to a system and method for optimizing keyboard / video / mouse (KVM) data processing in an Internet Protocol (IP) network environment. For example, the system receives access requests from a user to a KVM target via a public interface. The system includes public and private Virtual Local Area Networks (VLANs) linked by bound interfaces, as well as 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. The user can directly send KVM data via the dedicated interface through the private VLAN and the optimized application container. The optimized application container prioritizes the KVM data, enabling it to be delivered to its intended KVM target in real-time or near real-time via the private VLAN without preemption. The NAT route and external IP address can be reused for multiple access sessions from the same user to different KVM targets.

[0008] It should be understood that the foregoing general description and the following detailed description are merely exemplary and illustrative, and do not necessarily limit this disclosure. The accompanying drawings, incorporated in and forming a part of this specification, illustrate the subject matter of this disclosure. Specification and Appendices Figure 1 It serves to explain the principles of this disclosure. Attached Figure Description

[0009] Specific embodiments are described with reference to the accompanying drawings. The same reference numerals used in different instances of the specification and drawings may indicate similar or identical items. Various embodiments or examples (“Examples”) of this disclosure are disclosed in the following detailed description and drawings. The drawings are not necessarily drawn to scale. Generally, unless otherwise specified in the claims, the operations of the disclosed processes can be performed in any order. In the drawings:

[0010] Figure 1 This is a block diagram illustrating a keyboard, video, and mouse (KVM) data processing environment according to an example embodiment of the present disclosure;

[0011] Figure 2 It is shown that it is used in Figure 1 A block diagram of a system that processes KVM data within a KVM processing environment;

[0012] Figure 3A and Figure 3B It is shown Figure 2 A block diagram of the system's KVM access request operations; and

[0013] Figures 4A to 4D This is a flowchart illustrating a method for optimizing KVM data processing according to an example embodiment of the present disclosure. Detailed Implementation

[0014] Before explaining one or more embodiments of this disclosure in detail, it should be understood that the embodiments are not limited in their application to the details of construction and the arrangement of components or steps or methods set forth in the following description or shown in the accompanying drawings. Many specific details may be set forth in the following detailed description of the embodiments to provide a more thorough understanding of this disclosure. However, it will be apparent to those skilled in the art who will benefit from this disclosure that the embodiments disclosed herein can be practiced without some of these specific details. In other instances, well-known features may not be described in detail to avoid unnecessarily complicating this disclosure.

[0015] As used herein, the suffix letters of the reference numerals are intended to indicate embodiments of features or elements that may be similar to, but not necessarily identical to, the aforementioned elements or features having the same reference numerals (e.g., 1, 1a, 1b). Such shorthand symbols are for convenience only and should not be construed as limiting this disclosure in any way unless expressly stated otherwise.

[0016] Furthermore, unless otherwise expressly stated, "or" means both possible, not both. For example, conditions A or B satisfy any of the following relations: A is true (or exists) and B is false (or does not exist); A is false (or does not exist) and B is true (or exists); and both A and B are true (or exist).

[0017] Furthermore, the use of "a" or "an" can be used to describe elements and components of the embodiments disclosed herein. This is done merely for convenience, and unless it is obvious that they have other meanings, "a" and "an" are intended to include "a" or "at least one," and the singular includes the plural.

[0018] Finally, as used herein, any reference to “one embodiment” or “some embodiments” means that a particular element, feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment disclosed herein. The phrase “in some embodiments” appearing in different places in this specification does not necessarily refer to the same embodiment, and an embodiment may include one or more, or any combination or sub-combination of two or more features explicitly described or inherent herein, together with any other features that may not be explicitly described or inherent in this disclosure.

[0019] Now for reference Figure 1The diagram illustrates a keyboard / video / mouse (KVM) processing environment 100 (e.g., an IP-based KVM (KVM over IP) environment, a network environment). The IP-based KVM environment 100 may include a user 102 (e.g., a client, a viewer), a web-based user interface (UI) 104, a management platform 106, a switching device 108 (e.g., a KVM switch, a data center switch), a rack manager 110, a peripheral routing device 112, and a KVM target device 114.

[0020] In an embodiment, the IP-based KVM environment 100 can allow a remote user 102 to access and control the KVM target device 114 in real-time or near real-time (e.g., a home-based user and an office-based KVM target device). For example, a web-based UI 104 can provide the user 102 with secure shell (SSH) access and KVM access. In an embodiment, the user 102 can send KVM data to a peripheral routing device 112 via a switcher device 108 and rack manager 110 through the web-based UI 104. The peripheral routing device 112 then provides the KVM data to the KVM target device 114 (and, for example, retrieves feedback from the KVM target device for the user). Depending on the size and complexity of the environment, the IP-based KVM environment 100 may include... Figure 1 All or some of the components shown. For example, management platform 106 may not be included in a smaller system environment; in some embodiments, management platform 106 or rack manager 110 (which may, for example, communicate with each other) can connect an IP-based KVM environment to additional server 116. In embodiments, KVM target device 114 may be considered a private KVM target because only a user 102 with proper authentication for accessing and / or controlling a particular KVM target device 114 can do so. For example, switching device 108 may manage the permissioning, authentication, and authorization or denial of access to user 102 requesting KVM access to a particular KVM target device 114.

[0021] Now for reference Figure 2 This demonstrates the use of 100 in an IP-based KVM environment. Figure 1System 200 with optimized KVM processing. System 200 may include: routing platform 202, public interface 204, private interface 206, external access public virtual local area network (VLAN) 208, private network VLAN 210, general (A1) application container 212 and optimized (A2) application container 214.

[0022] In an embodiment, system 200 may be embodied in software routing layer 216, which is contained within a single processing core 218 of a multi-core processing environment including additional processing cores 218a…218n. For example, the multi-core processing environment may be embodied within routing platform 202, which may correspond to switching device 108. Figure 1 ), or alternatively, corresponding to management platform 106 ( Figure 1 ), rack manager 110 ( Figure 1 Or any similar suitable device or collection of devices. In embodiments, routing platform 202 may include a public port 220 (e.g., a small form factor pluggable transceiver (SFP) port) and a private port 222, each private port enabling the routing platform to connect to an external routing device 112 (e.g., and thereby to a KVM target device 114). In some embodiments, system 200 may be distributed across... Figure 1 The processing resources of two or more machines (e.g., one or more of the management platform 106, switching device 108, rack manager 110 and / or peripheral routing device 112) within the IP-based KVM environment 100 shown.

[0023] In embodiments, one or more processors of system 200 may include any processor or processing element known in the art. For the purposes of this disclosure, the terms "processor" or "processing element" may be broadly defined to include any device having one or more processing or logic elements (e.g., one or more microprocessor devices, one or more application-specific integrated circuit (ASIC) devices, one or more field-programmable gate arrays (FPGAs), or one or more digital signal processors (DSPs)). In this sense, one or more processors may include any device configured to execute algorithms and / or instructions (e.g., program instructions stored in memory). In one embodiment, one or more processors may be implemented as a desktop computer, mainframe computer system, workstation, graphics computer, parallel processor, networked computer, or any other computer system configured to execute a program that is configured to operate or be combined with system operation, as described throughout this disclosure. Furthermore, different subsystems of system 200 may include processors or logic elements adapted to perform at least some of the steps described in this disclosure. Therefore, the above description should not be construed as limiting the embodiments of this disclosure, but is merely illustrative.

[0024] In an embodiment, the public interface 204 may be capable of (e.g., via...) Figure 1 The web-based UI 104 connects user 102 to the external interface of public VLAN 208 (e.g., the web-based UI 104). Figure 1 Similarly, private interface 206 can connect private VLAN 210 to a switched private target, such as a peripheral routing device 112 connected to private port 222 of routing platform 202 (and also to KVM target device 114).

[0025] In an embodiment, the software routing layer 216 may include a general (A1) application container 212 for managing various processes associated with the IP-based KVM environment (e.g., access control information, KVM session control information, etc.). However, the A1 application container 212 may not be optimized for processing KVM data propagated between user 102 and KVM target device 114. For example, the A1 application container 212 may preempt KVM data to favor higher-priority data flows (e.g., security token refresh, other high-priority container processing data), and therefore may not be ideal for real-time or near-real-time KVM access operations. In an embodiment, the A2 application container 214 may be optimized because it can allocate maximum priority to KVM data transmitted over the IP-based KVM environment 100, thereby allowing non-preemptive processing of KVM data.

[0026] In this embodiment, the A1 application container 212 can accelerate the processing of KVM access requests and the transmission of KVM data by establishing a dedicated interface. KVM data can be directly routed between the user 102 and the KVM target device 114 via the A2 application container 214 through this dedicated interface without being preempted by other data streams.

[0027] Now for reference Figure 3A The system 200 is shown.

[0028] In this embodiment, public VLAN 208 and private VLAN 210 can be connected within the software routing layer 216 via binding interface 300. For example, binding interface 300 can be a Vector Packet Processing (VPP) container or interface configured to bind to private VLAN 210, which has a default static IP address (e.g., 192.168.10.1), as a gateway for KVM target device 114 (e.g., via peripheral routing device 112). Similarly, binding interface 300 can bind to public VLAN 208 using a static IP address or via dynamic host configuration protocol (DHCP). In this embodiment, binding interface 300 can connect public VLAN 208 to public SFP port 220. Furthermore, private VLAN 210 can be connected to private port 222 via the default IP address used for the DHCP server through virtual routing and forwarding (VRF) interface 302 (or, for example, virtual router redundancy protocol (VRP) interface).

[0029] In this embodiment, system 200 can receive KVM access requests from user 102 who wishes to access and / or control a specific KVM target device 114 via the public interface 204 of routing platform 202. In response to the KVM access request, container A1 ( Figure 2 212) can initiate a KVM session. For example, a KVM session can allow user 102 to connect to the desired KVM target device 114 via software routing layer 216, thereby interacting with and / or controlling the target device by transmitting KVM data at real-time or near real-time speeds.

[0030] In this embodiment, application container 212 (A1) can create a network address translation (NAT) routing rule 304 for the KVM session. NAT routing rule 304 provides a single IP address visible to user 102 externally, allowing the user to connect to one (or more) KVM target devices 114, as described in more detail below. For example, NAT routing rule 304 can route KVM data received from user 102 to a private port 222, which connects the external routing device 112 to the desired KVM target device 114 via the external routing device.

[0031] In this embodiment, application container A1 212 can establish a dedicated interface 306 in conjunction with NAT routing rule 304. Through the dedicated interface 306, user 102 can directly provide KVM data for the initiated KVM session to application container A2 214. For example, by bypassing application container A1 212, dedicated interface 306 allows the optimized application container A2 214 to allocate maximum priority to KVM data, thereby enabling the KVM data to be processed and routed via binding interface 300 and private VLAN 210 to private port 222 (e.g., and from there to peripheral routing device 112 and KVM target device 114) without being preempted by other data flows. In this embodiment, when the KVM session terminates, application container A1 212 can delete the associated NAT routing rule 304.

[0032] In this embodiment, by combining a general-purpose A1 application container 212 and an optimized A2 application container 214 for prioritizing KVM data processing, the system 200 can efficiently and securely process and route KVM data. Furthermore, the A2 application container 214 can operate within an IP-based KVM environment (…). Figure 1 To maintain data security, transport layer 3 routes are created and removed within the internal private VLAN 210 and VRF interface 302 from public external network interfaces (e.g., ...). Figure 1The web-based UI 104 routes KVM data, providing direct access to a single KVM data target (e.g., KVM target device 114). In an embodiment, when application container A1 establishes a dedicated interface 306 and NAT routing rule 304 for a specific KVM session corresponding to a request from user 102 to access KVM target device 114, application container A2 can create a specific Transport Layer 3 route that provides direct routing of KVM data from user (and only user 102) to the requested KVM target device via private VLAN 210. For example, when the KVM session is terminated by application container A1, application container A1 can delete the associated NAT routing rule 304, and application container A2 can delete the associated Transport Layer 3 route to prevent intrusion from unauthorized users.

[0033] In some cases, NAT routing rules 304 created and deleted by application container A1 212 can be reused, allowing user 102 to access multiple KVM target devices 114 via a single NAT routing rule. See also: Figure 3B In an embodiment, user 102 may transmit additional KVM access requests directed to a different KVM target device 114a (e.g., associated with a different private port 222a and a different peripheral routing device 112a). For example, application container 212 may restore NAT routing rules 304 previously created for a previous KVM session involving the same user 102 (see, for example...). Figure 3A And reuse NAT routing rule 304 for any subsequent KVM sessions involving that user. In an embodiment, application container 214 can create and subsequently delete new transport layer 3 routes for the recovery / reuse of NAT routing rule 304 connecting user 102 to the new KVM target device 114a.

[0034] In an embodiment, system 200 may receive KVM access requests from an additional user 102a, such as KVM access requests directed to any KVM target device 114, 114a reachable via the system (e.g., it may include the original KVM target device 114 accessed by the first user 102). For example, application container A1 212 may initiate a new KVM session to connect user 102a to the desired KVM target device 114, 114a and establish a new NAT routing rule 304a associated with a new externally visible IP address of user 102a. When the new KVM session terminates, application container A1 212 may similarly delete the new NAT routing rule 304a (and application container A2 214 may delete the transport layer 3 route), although the new NAT routing rule 304a may similarly be restored and reused in subsequent KVM sessions involving access requests from user 102a.

[0035] Now for reference Figure 4A Method 400 can be implemented by system 200 and may include the following steps.

[0036] At step 402, the public interface of the KVM device (or a system distributed across two or more KVM devices) receives a KVM access request from a user (e.g., to access a specific KVM target device within an IP-based KVM environment). For example, the public interface may communicate with a public VLAN, which is then coupled to a general-purpose application container. The public VLAN may also communicate with a private VLAN via a binding interface.

[0037] At step 404, the general application container initiates a KVM session in response to the received access request in order to connect the user to the requested KVM target device via a peripheral routing device that connects the target device to the system via a private interface.

[0038] At step 406, the general application container creates a Network Address Translation (NAT) route between the public and private VLANs. For example, the NAT route is associated with a network address of a peripheral routing device that is limited to the requested KVM session and is only visible to the requesting user.

[0039] At step 408, the general-purpose application container of the KVM device or system creates a dedicated interface, requesting that the user directly access the private VLAN via the dedicated interface, bound to an interface, and an optimized application container (e.g., optimized to prioritize KVM data so that KVM data can be delivered without contention). Furthermore, the optimized application container can establish transport layer 3 routes for the KVM session.

[0040] Also refer to Figure 4BAt step 410, the optimized application container receives KVM data for the current KVM session from the requesting user via a dedicated interface.

[0041] At step 412, the optimized application container assigns the highest priority to the received KVM data (e.g., to prevent preemption).

[0042] At step 414, the optimized application container (without preemption) routes the received KVM data to the KVM target device.

[0043] Also refer to Figure 4C Method 400 may include additional steps 416 through 424. At step 416, the general application container receives an additional KVM request from the user to access the second KVM target device.

[0044] At step 418, the general application container initiates a second KVM session in response to the second KVM access request. For example, the second KVM session may connect the user to the desired second KVM target device via an associated second perimeter routing device. Furthermore, the general application container may restore the deleted NAT routes that were initially created for the user's initial KVM access request and deleted when the first KVM session terminated.

[0045] At step 420, the optimized application container receives KVM data for the second KVM session from the requesting user via a dedicated interface.

[0046] At step 422, the optimized application container assigns the highest priority to the received second KVM data.

[0047] At step 424, the optimized application container routes the second KVM data to the desired second KVM target device via the restored NAT route (without preemption). For example, a generic application container can delete the NAT route after the first KVM session terminates, and then restore the NAT route for the same requesting user and reuse it for subsequent KVM sessions.

[0048] Also refer to Figure 4D Method 400 may include steps 426 to 436. At step 426, the general application container receives a second KVM access request from the second user. For example, the second KVM access request may involve the same KVM target device as the initial KVM access request, or a new target device within an IP-based KVM environment.

[0049] At step 428, the general application container initiates a new KVM session for the new KVM access request.

[0050] At step 430, the general application container creates a new NAT route between the public and private VLANs for the new KVM session. For example, the new NAT route includes a second address of the perimeter routing device for the requested KVM target device, visible to the new requesting user. The general application container may delete the original NAT route (associated with the first KVM session requested by the first user) and create new NAT routes for new KVM sessions involving the new requesting user (e.g., and any subsequent KVM access requests from that user).

[0051] At step 432, the optimized application container receives new KVM data for the new KVM session from the second user via a dedicated interface.

[0052] At step 434, the optimized application container allocates the highest priority data to the KVM data received from the second requesting user.

[0053] At step 436, the optimized application container routes the KVM data received from the second requesting user to the desired KVM target device via a new NAT route (without preemption).

[0054] Systems and methods for optimizing computational resources and data flows for keyboard, video, and mouse (KVM) media in a network offer numerous advantages. For example, by implementation in a multi-core processor, the system can provide the ability to offload unoptimized CPU-intensive network processes to optimized CPU-intensive network processes via network routing rules and configuration. The multi-core processor can be an Intel multi-core processor, and the system can operate according to a Linux operating system. It is conceivable that, since the processes of this disclosure are executed only by a single core of the multi-core processor, the system can provide near real-time optimization of the switching process.

[0055] Furthermore, system 200 can allow the reuse / overloading of internal network routing to directly boot KVM media to a private switching device. In this way, the system can provide improved switching capabilities using the Layer 3 protocol as described above. It is conceivable that parallel processing can be performed via software routing layer 216 (…). Figure 2 This enables communication from public networks to private networks, thereby further optimizing the efficiency of the system disclosed herein. Furthermore, embodiments of the inventive concepts disclosed herein are applicable to enterprise applications supporting Layer 3 communication services that are typically handled by expensive, complex routing equipment and offer limited flexibility.

[0056] It is beneficial to use NAT routing rules that can be reused after routes are created by the A1 general application container (for processing by the A2 optimized application container) because it allows connections to multiple different private KVM targets to be reused using a single externally visible IP address and port, while previously established IP connections remain intact.

[0057] Those skilled in the art will recognize that the state of the art has evolved to the point where little distinction remains between the hardware and software implementations of various aspects of a system; the use of hardware or software is often (but not always, as the choice between hardware and software may become important in certain contexts) a design choice representing a cost-efficiency trade-off. Those skilled in the art will recognize that various carriers (e.g., hardware, software, and / or firmware) exist that can implement the processes and / or systems and / or other technologies described herein, and the preferred carrier will vary depending on the context of the deployment of the process and / or system and / or other technology. For example, if an implementer determines that speed and accuracy are paramount, then the implementer may primarily choose a hardware and / or firmware carrier; alternatively, if flexibility is paramount, then the implementer may primarily choose a software implementation; or, alternatively, the implementer may choose some combination of hardware, software, and / or firmware. Therefore, several possible carriers exist that can implement the processes and / or devices and / or other technologies described herein, and none of the carriers is inherently superior to another, because any carrier to be used is a choice based on the context in which the carrier will be deployed and the implementer's specific concerns (e.g., speed, flexibility, or predictability), any of which can vary. Those skilled in the art will recognize that the optical aspects implemented will typically employ optical orientation hardware, software, and / or firmware.

[0058] The foregoing detailed description has illustrated various embodiments of the apparatus and / or processes using block diagrams, flowcharts, and / or examples. As long as these block diagrams, flowcharts, and / or examples include one or more functions and / or operations, those skilled in the art will understand that each function and / or operation within these block diagrams, flowcharts, or examples can be implemented individually and / or collectively by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), or other integrated form. However, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, can be equivalently implemented in an integrated circuit, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing circuitry and / or writing code for the software and / or firmware according to this disclosure will be entirely within the skill of those skilled in the art. Furthermore, those skilled in the art will recognize that the mechanisms of the subject matter described herein can be distributed as program products in a variety of forms, and the illustrative embodiments of the subject matter described herein apply regardless of the specific type of signal-bearing medium used to actually perform the distribution. Examples of signal-bearing media include, but are not limited to, the following: recordable media, such as floppy disks, hard disks, compact discs (CDs), digital video disks (DVDs), digital magnetic tapes, computer memory, etc.; and transmission media, such as digital and / or analog communication media (e.g., fiber optic cables, waveguides, wired communication links, wireless communication links, etc.).

[0059] Generally, those skilled in the art will recognize that the various aspects described herein can be implemented individually and / or collectively through a wide range of hardware, software, firmware, or any combination thereof, and these aspects can be considered as comprising various types of "circuits." Therefore, as used herein, "circuit" includes, but is not limited to, circuits having at least one discrete circuit, circuits having at least one integrated circuit, circuits having at least one application-specific integrated circuit, circuits forming a general-purpose computing device configured by a computer program (e.g., a general-purpose computer configured by a computer program that at least partially performs the processes and / or devices described herein, or a microprocessor configured by a computer program that at least partially performs the processes and / or devices described herein), circuits forming a memory device (e.g., in the form of random access memory), and / or circuits forming a communication device (e.g., a modem, a communication switch, or an optoelectronic device). Those skilled in the art will recognize that the subject matter described herein can be implemented in analog or digital form, or some combination thereof.

[0060] Those skilled in the art will recognize that it is common in the art to describe devices and / or processes in the manner set forth herein, and to subsequently integrate such described devices and / or processes into data processing systems using engineering practice. That is, at least a portion of the devices and / or processes described herein can be integrated into a data processing system through a reasonable amount of experimentation. Those skilled in the art will recognize that a typical data processing system generally includes one or more of the following: a system unit housing, a video display device, memory (such as volatile and non-volatile memory), a processor (such as a microprocessor and a digital signal processor), computing entities (such as an operating system, drivers, a graphical user interface, and applications), one or more interactive devices (such as a touchpad or screen), and / or a control system including feedback loops and control motors (e.g., feedback for sensing position and / or speed; control motors for moving and / or adjusting the number and quantity of components). A typical data processing system can be implemented using any suitable commercially available components, such as those typically found in data computing / communication and / or network computing / communication systems.

[0061] The topics described herein sometimes illustrate different components contained within or connected to different other components. It should be understood that such depicted architectures are merely exemplary, and many other architectures can actually be implemented to achieve the same functionality. Conceptually, any arrangement of components that achieve the same functionality is effectively “associated” to achieve the desired function. Therefore, any two components combined herein to achieve a particular functionality can be considered “associated” with each other to achieve the desired function, regardless of the architecture or intermediate components. Similarly, any two such associated components can also be considered “operably connected” or “operably coupled” to each other to achieve the desired function, and any two components that can be suchly associated can also be considered “operably coupled” to each other to achieve the desired function. Specific examples of operably coupled components include, but are not limited to, physically matable and / or physically interactive components and / or wirelessly interactive components and / or logically interactive and / or logically interactive components.

[0062] While specific aspects of the subject matter described herein have been shown and described, it will be apparent to those skilled in the art that changes and modifications can be made based on the teachings herein without departing from the subject matter and its broader aspects. Therefore, the appended claims are intended to cover within their scope all such changes and modifications as are present in the true spirit and scope of the subject matter described herein. Furthermore, it should be understood that the invention is defined by the appended claims.

Claims

1. A system comprising: Multiple keyboard, video, and mouse KVM targets; The public interface is grounded to the public virtual local area network (VLAN). Private interface, communication ground coupled to private VLAN; The binding interface is configured to communicatively couple the public VLAN and the private VLAN; A general-purpose application container is communicatively coupled to the public VLAN and the private VLAN, wherein the general-purpose application container is configured as follows: Processing session configuration data; and Create a Network Address Translation (NAT) route between the public VLAN and the private VLAN; and The optimized application container is communicatively coupled to the public VLAN and the private VLAN, wherein the optimized application container is configured as follows: Processing KVM data; Assign the highest priority level to the KVM data; and The KVM data is routed to each of the plurality of KVM targets via a dedicated interface corresponding to the KVM target, the dedicated interface bypassing the general application container.

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

3. A keyboard, video, and mouse KVM switching device, comprising: One or more private interfaces are configured to connect the KVM switching device to one or more target devices via at least one routing device; One or more public interfaces are configured to connect one or more users to the KVM switching device, and the one or more public interfaces are configured to receive at least one KVM access request associated with a target device from the one or more users; Multiple processing cores, operatively coupled to one or more private interfaces and one or more public interfaces, wherein the multiple processing cores include at least one first processing core, the at least one first processing core comprising: A public virtual local area network (VLAN) is communicationally coupled to one or more public interfaces; A private VLAN is communicationally coupled to one or more private interfaces; The binding interface is used to communicatively couple the public VLAN and the private VLAN; At least one general-purpose application container is communicatively coupled to the public VLAN and the private VLAN; and At least one optimized application container is communicatively coupled to the public VLAN and the private VLAN; The at least one general-purpose application container is configured as follows: Initiate a KVM session associated with the KVM access request, the KVM session being configured to connect the requesting user to the requested target device; Create a Network Address Translation (NAT) route associated with the KVM session between the public VLAN and the private VLAN, the NAT route being associated with the address of the routing device that connects the KVM switching device to the target device; and A dedicated interface is established associated with the KVM session, the dedicated interface being configured to: 1) connect the requesting user to the private VLAN via the at least one optimized application container and the binding interface, and 2) bypass the at least one general-purpose application container; and The at least one optimized application container is configured as follows: Receive KVM data associated with the KVM session from the user via the dedicated interface; Assign the highest priority level to the received KVM data; and The KVM data is routed to the requested target device by bypassing the dedicated interface of the at least one general-purpose application container.

4. The KVM switching device according to 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-purpose application container is configured as follows: The requesting user receives a second KVM access request associated with the second target device; and Initiate a second KVM session associated with the second KVM access request, the second KVM session being configured to connect the requesting user to the second target device; and The at least one optimized application container is configured as follows: Receive second KVM data associated with the second KVM session from the user via the dedicated interface; Assign the highest priority level to the received second KVM data; and The second KVM data is routed to the second KVM target device via the NAT route.

5. The KVM switching device according to claim 4, wherein, The at least one general-purpose application container is configured as follows: Delete the NAT route associated with the first KVM session; and The NAT route is reused for the second KVM session.

6. The KVM switching device according to claim 3, wherein, The user is the first user, the access request is the first access request, the NAT route associated with the address is the first NAT route associated with the first address, and the KVM session is the first KVM session, wherein: The at least one general-purpose application container is configured as follows: Receive a second KVM access request from the second user that corresponds to the 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, corresponding to the second KVM session, and associate the second NAT route with a second address; and The at least one optimized application container is configured as follows: Receive second KVM data associated with the second KVM session from the user via the dedicated interface; Assign the highest priority level to the received second KVM data; and The second KVM data is routed to the requested KVM target device via the second NAT route.

7. The KVM switching device according to claim 6, wherein, The at least one general-purpose application container is configured to delete the first NAT route.

8. The KVM switching device according to claim 6, wherein: The first address is visible to the first user; and The second address is visible to the second user.

9. The KVM switching device according to claim 3, wherein, The address of the routing device is visible to the requesting user.

10. The KVM switching device according to claim 3, wherein: The at least one general-purpose application container is not configured to prioritize the KVM data by assigning the maximum priority level to the KVM data.

11. A method for processing keyboard / video / mouse KVM data, the method comprising: Access requests are received from users via the public interface of the KVM device. The access requests are associated with the KVM target device. The public interface is communicatively coupled to a public virtual local area network (VLAN). The public VLAN is communicatively coupled to a general application container. The public VLAN is communicatively coupled to a private VLAN via a binding interface. A KVM session associated with the access request is initiated via the general application container. The KVM session is configured to connect the user to the KVM target device via a routing device, which is communicatively coupled to the private VLAN via at least one private interface. The general application container creates a Network Address Translation (NAT) route associated with the KVM session between the public VLAN and the private VLAN. The NAT route is associated with an address of the routing device, which is visible to the user. A dedicated interface associated with the KVM session is established via the general application container. The dedicated interface is configured to connect the user to the private VLAN via the binding interface and the optimized application container, and the dedicated interface is configured to bypass the general application container. KVM data is received from the user at the optimized application container and via the dedicated interface, and the KVM data is associated with the KVM session. The optimized application container assigns the highest priority level to the received KVM data; as well as The KVM data is routed to the KVM target device via the optimized application container, bypassing the dedicated interface of the general application container.

12. The method according to claim 11, 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, the routing device is a first routing device, and it further includes: A second access request is received from the user via the general application container, the second access request corresponding to a second KVM target device; A second KVM session associated with the second access request is initiated via the general application container. The second KVM session is configured to connect the user to the second KVM target device via a second routing device. Receive second KVM data associated with the second KVM session from the user via the optimized application container and through the dedicated interface; The second KVM data is assigned a maximum priority level via the optimized application container; and The second KVM data is routed to the second KVM target device via the optimized application container and the NAT route.

13. The method according to claim 12, wherein, Initiating a second KVM session associated with the second access request via the general application container includes: Delete the NAT route associated with the first KVM session; and The NAT route is reused for the second KVM session.

14. The method according to claim 11, wherein, The user is the first user, the access request is the first access request, the KVM session is the first KVM session, and the NAT route associated with the address is the first NAT route associated with the first address. The system also includes: A second access request is received from a second user via the general application container, the second access request being associated with a KVM target device; A second KVM session associated with the second access request is initiated via the general application container; A second NAT route associated with the second KVM session is created between the public VLAN and the private VLAN via the general application container, and the second NAT route is associated with a second address of the routing device; Receive second KVM data associated with the second KVM session from the user via the optimized application container and through the dedicated interface; The second KVM data is assigned a maximum priority level via the optimized application container; and The second KVM data is routed to the second KVM target device via the second NAT route through the optimized application container.

15. The method of claim 14, further comprising: The first NAT route is deleted via the general application container.

Citation Information

Patent Citations

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

    US20230042105A1

  • Data processing method and electronic equipment

    CN105721336A

  • Architecture to enable keyboard, video and mouse (KVM) access to a target from a remote client

    US20070115992A1