![]() |
1
16
纳特为了解释错误的原因和含义,我们必须从NAT开始(如果您熟悉NAT,可以跳过这一部分)。 NAT是一种为网络中的多个设备映射相同“全局”IP地址的方法 同一本地网络 也就是说,多个设备共享相同的地址(可能在不同的时间,可能使用不同的端口——NAPT),这样我们可以节省大量“全局”地址,并缓解ipv4地址的耗尽。也正因为如此,设备的本地地址只能在局域网内使用,不能在外部使用。要发送到外部的数据报将通过NAT设备(始终是路由器),该设备将头中的地址修改为全局地址。还有一点是 不同的局域网 可以使用相同的IP地址。
冰现在,我们想让对等体直接通信,所以我们必须知道对等体的地址。但正如我们所知,NAT的使用使得设备的地址只是一个本地地址,不能在互联网之外使用,并且无法使用它进行通信。 ICE的目的是发现对等体应该使用哪个地址直接与其他对等体通信。 收集候选人地址第一阶段收集候选地址:
为了获得公共端地址,设备将向公共服务器(称为STUN服务器,局域网外)发送“绑定请求”,并向服务器发送回称为“绑定响应”的地址。 连通性检查当设备拥有它们拥有的地址时,它们将通过信令信道发送给其他对等方。当对等体(我们称之为“R”)从我们的设备(我们称其为“L”)接收到地址列表时,R将收集自己的地址并响应自己的列表。在这个过程结束时,它会导致 候选对 . 为了查看哪些对工作,每个代理都使用“绑定请求”和“绑定请求”,安排一系列检查绑定响应”。
结论因此,总结而言,更多细节之前可能的原因:
建议:
裁判: |
![]() |
fourthking · GameSparks手动配对 6 年前 |
![]() |
0x1337 · 如何知道StreamReader何时准备就绪? 6 年前 |
![]() |
Kavin-K · 如何构建一个简单的多设备聊天应用程序?[已关闭] 6 年前 |
![]() |
Blazing Forrest · 在JAVA中查找WIFI状态 6 年前 |
![]() |
Marco · 如何计算R中igraph对象中给定类的顶点数? 6 年前 |
![]() |
John Conrad Geenty · 读取BPF程序集 6 年前 |