In various networking protocols, particularly protocols that allow for request/response client/server communications, provision is made for proxies that serve as intermediaries between clients and servers. When a proxy serves as an intermediary for the client and server, rather than a client directly transmitting requests to servers, and servers directly transmitting responses to clients, the client sends requests to the proxy, for forwarding by the proxy to the server, and the server sends responses back to the proxy, for forwarding back to the client. Proxies serve as a useful indirection within a network to allow for flexibility in application network location, load balancing, and for other reasons.
In certain protocols, each exchange of messages or packets between a client and server have deterministic and identifiable end points. In other words, at the onset of an exchange, the number of messages that will constitute the exchange of messages or packets can be determined. In other cases, the maximum amount of time that a connection between a client and server may remain open can be determined or specified. However, in connectionless network protocols, such as the IP User Datagram Protocol (“UDP”), a proxy cannot determine when an exchange of packets or messages begins or ends. In some cases, messages or packets may arrive at the proxy at any time as part of a connectionless, open-ended exchange of packets between two remote network entities. In other cases, a connection-based network protocol may allow for open-ended connections of indeterminate length. Open-ended or connectionless network protocols present a difficult problem for a proxy. In general, the proxy maintains information related to message exchanges, including network addresses and remote-entity identities, so that the proxy, upon receiving a next message or packet from a remote entity, can forward the message or packet to the corresponding remote entity of a pair of communicating remote entities as part of a connection-based, connectionless, or open-ended-connection-based network protocol. However, the proxy cannot determine for how long a connection may remain open, and as new packet or message exchanges are detected, and as resources are allocated for them, the proxy may end up managing increasingly large sets of resources devoted to current packet and message exchanges. These increasingly large sets of active resources may cause large computational overheads and efficiencies for proxies, as they seek to locate particular resources and add and delete resources from the set of active resources. For this reason, designers, developers, and users of networking protocols that provide for proxy intermediaries have all recognized the need for other methods and systems for managing resources by proxies.