第 1 章 计算机网络与 Internet 概览

1. 常见服务、协议与端口

服务传输层协议端口
FTPTCP21
SSHTCP22
TelnetTCP23
SMTPTCP25
DNSUDP(常见)53
DHCPUDP67(服务器)/68(客户端)
HTTPTCP80
HTTPSTCP443

注:DNS 主要使用 UDP 53,但在区域传送或响应过大等情况下也可使用 TCP 53。

2. Internet 的基本内容

  • Internet 的构成
  • Internet 提供的服务
  • 协议的作用
  • 分组交换与电路交换
  • 时延、丢包、吞吐量
  • 协议分层
  • TCP/IP 协议栈与 OSI 参考模型

3. 基本概念

(1)吞吐量与利用率

吞吐量=成功传输的数据量所用时间\text{吞吐量}=\frac{\text{成功传输的数据量}}{\text{所用时间}} 利用率=吞吐量带宽\text{利用率}=\frac{\text{吞吐量}}{\text{带宽}}

(2)流量强度与排队时延

流量强度:

I=λLRI=\frac{\lambda L}{R}

其中:

  • λ\lambda:分组到达率
  • LL:分组长度
  • RR:链路传输速率

在简化模型下,平均排队时延近似为:

dqueue=I1ILR(I<1)d_{\text{queue}}=\frac{I}{1-I}\cdot \frac{L}{R} \qquad (I<1)

(3)OSI 参考模型

OSI 七层模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

注:

  • 表示层负责数据表示、编码、加密等;
  • 会话层负责会话管理;
  • socket 不是会话层本身,而是应用进程访问传输层服务的编程接口。

第 2 章 应用层

1. 应用体系结构

  • C/S(客户-服务器)
  • P2P(对等)

2. 进程通信与 Socket

  • 进程之间通过 socket 通信
  • 需要解决进程寻址问题
  • 传输层通过端口号实现多路复用与多路分解

3. 传输服务

应用层通常使用两类传输层服务:

  • TCP
  • UDP

4. 文件分发模型

设文件大小为 FF,服务器上传速率为 usu_s,第 ii 个对等方上传速率为 uiu_i,最小下载速率为 dmind_{\min},共有 NN 个接收方,则:

(1)客户-服务器模型

DC/S=max{NFus,Fdmin}D_{\text{C/S}} = \max\left\{ \frac{NF}{u_s}, \frac{F}{d_{\min}} \right\}

(2)P2P 模型

DP2P=max{Fus,Fdmin,NFus+ui}D_{\text{P2P}} = \max\left\{ \frac{F}{u_s}, \frac{F}{d_{\min}}, \frac{NF}{u_s+\sum u_i} \right\}

第 3 章 传输层

1. 传输层的作用

  • 为应用进程之间提供逻辑通信
  • 实现多路复用与多路分解
  • 提供差错控制、流量控制、拥塞控制等机制

2. UDP 与 TCP

  • UDP:无连接、尽力而为、首部开销小
  • TCP:面向连接、可靠传输、按序交付、流量控制、拥塞控制

3. 可靠数据传输 RDT

典型阶段

  • rdt 1.0:理想信道,无差错、无丢包
  • rdt 2.0:考虑比特差错
  • rdt 2.1:考虑 ACK/NAK 受损
  • rdt 2.2:用冗余 ACK 代替 NAK
  • rdt 3.0:进一步考虑分组丢失

4. 停等协议与流水线协议

停等协议利用率较低。若发送时延为 LR\frac{L}{R},则停等协议的近似利用率为:

UL/RRTT+L/RU \approx \frac{L/R}{RTT + L/R}

流水线协议可显著提高链路利用率。

5. 多路复用与多路分解

  • 多路复用:发送方多个 socket 复用到底层传输层
  • 多路分解:接收方根据首部信息交付给正确 socket

6. TCP 报文与机制

(1)MSS 与 MTU

  • MTU:链路层最大传输单元
  • MSS:TCP 最大报文段长度

MSS 由 MTU 推导而来。

(2)三次握手

TCP 建立连接过程:

  1. 客户端发送 SYN=1
  2. 服务器回复 SYN=1, ACK=1
  3. 客户端发送 ACK=1

