你好,这里是网络技术联盟站,我是瑞哥。
公众号后台有小伙伴让我讲一下 OSI 七层模型,这个概念以前其实讲过很多遍了,而且属于网络技术领域中最基本的概念,虽然是最基本的概念,在看的各位有谁能够说 “ 我精通 OSI ” 的?
我们在上大学的时候,是不是都学过谢希仁的《 计算机网络 》。这本书中就是围绕 OSI 七层模型展开的,说明 OSI 是多么重要。那么本文瑞哥会以最最通俗的语言给大家科普一下 OSI 七层模型,希望对大家有所帮助!

OSI 七层模型概述
网络通信是现代信息社会的基石,而 OSI( Open Systems Interconnection )模型是理解和设计网络系统的基础。OSI 模型由国际标准化组织( ISO )在1984年提出,旨在为不同厂商生产的设备和系统之间的通信提供一个通用框架。
OSI 模型将网络通信过程划分为七个独立但相互依赖的层次,每一层都有其特定的功能和协议。通过这种分层结构,复杂的网络通信过程变得更易于管理和理解。
从下到上,OSI 模型依次分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
七层模型图示

物理层( Physical Layer )
物理层是 OSI 模型的最低层,负责在物理媒体上传输原始比特流。其主要功能包括定义物理设备的硬件规格、传输介质的类型( 如电缆、光纤、无线电波 )、信号的编码方式和传输速率等。
常见的物理层设备包括集线器( Hub )、中继器( Repeater )和网络适配器( NIC )。
数据链路层( Data Link Layer )
数据链路层负责将物理层传输的比特流组装成帧,并提供节点之间的可靠数据传输。主要功能包括成帧、物理地址( MAC 地址 )管理、错误检测和校正、流量控制和访问控制。
常见的数据链路层设备包括交换机( Switch )和网桥( Bridge )。
网络层( Network Layer )
网络层负责数据包的路由选择和逻辑地址( IP 地址 )的处理。其主要功能包括路径选择、逻辑地址管理、分组转发和拥塞控制。
常见的网络层设备是路由器( Router )。
传输层( Transport Layer )
传输层提供端到端的通信服务,确保数据从发送方到接收方的可靠传输。其主要功能包括端口管理、可靠传输、流量控制和错误检测与校正。
传输层的常见协议包括传输控制协议( TCP )和用户数据报协议( UDP )。
会话层( Session Layer )
会话层负责管理应用程序之间的会话。其主要功能包括会话建立、管理和终止、会话检查点和恢复、对话控制等。
表示层( Presentation Layer )
表示层负责数据的格式化、加密解密和数据压缩。其主要功能是确保发送方和接收方使用一致的数据格式,提供数据的语法和语义转换。
应用层( Application Layer )
应用层直接面向用户,提供各种网络服务。其主要功能包括文件传输、电子邮件、远程登录、网页浏览等。
OSI 模型的优势
1、标准化
OSI 模型提供了一种标准化的通信框架,确保不同厂商的设备可以互操作。通过遵循同一套协议标准,网络设备和系统能够无缝连接和协同工作。
2、模块化
OSI 模型的分层结构使每层独立,便于开发和故障诊断。每一层都可以独立设计和修改,而不影响其他层次的功能和操作。
3、灵活性
由于各层功能独立,OSI 模型允许在不影响其他层的情况下,升级和修改单独的层次。例如,可以在不更改应用层的情况下,改进传输层协议以提高性能。
4、互操作性
OSI 模型通过标准接口实现不同类型的网络和设备的互操作。无论是有线网络还是无线网络,不同类型的网络设备和协议都能在 OSI 模型的框架下实现互连互通。
下面我们详细介绍各层!
物理层( Physical Layer )
物理层是 OSI 模型的第一层,位于模型的底部,负责在物理媒体上传输比特流。其主要任务是定义硬件设备的电气、机械、程序及功能规格,以实现设备间的物理连接和数据传输。

