IP Library Granted Patent US 12676830
Granted Patent B2
US 12676830 · App. 18/719,059 · Granted Jul 7, 2026

Concurrent support of multiple downstream physical tethering links via a virtual tunnel link

Inventors: Hui Wang (Buffalo Grove, IL); Jayachandran Chinnakkannu (Santa Clara, CA)
Assignee: GOOGLE LLC
H04L61/5007H04W76/12H04W84/12
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 12676830
App. No.
18/719,059
Granted
Jul 7, 2026
Kind
B2
Abstract

A client device communicates with a network via a host device as an intermediary through a virtual link technique in which an Internet Protocol (IP) tunnel is established between the client device and the host device, and a plurality of physical links between the host device and the client device are assigned or otherwise associated with the IP tunnel such that the IP tunnel acts as a single virtual link between the client device and the host device, with fixed IP addresses, but therein data can be communicated between the client device and the host device on different physical links according to routing policy that includes routing rules for routing data packets between the different physical links according to one or more parameters.

Claims (75)

1 . A method comprising:

establishing a plurality of physical links between a client device and a host device, the plurality of physical links being independently establishable and removable;

establishing an Internet Protocol (IP) tunnel between the client device and the host device, the IP tunnel utilizing the plurality of physical links; and

communicating data between the client device and a network connected to the host device via the IP tunnel in accordance with a routing policy that directs routing of data over the plurality of physical links.

2 . The method of claim 1 , further comprising:

establishing an additional physical link between the client device and the host device;

modifying the IP tunnel to include the additional physical link; and

modifying the routing policy to reflect the additional physical link.

3 . The method of claim 1 , further comprising:

eliminating a physical link between the client device and the host device;

modifying the IP tunnel to remove the eliminated physical link; and

modifying the routing policy to reflect the eliminated physical link.

4 . The method of claim 2 , wherein:

establishing the IP tunnel includes assigning an IP address to the client device for the IP tunnel; and

modifying the IP tunnel does not change the IP address assigned to the client device.

5 . The method of claim 1 , wherein communicating data between the client device and the network via the IP tunnel comprises:

receiving a data packet at one end of the IP tunnel;

determining at least one parameter of the data packet;

encapsulating the data packet to create a tunnel packet; and

routing the tunnel packet to a physical link selected from the plurality of physical links associated with the IP tunnel based on at least one routing rule that applies to the at least one parameter of the data packet.

6 . The method of claim 5 , wherein the at least one parameter of the data packet includes a latency parameter, a bandwidth parameter, a quality-of-service parameter, a source of the data packet, or a destination of the data packet.

7 . The method of claim 1 , wherein the plurality of physical links includes wired links, wireless links, or a combination of at least one wired link and at least one wireless link.

8 . The method of claim 7 , wherein a wireless link includes at least one of: a cellular link; a wireless local area network (WLAN) link; or a wireless personal area network (WPAN) link.

9 . A client device comprising:

a plurality of network interfaces;

at least one processor coupled to the plurality of network interfaces; and

memory coupled to the at least one processor and storing executable instructions that, when executed by the at least one processor, cause the client device to perform the method of claim 1 .

10 . A host device comprising:

a plurality of network interfaces;

at least one processor coupled to the plurality of network interfaces; and

memory coupled to the at least one processor and storing executable instructions that, when executed by the at least one processor, cause the host device to perform the method of claim 1 .

11 . A method, at a host device, comprising:

establishing an Internet Protocol (IP) tunnel with a client device, the IP tunnel having a plurality of physical links between the host device and the client device, the plurality of physical links being independently establishable and removable;

receiving a data packet from a network connected to the host device;

encapsulating the data packet to generate a tunnel packet; and

providing the tunnel packet to a physical link for transmission to the client device, the physical link selected from the plurality of physical links based on routing policy representing one or more routing rules for routing data packets over the plurality of physical links based on one or more parameters of the data packets.

12 . A method, at a client device, comprising:

establishing an Internet Protocol (IP) tunnel with a host device, the IP tunnel having a plurality of physical links between the host device and the client device, the plurality of physical links being independently establishable and removable;

receiving a data packet from a software application of the client device;

encapsulating the data packet to generate a tunnel packet; and

providing the tunnel packet to a physical link for transmission to the host device, the physical link selected from the plurality of physical links based on routing policy representing routing rules for routing data packets over the plurality of physical links based on one or more parameters of the data packets.

13 . The method of claim 11 , wherein the one or more parameters include a latency parameter, a bandwidth parameter, a quality-of-service parameter, a source of the data packets, or a destination of the data packets.

14 . The method of claim 11 , further comprising:

establishing an additional physical link between the client device and the host device;

modifying the IP tunnel to include the additional physical link; and

modifying the routing policy to reflect the additional physical link.

15 . The method of claim 11 , further comprising:

eliminating a physical link between the client device and the host device;

modifying the IP tunnel to remove the eliminated physical link; and

modifying the routing policy to reflect the eliminated physical link.

16 . A client device comprising:

a plurality of network interfaces;

at least one processor coupled to the plurality of network interfaces; and

at least one memory coupled to the at least one processor and storing executable instructions configured to cause the at least one processor and the plurality of network interfaces to:

establish an Internet Protocol (IP) tunnel with a host device, the IP tunnel having a plurality of physical links between the host device and the client device, the plurality of physical links being independently establishable and removable;

receive a data packet from a software application of the client device;

encapsulate the data packet to generate a tunnel packet; and

provide the tunnel packet to a physical link for transmission to the host device, the physical link selected from the plurality of physical links based on routing policy representing routing rules for routing data packets over the plurality of physical links based on one or more parameters of the data packets.

17 . The client device of claim 16 , wherein the one or more parameters include a latency parameter, a bandwidth parameter, a quality-of-service parameter, a source of the data packets, or a destination of the data packets.

18 . The client device of claim 16 , wherein the executable instructions are further configured to cause the at least one processor and the plurality of network interfaces to:

establish an additional physical link between the client device and the host device;

modify the IP tunnel to include the additional physical link; and

modify the routing policy to reflect the additional physical link.

19 . The client device of claim 16 , wherein the executable instructions are further configured to cause the at least one processor and the plurality of network interfaces to:

eliminate a physical link between the client device and the host device;

modify the IP tunnel to remove the eliminated physical link; and

modify the routing policy to reflect the eliminated physical link.

20 . A host device comprising:

a plurality of network interfaces;

at least one processor coupled to the plurality of network interfaces; and

at least one memory coupled to the at least one processor and storing executable instructions configured to cause the at least one processor and the plurality of network interfaces to:

establish an Internet Protocol (IP) tunnel with a client device, the IP tunnel having a plurality of physical links between the host device and the client device, the plurality of physical links being independently establishable and removable;

receive a data packet from a network connected to the host device;

encapsulate the data packet to generate a tunnel packet; and

provide the tunnel packet to a physical link for transmission to the client device, the physical link selected from the plurality of physical links based on routing policy representing one or more routing rules for routing data packets over the plurality of physical links based on one or more parameters of the data packets.