Preallocation of Client Network Address Translation Addresses for Client-Server Networks
First Claim
1. A method for allocating memory for a client network address translation (NAT) pool, comprising:
- creating a client NAT address range;
allocating a memory pool to store the client NAT address range;
allocating a first subpool of the memory pool upon receiving a connection request;
establishing connection blocks within the subpool;
assigning client NAT addresses to the connection blocks of the first subpool for each connection being requested;
allocating a second subpool when a number of connection blocks in the first subpool not being assigned a client NAT address reaches a threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved client network address translation (“NAT”) system is provided. Methods are provided for initializing connection control blocks with the client NAT addresses when a storage pool of connection control blocks are allocated. This avoids the costly overhead as connections are created and destroyed. Unlike the prior art solutions, once the connection control blocks of the present invention are allocated, they remain in effect until the storage subpool is deleted. Secondly, in order to provide as large a pool of client NAT addresses as possible, methods are provided for using intervals to allocate and reclaim client NAT addresses as subpools are allocated and freed.
61 Citations
20 Claims
-
1. A method for allocating memory for a client network address translation (NAT) pool, comprising:
-
creating a client NAT address range;
allocating a memory pool to store the client NAT address range;
allocating a first subpool of the memory pool upon receiving a connection request;
establishing connection blocks within the subpool;
assigning client NAT addresses to the connection blocks of the first subpool for each connection being requested;
allocating a second subpool when a number of connection blocks in the first subpool not being assigned a client NAT address reaches a threshold value. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer readable medium including code for allocating memory for a client network address translation (NAT) pool, the code operable to:
-
create a client NAT address range;
allocate a memory pool to store the client NAT address range;
allocate a first subpool of the memory pool upon receiving a connection request;
establish connection blocks within the subpool;
assign client NAT addresses to the connection blocks of the first subpool for each connection being requested;
allocate a second subpool when a number of connection blocks in the first subpool not being assigned a client NAT address reaches a threshold value. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system for allocating memory for a client network address translation (NAT) pool, comprising:
-
means for creating a client NAT address range;
means for allocating a memory pool to store the client NAT address range;
means for allocating a first subpool of the memory pool upon receiving a connection request;
means for establishing connection blocks within the subpool;
means for assigning client NAT addresses to the connection blocks of the first subpool for each connection being requested;
means for allocating a second subpool when a number of connection blocks in the first subpool not being assigned a client NAT address reaches a threshold value. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system for allocating memory for a client network address translation (NAT) pool, comprising:
-
a load balancer operable to create a client NAT address range;
a memory manager operable to allocate a memory pool to store the client NAT address range, the memory manager operable to allocate a first subpool of the memory pool upon receiving a connection request;
an address manager operable to initialize connection blocks within the first subpool;
wherein the load balancer is operable to assign client NAT addresses to the connection blocks of the first subpool for each connection being requested;
wherein the memory manager is operable to allocate a second subpool when a number of connection blocks in the first subpool not being assigned a client NAT address reaches a threshold value. - View Dependent Claims (17, 18, 19, 20)
-
Specification