linphone相关ice概念
来源:互联网 发布:java 异步网络请求 编辑:程序博客网 时间:2024/05/16 08:55
ICE(互动式建立连接)试着寻找最佳路线去建立连接方式,它会并行的寻找所有的可能性,然后选择最有效的可行方式,它首先尝试用设备系统或网卡获取到的主机地址去连接,如果这个失败了(设备在NAT后就会),ICE会从STUN服务器获取外部地址进行连接,如果这个也失败了,就用TURN中转服务器做通讯。
1 首先说下实现NAT穿越的几种方式:
(1) 针对客户端的解决方案:STUN、TURN、ICE。
(2) 路由边界解决方案:应用层网关ALG、通用即插即用uPNP、中间盒通信MIDCOM。
(3) 服务器端解决方案:B2BUA、服务端RTP中继、会话边界控制SBC、FULL-PROXY、隧道技术。
(4) 还有RSIP。
2 如何区分对称和非对称NAT:
网关设备在实现NAT时,对于内网某主机的若干UDP请求,网关设备对应地在外网上所建立的 UDP端口数量
对称NAT是一个请求对应一个端口
非对称NAT是多个请求对应一个端口
3 ICE的协商过程:
(1) 候选地址的收集:ICE客户端收集本地所有可能用于通讯的地址,所收集的地址分为3类:
(a) 主机候选地址(Host Candidate):本地物理网卡的地址。
(b) 服务器反射地址(Server Reflexive Candidate就是NAT上关于本地IP映射的地址),这个地址通过STUN服务器来获取。
(c) 中转/中继候选地址(Relay Candidate)这个地址就是使用中继(Relay)的传输方式时,在中继服务器(或者称为TURN服务器)上为本机所分配的地址。
(2) 候选地址的优先策略:一般情况下使用中继方式产生的中继候选地址的优先权最低,因为它的代价最昂贵。
(3) 本地候选地址编码:把编码来的地址传至对端,双方通过报告/应答的方式进行协商。
(4) 候选地址配对:将本端的地址与对端的地址一一进行配对,此时应该通过某种方式的得到了对端的候选地址。
(5) 每对地址做连接测试。
(6) 得到结果:由于已经对所有的候选地址一一进行配置并一一进行连接测试,所以存在一个可以通信的路径,ICE肯定会得到它。
4 ICE 状态
描述ICE(交互式连通建立方式ICE(Interactive Connectivity Establishment))的状态
枚举常量:
LinphoneIceStateNotActivated 0 在这个通话或者数据流上ICE没有激活
LinphoneIceStateFailed 1 ICE处理失败
LinphoneIceStateInProgress 2 ICE正在处理
LinphoneIceStateHostConnection 3 ICE已经和一个远程主机建立了连接
LinphoneIceStateReflexiveConnection 4 ICE已经通过一个或者多个NAT和远程主机建立连接
LinphoneIceStateRelayConnection 5 ICE已经通过一个中继器和远程主机建立连接
阅读全文
0 0
- linphone相关ice概念
- linphone相关
- asterisk-11.5.0 linphone ice
- ice相关
- linphone
- linphone
- linphone
- linphone
- 【IceFaces ice:tree相关知识】
- Ice读书笔记--中间件概念与Ice综述(一)
- Ice读书笔记--中间件概念与Ice综述(二)
- NAT ICE STUN TURN uPNP概念
- 相关概念
- 牛人编写的ICE相关博客
- ice
- ICE
- ICE
- Ice
- 迭代解决多层嵌套json 转map
- 泛型 协变 逆变 java
- eclipse中Source not found解决方法
- mui调取手机摄像头,拍照,上传
- 递归思想的好记法
- linphone相关ice概念
- leetcode 203. Remove Linked List Elements
- ajax跨域请求及传递cookie
- echarts兼容IE8问题
- sqlserver 存储过程
- SpringBoot 读取自定义配置文件
- Druid之初步探索
- 在 ECSHOP 首页的每个商品下显示商品货号
- html简介