This document discusses various techniques for transitioning from IPv4 to IPv6 and enabling their coexistence, grouped into three categories: dual stack, tunnels, and translation. Dual stack allows simultaneous support of IPv4 and IPv6, while tunnels encapsulate IPv6 packets in IPv4 and translation converts between the two protocols. Common tunneling methods include 6in4, 6to4, Teredo and Softwires. Translation via NAT-PT is discouraged due to imperfections requiring ALG support. CGNAT/NAT444 allows sharing IPv4 addresses but breaks many applications. Fully deploying IPv6 is preferable to work around IPv4 exhaustion issues.