Patent ID: 7346770

Claim:
A method for sending user datagram protocol encapsulated encapsulating security protocol packets through a network address translation device on a private network from a client on the private network to a server on a public network, using a key management and exchange protocol negotiation, comprising: determining whether both the client and server are capable of sending the user datagram protocol encapsulated encapsulating security protocol packets, wherein the client sends a first key management and exchange protocol packet to the server and receives a second key management and exchange protocol packet from the server ,the first and second key management and exchange protocol packet send over first source and destination user datagram protocol port; creating an entry in a data structure that uniquely identifies a connection between the client and the server exchanging key management and exchange protocol packets sent over the first source and destination user datagram protocol ports, the entry including at least an internet protocol address of the client and an internet protocol address of the server; determining whether at least one of the client or the server operate behind the network address translation device; and if it is determined that at least one of the client or the server operate behind the network address translation device; selecting second source and destination ports, the second source and destination ports being distinct from the first source and destination ports; and sending the user datagram protocol encapsulated encapsulating security protocol packets over the second source and destination ports so that the user datagram protocol encapsulated encapsulating security protocol packets are able to traverse the network address translation device, wherein the server identifies the client using the data structure; wherein the network address translation device interprets the user datagram protocol encapsulated encapsulating security protocol packets designating the first destination port as key management and exchange protocol packets and user datagram protocol encapsulated encapsulating security protocol packets designating the second destination port as non-key management and exchange protocol packets.