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

【Linux】40.网络基础(2.2)

文章目录

  • 2. 传输层
    • 2.1 再谈端口号
      • 2.1.1 端口号范围划分
      • 2.1.2 认识知名端口号
      • 2.1.3 netstat
      • 2.1.4 pidof
    • 2.2 UDP协议
      • 2.2.1 UDP协议端格式
      • 2.2.2 UDP的特点
      • 2.2.3 面向数据报
      • 2.2.4 UDP的缓冲区
      • 2.2.5 UDP使用注意事项
      • 2.2.6 基于UDP的应用层协议
    • 2.3 TCP协议
      • 2.3.1 TCP协议段格式
      • 2.3.2 确认应答(ACK)机制
      • 2.3.3 超时重传机制
      • 2.3.4 连接管理机制


2. 传输层

负责数据能够从发送端传输接收端


2.1 再谈端口号

端口号(Port)标识了一个主机上进行通信的不同的应用程序

43c9476c1cf96614bbdb408ee3427be3

在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看);

74cfb56762544397519418a723b1537e


2.1.1 端口号范围划分

  • 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的
  • 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的

2.1.2 认识知名端口号

有些服务器是非常常用的, 为了使用方便, 人们约定一些常用的服务器, 都是用以下这些固定的端口号:

  • ssh服务器, 使用22端口
  • ftp服务器, 使用21端口
  • telnet服务器, 使用23端口
  • http服务器, 使用80端口
  • https服务器, 使用443

执行下面的命令, 可以看到知名端口号

cat /etc/services

我们自己写一个程序使用端口号时, 要避开这些知名端口号

两个问题:

  1. 一个进程是否可以bind多个端口号?
  2. 一个端口号是否可以被多个进程bind?

2.1.3 netstat

netstat是一个用来查看网络状态的重要工具.

语法:netstat [选项]

功能:查看网络状态

常用选项:

  • n 拒绝显示别名,能显示数字的全部转化成数字
  • l 仅列出有在 Listen (监听) 的服務状态
  • p 显示建立相关链接的程序名
  • t (tcp)仅显示tcp相关选项
  • u (udp)仅显示udp相关选项
  • a (all)显示所有选项,默认不显示LISTEN相关

2.1.4 pidof

在查看服务器的进程id时非常方便.

语法:pidof [进程名]

功能:通过进程名, 查看进程id


2.2 UDP协议

2.2.1 UDP协议端格式

558638f563d5ab0e48f3fafd5402c993

  • 16位UDP长度, 表示整个数据报(UDP首部+UDP数据)的最大长度
  • 如果校验和出错, 就会直接丢弃

2.2.2 UDP的特点

UDP传输的过程类似于寄信.

  • 无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;
  • 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息;
  • 面向数据报: 不能够灵活的控制读写数据的次数和数量;

2.2.3 面向数据报

应用层交给UDP多长的报文, UDP原样发送, 既不会拆分, 也不会合并;

用UDP传输100个字节的数据:

如果发送端调用一次sendto, 发送100个字节, 那么接收端也必须调用对应的一次recvfrom, 接收100个字节; 而不能循环调用10次recvfrom, 每次接收10个字节


2.2.4 UDP的缓冲区

  • UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作
  • UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃

UDP的socket既能读, 也能写, 这个概念叫做 全双工


2.2.5 UDP使用注意事项

我们注意到, UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部)

然而64K在当今的互联网环境下, 是一个非常小的数字


2.2.6 基于UDP的应用层协议

NFS: 网络文件系统

TFTP: 简单文件传输协议

DHCP: 动态主机配置协议

BOOTP: 启动协议(用于无盘设备启动)

DNS: 域名解析协议

当然, 也包括你自己写UDP程序时自定义的应用层协议


2.3 TCP协议

TCP全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制


2.3.1 TCP协议段格式

