Linux
未读传输层 —— TCP(下) 30 张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 | 博客园 1. TCP 流量控制1. 什么是流量控制?先想一个比喻:你在和朋友聊天,对方打字太快,你还没看完一句他又发十条,你就“被淹没”了。TCP 里也一样,发送方(Sender)发数据太快,而接收方(Receiver)处理不过来,就会导致: 接收缓冲区溢出(数据丢失) 重传、拥塞、效率下降 所以 TCP 设计了 流量控制机制(Flow Control),让接收方告诉发送方:“我现在只能接收这么多数据,请你慢一点。”它是一种防止发送方发送数据过快,导致接收方来不及处理而造成数据丢失的机制,其核心目标是 匹配发送速率与接收能力。 2. 实现方式:接收窗口TCP 报文头部包含一个 16 位的窗口字段(Window Size),表示接收方当前还能接收多少字节的数据(即接收缓冲区剩余空间)。发送方根据这个窗口大小决定最多能发送多少未确认的数据。如果接收方缓冲区快满了,它会通告一个较小的窗口;如果缓冲区空了,就通告一个较大的窗口(甚至为 0)。 高性能 TCP 扩展 注意:窗口大小字段最大为 6 ...
从 Centos 切换到 Ubuntu1. 前言Centos 是一个不错的发行版,但是它的各个版本都已经停止维护了。CentOS 7 于 2024 年 6 月 30 日正式停止支持,CentOS 8 更是早在 2021 年 12 月 31 日就停止维护了。而且后续学习中不支持部分软件版本,从长远使用、学习、生态等多方面考虑,将其切换到 Ubuntu 是不错之举。 其实从一开始就直接接触 Ubuntu 也是不错的选择,但这些都是后话了,各有优劣吧。从 Centos 切换到 Ubuntu 的朋友可以体验到不同系统的优劣,直接使用 Ubuntu 倒是可以省去一些小麻烦,但归根结底,二者基本可以做到无缝互通,命令大差不差,遇到不一样的简单查一下就行了。下面开始教学如何从 Centos 切换到 Ubuntu,基本上比较简单,少部分涉及 Centos 的一点基础。 2. 系统切换到自己的云服务器厂商后台找到切换镜像,选择 Ubuntu 22.04 版本进行安装,几分钟后就会完成,注意完成后要重新设置密码! 重要提醒:切换系统前一定要备份好重要数据,系统切换会清空所有数据! 3. 使用 Xshell ...
在 Ubuntu 中安装 Redis 在安装之前需要切换至 root 账户! 1. 查找可用版本12345apt search redis# 往下翻(可能较长),大概会存在下面的字样:redis/jammy 5:6.0.16-1ubuntu1 all Persistent key-value database with network interface (metapackage) 2. 安装12345apt install redis # 看到:Do you want to continue? [Y/n] # 选择 y 3. 验证版本1redis-server --version 4. 修改配置文件123cd /etc/redisllvim redis.conf 做以下修改: bind 127.0.0.1 ::1 改成 bind 0.0.0.0 ::1。 protected-mode yes 改成 protected-mode no。 重新启动服务器生效并检查: 1234service redis-server restartservice redis-serv ...
CentOS 7 安装 Redis 5 碰壁记录:从 yum 源配置到软件安装的踩坑之旅1. 前言我尝试在 CentOS 7 服务器上尝试安装 Redis 5,原本以为是个简单的 yum install redis 就能搞定的事情,结果却遇到了一系列问题。原本用下面的步骤就能完成,但是很不巧,这个迭代和维护等种种原因很不巧的出现在一起……所以这下面的 6 条命令仅适合有缘人。 1234567891011121314151617181920# 1. 先把原有的 repo 文件备份,避免冲突或损坏sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak# 2. 使用阿里云的 CentOS7 源替换官方源# - 这里直接下载阿里云维护的 CentOS-7.repo 文件到 /etc/yum.repos.d/ 目录sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.re ...
临时邮箱汇总在网络世界中,邮箱验证是注册账户的常见方式。然而,在一些小众或安全性未知的网站注册时,邮箱泄露可能会导致无休止的垃圾邮件轰炸。特别是当我们需要临时使用邮箱或批量注册账号时,临时邮箱就成为了理想选择。本文将深入探讨临时邮箱的优势,并汇总 2025 年国内外最佳临时邮箱服务,助你轻松应对各种注册需求。 什么是临时邮箱?临时邮箱,顾名思义,是一种具有时间限制的邮箱。它与我们常用的永久邮箱不同,后者除非用户主动注销,否则会一直存在。临时邮箱则是一次性的,使用完毕即可丢弃。尽管寿命有限,临时邮箱的功能与普通邮箱无异,支持接收邮件、用于注册登录等操作。 临时邮箱的优势相比永久邮箱,临时邮箱在保护隐私、规避垃圾邮件等方面具有显著优势: 🛡️ 抵御垃圾邮件: 避免大量无关邮件占用主邮箱空间,确保重要邮件不被遗漏。 🔒 防范恶意软件: 大多数临时邮箱都会丢弃附件,降低病毒、木马等恶意软件的风险。 👤 保护匿名性: 无需注册,不收集个人信息,有效避免个人信息泄露。 ♾️ 邮箱数量无限制: 突破永久邮箱的注册限制,可用于注册多个账号,满足跨境营销等需求。 何时使用临时邮箱?在某些场景 ...
Linux
未读传输层 —— TCP(上) 你管这破玩意叫 TCP?| B 站(荐) 传输层协议 ——— TCP 协议 | CSDN Linux:TCP 保证可靠性的方案(1)| CSDN 1. 传输控制协议1. TCP 的本质:传输控制协议 —— “控制”二字是灵魂 TCP 全称 Transmission Control Protocol(传输控制协议) —— 人如其名,它的核心职责不是“传输数据”,而是 对数据的传输过程进行精细、动态、可靠的控制。 我们平时调用的 write、send、read、recv 等函数,要么将用户缓冲区的内容拷贝到发送缓冲区,要么将接受缓冲区的内容拷贝到用户缓冲区进行处理,本质上都是 缓冲区拷贝函数: send/write → 将用户缓冲区数据拷贝到内核的 TCP 发送缓冲区。 recv/read → 将内核的 TCP 接收缓冲区 数据拷贝到用户缓冲区。 通过 TCP 协议控制网络传输,将可靠性数据从一台主机的发送缓冲区安全地交付到另一台主机的接收缓冲区,要求数据原封不动的发送过去,所谓发送,本质上是一种也是一种跨网络的拷贝!其本质就是不断把数据放到网络中。而数 ...
数据库基础 MySQL 数据库基础 | CSDN 1. 什么是数据库?数据库这个词,其实可以拆开来看:数据 + 库。库的意思就是“存放的地方”,数据库就是一个专门用来 高效存储、管理和操作数据 的系统。很多初学者会问:既然文件也能存数据,为什么还要数据库?答案就在于“管理和使用的便利性”。 mysql 是数据库服务的客户端。 mysqld 是数据库服务的服务器端。 mysql 本质:基于 C(mysql)S(mysqld)模式的一种网络服务。 数据库本质:对数据内容存储的一套解决方案,我们给出字段或者要求,数据库直接给我们结果就行。 1. 用文件存数据的局限虽然文件也能存储数据(比如.txt、.csv、.cpp),但面对现代应用的需求,文件方式存在明显缺陷: 安全性差: 无完善的用户权限控制,数据容易被篡改或泄露。 查询效率低: 每次查找都要遍历整个文件,数据量大时极慢。数据库则能用索引和优化算法做到毫秒级的查询。 管理困难: 缺乏统一结构,难以维护数据一致性、完整性。文件本质是“死”的存储,而数据库提供“关系模型”,能管理表与表之间的联系。比如订单和用户数据能通过 use ...
Linux
未读传输层 —— UDP1. 再谈端口号1. 端口号与五元组通信模型端口号(Port)标识了一个主机上进行通信的不同的应用程序。 在 TCP/IP 协议中,一个 通信连接 由五元组唯一标识:(源 IP, 源端口, 目的 IP, 目的端口, 协议号)。 为什么需要五元组? 一台主机可以同时与多个远程主机通信。 同一个远程主机可以同时提供多个服务(如 HTTP + SSH)。 同一个服务可以被多个本地进程(客户端)访问。 所以必须用五元组才能 唯一标识一条连接。 查看当前连接: 123netstat -n# 或更现代的:ss -n 2. 端口号范围划分 范围 名称 说明 0 - 1023 知名端口 系统保留,通常需要 root 权限绑定。如 80(HTTP), 443(HTTPS), 22(SSH) 等。 1024 - 49151 注册端口 用户程序或第三方服务可注册使用(如 MySQL 3306, Redis 6379) 49152 - 65535 动态/私有端口 操作系统自动分配给客户端程序的临时端口 注:不同系统对“动态端口”的起始值 ...
评测结果 缩写 含义 Accepted AC 正确 Wrong Answer WA 错误 Time Limit Exceeded TLE 超时 Memory Limit Exceeded MLE 内存超限 Runtime Error RE 段错误(如数组越界、除以零等) Compilation Error CE 编译错误 Output Limit Exceeded OLE 输出数据量超出限制 Unknown Error UKE 未知错误,通常是系统层面的问题。 Partially Correct PC 部分正确 补充说明 耗时和内存使用:通常洛谷会显示程序在每个测试点中的实际运行时间和内存消耗。 部分得分情况:如果题目支持部分得分,可能会显示得分比例(例如 5/10)。 隐藏测试点:某些题目可能存在隐藏的测试点,用于防止作弊或验证程序的鲁棒性。
在 CentOS 7.6 上从零安装并配置 MySQL 详细教程 配置之前,请先使用 root 账号登录!后续命令都是基于 root 权限的! 1. 工程实践中的常态 在公司级、工程级的开发环境里,数据库几乎都是部署在 Linux 上。原因很现实: 稳定性:Linux 的内核和生态对长时间运行的服务(数据库、Web 服务器)更稳。 性能:Linux 的 I/O 调度、文件系统、网络栈优化比 Windows 更适合高并发和大数据量场景。 生态一致性:大部分运维工具、监控方案(Prometheus、Ansible、Docker/K8s)都是围绕 Linux 构建的。 服务器环境:绝大多数云服务(阿里云、华为云、AWS、GCP)默认都跑 Linux,不会给你装 Windows Server 再跑 MySQL。 换句话说,“工程实践里数据库跑在 Linux 上” 已经是行业共识。 2. 那 Windows 下用 MySQL 就“愚蠢”吗? 也不能这么绝对。Windows 下用 MySQL 有几个合理的场景: 个人开发/学习:很多初学者直接用 Window ...