(3)四次挥手

TCP 释放连接通常需要四次报文交换:

  1. 一方发送 FIN=1
  2. 对方确认 ACK=1
  3. 对方发送 FIN=1
  4. 原发送方确认 ACK=1

(4)超时估计

TCP 使用平滑 RTT 与偏差 RTT 估计超时值。常见形式:

TimeoutInterval=EstimatedRTT+4DevRTT\text{TimeoutInterval} = \text{EstimatedRTT} + 4\cdot \text{DevRTT}

7. 流量控制与拥塞控制

(1)流量控制

流量控制用于防止发送方发送过快,导致接收方缓存溢出
TCP 中主要由接收窗口 rwnd 实现。

(2)拥塞控制

拥塞控制用于防止网络内部发生拥塞
TCP 中主要由拥塞窗口 cwnd 实现。

发送方实际可发送的数据量受二者共同限制:

LastByteSentLastByteAckedmin{cwnd,rwnd}\text{LastByteSent} - \text{LastByteAcked} \le \min\{\text{cwnd}, \text{rwnd}\}

原稿中“拥塞控制/流量控制”的作用写反了,这里已纠正。

8. TCP 拥塞控制

典型阶段

  • 慢启动(Slow Start)
  • 拥塞避免(Congestion Avoidance)
  • 快速重传(Fast Retransmit)
  • 快速恢复(Fast Recovery)

常见版本

  • Tahoe:出现超时后重新慢启动
  • Reno:支持快速恢复
  • CUBIC:现代 Linux 中常见
  • Vegas
  • BBR

TCP 公平性

KK 条连接共享一条瓶颈链路,总带宽为 RR,则理想公平情况下每条连接大约获得:

RK\frac{R}{K}

第 4 章 网络层:数据平面

1. 网络层的两大功能

  • 数据平面:转发
  • 控制平面:路由选择

2. 网络层服务模型

Internet 网络层采用**尽力而为(best-effort)**服务模型。

3. 路由器体系结构

  • 输入端口
  • 输出端口
  • 交换结构
  • 路由选择处理器(控制平面)

4. 分组转发与最长前缀匹配

IP 路由查找采用最长前缀匹配

5. 排队与缓存

排队位置

  • 输入排队:可能出现 HOL(Head-of-Line)阻塞
  • 输出排队:可能引发缓存溢出与时延膨胀

Bufferbloat

缓存过大可能带来高时延问题,即 bufferbloat

6. 分组调度

常见调度算法:

  • FIFO
  • PQ(Priority Queuing)
  • WFQ(Weighted Fair Queuing)

7. DHCP

DHCP 动态获取地址的典型四步过程:

  1. DHCP Discover
  2. DHCP Offer
  3. DHCP Request
  4. DHCP ACK

8. NAT

NAT 用于私有地址与公网地址之间的转换,缓解 IPv4 地址不足问题。

9. IPv4 与 IPv6

  • IPv4:32 位地址
  • IPv6:128 位地址

10. 泛化转发、SDN 与 NFV

  • 泛化转发
  • SDN(软件定义网络)
  • NFV(网络功能虚拟化)

第 5 章 网络层:控制平面

1. 路由选择算法的分类

  • 集中式 / 分散式
  • 静态 / 动态
  • 负载敏感 / 负载迟钝

2. 两类经典路由算法

(1)链路状态算法(LS)

  • 每个节点获得全网拓扑
  • 典型协议:OSPF

(2)距离向量算法(DV)

  • 与邻居交换距离向量
  • 可能出现计数到无穷问题
  • 可采用毒性逆转等方式缓解

3. OSPF 与 BGP

OSPF

  • 属于域内路由协议(IGP)
  • 采用链路状态算法

BGP

  • 属于域间路由协议(EGP)
  • 分为:
    • eBGP
    • iBGP

Hot-potato 路由

iBGP 中常见“热土豆”策略,即尽快把流量送出本 AS。

4. IP 任播

同一个 IP 地址对应多个服务器实例,请求通常由路由系统导向“最近”的那个。

