IP Library Granted Patent US 10,944,836
Granted Patent B2
US 10,944,836 · App. 15/339,197 · Granted Mar 9, 2021

Dynamically addressable network services

Inventors: J. T. Olds (Salt Lake City, UT); Alen Peacock (Orem, UT); Andrew Harding (American Fork, UT); Jeff Wendling (West Jordan, UT)
H04L67/16H04L41/5058H04L67/02H04L67/12H04L41/5019H04L61/1541H04L61/2076H04L61/2514
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,944,836
App. No.
15/339,197
Granted
Mar 9, 2021
Kind
B2
Abstract

A computer system for optimizing bandwidth usage by directly linking two remote devices requests, from a local network gateway, a network port assignment for a services management component within a local network. The system also receives, at the services management component, a network connection directed towards the assigned network port. The network connection is received at the assigned network port regardless of the associated network protocol. The system then identifies a hostname within a data packet received through the network connection. The system also identifies, within a services registry, one or more services registered to receive network connections associated with the identified network protocol. In addition, the system identifies from the one or more services a particular service that is associated with the hostname. The system then forwards the network connection to the particular service.

Claims (97)

1. A computer system for optimizing bandwidth usage by directly linking two remote devices, comprising:

one or more processors; and

one or more computer-readable media having stored thereon executable instructions that when executed by the one or more processors configure the computer system to perform at least the following:

request, at a services management component and from a local network gateway, an assigned network port for the services management component within a local network;

communicate, from the services management component and to a remote directory server, the assigned network port and an internet protocol address associated with the services management component;

receive, at the services management component from a user computing device, a network connection directed towards the assigned network port, wherein the network connection is generated by the user computing device and does not travel through the remote directory server prior to being received by the services management component;

identify, at the services management component, a particular protocol associated with the network connection, wherein the network connection is received at the assigned network port regardless of the particular protocol; and

identify, within a services registry that is stored at the services management component, multiple services registered to receive network connections associated with the particular protocol, wherein the services registry comprises:

a service-specific default indicator that indicates that a particular service selected from the multiple services is a default service for the particular protocol;

determine, at the services management component, that no hostname is present within a data packet received through the network connection;

identify, at the services management component, the default service that is associated with the particular protocol; and

forward, from the services management component, the network connection to the default service.

2. The computer system of claim 1 , wherein the executable instructions include instructions that are executable to configure the computer system to:

receive, at the services registry, a registration request from a first service, wherein the registration request comprises:

a first network protocol for communicating with the first service,

a first hostname associated with the first service, and

a first address for accessing the first service within a local area network, wherein the local area network also includes the services management component.

3. The computer system of claim 2 , wherein the executable instructions include instructions that are executable to configure the computer system to:

receive, at the services registry, a registration request from a second service, wherein the registration request comprises:

a second network protocol for communicating with the second service,

a second hostname associated with the second service, and

a second address for accessing the second service within the local area network,

wherein the local area network also includes the services management component; and

wherein the first network protocol and the second network protocol are different types of network protocols.

4. The computer system of claim 3 , wherein identifying a network protocol associated with the network connection comprises:

when receiving a first network connection directed towards the first service, identify the first network protocol;

when receiving a second network connection directed towards the second service, identify the second network protocol; and

wherein both the first network connection and the second network connection are received at the assigned network port.

5. The computer system of claim 1 , wherein the executable instructions include instructions that are executable to configure the computer system to:

receive, at the user computing device, a command to interact with a particular remote service, wherein the particular remote service communicates through the particular protocol;

request, from the remote directory server, the internet protocol address and the assigned network port associated with the services management component;

generate, for communication to the services management component, the data packet that comprises an indication of the particular protocol that is associated with the particular remote service; and

communicate, to the services management component, a network connection directed towards the internet protocol address and the assigned network port associated with the services management component, wherein the network connection is directed towards the assigned network port regardless of the particular protocol.

6. The computer system of claim 1 , wherein the executable instructions include instructions that are executable to configure the computer system to:

when the particular protocol comprises a Transport Layer Security (TLS) connection, inspect Server Name Indication (SNI) records to identify a hostname; and

when no corresponding SM record is found, forward the network connection to a default TLS service.

7. The computer system of claim 1 , wherein the executable instructions include instructions that are executable to configure the computer system to:

when the particular protocol comprises a hypertext transfer protocol (HTTP) connection, inspect a host header to identify a hostname; and

when no corresponding hostname is found, forward the network connection to a default HTTP service.

8. The computer system of claim 1 , wherein the executable instructions include instructions that are executable to configure the computer system to:

communicate, to the remote directory server, information corresponding with the multiple services within the services registry.

9. A computer-based method for optimizing bandwidth usage by directly linking two remote devices, comprising:

receiving, at a user computing device, a command to interact with a particular remote service, wherein the particular remote service communicates through a particular network protocol;

requesting, at the user computing device and from a remote directory server, an internet protocol address and an assigned port associated with a services management component;

generating, at the user computing device and for communication to the services management component, a data packet that comprises an indication of the particular network protocol that is associated with the particular remote service; and

communicating, from the user computing device to the services management component, a network connection directed towards the internet protocol address and the assigned port associated with the services management component, wherein:

the network connection is directed towards the assigned port regardless of the particular network protocol,

