你好,这里是网络技术联盟站,我是瑞哥。
公众号后台有小伙伴让我讲一下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请求。
接收端处理流程
- 物理层:接收物理信号并转换为数据帧。
- 数据链路层:通过MAC地址识别帧并提取IP包。
- 网络层:根据IP地址路由包并重组TCP段。
- 传输层:通过序列号和确认机制重组完整的HTTP请求数据。
- 会话层:管理会话状态,确保请求属于当前会话。
- 表示层:解密数据并进行格式转换。
- 应用层:最终处理HTTP请求,生成响应并发送回客户端。