讲解计网中OSI模型及各层作用
我们来详细讲解一下计算机网络中至关重要的 OSI(Open Systems Interconnection)模型,即开放系统互连参考模型。
一、什么是 OSI 模型?
OSI 模型是一个概念性的框架,它由国际标准化组织(ISO)提出,旨在将复杂的网络通信过程分解为七个更小、更易于管理的层次。每一层都有明确定义的功能,并且只与相邻的上下两层进行通信。
核心思想: 分层和解耦。下层为上层提供服务,上层使用下层提供的服务,而无需关心其具体实现细节。这使得网络协议的设计、开发和故障排除都变得更加简单。
二、为什么需要 OSI 模型?
简化复杂性:将庞大的网络问题分解为多个小问题,分而治之。
标准化接口:每一层都有明确的功能和与相邻层的接口,允许不同厂商的设备和技术只要遵循同一标准就能互操作。
易于故障排除:当网络出现问题时,可以根据模型分层进行排查,快速定位问题所在层次。
三、各层详解(从下到上)
为了便于理解,我们用一个经典的寄送包裹的比喻来贯穿整个七层。
第 1 层:物理层(Physical Layer)
功能:负责在物理介质上传输原始比特流(0和1)。它定义了设备的物理特性,如电压水平、电缆规格、接口类型、传输速率等。它不关心比特流的意义,只关心如何正确地发送和接收信号。
数据单位:比特(Bit)
协议与设备:RJ45、光纤、同轴电缆、集线器(Hub)、中继器(Repeater)
比喻:运输卡车和公路。它负责把货物(数据)从一个地方实际搬运到另一个地方,但不关心货物是什么。
第 2 层:数据链路层(Data Link Layer)
功能:在直接相连的节点之间建立可靠的数据传输链路。主要职责包括:
物理寻址:定义 MAC 地址(设备的唯一物理标识)。
成帧:将网络层传来的数据包封装成帧(Frame),添加帧头和帧尾。
差错控制:通过帧尾的校验和(如CRC)检测传输过程中是否出现比特错误。
流量控制:控制发送速率,确保接收方不会被淹没。
数据单位:帧(Frame)
协议与设备:PPP、HDLC、以太网(Ethernet)、交换机(Switch)、网桥(Bridge)
比喻:本地邮局的分拣员和运输管理。他们负责管理本地邮局间的单条运输线路,确保包裹(帧)在两个邮局间正确无误地运送,并检查包裹是否完好(差错控制)。MAC地址就像是每个邮局的本地仓库编号。
第 3 层:网络层(Network Layer)
功能:负责将数据从源主机跨网络发送到目的主机。主要职责包括:
逻辑寻址:定义 IP 地址(网络的逻辑标识)。
路由:根据 IP 地址,为数据包选择最佳路径。
分组:将传输层的报文封装成数据包(Packet),并添加IP头(包含源和目的IP地址)。
数据单位:数据包(Packet)
协议与设备:IP协议(IPv4/IPv6)、ICMP、OSPF、路由器(Router)
比喻:国家的邮政网络系统。它根据收件人地址(IP地址)决定信件应该通过哪些主要城市的邮局(路由器)和哪条交通路线(路由)来运送。它不关心单个运输线路的好坏,只关心整体的路径规划。
第 4 层:传输层(Transport Layer)
功能:提供端到端(应用程序到应用程序)的可靠或不可靠的数据传输服务。主要职责包括:
服务寻址:通过端口号(Port) 来标识主机上的特定应用程序(如80端口对应Web服务)。
分段与重组:将上层数据分割成更小的单元(段),并在接收端重组。
连接管理:建立、维护和终止连接(如TCP的三次握手)。
可靠性:通过确认、重传等机制保证数据可靠送达(TCP)。
数据单位:段(Segment - TCP) 或 数据报(Datagram - UDP)
协议:TCP(传输控制协议,可靠)、UDP(用户数据报协议,不可靠但快速)
比喻:公司的收发室。它负责把从不同部门(应用程序)来的信件打包,写上具体的部门房间号(端口号),并决定是用挂号信(TCP,可靠)还是平信(UDP,快速)寄出。同时,它要确保重要的挂号信对方一定能收到。
第 5 层:会话层(Session Layer)
功能:负责建立、管理和终止两个应用程序之间的会话(Session)。它提供对话控制(双工、半双工)和同步点。
比喻:一次完整的电话通话。它负责拨号建立连接(会话开始),管理谁在说话(对话控制),如果通话中断,可以从断点处重新连接(同步),最后说“再见”并挂断电话(终止会话)。
协议:NetBIOS、RPC
第 6 层:表示层(Presentation Layer)
功能:充当应用程序和网络之间的“翻译官”。确保一个系统应用层发出的信息能被另一个系统的应用层读懂。主要职责包括:
数据翻译:编码转换(如ASCII to EBCDIC)。
数据加密/解密:如SSL/TLS(虽然在实践中常介于应用层和传输层之间)。
数据压缩:减少传输的数据量。
比喻:翻译官或加密员。如果你寄出一份用外语写并加密了的文件,表示层就是负责在发送前加密、在接收后解密并翻译成收件人能看懂语言的人。
协议:SSL/TLS(加密)、JPEG/MPEG(压缩)
第 7 层:应用层(Application Layer)
功能:最靠近用户的一层,为应用程序提供网络服务接口。它提供用户与之交互的服务(如电子邮件、文件传输、网页浏览)。
注意:它不是指像 Chrome、Word 这样的应用程序本身,而是指这些应用程序为了进行网络通信所使用的协议。
比喻:你(用户)和你要寄的信的内容。你写好一封信(应用数据),决定要寄出(发起网络请求)。
协议:HTTP(网页)、HTTPS(安全网页)、FTP(文件传输)、SMTP/POP3(电子邮件)、DNS(域名解析)
四、数据封装与解封装过程
数据发送时,从应用层开始,每经过一层都会被添加一个头部(和尾部,如数据链路层),这个过程叫封装。
数据接收时,从物理层开始,每经过一层都会剥离对应的头部,这个过程叫解封装。
发送方(封装):
用户数据 -> 应用层数据 -> 表示层数据 -> 会话层数据 -> [传输层:添加TCP头] -> 段 -> [网络层:添加IP头] -> 包 -> [数据链路层:添加MAC头尾] -> 帧 -> [物理层:转换为比特流] -> 电信号/光信号
接收方(解封装):
电信号/光信号 -> 比特流 -> 帧 -> 移除MAC头尾 -> 包 -> 移除IP头 -> 段 -> 移除TCP头 -> 会话层数据 -> ... -> 应用层数据 -> 用户数据
总结
OSI 模型是一个理论模型,实际的 TCP/IP 协议族大致对应其部分层次。但理解 OSI 模型的七层结构及其功能,对于学习计算机网络、进行网络排错和架构设计具有不可替代的指导意义。它提供了一个通用的语言和思维框架来解决所有网络问题。