libutp (µTP) 和 NAT 遍历(UDP 打孔)
Posted
技术标签:
【中文标题】libutp (µTP) 和 NAT 遍历(UDP 打孔)【英文标题】:libutp (µTP) and NAT traversal (UDP hole punching) 【发布时间】:2016-12-11 16:54:02 【问题描述】:根据 Wikipedia 文章,Micro Transport Protocol 支持使用 UDP 打孔的 NAT 穿越。但是看着libutp's project page,我在头文件中找不到任何这样的参考。我错过了一些明显的东西吗?还是在其他地方实现了 NAT 穿越?
【问题讨论】:
如果你使用 Rust,你可能会对 github.com/canndrew/tokio-utp 和 github.com/ustulation/p2p crates 感兴趣。 p2p crate 对 TCP 和 UDP 进行 NAT 遍历(包括打孔)。然后你可以用 tokio-utpUtpSocket
包裹一个打孔的 UDP 套接字...
【参考方案1】:
UDP 打洞并不是真正特定于任何协议,甚至不需要需要穿越 NAT 的协议支持。 IE。它可能发生在带外或更高的协议层。
在 bittorrent-over-utp 的情况下,它是通过 BEP55 ut_holepunch
extension message 协商和启动的。除了规范,您还可以阅读libtorrent's implementation。
【讨论】:
以上是关于libutp (µTP) 和 NAT 遍历(UDP 打孔)的主要内容,如果未能解决你的问题,请参考以下文章