物理层的功能
1、比特传输
物理层将数据以比特流的形式在通信链路上传输。它处理的是最基础的信号传输任务,包括信号的生成、传输、接收和解释。
2、物理媒体管理
物理层定义传输介质的类型,包括:
- 铜线电缆:如双绞线、同轴电缆。
- 光纤:利用光脉冲传输数据,适用于长距离和高速传输。
- 无线电波:用于无线通信,如 Wi-Fi、蓝牙、蜂窝网络等。
3、接口规范
物理层定义硬件设备之间的物理接口,如插头、插座、引脚配置、信号电压和电缆规格。常见的接口规范包括:
- RJ45:用于以太网连接的标准接口。
- BNC:用于同轴电缆连接。
- 光纤接口:如 SC、ST、LC 等接口类型。
4、信号编码
物理层将数据编码为适合在物理介质上传输的信号形式。常见的信号编码方式有:
- 曼彻斯特编码:通过电平变化表示比特值,常用于以太网。
- NRZ( 非归零 )编码:通过高低电平表示0和1。
- PWM( 脉宽调制 ):通过信号脉冲宽度表示比特值。
5、同步
同步是确保发送方和接收方在比特级别上保持一致的过程。物理层通过时钟信号或嵌入在传输数据中的同步信息来实现同步,从而保证数据的正确接收。
物理层设备
物理层涉及的设备通常是与物理连接和信号传输相关的硬件。这些设备包括:
- 集线器( Hub ):集线器是一个基本的网络连接设备,工作在物理层。它将多个设备连接到一个网络段上,并将接收到的数据广播到所有连接的设备。
- 中继器( Repeater ):中继器用于扩展网络的传输距离。它接收信号、放大信号并重新发送,减少信号衰减。
- 网络适配器( Network Interface Card, NIC ):网络适配器是安装在计算机或其他设备中的硬件组件,提供设备与网络的物理连接。
物理层标准
物理层的标准定义了网络设备和介质的特性。这些标准包括:
- 以太网( Ethernet )标准:定义了多种传输速率和介质类型,如 10BASE-T、100BASE-TX、1000BASE-T 等。
- 光纤通信标准:如SONET( 同步光网络 )和SDH( 同步数字体系 ),用于高速光纤通信。
- 无线通信标准:如IEEE 802.11( Wi-Fi )、蓝牙( Bluetooth )、LTE( 长期演进 )等。
物理层的实际应用
物理层在日常网络通信中发挥着关键作用。例如:
- 在家用网络中,通过以太网电缆和Wi-Fi路由器将设备连接到互联网。
- 在企业网络中,使用光纤电缆和高性能交换机来提供高速网络连接。
- 在广域网( WAN )中,使用卫星和光纤通信技术实现长距离数据传输。
数据链路层( Data Link Layer )
数据链路层是 OSI 模型的第二层,位于物理层之上,负责将物理层传输的比特流组装成帧,并提供节点之间的可靠数据传输。

数据链路层的功能
1、成帧
数据链路层将比特流划分为帧( Frame ),在帧头和帧尾添加控制信息,如帧起始和结束标志、地址信息、帧校验序列等。成帧使得数据传输更加有序和可靠。
2、物理地址( MAC地址 )管理
每个网络接口都有一个唯一的物理地址,即 MAC 地址。数据链路层使用 MAC 地址来标识和寻址网络设备,确保数据帧被发送到正确的目的地。
3、错误检测和校正
数据链路层通过校验和等方法检测传输过程中出现的错误,并进行必要的纠正。例如,常见的错误检测方法包括循环冗余校验( CRC )和校验和( Checksum )。
4、流量控制
数据链路层管理数据传输速率,防止发送方和接收方之间的速率差异导致的数据丢失。流量控制机制确保接收方有足够的缓冲空间来处理接收到的数据。
5、访问控制
在共享介质上( 如以太网 )管理设备的传输权限,防止数据碰撞。常见的访问控制方法包括 CSMA / CD( 载波侦听多路访问 / 冲突检测 )和 CSMA / CA( 载波侦听多路访问 / 冲突避免 )。
数据链路层设备
数据链路层涉及的设备通常是与数据传输和处理相关的硬件。这些设备包括:
- 交换机( Switch ):交换机是工作在数据链路层的网络设备,它根据 MAC 地址将数据帧转发到正确的端口。相比集线器,交换机提供了更高效和安全的数据传输。
- 网桥( Bridge ):网桥连接不同的局域网段,并根据 MAC 地址过滤和转发数据帧。网桥可以减少网络冲突,提高网络性能。
数据链路层协议
数据链路层的协议定义了帧的格式、传输方式和错误处理机制。常见的数据链路层协议包括:

