IP Library Granted Patent US 10,567,516
Granted Patent B2
US 10,567,516 · App. 15/441,631 · Granted Feb 18, 2020

Sharing local network resources with a remote VDI instance

Inventors: Oleg Rombakh (Los Gatos, CA); Richard Goldberg (Los Gatos, CA)
Assignee: Wyse Technology L.L.C.
H04L67/141H04L67/42H04L69/22H04L61/2521
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 10,567,516
App. No.
15/441,631
Granted
Feb 18, 2020
Kind
B2
Abstract

Local network resources can be seamlessly accessed from a remote session. A remoting client that executes on a client terminal and a remoting service that executes in a remote session can each be configured to implement a virtual network pseudo device. These virtual network pseudo devices can be configured to communicate network communications via a virtual channel with the virtual channel endpoints performing any necessary network address translation. As a result, when the remote session host attempts to discover local network resources, the corresponding network communications will be routed over the virtual channel and transmitted over the client's local area network. Any resources on the client's local area network will respond accordingly with this responses being routed back over the virtual channel to the remote session host thus causing the resources to appear as if they were part of the same local area network as the remote session host.

Claims (53)

1. A method, implemented in a computing environment that includes a client terminal that is connected to a local area network and a remote session host that is not connected to the local area network, for allowing local network resources of the local area network to be accessed from a remote session that the client terminal has established on the remote session host using a remote display protocol connection, the method comprising:

receiving, at a pseudo device on the remote session host, a network communication with an IP header, the network communication being received while the client terminal has established the remote session on the remote session host, the pseudo device on the remote session host not being connected to the local area network;

passing the network communication with the IP header to a virtual channel endpoint on the remote session host;

transferring the network communication with the IP header over a virtual channel of the remote display protocol connection to a virtual channel endpoint on the client terminal; and

passing, by the virtual channel endpoint on the client terminal, the network communication to a pseudo device on the client terminal to cause the network communication to be transmitted over the local area network to which the client terminal is connected, passing the network communication comprising modifying the IP header of the network communication by modifying a source IP address in the IP header to match an IP address assigned to the pseudo device on the client terminal.

2. The method of claim 1 , wherein the pseudo device on the remote session host passes the network communication to the virtual channel endpoint on the remote session host via a raw socket.

3. The method of claim 1 , wherein the network communication received at the pseudo device on the remote session host is one of an IP packet or a MAC frame.

4. The method of claim 1 , further comprising:

receiving, at the pseudo device on the client terminal, a second network communication;

passing the second network communication to the virtual channel endpoint on the client terminal;

transferring the second network communication over the virtual channel to the virtual channel endpoint on the remote session host;

determining, by the virtual channel endpoint on the remote session host, that the second network communication includes an IP header having a destination IP address that is a multicast IP address; and

based on the determination, passing the second network communication to the pseudo device on the remote session host without modifying the destination IP address in the IP header.

5. The method of claim 1 , wherein the virtual channel endpoint on the client terminal passes the network communication with the IP header to the pseudo device via a raw socket, and wherein modifying the IP header of the network communication comprises maintaining a destination IP address that was specified in the IP header as received over the virtual channel.

6. The method of claim 5 , wherein the destination IP address is one of:

a multicast IP address; or

an IP address of a network resource on the local area network to which the client terminal is connected.

7. The method of claim 1 , further comprising:

receiving, at the pseudo device on the client terminal, a second network communication;

passing the second network communication to the virtual channel endpoint on the client terminal;

transferring the second network communication over the virtual channel to the virtual channel endpoint on the remote session host; and

passing the second network communication to the pseudo device on the remote session host, passing the second network communication comprising modifying an IP header of the second communication to include a destination IP address associated with a NIC of the remote session host.

8. The method of claim 7 , wherein the destination IP address specified in the IP header when the second communication is received at the virtual channel endpoint on the remote session host matches an IP address associated with the pseudo device on the client terminal.

9. The method of claim 1 , wherein the pseudo device on the remote session host is configured as a network gateway.

10. One or more non-transitory computer storage media storing computer executable instructions which, when executed in a computing environment that includes a client terminal that is connected to a local area network and a remote session host that is not connected to the local area network, implement a method for allowing local network resources of the local area network to be accessed from a remote session that the client terminal has established on the remote session host using a remote display protocol connection, the method comprising:

establishing, on the remote session host with which the client terminal has established the remote session using the remote display protocol connection, a server-side pseudo device that functions as a network interface of the remote session host, the server-side pseudo device not being connected to the local area network;

establishing, on the client terminal, a client-side pseudo device that functions as a network interface of the client terminal to the local area network;

establishing a client-side virtual channel endpoint and binding the client-side virtual channel endpoint to the client-side pseudo device; and

