ICE 实现流程(3) answer方的关键行为

......

生成连通性检查列表:

只有在ICE的完整实现中才有的步骤.

在轻量的ICE实现中省略这个步骤.offer/answer的交换导致每一个在使用的媒体流都有一个连通性检查列表.要构成这个表,agent生成候选者对,计算候选者对的优先级,按优先级来排序候选者对,清除他们中存在的冗余,设置他们的状态.

生成候选者对:

首先,agent将一个媒体流的每一个候选者(LOCAL CANDIDATE),将它们和peer端接受的候选者(REMOTE CANDIDATE)配对.为了避免由此引发的攻击,agent是限制在一次请求和应答中接受的 候选者,本地和远程候选者当且仅当有着相同的component ID和相同的IP地址版本的时候才进行配对.有可能存在本地和远程候选者中的一些不能找到相应的配对.这种情况发生在一个agent没有把对应一个媒体流的所有候选者算为候选者,它们的component是相同的.

这时候,对应于那个媒体流的组件数实际上等效于减少了,等于每一个agent提供的这个媒体流的的全部组件中最大的那个组件ID中的那一个中组件ID最小的那一个.

比如说RTP的情况:一个agent支持RTCP的候选地址,另一个不支持.还有多路复用RTP和RTCP在一个 端口.这个时候offer多路复用RTP/RTCP在同一个port,这可以通过在SDP中添加新的属性来实现,然而offer不知道是否answerer有多路复用的能力,所以它RTP和RTCP的候选者在不同的端口上,这时候offer的每个媒体流有两个component.如果answerer可以执行多路复用,一个候选者对于一个组件.

+------------------------------------------+

| |

| +---------------------+ |

| |+----+ +----+ +----+ | +Type |

| || IP | |Port| |Tran| | +Priority |

| ||Addr| | | | | | +Foundation |

| |+----+ +----+ +----+ | +ComponentiD |

| | Transport | +RelatedAddr |

| | Addr | |

| +---------------------+ +Base |

| Candidate |

+------------------------------------------+

* *

* *************************************

* *

+-------------------------------+

.| |

| Local Remote |

| +----+ +----+ +default? |

| |Cand| |Cand| +valid? |

| +----+ +----+ +nominated?|

| +State |

| |

| |

| Candidate Pair |

+-------------------------------+

* *

* ************

* *

+------------------+

| Candidate Pair |

+------------------+

+------------------+

| Candidate Pair |

+------------------+

+------------------+

| Candidate Pair |

+------------------+

Check

List

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值