- 以太网( Ethernet ):以太网是最常见的数据链路层协议,广泛应用于局域网。它定义了帧格式、介质访问控制方法( CSMA / CD )和物理层接口标准。
- 点对点协议( PPP ):PPP 用于点对点链路,如拨号连接和广域网连接。它支持多种网络层协议,并提供认证、压缩和错误检测功能。
- 高层数据链路控制( HDLC ):HDLC 是一种面向比特的链路控制协议,广泛应用于点对点和多点通信。
数据链路层的实际应用
数据链路层在网络通信中扮演着重要角色。例如:
- 在企业网络中,使用交换机将多个计算机和设备连接在一起,实现高效的数据传输和网络管理。
- 在互联网接入中,通过 DSL、光纤或无线连接将家庭或企业网络连接到 ISP( 互联网服务提供商 )的网络。
- 在无线局域网中,使用 Wi-Fi 接入点和无线网卡进行数据传输和连接。
数据链路层的子层
数据链路层可以进一步分为两个子层:逻辑链路控制子层( LLC )和介质访问控制子层( MAC )。
逻辑链路控制子层( LLC )
LLC 子层负责处理多种上层协议的复用和数据链路层的错误检测与恢复。LLC 子层通过逻辑链路控制( LLC )头来标识不同的上层协议。
介质访问控制子层( MAC )
MAC 子层负责控制对物理介质的访问,管理数据帧的发送和接收。MAC 子层包含了物理地址的管理和冲突检测 / 避免机制。
数据链路层的安全性
数据链路层在网络安全中也扮演重要角色。例如:
- MAC 地址过滤:通过限制只允许特定 MAC 地址的设备访问网络,提高网络安全性。
- VLAN( 虚拟局域网 ):通过交换机将物理网络划分为多个逻辑网络,隔离网络流量,增强安全性和管理性。
- WPA / WPA2:无线网络的安全协议,通过加密和认证机制保护数据传输安全。
网络层( Network Layer )
网络层是 OSI 模型的第三层,负责数据包的路由选择和逻辑地址( IP 地址 )的处理。网络层的主要任务是实现数据在不同网络之间的传输。
网络层的功能
1、路由选择
网络层的主要功能是选择数据包从源到目的的最佳路径。路由选择可以是静态的( 手动配置 )或动态的( 使用路由协议自动更新 )。
2、逻辑地址( IP 地址 )管理
网络层使用逻辑地址( 如 IP 地址 )标识网络中的设备。每个设备在网络中都有一个唯一的 IP 地址,这使得设备之间可以相互通信。
3、分组转发
网络层负责将数据包从源节点传递到目的节点。中间可能需要通过多个路由器转发数据包,直到到达最终目的地。
4、拥塞控制
网络层管理网络拥塞情况,避免网络过载。通过监控和调整数据包的传输速率,确保网络流量的均衡分布。

