计算机网络综合题

按网络分层连接一次通信,讲解地址规划、逐跳转发、协议字段、窗口与时延题。

网络综合题通常围绕一张拓扑图或一次通信展开,同一题可以同时问地址、转发、协议字段和耗时。学习时应先建立分层关系:应用提出什么请求,传输层维护什么状态,IP 怎样选路,链路层怎样把这一跳的数据送出去。

这个板块包含哪些知识

网络分层图谱把“各层负责什么”与“一次端到端访问”连在一起。本页常用的知识可以按层归纳:

  • 应用层:DNS、DHCP、HTTP、FTP 的作用与交互次序,以及连接是否复用。
  • 传输层:端口、TCP 建连与释放、序号确认号、接收窗口、拥塞控制。
  • 网络层:IPv4 与 CIDR、子网划分和聚合、路由表、最长前缀匹配、分片、TTL、NAT 和路由协议。
  • 链路与物理层:MAC、ARP、交换机学习、广播域与冲突域、滑动窗口、CSMA/CD、发送与传播时延。

这些内容会在一次访问中相遇。例如访问异网服务器,IP 目的地址通常仍是服务器,当前帧的目的 MAC 则是下一跳网关。算时间时,也要把应用交互次数、TCP 数据发送过程与链路上的传输时延联系起来。

先判断每一小问处理的是哪个对象,再把各层结果接回完整通信过程。

常见考点与题型

综合题可能组合下面几类小问。先看要求求什么,再确定需要调用哪些知识。

题型题干中的线索解题思路
地址规划与转发主机数、掩码、路由表、最少表项按需求划分且检查边界对齐;聚合查公共前缀;转发用最长匹配
逐跳封装与设备追踪主机访问服务器、ARP、交换表、NAT按时间列帧,记录每跳地址和表项变化,先看缓存及已有配置
报文字段与分片十六进制首部、MTU、seq / ack按实际首部长度定位字段,结合协议含义换算字节数和偏移
TCP 窗口与总时间MSS、RTT、缓存、拥塞阈值维护已发送未确认数据、cwnd 与 rwnd,逐轮或按报文事件推进
链路效率与距离限制帧长、速率、传播距离、窗口分别算发送与传播时间,再套对应协议的等待和窗口约束
路由协议与网络范围AS、收敛、RIP / OSPF / BGP先区分 AS 内外和协议机制,再依题设策略分析传播与选路

解题前要弄清的关系

一、分层封装与逐跳转发

应用层数据 → TCP 段(加 seq/ack/窗口) → IP 分组(加源/目的 IP、TTL)
           → 帧(加源/目的 MAC) → 比特流

逐跳追踪时先区分普通转发与地址转换:

  1. 普通 IP 转发保持源、目的 IP;跨路由器时重新封装链路层首部,二层交换转发通常不改源、目的 MAC——跨网时帧的目的 MAC 是默认网关的 MAC,见 MAC 地址、ARP 流程;
  2. 题设有 NAT 时还需追踪 IP 地址和可能的端口转换,出方向改源、入方向改目的,见 NAT 表。

二、地址规划、聚合与路由查找

  1. 切:由需求主机数解主机位 2ᴺ − 2 ≥ 需求,剩下的位给子网号,见 子网划分、变长子网划分
  2. 聚:同方向且边界对齐的前缀按共同前缀合并,检查是否覆盖了额外地址,前缀每短 1 位合并两条,见 子网聚合
  3. 查:转发一律 最长前缀匹配;路由表格式见 路由表

三、设备按「隔离什么」来选

要隔离选谁见
都不隔离集线器冲突域
只隔离冲突域交换机交换机
冲突域和广播域都隔离路由器广播域

在典型二层拓扑题中,主机和服务器也有 IP;交换机端口和集线器端口不承担三层转发。作为网关的路由器接口要配置该网段的接口 IP,该地址才是主机的默认网关。

四、时间题的三套模型互不通用

  1. 链路层看一帧:利用率 = min(1, N × 数据帧发送时延 ÷ (发送时延 + RTT + 确认帧时延))(无差错、确认等待模型),见 信道利用率、窗口大小限制
  2. 传输层看一轮 RTT:拥塞窗口每轮翻倍或加一,见 拥塞控制、慢开始
  3. CSMA/CD 看一个 2τ:最小帧长 = 2τ × 数据率,见 限制条件

五、序号按字节推进,SYN 和 FIN 各占一个序号

数据首字节序号 = 初始序号 + 1;FIN 的序号 = 最后一个数据字节 + 1;累计确认号是期望收到的下一个字节序号;乱序到达不会自动跨过缺失字节推进确认号。见 三次握手、四次挥手、滑动窗口机制。

各类题的解法

下面分别展开地址、逐跳追踪、时间和协议题;同一综合题可能需要组合使用。

先认出这一问属于哪一种

