# US 8,543,706 B2 · Communication module for connecting application program to virtual private network

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

- Number: US 8,543,706 B2
- Document ID: US8543706B2
- Status: Granted
- Kind: B2
- Application number: 12/301,990
- Filed: 2007-05-23
- Published: 2010-10-07
- Granted: 2013-09-24
- Earliest claimed: 2006-05-23
- Assignees: Freebit AS
- Applicants: Hirotaka Niisato; Atsuki Ishida
- Inventors: Hirotaka Niisato; Atsuki Ishida
- Web page: https://patentgrep.com/patent/US8543706B2

## CPC

- H04L 12/4679: {Arrangements for the registration or de-registration of VLAN attribute values, e.g. VLAN identifiers, port VLAN membership}
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- H04L 69/26: {Special purpose or proprietary protocols or architectures (network applications for proprietary or special purpose networking environments H04L67/12)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Bidirectional communication is performed by an application employing particular communication protocols without depending on any specific network environment enabled by an OS and the like. There is provided a communication module installed in a client apparatus for connecting an application software program to a virtual network via a server on the Internet. This module interposes between the application software program in a computer and a group of local communication protocol stacks of an operating system installed in the computer; retains a virtual network address for the application software program; performs the tunneling processing on packets from the application software program to the virtual network to thereby pass the processed packets to the server through the local communication protocol stacks; and is provided with Layer 2, 3 and 4 protocol stacks that are independent of a group of local communication protocol stacks.

## Claims

### Claim 1

A non-transitory computer readable medium having stored computer-executable instructions comprising:
a communication module, installable in a client apparatus on a local network that enables an application software program installed in said client apparatus to connect to a virtual private network via a server on the Internet,
wherein the communication module enables said corresponding application software program to connect to the virtual private network, said corresponding application software program assigned a unique virtual private network address by said server on the Internet;
wherein said communication module interposes between said application software program and a group of local communication protocol stacks of an operating system of said client apparatus; retains the virtual private network address uniquely assigned to said application software program by said server on the Internet; performs a tunneling processing on packets from said application software program to the virtual private network destined to thereby pass the processed packets to said server on the Internet through the local communication protocol stacks;
wherein said communication module is provided with protocol stacks required for said application software program to communicate via the virtual private network, independently of said group of local communication protocol stacks; and
wherein said communication module stores a global address of the server on the Internet and establishes a tunneling connection between the communication module and the server based on the global address of the server.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein
said communication module captures a request packet from the application software program, encapsulates the captured request packet after adding to the packet the virtual private network address of the application software program as an originating address to thereby send the capsulated packet to the server via the tunneling connection; and
decapsulates a packet addressed to the communication module itself received through the local communication protocol stacks to pass the decapsulated packet to the application software program.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein
said communication module connects to a tunneling mediation server provided on the Internet, and receives the global address of the server from the tunneling mediation server.

### Claim 4 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein
the virtual private network address received from the server on the Internet and retained in the communication module is an IP address for the virtual private network for said application software program.

### Claim 5 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein
the virtual private network address received from the server on the Internet and retained in the communication module is MAC and IP addresses for the application software program to connect to the virtual private network.

### Claim 6 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein
the communication module is provided as a library program callable from the application software program.

### Claim 7 (depends on 1)

The non-transitory computer readable medium of claim 1,
wherein said communication module has an initialization section in communication with said application software program configured to determine if said application program requires to establish a Layer 2 or a Layer 3 connection with the server, and
generate all of Layer 2, 3 and 4 protocol stacks if it determines said application software program requires a Layer 2 connection with the server, and
generate only the Layer 3 and 4 protocol stacks, but not the Layer 2 protocol stack if it determines that said application program requires a Layer 3 connection with said server.

### Claim 8 (depends on 1)

A non-transitory computer readable medium storing an application software program having instructions that, when executed by a computer, cause the computer to connect to the Internet to perform predetermined processing, call and incorporate the communication module of claim 1 as a communication interface, wherein the application software program is configured to have an IP address independent of said computer.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, wherein
the application software program is a VoIP program for connecting to a virtual private network via a server on the Internet.

### Claim 10 (depends on 8)

The computer-readable storage medium of claim 8, wherein
the application software program is a proxy for connecting a client apparatus to a virtual private network via a server on the Internet.

### Claim 11 (depends on 8)

The computer-readable storage medium of claim 8, wherein
the application software program is a VoIP application software program that utilizes a protocol, requiring address management and sharing the address management with IP address management for a tunneling protocol.

### Claim 12 (depends on 11)

The computer-readable storage medium of claim 11, wherein
said protocol is SIP.
