【网络知识科普小课堂】专栏今天正式开篇,我们将与大家一起探讨网络及网络安全科普知识,其中包括OSI参考模型、TCP/IP协议等。同时,也欢迎大家反馈行业内最新的前沿话题,我们一起探讨交流。第一期,我们先从日常工作可以接触到的OSI参考模型讲起。
应用场景
应用场景
沈阳同事需要通过即时通讯软件将工作文件压缩传给北京同事。沈阳同事登录即时通讯软件,对北京同事发出消息“Hello”,对方回复“我在”,沈阳同事随后开始在线传输该工作文档的压缩文件。北京同事接收后,无法打开压缩文件,于是下载一个解压缩软件顺利打开了文件。这样一个看似很平常的情景,实际上遵循着OSI参考模型的工作原理。
什么是OSI参考模型
什么是OSI参考模型
OSI(Open System Interconnect),即开放式系统互连,简称OSI参考模型。它是一个七层架构模型,为全球所有互联计算机系统建立一个通用的通信框架,解决不同系统间的互操作性问题。
OSI参考模型的封装机制
OSI参考模型的封装机制
沈阳同事向北京同事传送文件时,需要经历一个OSI参考模型的封装过程。文件从应用层依次往下,历经OSI参考模型的七个层次,由协议栈将文件分解成数据包,并在每一层都将该层的头部(或尾部)消息封装进去,以便将数据正确地传送到下一层,一直到达本地的网卡和网线,形成一个封装的过程。以下是OSI参考模型封装示意图。
图1 OSI封装示意图
当北京同事的计算机接收到数据时,协议栈需要执行解封装,解封装实际是封装的一个逆操作,从物理层到应用层向上依次执行系列步骤,将每层的包头拆掉,最后将应用数据重组成文件,由北京同事解压缩完文件,就可以直接打开阅读了。
OSI参考模型的每一层能起到什么作用
OSI参考模型的每一层能起到什么作用
以上面的文件传输为例,简单说明OSI参考模型的各层作用,从上往下依次为:
应用层(第7层)
应用层充当用户的应用程序和网络之间的接口,可以简单地理解为,应用层为应用程序提供服务,即时通讯软件就是应用层的典型应用程序。由于应用层的工作机制,人们得以通过即时通讯软件进行聊天,发送文件,发送电子邮件,浏览网页等。应用层的代表协议有HTTP、FTP、Telnet、SMTP等。通过互联网在通信两端传输文件,就是基于HTTP协议。
表示层(第6层)
负责处理标准格式的转换、数据压缩和解压缩,以及数据的加密和解密。大多数文件或数据格式在此层运行,如图像、视频、文档、网页等格式。代表格式有ASCII、JPEG、7zip等。文件压缩发生在表示层,还可对文件进行加密,保障传输安全性。
会话层(第5层)
负责建立、维护和终止两台计算机之间的通信会话。沈阳同事发起即时通讯软件聊天的时候,就开始了两个应用程序之间的通信,一直到双方下线,会话才结束。会话层的代表协议有NFS、SQL、RPC等。
传输层(第4层)
传输层在两个设备之间建立逻辑连接,提供端到端的数据传输服务。常见协议有TCP、UDP、SSL、TLS等。为了提高传输效率,文件在此层会被分片重组成若干TCP分段。TCP是面向连接的可靠协议,需要三次握手建立连接,消耗资源;UDP是无连接协议,无需握手,快速高效。即时通讯聊天可基于UDP,传输文件则基于TCP以保障传输的可靠性。传输层的端口可标识具体的应用程序。如登录时,即时通讯软件客户端使用UDP 4000;登录成功后,需建立TCP连接以保持在线状态,可使用TCP 80;传输文件时,则使用TCP 443。
网络层(第3层)
负责给数据添加路由和寻址信息。代表协议有IP、ICMP、IGMP、RIP、OSPF等。互联网上有很多路由可从沈阳通往北京,网络层负责选一条数据包能走的最佳路径,通过查询网络上的路由表即可确定,然后由路由器将数据包转发到目的地址所对应的北京同事。
数据链路层(第2层)
负责将来自网络层的数据包转化为格式正确的帧,在以太网等二层网络中传输。代表协议有ARP、L2TP、PPTP、IDSN等。数据包将根据目的IP,通过互联网一路传送到北京海淀某局域网,可交换机不认识IP地址,于是ARP协议大显身手,它负责转换网络层IP地址所对应数据链路层的MAC地址,数据包将传给拥有这个MAC的同事。
物理层(第1层)
以上都是通过即时通讯软件传输数据包的逻辑流程,最后要通过物理层来执行实际传输。物理层接收来自数据链路层的帧,并将帧转换为比特(位),形成比特流,然后以电信号、光信号等形式通过线缆等传输出去。代表协议或接口标准有SONET、HSSI等。
总结
总结
综上所述,文件以数据包形式在实际传输过程中所涉及的各个层面,与OSI七层参考模型的映射关系,可如下图所示:
图2 遵循OSI参考模型的文件传输实例
OSI参考模型将网络互联任务、协议和服务分为不同的层。每层负责执行特定的任务或操作,每层直接与上面的层以及下面的层进行物理通信,与对等层使用相同的协议进行逻辑通信。当发送数据时,数据是自上向下传输的;当接受数据时,数据则是自下而上传输的。它解决了不同系统间的互操作性问题,使全球计算机能够进行开放式通信,有力地推动了互联网的繁荣与发展。