题干里出现类型第一笔写什么
若干局域网、需求主机数、要求路由项尽可能少地址规划与填表2ᴺ − 2 ≥ 需求
拓扑图 + 「H1 访问 H2 / 服务器」逐跳封装与设备追踪先判断源和目的在不在同一网络
一串十六进制、或 IP/TCP 首部字节清单报文字段解读画字节尺:以太网头 14B,IP 头内源 IP 在第 13~16 字节
RTT、MSS、拥塞窗口、接收缓存传输层时间与窗口列轮次表,每轮写 cwnd
距离、传播速率、数据率、利用率链路层效率与限制先算单程传播时延 τ
RIP / OSPF / BGP、AS、收敛路由协议与算法先按规模选协议

地址题按四类顺序填路由表

1. 直连网络     下一跳留空,只写接口
2. 特定主机路由 掩码 255.255.255.255
3. 远端 / 聚合  下一跳 = 对端路由器接口的 IP
4. 默认路由     0.0.0.0 / 0.0.0.0

要求「路由项尽可能少」就先聚合同方向的连续前缀:/25 + /25 → /24(2009#47)、/24 + /24 → /23(2014#43)、/25 + /24 → /23(2013#47)。聚合之后仍然服从最长前缀匹配,2013#47 的 194.17.20.200 同时匹配 /23 和 /25,走 /25 那一条。

变长划分从最大需求切起:2025#47 先切生活区 10.10.10.128/25,再切作业区 10.10.10.64/26。可用主机数要连路由器接口一起扣:2018#47 是 126 − 80 − 1 = 45。

分片固定三步(见 IP 数据报分片):

最大片数据 = ⌊(MTU − 首部) ÷ 8⌋ × 8
片数       = ⌈(总长度 − 首部) ÷ 最大片数据⌉(各片首部等长、采用最大合法片数据的简化模型)
片偏移     = 它前面的数据字节数 ÷ 8

追踪题按帧序列写,不跳步

在该题 DNS 服务器位于本地、相关缓存为空等条件下,访问顺序是:ARP 查本地 DNS 服务器 → DNS 请求与响应 → 发现目的不在本网 → ARP 查默认网关 → 才发 HTTP(2021#47)。配套的三条口径:

  • 交换机的转发表只记「从某端口进来过的帧的源 MAC」,从没主动发过帧的主机不进表;
  • 广播帧(DHCP Discover、ARP 请求)的目的 MAC 是全 1,同一广播域内所有接口都收到,Discover 的源 IP 是 0.0.0.0、目的 IP 是 255.255.255.255;
  • 802.11 数据帧三个地址按「帧来自 AP」记:地址 1 接收端、地址 2 是 AP、地址 3 发送端,见 802.11 数据帧地址。

问「经过路由器改了哪些字段」只写变的那几个:源/目的 IP(仅 NAT)、TTL 减 1、首部校验和重算,有分片再加总长度、标志、片偏移。2011#47 的评分说明写明:把 IP 首部所有字段罗列一遍不给分。

时间题分层套公式

链路层(见 ARQ 协议):

τ = 距离 ÷ 传播速率
停等有效数据率 = 数据比特 ÷ (数据帧发送时延 + 确认帧发送时延 + 2τ)
GBN 利用率 U   = min(1, N × Td ÷ (Td + RTT + Ta))
捎带确认时按题设反向数据帧长度及等待规则计 Ta,不能默认 Ta = Td
GBN 序号位数 k 满足 2ᵏ ≥ N + 1;若题目是 SR,要按题目给出的发送/接收窗口约束另算序号空间
CSMA/CD 最小帧长 = 2τ × 数据率

2017#47 由此得 50%,2025#47 反解出 N ≥ 7.2 取 8、再由 2⁴ ≥ 9 得 4 位;2022#47 用 64B 的最小帧长反推出两站最远 210m。

传输层(见 流量控制、拥塞避免):

发送窗口 = min(拥塞窗口, 接收窗口)
慢开始:每收到一个新确认 cwnd += 1 MSS(每轮翻倍),到阈值转拥塞避免每轮 +1
rwnd(只收不取)= 接收缓存 − 已收字节
总时间(题目忽略处理/排队时延,按整轮 RTT 计)= 1 个 RTT 建连 + 数据轮数 × RTT

2016#41 的三个窗口是 9KB / 12KB / min = 9KB;2026#47 的总时间是 4 个 RTT = 20ms;2023#47 用 6 个 RTT 得 18000B ÷ 60ms = 2.4Mb/s。单向释放连接要 3 次单向传送,也就是 1.5 个 RTT(2016#41 的 300ms)。

协议题按规模和边界答

  1. 跳数可能超过 15 就用 OSPF,小网可用 RIP;若题目采用固定 30 s 更新的简化模型,才用 收敛时间 = 30s × 跳数;
  2. TTL 至少设为「最多经过的路由器数 + 1」,而「到达时的 TTL」= 初始值 − 路径上的路由器台数;
  3. 跨 AS 用 BGP,它是应用层协议、报文封装在 TCP 里;同 AS 内扩散用 iBGP,跨 AS 用 eBGP,都用 UPDATE 报文;
  4. 按题设省略其他优先属性时,可比较 AS 路径长度;一般 BGP 选路还受策略和其他属性影响(2024#47)。

首部与分片:用长度字段划分边界

读十六进制清单,先确认帧格式、IPv4 首部长度 IHL 和 TCP 数据偏移,再标出下一层的起点。以太网常见首部为 14 B,但 VLAN 标签、IP 选项或 TCP 选项都会改变后续位置,不能始终按固定偏移读取。

分片时,从 MTU 扣除本片 IP 首部长度;除最后一片外,数据长度必须是 8 B 的整数倍。片偏移只计算原 IP 数据部分中的偏移,不包含各片重新携带的首部。片数、MF 和总长度分别核对。

TCP 序号:把数据和控制位分别计数

若 SYN 的 seq 为 100,首个数据字节的序号是 101。连续收到 500 B 后,累计 ack 为 601;若接着收到的恰是 FIN 且没有缺失数据,则确认推进到 602。普通 ACK 不额外占用序号。

窗口题除了 min(cwnd,rwnd),还要扣除已发送未确认的数据,才能得到当前还能发送多少。时间题先明确终点是“最后一位到达接收方”还是“最后的确认返回发送方”,两者不能无条件都按整轮 RTT 计算。

历年题索引

六种类型和它们的口径是通用的,下面这张表用于按考点选题和对照不同问法。

真题主线这一年特别问了什么
2009#47子网划分 + 路由表 + 聚合主机路由掩码全 1、默认路由、对端怎么聚合
2010#47CSMA/CD 冲突时间与效率双方都检测到冲突的最短、最长时间
2011#47以太网帧的十六进制解读网关 MAC、ARP 请求的目的 MAC、非流水线要几个 RTT
2012#47IP / TCP 首部字节分析哪几个分组做了填充、已收几字节、由 TTL 差算跳数
2013#47聚合路由表 + 最长匹配某个地址走哪个接口、两台路由器之间用什么协议
2014#42链路状态信息建图 + 最短路径该抽象成哪种数据结构、链式存储怎么定义
2014#43最少路由项 + TTL到达主机时的 TTL;加默认路由后链路状态信息增什么
2015#47DHCP + ARP + 网关配错动态分配的最大地址范围;网关配错的后果
2016#41TCP 三个窗口 + 时间第 8 个确认到达时三个窗口各多大;释放连接最短时间
2017#47GBN 捎带确认 + 利用率还能发几帧、要重发几帧、最大利用率
2018#47子网地址 + IP 分片还能接多少台主机;最大片长度与片偏移
2019#47设备选型 + 接口 IP哪些接口要配 IP;谁能收到发往 .127 的分组
2020#47NAT 表 + 逐跳地址变化经过每一台路由器后源、目的 IP 各是什么
2021#47逐层封装 + 交换表追踪t1 时刻交换表里有什么;H2 至少收到几个帧
2022#47冲突域广播域 + CSMA/CD两台主机最远能隔多少米;802.11 的三个地址
2023#47FTP + 序号 + 拥塞窗口控制连接和数据连接谁是持久的;至少要多长时间
2024#47路由协议选择 + BGP 选路RIP 收敛时间、eBGP 与 iBGP、AS 路径怎么比
2025#47卫星时延 + GBN 窗口 + 变长划分窗口至少多大、序号至少几位
2026#47握手挥手字段 + 窗口 + 总时间最后一个报文段的 seq、ack 和 FIN 各取什么

易错清单

  • 可用主机数只减 2。还要扣掉已分配的主机和路由器接口(2018#47:126 − 80 − 1 = 45)。
  • 聚合完就照聚合项转发。聚合不改变最长前缀匹配的结论(2013#47)。
  • TTL 三种问法混用。「到达时是多少」减路由器台数、「至少设为多少」要加 1、「经过了几个路由器」是两端相减(2014#43、2024#47、2012#47)。
  • 以太网填充的判据记成 64B。判据是有效载荷是否小于 46B(2012#47)。
  • 发送窗口只看拥塞窗口。要取 min(cwnd, rwnd),还要看手里究竟还剩多少数据(2016#41、2026#47)。
  • NAT 一次改两端。出方向只改源 IP,到对侧 NAT 才改目的 IP(2020#47)。
  • 交换表把没发过帧的主机也记进去。它只学源 MAC;但那台主机照样会收到广播帧(2021#47)。
  • 网关配错就答「完全不通」。同网段仍然可达,只有跨网段不通(2015#47)。

上一页:文件系统与磁盘。