{"title":"Decentralized Hole Punching","authors":"Marten Seemann, Max Inden, Dimitris Vyzovitis","doi":"10.1109/ICDCSW56584.2022.00027","DOIUrl":null,"url":null,"abstract":"We present a decentralized hole punching mechanism built into the peer-to-peer networking library libp2p [1]. Hole punching is cru-cial for peer-to-peer networks, enabling each participant to directly communicate to any other participant, despite being separated by firewalls and NATs. The decentralized libp2p hole punching proto-col leverages protocols similar to STUN (RFC 8489 [2]), TURN (RFC 8566 [3]) and ICE (RFC 8445 [4]), without the need for any cen-tralized infrastructure. Specifically, it doesn't require any previous knowledge about network participants other than at least one (any arbitrary) node to bootstrap peer discovery. The key insight is that the protocols used for hole punching, namely address discovery and relaying protocols, can be built such that their resource require-ments are negligible. This makes it feasible for any participant in the network to run these, thereby enabling the coordination of hole punch attempts, assuming that at least a small fraction of nodes is not located behind a firewall or a NAT.","PeriodicalId":357138,"journal":{"name":"2022 IEEE 42nd International Conference on Distributed Computing Systems Workshops (ICDCSW)","volume":"60 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 42nd International Conference on Distributed Computing Systems Workshops (ICDCSW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICDCSW56584.2022.00027","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
We present a decentralized hole punching mechanism built into the peer-to-peer networking library libp2p [1]. Hole punching is cru-cial for peer-to-peer networks, enabling each participant to directly communicate to any other participant, despite being separated by firewalls and NATs. The decentralized libp2p hole punching proto-col leverages protocols similar to STUN (RFC 8489 [2]), TURN (RFC 8566 [3]) and ICE (RFC 8445 [4]), without the need for any cen-tralized infrastructure. Specifically, it doesn't require any previous knowledge about network participants other than at least one (any arbitrary) node to bootstrap peer discovery. The key insight is that the protocols used for hole punching, namely address discovery and relaying protocols, can be built such that their resource require-ments are negligible. This makes it feasible for any participant in the network to run these, thereby enabling the coordination of hole punch attempts, assuming that at least a small fraction of nodes is not located behind a firewall or a NAT.