消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)
一、OSI参考模型(Open Systems Interconnection Model)
OSI参考模型是一个用于描述和标准化网络通信功能的七层框架。它由国际标准化组织(ISO)提出,旨在为不同的网络设备和协议提供一个通用的语言和结构,以促进相互操作和标准化。
OSI模型将网络通信过程划分为七个层次,每一层都有特定的功能,并与相邻层进行交互。
从下到上,这七层分别是:
1、物理层(Physical Layer)
2、数据链路层(Data Link Layer)
3、网络层(Network Layer)
4、传输层(Transport Layer)
5、会话层(Session Layer)
6、表示层(Presentation Layer)
7、应用层(Application Layer)
示例图:

1、物理层(Physical Layer)
功能:
- 定义物理连接:规定了如何通过物理媒介(如电缆、光纤、无线电波等)传输原始比特流。
- 硬件接口:定义了网络硬件(如网卡、中继器、集线器等)的标准和接口类型。
- 信号传输:规定了电压水平、传输速率、物理拓扑(如总线型、星型等)和物理连接器(如RJ45、BNC等)。
主要设备:
- 网卡(NIC)
- 中继器(Repeater)
- 集线器(Hub)
示例:
- 以太网标准(IEEE 802.3)
- 光纤通信
2、数据链路层(Data Link Layer)
功能:
- 帧同步:将物理层传来的比特流组织成帧(Frame),并在帧之间添加控制信息(如起始位和结束位)。
- 错误检测与纠正:使用校验和(如CRC)来检测传输中的错误,并在某些情况下进行纠正。
- 流量控制:确保发送方不会发送过多的数据,导致接收方溢出。
- 介质访问控制(MAC):在共享介质(如以太网)上协调多个设备之间的数据传输。
主要设备:
- 交换机(Switch)
- 网桥(Bridge)
子层:
- 逻辑链路控制子层(LLC, Logical Link Control):负责帧的封装和解封装,以及差错控制和流量控制。
- 介质访问控制子层(MAC, Media Access Control):负责定义设备如何访问物理介质,并处理介质访问冲突(如CSMA/CD)。
示例:
- 以太网帧格式
- PPP(点对点协议)
3、网络层(Network Layer)
功能:
- 路由选择:确定数据包从源地址到目的地址的最佳路径,通常通过路由器实现。
- IP寻址:为每个设备分配唯一的IP地址,并管理这些地址。
- 分组转发:将数据包从一个网络段转发到另一个网络段,直到到达目的地。
- 拥塞控制:监控网络状态,避免网络拥塞。
主要设备:
- 路由器(Router)
协议示例:
- IP(Internet Protocol)
- ICMP(Internet Control Message Protocol)
- OSPF(Open Shortest Path First)
示例:
- IPv4和IPv6
- 路由算法(如RIP、OSPF)
4、传输层(Transport Layer)
功能:
- 端到端通信:提供应用程序之间的端到端通信服务,确保数据能够可靠地从一个应用程序传输到另一个应用程序。
- 可靠性:TCP提供可靠的传输服务,保证数据包按顺序到达且不丢失;UDP提供无连接、不可靠的传输服务,适合实时应用。
- 流量控制和拥塞控制:防止发送方发送过多数据导致接收方溢出或网络拥塞。
协议示例:
- TCP(Transmission Control Protocol)
- UDP(User Datagram Protocol)
示例:
- HTTP使用TCP进行网页内容传输
- DNS使用UDP进行域名解析
5、会话层(Session Layer)
功能:
- 会话管理:负责建立、维护和终止应用程序之间的会话。
- 同步:提供同步机制,允许在会话过程中发生中断时恢复数据传输。
- 对话控制:控制不同应用程序之间的对话方式(如半双工或全双工)。
示例:
- RPC(Remote Procedure Call)
- NetBIOS(Network Basic Input Output System)
6、表示层(Presentation Layer)
功能:
- 数据格式转换:负责数据的加密、压缩和编码,确保不同系统之间的数据可以正确理解和处理。
- 字符编码:将数据从一种字符集转换为另一种字符集(如ASCII到Unicode)。
- 数据加密:提供数据加密和解密功能,确保数据的安全性。
示例:
- JPEG、PNG图像格式
- ASCII、UTF-8字符编码
- SSL/TLS加密
7、应用层(Application Layer)
功能:
- 用户接口:为用户提供直接与网络交互的接口,支持各种网络应用(如浏览器、电子邮件客户端等)。
- 应用协议:定义应用程序之间如何通信,包括请求和响应的格式、语义等。
- 服务访问点:为其他层提供服务访问点,使得应用程序可以直接调用底层的服务。
协议示例:
- HTTP(超文本传输协议)
- SMTP(简单邮件传输协议)
- FTP(文件传输协议)
- DNS(域名系统)
示例:
- 浏览器通过HTTP访问网站
- 邮件客户端通过SMTP发送邮件
8、OSI模型各层之间的关系
OSI模型的每一层都只与相邻的上下层进行交互。
上下层关系:
- 上层(如应用层)向下层(如表示层)发出请求,并传递数据。下层则根据请求执行相应的功能,并将结果返回给上层。
- 下层(如物理层)只关心如何通过物理媒介传输数据,而不关心数据的具体内容和格式。上层(如应用层)则只关心数据的格式和语义,而不关心底层的传输细节。
具体示例:(展示每个层级作用)
例如,当用户通过浏览器访问一个网页时,整个过程涉及以下步骤。
(1)、应用层(HTTP):浏览器向服务器发送HTTP请求,请求指定URL网页内容。
(2)、表示层:确定请求资源类型以及是否被加密或压缩等。
(3)、会话层:建立并维护浏览器与服务器之间的会话。
(4)、传输层:将HTTP请求信息再次封装成TCP段,并提供数据的可靠传输。
(5)、网络层:将TCP段封装成IP数据报,并选择最佳路径将其发送到目标服务器。
(6)、数据链路层:将IP数据报封装成帧,并通过本地网络传输到下一路由器或目标服务器。(注意:传输过程可能会经过多次路由器转发,最终达到目标服务器)
(7)、物理层:通过物理媒介(如电缆、光纤)传输比特流。
9、OSI模型与实际网络协议的关系
虽然OSI模型是一个理论上的参考框架,但它帮助我们理解网络通信的各个层次及其功能。许多实际使用的网络协议并不严格遵循OSI模型的七层划分,但它们仍然可以映射到OSI模型的相应层次。
例如:
- TCP/IP协议栈是目前最常用的网络协议栈,它简化了OSI模型,只有四层:
- 应用层:对应OSI模型的应用层、表示层和会话层这三个层级。
- 传输层:对应OSI模型的传输层。
- 互联网层:对应OSI模型的网络层。
- 网络接口层:对应OSI模型的数据链路层和物理层。
尽管如此,OSI模型仍然是一个非常有用的工具,用于分析和设计网络系统,并帮助人们更好地理解网络通信的工作原理。
10、OSI模型总结
OSI参考模型将网络通信过程划分为七个层次,每一层都有特定的功能,并与相邻层进行交互。通过这种分层的方式,OSI模型不仅帮助我们理解网络通信的复杂性,还促进了不同网络设备和协议之间的互操作性和标准化。
二、TCP/IP分层模型
TCP/IP模型,也称为互联网协议套件(Internet Protocol Suite),是实际用于实现现代互联网通信的网络模型。与OSI七层模型相比,TCP/IP模型更为简洁,通常分为四层或五层结构。尽管它没有OSI模型那么详细,但它更贴近实际应用,并且在设计和实现上更加灵活。
准确说:OSI的7层参考模型是基于TCP/IP的4层模型衍生出来的更细分的模型。实际上TCP/IP模型是先提出的,之后才有的OSI模型。
TCP/IP模型的四层结构:(从上到下)
1、应用层(Application Layer)
2、传输层(Transport Layer)
3、互联网层(Internet Layer)
4、网络接口层(Network Interface Layer)
有些文献会将网络接口层进一步细分为数据链路层和物理层,形成一个五层模型:
1、应用层(Application Layer)
2、传输层(Transport Layer)
3、互联网层(Internet Layer)
4、数据链路层(Data Link Layer)
5、物理层(Physical Layer)
1、应用层(Application Layer)
功能:
- 用户接口:提供用户直接与网络交互的接口,支持各种网络应用。
- 应用协议:定义应用程序之间如何通信,包括请求和响应的格式、语义等。
- 服务访问点:为其他层提供服务访问点,使得应用程序可以直接调用底层的服务。
常见协议:
- HTTP/HTTPS:超文本传输协议/安全超文本传输协议,用于网页浏览。
- SMTP/IMAP/POP3:简单邮件传输协议/互联网消息访问协议/邮局协议,用于电子邮件传输。
- FTP:文件传输协议,用于文件上传和下载。
- DNS:域名系统,用于将域名解析为IP地址。
- Telnet/SSH:远程登录协议,用于远程管理设备。
- SNMP:简单网络管理协议,用于网络设备管理和监控。
示例:
- 浏览器通过HTTP访问网站。
- 邮件客户端通过SMTP发送邮件,通过IMAP或POP3接收邮件。
2、传输层(Transport Layer)
功能:
- 端到端通信:提供应用程序之间的端到端通信服务,确保数据能够可靠地从一个应用程序传输到另一个应用程序。
- 可靠性:TCP提供可靠的传输服务,保证数据包按顺序到达且不丢失;UDP提供无连接、不可靠的传输服务,适合实时应用。
- 流量控制和拥塞控制:防止发送方发送过多数据导致接收方溢出或网络拥塞。
常见协议:
- TCP(Transmission Control Protocol):面向连接、可靠的传输协议,适用于需要高可靠性的应用,如HTTP、FTP、SMTP等。
- UDP(User Datagram Protocol):无连接、不可靠的传输协议,适用于对实时性要求较高的应用,如DNS、VoIP、视频流等。
示例:
- HTTP使用TCP进行网页内容传输。
- DNS使用UDP进行域名解析。
3、互联网层(Internet Layer)
功能:
- 路由选择:确定数据包从源地址到目的地址的最佳路径,通常通过路由器实现。
- IP寻址:为每个设备分配唯一的IP地址,并管理这些地址。
- 分组转发:将数据包从一个网络段转发到另一个网络段,直到到达目的地。
- 拥塞控制:监控网络状态,避免网络拥塞。
常见协议:
- IP(Internet Protocol):负责在网络中进行数据包的传输和路由选择。
- ICMP(Internet Control Message Protocol):用于报告网络错误和管理网络通信(如ping命令)。
- ARP(Address Resolution Protocol):用于将IP地址解析为MAC地址。
- IGMP(Internet Group Management Protocol):用于多播通信中的组成员管理。
示例:
- IPv4和IPv6
- 路由算法(如RIP、OSPF)
4、网络接口层(Network Interface Layer)
功能:
- 物理连接:规定了如何通过物理媒介(如电缆、光纤、无线电波等)传输原始比特流。
- 帧同步:将互联网层传来的数据包组织成帧(Frame),并在帧之间添加控制信息(如起始位和结束位)。
- 介质访问控制(MAC):在共享介质(如以太网)上协调多个设备之间的数据传输。
- 硬件接口:定义了网络硬件(如网卡、交换机、集线器等)的标准和接口类型。
常见协议和技术:
- 以太网(Ethernet):最常用的局域网技术。
- Wi-Fi(IEEE 802.11):无线局域网技术。
- PPP(Point-to-Point Protocol):点对点通信协议,常用于拨号上网。
示例:
- 以太网帧格式
- Wi-Fi通信
5、五层结构版本
如果是五层结构,将网络接口层进一步细分为数据链路层和物理层。
(1)、数据链路层(Data Link Layer)
功能:
- 帧同步:将互联网层传来的数据包组织成帧,并在帧之间添加控制信息(如起始位和结束位)。
- 错误检测与纠正:使用校验和(如CRC)来检测传输中的错误,并在某些情况下进行纠正。
- 流量控制:确保发送方不会发送过多的数据,导致接收方溢出。
- 介质访问控制(MAC):在共享介质(如以太网)上协调多个设备之间的数据传输。
子层:
- 逻辑链路控制子层(LLC, Logical Link Control):负责帧的封装和解封装,以及差错控制和流量控制。
- 介质访问控制子层(MAC, Media Access Control):负责定义设备如何访问物理介质,并处理介质访问冲突(如CSMA/CD)。
常见协议:
- 以太网(Ethernet)
- PPP(Point-to-Point Protocol)
- HDLC(High-Level Data Link Control)
(2)、物理层(Physical Layer)
功能:
- 信号传输:规定了电压水平、传输速率、物理拓扑(如总线型、星型等)和物理连接器(如RJ45、BNC等)。
- 硬件接口:定义了网络硬件(如网卡、中继器、集线器等)的标准和接口类型。
常见设备:
- 网卡(NIC)
- 中继器(Repeater)
- 集线器(Hub)
6、TCP/IP模型与OSI模型的对比

