本帖最后由 bacy001 于 2012-4-20 20:33 编辑
现在,在你熟悉了 OSI 参考模型的目的以后,我们再来按层次分别看看每一层的功能。
记住,OSI 模型仅仅在需要访问远程资源的时候才被使用,比如,资源在你的另外一台主机里面。当你准备发送数据时,发送请求需要被处理并打包以便能够发送到网络上。为了实现这个功能,发送系统必须按照下面的几个步骤做,他们都是 OSI 参考模型中明确提到的功能。
1. 寻址.
2. 绑定网络协议.
3. 发送到线路上.
模型中的每一层,与上层和下层之间都有逻辑接口,当一个系统准备将数据发送到线路上的时候,都是从模型的顶端开始将数据一层一层往下传递,而每一层在接到三层传送过来的数据后都会加上自己的头部和控制信息。
理解主机在发送和接收数据是如何使用这个模型非常的重要。发送主机按照这个模型准备数据用于传输,即数据从模型的顶端开始一层一层往下传递,每一层都将在上一层的基础上另外加上自己的头部和控制信息,通过这些头部和控制信息,接收端主机才能知道如何处理这些数据。而接收主机正好相反,在收到数据后,每一层都将剥离本层的头部和控制信息,然后将数据传递给上一层,直到最终的用户数据被提取出来。就像之前提到过的,在准备数据并将其发送到线路上,再到对端主机的整个过程中,每一层都有扮演着自己独特的角色(参见图1.3)。而所有这些步骤,对于用户来说都是透明的。
Translated By Bacysoft.cn
每一层在处理上层传递下来的数据时都非常简单,仅仅是加上自己的头部和控制信息。这种处理过程与用一个大信封去装另外一个信封的方式非常类似,每层都有自己的信封,用来装上层送下来的信封,并且信封上都含有本层的用于发送和接收的地址信息。
例如,应用层将用户数据放到应用层的信封里面,并在在信封上添加了信息,而这些信息是给远程主机的应用层看的。然后应用层将这个信封往下传递给表示层。
表示层在收到上层传递过来的数据后,会忽略上层的头部和控制信息,而用户数据依旧在应用层的信封中。然后表示层会将收到的这个信封装进自己的信封中,并添加上表示层的头部和控制信息,同理表示层的头部和控制信息是给远端主机的表示层看的。也就是说每个下层(在这里是表示层)将忽略上层传递下来的所有信息。每个层次都是独立,且互不关心。头部、控制信息、以及数据都只会被远端主机中相应的层来处理。每一个后续的层都会加上自己的头部后控制信息,然后交给下一层。
一旦数据传递到数据链路层的时候,系统会运行一个叫“循环冗余检验(CRC)”的算法(也被称为“帧校验序列”)。然后数据链路层会将CRC信息加到数据的尾部,以确保信息能够正确的传输到接收端主机。模型中只有数据链路层同时添加头部和尾部。数据链路层将把所有上层的数据完全封装起来,封装后的数据我们称之为“帧”。然后从这里开始,数据将被发送到线路上,在线路上数据将转变为很多的1和0的电信号或者光信号。最终数据将被远程主机接收(参见图1.4)。
Translated By Bacysoft.cn
当主机接收数据的时候,处理过程是反的。每层都会去掉自己这一层添加的头部信息,然后将剩下的信息传递给上一层,直到信息抵达应用层。整个过程在每个帧发送到线路上时都会发生。每一层都必须在原始信息上附加自己的头部和控制信息,这样对端对应的层才能识别数据并做进一步处理。
注意
讨论 OSI 模型有利于制造商和软件开发人员,以及提供网络技术支持服务的网络工程师。OSI 的层次结构划分了不同层次的功能和分工,以及各自的协议。这将减轻开发和维护的负担。分层也使得网络故障排除变得简单,它使工程师能能按照模型将问题定位在对应的层面。清晰的定义每层功能和分工,使定位问题变得简单。 |