当前位置: 首页 > news >正文

网络协议入门:OSI模型与TCP/IP栈

        在网络通信的世界中,数据从一台设备传输到另一台设备,需要遵循一系列规则,这些规则统称为网络协议。OSI模型和TCP/IP协议栈作为网络通信的基石,帮助我们理解数据传输的全流程。这篇文章将深入解析它们的结构、功能和实际应用,为大家打开网络协议的大门。

目录

1. 网络协议的背景与重要性

数据传输的挑战

网络协议的定义

OSI模型与TCP/IP协议栈的重要地位

实际案例

2. OSI模型详解:分层结构与功能

2.1 什么是OSI模型?

2.2 各层功能详解

物理层

数据链路层

网络层

传输层

会话层

表示层

应用层

2.3 OSI模型的优缺点

优点

缺点

3. TCP/IP协议栈详解:实践中的标准

3.1 什么是TCP/IP协议栈?

3.2 各层功能详解

网络接口层

互联网层

传输层

应用层

3.3 TCP/IP协议栈与OSI模型的对比

4. 网络协议的应用案例

4.1 浏览器访问网页的全过程

4.2 数据传输的完整路径分析

4.3 抓包工具的应用

实例1:分析HTTP请求

实例2:分析TCP三次握手

5. 常见问题与误区

5.1 OSI模型是否完全用于实际网络?

误解:OSI模型在实际网络中被完整实现。

解决方案:理解两者的对应关系

5.2 为什么理解网络协议分层很重要?

常见问题:新手常忽视协议分层的意义,认为分层过于复杂。

实例:问题排查的分层思路

5.3 IP地址与MAC地址的区别

常见误区:IP地址和MAC地址作用相同。

实例:数据帧的地址解析

5.4 TCP与UDP的常见使用误区

误区1:认为UDP完全不可靠

误区2:所有场景都优先选择TCP

示例对比:TCP与UDP的适用场景


1. 网络协议的背景与重要性

数据传输的挑战

数据在现代网络中传输面临以下主要挑战:

  • 跨设备通信:不同厂商设备(如苹果与安卓设备)之间的无缝协作。
  • 跨网络传输:如何让数据在异构网络间可靠传递。
  • 数据完整性与安全性:防止传输过程中的丢包、篡改或窃听。

网络协议的定义

网络协议是设备间交换信息所需遵守的一系列规则。通过协议,数据在设备间得以编码、传输和解析,实现端到端的通信。

OSI模型与TCP/IP协议栈的重要地位

  • OSI模型:一个理论模型,用于解释网络通信中的分层设计。
  • TCP/IP协议栈:互联网通信的实践基础,更贴近实际应用。

实际案例

打开浏览器访问网页时,会涉及多种协议的协作:

  1. DNS解析:将域名转换为IP地址。
  2. TCP连接:建立传输通道(如三次握手)。
  3. HTTP传输:请求与响应网页内容。

2. OSI模型详解:分层结构与功能

2.1 什么是OSI模型?

OSI模型由ISO提出,定义了七层网络通信结构:

  1. 物理层:电信号、光信号在传输介质上的传递。
  2. 数据链路层:数据帧的封装和点对点传输。
  3. 网络层:数据包的路由选择和转发。
  4. 传输层:端到端的可靠传输。
  5. 会话层:会话建立、管理与终止。
  6. 表示层:数据的格式转换和加解密。
  7. 应用层:直接为用户服务的协议(如HTTP、FTP)。

分层设计的意义:

  • 模块化,便于协议开发与调试。
  • 提高灵活性和可扩展性。

2.2 各层功能详解

物理层
  • 职责:将比特流转换为物理信号并传输。
  • 设备:网线、交换机、光纤等。
  • 案例:网络设备通过以太网传递电信号。
数据链路层
  • 职责:通过MAC地址识别设备,提供点对点通信。
  • 协议:以太网协议、ARP协议。
  • 案例:ARP协议将IP地址解析为MAC地址。
网络层
  • 职责:数据在多网络间的路由转发。
  • 协议:IPv4、IPv6、ICMP。
  • 案例:Ping命令通过ICMP检查网络连通性。