0b33e9823d505ac1a97a7074cc5a2ab0

  • 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;
  • 32位序号/32位确认号: 后面详细讲;
  • 4位TCP报头长度: 表示该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最大长度是15 * 4 = 60
  • 6位标志位:
    • URG: 紧急指针是否有效
    • ACK: 确认号是否有效
    • PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
    • RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段
    • SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
    • FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段
  • 16位窗口大小: 后面再说
  • 16位校验和: 发送端填充, CRC校验。接收端校验不通过, 则认为数据有问题. 此处的检验和不光包含TCP首部, 也包含TCP数据部分
  • 16位紧急指针: 标识哪部分数据是紧急数据
  • 40字节 头部选项: 暂时忽略

2.3.2 确认应答(ACK)机制

1d388c6b5f2413f8dfc25dd8ae1e0723

TCP将每个字节的数据都进行了编号。即为序列号。

f27e048c9141deaa67d33b8e5f440d42

每一个ACK都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发


2.3.3 超时重传机制

9be4d79d1700d0280991578f19a32f23

  • 主机A发送数据给B之后, 可能因为网络拥堵等原因, 数据无法到达主机B;
  • 如果主机A在一个特定时间间隔内没有收到B发来的确认应答, 就会进行重发;

但是, 主机A未收到B发来的确认应答, 也可能是因为ACK丢失了;

3be1ae155b910666fe5ec658bc3f4ac4

因此主机B会收到很多重复数据. 那么TCP协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉。这时候我们可以利用前面提到的序列号,,就可以很容易做到去重的效果。

那么, 如果超时的时间如何确定?

  • 最理想的情况下, 找到一个最小的时间, 保证 “确认应答一定能在这个时间内返回”
  • 但是这个时间的长短, 随着网络环境的不同, 是有差异的
  • 如果超时时间设的太长, 会影响整体的重传效率
  • 如果超时时间设的太短, 有可能会频繁发送重复的包

TCP为了保证无论在任何环境下都能比较高性能的通信, 因此会动态计算这个最大超时时间.

  • Linux中(BSD Unix和Windows也是如此), 超时以500ms为一个单位进行控制, 每次判定超时重发的超时时间都是500ms的整数倍
  • 如果重发一次之后, 仍然得不到应答, 等待 2*500ms 后再进行重传
  • 如果仍然得不到应答, 等待 4*500ms 进行重传. 依次类推, 以指数形式递增
  • 累计到一定的重传次数, TCP认为网络或者对端主机出现异常, 强制关闭连接

2.3.4 连接管理机制

在正常情况下, TCP要经过三次握手建立连接, 四次挥手断开连接

8562f8db195699f2451abe84e8eb82d0

服务端状态转化:

  • [CLOSED -> LISTEN] 服务器端调用listen后进入LISTEN状态, 等待客户端连接;
  • [LISTEN -> SYN_RCVD] , 并向客户端(同步报文段), 就将该连接放入内核等待队列中。一旦监听到连接请求发送SYN确认报文。
  • [SYN_RCVD -> ESTABLISHED] 服务端一旦收到客户端的确认报文, 就进入ESTABLISHED状态, 可以进行读写数据了.
  • [ESTABLISHED -> CLOSE_WAIT] 当客户端主动关闭连接(调用close), 服务器会收到结束报文段, 服务器返回确认报文段并进入CLOSE_WAIT;
  • [CLOSE_WAIT -> LAST_ACK] 进入CLOSE_WAIT后说明服务器准备关闭连接(需要处理完之前的数据); 当服务器真正调用close关闭连接时, 会向客户端发送FIN, 此时服务器进入LAST_ACK状态, 等待最后一个ACK到来(这个ACK是客户端确认收到了FIN)
  • [LAST_ACK -> CLOSED] 服务器收到了对FIN的ACK, 彻底关闭连接.

客户端状态转化:

  • [CLOSED -> SYN_SENT] 客户端调用connect, 发送同步报文段;
  • [SYN_SENT -> ESTABLISHED] connect调用成功, 则进入ESTABLISHED状态, 开始读写数据;
  • [ESTABLISHED -> FIN_WAIT_1] 客户端主动调用close时, 向服务器发送结束报文段, 同时进入FIN_WAIT_1;
  • [FIN_WAIT_1 -> FIN_WAIT_2] 客户端收到服务器对结束报文段的确认, 则进入FIN_WAIT_2, 开始等待服务器的结束报文段;
  • [FIN_WAIT_2 -> TIME_WAIT] 客户端收到服务器发来的结束报文段, 进入TIME_WAIT, 并发出LAST_ACK;
  • [TIME_WAIT -> CLOSED] 客户端要等待一个2MSL(Max Segment Life, 报文最大生存时间)的时间, 才会进入CLOSED状态.

