According to the Wikipedia article the Micro Transport Protocol supports NAT traversal using UDP hole punching. But looking at the libutp's project page I can't find any such reference in the header files. Am I missing something obvious? Or has the NAT traversal been implemented somewhere else?
libutp (µTP) and NAT traversal (UDP hole punching)
2.4k Views Asked by Petr At
1
There are 1 best solutions below
Related Questions in NAT
- Issue with K6 Operator and Cloud NAT connection count during stress testing
- AWS: Putting together ELB, NAT Gateway and Public Subnet - Not working
- When iptables is used for reverse proxy, how does the proxy server know the client IP address after the real-server replies messages?
- How to make local packets go through nat / prerouting (they go directly to filter / input)
- Usage of Multiple Egress IPs in Google Cloud NAT Setup
- ICMP request not been forwarded by NAT instance
- NAT KeepAlive Package in Android
- Getting internet Access to Ec2 instance in a public subnet without having a public IPv4
- AWS Lambda init phase timeout in VPC
- Node Application not writing to the correct griddb cluster
- P2P Connection Issue with NAT Traversal on Mobile Devices
- Why is Azure NAT not affecting my effective routes from my Azure routing table?
- Why is my device marked as unknown device when using "Mono.Nat.NatUtility.StartDiscovery()"?
- How to perform NAT hole punching on an additional client mid-session?
- Tethering - Sharing mobile network to LAN
Related Questions in BITTORRENT
- Torrent not downloading immediately after adding when only 1 seeding peer
- Implementing find node on torrent kademlia routing table
- magnet torrent by private server
- Android fragmented ProgressBar (like defrag or bittorrent)
- How to get responses to ut_metadata piece request ? (node.js Bit Torrent BEP 0009)
- How do I convert a base64 encoded torrent info_hash to a magnet link info_hash? (Linux)
- SHA1 Hash in BitTorrent is not text
- Cherry pick peers using Rasterbar libtorrent in Python
- How could a file be corrupted?
- How does the client divide the file?
- Can applications coexist within the same DHT?
- BitTorrent protocol: Why am I getting extra data with handshakes?
- parsing BEP9(ut_metadata) data message
- NullPointerException on unchanged bittorrent library of BitLet
- Significance of piece index in bittorrent file transfer?
Related Questions in NAT-TRAVERSAL
- To allow IPsec NAT-T traffic to pass through, why does the firewall still need to permit ESP when it already allows UDP 4500?
- libnice simple-example.c crash
- Easy way to transfer data globally in a Peer-to-Peer network using C#
- xfrm state encap espinudp: caputure espinudp package but xfrm not work
- BitTorrent / P2P NAT Traversal?
- Why doesn't WebRTC work with Symmetric NAT?
- How to implement UDP Hole Punching?
- LibTorrent Nat Traversal
- Shellhub connect to device using SSHID
- Send data between different LANs in python
- Should empty string icecandidate be added by addicecandidate?
- Open network, unable to connect to my devices (two linux laptops and Android smartphone, ), preferably SHH
- Peer-to-peer over Internet on Qt
- P2P multiplayer android NAT traversal solutions/libraries?
- How do you do NAT traversal for RTP media using Kamailio for signalling?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
UDP hole punching is not really specific to any protocol, it does not even need to be supported by the protocol that needs to traverse the NAT. I.e. it can happen out of band or at a higher protocol layer.
In the case of bittorrent-over-utp it is negotiated and initiated with the BEP55
ut_holepunchextension message. In addition to the specification you could also read libtorrent's implementation.