传输层
  • 职责:提供可靠(TCP)或快速(UDP)的传输。
  • 机制:三次握手、流量控制。
  • 案例:TCP保障网页数据顺序到达。
会话层
  • 职责:管理通信会话,支持持久连接。
  • 案例:远程桌面协议(RDP)。
表示层
  • 职责:数据编码、压缩和加密。
  • 案例:SSL/TLS加密HTTPS流量。
应用层
  • 职责:提供接口供应用程序使用。
  • 协议:HTTP、FTP、DNS。
  • 案例:HTTP协议支持网页浏览。

2.3 OSI模型的优缺点

优点
  • 理论结构清晰,便于学习与实现。
  • 提供了标准化的开发指导。
缺点
  • 偏理论,实际网络中不完全实现。
  • 复杂性高,对于某些场景过于冗余。

3. TCP/IP协议栈详解:实践中的标准

3.1 什么是TCP/IP协议栈?

TCP/IP协议栈是实际网络通信的分层模型,由四层构成:

  1. 网络接口层:处理物理网络通信。
  2. 互联网层:实现路由和寻址功能。
  3. 传输层:管理端到端通信。
  4. 应用层:提供用户服务。

3.2 各层功能详解

网络接口层
  • 职责:管理数据帧在物理网络中的传输。
  • 协议:以太网协议、Wi-Fi协议。
  • 案例:数据帧在交换机间转发。
互联网层
  • 职责:负责IP地址的分配和路由。
  • 协议:IPv4、IPv6、ICMP。
  • 案例:IPv6解决地址枯竭问题。
传输层
  • 职责:管理端口和提供可靠传输。
  • 协议:TCP、UDP。
  • 案例:UDP用于实时视频流,TCP用于网页加载。
应用层
  • 职责:为应用程序提供服务。
  • 协议:HTTP、SMTP、DNS。
  • 案例:DNS解析域名为IP地址。

3.3 TCP/IP协议栈与OSI模型的对比

对比项OSI模型TCP/IP协议栈
分层数量7层4层
理论性偏理论更贴近实际
实用性较少直接应用互联网通信基础

4. 网络协议的应用案例

4.1 浏览器访问网页的全过程

当你在浏览器中输入一个网址(如 www.baidu.com)并按下回车键时,背后实际上触发了许多协议的协作,以下是整个流程的详细解析:

  1. DNS解析(应用层)

    • 首先,浏览器需要将域名转换为IP地址。
    • 浏览器会查询本地DNS缓存;若缓存中没有匹配项,则向配置的DNS服务器(如8.8.8.8)发送查询请求。
    • DNS服务器根据记录,返回域名对应的IP地址(如93.184.216.34)。
    • 协议参与:DNS协议(UDP传输)。
  2. 建立TCP连接(三次握手,传输层)

    • 浏览器使用IP地址与目标服务器建立TCP连接。
    • 三次握手过程
      • 客户端发送SYN(同步序列号)请求,表示希望建立连接。
      • 服务器返回SYN-ACK(同步确认)响应,表示接受连接请求。
      • 客户端发送ACK(确认)消息,确认建立连接。
    • 协议参与:TCP。
  3. 发送HTTP请求(应用层)

    • 浏览器通过TCP连接发送一个HTTP GET请求,要求服务器返回网页内容。
    • 请求包含头信息,如Host字段指定目标域名,User-Agent标识浏览器类型。
    • 协议参与:HTTP/HTTPS。
  4. 服务器响应与数据传输(应用层 + 传输层)

    • 服务器处理请求,返回HTML文件以及相关资源(如CSS、JS、图片)。
    • 数据分为多个数据包,通过TCP连接返回给客户端。
  5. 浏览器渲染网页

    • 浏览器解析HTML,加载并渲染网页资源。

4.2 数据传输的完整路径分析

