论传输层的TCP协议和UDP协议scoket通讯
TCP传输前需要三次握手---断开需要四次挥手
谁先发出请求、谁是客户端(client)另一个就是服务器(server)---简称CS架构
现在更多的是BS架构
什么是BS架构?
blower server 浏览器+服务器---也就是浏览器代替了客户端
TCP(传输控制协议)和UDP(用户数据报协议)是互联网中两种最常用的传输层协议,它们在数据传输方式、可靠性和适用场景上有显著区别。以下是它们的对比和关键特性:
socket通讯:socket套接字可以理解为就是程序之间“打电话”的工具,一个负责接电话(服务端),一个负责打电话(客户端),用 IP 和端口找到对方,用 TCP 或 UDP 决定聊天方式。
TCP/UDP
1. 连接状态
- TCP:面向连接的协议。
- UDP:无连接的协议。
- 直接发送数据包,无需预先建立连接。
- 不保证接收端是否成功接收数据。
2. 可靠性
- TCP:
- 提供可靠传输:通过确认应答(ACK)、超时重传、错误校验和数据包排序机制确保数据完整有序。
- 适用于不允许数据丢失的场景(如文件传输、网页加载)。
- UDP:
- 不可靠传输:不保证数据包是否到达、是否按序到达,也不处理丢包或重复包。
- 适用于能容忍少量数据丢失的场景(如实时视频、语音通话)。
3. 流量控制与拥塞控制
- TCP:
- 通过滑动窗口机制动态调整发送速率,避免接收方缓冲区溢出。
- 采用拥塞控制算法(如慢启动、拥塞避免)防止网络过载。
- UDP:
- 无流量控制和拥塞控制机制,可能因发送速率过快导致网络拥塞或丢包。
4. 传输速度与效率
- TCP:
- 由于建立连接、确认应答、重传等机制,传输速度较慢,延迟较高。
- 头部较大(20字节+可选字段),额外开销较多。
- UDP:
- 传输速度快,延迟低,适合实时应用。
- 头部固定为8字节,结构简单,传输效率高。
5. 数据顺序
- TCP:保证数据按发送顺序到达接收端。
- UDP:不保证数据顺序,接收端可能需要自行排序。
6. 应用场景
- TCP的典型应用:
- 需要可靠传输的场景:HTTP/HTTPS(网页)、FTP(文件传输)、SMTP(邮件)、数据库连接。
- 长连接通信:如SSH远程登录、实时聊天(如微信文字消息)。
- UDP的典型应用:
- 实时性要求高的场景:视频会议(Zoom、Teams)、在线游戏(如MOBA、FPS)、流媒体(直播、IPTV)。
- 广播/多播:DNS查询、DHCP、物联网传感器数据。
- 简单查询:如NTP(时间同步)、SNMP(网络管理)。
7. 协议头部对比
特性 | TCP头部(20-60字节) | UDP头部(8字节) |
---|---|---|
关键字段 | 源端口、目的端口、序列号、确认号、窗口大小、校验和等 | 源端口、目的端口、长度、校验和 |
控制信息 | 包含多种控制标志(如SYN、ACK、FIN) | 无控制标志 |
总结:如何选择?
- 选TCP:需要数据可靠、完整、有序到达(如文件传输、网页加载)。
- 选UDP:追求低延迟、能容忍少量丢包(如实时音视频、游戏)。
扩展知识
- QUIC协议:基于UDP的改进协议(如HTTP/3),在UDP上实现了类似TCP的可靠性,同时减少延迟。
- 应用层可靠性:某些UDP应用(如VoIP)会在应用层实现部分可靠性机制(如丢包重传)。
socket
Socket(套接字) 是计算机网络中实现进程间通信(IPC)的核心编程接口,本质上是操作系统内核提供的抽象通信端点。它基于 IP 协议栈,为应用层提供统一的网络通信能力,支持不同主机或同一主机内的进程交换数据。以下是专业角度的详细解释:
1. socket核心定义
- 技术本质:
Socket 是操作系统内核管理的通信端点(Endpoint),由以下要素唯一标识:- IP 地址(IPv4/IPv6):标识主机或网络接口。
- 端口号(Port):标识主机内的进程(0~65535)。
- 协议类型(TCP/UDP):决定数据传输方式。
- 标准化:
- 遵循 Berkeley Socket API(BSD Socket)规范,被 POSIX 标准采纳。
- 主流操作系统(Linux、Windows、macOS)均提供兼容实现。
2. Socket 类型
类型 | 协议 | 特性 |
---|---|---|
流式套接字(SOCK_STREAM) | TCP | 面向连接、可靠传输、字节流式数据、全双工通信。 |
数据报套接字(SOCK_DGRAM) | UDP | 无连接、不可靠传输、数据报边界保留、支持广播/多播。 |
原始套接字(SOCK_RAW) | ICMP/IP 等 | 直接访问底层协议(需特权权限),用于网络探测或自定义协议实现。 |
3. Socket API 关键函数
函数 | 作用 |
---|---|
socket() | 创建套接字,指定协议族(AF_INET/AF_INET6)、类型(SOCK_STREAM 等)。 |
bind() | 将套接字绑定到本地 IP 和端口(服务端必选)。 |
listen() | 设置 TCP 服务端为监听状态,等待连接请求。 |
accept() | 接受 TCP 客户端连接,返回新套接字用于数据通信。 |
connect() | TCP 客户端主动连接服务端;UDP 客户端可设置默认目标地址。 |
send()/recv() | TCP 数据收发(面向字节流)。 |
sendto()/recvfrom() | UDP 数据收发(面向数据报)。 |
close()/shutdown() | 关闭套接字或指定方向的通信。 |
4. Socket 编程流程
TCP 服务端示例
plaintext
socket() → bind() → listen() → accept() → recv()/send() → close()↑+---- 阻塞等待客户端连接
TCP 客户端示例
plaintext
socket() → connect() → send()/recv() → close()
UDP 通信示例(无连接)
plaintext
服务端:socket() → bind() → recvfrom()/sendto()
客户端:socket() → sendto()/recvfrom()
5. 关键机制
网络字节序与主机字节序
- 问题:不同 CPU 架构可能使用不同字节序(大端/小端)。
- 解决:
- 统一使用 网络字节序(大端) 传输数据(如 IP 地址、端口号)。
- 使用转换函数:
htonl()
,htons()
,ntohl()
,ntohs()
。
地址结构体
- IPv4:
struct sockaddr_in
(含sin_family
,sin_port
,sin_addr
)。 - IPv6:
struct sockaddr_in6
。 - 通用地址结构:
struct sockaddr
(用于函数参数类型统一)。
同步与异步 I/O
- 阻塞式 Socket:默认模式,调用函数(如
recv()
)会阻塞线程直到完成。 - 非阻塞式 Socket:通过
fcntl()
或ioctl()
设置,函数立即返回错误码(EAGAIN
/EWOULDBLOCK
)。 - 多路复用:通过
select()
,poll()
,epoll()
(Linux)或kqueue()
(BSD)管理多个 Socket。
6. 错误处理
- 常见错误码:
ECONNREFUSED
:连接被拒绝(目标端口无监听)。ETIMEDOUT
:连接超时。EAGAIN
/EWOULDBLOCK
:非阻塞模式下资源暂不可用。
- 应对策略:
- 检查系统调用返回值,结合
errno
判断错误类型。 - 使用
perror()
或strerror()
输出错误信息。
- 检查系统调用返回值,结合
7. 典型应用场景
- TCP 用例:
- Web 服务器(HTTP/HTTPS)、数据库连接(MySQL)、邮件传输(SMTP)。
- 长连接应用(如 WebSocket、实时消息系统)。
- UDP 用例:
- DNS 查询、NTP 时间同步、VoIP(如 SIP 协议)。
- 实时音视频流(RTP/RTCP)、物联网传感器数据上报。
8. 扩展知识
- 跨平台兼容性:
- Windows 使用
Winsock API
(需初始化WSAStartup()
)。 - Linux/Unix 原生支持 BSD Socket。
- Windows 使用
- 高性能优化:
- 使用
epoll
(Linux)或kqueue
(BSD)实现高并发。 - 零拷贝技术(如
sendfile()
)、Socket 缓冲区调优。
- 使用
- 安全性:
- 通过 TLS/SSL(如 OpenSSL)加密 Socket 通信。
- 防止常见攻击(SYN Flood、DDoS)。
总结
Socket 是网络编程的基石,其设计抽象了底层协议复杂性,使开发者能够通过统一 API 实现跨网络的进程通信。理解 Socket 的工作原理、协议特性和系统调用,是构建高性能、可靠网络应用的关键。
相关文章:
论传输层的TCP协议和UDP协议scoket通讯
TCP传输前需要三次握手---断开需要四次挥手 谁先发出请求、谁是客户端(client)另一个就是服务器(server)---简称CS架构 现在更多的是BS架构 什么是BS架构? blower server 浏览器服务器---也就是浏览器代替了客户端…...
《鸢尾花数学大系:从加减乘除到机器学习》开源资源
《鸢尾花数学大系:从加减乘除到机器学习》开源资源 Gitee:https://gitee.com/higkoo/ bilibili:https://space.bilibili.com/513194466 GitHub:https://github.com/Visualize-ML...
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序📚页面效果📚指令输入定义…...
MySQL——DQL、多表设计
目录 一、DQL 1.基本查询 2.条件查询 3.分组查询 4.排序查询 5.分页查询 二、多表设计 1.一对多 2.一对一 3.多对多 一、DQL 1.基本查询 注意: *号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率) 2.条件查询…...
【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey
这篇文章发表于2024年4月 摘要 大语言模型(LLMs)的快速发展推动了多个领域的变革,重塑了通用人工智能的格局。然而,这些模型不断增长的计算和内存需求带来了巨大挑战,阻碍了学术研究和实际应用。为解决这些问题&…...
玩转大模型——Trae AI IDE国内版使用教程
文章目录 Trae AI IDE完备的 IDE 功能强大的 AI 助手 安装 Trae 并完成初始设置管理项目什么是 “工作空间”?创建项目 管理插件安装插件从 Trae 的插件市场安装从 VS Code 的插件市场安装 禁用插件卸载插件插件常见问题暂不支持安装 VS Code 插件市场中某个版本的插…...
【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.3.1 避免频繁更新(Update by Query的代价)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 Elasticsearch数据更新与删除深度解析:2.3.1 避免频繁更新(Update by Query的代价)案例背景1. Update by Query的内部机制解析1.1 文档更…...
stable-diffusion-webui 加载模型文件
背景 stable-diffusion-webui 安装完毕后,默认的模型生成的效果图并不理想,可以根据具体需求加载指定的模型文件。国内 modelscope 下载速度较快,以该站为例进行介绍 操作步骤 找到指定的模型文件 在 https://modelscope.cn/models 中查找…...
BKA-CNN基于黑翅鸢算法优化卷积神经网络的数据多特征分类预测Matlab
BKA-CNN基于黑翅鸢算法优化卷积神经网络的数据多特征分类预测Matlab 目录 BKA-CNN基于黑翅鸢算法优化卷积神经网络的数据多特征分类预测Matlab分类效果基本介绍BKA-CNN基于黑翅鸢算法优化卷积神经网络的数据多特征分类预测一、引言1.1、研究背景和意义1.2、研究现状1.3、研究目…...
SparkStreaming之04:调优
SparkStreaming调优 一 、要点 4.1 SparkStreaming运行原理 深入理解 4.2 调优策略 4.2.1 调整BlockReceiver的数量 案例演示: object MultiReceiverNetworkWordCount {def main(args: Array[String]) {val sparkConf new SparkConf().setAppName("Networ…...
maven高级-05.私服
一.私服...
FFmpeg-chapter2-C++中的线程
1 常规的线程 一般常规的线程如下所示 // CMakeProject1.cpp: 定义应用程序的入口点。 //#include "CMakeProject1.h" #include <thread> using namespace std;void threadFunction(int index) {for (int i 0; i < 1000; i){std::cout << "Th…...
【前端】简单原生实例合集html,css,js
长期补充,建议关注收藏点赞。 目录 a标签设置不一样的花样(图片但不用img)侧边固定box分栏input各种类型iframe表单拖拽 a标签设置不一样的花样(图片但不用img) a标签里面不用嵌套img,直接设置为其bg-img即可 <!DOCTYPE html…...
Linux下的shell指令(一)
作业 1> 在终端提示输入一个成绩,通过shell判断该成绩的等级 [90,100] : A [80, 90) : B [70, 80) : C [60, 70) : D [0, 60) : 不及格 #!/bin/bash read -p "请输入学生成绩:" score if [ "$score" -ge 90 ] && [ "$scor…...
AJAX介绍
XMLHttpRequest get请求使用 const xhr new XMLHttpRequest(); xhr.open("GET", "/data/test.json", true); xhr.onreadystatechange function () {if (xhr.readyState 4) {if (xhr.status 200) {alert(xhr.responseText);} else {console.log("…...
Serilog: 强大的 .NET 日志库
Serilog 是一个功能强大的日志记录库,专为 .NET 平台设计。它提供了丰富的 API 和可插拔的输出器及格式化器,使得开发者能够轻松定制和扩展日志记录功能。在本文中,我们将探索 Serilog 的基础知识、API 使用、配置和一些常见的示例。 1. 日志…...
串口通讯基础
第1章 串口的发送和接收过程 1.1 串口接收过程 当上位机给串口发送(0x55)数据时,MCU的RX引脚接受到(0x55)数据,数据(0x55)首先进入移位寄存器。数据全部进入移位寄存器后,一次将(0x55)全部搬运…...
SSL证书和HTTPS:全面解析它们的功能与重要性
每当我们在互联网上输入个人信息、进行在线交易时,背后是否有一个安全的保障?这时,SSL证书和HTTPS便扮演了至关重要的角色。本文将全面分析SSL证书和HTTPS的含义、功能、重要性以及它们在网络安全中的作用。 一、SSL证书的定义与基本概念 S…...
全国青少年航天创新大赛各项目对比分析
全国青少年航天创新大赛各项目对比分析 一、比赛场地对比 项目名称场地尺寸场地特点组别差异筑梦天宫虚拟三维场景动态布局,小学组3停泊处,初高中组6停泊处;涉及传送带、机械臂、传感器等虚拟设备。初中/高中组任务复杂度更高,运…...
低空监视-无人机专用ADS-B应答机
产品简介 ping200XR是经过TSO适航认证的无人机专用ADS-B应答机,用于中大型无人机的低空监视。将经过认证的航空级航电设备引入无人机系统。该应答机支持航管二次雷达A,C/S模式和ADS-B OUT。重量仅52克满足无人机所面临的尺寸、重量、功耗的挑战…...
【linux】文件与目录命令 - sort
文章目录 1. 基本用法2. 常用参数3. 用法举例4. 注意事项 sort 命令用于对文本文件中的行进行排序,支持按字母顺序、数值大小、特定字段等方式进行排序。默认按字母顺序升序排序。 1. 基本用法 语法: sort [选项] 文件 sort [选项] -o 输出文件 文件功能…...
【工具推荐】在线提取PDF、文档、图片、论文中的公式
网址1:https://simpletex.cn/ai/latex_ocr 网址2: https://www.latexlive.com/home 推荐理由:无需下载,在线使用,直接 截图 CTRLV 效果更佳。...
大模型在垂直行业的落地实践:从通用到定制化的技术跃迁
大模型在垂直行业的落地实践:从通用到定制化的技术跃迁 一、通用大模型的局限性:从 “全能” 到 “专精” 的转型挑战 通用大模型,如 GPT 系列,凭借其强大的自然语言处理能力,在文本生成、语义理解、机器翻译等基础任…...
FPGA开发,使用Deepseek V3还是R1(1):应用场景
以下都是Deepseek生成的答案 FPGA开发,使用Deepseek V3还是R1(1):应用场景 FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别 FPGA开发,使用Deepseek V3还是R1&#x…...
Docker概念与架构
文章目录 概念docker与虚拟机的差异docker的作用docker容器虚拟化 与 传统虚拟机比较 Docker 架构 概念 Docker 是一个开源的应用容器引擎。诞生于 2013 年初,基于 Go 语言实现。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中…...
算法之数据结构
目录 数据结构 数据结构与算法面试题 数据结构 《倚天村 • 图解数据结构》 | 小傅哥 bugstack 虫洞栈 ♥数据结构基础知识体系详解♥ | Java 全栈知识体系 线性数据结构 | JavaGuide 数据结构与算法面试题 数据结构与算法面试题 | 小林coding...
Mysql学习笔记(六)Django连接MySQL
一、Django中的MySQL驱动程序 Python中常见的MySQL驱动程序: MySQL-python:就是MySQLdb,是对C语言操作MySQL的封装,支持Python2,不支持Python3mysqlclient:MySQL-python的另一个分支,支持Python3pymysql&am…...
手机号码归属地的实现
手机号码归属地查询一般可以通过以下几种方式实现: 1. 使用公开的号码归属地数据库 可以使用国内的手机号码归属地数据库,如: 百度号码归属地开放API阿里云号码归属地API腾讯号码归属地API 你可以在本地存储一个 CSV 或 SQLite 数据库&…...
本地部署 DeepSeek:从 Ollama 配置到 Spring Boot 集成
前言 随着人工智能技术的迅猛发展,越来越多的开发者希望在本地环境中部署和调用 AI 模型,以满足特定的业务需求。本文将详细介绍如何在本地环境中使用 Ollama 配置 DeepSeek 模型,并在 IntelliJ IDEA 中创建一个 Spring Boot 项目来调用该模型…...
2025年渗透测试面试题总结- 阿某云安全实习(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 阿里云安全实习 一、代码审计经验与思路 二、越权漏洞原理与审计要点 三、SSRF漏洞解析与防御 四、教…...
WHAT - 前端异步事件流处理场景梳理
目录 一、典型场景二、解决方案与技术选型1. 基础异步控制2. 状态管理方案3. 复杂任务调度4. 任务取消机制5. 微任务队列优化 三、最佳实践建议四、工具链推荐 前端异步任务流处理是现代Web开发中常见的需求,尤其在复杂业务逻辑、高交互性应用中不可或缺。以下是常见…...
PHP 包含(Include)机制详解
PHP 包含(Include)机制详解 在PHP编程中,include和require是两个非常基础的函数,用于在脚本中包含其他文件。它们在模块化编程中发挥着至关重要的作用,使得代码更易于维护和扩展。本文将详细介绍PHP的包含机制,包括其工作原理、使用方法以及最佳实践。 一、PHP 包含机制…...
Metal学习笔记十:光照基础
光和阴影是使场景流行的重要要求。通过一些着色器艺术,您可以突出重要的对象、描述天气和一天中的时间并设置场景的气氛。即使您的场景由卡通对象组成,如果您没有正确地照亮它们,场景也会变得平淡无奇。 最简单的光照方法之一是 Phong 反射模…...
MongoDB 高级索引
MongoDB 高级索引 摘要 在数据库管理中,索引是提高查询效率的关键因素。MongoDB,作为一款流行的NoSQL数据库,其索引功能尤为强大。本文将深入探讨MongoDB的高级索引特性,包括复合索引、部分索引、文本索引、地理空间索引等,旨在帮助数据库管理员和开发者更好地利用Mongo…...
从DNS到TCP:DNS解析流程和浏览器输入域名访问流程
1 DNS 解析流程 1.1 什么是DNS域名解析 在生活中我们会经常遇到域名,比如说CSDN的域名www.csdn.net,百度的域名www.baidu.com,我们也会碰到IP,现在目前有的是IPV4,IPV6。那这两个有什么区别呢?IP地址是互联网上计算机…...
【JQuery—前端快速入门】JQuery 基础语法
JQuery JQuery是一个快速、简洁且功能丰富的JavaScript框架; 1. 引入依赖 使用JQuery需要先引入对应的库; 在使用 JQuery CDN 时,只需要在 HTML 文档中加入如下代码 <script src"https://code.jquery.com/jquery-3.7.1.min.js"></s…...
即梦AI发布新数字人模型OmniHuman-1
简介 随着人工智能技术的发展,特别是深度学习和自然语言处理的进步,AI在内容创作领域的应用越来越广泛。字节跳动作为一家领先的科技公司,一直在探索如何利用AI技术来提升用户体验和创造力。OmniHuman-1模型正是在这种背景下诞生的ÿ…...
ARM CM3核 压栈流程
STM32F103 使用 ARM Cortex-M3 内核,与 STM32F013(Cortex-M0)相比,其压栈行为有所不同,主要体现在异常自动压栈和**手动压栈(函数调用)**两方面。 1. 进入异常/中断时的自动压栈 当 STM32F103 …...
WHAT - RxJS 异步事件流处理
目录 RxJS 关键概念简单示例常用操作符1. 创建 Observables2. 转换操作符(map)3. 过滤操作符(filter)4. 合并多个流(mergeMap) 适用于 React & TypeScriptReact 组件中使用 RxJS RxJS 是一个用于处理异…...
vue组合式API中prop
*一、了解(事件与$emit) 一个组件需要显示声明它所接受的props,这样才知道外部传入的那些是props,那些是透传attribute。 在<script setup>单文件组件中,props可以使用defineProps()宏来声明,defineProps 是一个仅 <script setup> 中可用的编译宏命令,并不需…...
【HarmonyOS Next】自定义Tabs
背景 项目中Tabs的使用可以说是特别的频繁,但是官方提供的Tabs使用起来,存在tab选项卡切换动画滞后的问题。 原始动画无法满足产品的UI需求,因此,这篇文章将实现下面页面滑动,tab选项卡实时滑动的动画效果。 实现逻…...
算法 并查集
目录 前言 一 并查集的思路 二 并查集的代码分析 三 实操我们的代码 四 并查集的代码优化 总结 前言 并查集主要是用来求解集合问题的,用来查找集合还有就是合并集合,可以把这个运用到最小生成树里面 一 并查集的思路 1 并查集的相关的操作…...
EP 架构:未来主流方向还是特定场景最优解?
DeepSeek MoE架构采用跨节点专家并行(EP)架构,在提升推理系统性能方面展现出巨大潜力。这一架构在发展进程中也面临诸多挑战,其未来究竟是会成为行业的主流方向,还是仅适用于特定场景,成为特定领域的最优解…...
记忆化搜索与动态规划:原理、实现与比较
记忆化搜索和动态规划是解决优化问题的两种重要方法,尤其在处理具有重叠子问题和最优子结构性质的问题时非常有效。 目录 1. 记忆化搜索(Memoization) 定义: 实现步骤: 示例代码(斐波那契数列࿰…...
LLMR//https://github.com/microsoft/llmr?locale=zh-cn
https://github.com/microsoft/llmr?localezh-cn Introduction 这个 repo 包含 LLMR 中描述的代码,实现了混合现实框架的大型语言模型。 此软件包是“用语言创造世界”的原型,它允许通过自然语言实时创建具有视觉、行为和交互元素的对象、工具和场景…...
Free Auto Clicker - 在任意位置自动重复鼠标点击
“想让鼠标自己动起来,解放双手去做更有趣的事?”Free Auto Clicker 就像你的数字小助手,能在任意位置自动重复点击鼠标。从玩游戏到刷网页,这款免费工具让你告别枯燥的重复操作,效率瞬间起飞! 你有没有想…...
高考數學。。。
2024上 具体来说,直线的参数方程可以写为: x1t y−t z1t 二、简答题(本大题共5小题,每小题7分,共35分。) 12.数学学习评价不仅要关注结果评价,也要关注过程评价。简要说明过程评价应关注哪几个方面。…...
MWC 2025|紫光展锐联手美格智能发布5G通信模组SRM812
在2025年世界移动通信大会(MWC 2025)期间,紫光展锐携手美格智能正式推出了基于紫光展锐V620平台的第二代5G Sub6G R16模组SRM812,以超高性价比方案,全面赋能合作伙伴,加速5G规模化应用在各垂直领域的全面落…...
5分钟快速搭建一个 SpringBoot3 + MyBatis-Plus 工程项目
环境 idea 2023.3.5 jdk 17 mysql 8 创建SpringBoot工程 创建SpringBoot工程,这里有两种方式可选,一种是使用idea提供的Spring Initializr自动创建,一种是通过Maven Archetype手动创建 自动创建SpringBoot工程 使用Spring Initializr创建…...
深度学习-大白话解释循环神经网络RNN
目录 一、RNN的思想 二、RNN的基本结构 网络架构 关键点 三、RNN的前向传播 四、RNN的挑战:梯度爆炸和梯度消失 问题分析 示例推导 五、LSTM:RNN的改进 核心组件 网络架构 3. LSTM 的工作流程 4. 数学公式总结 5. LSTM 的优缺点 优点 缺点 6. LSTM 的…...