计算机体系

计算机网络、数据结构与基础知识。

专题分组

下级分类

3 个下级
计算机网络
5 分钟

BBR 算法介绍与开启

这篇笔记围绕在 Ubuntu 22/Linux 上启用 BBR 拥塞控制展开,先交代默认网络栈通常使用 CUBIC 作为 TCP 拥塞控制算法、pfifo_fast 作为队列调度器,再说明 BBR 是 Google 提出的基于瓶颈带宽和最小 RTT 建模的算法。它的核心差异在于不等到丢包或队列明显膨胀后才降速,而是通过 Startup、Drain、ProbeBW、ProbeRTT 四个阶段持续探测可用带宽、排空队列并重测最低时延。文章对比了 BBR 与 CUBIC/Reno 在拥塞判断、Bufferbloat、吞吐收敛、高负载时延抖动和多流共存上的表现,强调优势主要出现在长 RTT、高带宽或链路满载场景。它也提醒单独用空闲 ping 测 RTT 往往看不出差别,因为此时队列未被填满,真正的对比应结合 iperf3 大流量或 ping 搭配满载传输观察吞吐和延迟峰值。操作部分给出启用前提是 Linux 内核不低于 4.9,并通过写入 /etc/sysctl.d/99-bbr.conf 将 default_qdisc 改为 fq、tcp_congestion_control 改为 bbr。最后使用 sysctl、sysctl --system 和 lsmod 验证配置与模块状态,适合希望改善服务器跨地域传输、长距离链路吞吐和满载延迟表现的 Linux 运维或后端开发者参考。

计算机网络
5 分钟

双ISP-介绍

双 ISP 指同一台服务器、网卡或网络环境同时接入两个不同互联网服务提供商的线路,例如电信 CN2 与移动 CMI,从而获得两个可用的上网出口。文章先解释 ISP 的含义,并用中国电信、中国移动、中国联通、教育网以及 Comcast、NTT、PCCW、Cogent 等例子说明运营商范围,再引出双线接入在家庭、工作环境和服务器场景中的应用。正文重点梳理了双 ISP 的价值:一条线路故障时可由另一条接管,流量可以按延迟、速度、用户运营商或目标地址进行分配,也可在代理、回国加速、流媒体解锁等场景中做分流和路由优化。它还区分了主备模式、双活负载均衡、智能策略分流、基于策略路由的出口选择,以及企业场景下通过 BGP 多线接入实现更优路由的形态。规划这类网络时,需要同时关注家宽与商宽、静态与动态公网 IP、运营商 AS Number 和 IP 信息查询等基础条件,因为这些因素会影响可用性、成本和路由策略设计。整体适合正在理解多线接入、双出口路由、家庭网络升级或服务器网络优化的读者,用来建立双 ISP 的概念框架和常见部署模式认知。

计算机网络
1 分钟

关于“计算机网络”类别

“计算机网络”类别应被理解为站点中用于归档网络相关内容的分类说明页,重点在于界定分类用途,而不是展开某一项具体网络技术。它适合承载围绕网络概念、协议机制、连接与通信问题、网络工具使用、配置实践或排查记录等内容的文章,使读者能够在检索时快速判断这些笔记是否属于网络主题。该类别的边界需要通过与站点中其他既有类别进行区分来维持一致性,尤其是在内容同时涉及操作系统、后端开发、运维部署或安全主题时,应依据文章的核心问题是否落在网络通信层面来判断归属。分类说明还强调需要明确该类别通常包含哪些话题,以减少作者发布时的选择成本,并避免相近类别之间出现重复收纳。对于站点维护者而言,它的价值在于提供一套可执行的归档准则:说明为什么保留这一类别、何时使用它,以及在分类重叠时是否应考虑与其他类别或子类别合并。整体上,这类页面更像是知识库的信息架构规则,适合用于统一内容组织、提升搜索结果一致性,并帮助读者按主题发现计算机网络相关笔记。

计算机知识
6 分钟

什么是Rosetta