在数据从发送端到接收端的传输过程中,涉及多个网络设备和协议层的协作,以下是详细分析:

  1. 发送端(主机)

    • 数据从应用层开始封装,每层协议添加相应的头信息(如TCP头、IP头)。
    • 数据被转换为电信号,通过物理层发送到网络。
  2. 路由器的转发机制(网络层)

    • 路由器根据数据包中的目标IP地址,查找路由表,选择下一跳转发数据。
    • 若目标地址不在当前子网内,路由器将数据包转发至上一级网关。
    • 协议参与:IPv4、IPv6。
  3. 中间链路的传输(数据链路层)

    • 数据帧通过交换机转发,根据MAC地址确定下一跳。
    • 如果数据传输为无线链路,则由Wi-Fi协议进行管理。
  4. 接收端(目标主机)

    • 数据逐层解封,应用层最终接收到完整的请求或响应。

4.3 抓包工具的应用

抓包工具(如Wireshark)是分析网络协议的重要工具,可以帮助我们深入理解协议的运行机制。以下是使用抓包工具分析具体通信的实例:

实例1:分析HTTP请求
  1. 打开Wireshark并选择网络接口,启动抓包。
  2. 在浏览器中访问 www.example.com
  3. 筛选HTTP协议包,查看请求头部内容:
    • 方法:GET
    • 主机:www.baidu.com
    • 用户代理:Mozilla/5.0
实例2:分析TCP三次握手
  1. 过滤条件:tcp.flags.syn == 1 && tcp.flags.ack == 0
  2. 查看SYN包,确认源IP地址、目标IP地址和源端口号。
  3. 进一步分析ACK包,确认连接是否建立成功。

5. 常见问题与误区

5.1 OSI模型是否完全用于实际网络?

误解:OSI模型在实际网络中被完整实现。
  • 实际情况:OSI模型是理论框架,其设计理念被广泛采纳,但具体实现更贴近TCP/IP协议栈。TCP/IP合并了OSI中的部分层次(如应用层涵盖了表示层和会话层)。
解决方案:理解两者的对应关系
OSI模型TCP/IP协议栈
应用层应用层
表示层合并到应用层
会话层合并到应用层
传输层传输层
网络层互联网层
数据链路层与物理层网络接口层

5.2 为什么理解网络协议分层很重要?

常见问题:新手常忽视协议分层的意义,认为分层过于复杂。
  • 分层设计的优势
    1. 模块化开发:各层独立设计,不影响其他层。
    2. 易于调试:定位问题时可以逐层排查(如检查物理连接、路由配置或应用层请求)。
    3. 灵活性:可替换或升级单独层次的协议(如HTTP升级到HTTP/2)。
实例:问题排查的分层思路
  • 应用层:检查应用是否发送正确请求。
  • 传输层:通过抓包检查是否丢包或重传。
  • 网络层:确认IP路由是否正常工作。

5.3 IP地址与MAC地址的区别

常见误区:IP地址和MAC地址作用相同。
  • 区别
    • IP地址:逻辑地址,负责标识设备在网络中的位置,可动态分配。
    • MAC地址:物理地址,嵌入在设备网卡中,用于本地链路通信,不会改变。
实例:数据帧的地址解析
  • 当主机发送数据帧时,使用ARP协议将目标IP地址解析为MAC地址,确保帧能够在本地网络中传输。

5.4 TCP与UDP的常见使用误区

误区1:认为UDP完全不可靠
  • 实际情况:UDP虽不保证传输可靠性,但在实时性要求高的应用中(如视频直播、在线游戏)更适合,且可以通过应用层协议实现补充机制。
误区2:所有场景都优先选择TCP
  • 实际情况:TCP虽然提供可靠传输,但在性能要求高的场景(如DNS查询)并非最佳选择。
示例对比:TCP与UDP的适用场景
场景协议原因
文件传输TCP数据完整性优先
视频直播UDP实时性优先,容忍少量丢包
DNS查询UDP查询时间短,协议开销小
邮件传输TCP确保邮件数据完整性

相关文章:

网络协议入门:OSI模型与TCP/IP栈

在网络通信的世界中,数据从一台设备传输到另一台设备,需要遵循一系列规则,这些规则统称为网络协议。OSI模型和TCP/IP协议栈作为网络通信的基石,帮助我们理解数据传输的全流程。这篇文章将深入解析它们的结构、功能和实际应用&…...

pthread_exit函数

