【总结笔记】计算机网络核心考点
整合16个笔记文件,去除重复,按考点分类。 五大模块:① IP编址与子网划分 ② 网络层协议与路由 ③ 数据链路层 ④ 传输层TCP ⑤ 高频易错
模块一:IP编址、子网划分与NAT
1.1 CIDR基础
IP地址结构:网络前缀(网络号+子网号) + 主机号,共32位
CIDR斜线记法:202.118.1.0/25 → 前25位是网络前缀,主机位
子网掩码速查(掩码长度→第4字节):
| 掩码 | 主机位h | 步长S | 掩码第4字节 | 可用主机数 |
|---|---|---|---|---|
| /24 | 8 | 256 | .0 | 254 |
| /25 | 7 | 128 | .128 | 126 |
| /26 | 6 | 64 | .192 | 62 |
| /27 | 5 | 32 | .224 | 30 |
| /28 | 4 | 16 | .240 | 14 |
| /29 | 3 | 8 | .248 | 6 |
| /30 | 2 | 4 | .252 | 2(点对点链路专用) |
魔数法:遇到不是255也不是0的掩码字节 → 256 - 该字节值 = 步长
1.2 子网地址范围计算(三步法)
核心:只看”发生变化的那个字节”(408中90%的题变化在第4字节)
Step 1. 算步长:
Step 2. 找网络地址:设变化字节值为X,则
Step 3. 得出范围:
- 网络地址(全0):变化字节 =
- 广播地址(全1):变化字节 =
- 可用主机范围:网络地址+1 到 广播地址-1
- 可用主机数:
例:IP=183.80.72.x,掩码255.255.192.0
- 变化字节:第3字节;步长 = 256-192 = 64
- k = ⌊72÷64⌋ = 1,网络地址第3字节 = 64
- 网络地址:183.80.64.0;广播地址:183.80.127.255;可用:183.80.64.1~183.80.127.254
1.3 特殊地址速查
| 地址 | 特征 | 说明 |
|---|---|---|
| 网络地址 | 主机号全0 | 代表子网本身,不分配给主机 |
| 广播地址 | 主机号全1 | 向子网内所有主机广播,不分配给主机 |
| 私有地址 | 10.x.x.x、172.16-31.x.x、192.168.x.x | 公网路由器直接丢弃,经NAT才能出公网 |
| 受限广播 | 255.255.255.255 | 路由器不转发,仅在本网段内广播 |
1.4 路由聚合(超网汇聚)
将多条路由合并为一条更短前缀的路由。两个铁律:
- 铁律一:各子网的下一跳IP和出口接口必须完全相同
- 铁律二:各子网的二进制地址在截断位处必须互补连续(取遍0和1的所有组合)
聚合步骤:各子网地址转二进制 → 找最长公共前缀 → 截断位即为新掩码长度
1.5 NAT网络地址转换
工作原理:内网主机出公网,路由器将数据包源IP(私有地址)替换为路由器公网接口IP
解题关键:
- “经NAT后的源IP” = NAT路由器连接公网的接口IP
- 看到私有地址 → 不能是NAT转换后的外网源地址
NAPT/端口映射(外网访问内网服务):外网发包到路由器公网IP+端口 → 路由器把目的IP改为内网服务器IP转发
推导点对点链路对端IP(以/30为例):
- 已知R1 =
195.123.0.34/30,步长=4 - 34在区间[32,35]中;区间可用IP:.33和.34
- R1占了.34,则R2必为
195.123.0.33
模块二:网络层协议与路由
2.1 网络互连设备
| 设备 | 工作层次 | 隔离冲突域 | 隔离广播域 |
|---|---|---|---|
| 集线器Hub | 物理层(1层) | ✗ | ✗ |
| 交换机Switch | 链路层(2层) | ✅每端口独立 | ✗ |
| 路由器Router | 网络层(3层) | ✅ | ✅ |
找网关口诀:看拓扑图,找”与主机所在交换机直连的路由器接口”,该接口IP = 网关,该接口斜线后缀 = 本网段掩码
交换机自学习:根据帧的源MAC记录{MAC→端口};未主动发帧的节点不会在表中
2.2 IP数据报首部关键字段
| 字段 | 大小 | 考点 |
|---|---|---|
| 首部长度 | 4bit | 单位4字节,无选项时=5(即20B) |
| 总长度 | 16bit | 首部+数据,字节为单位 |
| TTL | 8bit | 每过一个路由器-1;为0时丢弃,回ICMP超时 |
| 协议 | 8bit | TCP=6,UDP=17,ICMP=1 |
| 标识 | 16bit | 同一数据报的所有分片共用同一标识 |
| 片偏移 | 13bit | 单位8字节(片偏移=数据字节偏移/8) |
| MF标志 | 1bit | =1还有后续分片;最后一片MF=0 |
2.3 IP分片计算步骤
触发:数据报总长 > 链路MTU时,路由器分片,目的主机重组
- 原数据载荷:(首部20B)
- 每片最大数据:(必须8的倍数!)
- 分片总数:
- 第i片(从0起)片偏移 =
- 标志:最后一片MF=0,其余MF=1
2.4 路由协议对比
| 协议 | 类别 | 算法 | 度量 | 最大跳数 | 收敛速度 |
|---|---|---|---|---|---|
| RIP | IGP(AS内) | 距离向量 | 跳数 | 15 | 慢 |
| OSPF | IGP(AS内) | 链路状态 | 代价(开销) | 无限制 | 快 |
| BGP | EGP(AS间) | 路径向量 | AS路径 | - | - |
RIP收敛时间:信息从源点传播k跳所需时间 = (T=30s)
OSPF工作原理:路由器洪泛LSA → 全网建立相同LSDB → 各自用Dijkstra算最短路
BGP选路:优先AS-Path最短(中间经过的自治系统数最少);eBGP在AS间,iBGP在AS内传播
模块三:数据链路层
3.1 以太网MAC帧结构
- 固定开销:18B;数据载荷 = 帧总长 - 18B
- 类型字段:
0800H=IPv4,0806H=ARP - 最小帧长:64B(数据最少46B)
3.2 通信模式
| 方式 | 能否同时收发 | 典型协议 |
|---|---|---|
| 单工 | 否(单向) | 广播电视 |
| 半双工 | 否(交替) | CSMA/CD以太网、Wi-Fi(CSMA/CA) |
| 全双工 | ✅ | 交换机端口、光纤(无需碰撞检测) |
3.3 CSMA/CD(总线以太网碰撞检测)
- 争用期(碰撞窗口):(检测碰撞的最长时间)
- 最小帧长:(必须发完这么多才能检测到碰撞)
3.4 ARP地址解析协议
作用:已知IP → 获取MAC
逐跳传输铁律:
- IP地址全程不变(不考虑NAT)
- MAC地址每一跳都变
- 跨网段时:目的MAC = 下一跳路由器接口MAC(网关MAC)
工作流程:查ARP缓存 → 未命中则广播ARP请求(全F MAC)→ 目标单播应答 → 更新缓存
3.5 DHCP四步交互(DORA)
| 步骤 | 方向 | 源IP | 目的IP | 关键原因 |
|---|---|---|---|---|
| Discover | 主机→广播 | 0.0.0.0 | 255.255.255.255 | 无IP,不知道服务器在哪 |
| Offer | 服务器→主机 | 服务器IP | 广播或主机IP | 提供预留IP |
| Request | 主机→广播 | 0.0.0.0 | 255.255.255.255 | IP未正式确认;需通知所有服务器 |
| ACK | 服务器→主机 | 服务器IP | 广播或主机IP | 正式下发IP/掩码/网关/DNS |
续约(Renew):租期过半,源IP=自己IP,目的IP=原服务器IP(单播)
地址池规则:路由器接口、固定服务器等静态配置的IP不能放入地址池
3.6 滑动窗口协议
基本公式:
- :传播时延与帧传输时延之比;:单向传播时延;:帧传输时延;:帧长;:带宽
信道利用率:
| 协议 | 利用率公式 | 满载条件 |
|---|---|---|
| 停止等待(W=1) | - | |
| 滑动窗口(窗口W) |
GBN(后退N帧):
- 发送窗口最大值:(n位序号)
- 出错后:从出错帧开始,重传该帧及之后所有帧
- 接收窗口:1(失序帧直接丢弃)
- 确认方式:累积确认(ACK n = n及之前全OK)
SR(选择重传):
- 发送/接收窗口:
- 只重传出错帧,接收方缓存失序帧
模块四:传输层TCP
4.1 关键术语
| 缩写 | 含义 | 说明 |
|---|---|---|
| swnd | 发送窗口 | ,取小值 |
| cwnd | 拥塞窗口 | 发送方自估网络承载能力(拥塞控制) |
| rwnd | 接收窗口 | 接收方缓存剩余(流量控制),通过ACK告知 |
| MSS | 最大报文段 | TCP数据载荷最大字节数(不含首部) |
| RTT | 往返时间 | 发数据到收ACK的总时延 |
| ssthresh | 慢开始门限 | 区分指数增长和线性增长的分界线 |
| ISN | 初始序号 | 握手时随机生成的起始序号 |
| MSL | 最长报文段寿命 | 主动关闭方等待2MSL才彻底关闭 |
4.2 拥塞控制四阶段
| 阶段 | 触发条件 | cwnd变化 |
|---|---|---|
| 慢开始 | cwnd < ssthresh | 每收一个ACK,cwnd+1 MSS(宏观上每RTT翻倍) |
| 拥塞避免 | cwnd ≥ ssthresh | 每轮RTT,cwnd+1 MSS(线性增长) |
| 超时重传 | 超时未收ACK | ssthresh=cwnd/2,cwnd=1,重新慢开始 |
| 快重传+快恢复 | 连续收到3个重复ACK | ssthresh=cwnd/2,cwnd=ssthresh,进入拥塞避免 |
4.3 序号机制
- SYN和FIN各消耗1个序号(不含数据但占位)
- 数据第1字节序号 = ISN + 1
- 序号是字节编号,不是报文段编号
4.4 三次握手与四次挥手
三次握手(建立):
A→B: SYN, seq=x
B→A: SYN+ACK, seq=y, ack=x+1
A→B: ACK, ack=y+1
四次挥手(断开):
A→B: FIN, seq=u
B→A: ACK, ack=u+1
B→A: FIN, seq=v
A→B: ACK, ack=v+1 ← A进入TIME_WAIT,等2MSL
为什么三次握手:两次握手B无法确认A能收到;三次才能验证双方发/收均正常 为什么等2MSL:保证B能收到最后的ACK;若ACK丢失B重发FIN,A还能在2MSL内收到并重新确认
4.5 时延分析
综合时延 = 各段发送时延 + 传播时延之和(根据题目给出的拓扑逐段计算)
模块五:高频易错汇总
| 错误写法 | 正确做法 |
|---|---|
| 可用主机数 = 2^h | 可用 = 2^h - 2(去网络地址和广播地址) |
| /30子网有4个可用IP | /30可用只有2个(掐头去尾) |
| 路由聚合只看前缀连续 | 还需要下一跳相同 + 二进制互补 |
| 片偏移 = 数据字节偏移 | 片偏移单位是8字节,需÷8 |
| 每片数据量任意 | 除最后一片外,每片数据必须是8字节的倍数 |
| DHCP Request源IP=Offer的IP | Request时IP未确认,源IP仍是 0.0.0.0 |
| DHCP Request目的IP=服务器IP | Request目的IP是 255.255.255.255(需通知所有服务器) |
| IP地址每跳都变 | IP全程不变;MAC每跳都变(跨网段目的MAC=网关MAC) |
| 交换机隔离广播域 | 交换机不隔离广播域,只有路由器隔离 |
| 慢开始每RTT翻倍是规则 | 翻倍是宏观现象;底层规则是每收1个ACK就+1 MSS |
| GBN发送窗口最大=2^n | GBN最大发送窗口 = 2^n - 1(避免接收方混淆新旧帧) |
| 超时和三重复ACK处理相同 | 超时→cwnd=1重新慢开始;三重复ACK→cwnd=ssthresh进拥塞避免 |
| 看到私有IP可以当外网源地址 | 私有IP经NAT后才能上公网,原私有IP不能作为公网源地址 |