一个ICT菜鸟的成长之路
欢迎来到我的个人博客~ 我的工具网站:kevinwen.flowus.cn
posts - 5,comments - 2,views - 18289

协议的分层:

ISO将OSI参考模型分为七层。通过这些分层,使得那些比较复杂的网络协议更加简单化。

  • 在OSI参考模型中,每一个分层都接受由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间交互遵循的约定就是 “协议”。
  • 协议分层就如同计算机软件中的模块化开发。OSI参考模型的建立比较偏理想化,它希望实现从第一层到第七层的所有模块,并将它门组合起来实现网络通信。分层可以将每个分层独立使用。
    • 这样的好处就是,即使系统中某个分层产生了变化,也不会波及整个系统。因此,可以构建一个扩展性和灵活性都较强的系统。此外,通过分层能够细分通信功能,更加易于单独实现每个分层的协议,并界定各个分层的具体责任和义务。
    • 而分层的劣势就是:过分的模块化,导致某些层的处理逻辑非常相似。

OSI参考模型

OSI参考模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
  1. OSI参考模型定义了每一层的“作用”。
  2. OSI参考模型中每一层的“作用”依靠“协议”定义。
  3. OSI参考模型中每一层的“协议”的内容是约定好的“规范”
  4. 我们日常所使用的就是遵循每一层“规范”的产品和通信手段。

OSI参考模型中对通信中必要的功能做了很好的归纳。网络工程师在讨论协议的时候也经常参考OSI参考模型的分层,但是OSI参考模型终究只是一个“模型”,他也只是对各层的作用做了一些粗略的界定,并没有对协议和接口进行详细的定义。如果要系统学习,我们不仅要知道OSI参考模型的每一层,还需要知道每一层的具体作用,以及和TCP/IP模型的差别。

OSI参考模型中每个分层的作用:

层数 分层名称 功能 每层功能的概览
7 应用层 针对特定应用的协议 如针对远程登录有Telnet协议,针对文件传输有FTP协议等
6 表示层 设备固有数据格式和标准数据格式的转换 接受不同编码的信息,如文字,图像,声音等,并且进行对应的转换
5 会话层 只负责两个节点之间的对话建立和拆除,对于数据是否可靠的传到目标节点并不关心。并且管理传输层以下的分层。 何时建立连接?何时断开连接?保持多久的连接?
4 传输层 管理两个节点之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址) 具体保证数据的可靠传输的分层,有握手机制和丢包重发机制。
3 网络层 网络设备的寻址和转换 结合物理层和数据链路层完成在不同网络中数据的传递
2 数据链路层 互联设备之间传送和识别数据帧 将比特流转换为数据帧
1 物理层 “0”,“1”,表示原始的电压高低,灯光的闪灭。界定连接器和网线的规格 将原始的电子信号0,1转换为对应的比特流。
  • 应用层:为应用程序提供服务并规定应用程序中通信相关的细节。包括文件的传输,电子邮件,远程登陆(虚拟终端)等协议。
  • 表示层: 将应用处理的信息合理的转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式,因此它主要负责数据格式的转换。
  • 会话层: 负责建立和断开通信连接
  • 传输层: 真正保证数据可靠传输的层。只在通信双方节点上建立,而无需再路由器上进行处理。
  • 网络层: 将数据传输到目标地址。网络层中的目标地址一般是跨网络的地址,即目标地址可以是多个网络通过路由器连接而成的某一个地址。因此,这一层主要负责寻址和路由选择。
  • 数据链路层: 负责物理层面上互联的,节点之间的而通信传输。例如将与1个以太网相连的2个节点之间的通信。
  • 物理层;负责0,1比特流与电压高低,光的闪灭之间的转换。