the network connection does not travel through the remote directory server prior to being received by the services management component, and

the services management component is configured to:

access, within a services registry, one or more services registered to receive network connections associated with the particular network protocol, wherein the services registry comprises a service-specific default indicator that indicates that a particular service selected from multiple services is a default service for a particular protocol;

determine that no hostname is present within the data packet received through the network connection;

identify the default service that is associated with the particular network protocol; and

forward the network connection to the default service.

10. The computer-based method as recited in claim 9 further comprising:

requesting, from a local network gateway, the assigned port for the services management component within a local network;

communicating, to the remote directory server, the assigned port and the internet protocol address associated with the services management component;

receiving, at the services management component, a network connection directed towards the assigned port;

identifying the particular network protocol associated with the network connection, wherein the network connection is received at the assigned port regardless of the particular network protocol; and

accessing, within the services registry, the multiple services registered to receive network connections associated with the particular network protocol, wherein the services registry comprises:

the service-specific default indicator that indicates that the particular service selected from the multiple services is the default service for the particular network protocol;

determining that no hostname is present within the data packet received through the network connection;

identifying the default service that is associated with the particular network protocol; and

forwarding the network connection to the default service.

11. The computer-based method as recited in claim 9 wherein the user computing device comprises a smart phone communicating over a cellular network.

12. The computer-based method as recited in claim 11 wherein the particular remote service comprises an alarm system within a house.

13. The computer-based method as recited in claim 11 wherein generating the data packet comprises generating the data packet to conform to a first network protocol that is different than the particular network protocol.

14. A computer-based method for optimizing bandwidth usage by directly linking two remote devices, comprising:

requesting, at a services management component and from a local network gateway, an assigned network port for a services management component within a local network;

communicating, from the services management component and to a remote directory server, the assigned network port and an internet protocol address associated with the services management component;

receiving, at the services management component from a user computing device, a network connection directed towards the assigned network port, wherein the network connection is generated by the user computing device and does not travel through the remote directory server prior to being received by the services management component;

identifying, at the services management component, a particular network protocol associated with the network connection, wherein the network connection is received at the assigned network port regardless of the particular network protocol; and

accessing, within a services registry that is stored at the services management component, multiple services registered to receive network connections associated with the particular network protocol, wherein the services registry comprises:

a service-specific default indicator that indicates that a particular service selected from the multiple services is a default service for the particular network protocol;

determining, at the services management component, that no hostname is present within a data packet received through the network connection;

identifying, at the services management component, the default service that is associated with the particular network protocol; and

forwarding, from the services management component, the network connection to the default service.

15. The computer-based method of claim 14 , further comprising:

receiving, at the services registry, a registration request from a first service, wherein the registration request comprises:

a first network protocol for communicating with the first service,

a first hostname associated with the first service, and

a first address for accessing the first service within a local area network, wherein the local area network also includes the services management component.

16. The computer-based method of claim 15 , further comprising:

receiving, at the services registry, a registration request from a second service, wherein the registration request comprises:

a second network protocol for communicating with the second service,

a second hostname associated with the second service, and

a second address for accessing the second service within the local area network, wherein the local area network also includes the services management component; and

wherein the first network protocol and the second network protocol are different types of network protocols.

17. The computer-based method of claim 16 , further comprising: when receiving a first network connection directed towards the first service, identifying the first network protocol;

when receiving a second network connection directed towards the second service, identifying the second network protocol; and

wherein both the first network connection and the second network connection are received at the assigned network port.

18. The computer-based method of claim 14 , further comprising:

when the particular network protocol comprises a Transport Layer Security (TLS) connection, inspect Server Name Indication (SNI) records to identify a hostname; and

when no corresponding SM record is found, forward the network connection to a default TLS service.

19. The computer-based method of claim 14 , further comprising:

when the particular network protocol comprises a hypertext transfer protocol (HTTP) connection, inspect a host header to identify a hostname; and

when no corresponding host header is found, forward the network connection to a default HTTP service.

20. The computer-based method of claim 14 , further comprising: communicate, to the remote directory server, information corresponding with the multiple services within the services registry.

Assignments (8)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 049283, FRAME 0566 Recorded Nov 11, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VIVINT, INC.
Reel/Frame 069334/0137 →
RELEASE (REEL 047029/ FRAME 0304) Recorded Nov 1, 2024
From: BANK OF AMERICA, N.A.
To: VIVINT LLC (F/K/A VIVINT, INC.)
Reel/Frame 069289/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2022
From: PANDO TECHNOLOGIES, INC.
To: STORJ LABS INTERNATIONAL SEZC
Reel/Frame 060762/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2022
From: VIVINT, INC.
To: PANDO TECHNOLOGIES, INC.
Reel/Frame 059565/0691 →
RELEASE OF SECURITY INTEREST Recorded Jul 12, 2021
From: BANK OF AMERICA, N.A.
To: VIVINT, INC.
Reel/Frame 056832/0824 →
SECURITY AGREEMENT Recorded May 23, 2019
From: VIVINT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049283/0566 →
SUPPL. NO. 2 SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA N.A.
Reel/Frame 047024/0048 →
SECURITY AGREEMENT Recorded Sep 6, 2018
From: VIVINT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 047029/0304 →
Continuity (1)
Related Publication 20180124188A1 · May 3, 2018