Methods and apparatus for peer to peer network communication. In one implementation, a method of communicating between a first client system and a second client system includes: discovering first address information for a first client system connected to a first network address translation device; sharing the first address information with a second client system; receiving second address information for the second client system; and establishing communication between the first client system and the second client system using the second address information.