| 命题 / 问题 | 答案 | 为什么 |
| 架构 · 分层 · 交换(midterm 范围) |
| "narrow waist(细腰)" 协议是哪个?(WiFi/BGP/HTTP/TCP/IP) | IP | 沙漏细腰 = IP 层;上网的所有人都必须说 IP。TCP/HTTP 在上、链路在下,都可替换,唯 IP 不可。 |
| 分层(layering)直接带来什么?(Reliability / Modularity / Transfer Speed / Abstraction / Addressing) | Modularity + Abstraction | 分层给的是模块化 + 抽象。Reliability、Addressing 要在某一层内部实现;Transfer Speed 反而可能因 overhead 变慢。 |
| End-to-End 原则:网络(路由器)必须实现可靠性才能保证可靠传输。 | False | E2E:端主机足以保证可靠性;路由器可以帮忙但不是必须。可靠性正确性最终靠两端(TCP)。 |
| Packet switching 相比 circuit switching 的核心优势? | 统计复用 | Statistical multiplexing:无需预留、突发流量下高效。代价:排队时延、无带宽保证。Circuit 反之:保证带宽但利用率低。 |
| IP 层提供可靠、有序、保证送达的服务。 | False | IP 是 best-effort:可能丢/乱序/重复,无连接。可靠性交给 TCP。 |
| 更高的带宽(bandwidth)会降低 propagation delay。 | False | propagation = 距离/光速,与带宽无关。带宽只影响 transmission delay(= size/带宽)。 |
| 性能 · 寻址 · 转发(midterm 范围) |
| store-and-forward 路由器在转发前必须收到整个包。 | True | 所以 N 跳端到端要累加每跳一次 transmission delay。队列时延不固定,随负载暴涨。 |
| 一个 /n 前缀包含多少地址? | 2^(32−n) | 如 /24 → 256 个,/25 → 128 个,/32 → 1 个(单主机)。 |
| Longest Prefix Match 的结果依赖转发表里表项的先后顺序。 | False | LPM 只看"匹配到的最长前缀",与表项排列无关。前缀越长越具体越优先;default route = 0.0.0.0/0。 |
| 任意两个前缀都能聚合(aggregate)成一个。 | False | 只有相邻且对齐的两个 /n 才能合并成 /(n−1)(否则引入不该有的地址)。 |
| IP 头 · 分片 · Traceroute(midterm 范围) |
| TTL 的作用?到 0 时发生什么? | 防环 | 每跳 −1;减到 0 → 丢弃 + 回送 ICMP Time Exceeded。traceroute 靠这个(TTL=1,2,3… 逐跳探测;*=该跳不回)。 |
| IP header checksum 每一跳都要重算。 | True | 因为 TTL 每跳都变;且 checksum 只保护 header,不保护数据。 |
| 分片后由沿途路由器重组。 | False | 只有目的主机重组。offset 以 8 字节为单位;MF=1 表示后面还有片。 |
| IPv6 路由器可以对包分片。 | False | IPv6 路由器不分片(源端负责/PMTUD);IPv6 去掉了 header checksum,固定 40B 头。 |
| 域内路由 DV / LS(midterm 范围) |
| Link-State 需要每个节点知道整个网络拓扑。 | True | LS:flooding 全网链路信息 → 本地跑 Dijkstra。DV 只和邻居交换距离向量。 |
| count-to-infinity 是 Link-State 的问题。 | False | 是 Distance-Vector 的问题(断链后距离缓慢爬升)。LS 有全局视图,不会。 |
| poison reverse / split horizon 能消除所有路由环。 | False | 只解两节点环;≥3 节点仍可能 count-to-infinity。所以设 INFINITY 上限(=16)。 |
| DV 比 LS 收敛快。 | False | DV 收敛慢(逐跳传播);LS 收敛快但 flooding 开销大、要更多内存/算力。 |
| BGP · 域间(midterm 范围) |
| BGP 选路优先级顺序? | C>Pe>Pr | customer > peer > provider(走 customer 收钱,peer 免费,provider 要付费)。 |
| 从 peer/provider 学到的路由,要不要告诉另一个 peer 或 provider? | 不告诉 | Export 规则:customer 学的 → 告诉所有人;peer/provider 学的 → 只告诉自己的 customer。只为能赚钱的流量做转发。 |
| BGP 总是选 AS-path 最短的路径。 | False | 先看 policy / LocalPref(商业关系),再看 AS-path 长度。钱 > 路短。 |
| BGP 靠什么防环? | AS-path | path-vector:通告带完整 AS-path,看到自己 AS 在里面就丢弃。valley-free:上坡 → ≤1 peer 平边 → 下坡。 |
| TCP · 拥塞控制(midterm 范围) |
| SYN 和 FIN 各占用序号吗? | 各占 1 | 算 seq/ack 时别漏:SYN 占 1 个序号,FIN 也占 1 个。ISN 随机。 |
| ACK 号的含义? | 下一期望字节 | ack = 已连续收到的最后字节 + 1。cumulative ACK:丢中间段则 ack 卡住 → 重复 ack → 3 dup 快重传。 |
| UDP 提供可靠、有序传输。 | False | UDP 无连接、不可靠、不保证顺序,只加端口 + 校验;要可靠自己在应用层做。 |
| "Slow start" 是缓慢的线性增长。 | False | 名字骗人:slow start 是指数增长(每 RTT 翻倍)。线性是 congestion avoidance(AIMD,每 RTT +1)。 |
| timeout 和 3-dup-ACK 处理一样吗? | 不一样 | timeout:ssthresh=cwnd/2,cwnd=1,回 slow start。3 dup ACK:ssthresh=cwnd/2,cwnd=cwnd/2,留在 CA。 |
| 实际发送窗口取什么? | min(cwnd,rwnd) | 拥塞窗口 cwnd(防网络拥塞)与接收窗口 rwnd(防接收方溢出)取小。AIMD 收敛公平,但 RTT 小的流抢更多。 |
| 🆕 DNS |
| DNS 查询顺序:root → TLD → authoritative。 | True | 层级委派:root 知道 .com 等 TLD server;TLD 知道各域的 authoritative server;authoritative 给最终答案。 |
| 递归查询中,root server 替 resolver 去问 TLD server。 | False | root/TLD 通常只做迭代(iterative):返回 referral("去问它")。做递归的是本地 resolver(替客户端把整条链查完)。 |
| resolver 缓存记录可以永久使用。 | False | 每条记录带 TTL,过期必须重查。TTL 短→更新快但查询多;TTL 长→省流量但改动传播慢。 |
| CNAME 记录把域名映射到 IP 地址。 | False | CNAME = 别名 → 另一个域名。映射到 IP 的是 A(IPv4)/ AAAA(IPv6)。NS 指名字服务器,MX 指邮件服务器。 |
| glue record 是干嘛的? | 防循环依赖 | 如果 example.com 的 NS 是 ns.example.com,查 NS 又要先查它的 IP → 死循环。父区(TLD)直接附上该 NS 的 A 记录(glue)破环。 |
| 🆕 HTTP · CDN |
| HTTP GET 和 POST 语义相同。 | False | GET 取资源(幂等、可缓存);POST 提交数据(非幂等)。另有 HEAD(只要头)、PUT、DELETE。 |
| 状态码 301 和 404 分别代表? | 重定向/不存在 | 2xx 成功(200 OK)、3xx 重定向(301 永久移动、304 Not Modified)、4xx 客户端错(404)、5xx 服务器错(500)。 |
| persistent connection 的好处? | 省握手 | 一条 TCP 连接复用多个请求,省去每次的握手 + slow start。pipelining 再省:连发多个请求不等回复(但有 head-of-line blocking)。 |
| conditional GET 靠什么头实现? | If-Modified-Since | 客户端带 If-Modified-Since / If-None-Match(ETag);没变则回 304 Not Modified(不带 body),省带宽。缓存新鲜度由 Cache-Control: max-age / Expires 控制。 |
| HTTP 本身有状态,能记住用户。 | False | HTTP 无状态。状态靠 cookie:server 用 Set-Cookie 下发,client 之后每次请求自动带上。 |
| CDN 怎么把用户导到最近的 edge server? | DNS 重定向 | CDN 控制域名的 authoritative DNS,按用户(resolver)位置/负载返回就近 edge server 的 IP。edge 缓存内容:命中直接回,未命中回源(origin)取。好处:低时延、省骨干带宽、抗热点。 |
| 🆕 Ethernet · Switching · STP |
| MAC 地址和 IP 地址一样是分层(可聚合)的。 | False | MAC 是 48-bit 扁平地址(烧在网卡里,全球唯一),不可聚合;IP 是层级的、按拓扑分配。所以 L2 靠学习表、L3 靠前缀。 |
| switch 怎么学到"MAC → 端口"映射? | 看源地址 | Learning:收到帧就记(源 MAC → 入端口)。目的 MAC 查表命中→单端口转发;未命中/广播 → flood(除入端口外全发)。表项有超时。 |
| L2 网络有环时,广播帧会怎样? | 无限循环 | 以太网帧没有 TTL → 广播风暴、学习表抖动。所以要 STP 把物理环剪成逻辑树。 |
| STP 选谁当 root?非树端口怎么办? | 最小 ID | root = bridge ID 最小者;每台交换机按 (到 root 距离, 邻居 ID…) 选最优路径,非树端口 block(不转发数据但仍听 BPDU)。链路挂了自动重算。 |
| 🆕 ARP · DHCP · NAT · TLS |
| ARP 用来解析什么到什么? | IP→MAC | 同一子网内:广播"谁有 IP x.x.x.x?"→ 目标主机单播回自己的 MAC。结果进 ARP cache(带超时)。出子网则 ARP 网关(default gateway)的 MAC。 |
| DHCP 四步(DORA)顺序? | D-O-R-A | Discover(客户端广播找服务器) → Offer(服务器提供 IP) → Request(客户端广播选定) → Ack(确认+租期)。发的还有:掩码、网关、DNS server。lease 到期要续租。 |
| NAT 转换表的 key 是什么? | 五元组/端口 | 出包:改 (内网IP:port) → (公网IP:新port),记入映射表;回包按表反查改回。多台主机共享一个公网 IP,靠端口区分。副作用:外部无法主动连入(要端口映射/打洞),破坏 E2E。 |
| TLS 中证书(certificate)的作用? | 证明身份 | 证书 = CA 用私钥签名的 "域名 ↔ 公钥" 绑定。客户端用内置的 CA 公钥验证签名 → 确认 server 公钥可信 → 防中间人。信任链:root CA → 中间 CA → 站点证书。 |
| TLS 握手后用公钥加密所有数据。 | False | 非对称(公钥)只用于握手/密钥交换(如 Diffie-Hellman,验证书、协商出对称 session key);之后数据用对称加密(快得多)。TLS 提供:机密性 + 完整性 + 服务器身份认证。 |
| 🆕 Datacenters |
| 数据中心里 east-west 流量指什么? | 服务器互访 | east-west = DC 内部 server↔server(占大头);north-south = DC ↔ 外网用户。内部流量大 → 需要大 bisection bandwidth。 |
| 为什么用 Clos / fat-tree 而不是一台大交换机? | 小件拼大网 | 用大量廉价小端口交换机拼出大规模、多路径、可横向扩展的拓扑;单大交换机贵且是单点。 |
| full bisection bandwidth 意味着什么? | 无阻塞 | 把网络对半切,两半之间的带宽 ≥ 一半主机满速总带宽 → 任意主机对可同时满速通信。oversubscription = 下行容量 : 上行容量(如 4:1 表示上行只有 1/4)。 |
| ECMP 按什么分流? | 流哈希 | Equal-Cost Multi-Path:对五元组哈希选一条等价路径 → 同一条 flow 走同一路径(保序),不同 flow 分散。缺点:大象流可能撞车(哈希碰撞不均衡)。 |
| 🆕 SDN · Host Networking |
| SDN 的核心思想? | 控转分离 | control plane(算路由,逻辑集中在 controller)与 data plane(转发,留在交换机)分离。controller 有全局视图,往交换机下发规则;传统网络每台设备自己跑分布式协议。 |
| SDN 交换机的转发规则长什么样? | match-action | match(按头部字段匹配,可通配)+ action(forward/drop/改头/送 controller)+ priority。表未命中可上送 controller 决策。灵活但 controller 是单点/瓶颈(需冗余)。 |
| kernel bypass(如 DPDK)为什么快? | 绕内核 | 应用直接轮询网卡收发包,跳过内核协议栈、系统调用、中断和拷贝。代价:烧 CPU 轮询、放弃内核通用功能。RDMA 更进一步:网卡直接读写远端内存,CPU 不参与。 |
| 常见 NIC offload 有哪些? | 校验/分段 | checksum offload、TSO/GSO(大段交给网卡切分)、LRO/GRO(接收聚合)、RSS(多队列按哈希分核)。把 per-packet 工作从 CPU 挪到网卡。 |
| 🆕 Multicast · Collectives |
| multicast 比逐个 unicast 好在哪? | 链路只发一次 | 沿分发树转发,每条链路每个包只走一次,分叉处复制 → 省带宽。组成员用 IGMP 向本地路由器声明加入/离开组。 |
| RPF(Reverse Path Forwarding)检查什么? | 来路端口 | 只接受从"通往源的最短路径端口"进来的组播包,其他一律丢 → 防环、剪掉冗余泛洪。 |
| scatter 和 broadcast 的区别? | 分块 vs 全量 | broadcast:根把同一份数据发给所有人;scatter:根把数据切块每人一块;gather 反向收块;all-gather:人人集齐所有块;reduce:聚合(如求和)到根;all-reduce = reduce + broadcast(人人拿到聚合结果)。 |
| ring all-reduce 每节点通信量公式? | 2(N−1)/N·D | 数据 D 切 N 块,reduce-scatter 阶段 (N−1) 步 + all-gather 阶段 (N−1) 步,每步传 D/N → 共 2(N−1)D/N ≈ 2D,与 N 基本无关(带宽最优);代价是 2(N−1) 步的延迟。 |
| 🆕 Wireless · Cellular |
| SNR 越高,可用的传输速率越高。 | True | 信噪比高 → 可用更密的调制 → 更高 bit rate(Shannon)。距离远/干扰大 → SNR 降 → 自动降速率。无线还会衰减、多径、被遮挡——错误率远高于有线。 |
| hidden terminal 问题是什么? | 互听不见 | A、C 都听得见 B 但互相听不见 → 同时发给 B 在 B 处碰撞,carrier sense 失效。exposed terminal 反过来:听得见别人发送而不敢发,其实并不会冲突(过度保守)。 |
| 无线为什么用 CSMA/CA 而不是 CSMA/CD? | 测不到碰撞 | 无线电半双工、自己发送时听不到碰撞(自身信号淹没接收)→ 不能 CD(检测),只能 CA(避免):先听、随机退避、收到帧后对方回 link-layer ACK 才算成功。可选 RTS/CTS 预约信道缓解 hidden terminal。 |
| WiFi 客户端怎么接入 AP? | 扫描+关联 | AP 周期广播 beacon(SSID);客户端扫描 → 认证 → association(绑定到某 AP)。之后所有流量经 AP 中转。 |
| 蜂窝网络 handoff 时连接会断吗? | 不断 | 移动设备跨基站(cell tower)时由网络协调切换(handoff),核心网(core network)更新路径、IP 层面保持连接。蜂窝架构:设备 ↔ 基站(RAN) ↔ 核心网 ↔ Internet;频谱是授权的(WiFi 用免许可频段)。 |