网络层设备
网络层的主要设备是路由器,它根据 IP 地址进行数据包的路由选择和转发。
路由器( Router ):工作在网络层,连接不同的网络,并根据路由表和路由协议决定数据包的转发路径。
网络层协议
网络层的协议定义了数据包的格式、路由选择和地址解析等功能。常见的网络层协议包括:
- 互联网协议( IP ):IP 协议是网络层最重要的协议,提供不可靠的、无连接的数据传输服务。IP 协议包括 IPv4 和 IPv6 两个版本。
- 互联网控制报文协议( ICMP ):用于传输控制信息,如错误报告和网络诊断( 如 ping 和 traceroute 命令 )。
- 地址解析协议( ARP ):将 IP 地址解析为物理地址( MAC 地址 ),用于局域网中的设备通信。
路由算法
路由算法用于确定数据包的传输路径。常见的路由算法包括:
- 静态路由:手动配置的固定路径,适用于小型网络。
- 动态路由:使用路由协议自动更新路由表,如 RIP、OSPF 和 BGP。
动态路由协议
- RIP( 路由信息协议 ):一种基于距离矢量的路由协议,适用于小型到中型网络。RIP 使用跳数作为度量,每 30 秒广播一次整个路由表。
- OSPF( 开放最短路径优先 ):一种基于链路状态的路由协议,适用于大型网络。OSPF 使用 Dijkstra 算法计算最短路径,并在网络状态变化时立即更新。
- BGP( 边界网关协议 ):一种用于互联网上自治系统之间的路由协议。BGP 使用路径向量算法,支持复杂的路由策略和路径选择。
网络层的实际应用
网络层在互联网和企业网络中扮演着重要角色。例如:
- 互联网通信:IP协议是互联网的基础协议,支持全球范围内的设备通信。
- 企业网络:使用路由器和动态路由协议,企业网络可以实现不同部门和分支机构之间的高效通信。
- 虚拟专用网络( VPN ):通过隧道协议在公共网络上创建安全的虚拟网络,保护数据传输的隐私和完整性。
传输层( Transport Layer )
传输层是 OSI 模型的第四层,负责提供端到端的通信服务,确保数据从发送方到接收方的可靠传输。
传输层的功能
1、端口管理
传输层通过端口号区分不同的应用程序。每个网络服务都有一个唯一的端口号,传输层根据端口号将数据包传递给正确的应用程序。
2、可靠传输
传输层提供可靠的数据传输服务,确保数据包按序到达且无丢失。常见的可靠传输协议是 TCP( 传输控制协议 )。
3、流量控制
传输层管理发送方和接收方的数据传输速率,防止网络拥塞。流量控制机制确保接收方有足够的缓冲空间处理接收到的数据。
4、错误检测和校正
传输层通过校验和等方法检测传输过程中出现的错误,并进行必要的纠正。传输层协议通常包含错误检测和重传机制。

传输层协议
传输层的协议定义了数据包的格式、传输方式和错误处理机制。常见的传输层协议包括:
- 传输控制协议( TCP ):TCP 是面向连接的、可靠的传输层协议。TCP 提供流量控制、拥塞控制和错误检测机制,确保数据包按序到达且无丢失。
- 用户数据报协议( UDP ):UDP 是无连接的、不可靠的传输层协议。UDP 提供简单的、低延迟的数据传输服务,适用于对可靠性要求不高的应用,如视频流、在线游戏等。

