IP Library Granted Patent US 9,577,979
Granted Patent B1
US 9,577,979 · App. 14/080,712 · Granted Feb 21, 2017

Local name resolution

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 9,577,979
App. No.
14/080,712
Granted
Feb 21, 2017
Kind
B1
Abstract

Embodiments described herein relate to systems and methods for local name resolution in network communications. Particular embodiments may enable a device resolution request to include a name that identifies the user device issuing the resolution request. A proxy server may accept the resolution request, and respond with a service internet protocol address that is customized to that user device, such that compatible user devices on the same local area network will each receive a different service IP address. When the proxy server receives traffic on a particular service IP address from a local area network, the proxy server may identify the compatible device even if a network address translation device has adjusted the requesting IP address for the device. Particular implementations may enable acceleration of HTTPS communications by the proxy server, or other such benefits.

Claims (72)

1. A method comprising:

intercepting, by a proxy server, a resolution request that has been issued by a first user device operating in a local area network behind a network address translation (NAT) device, wherein the resolution request comprises a name that identifies the first user device within the local area network, and wherein the proxy server is external to the local area network and the NAT device;

selecting a unique service IP address for the first user device based on the name that identifies the first user device within the local area network;

creating an association between the name that identifies the first user device within the local area network and the unique service IP address;

issuing, by the proxy server, a name resolution response containing the unique service IP address to the first user device;

receiving, by the proxy server, network communications traffic from the first user device, the network communications traffic destined for the unique service IP address; and

identifying the first user device from the network communications traffic received by the proxy server based on the association between the unique service IP address and the name that identifies the first user device within the local area network.

2. The method of claim 1 wherein the name that identifies the first user device within the local area network is constructed by concatenating a local IP address of the first user device to a global domain name string that identifies a service on a network.

3. The method of claim 1 wherein the network communications traffic comprises a request for a web page object from a content server, and further comprising providing the web page object to the first user device based on the name that identifies the first user device within the local area network and the request for the web page object.

4. The method of claim 1 further comprising:

configuring the first user device to support name based resolution requests using an installer prior to issuing the resolution request comprising the name that identifies the first user device within the local area network.

5. The method of claim 1 further comprising:

configuring the first user device to support local name based resolution requests using configuration structures installed on the first user device prior to the first user device issuing the resolution request comprising the name that identifies the first user device within the local area network.

6. The method of claim 5 further comprising:

remotely configuring the first user device to support local name based resolution requests using a proxy auto-configuration (PAC) file prior to issuing the resolution request comprising the name that identifies the first user device within the local area network.

7. The method of claim 1 further comprising:

determining, for a plurality of user devices comprising the first user device, whether each device of the plurality of user devices is compatible with acceleration of HTTPS communications using a proxy; and

identifying that the first user device is compatible with acceleration of HTTPS communication using the proxy.

8. The method of claim 7 further comprising:

receiving, at the proxy, at least a portion of an HTTPS communication between the first user device of the plurality of user devices and a content server;

decrypting the portion of the HTTPS communication between the first user device and the content server to create a decrypted proxy portion of the HTTPS communication;

analyzing the decrypted proxy portion of the HTTPS communication to identify at least one prefetchable object for prefetching as part of the HTTPS communication; and

communicating, from the proxy, an HTTPS prefetch request for the at least one prefetchable object based on the analyzing of the decrypted proxy portion of the HTTPS communication.

9. The method of claim 8 further comprising:

storing a copy of the at least one prefetchable object accessible by the proxy server;

receiving at the proxy server, from the first user device, a request for the at least one prefetchable object; and

communicating the copy of the at least one prefetchable object via HTTPS from the proxy to the first user device, in response to receipt of the request for the at least one prefetchable object.

10. The method of claim 9 wherein using the unique service IP address as a destination IP for traffic from the first user device comprises:

communicating HTTPS messages from the first user device to the unique service IP address; and

communicating non-HTTPS messages to a standard service IP address that is different than the unique service IP address.

11. The method of claim 7 further comprising:

determining whether an acceptable certificate is available for each device of the plurality of user devices.

12. The method of claim 11 further comprising:

wherein determining, for the plurality of user devices, whether each device of the plurality of user devices is compatible with acceleration of HTTPS communications using the proxy further comprises:

checking an opt-in selection for each device of the plurality of user devices; and

identifying a first opt-in selection associated with the first user device.

