在互联网和私有网络中进行的绝大部分通信都是按照某种方式基于TCP/IP协议的。TCP/IP的问题在于它已经出现了几十年,却没有所面临的危险做任何调整。为了使用TCP/IP协议完成在它设计之中就不能完成的任务,人们创造了很多的协议(这些协议或者建筑在TCP/IP协议之上,或者与它集成在一起)。例如,TCP/IP协议所传输的数据是未经加密的格式。当人们开始意识到加密的重要性,IPSec和HTTPS之类的协议就出现了。
虽然TCP/IP协议的很多缺陷通过建立新的附加协议的方式得以弥补,但它的一个根本性的缺陷目前却变得日益突出。TCP/IP协议是把某一TCP/IP主机绑定在某一物理处所上的。而在过去几年间,移动计算已经成为了一种越来越流行的技术,把主机绑定在物理处所上的做法似乎很难适应移动计算了。让我们来看看新的协议是如何突破这一局限的。
移动计算的定义
当我提到移动计算时,我的意思不是指你在海滩上使用你的笔记本电脑。我所指的是移动终端主机。简单地说,移动主机可以被认为是移动设备,如果它的IP地址可以改变的话。毫无疑问你已经意识到在很多情况下,设备的IP地址可能发生改变。例如,它可能被DHCP服务器重新分配,地址可以通过IPv6称谓改变或者NAT重新映射而改变,这还仅仅是几个例子。这些例子中共同的一点是IP地址发生了改变。因此,通过其他手段来辨认一个主机就非常重要,因为IP地址可能经常会发生改变。
TCP/IP 的局限性
解决移动主机问题的一个可行的方法就是HIP(Host Identity Protocol,主机辨识协议)协议。在你能够真正理解HIP的巨大价值之前,你需要了解在移动通信环境中,TCP/IP协议的局限性。
TCP/IP协议的两个最主要的部分是IP地址和域名服务器(Domain Name Server)。当某人进入一个URL,比如http://techrepublic.com.com/,TCP/IP不会本能地知道如何把你连接到那个网站上。你所输入的URL被传递到DNS(域名服务器)。然后DNS在数据库中进行查询,找到该网站的IP地址。
IP地址是由两部分组成:网络地址和主机地址。网络地址通常有A、B、C三类地址,它能告诉你的电脑所要寻找的网络服务器位于哪个网络上。例如,如果DNS服务器返回地址147.100.100.1,地址中的147.100部分指明的可能是网络地址。计算机将根据路由表决定如何把来自你的计算机的数据包传递到包含相应的网络服务器的网络中去。一旦数据包到达了包含相应的网络服务器的网络中,IP地址的后一半就开始发挥作用了,根据它就能够找到位于远端网络的网络服务器。
这就是我所说的IP地址同物理位置绑定的含义。IP地址让数据包按照路由表的指示被传递到特定的物理网络以访问被请求访问的主机。如果该主机被转移到了不同的网络中,由于不能定位该主机,请求就会失败。
HIP的出现
Host Identity Namespace出现了。一个Host Identity Namespace要求任何设备都有全球范围内唯一的Host Identifier(HI,主机识别码)。主机识别码是一个100bit的名字,这个名字被分配给某一主机。
在开始详细介绍Host Identifiers是如何工作的之前,我要指出一点,就是某一个主机可能拥有不止一个Host Identifiers。例如,一个主机可能有一个广为人知的识别码和一个匿名的识别码。附加的识别码可以自行声明,也可以通过第三方认证机构获得,比如DNSSEC。
为什么第三方认证机构能够提供这种服务呢?因为HI是基于公共密钥加密的。这就意味着主机ID不仅仅可以被用于认证,它还可以被作为一种加密机制使用。例如,两个主机之间可以使用IPSec协议进行相互通信。在这个例子里,HI是一个公共密钥,在鉴别IPSec包时发挥效用。
HIP协议对于TCP/IP的通信层协议做了与现在不同的限定。在TCP/IP协议中,TCP和UDP联接是同IP地址联系起来的。一旦HIP架构建立起来,这些联接就被同主机ID(Host ID)而不是IP地址联系起来。HIP之所以能够如此是因为它改变了TCP/IP协议中的网络层和传输层。
如同我在前面所解释的那样,IP地址有两个主要部分,因此有两个不同的作用。它可以被定义成位置标识或者是终端标识。而在HIP架构之中,IP地址仍然具有位置标识的功用。但是,HI取代了IP地址的终端标识的功能。这就使得无论一个主机的IP地址如何变换,它都能够拥有唯一不变的标识。
HIP rendezvous服务器
除了终端识别,还有一个没有改变的问题是你如何能够识别某一个使用不同IP地址的主机?如果你网络上的主机不会经常变换IP地址,你可以使用Dynamic DNS(动态域名服务器)来把主机名同IP地址进行映射。在HIP架构中,DNS服务器仍然非常重要,但是一个新的、名为HIP rendezvous的服务器也被应用了。
HIP rendezvous服务器作为终端和DNS服务器之间的媒介。HIP rendezvous服务器同代理服务器很相似。在典型的TCP/IP环境中,DNS服务器保存了一个列表,表中存储了所有的主机名和他们相应的IP地址。而在HIP环境中,DNS服务器仍然记录所有的主机。区别在于它不再保存这些主机的IP地址。但DNS服务器却要保存HIP rendezvous服务器的IP地址。每当主机变换IP地址时,HIP rendezvous服务器都会记录这些变化。这样,当一个要求访问移动主机的内部请求到达时,该请求都会被发送到HIP rendezvous服务器。然后HIP rendezvous服务器开始查找现有的主机的IP地址,然后把通信包发送到相应的主机上。
加强了移动安全性
HIP的最后的一个好处就是它的协议是基于公共密钥的,这样就使得终端和终端之间的通信很容易被加密。而且,该协议能够非常完美地解决辨认主机的问题,即便该主机的IP地址发生了改变。这些优点使得HIP成为了无线网络中的完美的解决方案。
绝大部分无线接入点都是使用DHCP服务器来为无线用户指派IP地址。因此,你永远也不会知道一个无线用户将会使用的地址。WEP和WAP等协议现在被用来保护无线通信,但是这些协议只对于无线主机之间的通讯或者无线主机和接入点之间的通信进行加密。HIP是基于公共密钥的这一特性意味着无论信息包是通过有线还是无线网络进行传递,发生在两个终端之间的通信都可以被加密