数据链路层 数据链路层协议 ——— 以太网协议 | CSDN 「网络编程」数据链路层协议_ 以太网协议学习 | CSDN 1. 对比理解 MAC 地址和 IP 地址 1. 通俗类比:寄快递的两步走 假设你要从北京家里寄一个文件到上海朋友家,整个过程对应两层的分工: 层级 类比角色 负责的环节 数据链路层 你家楼下的快递员 只负责 “本地最后一公里”:从你手里接过文件(数据),封装成 “本地快递袋”(帧),送到小区门口的 “物流站点”(路由器);不关心文件最终去哪,只认 “你家的门牌号”(MAC 地址)。 网络层 全国物流调度中心 负责 “跨区域全局路由”:从物流站点接过快递袋,拆开看 “目的地地址”(IP 地址),规划从北京到上海的路线(比如北京 → 济南 → 南京 → 上海),把快递转到下一个站点,直到送到上海的物流站点;不关心 “最后一公里怎么送”,只管 “跨区域怎么到目标城市”。 简言之: 数据链路层:管 “邻居间” 的本地传输(比如你家电脑 ↔ 路由器、路由器 ↔ 隔壁路由器)。 网络层:管 “跨网络” 的全局路由(比如北京内网 ↔ 上海内网、家里 ...
Linux
未读网络层 —— IP 协议 网络层协议 ——— IP 协议 | CSDN 网络层 IP 协议 | CSDN 为什么大家的 IP 都是 192.168 开头的?| B 站(荐) 【硬核科普】IP 地址是什么东西?IPV6 和 IPV4 有什么区别?公网 IP 和私有 IP 又是什么?| B 站(荐) 1. IP 地址的本质:网络号 + 主机号 IP 地址由两部分组成: 部分 作用 举例 网络号 (Network ID) 表示属于哪个子网 192.168.10.0 主机号 (Host ID) 表示子网内的哪台主机 192.168.10.15 规律: 同一子网内:网络号相同,主机号不同。 不同子网:网络号不同,主机号可以重复。 举例: 子网 A:192.168.1.0/24 子网 B:192.168.2.0/24 两个子网的主机号范围都可是 1–254,不冲突,因为网络号不同。 2. IP 地址划分基础 1. 划分目的 根本目的就是为了高效管理、节省地址、提升安全和性能。 最初,互联网只分为 A、B、C 类地址(分类地址),但从 1993 年起,RFC ...
Linux
未读传输层 —— TCP(下) 30 张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 | 博客园 1. TCP 流量控制 1. 什么是流量控制? 先想一个比喻:你在和朋友聊天,对方打字太快,你还没看完一句他又发十条,你就“被淹没”了。TCP 里也一样,发送方(Sender)发数据太快,而接收方(Receiver)处理不过来,就会导致: 接收缓冲区溢出(数据丢失) 重传、拥塞、效率下降 所以 TCP 设计了 流量控制机制(Flow Control),让接收方告诉发送方:“我现在只能接收这么多数据,请你慢一点。”它是一种防止发送方发送数据过快,导致接收方来不及处理而造成数据丢失的机制,其核心目标是 匹配发送速率与接收能力。 2. 实现方式:接收窗口 TCP 报文头部包含一个 16 位的窗口字段(Window Size),表示接收方当前还能接收多少字节的数据(即接收缓冲区剩余空间)。发送方根据这个窗口大小决定最多能发送多少未确认的数据。如果接收方缓冲区快满了,它会通告一个较小的窗口;如果缓冲区空了,就通告一个较大的窗口(甚至为 0)。 高性能 TCP 扩展 注意:窗口大小字段最 ...
从 Centos 切换到 Ubuntu 1. 前言 Centos 是一个不错的发行版,但是它的各个版本都已经停止维护了。CentOS 7 于 2024 年 6 月 30 日正式停止支持,CentOS 8 更是早在 2021 年 12 月 31 日就停止维护了。而且后续学习中不支持部分软件版本,从长远使用、学习、生态等多方面考虑,将其切换到 Ubuntu 是不错之举。 其实从一开始就直接接触 Ubuntu 也是不错的选择,但这些都是后话了,各有优劣吧。从 Centos 切换到 Ubuntu 的朋友可以体验到不同系统的优劣,直接使用 Ubuntu 倒是可以省去一些小麻烦,但归根结底,二者基本可以做到无缝互通,命令大差不差,遇到不一样的简单查一下就行了。下面开始教学如何从 Centos 切换到 Ubuntu,基本上比较简单,少部分涉及 Centos 的一点基础。 2. 系统切换 到自己的云服务器厂商后台找到切换镜像,选择 Ubuntu 22.04 版本进行安装,几分钟后就会完成,注意完成后要重新设置密码! 重要提醒:切换系统前一定要备份好重要数据,系统切换会清空所有数据! 3. 使用 Xsh ...
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. ...
在 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-ser ...
临时邮箱汇总 在网络世界中,邮箱验证是注册账户的常见方式。然而,在一些小众或安全性未知的网站注册时,邮箱泄露可能会导致无休止的垃圾邮件轰炸。特别是当我们需要临时使用邮箱或批量注册账号时,临时邮箱就成为了理想选择。本文将深入探讨临时邮箱的优势,并汇总 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),但面对现代应用的需求,文件方式存在明显缺陷: 安全性差: 无完善的用户权限控制,数据容易被篡改或泄露。 查询效率低: 每次查找都要遍历整个文件,数据量大时极慢。数据库则能用索引和优化算法做到毫秒级的查询。 管理困难: 缺乏统一结构,难以维护数据一致性、完整性。文件本质是“死”的存储,而数据库提供“关系模型”,能管理表与表之间的联系。比如订单和用户数据能通过 ...
Linux
未读传输层 —— UDP 1. 再谈端口号 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 动态/私有端口 操作系统自动分配给客户端程序的临时端口 注:不同系统对“动态端口”的起始值可能不同( ...











