feat: comprehensive documentation and demo updates

- Update READMEs and docs across multiple languages
- Enhance interactive demos for Agent, LLM, VLM, Audio, Image Gen, Terminal, and Web Basics
- Add new appendix sections for Database and IDE intros
- Update VitePress config, theme, and utility scripts
- Clean up unused assets and components
This commit is contained in:
sanbuphy
2026-01-16 19:10:21 +08:00
parent c8567ce23f
commit 73f4788d7e
150 changed files with 19530 additions and 13401 deletions
+68 -26
View File
@@ -9,6 +9,7 @@
<NetworkLayers />
**为什么需要分层?**
- 🎯 **模块化**:每层独立设计和实现
- 🔧 **易维护**:修改一层不影响其他层
- 📚 **标准化**:统一的接口和协议
@@ -21,6 +22,7 @@
物理层负责在物理介质上传输原始的比特流(0 和 1)。
**关键任务**
- 定义物理设备标准(RJ45、光纤接口等)
- 规定传输介质(双绞线、光纤、无线电波)
- 确定电气特性(电压、频率、编码方式)
@@ -28,11 +30,13 @@
### 1.2 传输介质
**有线介质**
- 双绞线(Twisted Pair):Cat5、Cat6,用于以太网
- 光纤(Fiber Optic):长距离、高带宽
- 同轴电缆(Coaxial):早期以太网、有线电视
**无线介质**
- 无线电波(Wi-Fi、蓝牙、4G/5G
- 微波(卫星通信)
- 红外线(短距离通信)
@@ -49,6 +53,7 @@
数据链路层负责在直连的两个节点间传输数据帧。
**核心功能**
- 物理地址寻址(MAC 地址)
- 帧的封装和解封装
- 错误检测(CRC 校验)
@@ -63,6 +68,7 @@
- 全球唯一,烧录在网卡上
**查看 MAC 地址**
```bash
# Windows
ipconfig /all
@@ -81,6 +87,7 @@ ifconfig
```
**常见以太网类型**
- `0x0800`IPv4
- `0x0806`ARP
- `0x86DD`IPv6
@@ -88,11 +95,13 @@ ifconfig
### 2.4 交换机原理
**交换机工作方式**
1. **学习 MAC 地址**:记录端口与 MAC 的对应关系
2. **转发帧**:根据目标 MAC 地址选择端口
3. **过滤广播**:不会转发到所有端口(集线器会)
**查看交换机 MAC 表**
```bash
show mac address-table # 思科设备
```
@@ -108,13 +117,14 @@ show mac address-table # 思科设备
**IP 地址分类**
| 类别 | 范围 | 网络数 | 主机数 | 用途 |
|------|------|--------|--------|------|
| A 类 | 1.0.0.0 - 126.255.255.255 | 126 | 16M | 大型网络 |
| B 类 | 128.0.0.0 - 191.255.255.255 | 16K | 65K | 中型网络 |
| C 类 | 192.0.0.0 - 223.255.255.255 | 2M | 254 | 小型网络 |
| 类别 | 范围 | 网络数 | 主机数 | 用途 |
| ---- | --------------------------- | ------ | ------ | -------- |
| A 类 | 1.0.0.0 - 126.255.255.255 | 126 | 16M | 大型网络 |
| B 类 | 128.0.0.0 - 191.255.255.255 | 16K | 65K | 中型网络 |
| C 类 | 192.0.0.0 - 223.255.255.255 | 2M | 254 | 小型网络 |
**私有 IP 地址**
- A 类:`10.0.0.0 - 10.255.255.255`
- B 类:`172.16.0.0 - 172.31.255.255`
- C 类:`192.168.0.0 - 192.168.255.255`
@@ -124,15 +134,18 @@ show mac address-table # 思科设备
<SubnetCalculator />
**子网掩码的作用**
- 区分 IP 地址的网络部分和主机部分
- 确定两个 IP 是否在同一网段
- 计算网络地址和广播地址
**CIDR 表示法**`192.168.1.0/24`
- `/24` 表示前 24 位是网络位
- 剩余 8 位是主机位
**子网划分示例**
```
原网络:192.168.1.0/24
可用主机:192.168.1.1 - 192.168.1.254 (254 台)
@@ -147,6 +160,7 @@ show mac address-table # 思科设备
### 3.3 路由原理
**路由器工作流程**
1. 接收数据包
2. 检查目标 IP 地址
3. 查询路由表
@@ -154,6 +168,7 @@ show mac address-table # 思科设备
5. 转发到下一跳
**路由表示例**
```
目标网络 子网掩码 网关 接口
192.168.1.0 255.255.255.0 0.0.0.0 eth0
@@ -162,6 +177,7 @@ show mac address-table # 思科设备
```
**查看路由表**
```bash
# Windows
route print
@@ -175,11 +191,13 @@ netstat -rn
**ICMP (Internet Control Message Protocol)** 用于网络诊断。
**常见 ICMP 类型**
- Echo Request (Type 8)ping 请求
- Echo Reply (Type 0)ping 响应
- Destination Unreachable (Type 3):目标不可达
**Ping 命令**
```bash
ping google.com
@@ -194,11 +212,13 @@ PING google.com (142.250.185.238): 56 data bytes
### 4.1 端口
**端口号范围**
- **0-1023**:系统端口(需要管理员权限)
- **1024-49151**:注册端口
- **49152-65535**:动态端口
**常见端口**
- `21`FTP
- `22`SSH
- `80`HTTP
@@ -208,6 +228,7 @@ PING google.com (142.250.185.238): 56 data bytes
- `27017`MongoDB
**查看端口占用**
```bash
# macOS/Linux
lsof -i :8080
@@ -221,6 +242,7 @@ netstat -ano | findstr :8080
<TcpUdpComparison />
**选择建议**
- 📧 **邮件、文件传输**:用 TCP(不能丢数据)
- 📺 **视频、直播**:用 UDP(实时性优先)
- 🌐 **网页浏览**:用 TCP(可靠性重要)
@@ -244,6 +266,7 @@ netstat -ano | findstr :8080
```
**为什么需要三次?**
- 防止已失效的连接请求报文段突然又传送到了服务端
- 确认双方的发送和接收能力都正常
- 同步双方的初始序列号
@@ -269,6 +292,7 @@ netstat -ano | findstr :8080
```
**为什么需要四次?**
- TCP 是全双工协议,双方都可以发送数据
- 当一方关闭连接时,另一方可能还有数据要发送
- 需要双方分别确认关闭各自方向的连接
@@ -281,13 +305,13 @@ netstat -ano | findstr :8080
**HTTP 请求方法**
| 方法 | 描述 | 示例 |
|------|------|------|
| GET | 获取资源 | 查看网页 |
| POST | 提交数据 | 表单提交 |
| PUT | 更新资源 | 更新用户信息 |
| DELETE | 删除资源 | 删除文章 |
| PATCH | 部分更新 | 修改状态 |
| 方法 | 描述 | 示例 |
| ------ | -------- | ------------ |
| GET | 获取资源 | 查看网页 |
| POST | 提交数据 | 表单提交 |
| PUT | 更新资源 | 更新用户信息 |
| DELETE | 删除资源 | 删除文章 |
| PATCH | 部分更新 | 修改状态 |
**HTTP 状态码**
@@ -314,13 +338,13 @@ netstat -ano | findstr :8080
**HTTPS vs HTTP**
| 特性 | HTTP | HTTPS |
|------|------|-------|
| 加密 | 否 | 是(TLS/SSL |
| 端口 | 80 | 443 |
| 安全性 | 低(明文传输) | 高(加密传输) |
| 性能 | 略快 | 略慢(握手开销) |
| SEO | 不友好 | 友好 |
| 特性 | HTTP | HTTPS |
| ------ | -------------- | ---------------- |
| 加密 | 否 | 是(TLS/SSL |
| 端口 | 80 | 443 |
| 安全性 | 低(明文传输) | 高(加密传输) |
| 性能 | 略快 | 略慢(握手开销) |
| SEO | 不友好 | 友好 |
**HTTPS 工作流程**
@@ -369,15 +393,16 @@ ISP DNS 服务器
**DNS 记录类型**
| 类型 | 用途 | 示例 |
|------|------|------|
| A | IPv4 地址 | `www.example.com → 93.184.216.34` |
| AAAA | IPv6 地址 | `www.example.com → 2606:2800:220:1:248:1893:25c8:1946` |
| CNAME | 别名 | `www.example.com → example.com` |
| MX | 邮件服务器 | `mail.example.com` |
| TXT | 文本记录 | SPF、DKIM 验证 |
| 类型 | 用途 | 示例 |
| ----- | ---------- | ------------------------------------------------------ |
| A | IPv4 地址 | `www.example.com → 93.184.216.34` |
| AAAA | IPv6 地址 | `www.example.com → 2606:2800:220:1:248:1893:25c8:1946` |
| CNAME | 别名 | `www.example.com → example.com` |
| MX | 邮件服务器 | `mail.example.com` |
| TXT | 文本记录 | SPF、DKIM 验证 |
**查看 DNS 记录**
```bash
nslookup google.com
dig google.com ANY
@@ -386,18 +411,22 @@ dig google.com ANY
### 5.3 常见应用协议
**FTP (File Transfer Protocol)**:文件传输
- 端口:21(控制)、20(数据)
- 主动模式 vs 被动模式
**SSH (Secure Shell)**:远程登录
- 端口:22
- 加密通信
**SMTP (Simple Mail Transfer Protocol)**:发送邮件
- 端口:25
- 端口:465SSL)、587TLS
**POP3/IMAP**:接收邮件
- POP3:端口 110,下载到本地
- IMAP:端口 143,服务器同步
@@ -453,6 +482,7 @@ dig google.com ANY
4. 查看请求详情
**关键信息**
- **Request Headers**:请求头信息
- **Response Headers**:响应头信息
- **Status**:状态码
@@ -469,6 +499,7 @@ dig google.com ANY
5. 分析 HTTP 报文
**常用过滤器**
```
http # 只显示 HTTP 协议
ip.addr == 8.8.8.8 # 只显示与 8.8.8.8 的通信
@@ -521,24 +552,28 @@ speedtest-cli
### 7.2 常见问题
**问题 1:无法上网**
1. `ping 8.8.8.8` 测试基本连通性
2. `ping google.com` 测试 DNS 解析
3. 检查网关配置
4. 清除 DNS 缓存
**问题 2:网速慢**
1. `speedtest-cli` 测试实际带宽
2. 检查后台下载应用
3. 重启路由器
4. 更换 DNS 服务器
**问题 3:延迟高**
1. `ping -c 100` 统计平均延迟
2. `traceroute` 找出高延迟路由
3. 检查本地网络负载
4. 使用有线连接测试
**问题 4:端口无法访问**
1. `netstat -tuln | grep :80` 检查服务监听
2. 检查防火墙规则
3. `iptables -L` 查看防火墙
@@ -549,25 +584,30 @@ speedtest-cli
### 8.1 常见攻击
**DDoS 攻击**
- 分布式拒绝服务
- 大量请求耗尽服务器资源
- 防御:CDN、流量清洗
**中间人攻击**
- 拦截通信数据
- 防御:使用 HTTPS、验证证书
**SQL 注入**
- 通过输入框注入恶意 SQL
- 防御:参数化查询、输入验证
**XSS 攻击**
- 跨站脚本攻击
- 防御:输出编码、CSP 策略
### 8.2 安全实践
**HTTPS 强制**
```
# Nginx 配置
server {
@@ -585,6 +625,7 @@ server {
```
**防火墙配置**
```bash
# 允许 SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
@@ -608,6 +649,7 @@ iptables -A INPUT -j DROP
- 🛠️ **故障排查**:从物理层到应用层逐层排查
**学习建议**
- ✅ 多动手实践:使用 ping、traceroute、wireshark
- ✅ 理解协议细节:阅读 RFC 文档
- ✅ 抓包分析:用 Wireshark 观察实际流量