在视频会议软件的开发中,我们需要考虑实时、大流量的传输方式,因此其数据传输模式值得我们去研究。一般来看视频会议的数据可以分为三种,一种是语音、文档共享等实时性较强但数据量较少的数据;另外一种是大流量但不需要实时的数据,如文件传输的数据;最后一种是视频、远程桌面等大流量且实时性很强的数据。对于这三种不同的数据,我们可以采用不同的传输方式来达到更高的效率。在视频会议软件中,我们主要有三种不同的传输模式:
1、 TCP传输模式
TCP传输模式是通过TCP协议来进行数据的传输,其传输方式是可靠的传输方式,但TCP建立传输过程需要进行三次握手,而且在传输过程中,需要进行数据的确认过程,因此数据的传输相对UDP模式来说,传输的实时性不强,且遇到网络堵塞的情况下,TCP模式不能进行有效的传输控制,通过不断的重发数据,会造成网络更为堵塞,因此在视频会议软件的开发中,我们不能用TCP的传输模式来传输实时的数据,而一些实时性不强的数据,如文件数据可以用TCP的模式进行传输。
2、 UDP+RTP传输模式
UDP+RTP传输模式是通过UDP数据包进行RTP数据封装传输,单纯的UDP传输方式不能直接应用于视频会议软件的开发,虽然UDP可以实时地传输数据,但其UDP传输是基于无连接、非可靠的传输方式,其数据不能保证及时、按顺序地到达,因此直接用UDP传输方式很难进行数据的丢包控制。通过UDP+RTP的传输模式,不仅可以实时的传输,还能通过RTCP实现对数据的传输控制。我们可以举个例子,在视频会议软件的音频传输中,我们可以UDP+RTP的模式进行传输,当出现数据包的丢失的时候,该方式能很容易检测到丢包的数据,从而通过音频编码的错误掩饰来进行数据的还原。
3、 利用传输库模式
虽然UDP+RTP模式能达到实时的传输,也能进行丢包的检测控制,但该模式很难进行数据的重发,对于一些需要实时且可靠的数据,也不能采用该方式,我们可以采用一些开源的传输库,这些开源的传输库可以把上面的TCP模式、UDP+RTP模式两者的优点结合起来,它既有实时的传输性又有可靠的传输性,非常适合我们进行可靠的实时的大流量的数据传输,这些传输库包括有比较著名的UDT传输库(可靠的UDP传输方式)、Ranknet传输库等,这些传输库是建立在UDP的基础上的数据传输,但其实现了UDP的可靠传输。因此直接利用这些开源的传输库进行数据的传输比我们直接利用TCP或者UDP+RTP传输模式更为有效。
综上所述,我们在视频会议软件的开发中,对不同的数据可以采用不同的传输方式,一些大流量非实时的数据,我们可以采用TCP的传输模式;一些实时非大流量的数据,我们可以采用UDP+RTP的传输模式;对于实时、大流量且需要保证可靠性的数据,我们可以利用开源的传输库进行数据的传输,来保证数据的实时和可靠性。