Method allocation scheme for maintaining server load balancers services in a high throughput environment
First Claim
1. A computer system for a client network address translation (NAT) pool, said computer system comprising:
- a memory pool operable to store client NAT addresses, each client NAT address being associated with an identity of an entity on a network;
a control block, said control block constructed and arranged to contain at least one parameter, said control block containing an address for said memory pool, said control block identifying client NAT addresses for the computer system determined prior to allocation of said memory pool;
wherein said memory pool includes a pool header having a pointer; and
wherein said memory pool includes at least one subpool header, said subpool header being pointed to by said pointer of said pool header, said at least one subpool header having a pointer to a subsequent subpool header in said memory pool, said subpool header being associated with a subpool memory within said memory pool, said subpool memory having a plurality of connection blocks, each connection block being populated with a particular one of said client NAT addresses as allocated by said control block;
wherein an individual client NAT address may be either free or allocated, but client NAT addresses remain allocated in said subpool memory until all of said client NAT addresses in said connection blocks of said subpool memory are free.
2 Assignments
0 Petitions
Accused Products
Abstract
An improved client network address translation (“NAT”) system is provided. A memory allocation scheme is 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, the allocation scheme enables a large pool of client NAT addresses and reclaim client NAT addresses as subpools are allocated and freed.
57 Citations
20 Claims
-
1. A computer system for a client network address translation (NAT) pool, said computer system comprising:
-
a memory pool operable to store client NAT addresses, each client NAT address being associated with an identity of an entity on a network; a control block, said control block constructed and arranged to contain at least one parameter, said control block containing an address for said memory pool, said control block identifying client NAT addresses for the computer system determined prior to allocation of said memory pool; wherein said memory pool includes a pool header having a pointer; and wherein said memory pool includes at least one subpool header, said subpool header being pointed to by said pointer of said pool header, said at least one subpool header having a pointer to a subsequent subpool header in said memory pool, said subpool header being associated with a subpool memory within said memory pool, said subpool memory having a plurality of connection blocks, each connection block being populated with a particular one of said client NAT addresses as allocated by said control block; wherein an individual client NAT address may be either free or allocated, but client NAT addresses remain allocated in said subpool memory until all of said client NAT addresses in said connection blocks of said subpool memory are free. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for allocating memory for a client network address translation (NAT) pool, comprising:
-
means for creating an internal control block that represents a range of client NAT addresses, each client NAT address being associated with an identity of an entity on a network; means for creating a main pool header; means for allocating at least one subpool header having a subpool memory block containing a plurality of connection blocks, said connection blocks containing particular client NAT addresses of the client NAT address range as allocated from said control block, said subpool header being referenced by said main pool header; wherein said particular client NAT addresses remain allocated within said subpool memory until all of said connection blocks in said subpool memory block are freed.
-
-
20. A memory allocation system for a computer, said system comprising:
-
a memory pool operable to store client network address translation (NAT) addresses, each client NAT address being associated with an identity of an entity on a network; a control block, said control block constructed and arranged to contain at least two parameters;
one of said parameters for said control block being an address for said memory pool;means for accepting user input parameters, said input parameters being contained in said control block; and means for creating a client NAT subpool within said memory pool, said means for creating said client NAT subpool including means for allocating a client NAT address range, means for allocating to said client NAT subpool particular addresses within said client NAT address range, means for freeing said particular addresses in said client NAT address range, and means for deallocating said particular addresses in said client NAT address range; wherein said particular addresses within said client NAT address range remain allocated within said subpool until all of said particular addresses within said client NAT address range of said client NAT subpool have been freed.
-
Specification