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

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

TURN介绍

  • 其目的是解决对称NAT无法穿越的问题
  • 其建立在STUN之上,消息格式使用STUN格式消息
  • TURN Client 要求服务端分配一个公共IP和Port用于接收或发送数据
十六、网络传输基本知识-TURN_第1张图片
信息传输过程

TURN使用的传输协议

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

十六、网络传输基本知识-TURN_第2张图片

TURN发送机制

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

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)