stun流程理解

流程

  1. A向S发出Allocate Request,请求S在自己的IP地址上为A分配一个端口。

  2. S收到A的Allocate请求后,为A分配一个端口aport。并向A返回一个Allocate Response。

  3. A向S发出Channel Bind请求,请求将B的(IP地址UDP端口)对绑定到一个Channel号ano上。

4.S收到Channel Bind请求后,将Channel号ano和B的(IP地址UDP端口)对绑定,并向A返回一个Channel Bind Success回复。

5.之后A可以用Channel Data命令通过Channel号ano向B发消息。Channel Data命令实际上将消息发给了S,S再通过为A分配的端口aport向B转发。

  1. B收到的A的消息中,源地址显示的是S为A分配的中转地址(S的IP地址:aport),B可以直接向这个中转地址发消息,S会将其转发给A。

stun协议的缺点是服务器负载太高,容易成为性能瓶颈。