5. SDN 控制器三层结构

  1. 通信层
  2. 网络范围状态管理层
  3. 北向 API / 网络控制应用层

6. OpenFlow

  • 运行在 TCP 之上
  • 默认端口:6653

主要功能包括:

  • 配置交换机
  • 读取状态
  • 修改状态
  • 发送分组

7. ICMP

ICMP 用于差错报告与网络诊断,例如 ping、traceroute 等。


第 6 章 数据链路层

1. 链路层的主要功能

  • 成帧
  • 链路接入
  • 差错检测
  • 某些链路上提供可靠交付

2. 差错检测与纠错

常见方法:

  • 一维奇偶校验
  • 二维奇偶校验
  • 检验和
  • CRC

检验和

基本思想:

  • 分块
  • 求和
  • 回卷
  • 取反

CRC

基于模 2 除法。

3. 多路访问协议

(1)信道划分协议

  • TDMA
  • FDMA
  • CDMA

(2)随机接入协议

  • 纯 ALOHA
  • 时隙 ALOHA
  • CSMA
  • CSMA/CD(以太网)
  • CSMA/CA(802.11)

(3)轮流协议

  • 轮询
  • 令牌传递

4. 以太网

  • 采用 MAC 地址
  • 典型协议:以太网
  • 交换机支持转发、过滤、自学习

5. VLAN

VLAN 用于逻辑划分二层广播域。


第 7 章 无线网络与移动网络

1. 无线网络基本构件

  • 无线主机
  • 无线链路
  • 基站

无线网络可分为:

  • 单跳 / 多跳
  • 基于基础设施 / 非基础设施

2. 无线链路与网络特征

无线环境常见问题:

  • 误码率较高
  • 信道衰落
  • 隐藏终端
  • 暴露终端
  • 干扰显著

3. CDMA

CDMA 即码分多址。

4. WLAN(802.11)

基本概念

  • BSS
  • AP
  • SSID

扫描方式

  • 被动扫描
  • 主动扫描

可靠交付机制

802.11 常结合:

  • CSMA/CA
  • ACK
  • ARQ

关键机制

  • DIFS 与 SIFS
  • 随机回退
  • RTS/CTS

RTS/CTS 主要用于缓解隐藏终端问题,不是“蓝牙解决了隐藏终端”。

5. 蓝牙

蓝牙采用:

  • TDMA
  • FHSS(跳频扩频)

6. 蜂窝网络

4G LTE

涉及核心实体:

  • HSS
  • MME

其中 MME 负责:

  • 身份验证
  • 路径建立
  • 位置管理

LTE 协议栈中常见 GTP over UDP。

5G

特点包括:

  • 控制平面与用户平面进一步分离
  • 频段划分为 FR1 / FR2
  • 系统容量与小区密度、可用频率、频谱效率等有关

7. 移动管理

包括:

  • 寻址
  • 切换
  • 漫游
  • 三角路由问题
  • 对传输层和应用层的影响

同一子网下不同 AP 切换时,IP 地址通常可保持不变,因此 TCP 连接通常可继续维持。


协议报文汇总

  1. HTTP 报文
  2. DNS 报文
  3. UDP 报文
  4. TCP 报文
  5. IPv4 数据报
  6. IPv6 数据报
  7. Ethernet 帧
  8. MPLS 首部
  9. 802.11 帧

易混淆点整理

1. TCP 与 UDP

  • TCP:可靠、面向连接、有流量控制和拥塞控制
  • UDP:不可靠、无连接、开销小

2. 流量控制 vs 拥塞控制

  • 流量控制:防止接收方来不及接收
  • 拥塞控制:防止网络内部拥塞

3. CSMA/CD vs CSMA/CA

  • CSMA/CD:以太网
  • CSMA/CA:802.11 无线局域网

4. LS vs DV

  • LS:知道全网拓扑
  • DV:只和邻居交换距离向量

5. 数据平面 vs 控制平面

  • 数据平面:转发
  • 控制平面:选路

6. IPv4 vs IPv6

  • IPv4:地址短,地址紧张
  • IPv6:地址长,扩展性更强

Linked Notes

No outgoing note links.

Referenced By

No backlinks yet.