论文部分内容阅读
近年来,VoIP(Voice over IP)技术及其业务的迅速发展,对传统的电信业务造成了巨大的冲击。VoIP网络通过网关等设备,以PSTN作为用户的接入设备,用IP网络代替昂贵的传统传输网络,从而大大的降低了通信成本,节省了通话费用。由于IP电话具备一定的技术优势与时代特征,一旦解决传输和语音质量问题,就会对传统电话产生巨大冲击,具有很大的市场空间。
NAT和防火墙设备的存在阻碍了很多应用和协议在Internet上的部署和实施,使得VoIP应用在数据的传输过程中遇到了很大的困难。在局域网环境下,由于没有NAT和防火墙的限制,同一个局域网内的各种应用程序可以畅通无阻的通信。
本文设计实现的虚拟局域网利用TUN/TAP虚拟设备和TUNNEL技术,可以突破NAT和大多数防火墙的限制,使受限的应用可以正常的通信。本文介绍了IP电话的发展及IP电话的工作原理和相关的标准及协议,分析了现有的穿越NAT/FW方法,并提出了一种新型的穿越方法,即在现有的网络中构建一个虚拟局域网。
SoftHub是虚拟局域网的服务器端程序,功能上类似于真实局域网环境下的集线器(Hub),负责对虚拟局域网中信令的处理和数据的转发,是虚拟局域网的核心组成部分。
本文主要解决的是SoftHub的程序和私有协议的设计与实现,在穿越NAT方面借鉴了STUN、TURN和ICE方案,对需要通过SoftHub转发的数据采用了Treap树进行调度,提高了效率,另外由于对数据进行了加密,减弱了防火墙对数据流的阻碍。
在本文的第三部分详细介绍了虚拟局域网服务器端程序SoftHub的数据结构和内部逻辑的设计与实现,其中用到了很多UNIX/Linux和网络编程的高级技术和设计思想。