establishing a server-side virtual channel endpoint and binding the server-side virtual channel endpoint to the server-side pseudo device;

wherein the server-side virtual channel endpoint is configured to receive network communications with IP headers from the server-side pseudo device and to transfer the network communications with the IP headers to the client-side virtual channel endpoint; and

wherein the client-side virtual channel endpoint is configured to modify the IP headers of the network communications received from the server-side virtual channel endpoint to cause a source IP address in the IP header of each network communication to match an IP address assigned to the pseudo device on the client terminal and to pass the network communications with the modified IP headers to the client-side pseudo device for transmission over the local area network.

11. The non-transitory computer storage media of claim 10 , wherein the client-side virtual channel endpoint is configured to receive network communications with IP headers from the client-side pseudo device and to transfer the network communications with IP headers to the server-side virtual channel endpoint.

12. The non-transitory computer storage media of claim 11 , wherein the server-side virtual channel endpoint is configured to selectively modify the IP headers of the network communications received from the client-side virtual channel endpoint based on a destination IP address.

13. The non-transitory computer storage media of claim 12 , wherein, when the destination IP address in the IP header of a network communication received from the client-side virtual channel endpoint matches an IP address associated with the client-side pseudo device, the server-side virtual channel endpoint modifies the IP header by specifying a destination IP address associated with a NIC of the remote session host.

14. The non-transitory computer storage media of claim 12 , wherein, when the destination IP address in the IP header of a network communication received from the client-side virtual channel endpoint is a multicast IP address, the server-side virtual channel endpoint does not modify the IP header.

15. The non-transitory computer storage media of claim 10 , wherein the client-side virtual channel endpoint is bound to the client-side pseudo device via a raw socket, and the server-side virtual channel endpoint is bound to the server-side pseudo device via a raw socket.

16. The non-transitory computer storage media of claim 10 , wherein the server-side pseudo device is configured as a network gateway and the client-side pseudo device is a virtual bridge.

17. The non-transitory computer storage media of claim 10 , wherein the network communications received from the server-side pseudo device target the local network resources of the local area network, and the network communications received from the client-side pseudo device originate from the local network resources.

18. A method, implemented in a computing environment that includes a client terminal that is connected to a local area network and a remote session host that is not connected to the local area network, for discovering network resources of the local area network from the remote session host while the client terminal has established a remote session on the remote session host using a remote display protocol connection, the method comprising:

receiving, at a pseudo device on the remote session host, a first network communication representing a request from a component executing on the remote session host to discover network resources, the first network communication including an IP header, the first network communication being received while the client terminal has established the remote session on the remote session host, the pseudo device on the remote session host not being connected to the local area network;

passing the first network communication with the IP header to a virtual channel endpoint on the remote session host to cause the first network communication with the IP header to be transferred over a virtual channel to a virtual channel endpoint on the client terminal;

upon receiving the first network communication with the IP header at the virtual channel endpoint on the client terminal, modifying the IP header to replace a source IP address with an IP address of a pseudo device on the client terminal; and

passing the first network communication with the modified IP header to the pseudo device on the client terminal to thereby cause the first network communication to be transmitted over the local area network to which the client terminal is connected.

19. The method of claim 18 , further comprising:

receiving, at the pseudo device on the client terminal, a second network communication representing a discover response from a first network resource on the local area network, the second network communication including an IP header;

passing the second network communication with the IP header to the virtual channel endpoint on the client terminal to cause the second network communication with the IP header to be transferred over the virtual channel to the virtual channel endpoint on the remote session host;

upon receiving the second network communication with the IP header at the virtual channel endpoint on the remote session host, modifying the IP header to replace a destination IP address with an IP address associated with a NIC of the remote session host; and

transmitting the second network communication with the modified IP header to the NIC.

20. The method of claim 19 , further comprising:

receiving, at the pseudo device on the remote session host, a third network communication representing a request to access the first network resource, the third network communication including an IP header with a destination IP address matching an IP address associated with the first network resource on the local area network;

passing the third network communication with the IP header to the virtual channel endpoint on the remote session host to cause the third network communication with the IP header to be transferred over the virtual channel to the virtual channel endpoint on the client terminal;

upon receiving the third network communication with the IP header at the virtual channel endpoint on the client terminal, modifying the IP header to replace a source IP address with the IP address of the pseudo device on the client terminal; and

passing the third network communication with the modified IP header to the pseudo device on the client terminal to thereby cause the first network communication to be transmitted over the local area network.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2017
From: ROMBAKH, OLEG; GOLDBERG, RICHARD
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 041370/0425 →
Continuity (1)
Related Publication 20180248958A1 · Aug 30, 2018