udp协议怎么穿透Symmetric NAT

转自知乎问题:

udp协议怎么穿透Symmetric NAT? 修改
如题:
udp打洞时,如果两台处于内网的电脑,至少有一台处于内网,属于对称结构(Symmetric),那么怎么为他们点对点建立通道?
除了猜测连接外网的端口(比如有的会是刚用过端口的下几个端口),还有其他办法吗?

相关内容参考:
blog.csdn.net/jq0123/ar
NAT大致分为下面四类
1) Full Cone
这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的.
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
任何发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)

2) Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用任何端口和A通信.其他的外网机器不行.
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
任何从C发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)

3) Port Restricted Cone
这种NAT内部的机器A连接过外网的机器C后,NAT打开一个端口.然后C可以用原来的端口和A通信.其他的外网机器不行.
例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88
A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000)
C(202.88.88.88:2000)发送到 NAT(202.100.100.100:8000)的数据都可以到达A(192.168.8.100:5000)
以上三种NAT通称Cone NAT.我们只能用这种NAT进行UDP打洞.

4) Symmetic
对于这种NAT.连接不同的外部目标.原来NAT打开的端口会变化.而Cone NAT不会.虽然可以用端口猜测.但是成功的概率很小.因此放弃这种NAT的UDP打洞. 修改
举报
添加评论      邀请回答
按投票排序 按时间排序

8 个回答

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QQ去中心化通信是指不依赖于中心服务器的通信方式,而是直接通过对等网络(P2P)实现用户之间的直接通信。它的原理和协议可以参考以下解释: 1. 原理:QQ去中心化通信利用了P2P技术,将所有用户连接在一个对等网络中。每个用户都可以作为一个节点,既可以作为数据发送者,也可以作为数据接收者。当两个用户要进行通信时,它们可以直接建立连接,通过直接交换数据进行通信,而不需要经过中心服务器的转发。 2. 协议:QQ去中心化通信使用了一些特定的协议来实现节点之间的连接和数据交换。这些协议包括NAT穿越协议、打洞协议和路由协议等。NAT穿越协议用于解决用户位于不同的NAT(网络地址转换)环境下的连接问题,打洞协议用于在NAT环境下建立直接连接,路由协议用于节点之间的寻址和数据传输。 关于对称形NATSymmetric NAT),它是一种较为严格的NAT类型,会对入站和出站的数据包进行地址和端口映射,并且会为每个不同的目标地址和端口分配不同的映射地址和端口。在使用对称形NAT的情况下,QQ去中心化通信可能会遇到一些问题,具体表现为: 1. 对称形NAT限制了节点之间的直接连接:由于对称形NAT会为每个不同的目标地址和端口分配不同的映射地址和端口,因此两个使用对称形NAT的用户在建立直接连接时可能会遇到困难。 2. 需要借助中间服务器进行中转:为了解决对称形NAT的限制,QQ去中心化通信可能需要借助中间服务器进行中转,使得两个节点能够间接地进行通信。 要使得使用对称形NAT的用户能够正常工作,可能需要采用一些额外的技术手段,如中继服务器或者中继节点来进行数据转发。这样可以通过中继节点建立连接,并将数据包转发给目标用户。但是这样做会增加一定的延迟和带宽消耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值