# US 8,751,670 B2 · Methods and devices for providing internet access through a restricted device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,670 B2
- Document ID: US8751670B2
- Status: Granted
- Kind: B2
- Application number: 13/187,082
- Filed: 2011-07-20
- Published: 2012-01-26
- Granted: 2014-06-10
- Earliest claimed: 2010-07-21
- Assignees: Chuyue Xu
- Applicants: Chuyue Xu
- Inventors: Chuyue Xu
- Web page: https://patentgrep.com/patent/US8751670B2

## CPC

- H04L 69/326: in the transport layer [OSI layer 4] (H04L69/16 takes precedence)
- H04L 69/325: in the network layer [OSI layer 3], e.g. X.25 (H04L69/16 takes precedence)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

According to an aspect of the disclosure, novel solutions are disclosed for providing Internet access to a client device (e.g., desktop computer, laptop computer, tablet computer or portable electronic device) using non-privileged portions of an application programming interface (“API”) of a gateway device (e.g., smartphone or cellular phone). According to another aspect of the disclosure, novel solutions are provided for building a Wireless Internet gateway system through a Wi-Fi capable gateway device that also has Internet access provisioned by a cell phone carrier. A Wi-Fi Internet gateway system can be implemented on a device where it was originally impossible to do so, due to various access restrictions to core functionalities, such as root access restrictions.

## Claims

### Claim 1

A method of providing Internet access to a client device connected to a gateway device that is configured to establish an Internet connection, the method comprising:
receiving, at the gateway device, at least one outgoing IP frame generated by a client device;
determining a type of the at least one outgoing IP frame using a gateway platform of the gateway device, wherein the gateway platform is configured to access a network application programming interface of the gateway device that is configured to create and control TCP/UDP connections;
generating, using the gateway platform, at least one invocation in response to receiving the at least one outgoing IP frame; and
forwarding, using the gateway platform, the at least one invocation to particular, non-privileged portions of the network application programming interface.

### Claim 2 (depends on 1)

The method of claim 1, wherein the header information comprises a TCP header, a SYN flag, a destination address and a destination port, and wherein the method comprises:
operating the non-privileged portions of the network application programming interface, in response to receiving the at least one invocation, to create a new TCP connection between the gateway device and a destination device associated with the destination address and destination port.

### Claim 3 (depends on 1)

The method of claim 1, wherein the header information comprises a TCP header, a FIN flag, a destination address and a destination port, and wherein the method comprises:
operating the non-privileged portions of the network application programming interface, in response to receiving the at least one invocation, to terminate a TCP connection between the gateway device and a destination device associated with the destination address and destination port.

### Claim 4 (depends on 1)

The method of claim 1, wherein the header information comprises a TCP header, a RST flag, a destination address and a destination port, and wherein the method comprises:
operating the non-privileged portions of the network application programming interface, in response to receiving the at least one invocation, to terminate a TCP connection between the gateway device and a destination device associated with the destination address and destination port.

### Claim 5 (depends on 1)

The method of claim 1, wherein the header information comprises a TCP header, a TCP payload section, a destination address and a destination port, and wherein the method comprises:
operating the non-privileged portions of the network application programming interface, in response to receiving the at least one invocation, to forward contents of a TCP payload section of the IP frame over an existing TCP connection.

### Claim 6 (depends on 1)

The method of claim 1, wherein the header information comprises a UDP header, a UDP payload section, a destination address and a destination port, and wherein the method comprises:
operating the non-privileged portions of the network application programming interface, in response to receiving the at least one invocation, to forward contents of a UDP payload section of the IP frame to a destination specified by the destination address and destination port.

### Claim 7 (depends on 6)

The method of claim 6, wherein:
the destination port is a DNS port;
the at least one outgoing IP frame includes a payload section comprising a DNS query; and
the non-privileged portions of the network application programming interface are configured to complete an Internet domain name look-up.

### Claim 8 (depends on 1)

The method of claim 1, wherein the gateway platform is implemented by instructions stored on at least one memory device in the gateway device.

### Claim 9 (depends on 1)

The method of claim 1, wherein the gateway device is a smartphone or a cellular phone.

### Claim 10 (depends on 9)

The method of claim 9, wherein the client device is a desktop computer, a laptop computer, a tablet computer or a portable electronic device.

### Claim 11

A gateway device configured to provide Internet access to a client device seeking Internet access through the gateway device, the gateway device comprising:
a transceiver configured to receive at least one outgoing IP frame generated by the client device;
a network application programming interface configured to create and control TCP or UDP connections; and
a gateway platform configured to access the network application programming interface,
determine a type of the at least one outgoing IP frame by detecting header information of the at least one outgoing IP frame,
generate at least one invocation based on the header information, and
forward the at least one invocation to particular, non-privileged portions of the network application programming interface.

### Claim 12 (depends on 11)

The gateway device of claim 11, wherein:
the header information comprises a TCP header, a SYN flag, a destination address and a destination port; and
in response to receiving the at least one invocation, the non-privileged portions of the network application programming interface are configured to create a new TCP connection between the gateway device and a destination device associated with the destination address and destination port.

### Claim 13

A computer program product comprising one or more computer-readable non-transitory storage media having stored thereon computer-executable instructions that, when executed by one or more processors of a computer system, cause the computer system to implement a method of providing Internet access to a client device connected to a gateway platform, the method comprising:
accessing, at the gateway platform, a network application programming interface configured to create and control TCP or UDP connections of a gateway device, wherein the gateway device is configured to provide Internet access to a client device seeking Internet access through the gateway device;
determining, by the gateway platform, a type of the at least one outgoing IP frame generated by the client device, by detecting header information of the at least one outgoing IP frame;
generating, by the gateway platform, at least one invocation based on the header information; and
forwarding, by the gateway platform, the at least one invocation to particular, non-privileged portions of the network application programming interface.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein:
the header information comprises a TCP header, a SYN flag, a destination address and a destination port; and
in response to receiving the at least one invocation, the non-privileged portions of the network application programming interface are configured to create a new TCP connection between the gateway device and a destination device associated with the destination address and destination port.
