消息队列篇--通信协议篇--网络通信模型(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)提出,旨在为不同的网络设备和协议提供一个通用的语言和结构,以…...

Python实现U盘数据自动拷贝
功能:当电脑上有U盘插入时,自动复制U盘内的所有内容 主要特点: 1、使用PyQt5创建图形界面,但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静…...

汇编的使用总结
一、汇编的组成 1、汇编指令(指令集) 数据处理指令: 数据搬移指令 数据移位指令 位运算指令 算术运算指令 比较指令 跳转指令 内存读写指令 状态寄存器传送指令 异常产生指令等 2、伪指令 不是汇编指令,但是可以起到指令的作用,伪…...

DeepSeek理解概率的能力
问题: 下一个问题是概率问题。乘车时有一个人带刀子的概率是百分之一,两个人同时带刀子的概率是万分之一。有人认为如果他乘车时带上刀子,那么还有其他人带刀子的概率就是万分之一,他乘车就会安全得多。他的想法对吗?…...

AI 浪潮席卷中国年,开启科技新春新纪元
在这博主提前祝大家蛇年快乐呀!!! 随着人工智能(AI)技术的飞速发展,其影响力已经渗透到社会生活的方方面面。在中国传统节日 —— 春节期间,AI 技术也展现出了巨大的潜力,为中国年带…...

AI时代的网络安全:传统技术的落寞与新机遇
AI时代的网络安全:传统技术的落寞与新机遇 在AI技术飞速发展的浪潮中,网络安全领域正经历着前所未有的变革。一方面,传统网络安全技术在面对新型攻击手段时逐渐显露出局限性;另一方面,AI为网络安全带来了新的机遇&…...

可以称之为“yyds”的物联网开源框架有哪几个?
有了物联网的发展,我们的生活似乎也变得更加“鲜活”、有趣、便捷,包具有科技感的。在物联网(IoT)领域中,也有许多优秀的开源框架支持设备连接、数据处理、云服务等,成为被用户们广泛认可的存在。以下给大家…...

线程局部存储tls的原理和使用
一、背景 tls即Thread Local Storage,也就是线程局部存储,可在进程内,多线程按照各个线程分开进行存储。对于一些与线程上下文相关的变量,可放到tls中,减少多线程之间的数据同步的开销。 有人可能会问,我…...

RK3588平台开发系列讲解(ARM篇)ARM64底层中断处理
文章目录 一、异常级别二、异常分类2.1、同步异常2.2、异步异常三、中断向量表沉淀、分享、成长,让自己和他人都能有所收获!😄 一、异常级别 ARM64处理器确实定义了4个异常级别(Exception Levels, EL),分别是EL0到EL3。这些级别用于管理处理器的特权级别和权限,级别越高…...

CAN总线
1. 数据帧(Data Frame) 数据帧是 CAN 总线中最常用的帧类型,用于传输实际的数据。其结构如下: 起始位(Start of Frame, SOF):标志帧的开始。标识符(Identifier)&#x…...

qwen2.5-vl:阿里开源超强多模态大模型(包含使用方法、微调方法介绍)
1.简介 在 Qwen2-VL 发布后的五个月里,众多开发者基于该视觉语言模型开发了新的模型,并向 Qwen 团队提供了极具价值的反馈。在此期间,Qwen 团队始终致力于打造更具实用性的视觉语言模型。今天,Qwen 家族的最新成员——Qwen2.5-VL…...

python实现dbscan
python实现dbscan 原理 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形…...

