I P解决的最根本的问题是如何把网络连接在一起,也就是把计算机连接在一起,而且除了其他计算机的网络地址之外,这些连接起来的计算机无需了解任何的网络细节。这就有以下三个要求:首先,每个连接在“网络的网络”上的计算机必须具有唯一的标识;其次,所有计算机都能够与所有其他计算机以每个计算机都能识别的格式进行数据的收发;最后,一台计算机必须能够在了解另一计算机的网络地址后把数据可靠地传至对方,而无需了解对方计算机和网络的任何细节。 I P实现了上述目标。详细的介绍参见第 2章,本节将进行扼要 (可能是非常简单)的介绍。
所谓“网络的网络”就是互联网络( i n t e r n e t w o r k ),也被简称为互联网( i n t e r n e t )。全球I n t e r n e t与它们的区别在于它的第一个字母是大写的 I。最近,内联网( i n t r a n e t )逐渐取代互联网用于指称使用TCP/IP的机构网络。
T C P / I P网络协议集基于一个四层的网络互联模型来连接任意两个系统。最底层是物理层,位于物理层之上的是数据链路层,用于在网络媒体 (如以太网电缆或无线发送器 )上传输计算机格式的数据。这一层协议使得连接在同种媒体上的两个系统可以通信,但不能与未连接在同一媒体上的系统通信。换言之,所有连接在办公室的以太网集线器上的 P C机之间可以在数据链路层直接进行通信,但也只有连接在该集线器上的计算机才能彼此通信。
在数据链路层,数据被发送到与计算机的网络接口相关联的地址。这意味着每个将计算机连接到网络的设备都有一个类似于序列号的地址:对该连接设备这个地址通常是唯一的,每个设备“侦听”目的地址与自己的地址相同的数据包。如果一个系统没有连接到特定网络上的设备,它就不能与网络上的其他系统在数据链路层上直接通信。
不在同一个物理网络上的系统不能在数据链路层直接进行通信的部分原因,在于连接在不同的网络上的计算机往往使用不同的协议。例如:使用令牌环网的计算机无法理解以太网上传输的数据。另一个原因是链接不同链路层协议的网络需要特殊类型的系统,这种系统被称为网关 ( g a t e w a y )。网关是一个同时连接两个或更多运行不同协议网络的计算机,它可以将来自一种数据链路层协议的数据翻译成另一种协议。但即便有了网关,仍然需要一些其他的办法来连接异构的网络。
数据链路层的上一层被称为网际层,正是在这一层,位于不同物理网络上的设备可以进行通信。每一个接口被分配了一个网际层地址,这个地址在连接在该互联网络上的所有系统中具备唯一性(使用I P连接到网络上的系统通常称为主机 )。所有连接在同一个互联网络上的主机可以理解这些地址,并可以在必要时使用各种方法将这些地址与数据链路层的地址进行映射。路由器正是在 I n t e r n e t层发挥作用的:这些系统 (也可以是网络协议网关 )连接在两个或更多的网络上,并由连接到这些网络上的所有主机使用,以向远端网络上转发数据包。
一个需要全球唯一地址的网络示例是电话系统:每个电话用户必须具备一个唯一的电话号码。随着电话网络的扩展和用户数量的增加,电话公司用增加交换局和地区号来加长电话号码的做法并不少见。与电话号码不同,虽然 I P地址也是由数字组成,但它既不能多于也不能少于 3 2位。正如在美国使用的 1 0位电话号码把电话用户的数量限制在了1 01 0之内, 3 2位地址限制了I n t e r n e t的地址数量不能超过23 2,即接近于4 0亿。与电话号码一样,真正可用的地址少于理论值(在I n t e r n e t地址中更少),这主要是由于一些号码被保留或具备了特殊意义。地址空间的限制是 I P v 4的根本问题,本书将进一步讨论这个问题。
当一台主机需要向另一台主机发送数据时,它将检查目的主机的 I n t e r n e t地址。如果该地址与自己连接在同一物理网络上,则发送端主机简单地通过数据链路层将数据包发送至目的地。在这种情况下,以太网上的发送端主机将通过以太网传输直接到达目的主机。但是,如果发送端主机发现目的方主机与自己不是连接在同一物理网络上,那么发送端主机将把数据发给与自己连接在同一个物理网络上的路由器。然后,该路由器判断数据的目的地址是否属于与自己直接连接的网络。如果是,该路由器将简单地把数据交给目的主机;如果该数据的目的地址不属于与自己直接连接的网络,该路由器将把数据转发给连接在其他网络上的路由器。如此继续,如果一切顺利的话,直到将数据最终交给与目的主机在同一物理网络上的路由器为止。
其他T C P / I P网络互联操作在传输层和应用层上完成。在传输层上,数据在通信系统的实际进程之间移动;在应用层上,数据在应用自身之间移动。