OSI参考模型的通信方式•OSI各层之间存在相互依存关系,如果没有底层,上层也将无从存在。例如主机A想给主机B发送数据,数据首先要经历一个封装的过程。在进行封装之前,封装过程会对数据附加上必要的协议信息。因此,当数据沿着OSI模型的各层向下传输时,就会逐一被增加上数据报头,最后一直到模型的底部,这个过程被称为“封装”。•当二进制数据通过数据线路到达主机B,接受点上的对应层将把数据传送到上一个层之前,重新装配数据字段。随着数据逐渐在目地的模型上向上移动,这个过程被称为“解封装”。•我们可以把“加上报头”想象为“套上一层信封”,数据传送到物理层时已经被套上了七层信封。然后通过网络线缆、电话线、光缆等传送到接收端,接收端收到数据后,会从最底层向上传送,每经过一层就拆掉一层信封,直到最上层,数据被恢复成发送端最初时的原貌。•我们来看演示下面以同学们经常使用的即时通信工具QQ之间的通信为例,介绍从主机A发送QQ数据后,是如何被远方主机B的QQ所接受的。•1.发送方。•(1)首先主机A的QQ发送用户数据,如“加油中国!”,交给本地的OSI的应用层。应用层对该用户数据进行处理。将应用层的相关标识信息(报头)和用户数据合并成一个新的数据包,然后传送给表示层。•(2)在表示层中,将对传送过来的“加油中国!”信息进行加密、压缩处理(现在QQ消息为了保证安全,腾讯公司都要进行加密的;如果在QQ里还发送一张图片,为了传送快捷,还要将图片重新编码压缩),然后将表示层的相关信息填入报头中,生成新的数据包传送给会话层。•(3)在会话层中,将会为A地和B地的QQ应用程序建立连接,形成通路。接着会话层数据包交给传输层处理。•(4)在传输层中,将相应的标识信息添加为报头,这样来保证主机A发送的用户数据包能被主机B的QQ所接受。•(5)当传输层数据包到达网络层后,再为其添加一个头部(报头)。报头信息中包含网络进程所使用的网络协议,以及主机A和主机B的网络地址等。•(6)数据链路层为网络层数据包分别添加一个头部和尾部,把数据包封装成帧,头部和尾部中包含使用的协议、主机A和主机B网卡的MAC地址错误校检等信息。然后就把帧交给物理层。•(7)物理层,形成二进制数据,交给通信媒体进行传输。•2.接收方。•(1)当二进制数据流到达主机B后,首先交给物理层,将这些数据流信息重新组合成帧,交给数据链路层。数据链路层接着将帧数据解封提取出网络层数据包,并把数据包交给网络层。•(2)主机B的用户数据处理过程正好和主机A相反,依次经过物理层、数据链路层、网络层、传输层、会话层、表示层和应用层的处理,并且每层中的处理过程也正好和主机A相应层的处理相反。它们是将主机A的相应数据包进行解封,提出上层所需要的数据信息,最后应用层将“加油中国!”信息交给主机B的QQ应用程序。•3.这就是一次完整的传输过程,应用数据包在主机A的处理和在主机B的处理正好是一个相反的过程。