学习数据结构(3)顺序表
1.动态顺序表的实现 (1)初始化 (2)扩容 (3)头部插入 (4)尾部插入 (5)头部删除 (这里注意要保证有效数据个数不为0) (6&a…...

正在更新丨豆瓣电影详细数据的采集与可视化分析(scrapy+mysql+matplotlib+flask)
文章目录 豆瓣电影详细数据的采集与可视化分析(scrapy+mysql+matplotlib+flask)写在前面数据采集0.注意事项1.创建Scrapy项目`douban2025`2.用`PyCharm`打开项目3.创建爬虫脚本`douban.py`4.修改`items.py`的代码5.修改`pipelines.py`代码6.修改`settings.py`代码7.启动`doub…...

wx043基于springboot+vue+uniapp的智慧物流小程序
开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…...

每日一题 430. 扁平化多级双向链表
430. 扁平化多级双向链表 简单 /*class Solution { public:Node* flatten(Node* head) {Node* tail nullptr;return dfs(head);}Node* dfs(Node* head){Node* cur head;while(cur ! nullptr){if(cur->child ! nullptr){Node* curChild getTail(cur->child);Node* te…...

UE学习日志#14 GAS--ASC源码简要分析10 GC相关
注:1.这个分类是按照源码里的注释分类的 2.本篇是通读并给出一些注释形式的,并不涉及结构性的分析 3.看之前要对UE的GAS系统的定义有初步了解 4.因为都是接口函数,有些没细看的研究那一部分的时候会细看 1 一些接口函数,但是…...

使用Python和Qt6创建GUI应用程序--关于Qt的一点介绍
关于Qt的一点介绍 Qt是一个免费的开源部件工具包,用于创建跨平台GUI应用程序,允许应用程序从Windows瞄准多个平台,macOS, Linux和Android的单一代码库。但是Qt不仅仅是一个Widget工具箱和功能内置支持多媒体,数据库&am…...

C#@符号在string.Format方法中作用
本文详解@符号在string.Format方法中作用。...

Next.js 14 TS 中使用jwt 和 App Router 进行管理
jwt是一个很基础的工作。但是因为架构不一样,就算是相同的架构,版本不一样,加jwt都会有一定的差别。现在我们的项目是Next.js 14 TS 的 App Router项目(就是没有pages那种),添加jwt的步骤: 1、…...

【贪心算法】洛谷P1090 合并果子 / [USACO06NOV] Fence Repair G
2025 - 01 - 21 - 第 45 篇 【洛谷】贪心算法题单 -【 贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 洛谷 P1090[NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G 【贪心算法】 文章目录 洛谷 P1090[NOIP2004 提高组] 合并果子 / [USACO06…...

Windows11无法打开Windows安全中心主界面
# 问题描述 安全中心无法打卡主界面,并弹出“需要使用新应用以打开此windowsdefender连接”. 解决方法 以管理员权限打开PowerShell,推荐使用快捷键win x打开快捷界面,选择Windows终端(管理员),并在终…...

下载arm架构的deb包的方法
在ARM板上操作 如果你是在arm板上使用apt安装和下载包,那么安装过的包会在以下路径里: /var/cache/apt/archives只需要复制出来就可以 如果只下载不安装,可以使用命令 sudo apt-get -d install package_name:arm64 # 如果是32位࿰…...

【Day29 LeetCode】动态规划DP
一、动态规划DP 1、不同路径 62 首先是dp数组,dp[i][j]表示从起点(0, 0)到达当前位置(i, j)的路径数,转移方程从只能向下和向右移动可知,初始化边界可直观推出第一行和第一列上的位置只有一条路径。 class Solution { public:int uniquePa…...

5分钟带你获取deepseek api并搭建简易问答应用
目录 1、获取api 2、获取base_url和chat_model 3、配置模型参数 方法一:终端中临时将加入 方法二:创建.env文件 4、 配置client 5、利用deepseek大模型实现简易问答 deepseek-v3是截止博文撰写之日,无论是国内还是国际上发布的大模型中…...

LeetCode题练习与总结:最短无序连续子数组--581
一、题目描述 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:num…...

探秘 TCP TLP:从背景到实现
回家的路上还讨论了个关于 TCP TLP 的问题,闲着无事缕一缕。本文内容参考自 Tail Loss Probe (TLP): An Algorithm for Fast Recovery of Tail Losses 以及 Linux 内核源码。 TLP,先说缘由。自 TCP 引入 Fast retrans 机制就是为了尽力避免 RTO…...

linux学习之网络编程
一、两个模型及其对应关系 OSI七层模型 TCP/IP 四层模型 -------------------------------------------------------------------------- 应用层 表示层 ----> …...

scrol家族 offset家族 client家族学习
Scroll 系列属性 scrollTop & scrollLeft scrollTop: 返回元素的内容已向上滚动的部分的高度。scrollLeft: 返回元素的内容已向左滚动的部分的宽度。 scrollHeight & scrollWidth scrollHeight: 返回元素的实际高度,包括由于溢出而在屏幕上不可见的内容…...

css-background-color(transparent)
1.前言 在 CSS 中,background-color 属性用于设置元素的背景颜色。除了基本的颜色值(如 red、blue 等)和十六进制颜色值(如 #FF0000、#0000FF 等),还有一些特殊的属性值可以用来设置背景颜色。 2.backgrou…...