Skip to content

Commit c37d53f

Browse files
committed
docs: 统一计算机基础文档排版 — 提升阅读一致性
1 parent 4b87b62 commit c37d53f

12 files changed

Lines changed: 45 additions & 45 deletions

‎docs/cs-basics/network/application-layer-protocol.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ DNS 通常使用 UDP,默认端口是 53。之所以优先使用 UDP,是因
320320
- RFC 8446:TLS 1.3
321321
- RFC 9000:QUIC
322322
- RFC 3550:RTP: A Transport Protocol for Real-Time Applications
323-
- RFC 4571:Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transport
323+
- RFC 4571:Framing Real-time Transport Protocol(RTP) and RTP Control Protocol(RTCP) Packets over Connection-Oriented Transport
324324
- RFC 6891:Extension Mechanisms for DNS (EDNS(0))
325325

326326
<!-- @include: @article-footer.snippet.md -->

‎docs/cs-basics/network/arp.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: ARP 协议详解(网络层)
2+
title: ARP 协议详解(网络层)
33
description: 讲解 ARP 的地址解析机制与报文流程,结合 ARP 表与广播/单播详解常见攻击与防御策略。
44
category: 计算机基础
55
tag:

‎docs/cs-basics/network/can-tcp-and-udp-use-the-same-port.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ TCP 和 UDP 之间不冲突,不代表端口可以随便重复绑定。
8989

9090
如果两个进程绑定的是不同本地 IP,同协议同端口也可能成立,例如 `192.168.1.10:8080` 和 `192.168.1.11:8080` 都是 TCP。
9191

92-
还有一个容易被忽略的点:IPv6 的通配地址 `[::]:8080` 在一些环境下可能同时接收 IPv6 和 IPv4-mapped 地址,`IPV6_V6ONLY` 会影响它是否和 IPv4 socket 冲突。排查时可以用 `ss -tulnp` 同时看 `0.0.0.0:端口 ` 和 `[::]:端口`。
92+
还有一个容易被忽略的点:IPv6 的通配地址 `[::]:8080` 在一些环境下可能同时接收 IPv6 和 IPv4-mapped 地址,`IPV6_V6ONLY` 会影响它是否和 IPv4 socket 冲突。排查时可以用 `ss -tulnp` 同时看 `0.0.0.0:端口` 和 `[::]:端口`。
9393

9494
`SO_REUSEADDR`、`SO_REUSEPORT` 也会改变绑定规则,常用于快速重启、多进程监听、负载分摊等场景。这里小 G 建议先记住:
9595

‎docs/cs-basics/network/network-attack-means.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ SYN Flood 利用了 TCP 协议的三次握手机制,攻击者通常利用工
7070

