WebRTC的学习
0-前言
https://cliayn.github.io/WebRTC/test.html
[测试用例,正在优化中]
全锥型 vs 对称型:不需要预测,基本能秒连。
受限型 vs 对称型:需要预测(或者叫端口试探)。
对称型 vs 对称型:预测基本没戏,一般只能走 TURN。
1-常见等级划分
| 等级 | 官方术语 (中/英) | 端对端连通性 | 映射与过滤规则 | 典型应用场景 |
|---|---|---|---|---|
| NAT 1 | 完全锥形 (Full Cone) | 极佳 (几乎等同公网) | 映射:相同内网地址/端口映射为相同公网地址/端口。 过滤:无任何限制,任何外部主机可主动连接。 | 公网IP、DMZ主机 |
| NAT 2 | 地址受限锥形 (Address-Restricted Cone) | 良好 | 映射:与NAT1相同,映射关系固定。 过滤:仅允许内网主机主动通信过的外部IP地址连接,不限制端口。 | 部分家庭宽带(非普遍) |
| NAT 3 | 端口受限锥形 (Port-Restricted Cone) | 一般 | 映射:与NAT1相同,映射关系固定。 过滤:仅允许内网主机主动通信过的特定外部IP地址和端口连接。 | 多数家庭宽带(如电信、联通常见) |
| NAT 4 | 对称型 (Symmetric) | 差 (难以直连) | 映射:请求不同目标(IP/端口)时,会动态映射为不同的公网端口。 过滤:仅允许通信过的目标回包。 | 企业/校园网、手机热点、CGNAT |
2-打洞
① 预测端口的变动(端口可预测前提)
② 增加 TURN 服务器
③ 直走ipv6(无防火墙的前提)
注意:
WebRTC必须要有信令服务器的理由如下:
1.要有发送端和接收端
2.浏览器的签名和指纹会更新
3.需要交换ICE(候选者池)和SDP(会话描述协议)