1- Although Internet Protocol version 6 (IPv6) rectified the valid IPv4 shortage, Network Address Translation (NAT) was deployed to decrease overwhelming demand for registered IPv4 addresses. By using NAT in both client / server and Peer-to-Peer networks, many problems which effect the rate of data downloading and uploading for users such as network overhead and packet discarding were encountered; however, the effecting rate of each problem relates to the use of TCP and UDP ports. There are many different methods which are used to rectify P2P NAT problems. One of the best and most basic methods used in P2P NAT is Hole Punching. This technique, which has been discussed in this article, allows clients in private networks to connect together by using TCP and UDP ports. During the next few years, although due to the explosion in use of IPv6 the request for NAT will decrease, address translation will still be needed by many clients, who use IPv4. Therefore, a new protocol, which is called Network Address Translation - Protocol Translation (NAT-PT), is necessary to translate the packet s header from IPv4 to IPv6. Replacing IPv4 by IPv6 has intensified these problems for the clients