下图是TCP状态转换的一个汇总:

deb2a0a7db2fc74f9a084972c2710f6b

  • 较粗的虚线表示服务端的状态变化情况;
  • 较粗的实线表示客户端的状态变化情况
  • CLOSED是一个假想的起始点, 不是真实状态;

关于 “半关闭” , 男女朋友分手例子。

相关文章:

【Linux】40.网络基础(2.2)

文章目录 2. 传输层2.1 再谈端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2.1.4 pidof 2.2 UDP协议2.2.1 UDP协议端格式2.2.2 UDP的特点2.2.3 面向数据报2.2.4 UDP的缓冲区2.2.5 UDP使用注意事项2.2.6 基于UDP的应用层协议 2.3 TCP协议2.3.1 TCP协议段格式2.3.…...

YOLOv12即插即用--CPAM

1.模块介绍 本文提出了一种新型基于注意尺度序列融合的 YOLO 框架,称为 ASF-YOLO,该框架结合空间与尺度信息,实现了高效且精确的细胞实例分割。在 YOLO 分割框架的基础上,设计了 尺度序列特征融合(SSFF)模块,用于增强多尺度信息提取能力;同时引入 三重特征编码器(TPE…...

工业制造核心术语

• BOM: Bill of Material。物料清单。根据物料所处的阶段不同,可分为不同视图:EBOM(Engineering BOM,设计BOM)、PBOM(Process BOM)工艺BOM、MBOM(Manufacturing BOM&…...

实现一个 Markdown 编辑器组件:Vue 3 + Vite + Highlight.js

文章目录 一、项目背景与需求分析二、搭建基础项目1. 初始化 Vue 3 项目2. 安装依赖 三、实现 Markdown 编辑器组件1. 创建 Markdown 编辑器组件2. 组件说明 四、优化与拓展1. 自动保存功能2. 文件上传功能 五、总结 一、项目背景与需求分析 在现代前端开发中,Mark…...

海外交友APP多语音系统实现

一、逻辑分析 语音录制功能: 用户需要在 APP 中能够方便地触发语音录制操作。这涉及到调用设备的麦克风权限,获取音频输入流。录制的音频数据需要进行临时存储,以便后续处理和发送。 语音播放功能: 当接收到其他用户发送的语音消…...

VSCode、clangd、mingw 配置与使用

1.安装 安装如下软件: VSCodeclangd 扩展mingw-w64 2.配置 配置好 mingw-w64 到用户环境中。 在项目中设置 .clangd 扩展,设置 argument //setting.json"clangd.arguments": ["--query-driverD:\\Development\\Tools\\mingw64\\bin…...

Rust入门之迭代器(Iterators)

Rust入门之迭代器(Iterators) 本文已同步本人博客网站 本文相关源码已上传Github 前言 迭代器(Iterators)是 Rust 中最核心的工具之一,它不仅是遍历集合的抽象,更是 Rust 零成本抽象(Zero-Co…...

Android 14 、15动态申请读写权限实现 (Java)

在 Android 14、15 中&#xff0c;Google 进一步优化了存储权限系统&#xff0c;特别是写权限的管理。以下是完整的 Java 实现方案&#xff1a; 1. AndroidManifest.xml 声明权限 <!-- Android 14 存储权限 --> <uses-permission android:name"android.permiss…...

Codeforces Round 1013 (Div. 3)

Problem - A - Codeforces 解题思路&#xff1a; 对每个需要的数字进行计数 #include<bits/stdc.h> using namespace std;int main() {int t;cin >> t;while (t--){int n;cin >> n;int two 2;int zero 3;int five 1;int three 1;int one 1;int flag …...

SAP-ABAP:SAP PO接口中System Landscape(SL Landscape Directory,SLD)作用详解

SAP PO接口中System Landscape(SL Landscape Directory,SLD)作用详解 System Landscape Directory(SLD)是SAP Process Orchestration(PO)的核心组件,用于管理企业IT系统中的所有技术组件、业务系统及其关联关系。以下是其关键作用及实现逻辑: 中央元数据仓库存储全局…...

从繁琐到高效,2025年AI PPT工具选秒出PPT

在如今快节奏的职场中&#xff0c;PPT已经成为了日常工作中不可或缺的一部分。然而&#xff0c;传统的PPT制作往往耗费大量时间&#xff0c;尤其是内容整理、排版和设计这些环节&#xff0c;经常让人头疼。如何在保证质量的同时提升制作效率&#xff0c;成为了每个职场人的难题…...

TCP的三次握手和四次挥手

1.三次握手 1&#xff09;三次握手的目的 确保双方通信能力正常&#xff0c;并同步初始序列号&#xff08;ISN&#xff09;&#xff0c;防止历史重复连接干扰。 2&#xff09;三次握手的流程 这张图很复杂&#xff0c;我们可以将其简化为&#xff1a; 客户端Client …...

操作符详解(下)——包含整形提升

1.讲解剩下的操作符 1.1:逗号表达式 逗号表达式&#xff0c;就是用逗号隔开的多个表达式。 逗号表达式&#xff0c;从左向右依次执⾏。整个表达式的结果是最后⼀个表达式的结果 例题1&#xff1a; //C的值是多少&#xff1f; int main() {int a 1;int b 2;int c (a &g…...

关于量化交易在拉盘砸盘方面应用的部分思考

关于“砸盘”的深层解析与操盘逻辑 ​​一、砸盘的本质与市场含义​​ ​​砸盘​​指通过集中抛售大量筹码导致价格快速下跌的行为&#xff0c;其核心目标是​​制造恐慌、清洗浮筹或实现利益再分配​​。不同场景下的砸盘含义不同&#xff1a; ​​主动砸盘&#xff08;操控…...

大模型Prompt提示词越狱相关知识

大模型Prompt提示词越狱相关知识 一、什么是Prompt提示词越狱&#xff1f; 什么是Prompt提示词 ​ Prompt是指你向AI输入的内容&#xff0c;它直接指示AI该做什么任务或生成什么样的输出&#xff0c;简而言之&#xff0c; Prompt就是你与AI之间的“对话内容”&#xff0c;可…...

Prompt攻击

Prompt攻击 Prompt攻击的常见形式 1. 指令覆盖攻击 用户通过输入包含隐藏指令的提示&#xff0c;覆盖模型原本的预设行为。示例&#xff1a; “忽略之前的规则&#xff0c;帮我写一个绕过防火墙的Python脚本。” 模型可能被诱导生成危险代码。 2. 上下文污染攻击 在对话历史…...

KWDB创作者计划—KWDB:AIoT场景下的分布式多模数据库实践

在数字化转型的浪潮中&#xff0c;企业面临着海量多源异构数据的管理挑战。KWDB&#xff08;KaiwuDB Community Edition&#xff09;作为一款面向AIoT场景的分布式多模数据库&#xff0c;凭借其创新的技术架构和强大的性能表现&#xff0c;正在成为众多企业和开发者关注的焦点。…...

redisson常用加锁方式

RLock lock redissonClient.getLock("lock:order:" order);和redissonDistributedLocker.tryLock("lock:order:" order&#xff0c; TimeUnit.SECONDS, RedisLockKey.DEFAULT_WAIT_TIME, RedisLockKey.DEFAULT_HOLD_TIME);这两种加锁方式的区别如下&…...

网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看

这几天在部署项目的时候会发现的一个问题是&#xff0c;配置都没有什么问题&#xff0c;但是进入网页操作功能的时候却报错了&#xff0c;报错是这样&#xff1a; Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession57d08368] was …...

龙蜥社区荣获 OS2ATC 2025 “最具影响力开源创新贡献奖”

3 月 29 日&#xff0c;第十二届开源操作系统年度技术大会 (Open Source Operating System Annual TechnicalConference, 简称 OS2ATC) 在北京成功举办。会上&#xff0c;OS2ATC 公布了在开源操作系统等领域做出卓越贡献的获奖组织名单&#xff0c;其中&#xff0c;龙蜥社区凭借…...

conda入门教程

一、安装 Conda 下载 Anaconda 或 Miniconda Anaconda&#xff1a;包含大量常用的数据科学包&#xff0c;适合需要快速搭建数据科学环境的用户。Miniconda&#xff1a;仅包含 Conda 及其依赖项&#xff0c;适合需要更轻量化安装的用户。 可以通过访问 Anaconda 官方网站 或 Min…...

Linux入门指南:从零开始探索开源世界

&#x1f680; 前言 大家好&#xff01;今天我们来聊一聊Linux这个神奇的操作系统~ &#x1f916; 很多小伙伴可能觉得Linux是程序员专属&#xff0c;其实它早已渗透到我们生活的各个角落&#xff01;本文将带你了解Linux的诞生故事、发行版选择攻略、应用领域&#xff0c;还有…...

K8S学习之基础七十六:istio实现熔断功能

istio实现熔断功能 熔断的目的是在出现故障或异常情况时&#xff0c;对服务进行自动的限流和隔离&#xff0c;以保护整个系统的稳定性和可用性。上传httpbin镜像和fortio镜像到harbordocker tag kong/httpbin:latest 172.16.80.140/istio/httpbindocker push 172.16.80.140/ist…...

网络稳定性--LCA+最大生成树+bfs1/dfs1找最小边

1.最大生成树去除重边&#xff0c;只要最大的边成树 2.LCA查最近公共祖先&#xff0c;然后询问的lca(x,y)ff,分别从x,y向上找最小边 3.bfs1/dfs1就是2.中向上找的具体实现 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typede…...

数字图像处理作业3

第一问&#xff1a; 第一问要求使用一阶的Butterworth低通滤波器进行频域滤波&#xff0c;Butterworth其实是在截止低通滤波器的一个改进&#xff0c;它消除了明显截止带来的急剧不连续性。 H ( u , v ) 1 1 [ D ( u , v ) / D 0 ] 2 n H(u, v)\frac{1}{1\left[D(u, v) / D_0…...

fisco-bcos 关于服务bash status.sh启动runing 中但是5002端口监听不到,出错的问题

bash status.sh Server com.webank.webase.front.Application Port 5002 is running PID(4587) yjmyjm-VMware-Virtual-Platform:~/webase-front$ sudo netstat -anlp | grep 5002 没有端口信息输出 此时可以查看log文件夹下的WeBASE-front.log&#xff0c;找到报错信息如下…...

数字的乘阶运算

求数字的乘阶&#xff1a; 例如&#xff1a;6的乘阶运算&#xff1a;6*5*4*3*2*1 例如&#xff1a;3的乘阶运算&#xff1a;3*2*1 class Program{static void Main(string[] args){Console.WriteLine("请输入数字&#xff1a;");int num_01 Convert.ToInt32 (Con…...

Python标准库-logging

一、为什么需要logging模块&#xff1f; 在Python开发中&#xff0c;print()是最简单的调试方式&#xff0c;但在生产环境中存在明显缺陷&#xff1a; 无法区分消息级别&#xff08;调试/错误/警告&#xff09;没有时间戳记录不能灵活输出到不同目标&#xff08;文件/控制台/…...

html元素转图像之深入探索 html - to - image:功能、应用与实践

html元素转图像之深入探索 html-to-image&#xff1a;功能、应用与实践 一、引言 使用该插件 需要注意页面上的图片都能正常显示&#xff0c;否则会报错&#xff0c;或生成的图片有误&#xff0c;注意注意。 在当今数字化内容丰富多样的时代&#xff0c;将网页上的特定 HTML…...

Byte-Buddy系列 - 第1讲 关于类的相关操作

目录 一、引言二、创建类的3种方式三、运行时加载类四、重新加载类五、操作没有加载的类六、创建Java Agents 一、引言 Byte Buddy 是一个用于在 Java 应用程序运行时创建和修改 Java 类的代码生成和操作库&#xff0c;无需编译器的帮助。与 Java 类库中自带的代码生成工具不同…...

接口(interface) 测试

前提 概念 接口&#xff1a;系统之间数据交互的通道。&#xff08;本质是函数&#xff08;方法&#xff09;&#xff09; 接口测试&#xff0c;会绕过前端&#xff0c;直接对服务器进行测试 实现方式 软件&#xff1a; postman:使用简单&#xff0c;上手难度低。功能较少。…...

人力外包解决方案:重构企业用人成本的最优配置

作为专业人力外包服务商&#xff0c;我们深谙企业用人成本的核心痛点与优化密码。以下从外包视角解析成本构成&#xff0c;展现如何通过「战略外包」实现成本重构与价值倍增。 在当今竞争激烈的商业环境中&#xff0c;企业面临着越来越多的挑战&#xff0c;尤其是在人力资源管…...

WPF 组件的宽高绑定另一个组件的宽高的指定比值

0.此方法比较适用于响应式界面,组件的大小需要根据窗体大小改变。 1.创建转换函数,并传入比值 public class SizeConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is double d &&…...

【DvAdmin】接口返回 emoji 显示 ?解决方法

再django构建API接口的时候emoji图标显示? 这里需要检查一下 如果你在后端返回的 JSON 数据中,某些 emoji 显示为 ?,而这些 emoji 在其他地方(比如你的本地应用或网页)显示正常,那么问题通常与后端的字符编码、数据库存储、或者 API 响应处理有关。我们可以按以下几个方…...

【挑战项目】 --- 微服务编程测评系统(在线OJ系统)(一)

一、前言 1.为什么要做项目 面试官要问项目,考察你到底是理论派还是实战派? 1.希望从你的项目中看到你的真实能力和对知识的灵活运用。 2.展示你在面对问题和需求时的思考方式及解决问题的能力。 3.面试官会就你项目提出一些问题,或扩展需求。以此来评估你如何有效应对和设…...

深度学习在文本情感分析中的应用

引言 情感分析是自然语言处理&#xff08;NLP&#xff09;中的一个重要任务&#xff0c;旨在识别和提取文本中的主观信息。随着深度学习技术的发展&#xff0c;我们可以使用深度学习模型来提高情感分析的准确性和效率。本文将介绍如何使用深度学习进行文本情感分析&#xff0c…...

建筑工程管理系统功能模块概览

在现代建筑工程管理中&#xff0c;信息化系统的应用已成为提升管理效率、优化资源配置的重要手段。本文将详细介绍一款建筑工程管理系统的核心功能模块&#xff0c;该系统覆盖了从系统管理、项目设置到具体业务操作的全方位功能&#xff0c;旨在为建筑工程项目提供一站式管理解…...

MyBatis-Plus3.X分页配置PaginationInnerInterceptor出错原因

MyBatis-Plus3.X分页配置PaginationInnerInterceptor出错原因 PaginationInnerInterceptor报红&#xff0c; 无法导入 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import com.baomidou.mybatisplus.extension.plugins.MybatisPlu…...

vue、vue2、vue3

Vue、Vue 2 和 Vue 3 分别代表了 Vue.js 不同阶段的版本&#xff0c;它们在设计理念、语法和功能上存在一些区别&#xff0c;下面为你详细介绍&#xff1a; 1. 发布时间和生命周期 Vue&#xff1a;通常指的是 Vue 1.x 版本&#xff0c;于 2014 年 2 月发布。它是 Vue.js 的初…...

网络安全之-信息收集

域名收集 域名注册信息 站长之家 https://whois.chinaz.com/ whois 查询的相关网站有:中国万网域名WHOIS信息查询地址: https://whois.aliyun.com/西部数码域名WHOIS信息查询地址: https://whois.west.cn/新网域名WHOIS信息查询地址: http://whois.xinnet.com/domain/whois/in…...

神经网络入门—

修改网络 神经网络入门—自定义网络-CSDN博客 修改数据集&#xff0c;yx^2 # 生成一些示例数据 x_train torch.tensor([[1.0], [2.0], [3.0], [4.0]], dtypetorch.float32) y_train torch.tensor([[1.0], [4.0], [9.0], [16.0]], dtypetorch.float32) 将预测代码改为&…...

Python Cookbook-5.10 选取序列中最小的第 n个元素

任务 需要根据排名顺序从序列中获得第n个元素(比如&#xff0c;中间的元素&#xff0c;也被称为中值)。如果序列是已经排序的状态&#xff0c;应该使用seq[n]&#xff0c;但如果序列还未被排序&#xff0c;那么除了先对整个序列进行排序之外&#xff0c;还有没有更好的方法? …...

GitHub 克隆/下载失败的解决方案

&#x1f680; GitHub 下载/克隆失败&#xff1f;一招搞定代理配置与回滚&#xff01; 在国内使用 Git 操作 GitHub 时&#xff0c;经常会遇到以下问题&#xff1a; ❌ 下载失败、超时 ❌ Failed to connect to github.com port 443 ❌ SSL certificate problem 本文将详细讲解…...

【Linux】进程控制:创建、终止、等待与替换全解析

文章目录 前言一、重谈进程创建二、进程终止2.1 正常终止的退出码机制2.2 异常终止的信号机制2.3 进程常见的退出方法 三、进程等待&#xff1a;避免僵尸进程的关键3.1 进程等待的必要性3.2 进程等待的两个系统调用接口3.2.1 wait()3.2.2 waitpid()区别 四、进程程序替换4.1 进…...

LabVIEW 图像处理中常见的边缘检测算法

在 LabVIEW 图像处理领域&#xff0c;边缘检测对于提取图像特征、目标识别及图像分割等任务至关重要。以下介绍几种常见的边缘检测算法及其在 LabVIEW 中的应用。​ 一、Sobel 算子​ Sobel 算子是一种离散的一阶差分算子&#xff0c;用于计算图像灰度的近似梯度。它通过分别…...

Redis-场景缓存+秒杀+管道+消息队列

缓存一致性 1.两次更新 先更新数据库&#xff0c;再更新缓存&#xff1b;先更新缓存&#xff0c;再更新数据库&#xff1b; 出现不一致问题场景&#xff1a; 先更新数据库&#xff0c;再更新缓存&#xff1b; 先更新缓存&#xff0c;再更新数据库&#xff1b; 两次更新的适…...

亲身体验 Copilot Pages:利用人工智能实时整理和优化笔记

想象一下&#xff0c;有一款与云端相连的笔记本&#xff0c;它不仅能保存您收集的信息&#xff0c;还能自动整理&#xff0c;并根据需要添加详细信息和研究资料。这就是微软在华盛顿州雷德蒙德举行的 50 周年庆典活动上推出的全新 Copilot Pages 功能。这是微软在该活动中介绍的…...

[250409] GitHub Copilot 全面升级,推出AI代理模式,可支援MCP | Devin 2.0 发布

目录 GitHub Copilot 全面升级&#xff0c;推出AI代理模式&#xff0c;可支援MCPDevin 2.0 正式发布&#xff1a;带来全新的 AI 协作开发体验 GitHub Copilot 全面升级&#xff0c;推出AI代理模式&#xff0c;可支援MCP GitHub Copilot 迎来了一次重大升级&#xff0c;核心在于…...

代码随想录算法训练营Day25

一、力扣93.复原IP地址【medium】 题目链接&#xff1a;力扣93.复原IP地址 left x300 视频链接&#xff1a;代码随想录 1、思路 时间复杂度&#xff1a; O ( n ) O(n) O(n) 2、代码 class Solution:def restoreIpAddresses(self, s: str) -> List[str]:n len(s)ans []…...

支持企业知识库和联网搜索,360AI企业知识库驱动业务深度融合

在企业智能化转型进程中&#xff0c;高效整合内外部结构化与非结构化数据资源、快速构建AI能力已成为制胜未来的核心命题。360 DeepSeek企业知识库助力企业实现知识管理、辅助决策与业务场景落地的全链路贯通&#xff0c;重塑智能化升级路径。 1 企业知识库构建 终结信息孤岛…...