OSI参考模型通信处理流程:

  1. 简单的说,主机A和主机B都是具有OSI七层模型的主机,而路由器则是具有物理层,数据链路层,和网络层的设备。假设A与B需要通信,使用路由器作为中间件设备。

    • 发送方A : 从第七层应用层->第六层....->第一层物理层由上至下的顺序传输数据
    • 路由器: 从第一层物理层开始拆包,检查每一层的首部信息,当在网络层查询到对应主机B的IP地址的时候,重新封装数据包,从第三层网络层自上向下封装到第一层物理层再发送给主机B。
    • 接收方B : 从第一层,第二层到第七层由下之上向每一级分层传输数据。每一层上,在处理由上一层传过来的数据时可以附上当前协议必须的“首部”信息。然后接收方B对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将主机A发送的数据包恢复为原装。
  2. 以下以A向主机B发送一封内容为:早上好的邮件为例子。网络究竟会发生什么变化,我们自上向下分析。

  3. 会话层以上的处理:

    • 应用层:针对特定的应用程序使用对应的应用层协议。

      • 收发邮件这款软件从功能上可以分为两大块,一部分是与通信相关的,另一部分是与通信无关的,例如,用户A向键盘输入早上好就属于与通信无关的部分,但是用户A点击发送按钮将邮件发送给用户B就属于通信的部分。我们重点看通信的部分。 因为,用户A点击发送按钮发给用户B是属于针对特定的软件的协议,属于应用层。
      • 从用户输入完所要发送的内容比过去点击发送按钮的那一刻起,就进入了应用层协议的处理。改协议会讲所要传送的数据的前端附上一个首部(标签)的信息,该首部标明了邮件内容为“早上好”和收件人为“B”。这一带有首部信息的数据传送给主机B之后由该主机上的收发邮件软件通过“收信”获取内容。主机B上的应用收到由主机A发送过来的数据过后,分析其数据首部和数据正文,并将邮件保存在硬盘或其他非易失性存储器以进行相应的处理。如果主机B上收件人的邮箱空间已满无法接受主机A的邮件,则会返回一个错误给主机A。对这类异常的处理也属于应用层需要解决的问题。
      • 主机A与主机B通过它们各自应用层之间的通信,最终实现邮件的存储。
    • 表示层:将数据从主机特有的格式转换为网络标准的传输格式。

      • 表示层的“表示”有“表现”,“演示”的意思,因此更关注数据的具体表项形式。此外,所使用的应用软件本身不同也会导致数据的表现形式截然不同。例如有的字处理软件创建的文件只能由该字处理器厂商所提供的特定版本的软件才能打开读取。那么假如用户A与B使用的是不同的邮件软件呢?该怎么处理这个问题?
      • 解决这类问题有以下几种方法。首先是利用表示层,将数据从“某个计算机特定的数据格式“转换为”网络通用的标准数据格式”后再发送出去。接收端主机收到数据以后将这些网络标准格式的数据恢复为“该计算机特有的数据格式。
      • 通过前面这种将数据转换为通用标准格式后在进行处理,使得异构的机型和奥做系统也能保持数据的一致性。这也正是表示层的作用所在。即表示层是进行“统一的网络数据格式”与“某一台计算机或某一款软件特有的数据格式”之间的相互转换的分层。
      • 即使是一段简单的文字,也有众多复杂的编码格式。就拿文字来说,有UTF-8,UTF-16等等很多编码格式,假如没能按照特定的格式编码,那么在接收端就是收到邮件也是乱码。
      • 表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层去处理。
    • 会话层:选择采用哪种连接方式?

      • 假定用户A新建了5封电子邮件准备发送用户B,这5封邮件的发送顺序可以有很多种。例如,可以每一次发送一封邮件就建立一次连接,随后断开连接。还可以一经建立好连接后就将5封邮件连续发送给对方,甚至可以同时建立好5个连接,将5封邮件同时发送个给对方。决定采用何种连接方式是会话层的主要责任。
      • 会话层也像应用层和表示层那样,在其收到的数据前端附加首部或者标签信息后再转发给下一层。而这些首部或标签中记录着数据传送顺序的信息。
  • 到此为止,我们知道了在应用层写入的数据会经过表示层格式化编码,再由会话层标记发送顺序后才被发送出的大致过程。然而,会话层只对何时建立连接,何时发送数据等问题进行管理,并不具有实际传输数据的功能。真正负责在网络上传输具体数据的是会话层以下的“无名英雄”。

    • 传输层:确保连接的可靠性。

      • 主机A确保主机B之间的通信并且准备发送数据。这一过程叫做建立连接。有了这个通信连接就可以使主机A发送的电子邮件到达主机B中,并由主机B的邮件处理程序获取最终的数据。此外,当通信传输结束后,有必要将连接断开。
      • 如上,进行建立连接或断开连接的处理,在两个节点之间创造逻辑上的通信连接即是传输层的主要作用,此外,传输层为了确保所传输的数据到达目的地址,会在通信两端的计算机之间进行确认,如果数据没有到达,它会负责进行重发。
      • 例如: 当主机A发送给B的某一些数据时,发生了网络异常导致只有一部分数据到达了目标地址,那么主机B会在说道数据以后将自己没有收到的部分数据的事实告知主机A。主机A得知这个情况后就会将缺失的数据重发给B,并再次确认对方是否说到。这就好比我们日常对话中的确认语句:“对了,你刚才说了什么。”, “我刚才说了.....,你清楚了吗?”,“我清楚了”。
      • 由此可见,保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠性,在这一层也会为索要传输的数据附加首部来识别这一分层的数据,然而,实际上将数据传输给对端的处理是由网络层来完成的。
    • 网络层:从节点A到节点B的数据通信处理。

      • 网络层的作用是在网络与网络互相连接的环境中,将数据从发送端主机发送到接收端主机。如下图所示,两端主机之间虽然有众多的数据链路,但能够将数据从主机A送到主机B也都是网络层的功劳。
        image
      • 传输层和网络层的关系:
        • 在不同的网络体系结构下,网络层有时候也不能保证数据的可达性。例如在TCP/IP网络层的IP协议中,就不能保证数据一定会发送到对端地址。因此,数据传送过程中出现数据丢失,顺序乱序等问题可能性会大大增加,像这样没有可靠性传输要求的网络层中,可以由传输层负责提供“正确传输数据的处理”。TCP/IP中,网络层与传输层相互协作以确保数据包能够传送到世界各地,实现可靠传输。
    • 数据链路层和物理层:向物理地址发送信号。

      • 通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互联的设备之间进行数据处理。
      • 物理层中,将数据的0,1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间是由地址实现传输。这种地址被称为MAC地址【介质访问控制Media Access Control】,也叫做物理地址或硬件地址。采用MAC地址,目的是为了识别连接到同一个传输介质上的设备。因此,将这一分层中将包含MAC地址信息的首部附加到从网络层转发过来的数据上,将其发送到网络。
      • 网络层和数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
    • 主机B端的处理:

      • 接收端主机B上的处理流程刚刚与A相反,它从物理层开始将接收到的数据逐层发给上一分层进行处理,从而使用户B最终在主机B上是由邮件客户端软件接受用户A发送过来的邮件,并可以读取对应的内容。

非易失性存储器:指数据不会因为断电而丢失的一种存储设备

posted on   kevin的ICT菜鸟之路  阅读(72)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示