1.3 IP的基本原理和分层体系结构
IP包发送后并不能确保接收方收到包。当发送一个IP包时,绝对不知道对方是否收到它。更糟糕的是,甚至不知道包是否到达了目的地。
那么,设计网络听起来是不是一个非常愚蠢的方法呢?也许是这样,但请思索片刻再下结论。让我们想象一下路由选择硬件必须确保每一个IP包都完整无损地到达正确的目的地会有多复杂。一开始路由器并不介意,它们保留数据,并重新发送,直到数据已到达目的地,或者是像垃圾一样将包丢弃。构建简单的硬件设备并不算贵,而且速度也很快。
如此说来,这种并不可靠的通信还有什么意义呢?采用数字数据,即使文件中只丢失了一个字节,也可能会使整个文件毫无用处,因此,不可靠的通信看起来似乎与我们真正所期望的大相径庭。
我们并没有采用硬件来控制数据的完整性和有效性,而是由软件来控制。讨论这一主题之前,先介绍一下因特网通信的分层体系结构。
设计因特网协议时实际将其分为4个不同的层:
● 网络层。
● 因特网层。
● 传输层。
● 应用层。
每次在因特网上发送一个数据包,在每一层都要用一个新的首部将数据包封装起来。例如,如果采用超文本传输协议(Hyper Text Transfer Protocol,HTTP)发送数据(一般情况下是网页数据),则首先在应用层将发送的数据封装到HTTP首部中。然后,HTTP应用将包发送到操作系统,操作系统会添加一个传输层包首部,并为因特网层添加一个IP包首部。(HTTP采用TCP作为传输层协议,稍后会介绍TCP协议)。最后,根据所使用的因特网访问设备,向包中添加一个网络层包首部,并沿着路径最终发送出去。图1.10绘制了因特网包的分层体系结构。在这一标准的4层包结构中,每一个数据包的前面都冠以它所使用的各种协议的首部。这一范例演示说明了通过以太网连接来浏览万维网。

图1.10 因特网包的分层体系结构
前面已经详细介绍过IP协议。这一协议属于第二层协议,即因特网层。之所以先从第二层讲起,是因为它确实是讨论因特网通信时最重要的一层。现在将要更深入地讨论这 些层。