13. The method of claim 7 further comprising:

determining that a second user device of the plurality of user devices includes WPAD support but is not compatible with HTTPS proxy acceleration;

receiving, at the proxy, at least a portion of a second HTTPS communication involving the second user device; and

relaying the portion of the second HTTPS communication involving the second user device without decrypting the portion of the second HTTPS communication at the proxy.

14. The method of claim 13 wherein determining that the second user device of the plurality of user devices includes WPAD support but is not compatible with proxy acceleration comprises:

failing to identify an opt-in selection for the second user device.

15. The method of claim 1 further comprising:

intercepting, by the proxy server, a second resolution request from a second user device operating on the local area network behind the NAT device, wherein the second resolution request comprising a second name that identifies the second user device within the local area network, and wherein the second resolution request is intercepted at the proxy server after being communicated from the second user device to the NAT device;

creating, at the proxy server, a second association between the second name that identifies the second user device within the local area network and a second unique service IP address;

issuing, by the proxy server, a second name resolution response containing the second unique service IP address to the second user device;

receiving, by the proxy server, second network communications traffic sent from the second user device using the second unique service IP address; and

identifying the second user device from the second network communication traffic received by the proxy server based on the second association between the second unique service IP address and the second name that identifies the second user device within the local area network.

16. The method of claim 15 further comprising:

intercepting, by the proxy server, a third resolution request from a third user device operating on a second local area network behind a second NAT device, wherein the third resolution request comprises a third name that identifies the third user device within the second local area network, and wherein the third resolution request is intercepted at the proxy server after being communicated from the third user device to the second NAT device;

creating, at the proxy server, a third association between the third name that identifies the third user device within the second local area network and a third unique service IP address;

issuing, by the proxy server, a third name resolution response containing the third unique service IP address to the third user device;

receiving, by the proxy server, third network communications traffic sent from the third user device using the third unique service IP address; and

identifying the third user device from the third network communication traffic received by the proxy server based on the third association between the third unique service IP address and the third name that identifies third user device within the second local area network.

17. The method of claim 16 wherein the proxy server comprises:

a first table comprising associations for the local area network including the association and the second associating; and

a second table comprising associations for the second local area network including the third association.

18. A non-transitory computer readable medium comprising computer readable instructions that, when executed by at least one processor, cause the at least one processor to:

intercept a resolution request from a first user device in a local area network behind a network address translation (NAT) device, the resolution request comprising a name that identifies the first user device within the local area network, and the intercept configured to occur outside the local area network and on an external side of the NAT device;

select a unique service IP address for the first user device based on the name;

create an association between the name that identifies the first user device within the local area network and the unique service IP address;

issue a name resolution response containing the unique service IP address to the first user device;

receive network communications traffic sent from the first user device, the network communications traffic destined for the unique service IP address; and

identify the first user device from the network communications traffic received by a proxy server based on the association between the unique service IP address and the name that identifies the first user device within the local area network.

19. The non-transitory computer readable medium of claim 18 wherein the instructions further cause the at least one processor to:

communicate configuration instructions from the proxy server comprising the processor to the first user device; wherein the configuration instructions comprise web proxy autodiscovery protocol (WPAD) supported instructions for configuring a proxy auto-config (PAC) file of the first user device to issue a resolution request including the name that identifies the first user device within the local area network to the proxy server.

20. A proxy server comprising:

means for intercepting a resolution request that has been issued by a first user device operating in a local area network behind a network address translation (NAT) device, wherein the resolution request comprises a name that identifies the first user device within the local area network, and wherein the proxy server is external to the local area network and the NAT device;

means for selecting a unique service IP address for the first user device based on the name;

means for creating an association between the name that identifies the first user device within the local area network and the unique service IP address, the unique service IP address associated with the proxy server;

means for receiving network communication traffic from the first user device, the network communications traffic destined for the unique service IP address;

means for identifying the first user device from the network communications traffic received by the proxy server based on the association between the unique service IP address and the name that identifies the first user device within the local area network.

Assignments (11)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0026 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
SECURITY AGREEMENT Recorded Dec 23, 2013
From: VIASAT, INC.
To: UNION BANK, N.A., AS AGENT FOR THE SECURED PARTIES
Reel/Frame 031868/0789 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2013
From: LEPESKA, PETER
To: VIASAT, INC.
Reel/Frame 031644/0433 →