bc's club

bc's club

计算机网络:自顶向下方法 - Day 5 | Socket 编程基础与邮件协议
发表于2026-06-15|计算机网络
📖 Day 5 / 15 · 《计算机网络:自顶向下方法》阅读笔记 每天 30 分钟,15 天读懂计算机网络。今天我们搞清楚两件事:Socket 编程到底是怎么回事,以及 电子邮件三协议 SMTP/POP3/IMAP 怎么协作。 「如果说 HTTP 是点外卖,那 Socket 就是你亲自下厨——从备菜到上桌,每一步都在你手里。」 前面四天我们聊了应用层的那帮”明星协议”——HTTP、DNS、CDN 等等。它们就像高级餐厅的菜单,你只管点菜,后厨怎么操作你不用操心。 但今天,我们要钻进后厨。 Socket 编程是网络编程的基本功,理解了它,你就理解了所有网络应用的本质。然后我们再聊聊邮件协议三兄弟——SMTP、POP3、IMAP,看看你的电子邮件是怎么在网络中飞来飞去的。 一、Socket 是什么?——给你装个”门”#1.1 生活类比:Socket 就是你的”收发室”#想象你住在一栋大楼里: 大楼地址 = IP 地址 房间号 = 端口号(Port) 收发室 = Socket 大楼门口有个收发室,所有信件包裹都从这里进出。你作为住户,只需要在收发室开一个”窗口”,...
计算机网络:自顶向下方法 - Day 4 | DNS 域名系统详解与 P2P 应用
发表于2026-06-15|计算机网络
📖 Day 4 / 15 · 《计算机网络:自顶向下方法》阅读笔记 每天 30 分钟,15 天读懂计算机网络。今天我们搞清楚两件事:DNS 是怎么把域名变成 IP 的,以及 P2P 怎么让人人成为服务器。 一、DNS:互联网的电话簿#1.1 没有 DNS 的世界#先想象一个恐怖的场景:你打开浏览器,想刷个 B 站,但地址栏不能输入 bilibili.com,你得输入 120.240.95.33。想上百度?记一下 110.242.68.66。想看你的博客?那是 your-ecs-ip…… 你可能会说:”没事,我把 IP 存收藏夹就行了。” 但问题在于,IP 地址是会变的。服务器迁移、负载均衡、运营商调整——今天能用的 IP,明天可能就失效了。 这就是为什么我们需要 DNS(Domain Name System,域名系统)。 🎯 一句话理解 DNS DNS 是一个分布式的、层次化的域名解析系统,它的工作就是把人类记得住的名字(bc970321.cn)翻译成机器认得出的地址(47.xxx.xxx.xx)。 生活类比:DNS 就是互联网的通讯录。你只需要记住联系人的名字(域...
计算机网络:自顶向下方法 - Day 3 | 应用层与 HTTP 协议详解
发表于2026-06-15|计算机网络
📖 Day 3 / 15 · 《计算机网络:自顶向下方法》阅读笔记 每天 30 分钟,15 天读懂计算机网络。今天我们正式进入协议栈的顶层——应用层,并深入拆解你最熟悉的 HTTP 协议。 一、应用层:协议栈的”顶楼”#还记得 Day 1 我们说的分层模型吗?协议栈从上到下分为五层:应用层 → 传输层 → 网络层 → 链路层 → 物理层。 今天我们从最顶层——应用层(Application Layer)——开始。 为什么从顶层开始?因为这是离你最近的一层。你每天刷的网页、发的微信、看的视频,全都在这一层运行。《自顶向下方法》这本书的精髓就在这里:从你最熟悉的地方开始,一层层往下拆。 🏢 生活类比:写字楼 把协议栈想象成一栋五层的写字楼: 5楼(应用层):前台大厅,客户直接打交道的地方 4楼(传输层):收发室,负责确保包裹准确送达 3楼(网络层):物流调度中心,规划运输路线 2楼(链路层):货车调度站,负责相邻站点间的运输 1楼(物理层):公路本身, trucks 和柏油路 你作为普通用户,永远只在 5 楼活动。但 5 楼能正常工作,离不开楼下所有人的配合。 ...
计算机网络:自顶向下方法 - Day 2 | 网络核心与分层模型
发表于2026-06-15|计算机网络
📖 Day 2 / 15 · 《计算机网络:自顶向下方法》阅读笔记 昨天 Day 1 我们搞清楚了”互联网是什么”——终端设备、通信链路、分组交换。今天,我们要钻进互联网的心脏:网络核心,然后搞懂计算机网络最重要的一张图——分层模型。 一、网络核心:互联网的心脏#1.1 什么是网络核心?#如果网络边缘是”用户的地盘”,那网络核心就是”快递公司的转运中心”。 你在家用手机打开 bicheng 的博客,一个 HTTP 请求从你的手机发出,到达阿里云 ECS,再被 frp 转发到 Mac mini 上的 nginx。这中间——从你的运营商到阿里云机房之间——数据穿越的那个由无数路由器交织而成的网状结构,就是网络核心(Network Core)。 12345678你的手机(边缘) 阿里云 ECS(边缘) ┌─────────────────────────────────┐ │ 网 络 核 心(一堆路由器) │ │ ●─────●─────●─────●─────● │ │ │ │ ...
计算机网络:自顶向下方法 - Day 1 | 什么是互联网
发表于2026-06-15|计算机网络
📖 Day 1 / 15 · 《计算机网络:自顶向下方法》阅读笔记 每天 30 分钟,15 天读懂计算机网络。今天是第一天,我们从最基本的问题开始:什么是互联网? 一、什么是互联网?#如果让你用一句话解释互联网,你会怎么说? “就是一个全球互联的网络”——这话没错,但太笼统了。让我们从两个角度来理解互联网:具体构成和服务能力。 1.1 互联网的具体构成#互联网本质上是一个连接了全球数十亿设备的基础设施。这些设备包括: 终端设备(End Systems / Hosts):你的手机、电脑、智能电视、服务器,甚至你家的路由器 通信链路(Communication Links):光纤、同轴电缆、无线电波——它们负责传输数据 分组交换设备(Packet Switches):路由器(Router)和交换机(Switch)——它们负责转发数据 💡 关键概念:分组(Packet) 当你发送一个大的文件(比如一张照片)时,它不会被完整地一次性发送出去。而是被切分成一个个小的数据包(分组),每个分组独立地在网络中传输,到达目的地后再重新组装。 这就像你寄一整套家具,不是用一辆大卡...
Hello World
发表于2023-05-07
Quick Start Create a new post Run server Generate static files Deploy to remote sites Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick Start#Create a new post#1$ hexo new "My New Post" More info: Writing Run server#1$ hexo server More info: Server Generate static files#1$ hexo generate More info: Generating Deploy to r...
Golang
发表于2023-05-05
一、并发 1 GMP模型——goroutine调度 1.1 GMP优点 1.2 GMP含义 1.3 M必须拥有P,才能执行G中的代码,P负责G的调度。 1.4 如何新增G 1.5 M如何从P中获取G 1.6 当M1在执行G1的时候被阻塞了,如何继续执行 1.7 G的生命周期 1.8 GM和GMP的区别 1.9 M和P的数量 2 Golang协程切换时机 3 如何在Golang中对性能优化 4 Golang中线程同步的方法 二、内存 1 GC垃圾回收:三色标记法和混合写屏障 1.1 三色标记法 1.2 混合写屏障 1.3 GC触发时机 golang内存模型 三、数据结构和关键字 1 mutex 2 channel channel的底层实现 如果往一个关闭的channel读、写会怎么样 使用channel的注意事项 对map的理解,map有哪些注意事项 对slice的理解 slice和数组的区别 slice扩容规则是什么 context 1 context的作用 2 context树的结构 3 取消操作 4 context树的构建 new和mak...
MySQL
发表于2023-05-05
一、索引 1 B树和B+树 B树(B-树)特点 B+树和B树的区别 2 各种类型的索引 2.1 聚簇索引和非聚簇索引 2.2 主键索引和二级索引 2.3 覆盖索引和联合索引 3 联合索引的最左前缀匹配原则和失效条件 4 使用索引的规范 MySQL索引规范 什么情况不建议使用索引 二、特性 InnoDB MVCC undo log redo log 两阶段提交协议 三、架构、引擎 1 基础架构 MySQL如何执行一条SQL 2 存储引擎 2.1 MyISAM和InnoDB的区别 四、基本原理 事物的特性(ACID) 脏读、幻读、不可重复读 事物隔离级别 五、锁 六、使用 SQL执行的慢的原因和解决方法 该SQL偶尔执行慢 该SQL一直执行慢 一、索引#1 B树和B+树#B树(B-树)特点#B树和B+树是平衡多路查找树(b是balance(平衡)) 每个根结点有多个叶子节点 高度平衡,每个根节点高度一致 高度小,查找速度较快 所有节点遵循左小右大 B+树和B树的区别# 所有结果只存储在叶子节点,所有根节点不存储数据。 每...
计算机网络
发表于2023-05-05
一、传输层 TCP 1 TCP三次握手 2 TCP四次挥手 3 TCP如何保证传输的可靠性 4 TCP如何实现流量控制 5 TCP 的拥塞控制是怎么实现的 6 TCP包乱序、丢包怎么办 7 粘包和拆包 UDP 1 TCP和UDP的区别 二、应用层 HTTP 1 post和get区别 2 http和https 3 HTTP 各个版本的区别 DNS 三、其他 1 浏览器从输入网址URL到页面展示的过程 2 URL和URI的区别 3 短连接和长连接的区别 4 七层模型 5 time wait过多怎么办 一、传输层#TCP#1 TCP三次握手# 第一次握手:客户端发送带有SYN的数据到服务端,客户端进入SYN_SEND状态。如果成功的话,此时服务端确认客户端发送正常,自己接收正常。 第二次握手:服务端发送带有SYN和ACK的数据到客户端,服务端进入SYN_RECV状态。如果成功的话,此时客户端确认自己发送接收正常,服务端发送接收正常。 第三次握手:客户端发送带有ACK的数据到服务端,客户端和服务端都进入ESTABLISHED状态。如果成功的话,...
Redis
发表于2023-05-05
一、基础 1 什么是Redis 2 Redis为什么这么快 3 为什么要用Redis 3.1 redis适合的场景 3.2 redis常见的功能 二、内存 1 设置过期时间 2 Redis如何判断数据是否过期 3 过期数据的删除策略 4 内存淘汰机制 5 内存碎片 三、性能优化 1 性能瓶颈 2 内存优化 2.1 如何解决大Key的问题 2.2 设置ziplist和hashtable 3 网络优化 3.1 网络优化方法 四、线程模型 1 单线程模型 2 新版本多线程 五、高并发 1 高并发场景下使用缓存需要注意哪些问题 2 高并发下使用规范 2.1 键值设计 2.2 命令使用 2.3 使用规范 六、持久化 1 RDB 1.1 什么是RDB 1.2 RDB 创建快照时会阻塞主线程吗? 2 AOF 2.1 什么是AOF 2.2 AOF是如何实现的 2.3 AOF重写 3 如何选择RDB和AOF 3.1 RDB优点 3.2 AOF优点 4 混合持久化 七、集群/哨兵/主从 八、应用 1 分布式锁 2 购物车 3 排行榜 4 ...
123
avatar
bicheng
文章
26
标签
3
分类
1
Follow Me
公告
This is my Blog
最新文章
计算机网络:自顶向下方法 - Day 15 | 全书总结与面试题精选(收官篇)2026-06-15
计算机网络:自顶向下方法 - Day 14 | 网络安全2026-06-15
计算机网络:自顶向下方法 - Day 13 | 多媒体网络、流媒体、CDN 与 QoS2026-06-15
计算机网络:自顶向下方法 - Day 12 | 无线网络与移动网络2026-06-15
计算机网络:自顶向下方法 - Day 11 | 链路层与以太网2026-06-15
分类
  • 计算机网络15
标签
计算机网络 自顶向下方法 读书笔记
归档
  • 六月 2026 15
  • 五月 2023 6
  • 四月 2023 1
  • 三月 2023 2
  • 三月 2022 1
  • 二月 2022 1
网站信息
文章数目 :
26
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By bicheng框架 Hexo 5.4.0|主题 Butterfly 5.7.0