这篇笔记围绕 Apple Silicon 上的 Rosetta 2 展开,说明它本质上是 Apple 提供的 Intel x86_64 到 ARM 的动态二进制翻译机制,用来让 M1/M2/M3 设备运行只提供 Intel 架构的应用、解释器或动态库。正文把“Rosetta 终端”和“x86 程序运行”拆开说明:右键 Terminal 或 iTerm 勾选“使用 Rosetta 打开”会让该终端下的进程偏向 x86_64 模式,但启动 x86 可执行程序时 Rosetta 也可以被系统自动触发。文章重点澄清了几个常见误判,uname -m 只能反映当前终端架构,而 platform.machine() 更接近当前 Python 解释器进程的架构;因此 ARM 终端中运行 x86 Conda/Python 并不矛盾。对于 rocketmq-client-cpp、librocketmq.dylib 等依赖 x86 动态库的场景,关键不是终端显示什么架构,而是解释器、动态库和相关依赖是否同为 x86_64,否则就会出现架构不一致问题。笔记还提醒 Homebrew 的安装来源会受运行模式影响,在 Rosetta 终端中执行 brew install 可能安装 x86_64 构建的包,后续与 arm64 环境混用时需要特别留意。整体适合在 Apple Silicon 上维护 Python、Conda、brew 依赖或排查旧版二进制兼容问题的开发者,用来判断什么时候必须开启 Rosetta 终端、什么时候只需保证进程与动态库架构一致。

计算机知识
30 分钟

邮件协议、签名与推送

围绕邮件客户端“整合邮箱”时到底发生了什么,内容先把 SMTP、POP3、IMAP、Webmail、MTA/MDA 的职责拆开:SMTP 负责发信和服务器中继,POP3/IMAP 负责取信与同步,浏览器里的 HTTPS 只是访问 Gmail、Outlook 等 Web UI 的界面层协议。笔记进一步说明 Spark、Apple Mail、Gmail App 等并不是被邮箱服务器直接“推送”邮件,而是依赖定时轮询、IMAP IDLE 长连接,或在移动端通过 APNs、FCM 等通知系统实现近实时提醒。发信可信度部分强调,邮件由谁配置的 SMTP 发出,DKIM、SPF、DMARC 和发信 IP 信誉就主要归谁控制;使用 Gmail SMTP 时,签名和背书来自 Gmail,自建或小服务商 SMTP 则更依赖 SPF、DKIM、PTR、Return-Path 等配置质量。文章还区分了客户端壳子与真正发信服务器的关系,说明 iCloud、Spark、Apple Mail、QQ/网易等整合外部邮箱时,本质都是调用 IMAP/SMTP,只是授权方式、专用密码和风控流程不同。隐私部分重点比较 Apple Mail 本地直连邮箱服务器、只借助 APNs 做状态通知的模式,与 Spark、Edison、Outlook 移动端等可能通过自家云端代收、缓存、分析邮件并转发推送的模式。适合想判断邮件送达率、签名归属、移动端推送延迟以及第三方邮件 App 隐私风险的开发者、运维人员和重度邮箱用户阅读。

计算机知识
1 分钟

关于“计算机知识”类别

“计算机知识”类别适合用于归档具有稳定主题边界的计算机相关内容,重点在于帮助读者按知识领域筛选文章,而不是简单提供一个宽泛标签。该类别的使用需要先说明设立理由:它服务于哪些问题、知识点或学习场景,以及这些内容为什么不宜散落在其他分类中。归类时应明确它与现有类别的差异,例如是否覆盖基础概念、系统原理、网络、硬件、软件使用或通用技术认知等范围,并避免与更具体的开发、运维、工具类栏目重复。类别说明还应给出纳入准则,帮助后续文章判断是否符合共同特征。对于维护者来说,这一类别的价值在于建立可持续的内容组织规则,同时也要定期评估其必要性:若内容过少、边界模糊或与其他分类高度重叠,就应考虑合并为子类别或调整定位。