
Abstract
Setting up connections to hosts behind Network Address Translation (NAT) equipment has last been the subject of research debates half a decade ago when NAT technology was still immature. This paper fills this gap and provides a solid comparison of two essential TCP hole punching approaches: sequential and parallel TCP hole punching. The comparison features current conditions and thoroughly compares setup delay, implementation complexity, resource usage, and effectuality of the two approaches. The result is a list of recommendations and a portable, effectual, and open-source Java implementation.
BibTeX (Download)
@inproceedings{Maier2011NAT, title = {NAT Hole Punching Revisited}, author = {Daniel Maier and Oliver Haase and Jürgen Wäsch and Marcel Waldvogel}, url = {https://netfuture.ch/wp-content/uploads/2011/maier11nat.pdf}, year = {2011}, date = {2011-10-07}, urldate = {1000-01-01}, booktitle = {Proceedings of IEEE LCN 2011, The 36th IEEE Conference on Local Computer Networks}, abstract = {Setting up connections to hosts behind Network Address Translation (NAT) equipment has last been the subject of research debates half a decade ago when NAT technology was still immature. This paper fills this gap and provides a solid comparison of two essential TCP hole punching approaches: sequential and parallel TCP hole punching. The comparison features current conditions and thoroughly compares setup delay, implementation complexity, resource usage, and effectuality of the two approaches. The result is a list of recommendations and a portable, effectual, and open-source Java implementation.}, keywords = {NAT traversal, Peer-to-Peer}, pubstate = {published}, tppubtype = {inproceedings} }