Appearance
计算机网络与通信重点笔记
根据 6 份课件整理。只保留主干概念和常见计算题套路,尤其注意单位、时延、CRC、子网/CIDR、IP 分片、TCP 窗口与拥塞控制。
0. 计算公式速查
单位换算
1 Byte = 8 bit。- 文件/数据块大小常见用二进制单位:
1 KB = 2^10 B,1 MB = 2^20 B。 - 链路速率常见用十进制单位:
1 Mbit/s = 10^6 bit/s,1 Gbit/s = 10^9 bit/s。 - 做题先统一单位:字节先乘 8 变 bit,距离和传播速率单位要一致。
性能与时延
- 发送时延:
t_send = 数据长度(bit) / 发送速率(bit/s) - 传播时延:
t_prop = 信道长度(m) / 信号传播速率(m/s) - 总时延:
D_total = t_send + t_prop + t_process + t_queue - 时延带宽积:
BDP = 带宽 x 传播时延,单位是 bit,表示链路中“在路上”的比特数。 - RTT:通常近似为
2 x 单程传播时延 + 接收端处理/排队/发送确认时间。 - 有效数据率:
effective_rate = 有效数据量 / 总耗时 - 利用率与时延关系:
D = D0 / (1 - U),U越接近 1,排队时延急剧上升。
物理层极限
- 奈氏准则:无噪声低通信道最高码元率
Baud_max = 2W码元/s。 - 若每个码元有
V种离散状态,则最高数据率R_max = 2W log2(V)bit/s。 - 信噪比:
SNR(dB) = 10 log10(S/N)。 - 香农公式:
C = W log2(1 + S/N)bit/s。
CRC
- 生成多项式或除数
P长度为n+1位,则 CRC/FCS 为n位。 - 发送端:把原数据
M后补n个 0,用模 2 除法除以P,余数R就是 FCS。 - 发送数据:
M + R。 - 接收端:收到的数据除以
P,余数为 0 则接受,否则丢弃。 - 模 2 除法没有借位/进位,减法等价于异或 XOR。
以太网与 CSMA/CD
- 10 Mbit/s 以太网争用期:
51.2 us,可发送512 bit = 64 B。 - 最短有效帧长:
64 B。小于 64 B 的帧通常视为冲突导致的无效帧。 - 退避算法:第
i次重传,k = min(i, 10),随机取r in [0, 2^k - 1],等待r x 争用期。 - 参数:
a = 单程端到端传播时延 / 帧发送时间。 - 极限信道利用率近似:
Smax = 1 / (1 + a)。要提高利用率,应减小传播时延或增大帧发送时间。
IP 编址、子网与 CIDR
- 网络地址:
IP地址 AND 子网掩码。 - 主机位数:
h = 32 - 前缀长度。 - 地址块大小:
2^h。 - 通常可用主机数:
2^h - 2,全 0 主机号是网络地址,全 1 主机号是广播地址。 - CIDR 写法:
a.b.c.d/n,n是网络前缀长度。 - 最长前缀匹配:若多个路由表项都匹配,选择前缀最长的那个。
- 固定长度子网常用步长:在变化的八位组里,
步长 = 256 - 掩码值。
IP 分片
- 若
IP总长度 > MTU,且DF=0,需要分片。 - 每片数据部分最大值:
payload_per_fragment = floor((MTU - IP首部长度) / 8) x 8 - 片偏移:
fragment_offset = 本片数据在原始数据部分中的起始字节 / 8 - 每片总长度:
IP首部长度 + 本片数据长度。 MF=1表示后面还有分片,最后一片MF=0。- 所有分片的标识字段相同。
TCP
- TCP 实际发送窗口:
send_window = min(rwnd, cwnd)rwnd由接收方通告,用于流量控制;cwnd由发送方根据网络拥塞状态维护。 - 停止等待信道利用率:
U = TD / (TD + RTT + TA)TD是数据发送时间,TA是确认发送时间。 - 平滑 RTT:
RTTs_new = (1 - alpha) RTTs_old + alpha RTT_sample,推荐alpha = 1/8。 - RTT 偏差:
RTTD_new = (1 - beta) RTTD_old + beta |RTTs - RTT_sample|,推荐beta = 1/4。 - 超时重传时间:
RTO = RTTs + 4 x RTTD。 - Karn 修正:重传过的报文段不用于 RTT 估计;每次重传可令
RTO_new = gamma x RTO_old,典型gamma = 2。 - 慢开始:每个 RTT 内
cwnd近似翻倍。 - 拥塞避免:每个 RTT
cwnd约加 1 MSS。 - 超时:
ssthresh = max(cwnd/2, 2 MSS),cwnd = 1 MSS,重新慢开始。 - 三个重复 ACK:立即快重传,
ssthresh = cwnd/2,快恢复后进入拥塞避免。
HTTP 时间估算
- 非持续连接请求一个对象:约
2 RTT + 对象传输时间。
第 1 个 RTT 建 TCP 连接,第 2 个 RTT 发送 HTTP 请求并收到响应首部,后面是对象传输。 - 持续连接可复用 TCP 连接;流水线方式可在收到响应前连续发送多个请求,减少空闲 RTT。
- 流量强度:
traffic_intensity = 请求率 x 平均对象大小 / 链路速率。接近 1 时排队时延会很大。
1. 第 1 章 概述
互联网的基本结构
- 互联网的两个重要特征:连通性、资源共享。
- 小写
internet:泛指由多个网络通过路由器互连形成的互连网,是一类网络。 - 大写
Internet:专指全球最大的、采用 TCP/IP 协议族的互联网。 - 边缘部分:主机、端系统、客户/服务器、P2P 应用。
- 核心部分:路由器和网络,核心任务是分组转发。
- 路由器转发分组时通常最高只用到网络层,不处理运输层和应用层内容。
计算机网络的类别
- 按作用范围:
- 广域网 WAN:范围通常几十到几千公里,是互联网核心部分的重要组成。
- 城域网 MAN:覆盖一个城市,范围约 5-50 km。
- 局域网 LAN:范围较小,通常约 1 km,常使用高速通信线路。
- 个人区域网 PAN:范围很小,约 10 m;无线个人区域网可称 WPAN。
- 按使用者:
- 公用网:按规定交费的人都可使用,也称公众网。
- 专用网:为特定业务或单位需要建设,供特定用户使用。
- 接入网 AN:把用户接入互联网的网络,也称本地接入网;通常是从用户端系统到本地 ISP 第一个路由器之间的网络。
交换方式
- 电路交换:通信前建立专用物理通路,通信时独占端到端资源,结束后释放连接。适合连续传送大量数据或恒定速率实时通信,但计算机数据常有突发性,线路利用率低。
- 报文交换:整份报文作为单位进行存储转发,不预先建立专用连接。信道利用率较高,但整报文转发导致时延大,对节点缓存要求高。
- 分组交换:把较长报文划分为较小数据段,加上首部形成分组,以分组为传输单位逐跳存储转发。
- 分组首部携带目的地址、源地址等控制信息,路由器检查首部并查转发表转发。
- 各分组可独立选择路径,链路带宽动态分配,通信链路逐段占用。
- 优点:高效、灵活、迅速、可靠,适合突发数据。
- 缺点:会产生排队时延,不保证带宽;首部和路由器处理会增加开销。
| 交换方式 | 是否先建立连接 | 传输单位 | 资源占用 | 主要优点 | 主要缺点 |
|---|---|---|---|---|---|
| 电路交换 | 是 | 连续比特流 | 端到端独占 | 大量连续数据时速率稳定 | 建连开销;突发数据利用率低 |
| 报文交换 | 否 | 整个报文 | 逐段占用 | 无需预分配带宽,信道利用率较高 | 时延大;节点缓存压力大 |
| 分组交换 | 否 | 分组 | 逐段占用 | 时延小于报文交换,灵活高效 | 有排队、首部和处理开销 |
性能指标
- 速率:数据传送速率,也叫数据率或比特率。
- 带宽:在通信领域可指频带宽度;在网络中常指最高数据率。
- 吞吐量:单位时间通过网络、信道或接口的实际数据量,常小于额定速率。
- 时延:发送时延、传播时延、处理时延、排队时延。
- 时延带宽积:链路中可容纳的比特量。
- RTT:从发送方发送完数据,到收到接收方确认的总时间。
- 利用率:不是越高越好。利用率接近 1 时,排队时延会急剧增加。
典型计算
例:1000 km 光纤链路,传播速率 2.0 x 10^5 km/s,传播时延:
text
t_prop = 1000 / (2.0 x 10^5) = 0.005 s = 5 ms发送 100 MB 数据:
text
100 MB = 100 x 2^20 x 8 bit
若 R = 1 Mbit/s:
t_send = 100 x 2^20 x 8 / 10^6 = 838.9 s
若 R = 100 Mbit/s:
t_send = 100 x 2^20 x 8 / 10^8 = 8.389 s结论:大文件传输常由发送时延主导;极小数据在远距离链路上传输时,传播时延可能主导。提高带宽只能减小发送时延,不能提高比特在介质中的传播速度。
网络体系结构
- 网络协议:为网络中数据交换而建立的规则、标准或约定。
- 协议三要素:
- 语法:数据与控制信息的结构或格式。
- 语义:需要发出什么控制信息、完成什么动作、做出什么响应。
- 同步:事件实现顺序的详细说明。
- 网络体系结构:计算机网络各层及其协议的集合,是网络及构件应完成的功能的精确定义,不涉及具体实现。
- 五层体系结构:应用层、运输层、网络层、数据链路层、物理层。
- TCP/IP 四层:应用层、运输层、网际层、网络接口层。
- 每层对上提供服务,对等层之间通过协议“逻辑通信”。
- PDU 名称:应用层报文,运输层报文段/用户数据报,网络层 IP 数据报,链路层帧,物理层比特流。
| 层次 | 主要任务 | 典型协议或数据单位 |
|---|---|---|
| 应用层 | 通过应用进程间交互完成特定网络应用 | DNS、HTTP、SMTP;报文 |
| 运输层 | 为两台主机中的进程通信提供通用数据传输服务,负责复用和分用 | TCP 报文段、UDP 用户数据报 |
| 网络层 | 为分组交换网上不同主机提供通信服务,负责路由选择和转发 | IP 数据报 |
| 数据链路层 | 在相邻节点之间的链路上传送帧,进行差错检测等 | 帧 |
| 物理层 | 在传输媒体上传送比特流,规定接口机械、电气、功能、过程特性 | 比特流 |
2. 第 2 章 物理层
物理层任务
- 物理层关心如何在传输媒体上传输比特流,而不是具体传输媒体本身。
- 作用:尽量屏蔽不同传输媒体和通信手段的差异。
- 主要确定与传输媒体接口有关的 4 类特性:
- 机械特性:接口接线器形状、尺寸、引线数目和排列、固定和锁定装置等。
- 电气特性:接口电缆各条线上出现的电压范围。
- 功能特性:某条线上某一电平电压的意义。
- 过程特性:不同功能的各种可能事件出现的顺序。
数据通信基本概念
- 消息:语音、文字、图像、视频等。
- 数据:运送消息的实体,是有意义的符号序列。
- 信号:数据的电气或电磁表现。
- 模拟数据:取值连续的数据,如语音、连续变化的图像亮度等。
- 数字数据:取值离散的数据,如文本、整数、二进制比特序列等。
- 模拟信号:参数连续。
- 数字信号:参数离散。
- 码元:表示离散数值的基本波形。
- 基带信号:来自信源的基本频带信号,常含较多低频成分,甚至含直流成分。
- 带通信号:用载波调制后形成的信号,频率范围被搬移到较高频段,只在一段频率范围内通过信道。
- 通信方式:
- 单工通信:只能单方向传输,没有反方向交互。
- 半双工通信:双方都能发送和接收,但不能同时发送。
- 全双工通信:双方可同时发送和接收。
- 串行传输:比特按时间顺序一个接一个发送,线路少,适合远距离传输。
- 并行传输:多个比特在多条线中同时发送,短距离速度快,但线路多、同步要求高。
编码与调制
- 基带调制也叫编码:数字信号变换为另一种数字信号。
- 带通调制:用载波把基带信号搬移到较高频段,形成模拟带通信号。
- 常用编码:
- 不归零制:正/负电平表示 1/0。
- 归零制:正/负脉冲表示 1/0。
- 曼彻斯特编码:位周期中心跳变,具有自同步能力,但频带需求更高。
- 差分曼彻斯特编码:每位中心都有跳变,位开始边界是否跳变表示数据。
- 基本带通调制:调幅 AM、调频 FM、调相 PM。
- QAM:振幅和相位混合调制。若有 16 个码元点,则每个码元携带
log2(16)=4 bit,同码元率下数据率提高 4 倍。
信道极限容量
- 奈氏准则回答“无噪声时码元率最高多少”。
- 香农公式回答“有噪声时信息传输速率绝对上限是多少”。
- 香农公式:
C = W log2(1 + S/N)。已知C和W反求信噪比:S/N = 2^(C/W) - 1。 - 提高数据率的方向:
- 增大带宽
W。 - 提高信噪比
S/N。 - 用更高阶编码/调制,让每个码元携带更多 bit。
- 增大带宽
- 注意:高阶调制会更依赖信噪比,误码率可能更高。
传输媒体
- 导引型:双绞线、同轴电缆、光纤。
- 非导引型:无线电、微波、卫星、红外等。
- 光纤优点:容量大、损耗小、中继距离长、抗电磁干扰、保密性较好、体积小。
- 多模光纤适合近距离;单模光纤衰耗小,适合远距离,但成本较高。
- 卫星通信传播时延大,常在
250-300 ms量级,但并不等于传送数据总时延一定大,仍需看发送时延和数据量。
复用
- FDM:频分复用。所有用户同一时间占用不同频带。
- FDMA:频分多址。给不同用户分配不同频带,或让更多用户轮流使用这些频带来接入共享信道。
- TDM:时分复用。用户周期性占用固定时隙,空闲用户会浪费时隙。
- TDMA:时分多址。给不同用户分配不同时隙,或让更多用户轮流使用这些时隙来接入共享信道。
- STDM:统计时分复用。按需动态分配时隙,提高利用率。
- WDM:波分复用,本质上是光纤中的频分复用。例:
8 x 2.5 Gbit/s = 20 Gbit/s。 - DWDM:密集波分复用,在一根光纤中使用更密集的波长间隔复用更多光载波。
- CDM/CDMA:码分复用/码分多址。所有用户可同时使用同一频带,用正交码片序列区分。
数字传输系统
- SONET:Synchronous Optical Network,同步光纤网。以
51.84 Mbit/s为基础速率,对电信号称 STS-1,对光信号称 OC-1。 - SDH:Synchronous Digital Hierarchy,同步数字系列。ITU-T 以 SONET 为基础制定的国际标准。
- STM-1:Synchronous Transfer Module level 1,SDH 第 1 级同步传递模块,速率
155.52 Mbit/s,相当于 SONET 的 OC-3。 - OC-48:Optical Carrier level 48,SONET 第 48 级光载波,速率
48 x 51.84 = 2488.32 Mbit/s,约2.5 Gbit/s,对应 SDH 的 STM-16。
CDMA 计算套路
- 把 0/1 码片转换为
-1/+1向量。 - 正交条件:两个不同站的码片向量规格化内积为 0。
- 判定某站发送内容:收到的叠加向量
R与该站码片向量S做规格化内积:
text
(1/m) sum(R_i S_i) = 1 -> 发送 1
(1/m) sum(R_i S_i) = -1 -> 发送 0
(1/m) sum(R_i S_i) = 0 -> 未发送3. 第 3 章 数据链路层
数据链路层的基本问题
- 使用点对点信道和广播信道。
- 三个基本问题:封装成帧、透明传输、差错检测。
- 帧:数据链路层的协议数据单元。
- MTU:帧的数据部分长度上限。
- 网络适配器/网卡:计算机通过适配器接入局域网。适配器负责串行/并行转换、数据缓存、配合设备驱动程序工作,并实现以太网协议;它包含物理层和数据链路层功能,通常说主要工作在数据链路层和物理层。
封装成帧与透明传输
- 封装成帧:在数据前后添加首部和尾部,用于帧定界和控制。
- 必须解决封装成帧:接收方需要知道一帧从哪里开始、到哪里结束,否则无法从比特流中取出完整帧。
- 透明传输:无论数据中出现什么比特组合,链路层都应按原样传输。
- 若用控制字符定界,数据中出现同样字符会误判边界,需要字节填充或字符填充。
- 必须解决透明传输:数据字段中可能出现与帧定界符相同的比特组合,若不处理会被误认为帧边界。
差错检测与 CRC
- 比特差错:
1 -> 0或0 -> 1。 - 误码率 BER:错误比特数占传输比特总数的比例。
- 必须解决差错检测:链路传输会产生比特差错,接收方至少要能发现错误帧并丢弃。
- CRC 只能做到“无比特差错地接受”的高概率保证;它不是可靠传输的全部。
- 可靠传输还需要编号、确认、重传等机制。
CRC 例题套路:
text
已知 M = 101001,P = 1101
P 长度为 4,所以 FCS 长度 n = 3
M 后补 3 个 0:101001000
用模 2 除法除以 1101,余数 R = 001
发送数据 = 101001001PPP
- PPP 用于点对点链路。
- 三部分:
- 将 IP 数据报封装到串行链路的方法。
- LCP 链路控制协议。
- NCP 网络控制协议。
- PPP 面向字节,使用标志字段和字节填充实现透明传输。
以太网与 CSMA/CD
- 以太网提供无连接、不可靠、尽最大努力交付。
- CSMA/CD:载波监听多点接入/碰撞检测。
- 载波监听:发送前和发送中都检测信道。
- 碰撞检测:边发送边监听,检测到碰撞立即停止发送。
- 检测到碰撞后发送人为干扰信号,再按截断二进制指数退避算法等待重发。
- 争用期也叫碰撞窗口。只有经过争用期仍未检测到碰撞,才可确认本次发送不会碰撞。
常考点:
- 10 Mbit/s 以太网争用期
51.2 us。 - 争用期内发送
10 x 10^6 x 51.2 x 10^-6 = 512 bit = 64 B。 - 因此以太网最短有效帧长为 64 B。
- 帧间最小间隔:
96 bit时间,10 Mbit/s 下为9.6 us。 10BASE-T:10表示10 Mbit/s,BASE表示基带传输,T表示双绞线。
以太网 MAC 帧
- 以太网 V2 MAC 帧字段:目的地址 6 B,源地址 6 B,类型 2 B,数据 46-1500 B,FCS 4 B。
- 前面还会由硬件插入 7 B 前同步码和 1 B 帧开始定界符。
- MAC 地址工作在链路层,只在同一链路或局域网内直接使用。
交换机与 VLAN
- 集线器工作在物理层,逻辑上仍是共享总线,冲突域大。
- 交换机工作在数据链路层,按 MAC 地址转发帧,能隔离冲突域。
- 使用集线器时,
N个用户共享总带宽B,平均每个用户约B/N。 - 使用交换机时,每个端口提供带宽
B,每个用户独占端口带宽;交换机总容量约为B x N。 - 交换机自学习:收到帧后,把源 MAC 地址和进入接口写入交换表;若目的 MAC 地址未知,则向除进入接口外的所有接口泛洪;若目的 MAC 地址已知,则只向对应接口转发;若对应接口就是进入接口,则丢弃。
- VLAN 把一个物理局域网划分成多个逻辑广播域,常用 IEEE 802.1Q 标记。
4. 第 4 章 网络层
网络层服务
- 网络层解决异构网络互连、主机标识、路由选择、分组转发。
- 两种服务思想:
- 虚电路服务:网络负责可靠交付,通信前建立逻辑连接。
- 数据报服务:网络只提供无连接、尽最大努力交付,可靠性交给端系统。
- TCP/IP 采用数据报服务。
- 网络层有两个层面:
- 数据层面/转发层面:按转发表快速转发分组。
- 控制层面:运行路由选择协议,生成路由表。
网络互连设备
- 转发器/中继器:物理层设备,只转发比特或再生信号,不识别帧和地址。
- 网桥/桥接器:数据链路层设备,按 MAC 地址转发帧,可连接局域网网段;用转发器或网桥连接的若干局域网仍可看成一个网络。
- 路由器:网络层设备,按 IP 地址和路由表转发 IP 数据报,用于连接不同网络。
- 网关:网络层以上的中继系统,常用于不同协议体系之间的转换;在一些 TCP/IP 文献中,历史上也把路由器称为网关。
IPv4 地址
- IPv4 地址是 32 位,通常写成点分十进制。
- IP 地址标识接口,不只是主机。路由器有多个接口,通常有多个 IP 地址。
- 分类地址:
| 类别 | 开头位 | 第 1 字节范围 | 默认前缀 | 用途 |
|---|---|---|---|---|
| A | 0 | 1-126 | /8 | 大型网络 |
| B | 10 | 128-191 | /16 | 中型网络 |
| C | 110 | 192-223 | /24 | 小型网络 |
| D | 1110 | 224-239 | - | 多播 |
| E | 1111 | 240-255 | - | 保留 |
特殊地址:
- 主机号全 0:网络地址。
- 主机号全 1:该网络广播地址。
127.0.0.0/8:本地环回。0.0.0.0/0:默认路由。/32:特定主机路由。
子网划分
- 子网划分把两级地址变为三级地址:
<网络号, 子网号, 主机号>。 - 基本做法:从主机号借若干位作为子网号。
- 子网掩码左边连续 1 对应网络号和子网号,右边连续 0 对应主机号。
- 路由表项应包含目的网络地址、子网掩码、下一跳。
- VLSM/CIDR 分配地址块时,先按需求从大到小排序;每个需求选择能容纳它的最小
2^k地址块,再按地址块边界对齐分配。
例:IP = 141.14.72.24,掩码 255.255.192.0。
text
第三字节 72 = 01001000
掩码第三字节 192 = 11000000
AND 结果 = 01000000 = 64
网络地址 = 141.14.64.0若掩码改为 255.255.224.0 或 255.255.240.0,第三字节仍为 64,所以网络地址仍是 141.14.64.0,但前缀长度和地址块规模不同。
CIDR 与路由聚合
- CIDR 消除了 A/B/C 分类,用变长网络前缀表示地址块。
- 例:
128.14.32.0/20- 主机位数:
12。 - 地址数:
2^12 = 4096。 - 范围:
128.14.32.0到128.14.47.255。 - 等价于 16 个 C 类网络。
- 主机位数:
- 路由聚合:把连续、前缀相同的地址块合成一个更短前缀,减少路由表项。
- 查表使用最长前缀匹配。例:目的地址
206.0.71.130同时匹配206.0.68.0/22和206.0.71.128/25,选/25。
IP 地址与 MAC 地址
- IP 地址用于网络层定位目的网络和主机接口,端到端转发过程中源/目的 IP 基本不变。
- MAC 地址用于链路层,只负责同一链路上的直接交付;经过路由器转发时,每一跳帧首部中的源/目的 MAC 地址都会改变。
- IP 地址是逻辑地址,体现网络前缀和主机/接口位置,便于跨网络路由;MAC 地址是硬件地址,通常固化在网卡中,便于同一局域网内交付帧。
- ARP 用于在同一二层广播网络内,由 IP 地址解析出 MAC 地址。
- ARP 请求广播,ARP 响应单播。
- ARP 高速缓存保存最近的 IP-MAC 映射,减少广播。
IP 数据报与分片
- IPv4 首部固定部分 20 B,可选部分最多 40 B。
- 重要字段:
- 版本:IPv4 为 4。
- 首部长度:单位 4 B,常见值 5,表示 20 B。
- 总长度:首部 + 数据,最大 65535 B。
- 标识、标志、片偏移:用于分片。
- TTL:每经过一个路由器减 1,为 0 时丢弃并发送 ICMP 超时。
- 协议:指出数据部分交给 TCP、UDP、ICMP、OSPF 等。
- 首部检验和:只检验 IP 首部。
分片例:原始 IP 数据报总长度 6578 B,首部 20 B,数据 6558 B,通过以太网 MTU=1500 B。
text
每片最大数据 = floor((1500 - 20) / 8) x 8 = 1480 B
6558 = 1480 x 4 + 638
片1: 数据 1480, 总长 1500, 偏移 0, MF=1
片2: 数据 1480, 总长 1500, 偏移 185, MF=1
片3: 数据 1480, 总长 1500, 偏移 370, MF=1
片4: 数据 1480, 总长 1500, 偏移 555, MF=1
片5: 数据 638, 总长 658, 偏移 740, MF=0ICMP
- ICMP 用于差错报告和询问,不是高层协议,封装在 IP 数据报中。
- 常见差错报告:终点不可达、时间超过、参数问题、重定向。
- 常见应用:
ping使用回送请求/回答。traceroute利用 TTL 逐步增加和 ICMP 超时报文探测路径。
路由选择协议
- 静态路由:简单、开销小,但不自适应。
- 动态路由:能适应拓扑变化,但复杂且有额外开销。
- AS 自治系统:一个管理域内的一组路由器,对外表现为一致的路由策略。
- IGP:AS 内部路由协议,如 RIP、OSPF。
- EGP:AS 间路由协议,主要是 BGP。
RIP:
- 基于距离向量,距离为跳数。
- 直连网络距离为 0,非直连网络距离为经过路由器数加 1。
- 最大有效距离 15,16 表示不可达,只适合小型网络。
- 只和相邻路由器交换信息,交换完整路由表,通常每 30 秒交换一次。
- 优点:简单、开销小。
- 缺点:规模受限,坏消息传播慢,可能收敛慢。
距离向量更新规则:
text
收到邻居 X 的路由表后:
每条距离先 +1,下一跳改为 X。
若本路由表没有该目的网络,加入。
若下一跳原本就是 X,用新信息更新。
若新距离更小,用新路由替换旧路由。OSPF:
- 开放最短路径优先,链路状态协议。
- 使用洪泛法向 AS 内所有路由器发送链路状态。
- 每个路由器建立一致的链路状态数据库,再用 Dijkstra 算法求最短路径。
- 支持 VLSM/CIDR、区域划分、负载均衡、鉴别。
- 直接封装在 IP 中,不使用 UDP。
- 收敛快,适合较大网络。
BGP:
- AS 间路由协议,关注可达性和策略,不追求绝对最短路径。
- 使用 TCP,端口 179。
- BGP 路由可表示为
[前缀, AS-PATH, NEXT-HOP]。 - 常见选择顺序:本地偏好高优先,AS 跳数少优先,热土豆路由,路由器 ID 小优先等。
IPv6、NAT、VPN、MPLS、SDN
- IPv6 地址 128 位,首部更简化,取消 IPv4 首部检验和,分片由源主机处理。
- IPv6 压缩写法:连续 0 可用
::压缩一次。 - ICMPv6 合并了 IPv4 中 ARP 和 IGMP 的部分功能。
- 私有 IPv4 地址:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
- NAT:专用网地址与全球地址转换。
- NAPT:用端口号复用一个全球 IP,多个内网主机可同时访问外网。
- VPN:通过隧道技术在公共网络上构建逻辑专用通路。
- MPLS:在二层和三层之间插入标签,用标签交换加速转发,标签操作有 push、swap、pop。
- SDN:控制平面和数据平面分离,逻辑集中控制,转发设备按流表处理数据。
5. 第 5 章 运输层
运输层作用
- 网络层提供主机到主机通信;运输层提供进程到进程的端到端逻辑通信。
- 复用:多个应用进程共用运输层协议发送。
- 分用:运输层根据端口号把数据交给正确进程。
- TCP 和 UDP 都运行在无连接的 IP 之上;若应用使用 TCP,则应用看到的是面向连接、可靠、全双工的运输层逻辑信道;若应用使用 UDP,则应用看到的是无连接、不可靠的运输层逻辑信道。
- 运输层复用靠端口号和协议号实现:应用数据加上 TCP/UDP 首部形成 TCP 报文段或 UDP 用户数据报,再封装到 IP 数据报中;接收端按 IP 首部协议字段交给 TCP/UDP,再按目的端口分用给应用进程。
- 端口分类:
- 熟知端口:0-1023。
- 登记端口:1024-49151。
- 短暂端口:49152-65535。
- 端口的作用:用统一的协议端口号标识应用层“功能”或服务,而不是依赖不同操作系统中的进程标识符。
- 常见端口:HTTP 80,HTTPS 443,FTP 20/21,SMTP 25,DNS 53,TFTP 69,SNMP 161/162。
UDP
- 无连接,尽最大努力交付。
- 面向报文:应用层交下来的报文既不合并也不拆分。
- 无拥塞控制,适合实时音视频、DNS、DHCP、RIP 等。
- 一些应用选择 UDP 的原因:不想建立连接、首部开销小、希望应用自己控制重传/超时、能容忍少量丢包但不能容忍大时延,或需要一对多/多播/广播。
- 首部 8 B:源端口、目的端口、长度、检验和。
- UDP 检验和计算使用伪首部,伪首部只参与计算,不真正发送。
TCP
- 面向连接、可靠、全双工、面向字节流。
- 不支持广播和多播。
- 最小首部 20 B,选项最多 40 B。
- 重要字段:
- 序号 seq:本报文段数据第一个字节的序号。
- 确认号 ack:期望收到的下一个字节序号。
- 数据偏移:TCP 首部长度,单位 4 B。
- ACK、SYN、FIN、RST、PSH、URG。
- 窗口:接收方允许对方继续发送的数据量,单位字节。
- 检验和:覆盖伪首部、TCP 首部和数据。
- MSS:TCP 报文段数据字段最大长度,尽量避免 IP 分片。
可靠传输
- 停止等待:每发一个分组就等待确认,简单但信道利用率低。
- 超时重传:发送方给已发送分组设置定时器,超时未确认则重发。
- ARQ:自动重传请求,不需要接收方显式请求重传。
- 流水线传输:发送方可连续发送多个分组,提高利用率。
- 连续 ARQ:发送窗口内分组可连续发送,常结合滑动窗口。
- 累积确认:确认按序到达的最后一个分组或字节。
- Go-Back-N:若中间一个分组丢失,发送方可能回退重传多个分组。
TCP 滑动窗口与确认
- TCP 的确认基于字节序号,不基于报文段序号。
- 发送窗口包括:已发送未确认、允许发送但尚未发送。
- 接收窗口包括:按序到达未交付、不按序到达但在窗口内的数据。
- 接收方必须支持累积确认;对乱序数据通常先缓存,等缺失字节到达后按序交付。
- 接收方不应过度推迟 ACK;若收到连续最大长度报文段,通常至少每隔一个报文段确认一次。
RTO 计算
- RTO 不能太短,否则造成不必要重传;不能太长,否则链路空闲、效率低。
- 用加权平均估计 RTT:
text
RTTs_new = (1 - alpha) RTTs_old + alpha RTT_sample
RTO = RTTs + 4 x RTTD- 重传报文段的 ACK 有歧义,因此 Karn 算法不使用重传样本。
- 修正 Karn 算法:每次重传把 RTO 加倍,直到不再重传时再更新 RTT 估计。
流量控制
- 流量控制是端到端问题:接收方通过
rwnd限制发送方。 - 若接收方通告
rwnd=0,发送方停止发送新数据。 - 若非零窗口通知丢失,可能死锁。解决:持续计时器和零窗口探测报文。
- 糊涂窗口综合症:接收方每次只空出很小空间,导致发送方反复发送很小报文,效率很低。解决:接收方等到有足够空间再通告窗口;发送方可用 Nagle 算法合并小数据。
拥塞控制
- 拥塞控制是全局问题,防止过多数据注入网络。
- 与流量控制区别:流量控制保护接收方;拥塞控制保护网络。
- 拥塞信号常见为分组丢失、超时、重复 ACK、显式拥塞通知 ECN。
慢开始和拥塞避免:
text
cwnd < ssthresh: 慢开始,cwnd 指数增长
cwnd >= ssthresh: 拥塞避免,cwnd 线性增长发生超时:
text
ssthresh = max(cwnd / 2, 2 MSS)
cwnd = 1 MSS
重新慢开始收到 3 个重复 ACK:
text
立即重传丢失报文段
ssthresh = cwnd / 2
cwnd = ssthresh
进入拥塞避免或快恢复记忆:TCP Reno 的核心是“慢开始、拥塞避免、快重传、快恢复”,表现为 AIMD:加法增大、乘法减小。
TCP 连接管理
三报文握手:
text
1. A -> B: SYN=1, seq=x
2. B -> A: SYN=1, ACK=1, seq=y, ack=x+1
3. A -> B: ACK=1, ack=y+1- SYN 会消耗一个序号。
- 三次握手用于确认双方存在、协商参数、分配资源、同步初始序号。
- 两次握手可能因迟到的旧连接请求导致服务器误建立连接。
四报文挥手:
text
1. A -> B: FIN
2. B -> A: ACK
3. B -> A: FIN
4. A -> B: ACK- 主动关闭方进入
TIME_WAIT,等待2MSL。 - 作用:
- 保证最后 ACK 丢失时还能重传 ACK。
- 让旧连接中滞留的报文从网络中消失,避免污染新连接。
6. 第 6 章 应用层
应用层概念
- 应用层协议规定报文类型、语法、语义、发送时机和响应规则。
- 两种工作模式:
- C/S:服务器长期在线,有固定地址,集中管理资源。
- P2P:节点既请求服务也提供服务,可扩展性和健壮性较好。
DNS
- DNS 把域名解析为 IP 地址,是分布式、层次化数据库。
- 域名结构:从右到左层次升高,如
www.tsinghua.edu.cn。 - 每个标号最长 63 字符。
- 服务器类型:
- 根域名服务器。
- 顶级域名服务器。
- 权限域名服务器。
- 本地域名服务器。
- 区 zone 是服务器实际管辖范围,不完全等同于域 domain。
- 主机到本地域名服务器通常用递归查询。
- 本地域名服务器到根、TLD、权限服务器通常用迭代查询。
- DNS 高速缓存用 TTL 控制有效期,可减轻根服务器负担,但 TTL 太长会降低更新准确性。
- 早期 DNS 响应限制在 UDP 512 B 内,根服务器信息需放入响应,因此出现 13 个根服务器名称的设计。
FTP
- FTP 使用 TCP。
- 控制连接通常使用 21 端口,在整个会话期间保持。
- 数据连接用于传输文件,传输时建立,传完可释放。
- 控制连接和数据连接分离,是 FTP 的重要特征。
电子邮件
- 电子邮件系统组成:用户代理、邮件服务器、邮件协议。
- SMTP:发送/转发邮件,使用 TCP,典型端口 25。
- POP3/IMAP:用户从服务器读取邮件。
- MIME:扩展邮件内容类型,使邮件可传输非 ASCII 文本、图片、音频、附件等。
WWW 与 URL
- WWW 是分布式超媒体系统,不是某种特殊网络。
- URL 一般形式:
text
<协议>://<主机>:<端口>/<路径>- HTTP 默认端口 80,HTTPS 默认端口 443。
- 若访问默认端口和默认首页,端口和文件名常可省略。
HTTP
- HTTP 是应用层协议,使用 TCP 提供可靠传输。
- HTTP 本身是无连接、无状态、面向事务的请求/响应协议。
- 无状态优点是服务器负担轻;缺点是动态交互困难,需要 Cookie/Session。
- Cookie 是服务器和客户端之间传递的状态信息,会随 HTTP 请求发送;明文 Cookie 有安全风险,HTTPS 可缓解。
HTTP 事务:
text
建立 TCP 连接
客户端发送 HTTP 请求
服务器发送 HTTP 响应
浏览器解析并渲染
释放或保持 TCP 连接持续连接:
- HTTP/1.1 默认使用持续连接。
- 非流水线:收到前一个响应后再发下一个请求。
- 流水线:未收到响应前可继续发送请求,减少 RTT 浪费。
- HTTP/2 在同一 TCP 连接中复用多个请求/响应,并把报文分成二进制帧,减少首部开销。
HTTP 报文:
- 请求报文:请求行、首部行、空行、实体主体。
- 常用方法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
- 响应报文:状态行、首部行、空行、实体主体。
- 状态码:
1xx信息。2xx成功,如200 OK。3xx重定向。4xx客户端错误,如400 Bad Request、403 Forbidden、404 Not Found。5xx服务器错误,如500 Internal Server Error、503 Server Unavailable。
Web 缓存/代理服务器
- 代理服务器也叫 Web cache,代表浏览器发出 HTTP 请求。
- 若请求资源已缓存,可直接返回,减少访问时延和外部链路流量。
- 课件例:请求率
15 req/s,平均对象1 Mb,外部链路15 Mbit/s:
text
外部链路流量强度 = 15 x 1 Mb / 15 Mbit/s = 1流量强度接近 1,排队时延会很大。若使用缓存命中部分请求,可显著降低外部链路负载。
DHCP
- DHCP 用于动态分配 IP 配置。
- 常见流程 DORA:
text
Discover -> Offer -> Request -> ACK- DHCP 使用 UDP,服务器端口 67,客户端端口 68。
- 分配内容通常包括 IP 地址、子网掩码、默认网关、DNS 服务器、租约时间。
7. 常见计算题模板
模板 1:时延
text
1. 数据长度转 bit。
2. t_send = L / R。
3. t_prop = d / v。
4. 总时延 = t_send + t_prop + t_process + t_queue。
5. 若有确认或停止等待,再把 RTT 或 ACK 发送时间算进去。模板 2:奈氏/香农
text
1. 看是否有噪声。
2. 无噪声低通信道:用奈氏。
3. 有噪声且给 S/N 或 dB:先把 dB 转为 S/N,再用香农。
4. 若给码元种类 V:bit/码元 = log2(V)。模板 3:CRC
text
1. P 有 n+1 位,FCS 有 n 位。
2. M 后补 n 个 0。
3. 模 2 除以 P。
4. 余数不够 n 位左补 0。
5. 发送 M+R。模板 4:子网/CIDR
text
1. 根据前缀求主机位 h = 32 - n。
2. 地址数 = 2^h,可用主机数通常 = 2^h - 2。
3. 网络地址 = IP AND mask。
4. 广播地址 = 网络地址主机位全 1。
5. 可用范围 = 网络地址 + 1 到 广播地址 - 1。
6. 路由查表有多个匹配时,选最长前缀。模板 5:IP 分片
text
1. 原始数据长度 = IP总长度 - IP首部长度。
2. 每片最大数据 = floor((MTU - IP首部长度)/8) x 8。
3. 依次切片。
4. 每片总长度 = IP首部长度 + 本片数据长度。
5. 片偏移 = 本片数据起始位置 / 8。
6. 除最后一片外 MF=1,最后一片 MF=0。模板 6:TCP 拥塞窗口
text
1. cwnd < ssthresh: 每 RTT 翻倍。
2. cwnd >= ssthresh: 每 RTT 加 1 MSS。
3. 超时: ssthresh = cwnd/2, cwnd = 1 MSS。
4. 3 个重复 ACK: ssthresh = cwnd/2, 快重传,进入快恢复/拥塞避免。
5. 实际可发窗口 = min(rwnd, cwnd)。8. 易混点
- 高带宽不等于传播速度更快,只是单位时间能“推出”更多 bit。
- 吞吐量是实际值,带宽/速率常是上限。
- CRC 是检错,不是纠错;也不等于可靠传输。
- IP 地址在端到端转发中基本不变,MAC 地址每一跳都会变。
- 子网掩码是路由表项的重要属性;只看网络地址不够。
- CIDR 查表要用最长前缀匹配,不是先匹配谁就选谁。
- IP 分片偏移单位是 8 字节,不是 1 字节。
- TCP 的 ACK 号表示“期望收到的下一个字节序号”。
- TCP 流量控制看接收方
rwnd,拥塞控制看网络状态cwnd。 - HTTP 使用 TCP,但 HTTP 本身仍可说是无连接、无状态。