An authentication protocol can be used to establish a secure method of
communication between two devices on a network. Once established, the
secure communication can be used to authenticate a client through various
authentication methods, providing security in environments where
intermediate devices cannot be trusted, such as wireless networks, or
foreign network access points. Additionally, the caching of session keys
and other relevant information can enable the two securely communicating
endpoints to quickly resume their communication despite interruptions,
such as when one endpoint changes the access point through which it is
connected to the network. Also, the secure communication between the two
devices can enable users to roam off of their home network, providing a
mechanism by which access through foreign networks can be granted, while
allowing the foreign network to monitor and control the use of its
bandwidth.