传输层的实际应用
传输层在网络通信中至关重要。例如:
- 网页浏览:使用 TCP 协议保证网页数据的可靠传输。
- 视频流:使用 UDP 协议提供低延迟的视频数据传输。
- 电子邮件:使用 TCP 协议确保电子邮件数据的完整传输。
- 文件传输:使用 TCP 协议保证文件数据的正确传输和重传。
传输层的安全性
传输层在网络安全中也扮演重要角色。例如:
- TLS / SSL( 传输层安全 / 安全套接字层 ):用于加密传输层的数据,保护数据的隐私和完整性。
- TCP SYN Flood 防护:通过限制半连接数和使用 SYN Cookies 等技术防止 TCP SYN Flood 攻击。
会话层( Session Layer )
会话层是 OSI 模型的第五层,负责管理应用程序之间的会话。它提供了建立、管理和终止会话的功能。
会话层的功能
1、会话建立、管理和终止
会话层负责在通信双方之间建立、管理和终止会话。它确保通信会话能够正确启动、维持和关闭。
2、会话同步
会话层提供会话检查点和恢复功能。如果通信过程中发生故障,检查点可以帮助恢复会话,避免数据丢失。
3、对话控制
会话层管理数据传输的方向和顺序,支持全双工或半双工通信。它确保数据在正确的时间被发送和接收。
会话层协议
会话层的协议定义了会话管理和同步的机制。常见的会话层协议包括:
- 远程过程调用( RPC ):RPC 协议允许程序在不同的计算机上执行远程调用,实现分布式计算。
- 会话初始协议( SIP ):SIP 用于控制多媒体通信会话,如语音和视频通话。
会话层的实际应用
会话层在网络通信中起着关键作用,例如:
- 视频会议:通过 SIP 协议管理多方视频会议的会话。
- 远程桌面连接:使用会话层协议管理远程桌面的会话状态。
- 在线游戏:管理游戏服务器和客户端之间的会话,实现实时互动。
表示层( Presentation Layer )
表示层是 OSI 模型的第六层,负责数据的格式化、加密解密和数据压缩。它确保发送方和接收方使用一致的数据格式。
表示层的功能
1、数据格式化
表示层将应用层的数据转换为网络能够传输的标准格式,并将接收到的数据转换为应用程序能够处理的格式。这包括字符编码、数据结构转换等。
2、数据加密解密
表示层提供数据的加密和解密功能,保护数据的隐私和安全。加密在发送方进行,解密在接收方进行。
3、数据压缩
表示层可以对数据进行压缩,以减少传输数据量,提高传输效率。在接收方解压数据,恢复原始格式。
表示层协议
表示层的协议定义了数据格式转换、加密和压缩的机制。常见的表示层协议和标准包括:
- 独立计算机体系结构( ICA ):用于 Citrix 系统的远程显示协议。
- 简易网络管理协议( SNMP ):用于网络管理,虽然主要在应用层,但其编码部分在表示层。
- XDR( 外部数据表示 ):用于数据格式化的标准,确保不同系统间的数据兼容。
表示层的实际应用
表示层在各种应用场景中都扮演重要角色,例如:
- 网页浏览:使用 SSL / TLS 协议加密网页数据,确保传输安全。
- 文件传输:使用 MIME( 多用途互联网邮件扩展 )格式化和编码电子邮件附件。
- 视频流:使用编解码器对视频数据进行压缩和解压,优化传输效率。
应用层( Application Layer )
应用层是 OSI 模型的第七层,直接面向用户,提供各种网络服务。应用层是用户和网络之间的接口。
应用层的功能
1、网络服务
应用层提供各种网络服务,如文件传输、电子邮件、远程登录、网页浏览等。它是用户与网络进行交互的界面。
2、服务请求和响应
应用层处理用户的服务请求,并生成相应的响应。例如,当用户请求访问某个网页时,应用层协议会处理请求并返回网页数据。
3、数据表示
应用层负责将用户数据表示为适合传输的格式,并在接收方将数据转换回用户可理解的格式。这通常涉及到表示层的协作。
应用层协议
应用层的协议定义了各种网络服务的标准和规范。常见的应用层协议包括:
- 超文本传输协议( HTTP ):用于网页浏览和数据传输。
- 文件传输协议( FTP ):用于文件的上传和下载。
- 简单邮件传输协议( SMTP ):用于电子邮件的发送。
- 域名系统( DNS ):用于域名解析,将域名转换为 IP 地址。
- 简单网络管理协议( SNMP ):用于网络设备的管理和监控。
应用层的实际应用
应用层是用户和网络之间的直接接口,几乎所有的网络应用都在应用层进行。例如:
- 网页浏览:使用 HTTP / HTTPS 协议访问和浏览网页。
- 电子邮件:通过 SMTP、POP3、IMAP 等协议发送和接收电子邮件。
- 文件共享:通过 FTP、SFTP、HTTP 等协议上传和下载文件。
- 即时通讯:使用 XMPP、SIP 等协议实现即时通讯和多媒体通信。
- 远程登录:通过 SSH 协议实现远程服务器的安全登录和管理。
应用层的安全性
应用层在网络安全中也扮演重要角色。例如:
- HTTPS:通过 SSL / TLS 协议加密网页数据,确保传输的安全性。
- 电子邮件安全:通过 PGP 或 S / MIME 加密电子邮件内容,保护隐私。
- 网络访问控制:通过认证和授权机制,控制用户对网络资源的访问权限。
一次 HTTP 请求 OSI 工作过程
我们可以将 HTTP 请求分解并应用到 OSI 模型中,以更好地理解请求在每一层的表示方式。为了简化说明,我将省略如头部信息和校验和等细节,以便我们可以专注于核心元素。

