Preallocation of client network address translation addresses for client-server networks
First Claim
1. A method of allocating memory for a client network address translation (NAT) pool, said method comprising the steps of:
- creating a control block that represents a client NAT address range, said control block identifying client NAT addresses for a computer system;
creating a memory pool having a main pool header, said main pool header having an address referenced in said control block;
allocating at least one subpool header having a subpool memory block containing one or more fixed-length connection blocks that are allocated within said subpool memory block, said connection blocks containing particular ones of said client NAT addresses, said subpool header being referenced by said main pool header;
wherein each connection block may be either free or allocated, said particular ones of said client NAT addresses remain allocated within said subpool memory until all connection blocks in said subpool memory are free.
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.
-
Citations
13 Claims
-
1. A method of allocating memory for a client network address translation (NAT) pool, said method comprising the steps of:
-
creating a control block that represents a client NAT address range, said control block identifying client NAT addresses for a computer system; creating a memory pool having a main pool header, said main pool header having an address referenced in said control block; allocating at least one subpool header having a subpool memory block containing one or more fixed-length connection blocks that are allocated within said subpool memory block, said connection blocks containing particular ones of said client NAT addresses, said subpool header being referenced by said main pool header; wherein each connection block may be either free or allocated, said particular ones of said client NAT addresses remain allocated within said subpool memory until all connection blocks in said subpool memory are free. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of allocating memory for a client network address translation (NAT) pool, said method comprising the steps of:
-
configuring a client network address translation (NAT) address range having a plurality of client NAT addresses; allocating said client NAT address range; allocating memory for a memory pool; creating said memory pool; creating a subpool within said memory pool, said subpool containing a subpool memory block containing one or more connection blocks that are allocated within said subpool, said subpool constructed and arranged to contain connection blocks with particular ones of said plurality of client NAT addresses within said client NAT address range; wherein each connection block is either free or allocated, said particular ones of said plurality of client NAT addresses remain allocated within said subpool until all of said connection blocks are free. - View Dependent Claims (11, 12)
-
-
13. A method of allocating memory in software for a client network address translation (NAT) pool, said method comprising the steps of:
-
creating an internal control block that represents said client NAT address range, said control block identifying client NAT addresses for the computer system; creating a main pool header; allocating at least one subpool header having a subpool memory block containing one or more fixed-length connection blocks that are allocated within said subpool memory block, said connection blocks containing particular ones of said client NAT addresses, said subpool header being referenced by said main pool header; wherein each connection block is either allocated or free, said particular ones of said client NAT addresses remain allocated within said subpool memory until all of said connection blocks are free.
-
Specification