虚拟网址转换——实现移动互联网的新技术

虚拟网址转换(Virtual Network Address Translation,VNAT)技术是应用于动态IP互连的崭新技术。VNAT能使双方在漫游时仍保持连接状态,适用于从个人通信终端到服务器的各种设备,其最大的优点在于不用于现有设备及协议作任何改动。当两个端点(Endpoint)建立连接之后,VNAT用虚拟地址替换物理地址,同时建立从虚拟地址到物理地址的映射。传送层协议看到的只有连接双方的虚拟地址,而不用考虑低层物理地址的变化。这样,当任一端点改变其物理地址时,VNAT更新映射信息,而虚拟地址保持不变使连接得以保持。

VNAT技术的体系结构

  VNAT的基本思想很简单,就是用一个虚拟地址标识一个连接端点。由于传送协议用物理地址标识一个连接,当物理地址改变时,连接必然断开。VNAT打破了传送协议和物理地址之间的这种联系,用一个虚拟地址代替了物理地址。这样,一旦连接建立,VNAT便为连接端点生成各自固定的虚拟地址,并且独立于物理地址,春寿命与这个连接的寿命相同,这个连接也不再受双方物理地址变化的影响。

  我们可以将一个通信终端的移动或转移归纳为两种情况:一种是该终端的硬件设备的网络地址发生变化,另一种是该终端所属的进程从一台主机转移到另一台主机。不管是那种情况,其实质都是通信终端的物理地址发生了变化。在TCP/IP互联网中,就是终端的IP地址和端口发生了变化。

  VNAT由三部分构成:虚拟连接(virtualization)是让通信终端以虚拟地址建立连接;地址转换(translation)为虚拟地址和物理地址建立映射关系;连接转移(migration)为移动的通信终端维护其连接,并且在移动过后更新虚拟地址和物理地址的映射。这三个组件可以缑成为一个模块在终端上运行,并不需要对现有配置作任何改动。

  虚拟连接

  VNAT的虚拟连接为建立连接的通信终端生成一个虚拟标识符(virtual identification)。我们把由一对虚拟标识符建立的点对点的连接称为虚拟连接(virtual connection),把由一对物理标识建立的点对点的连接称为物理连接(physical connection)。在一次虚拟连接中,物理标识符可以任意改变,但虚拟标识符是固定的。由于虚拟连接并不是捆绑在一对物理终端上,它可以在物理网间任意漫游。

  VNAT收到从应用程序发往TCP的连接请求,把请求中包含的物理地址转换为虚拟地址,服务器上的一个应用程序向TCP请求以主机物理地址10.1O.10.1O启动服务,监听所有来自客户端的连接。当 VNAT收到了这个请求之后就用一个虚拟地址1.1.1.1代替物理地址10.10.10.10。类似地,客户机上的一个应用程序请求连接到地址为10.10.10.10的主机,并且启用客户机地址20.20.20.20;当VNAT收到这个请求之后就用虚拟地址1.1.1.1代替10.10.10.10;用2.2.2.2代替20.20.20.20。

  当这一过程完成后,服务器和客户机的TCP建立的连接都是一个虚拟连接(1.1.1.1, 2.2.2.2)而不是物理连接(10.10.10.10,20.20.20.20)。这个连接一旦建立,就不会再因“移动”而发生变化。

  VNAT对连接的“虚拟化”过程对TCP是不透明的;即,TCP并不知道所建立的连接采用的是虚报地址,它仍然把虚报地址当作真实的物理地址来执行操作。同样,“虚拟化”过程对应用程序也是不透明的,因为它并不关心低层的信息传送。通过比较可以发现,移动 IP技术是通过对应用程序隐藏地址的变化来实现移动,而VNAT则通过对传送层隐藏地址的变化来实现移动。

  由于虚报连接的双方共用一对虚拟地址,势必应建立某种机制,使任何一方在连接建立时告知对方自己使用的虚拟地址。然而,使用这种机制可能会造成时延,这个问题在广域网的实时通信中显得尤为突出。一种解决方法是,双方在建立连接时默认使用此时的物理地址作为虚报地址,这样就省去了额外的通信开销。如果采用这种机制,无论连接双方如何“移动”,在传送层建立的连接总是使用连接双方最初使用的物理地址。

  地址轮换

  通过建立成拟连接,传送层就可以不必顾及通信终端物理地址的变化了。然而,仅仅建立了虚拟连接并不足以传送数据包。从客户机20.20.20.20发出的首部包含(2.2.2.2,l.1.1.1)的TCP数据包永远也不会到达服务器10.10.10.1O。为了使数据包能够在虚报连接上顺利传送,VNAT采用了地址转换机制,将虚拟连接中的一对虚拟地址同通信终端的一对物理地址关联起来。也就是说,VNAT首先建立虚拟连接,然后通过地址转换将虚拟地址和物理地址建立起一对应的关系。

  VNAT地址转换机制类似 NAT(Network Address Translation,网络地址转换)技术。 NAT技术通过维护一张 NAT转换表来建立本地专用网内的主机同外部网的主机的映射、从而使得拥有专用地址的主机能同外界网络进行通信。VNAT的地址转换对传送层是透明的,而且完全在终端内部实现,因此不需要对传送协议作任何修改。

  来自客户端TCP的首部包含(2.2.2.2,1.1.1.1的TCP数据包经过V14AT地址转换,其首都的源地址和目的地址变为(20.20.20.20,10.10.10.10)。然后发往服务器10.10.10.10。当该数据包到达服务器后,再一次经行地址转换,其首部的源地址和目的地址被还原为(2.2.2.2,1.1.1.1),最后被选往服务器端的TCP。

  如果采用连接双方最初的物理地址作为虚拟地址,在通信终端未发生移动时,由于虚拟地址同物理地址相吻合,就不需要进行地址转换,从而节省开销。因此,在这种机制下,VNAT地址转换仅在终端的物理地址发生变化时才进行。

  连接转移

  VNAT的虚拟连接和地址转换使连接端点可以自由移动和传送数据。在此基础上,VNAT的连接转移机制使得通信双方在保持连接的同时可以自由移动。VNAT连接转移能使连接在一个地点被挂起,在另一个地点被唤醒。当连接端点的地址发生变动时,该连接随着所属进程一起被转移,同时VIVAT采用安全密钥的机制,在移动后唤醒连接时首先需要通过安全验证,然后更新从虚拟地址到物理地址的映射。

  当任何一个端点发生移动时,该连接被挂起。当一个端点转移到一个新地点后,VNAT将通知另一个端点更新从虚拟地址到物理地址的映射信息。鉴于这样可能会使恶意攻击有机可乘,VNAT提供了安全机制。当连接被挂起时,连接双方约定一个安全码。在唤醒这个连接时,双方首先验证这个安全码,然后再更新地址信息。

  一个完整的动态连接转移是主机20.20.20.20上的客户端程序建立了一个同主机10.10.10.10上的服务器端程序的TCP连接。 VNAT虚拟化了这个连接,并采用双方最初的IP地址作为虚拟地址。这样,双方的TCP看到的连接都是(20.20.20.20,10.10.10.10)。此时,由于客户端进程转移或者客户端主机移动,连接被挂起。挂起之前,客户端VNAT向服务器端发送信息,约定安全码。客户端移动到新的主机地址30.30.30.30,客户端VNAT唤醒连接,双方验证安全码。验证通过之后,双方更新地址转换信息,将虚拟连接(20.20.20.20,10.10.10.10)关联到物理连接(30.30.30.30,10.10.10.10)。在转移过程前后,双方的TCP所看到的虚拟连接(20.20.20.20,10.10.10.10)没有变化。通过VNAT,我们实现了通信双方在保持平稳连接的同时完成地址转移。

与 VNAT有关的其它问题

  目前的讨论大都围绕TCP来进行,因为TCP是面向连接的传送协议,在互联网上应用广泛。针对无连接的传送协议,如 UDP,VNAT也提供了相应的机制,这类无连接的传送协议适用于视频传送。尽管传送层本身感知不到连接,应用层仍然维持着某种形式的连接。在这种情况下,VNAT对应用程序隐藏了连接双方的物理地址,而代之以一个虚拟地址,当连接的一方移动时,应用程序看到的仍然只是不变的虚拟地址,感觉不到移动的发生。

  当连接的双方同时移动时,每个终端必须告知对方自己的新地址。这时,双方可以约定通过另一台服务器来传递移动后的联络信息,以便及时恢复连接;或者也可以将新地址的信息发送到自己的原地址,使对方可以通过原地址来获取新地址。

  由于通信终端移动时, VNAT虚拟连接也随之转移到另一台主机,这样有可能导致虚拟地址冲突。当两个不同的连接使用了一对相同的虚拟地址,并且这两个连接中至少有一台主机相同时,这台主机上的传送层协议便会拒绝这两个连接同时存在。譬如,主机10.10.10.10同20.20.20.20建立了一个虚拟连接(10.10.10.10,20.20.20.20)。随后,在20.20.20.20上的连接端点转移到了主机30.30.30.30上,虚拟连接(10.10.10.10,20.20.20.20)也随之转移到10.10.10.10与30.30.30.30之间。此时如果主机20.20.20.20上的应用程序想再建立一个同10.10.10.10的连接,按照上文的例子,这个虚拟连接应该为(10.10.10.10,20.20.20.20),但是由于10.10.10.10上已经有了一个同30.30.30.30的名为(10.10.10.10,20.20.20.20的连接,这便产生了冲突。在实际应用中,发生冲突的概率是很小的,因此VNAT允许通信终端使用相同的虚拟地址。当冲突发生时,VNAT将关闭其中的一个连接。

  同其它为实现移动互联网或互联网漫游的技术相比,VNAT的最大优点在于它不用对现有软硬件设施作任何更改,而且适用范围很广。随着分布式计算和移动通信设备的飞速发展,我们现有的网络技术和设施已渐显落后,然而,彻底更新现有的信息基础设施将会是一个规模浩大且旷日持久的工程。因此,如何使现有技术设备在现有环境下进一步发挥潜力,这是一个值得关注的问题。VNAT技术便是这一领域的一个鲜明例证。

阅读更多
个人分类: 挨踢生活
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