WebRTC通信模型的对比:
大家都知道基于WebRTC的延伸,目的是实现实时通话或者是多方通话,是没有服务器的概念。下图是我对WebRTC通信模式的总结,左边是基于P2P方式对WebRTC进行延伸,我把它称为P2P模式,右边则是加入了服务器的模式,我把它称为服务器模式。
1V1模型:
P2P模式实际上是通过点对点进行传输,不需要经过任何的服务器,除了TURN和STUN服务器之外。在不需要NAT的情况下,两个用户可以直接相连,如果在NAT的情况下,就需要STUN介入。如果打洞无效时,则需要借用TURN。从图上可以看到,借用TURN的P2P模式的拓扑结构,和右边的服务器模式的拓扑结构十分相似,但是他们之间有明显的区别。TURN就像是一个中转站,作用只是简单的转发,而服务器则有更多的功能。这两种模式的优势也不同,由于P2P模式的用户之间是直接相连的,所以从成本上看,P2P模式的成本更低,但是在弱网环境下,P2P模式在连通性上的表现并不理想。现在大家所用的微信,从成本和点对点的沟通方式上看都应该选用P2P模式,但是实际上,微信并没有使用P2P的方式,而是使用服务器模式,这个也是考虑到P2P模式在弱网环境下的表现。
接下来以带宽为例,在上下行带宽都为1M的情况下对比