一、简介
过去,各个计算机厂商都有各自的网络体系,而这些网络体系结构又有不同的分层,也就意味着这些网络之间很难互相连接实现资源共享、信息交换。为解决这一问题,ISO(国际标准化组织)在1983年提出了一个标准框架,以应对计算机在全球范围内的互联互通。只要遵循OSI—RM协议,世界上任何网络系统都能实现连接并通信。
二、概述
OSI—RM | ||
---|---|---|
资源子网 | 应用层 | 提供面向用户的网络服务 |
表示层 | 对数据进行压缩、转码、加密等 | |
会话层 | 通信双方的会话管理 | |
传输层 | 提供端到端的差错控制和流量控制 | |
通信子网 | 网络层 | 负责整个信息传输的路径选择等 |
数据链路层 | 负责信息传输中直连设备的传输等 | |
物理层 | 定义传输介质规范,保证比特流的传输 |
三、OSI—RM七层网络体系结构
1.应用层
该层提供了特定网络服务功能所需要的各种协议,常用的网络服务有:文件服务、电子邮件服务、打印服务、网络管理服务、安全服务、多协议路由和路由互联服务、分布式数据库服务、虚拟终端服务。
也就是说,我们在计算机上进行数据传输和接收的过程中,这些数据会根据类型而使用不同的协议,比如说我们发送邮件会使用到SMTP协议、发送文件会使用到FTP协议等。而应用层让这一选择协议过程简化呈现在我们用户眼前。
(星火AI说:用层是 OSI 模型的最高层,直接面向用户需求而非技术细节。它将复杂的底层网络能力抽象为具体的业务功能(如收发邮件、浏览网页),使普通用户无需了解网络原理即可完成任务。)
2.表示层
该层保证了数据发送端到接收端的信息能够被正确识别、表示。
数据会先在源地址进行转码——压缩——加密等过程,当数据 到达目的地址后便进行解密——解压——解码等流程,以达到源和目的地的信息一致性。
(星火AI说:表示层作为“数据翻译官”,解决通信双方因硬件架构、操作系统或软件差异导致的语法不兼容问题,确保数据语义一致。)
3.会话层
该层负责与通信目标建立连接、保持连接、终止连接的整个会话过程。当因意外连接中断,该层提供连接恢复服务,并且提供通信速度匹配服务等。
(星火AI说:会话层作为“会议主持人”,管理通信双方(进程或设备)的会话关系,确保有序的数据交换。)
4.传输层
该层负责提供端口到端口的差错控制和流量控制。也就是说保证数据在整个传输过程中被无误地送到目的地。计算机接收数据时,不同的端口负责接受不同协议下的数据。比如说HTTP协议默认使用80号端口,FTP使用21号端口。
(星火AI说:通过 IP地址 + 端口号 的组合(即“Socket”),实现从源应用进程到目标应用进程的精准通信。)
5.网络层
该层负责将上层传递的数据报文封装为数据包,并负责数据包到达目的ip地址(路由选择),并且对数据包进行流量控制和拥塞控制,以确保数据包在网络上准确无误地到达目标ip地址所对应的网络设备。
(星火AI说:通过 IP地址 标识网络中的主机,替代物理地址(MAC地址),实现跨网络通信。)
6.数据链路层
当数据包在网络层完成在整个网络中的路径选择之后,数据包便会来到数据链路层,在该层数据被封装为数据帧(封装源、目标的MAC地址)。然后数据帧开始在网络上进行传输,传输路径被分为多个节点,数据来到新的节点会封装下一目的地的MAC地址形成新的数据帧,当抵达下一节点后又拆封旧帧,封装下一目的地的MAC地址形成新帧进行传输,如此循环,以达到最终的目的地。
(星火AI说:数据链路层仅关注相邻节点间的单段链路(如同一局域网内的PC与交换机),不关心跨网络的整体路径。)
7.物理层
该层负责规网络传输过程中,具体节点之间进行数据传输的传输介质规范。比如说使用什么样的线路传输什么样的数据,设备采用什么样的接口接受这些信息等。数据就是通过这些传输介质在各个节点间进行传输并抵达目标地点并被重新组织成原来的模样。专业地来说,这些介质传输的是“比特流”。
(星火AI说:将二进制数据(0/1)转换为物理信号(电信号、光信号、电磁波),并在接收端还原为比特流。)
8.图示
层级 | 核心功能 | 典型协议/设备 | 数据单位 |
---|---|---|---|
应用层 | 用户交互与业务逻辑 | HTTP、FTP、SMTP | 消息/文件 |
表示层 | 数据格式转换与加密 | ASCII、TLS | 字符流 |
会话层 | 会话管理与同步 | SIP、RPC | 会话 |
传输层 | 端到端可靠传输 | TCP、UDP | 段/报文 |
网络层 | 路由选择与逻辑寻址 | IP、ICMP、路由器 | 数据包 |
数据链路层 | 相邻节点帧传输 | Ethernet、交换机 | 帧 |
物理层 | 比特流传输 | Wi-Fi、光纤、网线 | 比特流 |
四、总结
总的来说,数据传输就是先由我们用户发送;然后在应用层根据数据类型启用相应服务;然后来到表示层,通过转码、压缩、加密之后;由会话层建立源地址与目的地址的连接;然后由传输层确定端口;来到网络层封装ip成为数据包,并选择网络路径;选择路径之后被放在传输节点之后,先是封装源和目标MAC地址成为数据帧,并根据下一节点和当前节点不断执行解旧封新的操作最终来到目的地;在相邻两个节点之间通过传输介质进行传输,传输的数据叫做比特流。来到目标地址后确认MAC地址,在确认ip地址,再确认端口,然后解除会话,并进行解码、解压、转码,将流动的比特流转换为原本的信息。这就是数据在网络传输中的具体流程啦~