10 | WebRTC NAT穿越原理
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
WebRTC中的NAT穿越技术是一项复杂而重要的技术,本文介绍了NAT的四种类型及其特点和工作原理。文章详细解释了NAT类型检测的流程,帮助读者深入了解NAT穿越的原理和相关技术特点。通过对NAT类型的判断,可以更容易地实现NAT穿越,进而实现音视频数据的传输。文章还提出了对称型NAT与其他类型NAT之间无法打洞成功的问题,并鼓励读者分享他们的想法和思考过程。这篇文章对于理解WebRTC中的网络传输和安全机制具有重要意义,对读者具有很高的参考价值。
《从 0 打造音视频直播系统》,新⼈⾸单¥59
全部留言(24)
- 最新
- 精选
- 花果山の酸梅汤类型(A-B) 建立状况 完全锥型-完全锥型 A通过server获得B的IP:port开始通信 完全锥型-IP限制型 B通过server获得A的IP:port开始通信 完全锥型-port限制型 B通过server获得A的IP:port开始通信 完全锥型-对称型 B通过server获得A的IP:port开始通信 IP限制型-IP限制型 A通过server获得B的IP:port,A向B发送UDP包,数据通过自己的NAT时会为B建立NAT映射条目;B通过server获得A的IP:port,发送UDP包为A建立NAT映射条目,二者之后就可以开始通信。 IP限制型-port限制型 A通过server获得B的IP:port,A向B发送UDP包,数据通过自己的NAT时会为B建立NAT映射条目;B通过server获得A的IP:port,发送UDP包为A建立NAT映射条目,二者之后就可以开始通信。 IP限制型-对称型 A通过server获得B的IP:port1,A向B发送UDP包,数据通过自己的NAT时会为B建立NAT映射条目;B通过server获得A的IP:port,发送UDP包为A建立NAT映射条目,A收到B的UDP包,获得B新的IP:port2;A向B的新地址IP:port2发送数据,可以开始通信。 port限制型-对称型 A通过server获得B的IP:port1,A向B发送UDP包,数据通过自己的NAT时会为B建立NAT映射条目;B通过server获得A的IP:port,发送UDP包为A建立NAT映射条目,但由于B更换了新端口port2,A刚建立的映射无法使用,A故此无法收到B为A通信使用的新端口,无法建立NAT映射,两者无法互通。 对称型-对称型 同上,对称型开启新端口对方无法获悉,无法建立链接。 无法P2P就需要用TURN服务器转发数据了…
作者回复: 非常赞!描述的非常清楚!
2019-08-06537 - 李新请教一下,除了生日攻击,还有其他方法提高P2P的打洞成功率吗?
作者回复: 在中国,P2P 成功率很低,尤其是移动互联网。
2019-11-035 - 杨凯老师您好,请问下:客户端C与服务端S进行socket通讯,TCP握手连接成功后,通过抓包分析端口是25568,然而,S端收到的第一个数据包的端口变成25567,导致C端报错connection reset,能说下什么原因吗?
作者回复: socket的端口实现上代表的是一个应用(一个应用程序)。本来是 25568 这个应用在提供服务,给果有一个包来了说让 25567 对应的应用来提供服务,当你的操作系统收到这个包时,就将数据传给 25567这个应用。但实际上你的系统上就没有 25567 这个应用,那系统怎么办呢?它的作法很简单,就是返回一个reset,告诉发送端这个连接是不存在的,请重新进行三次握手。
2020-05-142 - Happy~张🤔请问一下,stun服务器作为net打洞,那打洞成功后,后面传输还是会利用stun进行转发媒体信息进行通信吗?如果不是外网信息怎么转到内网的?
作者回复: WebRTC内部首先会判断对方是否与自己在同一个网段,也就是说先判断通信双方是否在内网。如果是在内容就直接进行通信了。如果不在内网,会偿试 P2P 穿越,一旦穿越成功,双方就直接通信了,后面的传输不会用到 STUN服务器。
2019-11-102 - 李新请教一下,NAT类型的探测这么复杂,而且需要的时间也久,webrtc在P2P的时候是不是不需要探测NAT类型,而只是对着ICE Candidate相互发包就可以了?
作者回复: 是进行 NAT 探测的,逻辑复杂,但执行速度很快!
2019-11-0321 - Jason尝试回答思考题,不知道理解的对不对,还请老师指正: 对称型NAT之间打洞失败:对称型NAT是内网主机通过STUN服务返回的外网IP:port,只是针对STUN服务的,而跟其他外网设备的链路是直接不能相通的。 端口受限型NAT与对称型NAT之间打洞失败:端口受限型NAT是指内网主机通过STUN服务返回的外网IP:port,要求外网设备的IP和端口是不能变的,否则链路不通。但对称型NAT针对内网主机的不同端口而映射出来的外网地址,明显不能保证IP和端口不变。
作者回复: 是可以这么理解的。在本文中我讲的一个重点是映射表,从映射表的角度去思考这各种类型的NAT理解起来会更清晰哈!
2019-08-061 - piboye对称型可以通过生日悖论来突破吧,只是要尝试的次数太多,时间延迟较大
作者回复: 是的
2020-12-23 - 斜月浮云请问,如果对称NAT的B每次改变IP和端口,那么IP限制NAT主机A与对称NAT的B怎么建立连接呢?
作者回复: A 先给 B发消息。此时,A 的NAT表里会增加这样一条记录<srcIP, srcPort, dstIP>,然后 B再给A发消息。B的消息过来之后,A的 NAT 发现来的这个主机的IP地址在地址表中,所以放行。
2019-09-255 - momo探测 NAT 环境的时候为什么要向服务器#2发请求, 不能向#1的另外一张网卡发请求吗?
作者回复: 因为 #1 的第二块网卡后面还要用到,如果同一个网卡有两种用途就无法进行区分了。
2019-08-28 - 恋着歌看了 花果山の酸梅汤 同学的回答。打洞不成功是因为建立了两个连接,但是为什么不用发起者建立的连接来传回数据呢?
作者回复: 这与你们公司用的网关/路由设备的实现有关
2019-08-12