2.1 OSI模型
在开始介绍当今因特网上应用的一系列协议之前,先来了解一下开放系统互联参考模型,即:OSI参考模型。这将有助于读者更快、更深入地理解因特网的体系结构。
OSI参考模型即开放系统互联参考模型(Open System Interconnection Reference Model),是由国际标准化组织(ISO)提出的,其目的是使各种硬件在相同的层次上相互通信。OSI模型共把网络系统分为七层,每一层都向它的上一层提供特定的服务,并且向它的上一层隐藏实现这一服务的具体细节。
OSI模型的七层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。图2-1描述了OSI参考模型的体系结构。
图2-1 OSI参考模型
某一台计算机上的第n层只与其他计算机上对等的第n层进行通话。这个通话所遵循的规则被称为第n层的协议。协议的目的就是为了使双方能够达成一致,以便能够顺利地进行通信。通过OSI各层,信息可以从一台计算机的应用程序传输到另一台计算机的应用程序上。例如,计算机A上的应用程序要将信息发送给计算机B上的应用程序,则传送的具体过程为:首先,计算机A中的应用程序将数据信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),依此类推,直至数据在计算机A中传送到物理层(第一层)。在物理层中,数据被放置在物理网络上,并通过物理媒介被发送至计算机B。计算机B的物理层接收到来自物理媒介的数据,然后在计算机B中将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依此类推直到信息到达计算机B的应用层。最后,计算机B的应用层再将信息传送给其应用程序进行接收,从而完成通信的整个过程。
提示:由于OSI模型自身结构过于复杂,这就使得其实现过于缓慢。另外,OSI模型被提出时,TCP/IP模型已被广泛应用于科研领域。这种种原因使得OSI模型从未真正实现过。尽管如此,仍有一些组织(如某些欧洲电信部门)投入极大的努力来研究、修正OSI模型。
下面,将对每一层逐一进行介绍。
1. 物理层
物理层是OSI参考模型的第一层,由于它处于最低层,因此是整个OSI系统的基础。这一层为数据信息在设备之间的传输提供物理上的连接和物质上的保障。物理层提供的数据通路可以由某一个单独的物理介质组成,也可以由多个物理介质连接而成。物理层的介质种类很多,包括电缆、光纤、无线信道等。
2. 数据链路层
数据链路层是为了使数据在物理层上的传输对网络层表现为一条无传输错误的线路。在数据链路层中,发送方把数据分装在多个数据帧中,而后按顺序分别传送各个数据帧,并处理接收方发回的确认帧。数据在物理介质上传输的过程中,难免会由于受到各种环境因素的影响,使数据在传输过程中产生差错。为了能向其上层提供无差错的数据传输服务,数据链路层就需要具有能对数据进行检错和纠错的功能。
警告:
当使用具有较高可靠性的传输介质时,在数据链路层不进行出错控制,而是在更高的层执行这项工作,这种做法可以提高系统的性能。
3. 网络层
网络层中数据是以分组为单位进行传输的。这一层最基本的任务是如何选择路由使分组从发送端传送到接收端。如果一个分组的目的地是一个本地网络上的工作站,那么它就将被直接传送到目的地。如果它的目的地是其他段的一个网络,那么这个分组就会被送到一个路由选择服务,而后在网络上被转发。网络层的功能主要包括:路由选择和中继,激活、终止一个网络连接。
警告:
通常具有开放特性的网络中的数据终端设备,都要配置网络层的功能。
提示:在广播网络(如:以太网、令牌环网等)中,选择路由比较简单,因此在这种广播网络中,网络层的功能较弱,甚至不存在网络层。
4. 传输层
传输层实现的主要功能是接收会话层的数据,传递给网络层,并保证到达对方数据的正确性。在传输层中传输数据的单位是报文。传输层是计算机经过网络进行数据通信时,第一个真正意义上的从源到目的端到端的层次。
提示:第一个真正意义上的从源到目的的端到端的层次,在模型中处于重要的地位。在传输层以下得各层中,使用的协议都是描述各台计算机与和它直接相连的计算机之间的协议,而不是源端机和目标机之间通信的协议。需要注意的是在源端机和目标机之间还可能存在多个路由器。传输层和位于传输层以上的三层都是端到端的。
5. 会话层
会话层提供在不同计算机上使应用能够建立和维持会话的服务,并提供使会话间能进行同步的功能。为了在两个对等会话实体之间建立起一个会话连接,需要依次完成以下工作。选择需要的服务性能参数,双方就对会话参数进行协商、识别每个会话连接、传送用户数据。之后就进入了数据传输阶段,在这个阶段中,两个会话用户之间会进行有组织的,同步的数据传输。最后还需要做的是释放会话连接。
提示:在会话层中常用的技术有:① 通过使用令牌技术来保证数据交换、会话同步的有序性;② 通过使用活动和同步技术来保证用户数据的完整性,并让用户知道整个交换的过程。③ 通过使用分段和拼接技术来提高数据交换的效率;④ 通过使用重新同步技术来实现用户会话的延续性,支持传输过程中的故障恢复。
6. 表示层
表示层的作用主要是弥补和处理不同计算机系统之间在信息表示方式上的差异,并提供一种公共语言以便在各种系统之间能进行互操作。在多数情况下,用户之间传输的不仅仅是比特流,而是姓名、货币、日期这类有具体格式和含义的信息。这些对象是通过字符串、整型、浮点型等数据类型表示的。由于不同的计算机内部用不同的代码表示这些数据类型,因此需要表示层管理这些数据结构,使数据能被统一转换为网络的标准表示法,并得以在网络上传输。
7. 应用层
应用层用来支持用户对联网提供应用服务所提出的要求。在这一层中,包含了众多用户经常使用的应用协议。应用层是开放系统的最高层,是能够直接为应用进程提供服务的唯一接口。其作用是在实现多个系统的应用进程之间相互通信的同时,完成特定的业务处理所需的服务。根据用户的不同需求,应用层含有支持不同应用的多种应用实体,提供多种应用服务,如电子邮件、文件传输、虚拟终端、远程数据输入,等等。