【计算机网络】Layer4-Transport layer
目录
- 传输层协议
- How demultiplexing works in transport layer(传输层如何进行分用)
- 分用(Demultiplexing)的定义:
- TCP/UDP段格式:
- UDP
- UDP的特点:
- UDP Format
- 端口号
- Trivial File Transfer Protocol (TFTP)
- File Transfer Protocol (FTP)
- FTP Replies
- TCP
- TCP简介:
- TCP的特性:
- 端口号的作用:
- TCP Header Fields(TCP头部字段)
- Connection-Oriented Demultiplexing
- TCP套接字通过**四元组(4-tuple)**唯一标识:
- TCP Connection Establishment & Termination TCP连接的建立与终止
- 连接建立
- 连接终止:
- TCP状态图
- 客户端
- 服务器端
- TCP Timers(TCP定时器)
- TCP定时器的作用:
- Selective Acknowledgement(选择性确认)
- SACK(选择性确认)的用途:
- 实现方式:
- TCP Congestion Control Parameters(TCP拥塞控制参数)
- 主要参数:
- Streaming Multimedia: UDP or TCP?
- UDP 特性:
- TCP 特性:
- HTTP Adaptive Streaming (HAS)
- HAS 的特点:
- 常见变体:
- HAS 的分段传输机制:
传输层协议
传输层协议是端到端的协议。仅在主机上实现。
两种常见的传输层协议:
-
UDP
- 面向数据报(Datagram oriented):基于数据报的传输方式,不建立连接。
- 不可靠,无连接(Unreliable, connectionless):不保证数据的可靠性,也没有连接建立过程。
- 简单(Simple):协议设计较为轻量化,开销小。
- 支持单播和多播(Unicast and multicast):适合多种网络通信场景。
- 常用于网络控制信令服务:
- 如网络管理(SNMP)、路由(RIP)、域名解析(DNS)等。
- 适用于交互式多媒体应用:
- 如视频流、音频流等需要快速传输的场景。
-
TCP
- 面向流(Stream oriented):数据以字节流的形式传输。
- 可靠,面向连接(Reliable, connection-oriented):通过握手机制建立连接,确保数据可靠传输。
- 复杂(Complex):实现了流量控制、拥塞控制等功能。
- 仅支持单播(Unicast only):只支持点对点通信。
- 广泛用于大多数互联网应用:
- 如网页(HTTP)、邮件(SMTP)、文件传输(FTP)、终端(Telnet)等。
- 许多基于HTTP/TCP的应用程序依赖它。
How demultiplexing works in transport layer(传输层如何进行分用)
分用(Demultiplexing)的定义:
分用是传输层的重要功能,用于将接收到的IP数据报分发到正确的应用程序(或套接字)。
具体分用过程:
主机接收到IP数据报,其中包含:
- 源IP地址和目标IP地址(来自网络层)。
- 源端口号和目标端口号(来自传输层)。
每个数据报包含一个传输层段(TCP或UDP段)。
传输层通过IP地址和端口号将数据分配到正确的套接字(socket)。
TCP/UDP段格式:
UDP
UDP的特点:
- 不可靠传输:UDP不会确认数据是否正确到达。
- 功能简单:
- 基本功能是将IP数据报的主机到主机传递扩展为应用程序到应用程序的传递。
- UDP的主要附加功能是多路复用(multiplexing)和分用(demultiplexing)。
- UDP的传输过程:
- 应用程序通过UDP协议向目标发送数据报。
- IP层负责数据报的路由和传递。
- 接收主机的UDP层根据端口号将数据分发到目标应用程序。
UDP Format
端口号
- 动态/私有端口(Dynamic/private ports):
- 范围:49152-65535。
- 供客户端随机选择使用。
- 注册端口(Registered ports):
- 范围:1024-49151。
- 普通用户进程使用。
- 知名端口(Well-known ports):
- 范围:0-1023。
- 保留给系统或服务器使用,例如HTTP(80端口)和DNS(53端口)。
Trivial File Transfer Protocol (TFTP)
-
TFTP会话过程:
- 客户端通过UDP端口69向服务器发送读/写请求(RRQ/WRQ)。
- 如果是读请求,服务器返回一个长度为512字节的数据包,编号为1。
- 客户端发送ACK,确认收到数据块1。
- 服务器发送下一个数据块2。
- 重复以上步骤,直到最后一个数据块的长度小于512字节,传输结束。
-
TFTP数据包结构:
- opcode:操作码(读、写、数据、ACK等)。
- block number:数据块编号。
- data:数据字段,最大长度512字节。
File Transfer Protocol (FTP)
- 连接类型:
- 控制连接:
- 服务器的控制端口为21。
- 用于发送命令和响应。
- 数据连接:
- 服务器的数据端口为20。
- 用于传输文件数据。
- 控制连接:
FTP Replies
Typical FTP replies
● 125 Data connection already open; transfer starting
● 200 Command OK
● 331 Username OK, password required
● 425 Can’t open data connection
● 452 Error writing file
● 500 Syntax error (unrecognized command)
● 501 Syntax error (invalid arguments
TCP
TCP简介:
- TCP是传输层的另一个主要协议,与UDP相比,TCP提供可靠的、面向连接的服务。
常用于需要高可靠性的应用,例如HTTP、FTP、Telnet等。
TCP的特性:
- 可靠性:
提供错误控制、确认机制和数据重传功能。 - 流量控制:
基于接收方缓冲区的反馈,动态调整发送速度。 - 拥塞控制:
根据网络的拥塞状态调整数据传输速率。
端口号的作用:
源端口号和目标端口号用于唯一标识发送方和接收方的套接字。
TCP Header Fields(TCP头部字段)
- 源端口号(Source Port Number):
标识发送方应用程序。 - 目标端口号(Destination Port Number):
标识接收方应用程序。 - 序列号(Sequence Number):
标识数据段在整个传输流中的位置,用于数据重组。 - 确认号(Acknowledgment Number):
用于确认接收到的数据段。 - 窗口大小(Window Size):
表示接收方允许的最大数据量,用于流量控制。 - 校验和(Checksum):
用于检测TCP头部和数据是否有错误。
Connection-Oriented Demultiplexing
TCP套接字通过**四元组(4-tuple)**唯一标识:
- 源IP地址。
- 源端口号。
- 目标IP地址。
- 目标端口号。
TCP Connection Establishment & Termination TCP连接的建立与终止
连接建立
使用三次握手(Three-Way Handshake):
- 客户端发送SYN。
- 服务器返回SYN-ACK。
- 客户端发送ACK,连接建立成功
连接终止:
使用四次挥手(Four-Way Handshake):
- 一方发送FIN,表示完成数据发送。
- 另一方发送ACK确认。
- 第二方发送FIN。
- 第一方发送ACK,连接终止。
TCP状态图
客户端
- CLOSED:初始状态,客户端准备建立连接。
- SYN_SENT:客户端发送SYN,等待服务器响应。
- ESTABLISHED:三次握手完成,连接建立。
- FIN_WAIT_1:客户端发送FIN,启动关闭过程。
- FIN_WAIT_2:客户端等待对方发送FIN。
- TIME_WAIT:客户端发送ACK后进入等待状态,确保数据可靠传输。
服务器端
- CLOSED:服务器未开启。
- LISTEN:服务器等待客户端连接。
- SYN_RCVD:收到客户端SYN,发送SYN-ACK。
- ESTABLISHED:三次握手完成,进入数据传输状态。
- CLOSE_WAIT:收到客户端的FIN,等待应用程序关闭。
- LAST_ACK:发送FIN并等待客户端的ACK。
CLOSED:连接完全关闭。
TCP Timers(TCP定时器)
TCP定时器的作用:
- 连接建立定时器(Connection Establishment Timer):
控制建立连接的最大时间。 - 重传定时器(Retransmission Timer):
如果数据段未被确认,则重传。 - 延迟ACK定时器(Delayed ACK Timer):
在交互式数据流中延迟ACK以提高效率。 - 保持活动定时器(Keepalive Timer):
检查连接是否仍然存活。 - 坚持定时器(Persist Timer):
在接收窗口为零时避免死锁,周期性地探测窗口大小。
使用指数回退算法(Exponential Backoff)。 - TIME_WAIT定时器:
在连接关闭后保持一段时间,防止旧的延迟数据段被误解为新连接的一部分
Selective Acknowledgement(选择性确认)
SACK(选择性确认)的用途:
在TCP中,如果接收方发现多个数据段丢失,可以使用SACK选项通知发送方哪些数据段已成功接收。
SACK允许发送方仅重传丢失的数据段,而不是重传整个窗口的数据,从而提高效率。
实现方式:
TCP的SACK功能通过两个选项实现:
- SACK-Permitted:连接建立时协商是否允许使用SACK。
- SACK Option:在数据传输中实际使用,提供丢失和接收数据段的信息。
TCP Congestion Control Parameters(TCP拥塞控制参数)
主要参数:
- 广告窗口大小(rwnd):
接收方通知发送方的缓冲区可用空间。 - 最大分段大小(MSS):
每个TCP数据段的最大字节数。 - 拥塞窗口(cwnd):
发送方根据网络状况调整的窗口大小。 - 慢启动阈值(ssthresh):
用于分界慢启动和拥塞避免的阈值。
Streaming Multimedia: UDP or TCP?
UDP 特性:
- 发送速率固定,忽略网络拥塞。
- 播放延迟短(2-5秒),以补偿网络延迟抖动。
- 错误恢复能力弱:丢包可能导致数据损失。
- 典型应用:多媒体服务(如交互式应用)。
TCP 特性:
- 不适用于多播,但适用于单播。
- 通过拥塞控制调节速率,但可能导致波动。
- 播放延迟较大,但能提高可靠性。
- 支持穿越防火墙。
- 典型应用:与 HTTP 结合的流媒体服务。
HTTP Adaptive Streaming (HAS)
HAS 的特点:
- 基于 TCP 实现,具备高可靠性。
- 与现有 Web 技术集成:能利用 HTTP,适配现有网络基础设施。
- 自动适应可用带宽。
- 标准化支持(如 MPEG-DASH)。
常见变体:
- Microsoft Silverlight
- Apple HLS
选择比特率:根据当前和先前下载速率动态调整每段视频的比特率。
HAS 的分段传输机制:
- 视频分片:视频文件被划分为2-10秒的视频片段。
- 多码率编码:每个片段被编码为多个可选比特率。
- Manifest 文件:
- 提供可供客户端选择的比特率列表。
- 客户端算法:
- 起始选择较低的比特率。
- 根据传输时间动态调整比特率。
- 尝试维持播放缓冲区的正常水位。
相关文章:
【计算机网络】Layer4-Transport layer
目录 传输层协议How demultiplexing works in transport layer(传输层如何进行分用)分用(Demultiplexing)的定义:TCP/UDP段格式: UDPUDP的特点:UDP Format端口号Trivial File Transfer Protocol…...
【conda/cuda/cudnn/tensorrt】一份简洁的深度学习环境安装清单
🚀本文主要总结一下conda、cuda、cudnn、tensorrt的快速安装。至于nvidia显卡驱动的安装,暂且不提。本文适合有一定反复安装经验的读者😂,方便其快速整理安装思路。 NVIDIA Drivers 🌔01conda ⭐️ 注意,c…...
在C语言中,访问结构体的成员时,什么时候用`.`【符号点】,什么时候用符号`->`?
在C语言中,访问结构体成员时,使用.和->的情况取决于你是否通过结构体指针来访问。 .(点运算符):当你有一个结构体变量时,使用点运算符来访问它的成员。例如: struct Person {char name[50];i…...
Java序列化
Java序列化 简单来说: 序列化是将对象的状态信息转换为可以存储或传输的形式(如字节序列)的过程。在 Java 中,通过序列化可以把一个对象保存到文件、通过网络传输到其他地方或者存储到数据库等。最直接的原因就是某些场景下需要…...
Python 方框消除小游戏
import pygame import random# 初始化pygame pygame.init()# 设置屏幕大小 screen pygame.display.set_mode((800, 600))# 设置标题 pygame.display.set_caption("打砖块")# 定义颜色 WHITE (255, 255, 255) BLACK (0, 0, 0) RED (255, 0, 0) GREEN (0, 255, 0)…...
微软 Phi-4:小型模型的推理能力大突破
在人工智能领域,语言模型的发展日新月异。微软作为行业的重要参与者,一直致力于推动语言模型技术的进步。近日,微软推出了最新的小型语言模型 Phi-4,这款模型以其卓越的复杂推理能力和在数学领域的出色表现,引起了广泛…...
OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用
目录 一,分发器和拦截器 二,分发器处理异步请求 1.分发器处理入口 2.分发器工作流程 3.分发器中的线程池设计 三,分发器处理同步请求 四,拦截器处理请求 1.责任链设计模式 2.拦截器工作原理 3.OkHttp五大拦截器 一&#…...
前后端跨域问题(CROS)
前端 在src中创建util文件,写request.js文件: request.js代码如下: import axios from axios import { ElMessage } from element-plus;const request axios.create({// baseURL: /api, // 注意!! 这里是全局统一加…...
ctfshow xss
1.web316 看的wp 先在服务器上写一个php文件 <?php$cookie $_GET[cookie];$time date(Y-m-d h:i:s, time());$log fopen("cookie.txt", "a");fwrite($log,$time.: . $cookie . "\n");fclose($log); ?> 获取cookie的值ÿ…...
kafka客户端调用
kafka客户端调用 springboot整合kafkajava调用kafka其他问题 springboot整合kafka 手动提交需要在配置文件配置kafka属性 kafka.listener.ack-mode: manual Component public class MyKafkaListener {Autowiredprivate SaslClient saslClient;//监听所有分区KafkaListener(top…...
Linux 中 sftp 命令基本使用
参考链接 sftp 命令_sftp命令-CSDN博客 登录服务器【必须】 # sftp userNamehost # 例如 sftp root8.138.86.224 上传文件到服务器 使用 sftp 命令可以将本地文件上传到远程主机 # put local_file remote_file # 例如: put E://1.mp4 /root/1.mp4 下载文件 使…...
xtu oj 3个矩形与1个正方形
文章目录 回顾前言代码思路 回顾 xtu oj 神经网络xtu oj 1167 逆序数(大数据)xtu oj 原根xtu oj 不定方程的正整数解xtu oj 最多的可变换字符串xtu oj String Ixtu oj 字母序列xtu oj 分段xtu oj 完全平方数IIxtu oj 连接字符串xtu oj 2021xtu oj 数字x…...
C++ 引用
引用(Reference)是C语言中用于给变量起别名的特性,是一种轻量级的变量访问方式。通过引用,可以对原变量进行操作而不需要直接访问原变量的内存地址。这一特性极大地增强了代码的简洁性和安全性,同时也在参数传递和返回…...
解决几个常见的ASP.NET Core Web API 中多线程并发写入数据库失败的问题
前言 在ASP.NET Core Web API应用程序中,当多个并发线程同时调用新增用户数据的接口时,可能会遇到数据库写入失败的问题。这个问题通常源于多个线程同时访问数据库时,可能会导致以下情况: 数据库连接池耗尽:每个线程…...
让知识更具生命力
在当今快速发展的技术世界中,技术文档的重要性不言而喻。它不仅是知识传递的有效载体,也是团队协作的基石,更是提升产品竞争力的重要工具。然而,编写出一份清晰、完整且实用的技术文档,对于许多开发者和团队来说并非易…...
批量DWG文件转dxf(CAD图转dxf)——c#插件实现
此插件可将指定文件夹及子文件夹下的dwg文件批量转为dxf文件。 (使用方法:命令行输入 “netload” 加载插件,然后输入“dwg2dxf”运行,选择文件夹即可。) 生成dxf在此新建的文件夹路径下,包含子文件夹内的…...
《Django 5 By Example》阅读笔记:p561-p613
《Django 5 By Example》学习第 21 天,p561-p613 总结,总计 53 页。 一、技术总结 1.mixins (1)定义(什么是 mixins?) p570,Mixins are a special kind of multiple inheritance for a class. (2)适用场景(为什么使用?) 1)…...
1. 字符串分割
给定一个非空字符串S,其被N个‘-’分隔成N1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多࿰…...
[SAP ABAP] 将内表数据转换为HTML格式
从sflight数据库表中检索航班信息,并将这些信息转换成HTML格式,然后下载或显示在前端 开发步骤 ① 自定义一个数据类型 ty_sflight 来存储航班信息 ② 声明内表和工作区变量,用于存储表头、字段、HTML内容和航班详细信息以及创建字段目录lt…...
计算机网络-应用层
应用层是咱们日常开发中,最常用到的一层 主要涉及到两种情况: 1.使用大佬们已经创建好的应用层协议(后面再讨论,应用层知名的协议有很多,其中的佼佼者就是 HTTP (后面会出单独的文章来讲解))2.自己定义应用…...
SpringEvent 解决 WebUploader 大文件上传解耦问题
一、SpringEvent涉及的相关组件 为了让不熟悉SpringEvent的朋友对Event也有一个大致的印象。这里还是对SpringEvent对象包含的方法和相关组件的应用进行简单的介绍。 1、 事件(Event) 事件是应用程序中发生的某种事情,可以是用户行为、系统…...
KALI安装操作及过程
以下是在计算机上安装 Kali Linux 的详细教程:(通常我直接使用虚拟机) 解压虚拟机安装包,直接在虚拟机中打开KALI (将内存改为4GB) 初始密码账号:kali 一、准备工作 下载 Kali Linux 镜像文件…...
Scala—“==“和“equals“用法(附与Java对比)
Scala 字符串比较—""和"equals"用法 Scala 的 在 Scala 中, 是一个方法调用,实际上等价于调用 equals 方法。不仅适用于字符串,还可以用于任何类型,并且自动处理 null。 Demo: Java 的 在 J…...
[Flutter] : Clipboard
import package:flutter/material.dart; import package:flutter/services.dart; setData Clipboard.setData(ClipboardData(text: "传入的文字内容")); getData Clipboard.getData(Clipboard.kTextPlain) 记录 | Flutter剪切板-刨根问底做一个可以在后台…...
vue2:v-for实现的el-radio-group选中时显示角标,并自定义选中按钮的字体颜色和背景色
项目中需要实现一组预定义查询,每一个查询按钮在选中时右上角显示一个角标,展示当前查询返回的数据条目。 1、text-color="#3785FF" fill="#E6EAF1" 处理选中时的字体颜色和背景色,如上图,分别为蓝色和浅灰色。 2、badge中:value="selectedRadio…...
Dynamics 365 CRM- 后端
Dynamics 365 CRM 后端插件语法示例 public IPluginExecutionContext context null;//上下文 public IOrganizationServiceFactory serviceFactory null;//组织服务工厂对象 public IOrganizationService service null;//Org服务对象//创建执行上下文 context (IPluginExe…...
电脑显示器选购指南2024
选择显示器是五花八门的显示参数,如何选择,以下给出参数说明,及部分参考: 1. 尺寸和分辨率 尺寸(英寸) 根据使用距离和用途选择合适的屏幕尺寸: 21-24 英寸:适合小桌面空间、日常…...
机器学习-多元线性回归
文章目录 代码什么是回归任务什么是多元什么是回归什么是多元线性回归表达式何时使用多元线性回归注意损失函数 代码 https://github.com/FULLK/AI_Study/tree/main/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0-%E5%A4%9A%E5%85%83%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92 什么是回归…...
WEB语义化的新探索:浅析LLMs.txt
【引】有人迷恋使用大模型生成各种有趣的内容, 有人沉醉于大模型相关技术的探索,没有对错,只在于你的乐趣所在。 一项名为 llms.txt 的新提案标志了一些非同寻常的东西的出现: 一个Web网站不仅为人类读者服务,而且为人工智能提供服…...
【经典】制造供应链四类策略(MTS、MTO、ATO、ETO)细说
关注作者 制造供应链的牛鞭问题与复杂问题主要是从两个方面解决,一是同步化供应链消减从需求到供应的放大效应,二是供应链细分,针对不同的客户、不同的需求供应的匹配策略来应对复杂性,更好的满足客户并以最低的总成本来实现。 对…...
RabbitMQ中的Publish-Subscribe模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信和解耦系统的关键组件。RabbitMQ 是一个功能强大且广泛使用的开源消息代理,支持多种消息传递模式。其中,Publish/Subscribe(发布/订阅࿰…...
简单了解一下 Go 语言的构建约束?
构建约束是一种在 Go 语言中控制源文件编译条件的方法,它可以让您指定某些文件只在特定的操作系统、架构、编译器或 Go 版本下编译,而在其他环境中自动忽略。这样可以方便您针对不同的平台或场景编写不同的代码,实现条件编译的功能。 构建…...
图像融合算法笔记2024 CDTNet
目录 ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization 依赖项: trilinear 效果图: 推理代码ok 只支持linux系统: ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization 开源地址: GitHub - bcmi/CDTNet-High-Reso…...
我们来对接蓝凌OA --报文格式
题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额ÿ…...
npm、yarn、pnpm三者的异同
这个表格将会说明一切: 特性npmyarnpnpm依赖管理方式扁平化管理,嵌套依赖树,可能重复安装扁平化管理喝符号链接,同版本只能安装一次基于硬链接喝符号链接的内容寻址存储安装速度最慢中等(并行安装)最快(得益于硬链接的复用)磁盘空…...
纯CSS实现文本或表格特效(连续滚动与首尾相连)
纯CSS实现文本连续向左滚动首尾相连 1.效果图: 2.实现代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…...
信号处理:概念、技术、领域
目录 基本概念 主要技术 应用领域 信号处理是一个涉及分析、修改和再生信号的多学科领域。信号可以是各种形式的,例如声音、图像、视频或其他类型的监测数据。信号处理的主要目标是提取有用的信息并增强信号的质量。以下是信号处理的一些基本概念和应用ÿ…...
Android 中 Activity 和 Fragment 的结合使用经典案例
学习笔记 0. 分析 Activity 与 Fragment 的区别,部分使用的差异 上一篇中我们分析了Activity 与 Fragment 的区别,部分使用的差异。 点我跳转上一篇 1. 单个 Activity 中使用多个 Fragment 这是最常见的用法之一,特别是在单屏幕应用中。通…...
Http协议在网站中的体现
文章目录 1. Http协议简介2. 网站中的体现2.1 访问网站2.2 请求2.3 请求头2.4 请求方式2.5 响应 3. 总结 1. Http协议简介 HTTP(超文本传输协议) 是一种广泛应用于互联网上的应用层协议,用于在Web浏览器和Web服务器之间传输数据。HTTP协议定…...
CTF-WEB: php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]
step 1 搭建容器 教程 A5rZ 题目 github.com Dockerfile 有点问题,手动修复一下 FROM php:7.2-apacheCOPY ./flag /root COPY ./readflag / COPY ./html/ /var/www/html/ COPY ./php.ini /usr/local/etc/php/php.ini COPY ./readflag /readsecretRUN chmod 755 /var/www…...
《计算机视觉:瓶颈之辩与未来之路》
一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…...
黑皮书-计算机科学导论02
目录 第二部分:计算机硬件 第5章计算机组成 5.1中央处理单元 Ⅰ.算数逻辑单元 Ⅱ.控制单元 Ⅲ.寄存器 5.2主存储器 Ⅰ.随机存取存储器(RAM) Ⅱ.只读存储器(ROM) 高速缓冲存储器(Cache) 5.3输入/输出子系统 Ⅰ.非存储设备 Ⅱ.存储设备(辅助存…...
React--》如何高效管理前端环境变量:开发与生产环境配置详解
在前端开发中,如何让项目在不同环境下表现得更为灵活与高效,是每个开发者必须面对的挑战,从开发阶段的调试到生产环境的优化,环境变量配置无疑是其中的关键。 env配置文件:通常用于管理项目的环境变量,环境…...
初始Python篇(6)—— 字符串
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …...
【数字花园】个人知识库网站搭建:⑤本地构建+云服务器部署数字花园plus
目录 写在前面:数字花园的定义[[数字花园]]网站的构建原理包括三个步骤:[[我的数字花园搭建笔记]] 现在的部署流程一、本地操作详细教程-2.前置步骤(前面的文章都提过)-1.创建github中转库0. 本地环境配置基础环境:git…...
力扣题目 - 3264.K 次乘运算后的最终数组I
题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个整数数组 nums ,一个整数 k 和一个整数 multiplier 。2.你需要对 nums 执行 k 次操作,每次操作中:找到 nums 中的 最小 值 x ,如果存在多个最小值,选择最…...
Java常用 Date 时间格式化、Calender日历、正则表达式的用法
目录 1. SimpleDateFormat 日期格式化类 1.1 Date 类型转 String 1.2 String 类型转 Date 2. Calendar 日历类 3. 正则表达式 3.1 正则表达式的组成部分 3.2 手机号正则表达式 3.3 常用密码校验正则表达式 1. SimpleDateFormat 日期格式化类 SimpleDateFormat 是Java中…...
网页爬虫技术全解析:从基础到实战
引言 在当今信息爆炸的时代,互联网上的数据量每天都在以惊人的速度增长。网页爬虫(Web Scraping),作为数据采集的重要手段之一,已经成为数据科学家、研究人员和开发者不可或缺的工具。本文将全面解析网页爬虫技术&…...
细说STM32F407单片机SPI基础知识
目录 一、 SPI接口和通信协议 1、 SPI硬件接口 (1)MOSI(Master Output Slave Input) (2)MISO(Master Input Slave Output) (3)SCK 2、SPI传输协议 (1)CPHA0时的数据传输时序 …...
【OJ题解】面试题三步问题
个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 📘 基础数据结构【C语言】 💻 C语言编程技巧【C】 🚀 进阶C【OJ题解】 📝 题解精讲 目录 **题目链接****解题思路****1. 问题分析****2. 递归思路****3. 优化方案&a…...