pthread_exit 是 POSIX 线程库(pthread)中的一个函数,用于显式地终止调用线程。与 exit 函数不同,pthread_exit 仅影响调用它的线程,而不是整个进程。使用 pthread_exit 可以确保线程在退出时能够正确地释放线程相关的…...

从语音识别到图像识别:AI如何“看”和“听”

引言 随着人工智能技术的不断进步,AI的“听”和“看”能力正变得越来越强大。从语音识别到图像识别,AI不仅能够通过声音与我们互动,还能通过视觉理解和分析周围的世界。这些技术不仅改变了我们与机器的交互方式,也在各行各业中带…...

UML-对象图(Object Diagram)

定义 在UML(统一建模语言)中,对象图用于描述在某一时刻,一组对象以及它们之间关系的图形。它是系统详细状态在某一时刻的快照,常用于表示复杂的类图的一个实例。关联、依赖和继承是对象图中常见的三种关系,下面将对这三种关系进行详细说明,并阐述它们之间的区别。 Pla…...

Pytorch - YOLOv11自定义资料训练

►前言 本篇将讲解目前最新推出的YOLOv11搭配Roboflow进行自定义资料标注训练流程,透过Colab上进行实作说明,使大家能够容易的了解YOLOv11的使用。 ►YOLO框架下载与导入 ►Roboflow的资料收集与标注 进行自定义资料集建置与上传 透过Roboflow工具进行…...

大模型GUI系列论文阅读 DAY2续2:《使用指令微调基础模型的多模态网页导航》

摘要 自主网页导航的进展一直受到以下因素的阻碍: 依赖于数十亿次的探索性交互(通常采用在线强化学习),依赖于特定领域的模型设计,难以利用丰富的跨领域数据进行泛化。 在本研究中,我们探讨了基于视觉-语…...

Docker 搭建mysql 连接超时问题,xxl-job启动mysql连接报错,禁用dns

1.本地连接Navicat报错信息,猜测是navicat默认连接超时导致的,后面换成idea一个插件虽然慢但连接上了 2013 - Lost connection to MySQL server at reading initial communication packet 2.启动xxl-job会报错,网上有人mysql驱动与数据库不匹…...

SSM课设-学生管理系统

【课设者】SSM课设-学生管理系统 技术栈: 后端: SpringSpringMVCMybatisMySQLJSP 前端: HtmlCssJavaScriptEasyUIAjax 功能: 学生端: 登陆 学生信息管理 个人信息管理 老师端: 多了教师信息管理 管理员端: 多了班级信息管理 多了年级信息管理 多了系统用户管理...

JavaScript笔记APIs篇03——DOM节点Bom操作本地存储正则表达式

黑马程序员视频地址:黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p78https://www.bilibili.com/video/BV1Y84y1L7Nn?…...

JS 有哪些模块化规范

一、CommonJS 规范 1. 主要应用场景 主要用于服务器端开发,尤其是 Node.js 环境。 2. 核心思想 使用 require() 函数来引入模块,使用 module.exports 或 exports 对象来导出模块中的内容。 // math.js 模块const add (a, b) > a b;const subtr…...

摘录人工智能面试笔试题汇总

一、人工智能面试问答题汇总 1、什么是人工智能? 人工智能(AI)是一种计算机科学,它增强了像人类一样工作和反应的智能机器。机器模拟人类智能行为的能力。人工智能通常用于各种应用,如决策、语音识别、感知、认知能力…...

【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】

文章目录 1 什么是 MCTP?2 MCTP 消息在 PCIe 中的传输特点3 PCIe MCTP 的局限性(1) 出站(Outbound)MCTP 消息分解的限制(2) 入站(Inbound)MCTP 消息组装的限制4 MCTP 消息的实际使用流程发送端处理流程接收端处理流程5 实际使用场景例 1:管理命令传输例 2:监控数据报告例…...

RabbitMQ集群安装rabbitmq_delayed_message_exchange

