TCP hole punching
TCP NAT traversal and TCP hole punching refer to the case where two hosts behind a NAT are trying to connect to each other with outbound TCP connections. Such scenario is particularly important in the case of peer-to-peer communications, such as Voice-over-IP (VoIP), file sharing, teleconferencing, chat systems and similar applications.