zoukankan      html  css  js  c++  java
  • webrtc ice 协商一些记录

    参考规范:https://tools.ietf.org/html/rfc5245
    

     

    Lite Implementations: 一般是ice服务器可以实现,这种模式下,只接受binding request请求,并且回复。 不会主动发送binding request请求给对方

    To make it easier for these devices to
       support ICE, ICE defines a special type of implementation called LITE
       (in contrast to the normal FULL implementation).  A lite
       implementation doesn't gather candidates; it includes only host
       candidates for any media stream.  Lite agents do not generate
       connectivity checks or run the state machines, though they need to be
       able to respond to connectivity checks.  When a lite implementation
       connects with a full implementation, the full agent takes the role of
       the controlling agent, and the lite agent takes on the controlled
       role.  When two lite implementations connect, no checks are sent.

    Full Implementations: ice客户端实现,这种模式既可以收binding request,也可以发binding request.

    controlled 和 controlling角色确定: 

    https://tools.ietf.org/html/rfc5245#section-5.2  Determining Role 有详细描述

    这里只记录其中一种情况:

    One agent full, one lite:  The full agent MUST take the controlling
          role, and the lite agent MUST take the controlled role.  The full
          agent will form check lists, run the ICE state machines, and
          generate connectivity checks.  That agent will execute the logic
          in Section 8.1 to nominate pairs that will be selected by ICE, and
          use the logic in Section 8.1.2 to end ICE.  The lite
          implementation will just listen for connectivity checks, receive
          them and respond to them, and then conclude ICE as described in
          Section 8.2.  For the lite implementation, the state of ICE
          processing for each media stream is considered to be Running, and
          the state of ICE overall is Running.

    也就是 full agent必须是 controlling role, lite agent 是controlled 

  • 相关阅读:
    JavaScript内部原理:浏览器的内幕
    DOM结构深度优先遍历(二):TreeWalker
    DOM结构深度优先遍历(一):NodeIterator
    Linux bc 命令
    两个小function实现XML和string相互转化
    Git 多用户配置
    Vue 新增的$attrs与$listeners的详解
    CSS mask遮罩
    flask之后端传值给前端
    python cv2在验证码识别中的使用
  • 原文地址:https://www.cnblogs.com/missmzt/p/10139188.html
Copyright © 2011-2022 走看看