美文网首页
十六、网络传输基本知识-TURN

十六、网络传输基本知识-TURN

作者: ThemisHoo | 来源:发表于2019-04-29 10:29 被阅读0次

    注:以下图片来自慕课网,侵权可删

    TURN介绍

    • 其目的是解决对称NAT无法穿越的问题
    • 其建立在STUN之上,消息格式使用STUN格式消息
    • TURN Client 要求服务端分配一个公共IP和Port用于接收或发送数据
    信息传输过程

    TURN使用的传输协议

    在上图的传输过程中 TURN Client端到 TURN server端可以使用 UDP、TCP、TLS over TCP
    TURN server端到 peer端 统一使用UDP

    TURN发送机制

    • Send And Data(每次发送数据前都要带三十多字节的头)
      TURN Client给TURN server发送请求时带有请求头,TURN server给Peer传数据时将请求头去掉
      Peer再返回数据的时候,在TURN server给TURN Client的过程中,要再把头加上
    • Channel(规定一个Channel Id,不用每次都带头消息,只要发送数据就可以了)
      TURN Client首先发送一个绑定Channel请求,生成一个Channel Id(0x4001),再进行数据输出
      Send And Data、Channel这两种方式是可以共存的

    TURN的使用

    1. STUN binding
      客户端到服务端打通,拿到映射的IP地址
    2. Caller TURN allocation
      发起方(Caller)调用 allocation,让TURN server开辟一个服务,接收发送数据的IP地址和端口
    3. Caller sends offer
      Caller 通过信令 SDP的offer 将媒体信息,网络信息等发送给被调用者
    4. Callee TURN allocation
      对方(Callee)接到信息后也要发送给TURN服务发送 allocation
    5. Callee answers OK
      Callee 回复OK
    6. Exchange candidate IP addresses
      交换 IP地址
    7. ICE check for P2P connection
      首先检查 P2P是否能打通NAT
    8. If P2P unsuccessful, make relay connection
      不成功的话,通过中继服务

    相关文章

      网友评论

          本文标题:十六、网络传输基本知识-TURN

          本文链接:https://www.haomeiwen.com/subject/idpenqtx.html