7171
![TCP 三次握手建立连接的正常流程](https://oss.javaguide.cn/p3-juejin/a39355a1ea404323a11ca6644e009183~tplv-k3u1fbpfcp-zoom-1.png)
7272

73-
A 首先发送 **SYN**(Synchronization)消息给 B,要求 B 做好接收数据的准备;B 收到后反馈 **SYN-ACK**(Synchronization-Acknowledgement)消息给 A,这个消息的目的有两个:
73+
A 首先发送 **SYN**(Synchronization)消息给 B,要求 B 做好接收数据的准备;B 收到后反馈 **SYN-ACK**(Synchronization-Acknowledgement)消息给 A,这个消息的目的有两个:
7474

7575
- 向 A 确认已做好接收数据的准备,
76-
- 同时要求 A 也做好接收数据的准备,此时 B 已向 A 确认好接收状态,并等待 A 的确认,连接处于**半开状态(Half-Open)**,顾名思义只开了一半;A 收到后再次发送 **ACK** (Acknowledgement)消息给 B,向 B 确认也做好了接收数据的准备,至此三次握手完成,「**连接**」就建立了,
76+
- 同时要求 A 也做好接收数据的准备,此时 B 已向 A 确认好接收状态,并等待 A 的确认,连接处于**半开状态(Half-Open)**,顾名思义只开了一半;A 收到后再次发送 **ACK**(Acknowledgement)消息给 B,向 B 确认也做好了接收数据的准备,至此三次握手完成,「**连接**」就建立了,
7777

7878
大家注意到没有,最关键的一点在于双方是否都按对方的要求进入了**可以接收消息**的状态。而这个状态的确认主要是双方将要使用的**消息序号(**SequenceNum),**TCP** 为保证消息按发送顺序抵达接收方的上层应用,需要用**消息序号**来标记消息的发送先后顺序的。
7979

@@ -122,7 +122,7 @@ B 为帮助 A 能顺利连接,需要**分配内核资源**维护半开连接
122122
**UDP Flood** 主要通过利用服务器响应发送到其中一个端口的 **UDP** 数据包所采取的步骤。在正常情况下,当服务器在特定端口接收到 **UDP** 数据包时,会经过两个步骤:
123123

124124
- 服务器首先检查是否正在运行正在侦听指定端口的请求的程序。
125-
- 如果没有程序在该端口接收数据包,则服务器使用 **ICMP**(ping)数据包进行响应,以通知发送方目的地不可达。
125+
- 如果没有程序在该端口接收数据包,则服务器使用 **ICMP**(ping)数据包进行响应,以通知发送方目的地不可达。
126126

127127
举个例子。假设今天要联系酒店的小蓝,酒店客服接到电话后先查看房间的列表来确保小蓝在客房内,随后转接给小蓝。
128128

‎docs/cs-basics/network/other-network-questions.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 计算机网络常见面试题总结(上)
2+
title: 计算机网络常见面试题总结(上)
33
description: 最新计算机网络高频面试题总结(上):TCP/IP四层模型、HTTP全版本对比、TCP三次握手、DNS解析、WebSocket/SSE实时推送等,附图解+⭐️重点标注,一文搞定应用层&传输层&网络层核心考点,快速备战后端面试!
44
category: 计算机基础
55
tag:
@@ -477,7 +477,7 @@ SSE(Server-Sent Events)和 WebSocket 都是用来实现服务器向浏览器
477477
- **SSE:** **浏览器原生支持**。EventSource API 提供了自动断线重连的机制。
478478
- **WebSocket:** **需要手动实现**。开发者需要自己编写逻辑来检测断线并进行重连尝试。
479479
5. **数据类型:**
480-
- **SSE:** **主要设计用来传输文本** (UTF-8 编码)。如果需要传输二进制数据,需要先进行 Base64 等编码转换成文本。
480+
- **SSE:** **主要设计用来传输文本**(UTF-8 编码)。如果需要传输二进制数据,需要先进行 Base64 等编码转换成文本。
481481
- **WebSocket:** **原生支持传输文本和二进制数据**,无需额外编码。
482482

483483
为了提供更好的用户体验和利用其简单、高效、基于标准 HTTP 的特性,**Server-Sent Events(SSE)是目前大型语言模型 API(如 OpenAI、DeepSeek 等)实现流式响应的常用甚至可以说是标准的技术选择**。

‎docs/cs-basics/network/other-network-questions2.md‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 计算机网络常见面试题总结(下)
2+
title: 计算机网络常见面试题总结(下)
33
description: 最新计算机网络高频面试题总结(下):TCP/UDP深度对比、三次握手四次挥手、HTTP/3 QUIC优化、IPv6优势、NAT/ARP详解,附表格+⭐️重点标注,一文掌握传输层&网络层核心考点,快速通关后端技术面试!
44
category: 计算机基础
55
tag:
@@ -129,16 +129,16 @@ TCP(传输控制协议)和 UDP(用户数据报协议)是互联网传输
129129

130130
**运行于 TCP 协议之上的协议(强调可靠、有序传输):**
131131

132-
| 中文全称(缩写) | 英文全称 | 主要用途 | 说明与特性 |
133-
| --------------------------- | ---------------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
134-
| 超文本传输协议(HTTP) | HyperText Transfer Protocol | 传输网页、超文本、多媒体内容 | **HTTP/1.x 和 HTTP/2 基于 TCP**。早期版本不加密,是 Web 通信的基础。 |
135-
| 安全超文本传输协议(HTTPS) | HyperText Transfer Protocol Secure | 加密的网页传输 | 在 HTTP 和 TCP 之间增加了 SSL/TLS 加密层,确保数据传输的机密性和完整性。 |
136-
| 文件传输协议(FTP) | File Transfer Protocol | 文件传输 | 传统的 FTP **明文传输**,不安全。推荐使用其安全版本 **SFTP (SSH File Transfer Protocol)** 或 **FTPS (FTP over SSL/TLS)**。 |
137-
| 简单邮件传输协议(SMTP) | Simple Mail Transfer Protocol | **发送**电子邮件 | 负责将邮件从客户端发送到服务器,或在邮件服务器之间传递。可通过 **STARTTLS** 升级到加密传输。 |
138-
| 邮局协议第 3 版(POP3) | Post Office Protocol version 3 | **接收**电子邮件 | 通常将邮件从服务器**下载到本地设备后删除服务器副本** (可配置保留)。**POP3S** 是其 SSL/TLS 加密版本。 |
139-
| 互联网消息访问协议(IMAP) | Internet Message Access Protocol | **接收和管理**电子邮件 | 邮件保留在服务器,支持多设备同步邮件状态、文件夹管理、在线搜索等。**IMAPS** 是其 SSL/TLS 加密版本。现代邮件服务首选。 |
140-
| 远程终端协议(Telnet) | Teletype Network | 远程终端登录 | **明文传输**所有数据(包括密码),安全性极差,基本已被 SSH 完全替代。 |
141-
| 安全外壳协议(SSH) | Secure Shell | 安全远程管理、加密数据传输 | 提供了加密的远程登录和命令执行,以及安全的文件传输(SFTP)等功能,是 Telnet 的安全替代品。 |
132+
| 中文全称(缩写) | 英文全称 | 主要用途 | 说明与特性 |
133+
| --------------------------- | ---------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
134+
| 超文本传输协议(HTTP) | HyperText Transfer Protocol | 传输网页、超文本、多媒体内容 | **HTTP/1.x 和 HTTP/2 基于 TCP**。早期版本不加密,是 Web 通信的基础。 |
135+
| 安全超文本传输协议(HTTPS) | HyperText Transfer Protocol Secure | 加密的网页传输 | 在 HTTP 和 TCP 之间增加了 SSL/TLS 加密层,确保数据传输的机密性和完整性。 |
136+
| 文件传输协议(FTP) | File Transfer Protocol | 文件传输 | 传统的 FTP **明文传输**,不安全。推荐使用其安全版本 **SFTP(SSH File Transfer Protocol)** 或 **FTPS (FTP over SSL/TLS)**。 |
137+
| 简单邮件传输协议(SMTP) | Simple Mail Transfer Protocol | **发送**电子邮件 | 负责将邮件从客户端发送到服务器,或在邮件服务器之间传递。可通过 **STARTTLS** 升级到加密传输。 |
138+
| 邮局协议第 3 版(POP3) | Post Office Protocol version 3 | **接收**电子邮件 | 通常将邮件从服务器**下载到本地设备后删除服务器副本**(可配置保留)。**POP3S** 是其 SSL/TLS 加密版本。 |
139+
| 互联网消息访问协议(IMAP) | Internet Message Access Protocol | **接收和管理**电子邮件 | 邮件保留在服务器,支持多设备同步邮件状态、文件夹管理、在线搜索等。**IMAPS** 是其 SSL/TLS 加密版本。现代邮件服务首选。 |
140+
| 远程终端协议(Telnet) | Teletype Network | 远程终端登录 | **明文传输**所有数据(包括密码),安全性极差,基本已被 SSH 完全替代。 |
141+
| 安全外壳协议(SSH) | Secure Shell | 安全远程管理、加密数据传输 | 提供了加密的远程登录和命令执行,以及安全的文件传输(SFTP)等功能,是 Telnet 的安全替代品。 |
142142

143143
**运行于 UDP 协议之上的协议(强调快速、低开销传输):**
144144

‎docs/cs-basics/network/tcp-connection-and-disconnection.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ TCP 四次挥手的核心,是全双工连接的两个发送方向要分别关
336336
- 《图解 HTTP》
337337
- TCP and UDP Tutorial:<https://www.9tut.com/tcp-and-udp-tutorial>
338338
- 从一次线上问题说起,详解 TCP 半连接队列、全连接队列:<https://mp.weixin.qq.com/s/YpSlU1yaowTs-pF6R43hMw>
339-
- RFC 9293: Transmission Control Protocol (TCP):<https://www.rfc-editor.org/rfc/rfc9293>
339+
- RFC 9293: Transmission Control Protocol(TCP):<https://www.rfc-editor.org/rfc/rfc9293>
340340
- RFC 1122: Requirements for Internet Hosts - Communication Layers:<https://www.rfc-editor.org/rfc/rfc1122>
341341
- RFC 1337: TIME-WAIT Assassination Hazards in TCP:<https://www.rfc-editor.org/rfc/rfc1337>
342342
- tcp(7) - Linux manual page:<https://www.man7.org/linux/man-pages/man7/tcp.7.html>

‎docs/cs-basics/network/tcp-reliability-guarantee.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ TCP 的可靠性不是“保证网络不丢包”,而是在不可靠的 IP 网
261261
9. RFC 6928 - Increasing TCP's Initial Window:<https://www.rfc-editor.org/rfc/rfc6928>
262262
10. RFC 5681 - TCP Congestion Control:<https://datatracker.ietf.org/doc/html/rfc5681>
263263
11. RFC 2018 - TCP Selective Acknowledgment Options:<https://www.rfc-editor.org/rfc/rfc2018>
264-
12. RFC 2883 - An Extension to the Selective Acknowledgement (SACK) Option for TCP:<https://www.rfc-editor.org/rfc/rfc2883>
264+
12. RFC 2883 - An Extension to the Selective Acknowledgement(SACK) Option for TCP:<https://www.rfc-editor.org/rfc/rfc2883>
265265
13. RFC 9438 - CUBIC for Fast and Long-Distance Networks:<https://www.rfc-editor.org/rfc/rfc9438>
266-
14. RFC 8257 - Data Center TCP (DCTCP):<https://www.rfc-editor.org/rfc/rfc8257>
266+
14. RFC 8257 - Data Center TCP(DCTCP):<https://www.rfc-editor.org/rfc/rfc8257>
267267
15. BBR: Congestion-Based Congestion Control, ACM Queue, 2016:<https://queue.acm.org/detail.cfm?id=3022184>
268268
16. RFC 1122 - Requirements for Internet Hosts - Communication Layers:<https://datatracker.ietf.org/doc/html/rfc1122>
269269
17. RFC 6298 - Computing TCP's Retransmission Timer:<https://www.rfc-editor.org/rfc/rfc6298>

‎docs/cs-basics/network/tcp-time-wait.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ ss -ltn
184184

185185
## 参考
186186

187-
- RFC 9293: Transmission Control Protocol (TCP):<https://www.rfc-editor.org/rfc/rfc9293>
187+
- RFC 9293: Transmission Control Protocol(TCP):<https://www.rfc-editor.org/rfc/rfc9293>
188188
- RFC 1337: TIME-WAIT Assassination Hazards in TCP:<https://www.rfc-editor.org/rfc/rfc1337>
189189
- Linux 内核 ip-sysctl 文档:<https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt>
190190
- SoByte - 为什么 TCP 需要 TIME_WAIT 状态:<https://www.sobyte.net/post/2022-10/tcp-time-wait/>

‎docs/cs-basics/network/the-whole-process-of-accessing-web-pages.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ URL(Uniform Resource Locator,统一资源定位符)是互联网上资源
5555

5656
一个完整的 URL 由以下几部分组成:
5757

58-
1. **协议**(Scheme):URL 的前缀表示采用的协议,最常见的是 `http` 和 `https`,也有文件传输的 `ftp:` 等。
59-
2. **域名**(Host):访问目标的通用名,也可以直接使用 IP 地址。域名本质上是 IP 地址的可读版本。
60-
3. **端口**(Port):紧跟域名后面,用冒号隔开。HTTP 默认 80,HTTPS 默认 443,如果使用默认端口可以省略。
61-
4. **资源路径**(Path):从第一个 `/` 开始,表示服务器上的资源位置。早期设计中路径对应服务器上的物理文件,现在通常是后端路由映射的虚拟路径。
62-
5. **查询参数**(Query):`?` 之后的部分,采用 `key=value` 键值对形式,多个参数用 `&` 隔开。服务器解析请求时会提取这些参数。
63-
6. **锚点**(Fragment):`#` 之后的部分,用于定位到页面内的某个位置。锚点**不会**作为请求的一部分发送给服务端,仅由浏览器本地处理。
58+
1. **协议**(Scheme):URL 的前缀表示采用的协议,最常见的是 `http` 和 `https`,也有文件传输的 `ftp:` 等。
59+
2. **域名**(Host):访问目标的通用名,也可以直接使用 IP 地址。域名本质上是 IP 地址的可读版本。
60+
3. **端口**(Port):紧跟域名后面,用冒号隔开。HTTP 默认 80,HTTPS 默认 443,如果使用默认端口可以省略。
61+
4. **资源路径**(Path):从第一个 `/` 开始,表示服务器上的资源位置。早期设计中路径对应服务器上的物理文件,现在通常是后端路由映射的虚拟路径。
62+
5. **查询参数**(Query):`?` 之后的部分,采用 `key=value` 键值对形式,多个参数用 `&` 隔开。服务器解析请求时会提取这些参数。
63+
6. **锚点**(Fragment):`#` 之后的部分,用于定位到页面内的某个位置。锚点**不会**作为请求的一部分发送给服务端,仅由浏览器本地处理。
6464

6565
### 浏览器缓存检查
6666

0 commit comments

Comments
 (0)