1、单节点安装rabbitmq安装延迟队列 安装延迟队列rabbitmq_delayed_message_exchange可以参考这个文章: rabbitmq安装延迟队列-CSDN博客 2、集群安装rabbitmq_delayed_message_exchange 在第二个节点 join_cluster 之后,start_app 就会报错了 (CaseC…...

doris 2.1 Queries Acceleration-Hints 学习笔记

1 Hint Classification 1.1 Leading Hint:Specifies the join order according to the order provided in the leading hint. 1.2 Ordered Hint:A specific type of leading hint that specifies the join order as the original text sequence. 1.3 Distribute Hint:Speci…...

【网络协议】【http】【https】TLS解决了HTTP存在的问题-加密通信+摘要,数字签名+CA证书

【网络协议】【http】【https】TLS解决了HTTP存在的问题-加密通信摘要数字签名CA证书 ps:TLS前期发送的密码套件里面主要就是约定:密钥交换算法,签名算法,对称加密算法,摘要算法 1加密通信 一般选择非对称加密交换密钥 对称加密…...

某讯一面,感觉问Redis的难度不是很大

前不久,有位朋友去某讯面试,他说被问到了很多关于 Redis 的问题,比如为什么用 Redis 作为 MySQL 的缓存?Redis 中大量 key 集中过期怎么办?如何保证缓存和数据库数据的一致性?我将它们整理出来,…...

【json_object】mysql中json_object函数过长,显示不全

问题:json只显示部分 解决: SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB,根据需要调整如果当前在navicat上修改,只有效本次连接和后续会话,重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…...

【KOA框架】koa框架基础入门

koa是express的一层封装,语法比express更加简洁。所以有必要了解下koa的相关开发方法。 代码实现 package.json {"name": "koapp","version": "1.0.0","main": "index.js","scripts": {&…...

kubernetes 集群 YAML 文件详解

Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。在 Kubernetes 中,YAML 文件扮演着至关重要的角色,因为它们是用来定义资源对象(如 Pods、Deployments、Services 等)的配置文件。正确…...

【STM32G4xx的CAN驱动记录】

STM32G4xx的CAN驱动记录 CAN说明CAN的波特率计算数据测试总结 本文主要记录了基于STM32G4xx的CAN接口解析某型号雷达数据遇到的问题及规避方法,CAN总线波特率500Kbps,采样点要求80%附近。 注意CAN总线同步段的时间!!! …...

VSCode下EIDE插件开发STM32

VSCode下STM32开发环境搭建 本STM32教程使用vscode的EIDE插件的开发环境,完全免费,有管理代码文件的界面,不需要其它IDE。 视频教程见本人的 VSCodeEIDE开发STM32 安装EIDE插件 Embedded IDE 嵌入式IDE 这个插件可以帮我们管理代码文件&am…...

HTML之拜年/跨年APP(改进版)

目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…...

解决 WSL 2 中 Ubuntu 22.04 安装 Docker 后无法启动的问题

问题场景 安装Docker后,执行sudo service docker start启动Docker,提示启动成功 rootDev:~# sudo service docker start * Starting Docker: docker [ OK ]执行su…...

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中,开始在所有平台上推出这一功能。 1.1. 更新版本: Chrome 126 在 ChromeOS、Linux、Mac、Windows 上:在 1% 的稳定版用户…...

《贪心算法:原理剖析与典型例题精解》

必刷的贪心算法典型例题! 算法竞赛(蓝桥杯)贪心算法1——数塔问题-CSDN博客 算法竞赛(蓝桥杯)贪心算法2——需要安排几位师傅加工零件-CSDN博客 算法(蓝桥杯)贪心算法3——二维数组排序与贪心算…...

CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标

黑马程序员视频地址: 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p70https://www.bilibili.com/video/BV1kM4y127Li?vd_source…...

Golang Gin系列-6:Gin 高级路由及URL参数

在本章中,我们将深入研究使用Gin框架的高级路由和URL参数。我们将介绍如何创建和使用路由组、应用中间件、提取路径参数、处理查询字符串、处理静态文件以及使用HTML模板。 路由分组 为什么要使用路由组? 使用路由组有助于保持代码结构整洁有序。当路由…...

重温STM32之环境安装

缩写 CMSIS:common microcontroller software interface standard 1,keil mdk安装 链接 Keil Product Downloads 安装好后,开始安装平台软件支持包(keil 5后不在默认支持所有的平台软件开发包,需要自行下载&#…...

web应用引入cookie机制的用途和cookie技术主要包括的内容

web应用引入cookie机制,用于用户跟踪。 (1)HTTP响应报文中的Cookie头行:set-Cookie (2)用户浏览器在本地存储、维护和管理的Cookie文件 (3)HTTP请求报文中的Cookie头行:…...

Visual Studio Code + Stm32 (IAR)

记录一下, 以前看别人在 vsc 下配置 stm32 工程非常麻烦。 最近,突然发现, iar 官方出了两个插件, iar build 、 iar C-Spy 安装之后,配置一下 iar 软件路径。 然后,直接打开工程目录,编译…...

小程序获取微信运动步数

1、用户点击按钮&#xff0c;在小程序中触发getuserinfo方法&#xff0c;获取用户信息 <scroll-view class"scrollarea" scroll-y type"list"><view class"container"><button bind:tap"getLogin">获取</button&…...

嵌入式Linux驱动开发之platform

关键词&#xff1a;rk3399 嵌入式驱动 Linux platform 前言 前面的嵌入式Linux驱动都是描述从特定的SOC与特定设备之间的直接两两通信。而Linux不是为单一某一SOC结构而设计的操作系统&#xff0c;它可以运行在X86、ARM等多种架构多种SOC平台上&#xff0c;如果驱动程序按照S…...

【蓝桥杯】43693.日期问题

题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff0c;有采用年/月/日的&#xff0c;有采用月/日/年的&#xff0c;还有采用…...

opengrok_windows_多工程的同步

多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下&#xff0c;下载工程代码&#xff0c;以下载pulseaudio的代码为例。 git clone gitgithub.com:pulseaudio/pulseaudio.git log配置文件 拷贝D:\opengrok\opengrok-…...

Redis的安装和使用--Windows系统

Redis下载地址&#xff1a; windows版本readis下载&#xff08;GitHub&#xff09;&#xff1a; https://github.com/tporadowski/redis/releases &#xff08;推荐使用&#xff09; https://github.com/MicrosoftArchive/redis/releases 官网下载&#xff08;无Windows版本…...

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动&#xff0c;以下两种都可以 教程&#xff1a;使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: &#xff08;1&#xff09;可以…...

亚博microros小车-原生ubuntu支持系列:1 键盘控制

背景&#xff1a;电脑配置不太行&#xff0c;我在ubuntu再运行vmware&#xff0c;里面运行亚博官方的虚拟机镜像ubuntu&#xff0c;系统很卡。基本上8G内存给打满了。还是想把亚博官方的代码迁移出来&#xff0c;之前售后就说除了官方镜像虚拟机&#xff0c;需要自己摸索迁移。…...

【Linux】利用‘shell脚本’快速查看服务的运行情况

一、脚本目的 为了方便查看服务的运行情况&#xff0c;特此写了一个shell脚本&#xff0c;这样就很方便获取&#xff0c;查看如nginx、mysql等服务的运行状态、监听端口状态、防火墙、端口开放状态等。 二、shell脚本源代码 #!/bin/bash SCRIPTPATH$(cd "$(dirname $0)…...

[2025分类时序异常检测指标R-AUC与VUS]

梳理了一下分类中常见的指标&#xff0c;这些指标与时序异常检测中新提出的A-RUC与VUS之间的关系 真正例(True Positive,TP): 被正确识别为正样本的数量。真负例(True Negative,TN): 被正确识别为负样本的数量。假正例(False Positive ,FP): 被错误识为正样本数量假负例(Fals…...

设计模式之结构型模式

在软件开发的世界里&#xff0c;设计模式是前辈们智慧的结晶&#xff0c;它们为我们提供了通用的解决方案来应对各种常见的软件设计问题。今天&#xff0c;我们深入探讨设计模式中的结构型模式&#xff0c;并用 Java 语言来实现它们。 什么是结构型模式 结构型模式主要关注如…...

Spring Boot中的404错误:原因、影响及处理策略

Spring Boot中的404错误&#xff1a;原因、影响及处理策略 在Web开发过程中&#xff0c;404错误是一个常见的HTTP状态码&#xff0c;表示“未找到”资源。在Spring Boot项目中&#xff0c;尽管它以其简化的配置和快速的开发速度著称&#xff0c;但开发者仍可能遇到404错误。本…...

网络协议如何确保数据的安全传输?

网络协议作为计算机网络通信的基石&#xff0c;其设计不仅旨在实现数据的有效传输&#xff0c;更在于确保数据在传输过程中的安全性。对于网络协议如何保障数据安全传输&#xff0c;是很多企业和网络IT部门的重点&#xff0c;本文将从多方面概述相关方法。 加密与解密机制 1. …...

Python绘制数据地图-MovingPandas

MovingPandas 是一个用于时空数据分析的 Python 库&#xff0c;它扩展了 Pandas 和 GeoPandas&#xff0c;使得处理和分析带有时间戳的地理数据变得更加方便。虽然 MovingPandas 本身不直接提供数据可视化功能&#xff0c;但你可以结合其他库如 matplotlib、folium 或 plotly 来…...

鸿蒙子组件根据数据,刷新item Ui的规范

鸿蒙 子组件列表中&#xff0c;有多个isSelect&#xff0c;父组件只用一个state类型的isSelect&#xff0c;就可以将它们关联起来&#xff0c;如下&#xff1a; isLike:item1.isPraise?!this.isLike:this.isLike, 子组件想要数据变化&#xff0c;UI随着更新&#xff0c;就得…...

使用 Flask 构建视频转 GIF 工具

使用 Flask 构建视频转 GIF 工具 在前几日的文章当中&#xff0c;我介绍了如何使用 Python 脚本将视频转化为 GIF 动画&#xff0c;为了更好、更方便的进行操作&#xff0c;在这篇博客中&#xff0c;我将介绍使用 Flask 框架创建一个简单的 Web 应用程序&#xff0c;该应用程序…...

基于SpringBoot+Vue的智慧动物园管理系统的设计与实现

获取源码&#xff1a;基于SpringBootVue智慧动物园系统设计与实现: 后台和用户前台。后台包括首页、员工管理、考勤管理、部门管理、角色管理、审核管理、动物管理、演出管理、园区管理、园区设施维修、饲养管理、行为观察管理、疫苗管理、看护管理、个人中心、票务管理、收入管…...

“深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手

TCP&#xff08;传输控制协议&#xff09;的三次握手和四次挥手是TCP连接建立和释放的过程。 一、TCP三次握手 TCP三次握手是为了建立可靠的连接&#xff0c;确保客户端和服务器之间的通信能力。具体过程如下&#xff1a; 第一次握手&#xff1a;客户端向服务器发送一个带有…...

【初阶数据结构】探索数据的多米诺链:单链表

文章目录 1.链表1.1 概念及结构1.2 分类 2.单链表接口实现2.1 单链表节点创建2.2 单链表打印2.3 单链表尾插2.4 单链表头插2.5 单链表尾删2.6 单链表头删2.7单链表查找2.8 单链表在pos位置插入x2.8.1 pos前2.8.2 pos后 2.9单链表在pos位置删除x2.9.1 pos前2.9.2 pos后 2.2.10 单…...

我的创作纪念日——我与CSDN一起走过的365天

目录 一、机缘&#xff1a;旅程的开始 二、收获&#xff1a;沿路的花朵 三、日常&#xff1a;不断前行中 四、成就&#xff1a;一点小确幸 五、憧憬&#xff1a;梦中的重点 一、机缘&#xff1a;旅程的开始 最开始开始写博客是在今年一二月份的时候&#xff0c;也就是上一…...

w-form-select 组件中 分析 自定义属性 和 el-select 自带属性 的对比表格

以下是该组件中 自定义属性 和 el-select 自带属性 的对比表格&#xff1a; 属性/功能自定义el-select 自带说明label✔️❌自定义属性&#xff0c;用于设置表单项的标签。prop✔️❌自定义属性&#xff0c;用于表单验证时的字段名。labelWidth✔️❌自定义属性&#xff0c;用…...