主要区别:
- 简化:TCP/IP模型比OSI模型更简化,只有四层或五层,而OSI模型有七层。
- 实用性:TCP/IP模型更接近实际应用,许多互联网协议(如HTTP、FTP、SMTP等)都基于TCP/IP模型设计。
- 灵活性:TCP/IP模型允许不同的网络技术共存,如以太网、Wi-Fi、PPP等都可以作为网络接口层的一部分。
7、TCP/IP模型总结
TCP/IP模型是一个用于实现现代互联网通信的实际网络模型,它简化了OSI模型的复杂性,并提供了更为实用的分层结构。TCP/IP模型通常分为四层(应用层、传输层、互联网层、网络接口层),有时也可以进一步细分为五层(增加数据链路层和物理层)。每一层都有特定的功能,并与相邻层进行交互,共同完成网络通信任务。
通过理解TCP/IP模型的各层功能及其常见协议,我们可以更好地理解互联网的工作原理,并为网络设计和故障排除提供指导。
乘风破浪!Dare to Be!!!
相关文章:
消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)
一、OSI参考模型(Open Systems Interconnection Model) OSI参考模型是一个用于描述和标准化网络通信功能的七层框架。它由国际标准化组织(ISO)提出,旨在为不同的网络设备和协议提供一个通用的语言和结构,以…...
“新月之智”智能战术头盔系统(CITHS)
新月人物传记:人物传记之新月篇-CSDN博客 相关文章链接(更新): 星际战争模拟系统:新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 目录 一、引言 二、智能头盔控制系统概述 三、系统架…...
Go Fx 框架使用指南:深入理解 Provide 和 Invoke 的区别
1. 什么是 Fx 框架? Fx 是一个基于 Go 语言的依赖注入框架,专注于简化应用程序的生命周期管理和依赖的构建。在复杂的应用程序中,Fx 通过模块化的设计方式将组件连接起来,使开发者能够更高效地管理依赖关系。 Fx 的核心理念是&a…...
实验七 JSP内置对象II
实验七 JSP内置对象II 目的: 1、掌握JSP内置对象的使用。 2、理解JSP的作用域 3、掌握session,application对象的使用 实验要求: 1、完成实验题目 2、要求提交实验报告,将代码和实验结果页面截图放入报告中 实验过程:…...
OpenCV:Harris、Shi-Tomasi角点检测
简述 在计算机视觉和图像处理领域,角点是一种重要的特征点,通常是图像中梯度变化剧烈的区域,例如建筑物的拐角、棋盘的交点等。角点检测广泛应用于目标跟踪、运动检测、拼接全景图 等任务。 本文将介绍 Harris 角点检测 和 Shi-Tomasi 角点…...
RK3568 opencv播放视频
文章目录 一、opencv相关视频播放类1. cv::VideoCapture 类主要构造方法:主要方法: 2. 视频播放基本流程代码示例: 3. 获取和设置视频属性4. 结合 FFmpeg 使用5. OpenCV 视频播放的局限性6. 结合 Qt 实现更高级的视频播放总结 二、QT中的代码…...
白话DeepSeek-R1论文(一)|AI的顿悟时刻:DeepSeek-R1-Zero 纯强化学习解锁推理新境界
最近有不少朋友来询问Deepseek的技术核心,今天开始陆续针对DeepSeek-R1论文中的核心内容进行解读,并且用大家都能听懂的方式来解读。 AI的顿悟时刻:DeepSeek-R1-Zero 纯强化学习解锁推理新境界 你有没有想过,人工智能是如何学会…...
青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句
青少年编程与数学 02-008 Pyhon语言编程基础 10课题、列表与循环语句 一、列表二、定义与使用定义列表访问列表元素访问列表的切片修改列表元素列表的其他操作 三、运算1. 列表连接(Concatenation)2. 列表复制(Copying)3. 列表重复…...
caddy2配置http_basic用于验证用户名密码才允许访问页面
参考: basicauth (Caddyfile指令) — Caddy v2中文文档 1,查看caddy是否已经包含了Basic Auth插件 命令:caddy list-modules | grep http_basic 如果显示: http.authentication.providers.http_basic 则代表包含 Basic Auth 模…...
FOC核心原理的C语言实现
概述 应用FOC算法,比如无人机、电动汽车或工业电机控制。因此,除了理论,还需要提供实用的实现步骤、常见问题及解决方案,比如如何获取电机的位置信息(编码器或传感器),如何处理电流采样&#x…...
利用Manim库结合`matplotlib`、`numpy`和`scipy`来制作工作流程动画
以下是一个利用Manim库结合matplotlib、numpy和scipy来制作工作流程动画,展示流场速度分布计算模型,以及三流喷嘴的速度场和主要参数分布的可视化图形与动画的示例代码。这个示例将模拟一个简化的三流喷嘴速度场,通过计算速度分布并将其可视化…...
零代码搭建个人博客—Zblog结合内网穿透发布公网
目录 一、准备工作二、Z-blog 网站搭建1. XAMPP 环境设置2. Z-blog 安装3. Z-blog 网页测试 三、内网穿透工具 Cpolar 的安装和配置1. Cpolar 安装2. Cpolar 云端设置3. Cpolar 本地设置 四、本地网页发布五、注意六、本次经历总结 大家好,我是学问小小谢。 最近心血…...
宏_wps_宏修改word中所有excel表格的格式_设置字体对齐格式_删除空行等
需求: 将word中所有excel表格的格式进行统一化,修改其中的数字类型为“宋体, 五号,右对齐, 不加粗,不倾斜”,其中的中文为“宋体, 五号, 不加粗,不倾斜” 数…...
electron 应用开发实践
参考链接: https://blog.csdn.net/2401_83384536/article/details/140549279...
xss靶场
xss-labs下载地址:GitHub - do0dl3/xss-labs: xss 跨站漏洞平台 xss常见触发标签:XSS跨站脚本攻击实例与防御策略-CSDN博客 level-1 首先查看网页的源代码发现get传参的name的值test插入了html里头,还回显了payload的长度。 <!DOCTYPE …...
Koa 基础篇(二)—— 路由与中间件
let app new Koa() router.get(“/”,async ctx > { ctx.body “hello koa router” }) app.use(router.routes()) app.use(router.allowedMethods()) app.listen(3000) 运行项目,在浏览器访问本地3000端口,在页面上就会看到输出的语句。这就…...
Day48:获取字典键的值
在 Python 中,字典是一种无序的集合类型,它以键-值对的形式存储数据。字典的每个元素都有一个唯一的键,并且每个键都对应一个值。获取字典中的值是字典操作的常见任务,今天我们将学习如何从字典中获取键对应的值。 1. 使用方括号…...
线段树(Segment Tree)和树状数组
线段树(Segment Tree)和树状数组 线段树的实现链式:数组实现 解题思路树状数组 线段树是 二叉树结构 的衍生,用于高效解决区间查询和动态修改的问题,其中区间查询的时间复杂度为 O(logN),动态修改单个元素的…...
MySQL注入中load_file()函数的使用
前言 在Msql注入中,load_file()函数在获得webshell以及提权过程中起着十分重要的作用,常被用来读取各种配置文件 而load_file函数只有在满足两个条件的情况下才可以使用: 文件权限:chmod ax pathtofile 文件大小:必须…...
[NOIP2007]矩阵取数游戏
点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的…...
DeepSeek-R1 论文解读 —— 强化学习大语言模型新时代来临?
近年来,人工智能(AI)领域发展迅猛,大语言模型(LLMs)为通用人工智能(AGI)的发展开辟了道路。OpenAI 的 o1 模型表现非凡,它引入的创新性推理时缩放技术显著提升了推理能力…...
使用Pygame制作“贪吃蛇”游戏
贪吃蛇 是一款经典的休闲小游戏:玩家通过操控一条会不断变长的“蛇”在屏幕中移动,去吃随机出现的食物,同时要避免撞到墙壁或自己身体的其他部分。由于其逻辑相对简单,但可玩性和扩展性都不错,非常适合作为新手练习游戏…...
云计算技术深度解析与实战案例
云计算技术深度解析与实战案例 引言 随着信息技术的飞速发展,云计算作为一种革命性的技术模式,已经渗透到各行各业,成为推动数字化转型的关键力量。本文旨在深入探讨云计算的技术特点、应用场景,并通过一个具体的代码使用案例&a…...
deb安装失败后,无法再安装别的包的解决方案
把package_name换成出安装问题的包 移除该包的安装标记 sudo dpkg --remove --force-remove-reinstreq package_name清理残留文件和配置 sudo apt-get purge package_name...
海外问卷调查如何影响企业的经营?在品牌建设中有何指导意义?
市场调查的定义:通过科学的方法,有目的地、系统地搜集整理一些市场信息,其目的在于了解当下市场现状和发展前景,为企业生产和品牌打造提供一些科学的指导意见,这是任何大企业、中小企业、初创企业都必须重视的一个重要…...
脚本运行禁止:npm 无法加载文件,因为在此系统上禁止运行脚本
问题与处理策略 1、问题描述 npm install -D tailwindcss执行上述指令,报如下错误 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。 有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_…...
unity学习23:场景scene相关,场景信息,场景跳转
目录 1 默认场景和Assets里的场景 1.1 scene的作用 1.2 scene作为project的入口 1.3 默认场景 2 场景scene相关 2.1 创建scene 2.2 切换场景 2.3 build中的场景,在构建中包含的场景 (否则会认为是失效的Scene) 2.4 Scenes in Bui…...
CPU 100% 出现系统中断 怎么解决
CPU 100% 出现系统中断 怎么解决 电脑开机时会掉帧,切换到桌面时就会卡顿,然后打开任务管理器就会看到系统中断的cpu占用率达到100%,过一段时间再打开还是会有显示100%的占用率,这个问题怎么解决? 文章目录 CPU 100% …...
数据分析系列--⑥RapidMiner构建决策树(泰坦尼克号案例含数据)
一、资源下载 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 2.划分训练集和测试集 3.应用模型 4.结果分析 一、资源下载 点击下载数据集 二、数据处理 1.导入数据 2.数据预处理 三、构建模型 1.构建决策树 虽然决策树已经构建,但对于大多数初学者或…...
【MyDB】4-VersionManager 之 4-VM的实现
【MyDB】4-VersionManager 之 4-VM的实现 VM 的实现VM(VersionManager)的基本定义与实现优化具体功能实现begin()开启事务commit()提交事务abort 中止事务read 读取uid对应的数据记录所在的entryinsert方法,插入数据delete方法 VM 的实现 本章代码位于:t…...