应用层( 第 7 层 )
应用层负责为用户提供网络服务。HTTP 协议工作在这一层,通过 HTTP协议,客户端( 通常是浏览器 )向服务器发送请求以获取网页或其他资源。
一个典型的 HTTP GET 请求可能看起来如下:
GET /index.html HTTP/1.1
Host: www.example.com
这是用户请求某个网页的直接表达。在这一层,用户和应用程序直接交互。
表示层( 第 6 层 )
表示层负责数据的格式化、加密解密和数据压缩。对于 HTTP 请求,这可能涉及将数据编码为某种字符集( 如UTF-8 )或者对数据进行 SSL / TLS 加密以确保传输的安全性。
例如,如果使用 HTTPS( HTTP over SSL / TLS ),请求可能会被加密,从而保护数据在传输过程中不被窃听或篡改。
会话层( 第 5 层 )
会话层负责建立、管理和终止会话。它确保数据交换的顺序和同步,并可以在通信过程中进行检查点和恢复操作。
在 HTTP 请求的上下文中,会话层可能管理会话状态,比如通过 Cookies 来跟踪用户会话:
Cookie: sessionId=abc123
这允许服务器识别并维持与特定客户端的会话。
传输层( 第 4 层 )
传输层负责提供可靠的端到端数据传输服务。对于 HTTP 请求,通常使用 TCP 协议。TCP 协议将数据分割成多个段( segments ),并通过序列号和确认机制确保数据完整、按序到达。
HTTP 请求在这一层被划分成 TCP 段,每个段包含一个序列号:
Segment 1: Sequence Number 1, Data: "GET /index.html HT"
Segment 2: Sequence Number 2, Data: "TP/1.1 Host: www.exa"
Segment 3: Sequence Number 3, Data: "mple.com"
网络层( 第 3 层 )
网络层负责在不同的网络之间选择路径,并进行数据包的路由。IP 协议工作在这一层,它将传输层的数据段封装成 IP 包( packets ),并通过源IP地址和目的 IP 地址进行路由。
每个 TCP 段被封装成一个 IP 包,并添加 IP 地址信息:
Packet 1: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 1"
Packet 2: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 2"
Packet 3: Source IP: 192.168.1.2, Destination IP: 93.184.216.34, Data: "Segment 3"
数据链路层( 第 2 层 )
数据链路层负责将数据帧传输到物理网络。它通过 MAC 地址识别网络设备,并使用如以太网协议来传输帧( frames )。
每个 IP 包被封装成数据帧,并附加源和目的 MAC 地址:
Frame 1: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 1"
Frame 2: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 2"
Frame 3: Source MAC: 00:14:22:01:23:45, Destination MAC: 00:16:17:21:1A:2B, Data: "Packet 3"
物理层( 第 1 层 )
物理层负责实际的数据传输,通过电缆、电信号、光纤或无线电波等物理媒介。
在这一层,数据帧被转换为物理信号( 如电信号、光信号或无线电波 )并通过网络传输:
Signal 1: Electric/Optical/Wireless, Data: "Frame 1"
Signal 2: Electric/Optical/Wireless, Data: "Frame 2"
Signal 3: Electric/Optical/Wireless, Data: "Frame 3"
HTTP 请求现在已经通过了所有层,并通过网络进行传输。在接收端,请求将通过各层向上重建,直到在服务器端重建出完整的 HTTP 请求。
接收端处理流程
- 1、物理层:接收物理信号并转换为数据帧。
- 2、数据链路层:通过 MAC 地址识别帧并提取IP包。
- 3、网络层:根据 IP 地址路由包并重组TCP段。
- 4、传输层:通过序列号和确认机制重组完整的 HTTP 请求数据。
- 5、会话层:管理会话状态,确保请求属于当前会话。
- 6、表示层:解密数据并进行格式转换。
- 7、应用层:最终处理 HTTP 请求,生成响应并发送回客户端。