计算机网络复习
计算机网络复习
Chapter 1: Introduction
1.2 Network Edge(网络边缘) 核心要素:
接入网络类型: • DSL(数字用户线)
• Cable(电缆)
• FTTH(光纤到户)、无线(WiFi/蜂窝网络)
链路类型: • 有线(双绞线/光纤)
• 无线(无线电/卫星)
1.3 Network Core(网络核心) 分组交换 vs 电路交换对比表:
特性 | 分组交换 (Packet Switching) | 电路交换 (Circuit Switching) |
---|---|---|
资源占用 | 动态分配(按需) | 固定预留 |
延迟 | 可变(依赖拥塞) | 固定 |
适用场景 | 突发数据(如网页/邮件) | 实时流量(如电话) |
效率 | 高(共享链路) | 低(独占链路) |
关键结论:
分组交换更适合现代互联网的突发流量特性。
1.4 Performance in Packet-Switched Networks 四大延迟来源:
- 传输延迟:数据推送到链路的时间(公式:L/R,L=包大小,R=带宽)
- 传播延迟:信号在介质中传播的时间(公式:d/s,d=距离,s=传播速度)
- 排队延迟:在路由器缓冲区等待的时间(依赖流量强度)
- 处理延迟:路由器检查包头的时间
吞吐量计算:
\(\text{端到端吞吐量} = \min(R_1, R_2, \dots, R_N)\)
(\(R₁...Rₙ\)为路径上各链路速率)
1.5 Protocol Layers & Service Models OSI vs TCP/IP模型对比:
TCP/IP协议栈典型协议:
层 | 协议示例 |
---|---|
应用层 | HTTP, DNS, SMTP, FTP |
传输层 | TCP(可靠), UDP(不可靠) |
网络层 | IP, ICMP, BGP |
网络接口层 | Ethernet, WiFi, PPP |
封装流程:
Chapter 2: Application Layer 笔记整理
2.1 Principles of Network Applications
- 应用层协议与底层传输协议关系
应用层协议 | 传输协议 | 选择原因 |
---|---|---|
HTTP/HTTPS | TCP | 需要可靠传输(网页内容) |
SMTP | TCP | 邮件不能丢失 |
DNS | UDP | 快速查询(少量数据包) |
FTP | TCP | 大文件传输需可靠性 |
VoIP | UDP | 低延迟优先 |
- C/S vs P2P 对比
1 | graph LR |
特性 | C/S | P2P |
---|---|---|
扩展性 | 差(服务器压力大) | 高(节点越多越快) |
可靠性 | 单点故障 | 冗余性强 |
典型应用 | Web, Email | BitTorrent, Skype |
2.2 Web and HTTP
- HTTP报文结构
• 请求报文:
1
2
3GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Chrome
• 响应报文:
1
2
3HTTP/1.1 200 OK
Content-Type: text/html
<html>...</html>
- HTTP 1.0 vs 1.1
版本 | 连接方式 | 特点 |
---|---|---|
HTTP 1.0 | 非持久 | 每个对象需新建TCP连接 |
HTTP 1.1 | 持久(默认) | 复用连接,减少延迟 |
- Cookie & Cache
1 | graph TB |
2.3 FTP(文件传输协议) 工作原理:
1 | graph LR |
• 控制连接:持久化(发送命令如LIST
,
RETR
)
• 数据连接:临时建立(实际传输文件)
2.4 Electronic Mail 邮件系统流程:
1 | graph LR |
协议 | 端口 | 功能 |
---|---|---|
SMTP | 25 | 发送邮件(推模式) |
POP3 | 110 | 下载并删除邮件 |
IMAP | 143 | 在线管理邮件 |
2.5 DNS(域名系统)
- 功能:
• 域名 → IP地址解析
• 负载均衡(如CDN)
- DNS层次架构:
1 | graph TD |
- 查询过程(递归+迭代):
1 | graph LR |
- 无根DNS的替代方案:
• 使用备用根(如OpenNIC)
• 本地Hosts文件手动映射
2.6 Peer-to-Peer Applications BitTorrent核心机制:
1 | graph TB |
优势:
• 下载速度随节点增加而提升
• 抗单点故障(无中心服务器)
P2P vs C/S 补充对比:
指标 | P2P | C/S |
---|---|---|
成本 | 低(无服务器) | 高(服务器维护) |
隐私性 | 弱(节点暴露) | 强(集中控制) |
Chapter 3: Transport Layer
3.1 Transport-Layer Services TCP核心特性
1 | graph TD |
TCP在高延迟网络(如Starlink)的挑战: • 长RTT导致拥塞窗口增长缓慢
• 高丢包率误判为拥塞(实际可能是无线链路错误)
TCP vs RTP对比:
特性 | TCP | RTP(实时传输协议) |
---|---|---|
可靠性 | 可靠(重传) | 不可靠(允许丢包) |
顺序性 | 严格保序 | 时间戳保序 |
适用场景 | 文件传输/网页 | 视频流/VoIP |
3.2 Multiplexing and Demultiplexing 端口号分配:
1 | pie |
复用/解复用功能: • 复用:多个应用进程共用同一传输层协议(如多个浏览器标签共享TCP连接)
• 解复用:通过端口号将数据分发到正确应用(如80端口→Web服务器)
3.3 UDP协议 UDP头部格式:
1 | 0 7 8 15 16 23 24 31 |
特性: • 无连接、无拥塞控制、头部开销小(8字节)
3.4 Reliable Data Transfer (RDT) RDT协议演进
版本 | 关键改进 | 问题解决 |
---|---|---|
RDT1.0 | 理想信道 | 无 |
RDT2.0 | ACK/NAK | 比特错误 |
RDT2.1 | 序列号 | 重复ACK处理 |
RDT2.2 | 仅用ACK(带预期序号) | 简化NAK |
RDT3.0 | 定时器 | 丢包和延迟 |
滑动窗口协议对比
协议 | 回退N帧(GBN) | 选择重传(SR) |
---|---|---|
重传策略 | 重传所有未确认帧 | 仅重传丢失帧 |
接收窗口 | 固定为1 | >1(可缓存乱序帧) |
窗口大小 | ≤2ⁿ-1 | ≤2ⁿ⁻¹(避免序号混淆) |
窗口变化规则: • GBN:发送窗口连续移动,遇超时回退到最早未ACK的包
• SR:发送窗口仅重传丢失包,接收窗口缓存乱序帧
3.5 TCP协议详解 TCP段格式
1 | 0 1 2 3 |
关键字段: • Seq/Ack号:字节流编号(非报文段编号)
• 标志位:SYN(建立连接)、FIN(关闭连接)、RST(强制终止)
流量控制
1 | graph LR |
• 通过接收窗口(rwnd)避免接收缓冲区溢出
3.6 TCP拥塞控制 状态机(参考教材图3.51-3.52)
1 | graph TD |
拥塞控制算法
- 慢启动(Slow Start):cwnd指数增长(初始=1 MSS)
- 拥塞避免(AIMD):cwnd线性增长(+1 MSS/RTT)
- 快速恢复(Fast Recovery):遇3个重复ACK时减半cwnd
带宽探测机制: • Additive-Increase:拥塞避免阶段线性探测
• Multiplicative-Decrease:丢包时窗口减半
cwnd变化示例
1 | graph LR |
关键图表总结
- TCP状态转换图:标注SS/AIMD/FR的转换条件
- 滑动窗口对比表:GBN与SR的窗口大小、重传策略差异
- RDT协议演进流程图:从1.0到3.0的改进路径
- cwnd变化曲线:标注ssthresh和丢包事件的影响
Chapter 4: Network Layer
4.1 网络层服务 两大核心功能:
功能 | 描述 | 实现位置 |
---|---|---|
转发 (Forwarding) | 将数据包从输入端口转移到输出端口 | 路由器数据平面 |
路由 (Routing) | 确定数据包的全局传输路径 | 路由器控制平面 |
1 | graph LR |
4.2 虚电路 vs 数据报网络
特性 | 虚电路网络 (VC) | 数据报网络 (IP) |
---|---|---|
连接方式 | 面向连接(类似电话系统) | 无连接 |
路径选择 | 建立连接时确定 | 每个包独立选择路径 |
资源预留 | 支持 | 不支持 |
寻址 | 虚电路号 (VCI) | 目的IP地址 |
典型协议 | ATM, X.25 | IPv4/IPv6 |
4.3 路由器内部结构 交换结构类型:
基于内存
1
2
3graph LR
A[输入端口] --> B[CPU内存]
B --> C[输出端口]• 性能受限(内存带宽瓶颈)
基于总线
1
2
3graph LR
A[输入端口] --> B[共享总线]
B --> C[输出端口]• 总线竞争导致延迟
交叉开关
1
2
3
4graph LR
A1[输入1] --> B1[输出1]
A2[输入2] --> B2[输出2]
A3[输入3] --> B3[输出3]• 并行传输,高性能
4.4 IP协议 IPv4数据报格式
1 | 0 1 2 3 |
子网划分计算示例 • 给定IP:192.168.1.130/25
• 子网掩码:255.255.255.128
• 网络地址:192.168.1.128
• 广播地址:192.168.1.255
• 可用IP范围:192.168.1.129 ~ 192.168.1.254
1 | graph LR |
NAT工作流程
1 | sequenceDiagram |
4.5 路由算法 链路状态 (Dijkstra)
1 | graph TD |
Dijkstra示例表:
步骤 | 处理的节点 | 到各节点距离 (A,B,C,D) |
---|---|---|
0 | - | (0, ∞, ∞, ∞) |
1 | A | (0, 2, 6, ∞) |
2 | B | (0, 2, 3, 7) |
3 | C | (0, 2, 3, 5) |
距离向量 (Bellman-Ford) 公式:
$ D_x(y) = _v { c(x,v) + D_v(y) } $
1 | graph LR |
4.6 互联网中的路由 分层路由结构
1 | graph TD |
协议对比:
协议 | 类型 | 算法 | 特点 |
---|---|---|---|
OSPF | 链路状态 | Dijkstra | 快速收敛,适合大型网络 |
RIP | 距离向量 | Bellman-Ford | 简单,跳数限制15 |
BGP | 路径向量 | 策略路由 | 跨AS路由,支持策略控制 |
BGP工作流程
1 | graph LR |
IPv6 vs IPv4对比
特性 | IPv4 | IPv6 |
---|---|---|
地址长度 | 32位 | 128位 |
头部字段 | 20字节+选项 | 固定40字节 |
分片处理 | 允许路由器分片 | 仅源端分片 |
广播支持 | 支持 | 仅支持组播 |
推广难点 | 地址耗尽/NAT兼容性 | 设备升级成本/过渡技术 |
Traceroute实现原理
1 | sequenceDiagram |
Chapter 5: Data Link Layer
5.2 差错检测与纠正 奇偶校验(单维奇偶校验)
1 | graph LR |
示例:
• 数据 1010
→ 奇校验位为
0
(1的个数为2,需补1个1)
• 发送数据:10100
CRC(循环冗余校验) 原理:
• 发送端:数据 + 余数(EDC) = 数据多项式 ÷ 生成多项式
• 接收端:验证余数是否为0
计算步骤:
- 数据后补
n
个0(n=生成多项式位数-1) - 用生成多项式做二进制除法
- 余数作为EDC附加到数据
1 | graph TD |
示例:
• 数据 101001
,生成多项式 1101
• 计算得余数 001
→ 发送 101001001
接收端验证
1 | graph TD |
5.3 多路访问协议 三大类协议对比
类型 | 典型协议 | 特点 |
---|---|---|
信道划分 | TDM, FDM, CDMA | 固定分配资源,低冲突 |
随机接入 | ALOHA, CSMA/CD | 竞争信道,高冲突概率 |
轮询 | 令牌环 | 有序访问,无冲突 |
CSMA/CD(载波侦听/碰撞检测) 流程:
1 | graph TD |
二进制指数退避算法:
• 第 n
次碰撞后,随机选择延迟时间:0 ~ 2ⁿ⁻¹
倍时隙
• 最大退避次数:10 → 时隙上限为 1023
5.4 链路层寻址 MAC地址与广播地址 •
MAC地址:48位(如 00:1A:2B:3C:4D:5E
)
• 广播地址:FF:FF:FF:FF:FF:FF
ARP协议流程
1 | sequenceDiagram |
交换机 vs Hub vs 路由器
设备 | 工作层级 | 转发方式 | 特点 |
---|---|---|---|
Hub | 物理层 | 广播 | 无智能,冲突域扩大 |
交换机 | 数据链路层 | 基于MAC地址转发 | 自学习转发表,隔离冲突域 |
路由器 | 网络层 | 基于IP地址路由 | 连接不同网络,隔离广播域 |
交换机自学习流程:
1 | graph TD |
5.4 VLAN(虚拟局域网) 优势:
- 广播域分割:减少不必要的流量
- 安全性提升:不同VLAN间通信需路由器
- 灵活配置:按逻辑而非物理位置分组
1 | graph TD |
5.7 网页请求全流程 协议栈与流程
1 | graph TB |
各层协议:
层级 | 协议/设备 |
---|---|
应用层 | HTTP, DNS |
传输层 | TCP (可靠), UDP (DNS) |
网络层 | IP, ARP |
链路层 | 以太网 (MAC地址), 交换机 |
物理层 | 双绞线/光纤, Hub |
数据封装流程
1
2
3
4
5
graph LR
A[HTTP数据] --> B[加TCP头]
B --> C[加IP头]
C --> D[加以太网头]
D --> E[物理信号传输]
1 | graph LR |
重点总结
- CRC计算:掌握二进制除法步骤,理解生成多项式作用
- CSMA/CD退避算法:记住退避时间公式
0 ~ 2ⁿ⁻¹
- ARP与交换机表:区分ARP的广播查询与交换机的自学习机制
- VLAN优势:理解逻辑分割广播域的意义
- 协议层级对应:明确DNS/UDP、HTTP/TCP、IP/以太网的封装关系