目录
一、引言:为什么要学计算机网络
计算机网络是现代信息社会的基础设施。从日常的网页浏览、即时通讯,到企业的分布式系统、云计算平台,再到工业互联网、物联网,一切信息交互都依赖于计算机网络。对于软考考生而言,计算机网络不仅是上午选择题的必考模块(通常占10-15分),也是下午案例分析和论文写作的重要素材来源。
· 层次模型:OSI 七层、TCP/IP 四层、封装/解封装过程
· 物理层:传输介质、编码方式、信道复用、带宽计算
· 数据链路层:以太网协议、MAC 地址、VLAN、CSMA/CD、交换机
· 网络层:IP 协议、子网划分、路由算法(RIP/OSPF/BGP)、ARP/ICMP
· 传输层:TCP 三次握手/四次挥手、拥塞控制、滑动窗口、UDP
· 应用层:DNS、HTTP/HTTPS、FTP、SMTP、TLS 握手
· 网络安全:加密算法、数字证书、防火墙、IDS/IPS、VPN
· 新技术:SDN、NFV、VXLAN、IPv6
学习计算机网络的最佳路径是:从分层模型入手,逐层理解每一层的职责、协议和设备,再通过封装/解封装过程将各层串联起来,最后通过性能计算和真题练习巩固知识点。
二、网络分层模型:OSI 七层 vs TCP/IP 四层
分层是解决复杂问题的经典思维方式。网络协议栈采用分层设计,每一层专注于特定的功能,通过标准接口与相邻层交互,从而降低系统复杂度、提升可维护性。
2.1 OSI 七层参考模型 vs TCP/IP 四层模型
OSI(Open Systems Interconnection)七层模型是 ISO 于 1984 年发布的理论标准,而 TCP/IP 四层模型是实际互联网使用的工业标准。二者的对比如下:
· 从上到下:应表会传网数物(谐音:应表示传往无数物)
· 7-应用层 6-表示层 5-会话层 4-传输层 3-网络层 2-数据链路层 1-物理层
· TCP/IP 四层对应:应用层 = 应用+表示+会话;传输层 = 传输;网际层 = 网络;网络接口层 = 链路+物理
2.2 数据封装与解封装过程
数据在发送方从上层到下层逐层封装,每一层添加自己的协议头(Header);在接收方从下层到上层逐层解封装,每一层去掉对应的协议头。这是网络通信的核心机制。
· 应用层:报文(Message)
· 传输层:报文段 / 段(Segment, TCP)或 用户数据报(Datagram, UDP)
· 网络层:分组 / 包(Packet / Datagram)
· 数据链路层:帧(Frame)
· 物理层:比特流(Bit Stream)
三、物理层:信号传输与编码
物理层是 OSI 模型的最底层,负责在传输介质上传输原始的比特流。它不关心数据的含义,只关心如何将 0 和 1 转换为物理信号(电、光、无线电波)并可靠传输。
3.1 传输介质
传输介质分为有线介质和无线介质两大类。不同介质在带宽、传输距离、抗干扰能力和成本方面差异显著。
| 介质类型 | 子类 | 带宽/速率 | 传输距离 | 抗干扰 | 典型应用 |
|---|---|---|---|---|---|
| 双绞线 (Twisted Pair) |
UTP(非屏蔽) Cat5e/6/6a/7 |
100Mbps ~ 10Gbps | ≤ 100m | 一般 | 以太网、局域网 |
| STP(屏蔽) | 同UTP,略高 | ≤ 100m | 较好 | 工业环境、强电磁干扰区 | |
| 同轴电缆 (Coaxial) |
基带同轴 (50Ω) |
10Mbps | ≤ 500m(粗缆) ≤ 185m(细缆) |
较好 | 早期以太网(10BASE5/2) |
| 宽带同轴 (75Ω) |
数百Mbps | 数公里 | 好 | 有线电视(CATV) | |
| 光纤 (Fiber Optic) |
单模光纤 (SMF, 9μm) |
10Gbps ~ 400Gbps+ | 数十 ~ 上百公里 | 极强 | 骨干网、长途通信、数据中心 |
| 多模光纤 (MMF, 50/62.5μm) |
1Gbps ~ 100Gbps | ≤ 550m | 极强 | 楼宇内、数据中心TOR | |
| 无线介质 | 无线电波 (WiFi, 4G/5G) |
数百Mbps ~ 数Gbps | 数十米 ~ 数公里 | 较差 | WLAN、移动通信 |
| 微波 | 数Gbps | 视距 ~ 50km | 一般 | 点对点回传、卫星通信 | |
| 红外线 | ~数Mbps | ≤ 数米 | 较好 | 遥控器、短距通信 |
· 单模 vs 多模:单模纤芯细(9μm)、用激光、距离远、成本高;多模纤芯粗、用LED、距离近、成本低
· 全反射原理:光从光密介质入射到光疏介质,入射角大于临界角时发生全反射
· 优点:带宽极高、抗电磁干扰、体积小重量轻、传输距离远、保密性好
3.2 数据编码与调制
数字数据在传输前需要转换为适合信道传输的信号。编码方式分为数字-数字编码(如曼彻斯特编码)和数字-模拟调制(如ASK/FSK/PSK/QAM)。
3.2.1 曼彻斯特编码与差分曼彻斯特编码
这是以太网物理层常用的自同步编码方式。每个码元中间都有一个跳变,既作为时钟同步信号,又表示数据。
3.3 信道复用技术
信道复用允许多个用户共享同一条传输介质,提高线路利用率。常见复用方式有:
四类信道复用技术
- FDM(频分复用):将信道划分为多个不同频率的子信道,每个用户占用一个频段。如:ADSL、有线电视、传统无线电广播
- TDM(时分复用):将时间划分为固定的时隙,用户轮流占用整个带宽。如:T1/E1、SDH/SONET、GSM
- WDM(波分复用):光纤中使用不同波长(颜色)的光传输多路信号,本质是光的FDM。如:DWDM(密集波分复用)
- CDMA(码分多址):每个用户使用唯一的正交编码序列,可同时同频传输。如:3G移动通信(WCDMA/CDMA2000)
· 奈奎斯特(无噪声理想信道):最大数据传输率 R = 2W × log₂(V) bps
W = 带宽(Hz),V = 码元离散级数(如二进制 V=2,四进制 V=4)
· 香农(有噪声实际信道):极限数据传输率 C = W × log₂(1 + S/N) bps
S/N = 信噪比(功率比),常以 dB 表示:dB = 10×log₁₀(S/N)。如 SNR=30dB → S/N=1000
四、数据链路层:帧与介质访问控制
数据链路层负责在相邻节点之间可靠传输数据帧。它将物理层的比特流组装成帧,进行差错检测与纠正,并解决共享介质的访问冲突问题。
4.1 CSMA/CD 介质访问控制
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,带冲突检测的载波侦听多路访问)是传统半双工以太网使用的介质访问控制协议。
· CSMA/CD 仅用于半双工模式的共享介质以太网(如 Hub 连接的 10BASE-T)
· 现代全双工交换机网络不使用 CSMA/CD(因为每个端口是独立冲突域,不会冲突)
· 考试中注意区分:集线器 Hub = 共享冲突域,交换机 Switch = 隔离冲突域
4.2 以太网帧结构
以太网(IEEE 802.3)是应用最广泛的局域网技术。以太网帧是数据链路层的传输单位,其结构如下:
4.3 VLAN 虚拟局域网
VLAN(Virtual Local Area Network)是一种将物理局域网在逻辑上划分为多个独立广播域的技术。VLAN 通过隔离广播域提升安全性和带宽利用率,是现代交换网络的基础。
| 特性 | VLAN(802.1Q) | VXLAN(RFC 7348) |
|---|---|---|
| 全称 | Virtual LAN 虚拟局域网 | Virtual eXtensible LAN 可扩展虚拟局域网 |
| 工作层次 | 二层(数据链路层) | 三层之上(MAC-in-UDP 隧道) |
| VID 位数 | 12 bit → 最多 4094 个VLAN | 24 bit → 最多 16M 个VNI |
| 穿越三层网络 | ❌ 不能(需Trunk+MPLS等) | ✅ 原生支持(基于IP/UDP封装) |
| 典型场景 | 企业园区网、数据中心接入层 | 云计算多租户、SDN、大二层网络 |
| 转发设备 | 二层交换机 | VTEP(VXLAN Tunnel End Point) |
五、网络层:IP、子网划分与路由算法
网络层是整个互联网的"导航层",负责将数据包从源主机跨网络路由到目的主机。核心协议包括:IP(寻址+分组)、ARP(地址解析)、ICMP(差错报告)、以及各种路由协议(RIP/OSPF/BGP)。
5.1 IPv4 地址结构与分类
IPv4 地址长度为 32 位(4 字节),通常用点分十进制表示(如 192.168.1.1)。IP 地址由网络号和主机号两部分组成,早期通过地址类别(A/B/C/D/E类)划分,现在主要使用 CIDR(无类域间路由)。
5.2 子网划分与 CIDR
子网划分(Subnetting)通过借用主机号的若干位作为子网号,将一个大网络划分为多个小的子网,提高 IP 地址利用率。CIDR(Classless Inter-Domain Routing,无类域间路由)取消了传统 A/B/C 类,使用前缀长度表示掩码,如 /24 表示前24位是网络号。
· 子网数 = 2借用位数(全0全1子网可用,按RFC 950规定扣2,但考题通常不扣)
· 每个子网可用主机数 = 2剩余主机位数 - 2(全0=网络地址,全1=广播地址)
· 掩码快速计算:/24=255.255.255.0,/25=255.255.255.128,/26=255.255.255.192,/27=255.255.255.224
· 块大小(Block Size)= 256 - 第四个非255掩码值,如/26的块大小=256-192=64
5.3 ARP 地址解析协议
ARP(Address Resolution Protocol)用于将IP 地址(三层)解析为 MAC 地址(二层)。因为二层交换机转发依赖 MAC 地址,而主机只知道目标 IP,因此需要 ARP 做地址映射。
5.4 路由协议:RIP vs OSPF vs BGP
路由协议帮助路由器自动学习网络拓扑,构建路由表。按工作范围分为内部网关协议 IGP(AS 内,如 RIP、OSPF)和外部网关协议 EGP(AS 间,如 BGP)。
| 对比项 | RIP(距离矢量) | OSPF(链路状态) | BGP(路径矢量) |
|---|---|---|---|
| 类型 | IGP 内部网关协议 | IGP 内部网关协议 | EGP 外部网关协议 |
| 算法 | 距离矢量(Bellman-Ford) | 链路状态(Dijkstra SPF) | 路径矢量(Best-path 策略) |
| 度量 Metric | 跳数(Hop Count),最大15跳,16=不可达 | 开销 Cost(默认=10⁸/带宽) | AS-Path 长度、Local-Pref、MED 等多种属性 |
| 适用规模 | 小型网络(≤15跳) | 中大型企业/园区网 | 互联网骨干网、ISP之间 |
| 更新方式 | 定期广播整张路由表(30s) | 触发更新 LSA 洪泛(仅变化部分) | 触发更新,只在变化时发送 Update |
| 防环机制 | 水平分割、毒性逆转、最大跳数 | SPF 算法天然无环 + 区域分层 | AS-Path 属性(看到自己AS号丢弃) |
| 端口 | UDP 520 | IP 协议号 89(不使用TCP/UDP) | TCP 179 |
| 特点 | 配置简单,收敛慢,易产生计数到无穷 | 收敛快,支持区域划分(Area 0骨干) | 可控性最强,策略路由,互联网基石 |
六、传输层:TCP/UDP 与可靠传输
传输层是 OSI 模型中唯一负责端到端(进程到进程)通信的层次。它使用端口号区分同一台主机上的不同应用进程。核心协议有两个:TCP(面向连接、可靠)和 UDP(无连接、尽力而为)。
6.1 TCP vs UDP 对比
| 特性 | TCP(传输控制协议) | UDP(用户数据报协议) |
|---|---|---|
| 连接性 | ✅ 面向连接(三次握手建立,四次挥手释放) | ❌ 无连接(发送前无需建立连接) |
| 可靠性 | ✅ 可靠传输:确认ACK、重传、排序、流量控制 | ❌ 不可靠:不确认、不重传、不保证顺序 |
| 首部开销 | 至少 20 字节(选项最多60B) | 仅 8 字节(源端口+目的+长度+校验和) |
| 流量/拥塞控制 | ✅ 滑动窗口(流量控制) + 慢启动/拥塞避免(拥塞控制) | ❌ 无任何控制,可能丢包也不会降速 |
| 传输方式 | 字节流(Stream),无边界 | 数据报(Datagram),有明确边界 |
| 双工 | 全双工(同一连接双向同时收发) | 全双工(但无连接概念) |
| 典型应用 | HTTP/HTTPS、FTP、SSH、SMTP、Telnet、MySQL | DNS、DHCP、SNMP、RIP、视频/语音直播、QUIC |
| 核心优势 | 可靠、稳定、顺序到达 | 速度快、开销小、实时性好 |
6.2 滑动窗口与可靠传输
TCP 使用滑动窗口(Sliding Window)机制同时实现流量控制(接收方控制发送方速度,避免缓存溢出)和连续 ARQ(批量发送+累积确认,提升传输效率)。
6.3 TCP 三次握手(连接建立)
TCP 是面向连接的协议,双方在传输数据前必须通过三次握手(Three-way Handshake)建立连接,目的是:① 同步双方初始序列号 ISN;② 协商双方窗口大小/MSS等参数;③ 确认双方收发能力正常。
6.4 TCP 四次挥手(连接释放)
TCP 连接是全双工的,释放连接需要四次挥手(Four-way Handshake),因为双方各自独立关闭写通道(发送 FIN),并独立确认对方的关闭请求(ACK)。
6.5 TCP 拥塞控制:cwnd 四相位
TCP 拥塞控制通过动态调整拥塞窗口 cwnd(Congestion Window),防止过多数据注入网络导致路由器过载。经典算法包含四个阶段:慢启动 → 拥塞避免 → 快重传 → 快恢复。
"慢指翻,避加一,三包乘半超回一" —— 慢启动指数翻倍;拥塞避免每RTT+1;收到3个重复ACK,ssthresh=cwnd/2,cwnd=ssthresh(Reno快恢复);超时则cwnd回1重新慢启动(Tahoe)。
七、应用层协议:DNS/HTTP/FTP/SMTP
应用层是 OSI/TCP 模型的最顶层,直接为用户进程提供网络服务。每个应用层协议针对特定业务场景设计,并约定了报文格式、交互时序和语义。软考重点考查:DNS 域名解析、HTTP 各版本对比、FTP 双连接模型、SMTP/POP3/IMAP 邮件三协议。
7.1 DNS 域名系统
DNS(Domain Name System)是一个分布式分层数据库,作用是将人类可读的域名(如 www.example.com)解析为机器可路由的 IP 地址。DNS 使用 UDP 53 端口(响应超过 512B 时切换 TCP 53)。
根域 . → 顶级域 TLD(.com / .cn / .org / .net / .edu)→ 二级域(example.com)→ 三级域(www.example.com / mail.example.com)
DNS 服务器类型:根域名服务器(全球13组根)→ TLD 顶级域服务器 → 权威域名服务器 → 本地递归解析器(Local DNS)
7.1.1 DNS 查询方式:递归查询 vs 迭代查询
- 递归查询(Recursive):请求方要求 DNS 服务器"给我最终答案,找不到就返回错误"——服务器代替请求方一步步查询,主机 → Local DNS 之间常用递归。
- 迭代查询(Iterative):DNS 服务器返回"我不知道,但你可以去问 X",请求方自己再去问 X —— Local DNS → 根/TLD/权威 之间常用迭代。
7.1.2 DNS 记录类型(软考常考)
- A 记录:域名 → IPv4 地址(最常用)
- AAAA 记录:域名 → IPv6 地址
- CNAME 记录:域名 → 域名(别名/规范名,如 www.abc.com → abc.com)
- MX 记录:邮件交换记录(指向邮件服务器,带优先级数字,越小越优先)
- NS 记录:域名服务器记录(指定该域由哪个 DNS 权威解析)
- PTR 记录:反向解析 IP → 域名(用于反垃圾邮件、日志溯源)
- SOA 记录:起始授权机构(区域权威信息、序列号、刷新/重试/过期/TTL)
7.2 HTTP / HTTPS 协议与版本演进
HTTP(HyperText Transfer Protocol)是 Web 的基石,基于 TCP(默认 80 端口),采用"请求-响应"模型。HTTPS = HTTP + TLS/SSL(默认 443 端口),提供加密、完整性、身份认证三重安全保障。
| 对比维度 | HTTP/1.0 | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|---|
| 发布年份 | 1996 年 | 1999 年 | 2015 年(RFC 7540) | 2022 年(RFC 9114) |
| 底层传输 | TCP(短连接) | TCP(默认长连接 keep-alive) | TCP + TLS 1.2+ | QUIC(基于 UDP) |
| 连接复用 | ❌ 每次请求新建 TCP 连接 | ✅ 同域名持久连接(串行) | ✅ 多路复用(单 TCP 连接并行多流) | ✅ QUIC 原生多流,无头阻塞 |
| 队头阻塞 | 严重(每请求一连接) | 有(串行请求流水线) | ✅ HTTP 层解决,但TCP 层仍有 | ✅✅ 彻底解决(UDP 无流阻塞) |
| 头部压缩 | ❌ 纯文本重复发送 | ❌ 纯文本 | ✅ HPACK 静态+动态字典 | ✅ QPACK(多路复用安全) |
| 服务器推送 | ❌ | ❌ | ✅ Server Push(CSS/JS提前发) | 🟡 保留但不推荐(实际已废) |
| 建连握手 | TCP 3次握手 | TCP 3次握手 | TCP 3 + TLS 2~3 RTT | ✅ 0/1 RTT(QUIC 集成 TLS) |
| 切换网络 | 断开重连 | 断开重连 | 断开重连(4元组变化) | ✅ 连接迁移(Connection ID,WiFi→4G不断) |
| 典型场景 | 早期静态 Web | 传统 Web / API | 现代 Web、大公司官网 | 移动端、视频直播、Google/Chrome |
HTTP/1.1 虽然支持长连接(Connection: keep-alive)和流水线(Pipelining),但默认流水线是关闭的,且即使开启,同一 TCP 连接上请求必须按顺序响应——如果第 1 个请求阻塞,后续请求即便已被服务器处理完也不能提前返回。HTTP/2 用帧+流ID多路复用解决了 HTTP 层队头阻塞,但 TCP 本身的队头阻塞(一个 TCP 段丢失,整连接重传)仍然存在,直到 HTTP/3 + QUIC(UDP)才彻底解决。
7.3 其他常见应用层协议
📁 FTP(文件传输协议)- TCP 20/21
- 控制连接(端口 21):始终保持,传命令(USER/PASS/LIST/RETR/STOR)
- 数据连接(端口 20 主动模式 / 随机端口被动模式):传完就断
- 主动模式 PORT:服务器主动连客户端 20;被动模式 PASV:客户端连服务器随机高端口(防火墙友好)
- 缺点:明文传用户名密码;TFTP(UDP 69)是简化版 FTP,用于嵌入式/网络启动
📧 邮件三件套:SMTP / POP3 / IMAP
- SMTP(TCP 25):推协议,发邮件 —— 客户端 → 发送服务器 → 接收服务器("推"到对方邮箱)
- POP3(TCP 110):拉协议,收邮件 —— 客户端从服务器"下载并删除"(默认离线模式,服务器不保留副本)
- IMAP(TCP 143):拉协议,收邮件 —— 客户端与服务器同步(在线模式,服务器保留,多设备一致)
- SMTPS 465 / POP3S 995 / IMAPS 993 为 SSL/TLS 加密版本
🌐 其他端口速记(软考必背)
- DNS UDP 53、SSH TCP 22、Telnet TCP 23、HTTPS TCP 443、RDP TCP 3389
- DHCP:客户端 UDP 68 → 服务器 UDP 67(动态分配 IP)
- SNMP:Agent UDP 161(查询)、Manager UDP 162(Trap 告警)
- MySQL 3306、Redis 6379、PostgreSQL 5432、MongoDB 27017
八、网络安全:加密、TLS 与防火墙
8.1 网络安全三要素 CIA
- 机密性(Confidentiality):信息不被未授权者读取 —— 加密算法(对称 AES、非对称 RSA)
- 完整性(Integrity):信息未被篡改 —— 哈希+数字签名(MD5/SHA-256、HMAC、RSA 签名)
- 可用性(Availability):合法用户可随时访问 —— 高可用/冗余/抗 DDoS
- 补充:真实性/不可否认性 —— 数字证书 + PKI、CA 体系
• 对称加密(同密钥加解密):DES/3DES、AES、SM4、RC4 —— 速度快,适合大流量数据加密
• 非对称加密(公钥加密私钥解密 / 私钥签名公钥验签):RSA、ECC、SM2、DH —— 速度慢,适合密钥交换+数字签名
• 哈希(摘要)(不可逆,定长输出):MD5(128bit)、SHA-1(160bit)、SHA-256/512、SM3 —— 用于完整性校验
8.2 TLS 握手流程(HTTPS 的核心)
TLS(Transport Layer Security)当前主流版本是 TLS 1.2 和 TLS 1.3(1.3 握手从 2 RTT 优化到 1 RTT / 0 RTT,安全性也更高)。握手的核心目标是:① 协商加密套件;② 交换会话密钥(通过非对称加密保护或 ECDHE);③ 验证服务器身份(数字证书)。
为什么需要数字证书?因为单纯的 Diffie-Hellman 密钥交换无法抵御"中间人攻击"(攻击者伪造两边公钥)。解决方案是 PKI/CA 体系:服务器公钥由权威 CA 用其私钥签名生成证书,浏览器/操作系统内置CA 根证书公钥,可以验签确认证书真实性;同时验证域名匹配、有效期、证书吊销列表 CRL / OCSP。
8.3 防火墙技术与部署拓扑
- 包过滤防火墙(网络层):基于 5 元组(源IP/目的IP/源端口/目的端口/协议)ACL 规则,速度快但无应用层感知。
- 状态检测防火墙:维护会话连接表(会话跟踪),允许"响应包"自动放行,比包过滤更智能。
- 应用层网关 / 代理防火墙(WAF):深度解析 HTTP/HTTPS 载荷,防御 SQL 注入/XSS/CSRF/WebShell 等。
- 下一代防火墙 NGFW:包过滤+状态+应用识别+IPS+VPN 一体化。
- DMZ(隔离区/非军事区):部署对外服务器(Web/Mail/DNS),三网卡架构:外网 → DMZ → 内网,内网安全性最高。
九、SDN 与网络虚拟化
9.1 SDN(软件定义网络)
传统网络采用分布式控制(每台交换机/路由器运行自己的控制平面,逐跳协议收敛慢、配置繁琐)。SDN 革命性地将控制平面(Control Plane)与数据平面(Data Plane)分离,集中化、可编程地控制网络。
🧠 SDN 三层架构(ONF 定义)
- 应用层(Application Layer):各种 SDN 应用 / 业务逻辑 —— 负载均衡、ACL、防火墙、流量工程 TE
- 控制层(Control Layer):SDN 控制器(核心大脑)—— OpenDaylight / ONOS / Floodlight,维护全局网络视图,计算流表
- 基础设施层(Infrastructure Layer):SDN 交换机(白盒交换机)—— 只做数据转发,通过 OpenFlow 协议接收控制器下发的流表规则(Match-Action 模式)
控制器 ↔ 交换机之间的通信协议,控制器通过 Packet-in / Packet-out / Flow-Mod 消息管理交换机的流表(Flow Table)。每条流表项 = 匹配字段(MAC/IP/端口/VLAN…) + 动作(转发/丢弃/修改/上送控制器) + 计数器 + 优先级。
9.2 网络虚拟化:VLAN vs VxLAN
| 对比维度 | VLAN(802.1Q) | VxLAN(RFC 7348) |
|---|---|---|
| 定位 | 二层虚拟局域网(园区/数据中心) | 大二层虚拟扩展局域网(云原生/多租户) |
| 隔离数量上限 | 4094 个(VID 12bit,去掉0/4095保留) | 1600 万(VNI 24bit)—— 多租户云计算足够 |
| 封装方式 | 在二层以太网帧中插入 4B 802.1Q 标签 | MAC-in-UDP:二层帧 + VxLAN头(8B) → UDP → IP → 外层MAC |
| 跨三层能力 | ❌ 只能在二层域内(VLAN 要靠 Trunk 透传) | ✅ 跑在普通 IP/UDP 上,可跨三层路由(大二层互通) |
| BUM 流量处理 | 交换机泛洪(广播/未知单播/组播) | VTEP 用组播或头端复制(HER)转发 |
| 典型场景 | 企业内网部门隔离、办公网 VLAN | OpenStack/K8s 容器网络、VMware NSX、公有云多租户 |
十、网络性能计算:带宽、时延、吞吐量
10.1 四大核心指标
- 带宽(Bandwidth):链路的最高数据传输速率,单位 bps(bit/s)。由物理介质决定(如千兆以太网 = 1 Gbps)。
- 时延(Latency / Delay):数据从发送方到接收方所需的总时间 = 发送时延 + 传播时延 + 处理时延 + 排队时延
- 吞吐量(Throughput):单位时间实际通过的数据量(≤ 带宽,受拥塞、协议开销影响)。
- 时延带宽积(Bandwidth-Delay Product, BDP):= 带宽 × 往返时延 RTT,单位 bit。表示"能同时在路上跑的比特数",也等于TCP 管道容量(达到最大吞吐所需的最小窗口大小)。
① 发送时延 = 数据帧长度(bit) / 发送速率(bps) —— 在主机/路由器内部,数据"推到链路上"的时间
② 传播时延 = 链路长度(m) / 信号在介质中传播速度(m/s) —— 电磁波在链路上跑的时间(铜缆≈2×10⁸ m/s,光纤≈2.3×10⁸ m/s,真空=3×10⁸ m/s)
③ RTT(Round-Trip Time)往返时间 = 2 × 传播时延(近似) + 中间节点处理/排队
④ 时延带宽积 BDP = 带宽(bps) × RTT(s) = 管道容量(bit)
⑤ 信道利用率 U = 发送时延 / (发送时延 + RTT) —— 停等协议利用率很低,滑动窗口利用率 = 窗口大小 × 发送时延 / (发送时延 + RTT),上限 ≤ 1
10.2 奈奎斯特(Nyquist)与香农(Shannon)定理
🎯 奈奎斯特理想低通信道定理(无噪声)
理想低通(带宽 B Hz)信道的最高码元速率 = 2B 波特(Baud)。若每个码元携带 N 比特信息(即进制数 M,N=log₂M),则:
极限数据速率 R = 2 × B × log₂M (bps)
注意:奈奎斯特给出了"码元速率上限",要提高比特率必须提升进制数 M(调幅/调相/正交调制,如 QAM-64 = 6bit/码元)。
🎯 香农定理(有噪声信道,更贴近实际)
给定带宽 B Hz、信噪比 S/N(功率比)的有噪声信道,极限数据速率为:
C = B × log₂(1 + S/N) (bps)
信噪比通常用 dB(分贝)表示:SNR_dB = 10 × log₁₀(S/N)
例:30dB → S/N = 10³ = 1000;40dB → S/N = 10⁴ = 10000
实际速率 = min(奈奎斯特 R,香农 C),必须同时满足两者!
十一、考点总结与软考历年真题
上午题 6~10 分,重点:① TCP/UDP + 三次握手/拥塞控制(必考);② IP 子网划分 / CIDR / 路由表下一跳(年年考计算题);③ OSI/TCP 分层与各层协议对应关系;④ 性能计算(带宽时延积、奈奎斯特/香农);⑤ DNS/HTTP/HTTPS/TLS;⑥ 路由协议 RIP/OSPF/BGP 区别;⑦ 网络安全加密算法、PKI/CA、防火墙 DMZ;⑧ SDN/VxLAN/IPv6
📝 真题 1:【子网划分计算题】(软考 2023 年下半年 上午题)
(1)新的子网掩码是多少?CIDR 前缀是 /?
(2)每个子网最多可容纳多少台主机?
(3)写出第 1、第 2 个子网的网络地址和广播地址。
解题步骤(1):原 /20,需划分 6 个子网 → 2³=8 ≥ 6,需要再借 3 位作为子网号 → 新前缀 = /20+3 = /23,即子网掩码 = 255.255.254.0(前23位1)。
(2)主机位数 = 32 - 23 = 9 位 → 主机数 = 2⁹ - 2(全0网络号、全1广播号)= 512 - 2 = 510 台。
(3)块大小(增量) = 2^(32-23) = 512,第三字节增量 = 512/256 = 2(/23 意味着第三字节末尾1位也属于网络位)
第 1 子网:网络 = 172.16.0.0/23,广播 = 172.16.1.255
第 2 子网:网络 = 172.16.2.0/23,广播 = 172.16.3.255
📝 真题 2:【TCP 序号/确认号 + 拥塞控制分析】(软考 2022 年真题改编)
段 1:seq=1001,payload 长度 = 400 字节(SYN/FIN 均 0)
段 2:seq=1401,payload 长度 = 600 字节
B 收到段 1 后立即回复 ACK1,收到段 2 后回复 ACK2。之后 A 继续发送,假设慢启动阈值 ssthresh 初始值=64(单位 MSS=1000B),且无丢包:
(1)求 ACK1 与 ACK2 中 ack 字段分别为多少?
(2)若连接为慢启动阶段,发送完段 2 后 A 的 cwnd 从 1MSS 变为多少?经过 2 个无丢包 RTT 后 cwnd 约为多少?
(1)ACK 序号:ACK = 期望收到的下一个字节序号 = 上次收到数据的 seq + 数据长度
ACK1 ack = 1001 + 400 = 1401(表示 1001~1400 字节收到,下一个要 1401)
ACK2 ack = 1401 + 600 = 2001
(2)慢启动:cwnd 初始 = 1 MSS(1000B);每收到 1 个 ACK 确认了新数据,cwnd += 1 MSS(等价每 RTT 翻倍)
发送段 2 后收到 ACK1 → cwnd = 2;收到 ACK2 → cwnd = 3 MSS = 3000B
第 1 个 RTT 后 cwnd 翻倍 ≈ 6;第 2 个 RTT 后再翻倍 ≈ 12 MSS = 12000B(仍 < ssthresh=64,继续慢启动指数增长)
📝 真题 3:【带宽时延积 + 链路利用率】(软考经典案例)
(1)传播时延是多少 ms?RTT 是多少?
(2)时延带宽积 BDP 是多少字节(Byte)?
(3)停等协议下的链路利用率 U 是多少?若改用滑动窗口,窗口大小至少为多少帧时,才能让链路利用率达到 100%?
(1)传播时延 tp = 距离 / 传播速度 = 1000×10³ m / (2×10⁸ m/s) = 5×10⁻³ s = 5 ms
RTT = 2 × tp = 10 ms = 0.01 s
(2)发送时延 tf = 帧长 / 速率 = (2000×8 bit) / (10⁹ bps) = 16,000 / 10⁹ s = 16 μs = 0.016 ms
时延带宽积 BDP = 带宽 × RTT = 10⁹ b/s × 0.01 s = 10⁷ bit = 1,250,000 Byte = 约 1.25 MB
(3)停等利用率 U = 发送时间 / (发送时间 + RTT) = 0.016 / (0.016 + 10) ≈ 0.16%(极低!)
管道内能容纳帧数 W = RTT / tf ≈ 10 ms / 0.016 ms = 625 帧,即窗口 ≥ 625 帧时,利用率接近 100%,
此时窗口大小 = 625 × 2000B = 1,250,000B = BDP ✅(印证 BDP = 让管道充满所需的最小窗口)
📝 真题 4:【路由表下一跳最长匹配】(软考 2024 年上半年题)
① 10.1.0.0/16 → 下一跳 R1
② 10.1.16.0/20 → 下一跳 R2
③ 10.1.24.0/22 → 下一跳 R3
④ 0.0.0.0/0 → 下一跳 R4(默认路由)
A. R1 B. R2 C. R3 D. R4
计算:目的 10.1.25.137 → 第3字节 = 25 (二进制 00011001)
① /16:只要前 16 位=10.1 ✔(前缀16位)
② /20:掩码第三字节前 4 位=16 (0001xxxx),25=00011001 前4位=0001 ✔(前缀20位,比①长)
③ /22:掩码第三字节前 6 位 = 24 (000110xx),25=00011001 前6位=000110=24 ✔(前缀22位,最长!)
④ 默认路由(0位)永远最后才考虑
→ ③ 前缀最长(/22),选下一跳 R3,答案 C
七层应表会传网链物,四层应用传网链。封装头加尾,解封装剥头尾。
物理层编码:曼彻斯特跳变中间0→1,差分跳变看边沿。
链路层CSMA/CD:先听后发,边发边听,冲突重发。
IP 划分:借 n 位子网=2ⁿ,余 m 位主机=2ᵐ-2。
ARP 请求广播,ARP 应答单播。RIP 跳数≤15,OSPF 区域0骨干,BGP 路径矢量。
TCP 三次 SYN→SYN+ACK→ACK,四次 FIN→ACK→FIN→ACK,2MSL 等最后。
拥塞控制:慢指翻避加一,三包乘半超回一。
性能:发送时延=帧长/速率,传播=距离/光速,BDP=带宽×RTT。
奈奎斯特 2Blog₂M,香农 Blog₂(1+S/N),取两者小者为上限!