学校-计网知识点总结
Computer Network 期末中文复习资料详细版
说明:本资料按你上传的期末复习提纲和照片中的参考题整理。正文用中文讲解,关键英文术语保留在括号中,方便你理解后再转成英文答题。照片中个别题目因拍摄角度不完整,原题按可识别内容整理,若不影响题意则做了少量顺句处理。
0. 考试范围与复习优先级
0.1 题型和分值
| 题型 | 数量 | 分值 | 复习策略 |
|---|---|---|---|
| 判断题 | 10 题 | 10 分 | 记概念、协议特点、设备层次 |
| 选择题 | 20 题 | 20 分 | 记关键定义、协议区别、字段含义 |
| 计算题 | 5 题 | 40 分 | 重点练时延、信道容量、CSMA/CD、CIDR、IP 分片、TCP 窗口 |
| 综合应用题 | 3 题 | 30 分 | 重点练子网划分、路由表、RIP 更新、TCP 序号确认号 |
0.2 最高优先级章节
- 第四章 网络层:CIDR、子网划分、路由表、最长前缀匹配、IP 分片、ARP、RIP、NAT。
- 第五章 运输层:UDP/TCP 区别、TCP 首部、序号和确认号、窗口、三次握手、四次挥手。
- 第三章 数据链路层:CSMA/CD、争用期、最小帧长、二进制指数退避、MAC 帧格式。
- 第一、二章计算基础:时延、传播时延、发送时延、奈奎斯特、码元速率、CDMA。
第一部分:详细知识点
第一章 概述
1.1 网络协议的概念
网络协议(network protocol) 是通信双方必须共同遵守的规则集合。协议通常包括三个要素:
| 要素 | 含义 | 举例 |
|---|---|---|
| 语法 syntax | 数据和控制信息的格式 | IP 首部中源地址和目的地址各占 32 bit |
| 语义 semantics | 每个字段或控制信息代表什么 | TCP 中 SYN=1 表示请求建立连接 |
| 同步 timing | 通信双方动作的先后顺序和速率匹配 | TCP 三次握手先 SYN,再 SYN+ACK,再 ACK |
理解例子:两个人打电话时,语言相当于语法,话的含义相当于语义,谁先说、什么时候回应相当于同步。网络通信也一样,只有格式、含义和时序都一致,双方才能正确通信。
1.2 计算机网络按作用范围分类
| 类型 | 英文 | 范围 | 例子 |
|---|---|---|---|
| 个人区域网 | PAN | 几米到十几米 | 蓝牙耳机连接手机 |
| 局域网 | LAN | 一个房间、楼层、校园局部 | 实验室以太网 |
| 城域网 | MAN | 一个城市 | 城市教育网 |
| 广域网 | WAN | 跨地区、跨国家 | 运营商骨干网 |
| 互联网 | Internet | 全球互连网络 | 公共互联网 |
易错点:互联网不是单个网络,而是许多异构网络通过路由器互连形成的网络集合。
1.3 互联网按工作方式划分
从功能角度看,互联网可以分为:
- 边缘部分(edge part):由主机、服务器、客户端组成,主要给用户提供服务。
- 核心部分(core part):由路由器和高速链路组成,主要负责分组交换和路由转发。
从通信模式看,常见有:
| 模式 | 特点 | 例子 |
|---|---|---|
| 客户服务器方式 C/S | 客户端请求,服务器响应 | 浏览器访问网页 |
| 对等方式 P2P | 主机之间地位相对平等 | BT 下载、P2P 文件共享 |
1.4 报文交换和分组交换
| 项目 | 报文交换 message switching | 分组交换 packet switching |
|---|---|---|
| 传输单位 | 完整报文 | 把报文切成较小分组 |
| 存储转发 | 整个报文到达后再转发 | 每个分组到达后即可转发 |
| 时延 | 大报文时延大 | 更适合突发数据 |
| 缓存要求 | 高 | 较低 |
| 当前互联网 | 很少直接使用 | 主要采用分组交换 |
举例:发送一个 100 MB 文件,如果采用报文交换,中间节点必须先收到完整 100 MB 才能转发;如果采用分组交换,可以切成很多小分组,前面的分组先转发,后面的分组继续传输,整体效率更高。
1.5 计算机网络性能指标
1.5.1 速率、带宽、吞吐量
| 指标 | 含义 | 单位 | 注意点 |
|---|---|---|---|
| 速率 data rate | 数据传输速率 | bit/s | 1 Mbit/s = 10^6 bit/s |
| 带宽 bandwidth | 网络理论最高传输能力 | bit/s | 不是日常说的“频带宽度”时,常指最高数据率 |
| 吞吐量 throughput | 实际通过网络的数据量 | bit/s | 通常小于带宽 |
例子:你的宽带标称 100 Mbit/s,这是带宽;实际下载只有 70 Mbit/s,这是吞吐量。
1.5.2 时延 delay
总时延通常由四部分构成:
总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延 |
| 时延 | 公式 | 含义 |
|---|---|---|
| 发送时延 transmission delay | 数据长度 / 发送速率 | 把所有 bit 推到链路上所需时间 |
| 传播时延 propagation delay | 链路长度 / 信号传播速率 | 信号在介质中传播所需时间 |
| 处理时延 processing delay | 无固定公式 | 路由器检查首部、查表等 |
| 排队时延 queuing delay | 无固定公式 | 分组等待输出链路空闲的时间 |
关键区别:发送时延和数据长度有关,传播时延和距离有关。发送一个很大的文件时,发送时延可能占主导;发送一个很小的分组到很远的地方时,传播时延可能占主导。
1.5.3 往返时间 RTT
RTT(round-trip time)是从发送方发送一个短报文开始,到收到对方确认所经过的时间。TCP 计算超时重传时间时会用到 RTT。
1.5.4 利用率
利用率表示链路或网络资源被使用的比例。利用率过低说明资源浪费,利用率过高则可能导致排队时延快速增加。
1.6 计算机网络体系结构
网络体系结构采用分层思想。每一层只向上层提供服务,并使用下层提供的服务。
| 概念 | 含义 | 举例 |
|---|---|---|
| 实体 entity | 某一层中实现协议的活动元素 | TCP 实体、IP 实体 |
| 对等层 peer layer | 不同主机中同一层 | 主机 A 的 TCP 与主机 B 的 TCP |
| 协议 protocol | 对等层之间通信的规则 | TCP、IP、HTTP |
| 服务 service | 下层向上层提供的功能 | IP 为 TCP 提供尽力而为交付 |
| 协议数据单元 PDU | 每层传输的数据单位 | 帧、IP 数据报、TCP 报文段 |
第二章 物理层
2.1 信道极限容量
信道容量受到两个因素限制:
- 奈奎斯特准则(Nyquist):无噪声但带宽有限时,码元速率不能无限提高。
- 香农公式(Shannon):有噪声信道中,信道容量受带宽和信噪比限制。
奈奎斯特公式
最高数据率 = 2W log2(V) |
其中:
- W 是信道带宽,单位 Hz。
- V 是每个码元可取的离散电平数。
- log2(V) 表示每个码元携带多少 bit。
例子:若最高码元速率为 20000 baud,采用 16 个不同电平,则每个码元携带 log2(16)=4 bit,最高数据率为 20000×4=80000 bit/s。
香农公式
C = W log2(1 + S/N) |
其中:
- C 是信道容量。
- W 是带宽。
- S/N 是信噪比的普通数值形式,不是 dB 形式。
若题目给出信噪比 dB,需要先换算:
S/N(dB) = 10 log10(S/N) |
2.2 比特率和波特率
| 概念 | 英文 | 含义 | 单位 |
|---|---|---|---|
| 比特率 | bit rate | 每秒传输多少 bit | bit/s |
| 波特率 | baud rate | 每秒传输多少个码元 | baud |
二者关系:
比特率 = 波特率 × 每个码元携带的 bit 数 |
若有 V 种离散状态,则:
每个码元携带 log2(V) bit |
例子:若波特率为 1000 baud,每个码元有 8 种状态,则每个码元携带 log2(8)=3 bit,比特率为 3000 bit/s。
2.3 信道复用技术
| 复用方式 | 英文 | 思想 | 例子 |
|---|---|---|---|
| 频分复用 | FDM | 不同用户占用不同频带 | 广播电台不同频率 |
| 时分复用 | TDM | 不同用户轮流占用时间片 | 传统电话复用 |
| 统计时分复用 | STDM | 按实际需求动态分配时间片 | 分组交换中的动态共享 |
| 波分复用 | WDM | 光纤中不同波长传不同信号 | 光纤骨干网 |
| 码分复用 | CDM/CDMA | 不同用户使用不同码片序列 | 移动通信中的扩频技术 |
2.4 CDMA 的计算方法
CDMA 的核心是不同站点的码片序列互相正交。判断某个站是否发送数据时,用接收序列和该站码片序列做内积,再除以码片长度。
结果 = 接收序列 · 某站码片序列 / 码片长度 |
判断规则:
| 结果 | 含义 |
|---|---|
| +1 | 该站发送 bit 1 |
| -1 | 该站发送 bit 0 |
| 0 | 该站没有发送 |
第三章 数据链路层
3.1 静态和动态划分信道
| 方法 | 类型 | 特点 |
|---|---|---|
| FDM、TDM、WDM、CDMA | 静态划分 | 资源预先分配,冲突少,但空闲时可能浪费 |
| ALOHA、CSMA、CSMA/CD | 动态划分 | 按需竞争信道,适合突发数据 |
3.2 CSMA/CD 协议
CSMA/CD 是传统共享式以太网使用的介质访问控制协议。
全称:Carrier Sense Multiple Access with Collision Detection,载波监听多点接入/碰撞检测。
工作过程:
- 先听后发:发送前先监听信道。
- 边发边听:发送过程中继续检测是否发生碰撞。
- 碰撞停止:一旦检测到碰撞,立即停止发送。
- 发送干扰信号:让所有站都知道发生碰撞。
- 随机退避:等待一段随机时间后重发。
适用条件:CSMA/CD 适合半双工共享式以太网。现代交换式全双工以太网基本不再使用 CSMA/CD。
3.3 争用期和最小帧长
争用期
争用期等于两倍单程传播时延:
争用期 = 2τ |
其中 τ 是信号从链路一端传播到另一端的时间。
最小帧长
为了保证发送方在发送完成前能够检测到最远端产生的碰撞,需要满足:
最小帧长 ≥ 数据率 × 2τ |
理解例子:如果帧太短,发送方可能已经发送完毕,以为发送成功,但远端碰撞信号还没传回来。这样就无法检测碰撞。因此共享式以太网必须规定最小帧长。
3.4 二进制指数退避算法
发生第 k 次碰撞后,从区间中随机选择一个整数 r:
r ∈ [0, 2^k - 1] |
实际以太网中 k 通常取 min(碰撞次数, 10)。等待时间为:
等待时间 = r × 512 bit time |
若连续碰撞达到 16 次,通常放弃发送并向上层报告错误。
例子:第 3 次碰撞后,r 可以从 0 到 7 中随机选一个。若 r=5,则等待 5 个争用期单位后再尝试发送。
3.5 10BASE-T
10BASE-T 的含义:
| 部分 | 含义 |
|---|---|
| 10 | 数据率为 10 Mbit/s |
| BASE | 基带传输 baseband |
| T | 双绞线 twisted pair |
10BASE-T 使用星形拓扑,物理上像星形,但如果中心设备是集线器,逻辑上仍然是共享总线。
3.6 MAC 帧格式
以太网 MAC 帧常见格式如下:
| 字段 | 长度 | 作用 |
|---|---|---|
| 目的 MAC 地址 | 6 字节 | 接收方硬件地址 |
| 源 MAC 地址 | 6 字节 | 发送方硬件地址 |
| 类型字段 | 2 字节 | 指出上层协议,如 0x0800 表示 IPv4 |
| 数据字段 | 46 到 1500 字节 | 上层交付的数据 |
| FCS | 4 字节 | 帧检验序列,用于差错检测 |
最小 MAC 帧长:64 字节,不包括前导码和帧开始定界符。若数据字段不足 46 字节,需要填充。
第四章 网络层
4.1 IP 地址和 CIDR
IPv4 地址为 32 bit,通常写成点分十进制,如:
192.168.1.10 |
CIDR 使用斜线表示网络前缀长度:
192.168.1.0/24 |
其中 /24 表示前 24 bit 是网络前缀,后 8 bit 是主机号。
地址块大小
地址总数 = 2^(32 - 前缀长度) |
例如 /24 有:
2^(32-24) = 256 个地址 |
通常可分配主机数为:
可用主机数 = 2^主机位数 - 2 |
减去的 2 个地址分别是网络地址和广播地址。
4.2 特殊 IP 地址
| 地址形式 | 含义 | 例子 |
|---|---|---|
| 主机位全 0 | 网络地址 | 192.168.1.0/24 |
| 主机位全 1 | 广播地址 | 192.168.1.255/24 |
| 32 位全 0 | 本网络上的本主机 | 0.0.0.0 |
| 32 位全 1 | 本网络广播 | 255.255.255.255 |
| 127.0.0.0/8 | 环回地址 | 127.0.0.1 |
| 私有地址 | 内网使用,不直接在公网路由 | 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 |
4.3 ARP 与 RARP
ARP(Address Resolution Protocol)用于根据 IP 地址查找对应的 MAC 地址。
使用场景:主机或路由器已经知道下一跳 IP 地址,但要在本链路上发送帧,必须知道下一跳的 MAC 地址。
注意:ARP 只在同一个局域网或同一条链路上工作。跨网络发送时,ARP 解析的是下一跳路由器的 MAC 地址,而不是最终目的主机的 MAC 地址。
RARP 是根据 MAC 地址反查 IP 地址,早期用于无盘工作站,现在基本被 DHCP 取代。
4.4 IP 数据报格式与分片
IP 数据报首部的重要字段:
| 字段 | 作用 |
|---|---|
| 版本 | IPv4 或 IPv6 |
| 首部长度 | IP 首部长度,单位为 4 字节 |
| 总长度 | 首部加数据的总长度 |
| 标识 identification | 同一个原始数据报的所有分片具有相同标识 |
| 标志 flags | DF 表示不能分片,MF 表示后面还有分片 |
| 片偏移 fragment offset | 当前分片数据在原始数据中的相对位置,单位为 8 字节 |
| TTL | 生存时间,每经过一个路由器减 1 |
| 协议 | 上层协议,如 TCP=6,UDP=17 |
| 首部检验和 | 只检验 IP 首部 |
| 源 IP 地址 | 发送方 IP |
| 目的 IP 地址 | 接收方 IP |
IP 分片规则
- 每个分片都有自己的 IP 首部。
- 除最后一个分片外,每个分片的数据部分长度必须是 8 字节的整数倍。
- 片偏移字段的单位是 8 字节。
- MF=1 表示后面还有分片,MF=0 表示最后一个分片。
- 分片通常只在最终目的主机重组。
4.5 互联设备的工作层次
| 设备 | 最高工作层次 | 是否分隔冲突域 | 是否分隔广播域 |
|---|---|---|---|
| 中继器 repeater | 物理层 | 否 | 否 |
| 集线器 hub | 物理层 | 否 | 否 |
| 网桥 bridge | 数据链路层 | 是 | 否 |
| 交换机 switch | 数据链路层 | 是 | 否,除非划分 VLAN |
| 路由器 router | 网络层 | 是 | 是 |
| 网关 gateway | 高层或多层 | 视情况而定 | 视情况而定 |
默认网关通常是主机所在局域网中通向外部网络的路由器接口地址。
4.6 路由表与最长前缀匹配
路由表常见字段:
| 字段 | 含义 |
|---|---|
| 目的网络 | 要到达的网络前缀 |
| 子网掩码或前缀长度 | 表示网络范围 |
| 下一跳地址 | 下一台路由器地址 |
| 出接口 | 从哪个接口转发 |
| 度量值 metric | 路由代价 |
路由器查表时采用最长前缀匹配:若多个路由表项都匹配目的地址,选择前缀最长的一项。
例子:目的地址 192.168.1.100 同时匹配 192.168.0.0/16 和 192.168.1.0/24,应选择 /24,因为 /24 更具体。
4.7 子网划分
子网划分的基本步骤:
- 根据每个子网需要的主机数确定主机位数。
- 主机数公式为
2^h - 2。 - 主机位数 h 确定后,前缀长度为
32 - h。 - 从大子网到小子网依次分配,避免地址浪费。
例子:某子网需要 50 台主机,求前缀长度。
2^5 - 2 = 30,不够 |
所以需要一个 /26 地址块。
4.8 RIP 协议
RIP 是距离向量路由协议,使用跳数作为度量值。
| 项目 | 内容 |
|---|---|
| 协议类型 | 内部网关协议 IGP |
| 算法 | 距离向量算法 |
| 运输层 | UDP |
| 度量值 | 跳数 |
| 最大有效跳数 | 15 |
| 不可达 | 16 |
| 更新方式 | 周期性交换路由表 |
RIP 更新规则:
- 收到相邻路由器 X 的路由表。
- 所有距离先加 1,因为要经过 X 才能到达。
- 若目的网络原来没有,加入。
- 若下一跳原来就是 X,则更新为 X 发来的新距离。
- 若下一跳不是 X,但新距离更小,则更新。
- 否则保持原表项不变。
4.9 路由器转发 IP 分组时哪些字段会变化
通常会变化:
- 链路层源 MAC 和目的 MAC:每一跳都重新封装帧。
- TTL:每经过一个路由器减 1。
- IP 首部检验和:TTL 变化后必须重新计算。
- 分片相关字段:如果发生分片,总长度、标志、片偏移等会变化。
通常不变:
- 源 IP 地址。
- 目的 IP 地址。
- TCP/UDP 端口号。
例外:如果经过 NAT,源 IP、目的 IP、端口号都可能被修改。
4.10 VPN 和 NAT
NAT 用于把私有地址转换为公网地址。
内网访问公网时:
源地址:私有 IP → 公网 IP |
公网响应回来时:
目的地址:公网 IP → 私有 IP |
VPN 是在公共网络上建立逻辑专用通道,使远程用户像在内网一样访问资源。
第五章 运输层
5.1 UDP 和 TCP 的特点
| 项目 | UDP | TCP |
|---|---|---|
| 连接 | 无连接 | 面向连接 |
| 数据单位 | 面向报文 | 面向字节流 |
| 可靠性 | 不保证可靠交付 | 可靠交付 |
| 顺序 | 不保证有序 | 保证按序交付 |
| 流量控制 | 无 | 有 |
| 拥塞控制 | 无 | 有 |
| 首部长度 | 8 字节 | 最少 20 字节 |
| 适用场景 | 实时、简单、开销低 | 可靠传输、文件、网页 |
UDP 面向报文:应用层交给 UDP 一次数据,UDP 就保留这次数据的边界,封装成一个 UDP 用户数据报。
TCP 面向字节流:应用层多次写入的数据,在 TCP 看来只是连续字节流,没有固定报文边界。
5.2 常见应用层协议使用 UDP 还是 TCP
| 协议 | 通常使用 | 原因 |
|---|---|---|
| DNS | UDP 为主,必要时 TCP | 查询短小,UDP 开销低;区域传送或响应过大用 TCP |
| DHCP | UDP | 客户端初始时可能还没有 IP 地址 |
| TFTP | UDP | 简单文件传输,可靠性由应用层处理 |
| RIP | UDP | 周期性小报文,简单快速 |
| SNMP | UDP | 管理查询短小 |
| HTTP/HTTPS | TCP | 需要可靠传输 |
| FTP | TCP | 文件传输要求可靠 |
| SMTP | TCP | 邮件传输要求可靠 |
| SSH/Telnet | TCP | 交互式可靠连接 |
| BGP | TCP | 路由信息重要,需要可靠连接 |
5.3 TCP 报文段首部重点字段
| 字段 | 含义 |
|---|---|
| 源端口 | 发送进程端口号 |
| 目的端口 | 接收进程端口号 |
| 序号 seq | 本报文段数据第一个字节的编号 |
| 确认号 ack | 期望收到对方下一个字节的编号 |
| 首部长度 | TCP 首部长度 |
| ACK | 确认号字段是否有效 |
| SYN | 建立连接请求或响应 |
| FIN | 释放连接 |
| RST | 复位连接 |
| 窗口 window | 接收方还能接收多少字节 |
| 检验和 checksum | 检验 TCP 首部和数据 |
核心理解:TCP 的序号按字节编号,不是按报文段编号。若某报文段序号为 100,携带 80 字节数据,则下一个报文段序号应为 180。
5.4 累积确认和捎带确认
累积确认:确认号 n 表示 n 之前的所有字节都已经按序收到,下一步期望收到第 n 个字节。
捎带确认:如果双方同时有数据要发,可以把确认信息放在自己发送的数据报文段首部中一起发出,减少单独 ACK 报文。
5.5 TCP 三次握手
假设客户端初始序号为 x,服务器初始序号为 y。
| 步骤 | 报文 | 序号和确认号 |
|---|---|---|
| 第一次 | 客户端发送 SYN | seq=x |
| 第二次 | 服务器发送 SYN+ACK | seq=y,ack=x+1 |
| 第三次 | 客户端发送 ACK | seq=x+1,ack=y+1 |
注意:SYN 会消耗一个序号,即使它不携带普通数据。
5.6 TCP 四次挥手
释放连接通常需要四次报文交换,因为 TCP 是全双工通信,两个方向要分别关闭。
| 步骤 | 报文 | 含义 |
|---|---|---|
| 第一次 | A 发送 FIN | A 表示自己没有数据要发了 |
| 第二次 | B 发送 ACK | B 确认收到 A 的 FIN |
| 第三次 | B 发送 FIN | B 也没有数据要发了 |
| 第四次 | A 发送 ACK | A 确认收到 B 的 FIN |
注意:FIN 也会消耗一个序号。
第六章 应用层
6.1 域名和 DNS
DNS(Domain Name System)用于把域名解析为 IP 地址。
常见域名服务器:
| 类型 | 作用 |
|---|---|
| 根域名服务器 | 管理顶级域名服务器信息 |
| 顶级域名服务器 | 管理 .com、.cn、.org 等 |
| 权限域名服务器 | 保存某个区域的权威解析记录 |
| 本地域名服务器 | 接收用户查询并代为递归或迭代查询 |
6.2 万维网 WWW
万维网基于 URL、HTTP/HTTPS、HTML 等技术。
浏览器访问网页的大致过程:
- DNS 解析域名得到服务器 IP。
- 建立 TCP 连接,HTTPS 还要进行 TLS 握手。
- 浏览器发送 HTTP 请求。
- 服务器返回 HTTP 响应。
- 浏览器解析 HTML、CSS、JavaScript 并显示页面。
6.3 FTP 和 TFTP
| 项目 | FTP | TFTP |
|---|---|---|
| 运输层 | TCP | UDP |
| 连接 | 有控制连接和数据连接 | 无连接 |
| 功能 | 完整文件传输、认证、目录操作 | 简单文件传输 |
| 可靠性 | 由 TCP 保证 | 应用层简单确认和重传 |
第二部分:参考题原题与解析
1-17 时延计算
原题
收发两端之间的传输距离为 1000 km,信号在媒体上的传播速率为 2 × 10^8 m/s。试计算以下两种情况的发送时延和传播时延:
- 数据长度为
10^7 bit,数据发送速率为100 kbit/s。 - 数据长度为
10^3 bit,数据发送速率为1 Gbit/s。
从以上计算结果可得出什么结论?
解析
公式:
发送时延 = 数据长度 / 发送速率 |
传播距离:
1000 km = 1,000,000 m = 10^6 m |
传播时延:
10^6 / (2 × 10^8) = 5 × 10^-3 s = 5 ms |
情况 1
发送时延 = 10^7 / (100 × 10^3) = 100 s |
情况 2
发送时延 = 10^3 / 10^9 = 10^-6 s = 1 μs |
答案
- 情况 1:发送时延为 100 s,传播时延为 5 ms。
- 情况 2:发送时延为 1 μs,传播时延为 5 ms。
结论
发送时延主要由数据长度和发送速率决定;传播时延主要由距离和信号传播速率决定。大文件、低速率时发送时延占主导;小数据、高速率、长距离时传播时延占主导。
1-18 媒体中正在传播的比特数
原题
假设信号在媒体上的传播速率为 2.3 × 10^8 m/s。媒体长度 l 分别为:
10 cm,网络接口卡。100 m,局域网。100 km,城域网。5000 km,广域网。
现在连续传送数据,数据率分别为 1 Mbit/s 和 10 Gbit/s。试计算每一种情况下在媒体中的比特数。
解析
媒体中正在传播的比特数,也叫带宽时延积:
媒体中的比特数 = 数据率 × 传播时延 |
计算表
| 媒体长度 | 传播时延 | 1 Mbit/s 时媒体中比特数 | 10 Gbit/s 时媒体中比特数 |
|---|---|---|---|
| 0.1 m | 4.35×10^-10 s | 4.35×10^-4 bit | 4.35 bit |
| 100 m | 4.35×10^-7 s | 0.435 bit | 4348 bit |
| 100 km | 4.35×10^-4 s | 435 bit | 4.35×10^6 bit |
| 5000 km | 2.17×10^-2 s | 2.17×10^4 bit | 2.17×10^8 bit |
结论
链路越长、数据率越高,媒体中同时存在的比特越多。高速长距离链路的带宽时延积很大,TCP 窗口必须足够大,否则无法充分利用链路带宽。
2-07 奈奎斯特准则计算
原题
假定某信道受奈氏准则限制的最高码元速率为 20000 码元/秒。如果采用振幅调制,把码元的振幅划分为 16 个不同等级来传送,那么可以获得多高的数据率?
解析
16 个不同等级表示每个码元可携带:
log2(16) = 4 bit |
数据率为:
20000 × 4 = 80000 bit/s |
答案
80000 bit/s = 80 kbit/s |
2-16 CDMA 码片序列判断
原题
共有四个站进行码分多址 CDMA 通信。四个站的码片序列为:
A: (-1 -1 -1 +1 +1 -1 +1 +1) |
现收到这样的码片序列:
S = (-1 +1 -3 +1 -1 -3 +1 +1) |
问哪个站发送数据了?发送的数据是 1 还是 0?
解析
用接收序列分别与每个站的码片序列做内积,再除以 8。
S·A / 8 = 1 |
判断规则:
- 结果为
+1:发送 bit 1。 - 结果为
-1:发送 bit 0。 - 结果为
0:未发送。
答案
A 站发送了 1,B 站发送了 0,C 站没有发送,D 站发送了 1。
3-20 CSMA/CD 最短帧长
原题
假定 1 km 长的 CSMA/CD 网络的数据率为 1 Gbit/s。设信号在网络上的传播速率为 200000 km/s。求能够使用此协议的最短帧长。
解析
单程传播时延:
τ = 1 km / 200000 km/s = 5 × 10^-6 s = 5 μs |
争用期:
2τ = 10 μs = 10 × 10^-6 s |
最短帧长:
1 × 10^9 bit/s × 10 × 10^-6 s = 10000 bit |
换算为字节:
10000 / 8 = 1250 字节 |
答案
最短帧长为 10000 bit,即 1250 字节。
易错点
不能只用单程传播时延,必须用两倍传播时延。因为碰撞信号需要从最远端传播回来,发送方才能检测到碰撞。
4-15 IP 分片在目的主机重组的原因
原题
在互联网中将 IP 数据报分片传送的数据报在最后目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。
解析
方法一:只在最终目的主机重组。
优点:
- 中间路由器负担小,只负责转发,不必缓存所有分片。
- 适合互联网中路径复杂、分组可能走不同路径的情况。
- 路由器实现简单,转发速度快。
缺点:
- 若一个分片丢失,目的主机收到的其他分片也无法重组成完整数据报。
- 目的主机需要缓存分片。
方法二:每经过一个网络就重组一次。
优点:
- 进入下一个网络前可以恢复完整数据报,逻辑上更直观。
- 对后续链路的分片处理可能更清楚。
缺点:
- 路由器必须缓存和重组分片,处理负担大。
- 如果分片不按序到达,路由器等待时间增加。
- 不利于高速转发。
答案
互联网采用最终目的主机重组更合理,因为它能简化路由器功能,提高转发效率。逐网络重组会显著增加中间路由器的缓存和处理开销,不适合大规模互联网。
4-17 ARP 使用次数
原题
主机 A 发送 IP 数据报给主机 B,途中经过了 5 个路由器。试问在 IP 数据报的发送过程中总共使用了几次 ARP?
解析
若途中经过 5 个路由器,则路径为:
A → R1 → R2 → R3 → R4 → R5 → B |
共有 6 段链路:
- A 到 R1。
- R1 到 R2。
- R2 到 R3。
- R3 到 R4。
- R4 到 R5。
- R5 到 B。
每一段链路都需要知道下一跳的 MAC 地址。如果 ARP 缓存中没有对应表项,每段链路需要一次 ARP。
答案
在没有 ARP 缓存的情况下,共需要使用 6 次 ARP。
易错点
ARP 不是一次解析最终目的主机 B 的 MAC 地址。每一跳都只解析本链路上的下一跳 MAC 地址。
4-18 路由表查找
原题
设某路由器建立了如下转发表:
| 前缀匹配 | 下一跳 |
|---|---|
| 192.4.153.0/26 | R3 |
| 128.96.39.0/25 | 接口 m0 |
| 128.96.39.128/25 | 接口 m1 |
| 128.96.40.0/25 | R2 |
| 默认 | R4 |
现共收到 5 个分组,其目的地址分别为:
- 128.96.39.10
- 128.96.40.12
- 128.96.40.151
- 192.4.153.17
- 192.4.153.90
试说明每个分组应如何转发。
解析与答案
| 目的地址 | 匹配过程 | 转发结果 |
|---|---|---|
| 128.96.39.10 | 属于 128.96.39.0 到 128.96.39.127 | 接口 m0 |
| 128.96.40.12 | 属于 128.96.40.0 到 128.96.40.127 | R2 |
| 128.96.40.151 | 不属于 128.96.40.0/25,走默认路由 | R4 |
| 192.4.153.17 | 属于 192.4.153.0 到 192.4.153.63 | R3 |
| 192.4.153.90 | 不属于 192.4.153.0/26,走默认路由 | R4 |
易错点
/25 的地址块大小是 128 个地址;/26 的地址块大小是 64 个地址。判断范围时要先算出地址块边界。
4-19 地址块分配
原题
试为计算机下一跳。某单位有 4000 台计算机,平均分布在 16 个不同地点。该单位分配到一个地址块 129.250/16。每一个地点分配一个连续的地址块,并算出每个地址块中 IP 地址的最小值和最大值。
解析
每个地点平均主机数:
4000 / 16 = 250 台 |
需要满足:
2^h - 2 ≥ 250 |
当 h=8 时:
2^8 - 2 = 254 |
所以每个地点需要 8 位主机位,即 /24 地址块。
129.250.0.0/16 可以划分出许多 /24,给 16 个地点分配前 16 个即可。
一种可行分配
| 地点 | 地址块 | 可用最小地址 | 可用最大地址 | 广播地址 |
|---|---|---|---|---|
| 1 | 129.250.0.0/24 | 129.250.0.1 | 129.250.0.254 | 129.250.0.255 |
| 2 | 129.250.1.0/24 | 129.250.1.1 | 129.250.1.254 | 129.250.1.255 |
| 3 | 129.250.2.0/24 | 129.250.2.1 | 129.250.2.254 | 129.250.2.255 |
| … | … | … | … | … |
| 16 | 129.250.15.0/24 | 129.250.15.1 | 129.250.15.254 | 129.250.15.255 |
答案
每个地点可分配一个 /24 地址块,每个地址块可用主机地址为 254 个,能够满足 250 台主机需求。
4-20 IP 数据报分片
原题
一个数据报长度为 4000 字节,固定首部长度为 20 字节。现在经过一个网络传送,但此网络能够传送的最大数据长度为 1500 字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和 MF 标志应为何值?
解析
原始数据报总长度为 4000 字节,首部为 20 字节,所以数据部分为:
4000 - 20 = 3980 字节 |
每个分片总长度最多为 1500 字节,每个分片都有 20 字节首部,所以每个分片最多可携带数据:
1500 - 20 = 1480 字节 |
1480 是 8 的整数倍,可以作为非最后分片的数据长度。
分片方案:
3980 = 1480 + 1480 + 1020 |
片偏移单位为 8 字节:
第 1 片偏移 = 0 / 8 = 0 |
答案
| 分片 | 数据字段长度 | 总长度 | 片偏移 | MF |
|---|---|---|---|---|
| 第 1 片 | 1480 字节 | 1500 字节 | 0 | 1 |
| 第 2 片 | 1480 字节 | 1500 字节 | 185 | 1 |
| 第 3 片 | 1020 字节 | 1040 字节 | 370 | 0 |
易错点
片偏移不是字节数本身,而是以 8 字节为单位。非最后分片的数据部分长度必须是 8 字节的整数倍。
4-22 CIDR 地址块聚合
原题
有如下四个 /24 地址块,试进行最大可能的聚合。
212.56.132.0/24 |
解析
这四个地址块连续,第三个字节分别是:
132, 133, 134, 135 |
4 个连续 /24 可以聚合为一个 /22,因为:
4 × 256 = 1024 = 2^(32-22) |
起始地址为 212.56.132.0,且 132 能被 4 整除,满足 /22 边界。
答案
212.56.132.0/22 |
地址范围为:
212.56.132.0 到 212.56.135.255 |
4-26 VLSM 不等长子网划分
原题
一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是 192.77.33/24。网络布局图中,总部共有 5 个局域网,其中 LAN1 到 LAN4 都连接到路由器 R1,R1 再通过 LAN5 与路由器 R2 相连。R2 和三个部门的局域网 LAN6 到 LAN8 通过广域网 WAN1 到 WAN3 相连。每一个局域网旁标明的数字是局域网上的主机数。试给每一个局域网分配一个合适的网络前缀。
图中主机数:
| 网络 | 主机数 |
|---|---|
| LAN1 | 50 |
| LAN2 | 10 |
| LAN3 | 28 |
| LAN4 | 10 |
| LAN5 | 4 |
| LAN6 | 20 |
| LAN7 | 20 |
| LAN8 | 25 |
| WAN1 | 2 |
| WAN2 | 2 |
| WAN3 | 2 |
解析
先按主机数从大到小排序,再分配地址块。
| 需要主机数 | 所需地址数 | 前缀 |
|---|---|---|
| 50 | 至少 64 | /26 |
| 28、25、20、20 | 至少 32 | /27 |
| 10、10 | 至少 16 | /28 |
| 4 | 至少 8 | /29 |
| 2 | 至少 4 | /30 |
一种可行分配
| 网络 | 主机数 | 分配前缀 | 可用主机范围 |
|---|---|---|---|
| LAN1 | 50 | 192.77.33.0/26 | 192.77.33.1 到 192.77.33.62 |
| LAN3 | 28 | 192.77.33.64/27 | 192.77.33.65 到 192.77.33.94 |
| LAN8 | 25 | 192.77.33.96/27 | 192.77.33.97 到 192.77.33.126 |
| LAN6 | 20 | 192.77.33.128/27 | 192.77.33.129 到 192.77.33.158 |
| LAN7 | 20 | 192.77.33.160/27 | 192.77.33.161 到 192.77.33.190 |
| LAN2 | 10 | 192.77.33.192/28 | 192.77.33.193 到 192.77.33.206 |
| LAN4 | 10 | 192.77.33.208/28 | 192.77.33.209 到 192.77.33.222 |
| LAN5 | 4 | 192.77.33.224/29 | 192.77.33.225 到 192.77.33.230 |
| WAN1 | 2 | 192.77.33.232/30 | 192.77.33.233 到 192.77.33.234 |
| WAN2 | 2 | 192.77.33.236/30 | 192.77.33.237 到 192.77.33.238 |
| WAN3 | 2 | 192.77.33.240/30 | 192.77.33.241 到 192.77.33.242 |
答案说明
这不是唯一答案。只要满足每个子网主机数要求、地址块不重叠、全部落在 192.77.33.0/24 内,就是合理分配。
4-31 CIDR 地址块范围
原题
已知地址块中的一个地址是 140.120.84.24/20。试求这个地址块中的最小地址和最大地址。地址掩码是什么?地址块中共有多少个地址?相当于多少个 C 类地址?
解析
/20 表示前 20 bit 为网络前缀。
子网掩码为:
255.255.240.0 |
第三个字节的块大小:
256 - 240 = 16 |
第三个字节为 84,属于:
80 到 95 |
所以地址块范围是:
140.120.80.0 到 140.120.95.255 |
地址总数:
2^(32-20) = 4096 |
一个 C 类 /24 地址块有 256 个地址:
4096 / 256 = 16 |
答案
| 项目 | 答案 |
|---|---|
| 最小地址 | 140.120.80.0 |
| 最大地址 | 140.120.95.255 |
| 地址掩码 | 255.255.240.0 |
| 地址总数 | 4096 个 |
| 相当于 C 类地址数 | 16 个 C 类地址块 |
4-33 等长子网划分
原题
某单位分配到一个地址块 136.23.12.64/26。现在需要进一步划分为 4 个一样大的子网。试问:
- 每个子网的网络前缀有多长?
- 每一个子网中有多少个地址?
- 每一个子网的地址块是什么?
- 每一个子网可分配给主机使用的最小地址和最大地址是什么?
解析
原地址块是 /26,共有:
2^(32-26) = 64 个地址 |
要划分为 4 个一样大的子网,需要再借 2 bit:
2^2 = 4 |
新前缀为:
/26 + 2 = /28 |
每个 /28 子网有:
2^(32-28) = 16 个地址 |
可用主机地址为:
16 - 2 = 14 个 |
答案
| 子网 | 地址块 | 可用最小地址 | 可用最大地址 | 广播地址 |
|---|---|---|---|---|
| 1 | 136.23.12.64/28 | 136.23.12.65 | 136.23.12.78 | 136.23.12.79 |
| 2 | 136.23.12.80/28 | 136.23.12.81 | 136.23.12.94 | 136.23.12.95 |
| 3 | 136.23.12.96/28 | 136.23.12.97 | 136.23.12.110 | 136.23.12.111 |
| 4 | 136.23.12.112/28 | 136.23.12.113 | 136.23.12.126 | 136.23.12.127 |
4-37 RIP 路由表更新
原题
假定网络中的路由器 B 的路由表有如下项目,这三列分别表示“目的网络”“距离”和“下一跳路由器”:
| 目的网络 | 距离 | 下一跳 |
|---|---|---|
| N1 | 7 | A |
| N2 | 2 | C |
| N6 | 8 | F |
| N8 | 4 | E |
| N9 | 4 | F |
现在 B 收到从 C 发来的路由信息,这两列分别表示“目的网络”和“距离”:
| 目的网络 | 距离 |
|---|---|
| N2 | 4 |
| N3 | 8 |
| N6 | 4 |
| N8 | 3 |
| N9 | 5 |
试求出路由器 B 更新后的路由表,并说明每一步。
解析
B 收到 C 的信息后,先把所有距离加 1,因为从 B 到这些网络要先经过 C。
| 目的网络 | C 发来的距离 | B 经 C 的新距离 |
|---|---|---|
| N2 | 4 | 5 |
| N3 | 8 | 9 |
| N6 | 4 | 5 |
| N8 | 3 | 4 |
| N9 | 5 | 6 |
逐项更新:
- N1:C 没提供,保持原来
7, A。 - N2:原下一跳就是 C,所以更新为
5, C。 - N3:原表没有,加入
9, C。 - N6:原来是
8, F,现在经 C 为 5,更短,更新为5, C。 - N8:原来是
4, E,现在经 C 也是 4,不更短,保持4, E。 - N9:原来是
4, F,现在经 C 为 6,更差,保持4, F。
答案
| 目的网络 | 距离 | 下一跳 |
|---|---|---|
| N1 | 7 | A |
| N2 | 5 | C |
| N3 | 9 | C |
| N6 | 5 | C |
| N8 | 4 | E |
| N9 | 4 | F |
易错点
如果原来的下一跳就是发来更新的路由器 C,即使距离变大,也要更新。因为这代表经 C 到达该网络的最新信息。
5-08 UDP 面向报文,TCP 面向字节流
原题
为什么说 UDP 是面向报文的,而 TCP 是面向字节流的?
解析
UDP 保留应用层交付数据的边界。应用层一次交给 UDP 一个报文,UDP 就添加首部后形成一个 UDP 用户数据报。接收方 UDP 也按一个完整用户数据报交付给应用层。
TCP 不保留应用层写入数据的边界。应用层多次写入的数据,在 TCP 看来只是连续的字节流。TCP 可以把应用层一次写入的数据拆开发送,也可以把多次写入的数据合并发送。
答案
UDP 面向报文,是因为 UDP 对应用层交下来的每个报文都分别封装并交付,保留报文边界;TCP 面向字节流,是因为 TCP 把应用层数据看成无结构的连续字节序列,不保留应用层写入边界。
举例
应用层连续调用两次发送:
send("hello") |
UDP 接收方通常看到两个报文:hello 和 world。
TCP 接收方可能一次读到 helloworld,也可能分几次读到 hel、lowor、ld,边界由 TCP 缓冲和应用读取方式决定。
5-23 TCP 序号与确认号
原题
主机 A 向主机 B 连续发送了两个 TCP 报文段,其序号分别是 70 和 100。试问:
- 第一个报文段携带了多少字节的数据?
- 主机 B 收到第一个报文段后发回的确认中的确认号应当是多少?
- 如果 B 收到第二个报文段后发回的确认号是 180,试问 A 发送的第二个报文段中的数据有多少字节?
- 如果 A 发送的第一个报文段丢失了,但第二个报文段到达了 B。B 在第二个报文段到达后向 A 发送确认。这个确认号应为多少?
解析
TCP 序号表示本报文段数据第一个字节的编号。
第一个报文段序号为 70,第二个报文段序号为 100,说明第一个报文段覆盖字节:
70 到 99 |
所以第一个报文段数据长度为:
100 - 70 = 30 字节 |
收到第一个报文段后,B 期望下一个字节是 100,因此确认号为 100。
如果 B 收到第二个报文段后确认号为 180,说明已经按序收到 179 号字节,下一步期望 180。第二个报文段从 100 开始,所以长度为:
180 - 100 = 80 字节 |
如果第一个报文段丢失,第二个报文段虽然到了,但 B 仍然缺少从 70 开始的数据,因此累积确认号仍为 70。
答案
- 第一个报文段携带
30 字节数据。 - 收到第一个报文段后确认号为
100。 - 第二个报文段携带
80 字节数据。 - 若第一个报文段丢失而第二个到达,确认号应为
70。
5-30 TCP 最大吞吐量
原题
设 TCP 使用的最大窗口为 65535 字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时间为 20 ms,问所能得到的最大吞吐量是多少?
解析
吞吐量受窗口和 RTT 限制:
最大吞吐量 = 窗口大小 / RTT |
代入:
65535 字节 / 0.02 s = 3276750 字节/s |
换算为 bit/s:
3276750 × 8 = 26214000 bit/s |
答案
最大吞吐量 = 26.214 Mbit/s |
约为 26.2 Mbit/s。
5-31 TCP 窗口与链路利用率
原题
通信信道带宽为 1 Gbit/s,端到端传播时延为 10 ms,TCP 的发送窗口为 65535 字节。试问:可能达到的最大吞吐量是多少?信道利用率是多少?
解析
通常“端到端传播时延”理解为单程传播时延,因此:
RTT ≈ 2 × 10 ms = 20 ms |
最大吞吐量:
65535 字节 / 0.02 s = 3276750 字节/s |
即:
26.214 Mbit/s |
信道利用率:
26.214 Mbit/s / 1000 Mbit/s = 0.026214 = 2.6214% |
答案
按单程传播时延 10 ms 理解:
最大吞吐量约为 26.2 Mbit/s |
补充说明
如果题目或老师明确把 10 ms 当作 RTT,则最大吞吐量为约 52.4 Mbit/s,利用率约 5.24%。但教材题中“传播时延”通常指单程时延,因此优先按 RTT=20 ms 计算。
5-65 TCP 报文段中的确认字段
原题
假定主机 A 向主机 B 发送一个 TCP 报文段。在这个报文段中,序号是 50,而数据一共有 6 字节长。试问,在这个报文中的确认字段是否应当写入 56?
解析
TCP 序号和确认号的方向不同。
- 序号 50 表示 A 发送给 B 的数据从第 50 号字节开始。
- 数据长度为 6 字节,说明 A 发出的数据覆盖 50 到 55。
- B 收到后,如果要确认 A 的数据,B 发回的确认号应为 56。
但是题目问的是 A 发给 B 的这个报文段中的确认字段是否应写入 56。A 报文段中的确认号用于确认 B 发给 A 的数据,而不是确认 A 自己发出的数据。
答案
不一定,也通常不应根据这个报文段自身的序号和长度写 56。56 应该出现在 B 返回给 A 的确认号中,表示 B 已收到 A 发来的 50 到 55 号字节,下一步期望收到 56 号字节。A 发给 B 的报文段中的确认号取决于 A 已收到 B 的哪些数据。
5-66 TCP 序号是否按报文段编号
原题
主机 A 通过 TCP 连接向主机 B 发送一个很长的文件,因此需要分成很多个报文段来发送。假定某一个 TCP 报文段的序号是 x,那么下一个报文段的序号是否就是 x+1?TCP 的吞吐量应当是每秒发送的数据字节数,还是每秒发送的首部和数据之和的字节数?
解析
TCP 的序号按字节编号,不按报文段编号。
如果某报文段序号为 x,携带 n 字节数据,那么下一个报文段序号应为:
x + n |
只有当该报文段只携带 1 字节数据时,下一个序号才是 x+1。
关于吞吐量,要看统计口径:
- 若讨论应用层文件传输效率,通常看每秒成功传输的有效数据字节数。
- 若讨论链路占用或网络负载,则可能统计 TCP 首部、IP 首部、链路层首部等开销。
答案
下一个 TCP 报文段的序号不一定是 x+1,而应是 x + 本报文段携带的数据字节数。TCP 传送文件时通常关注有效数据吞吐量,即每秒成功传输的文件数据字节数;若计算链路利用或协议开销,则需要把首部也计入传输总量。
第三部分:考前速记清单
1. 必背公式
发送时延 = 数据长度 / 发送速率 |
2. 必背协议特点
| 协议 | 重点 |
|---|---|
| ARP | IP 地址解析为 MAC 地址,只解析下一跳 |
| IP | 尽力而为,无连接,不可靠 |
| ICMP | 差错报告和网络探测 |
| RIP | 距离向量,UDP,最大 15 跳,16 不可达 |
| OSPF | 链路状态,直接用 IP |
| BGP | 外部网关协议,TCP |
| UDP | 无连接,面向报文,首部 8 字节 |
| TCP | 面向连接,可靠,面向字节流,首部至少 20 字节 |
| DNS | UDP 为主,必要时 TCP |
| FTP | TCP,有控制连接和数据连接 |
| TFTP | UDP,简单文件传输 |
3. 最常考易错点
- TCP 序号按字节编号,不按报文段编号。
- TCP 确认号表示期望收到的下一个字节编号。
- SYN 和 FIN 都消耗一个序号。
- IP 片偏移单位是 8 字节,不是 1 字节。
- 除最后一个 IP 分片外,数据部分长度必须是 8 字节整数倍。
- 路由器转发时通常会改变 MAC 地址、TTL 和 IP 首部检验和。
- 没有 NAT 时,源 IP 和目的 IP 在转发过程中通常不变。
- ARP 解析的是下一跳 MAC,不一定是最终目的主机 MAC。
- CIDR 查路由表时用最长前缀匹配。
- 子网划分优先从大子网开始分配,避免碎片化。
