温故:
知新:
OSI模型将网络通信功能分为了七层,自上而下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。整个开放系统环境由资源子网中的主机和通信子网中的结点通过物理媒介连接而成。在这个七层分布中,只有资源子网的主机中才可能同时包含7层全部功能,一般来说通信子网只会用到最下面三层而已。
接下来咱们谈谈OSI模型的成功之处在那里,为什么它会被认可?OSI模型成功的将网络协议、服务和接口三者分离开来。网络服务定义了每一层具有的功能,协议表示每一层的功能的实现方式,接口自然就定义了上层如何访问下层的服务。通过这样的方式,将所有的问题都清晰化了,出了什么问题自然就去找谁,不会乱。咱们接下来看看这七层到底都能作甚呢?
应用层
提供用户应用软件与网络之间的接口。
表示层
这一层的主要功能是定义数据格式及加密。它将欲交换的数据从用户适应的抽象语法转换成适合于网络系统内部使用的语法。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:压缩与解压缩、加密与解密都是在这一层实现的。
会话层
是“进程----进程”之间的层次,它负责组织和同步不同主机上的各种进程的通信,自会话层开始往上的每一层传输的数据的单位都是报文。
传输层
是“端----端”之间的层次,它的功能是为两个端(源站和目的站)之间提供可靠经济的连接路径 ,并负责该连接的维护和取消。该层数据传输的单位是报文。
网络层
是“结点----结点”之间的层次,这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。这一层数据传输的单位是分组。
数据链路层
是相邻结点的层次,它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。这一层的传输单位是帧。
物理层
OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。这一层的传输单位是位(bit)。
咱们看图说话
在这个图中,每一层将上一层传输过来的信息加上若干的控制位之后再发给下一层,直到传输到本地物理层并由本地物理层在传输到对方的物理层,再逐级上传,就这样实现了对等层之间的通信。不同主机之间的对等层按照相应的协议通信,同一主机之间不同层通过接口进行通信。 除了最底层的物理层是通过传输介质来进行物理数据传输的,其他对等层之间的通信均为逻辑通信。
下面的内容是上图过程的详解
用户数据首先要经过发送方的应用层,应用层在用户数据前面加上本层的控制信息 H7,称作"头信息"。H7 加上用户数据一起传到表示层,表示层则将H7 和原始用户数据当作一个整体数据部分对待。同样,表示层也在整体数据前面加上本层的控制信息 H6,传到会话层,并作为数据部分。这个过程一直进行到数据链路层,数据链路层除了增加头信息 H2 以外,还要增加一个尾信息 T2,然后整个作为数据传送到物理层。数据到物理层成为由0 或1组成的数据比特流,然后再转换为电信号在物理媒体上传输至接收方。接收方收到数据后在向上传递时其过程正好相反,要逐层剥去发送方相应层加上的控制信息,其中数据链路层负责去掉 H2和T2,网络层去掉 H3,一直到应用层去掉 H7,最终把原始数据传递给了接收进程。
这个在发送方自上而下逐层增加头信息的过程称为数据的封装,而在接收方又自下而上逐层去掉头信息的过程称为数据的拆封。因接收方的某一层不会收到底下各层的控制信息,而高层的控制信息对于它来说又只是透明的数据,所以它只阅读和去除本层的控制信息,并进行相应的协议操作。发送方和接收方的对等实体看到的信息是相同的,就好像这些信息通过虚通信直接给了对方一样。
今天就聊到这里,如果对这部分内容感兴趣,请看我的《计算机网络基础之物理层功能与协议》