计算机网络概述与性能指标
先把地基打牢:网络是什么、怎么分类、用什么数字衡量它。
什么是计算机网络
把分布在不同地理位置、具有独立功能的多台计算机及其外部设备,通过通信线路互连,在网络操作系统与协议的管理协调下,实现资源共享和信息传递的系统。
- 三大组成:主机(端系统) + 通信链路 + 交换/路由设备
- 两个子网视角:资源子网(提供资源共享)与 通信子网(负责传输)
- 协议三要素:语法(格式)、语义(含义)、时序(顺序)
按覆盖范围分类
- PAN 个人区域网 — 蓝牙、UWB,半径约 10m
- LAN 局域网 — 以太网、Wi-Fi,单位/校园内
- MAN 城域网 — 城市范围,光纤骨干
- WAN 广域网 — 跨地域互联,Internet 即全球 WAN
按拓扑结构分类
- 总线型 — 共享信道,冲突域大,已淘汰
- 星型 — 中心交换设备,现代局域网主流
- 环型 — 令牌传递,单点故障影响全环
- 网状 — 多路径冗余,广域网骨干采用
- 树型 / 混合型 — 层次化扩展
核心性能指标
- 速率 — 额定数据传输率,单位 bps(bit/s)
- 带宽 — 信道最高速率,单位 Hz 或 bps
- 吞吐量 — 实际通过的速率
- 时延 = 发送 + 传播 + 处理 + 排队时延
- RTT 往返时延;利用率 = 有数据时间 / 总时间
- 丢包率 — 分组丢失比例,过高说明拥塞
【计算题】某链路带宽为 1 Mb/s,现要发送 1000 字节的数据帧,忽略传播时延与处理时延,发送时延是多少?
答案:8 ms。发送时延 = 数据长度 / 带宽 = 1000×8 bit / 10^6 bps = 0.008 s = 8 ms。
【概念题】主机 A 向主机 B 发送数据,测得 RTT(往返时延)为 40 ms,忽略处理与排队时延,单程传播时延约为多少?
答案:约 20 ms。RTT 是一来一回的总时延,单程约为 RTT 的一半(对称链路假设)。
【辨析题】「带宽」与「吞吐量」的区别是什么?
答案:带宽是信道的额定/最高数据传输速率(理论值);吞吐量是网络实际传输的速率,通常小于等于带宽。
分层体系结构
分层的意义:每层只管自己的职责、只和相邻层通信,像流水线一样协作。点击左侧每一层查看职责。
应用层
为用户提供网络服务的最高层,直接面向应用程序,负责产生需要传输的数据,并定义应用级协议。
- 代表协议:HTTP / HTTPS、DNS、FTP、SMTP、POP3、IMAP、SSH、WebSocket
- 数据单元:报文(Message)
- 典型设备:网关 / 应用程序本身
TCP/IP 与 OSI 对照
实际互联网用的是 TCP/IP 四层/五层模型:应用层(OSI 的 5-7 层合并)、传输层、网络层、网络接口层。OSI 更多用于教学与标准化参考。
- TCP/IP 四层:应用 / 传输 / 网际 / 网络接口
- 五层教学模型:应用 / 传输 / 网络 / 链路 / 物理
- OSI 的表示与会话功能在 TCP/IP 中由应用自行处理(如 TLS、压缩)
数据封装与解封装
发送方每下一层就加上本层头部(封装);接收方每上一层就剥掉本层头部(解封装)。这是分层协作的物理体现。
- 传输层加 TCP/UDP 段头 → 段 Segment
- 网络层加 IP 头 → 数据报 Datagram
- 链路层加 MAC 头尾 → 帧 Frame
- 物理层转成 比特流 Bit
【选择题】在 OSI 参考模型中,负责数据压缩、加密和格式转换的是哪一层?
答案:表示层(第 6 层)。表示层处理数据格式、加密与压缩;会话层管会话,传输层管端到端可靠传输。
【选择题】TCP/IP 参考模型中,与 OSI 的表示层、会话层功能相对应的是哪一层?
答案:应用层。TCP/IP 把 OSI 的上三层(应用、表示、会话)合并为应用层,加密压缩等功能由应用自行实现(如 TLS)。
【流程题】简述数据从应用层到物理层的封装顺序。
答案:应用层产生数据 → 传输层加 TCP/UDP 段头(段)→ 网络层加 IP 头(数据报)→ 链路层加 MAC 头尾(帧)→ 物理层转为比特流;接收方按相反顺序逐层解封装。
物理层与数据链路层
最靠近硬件的一层与第二层:比特怎么在介质上跑、帧怎么在局域网上送。
物理层要点
- 职责:透明传输比特流,定义接口、电气特性、编码方式
- 传输介质:双绞线(UTP/STP)、同轴电缆、光纤(单模/多模)、无线(无线电/微波/红外)
- 编码:NRZ、曼彻斯特编码(含时钟同步)、8B/10B 等
- 中继设备:中继器 / 集线器 Hub — 放大信号,不隔离冲突域
- 信道复用:FDM 频分、TDM 时分、WDM 波分、CDMA 码分
数据链路层核心
- 成帧:将比特流划分为 帧 Frame,含头尾与校验
- MAC 地址:48 位物理地址,局域网内寻址的唯一依据
- 差错控制:CRC 循环冗余校验(检错);ARQ 自动重传(纠错)
- 流量控制:停-等、滑动窗口(GBN 后退 N 帧 / SR 选择重传)
- 链路层协议:以太网、PPP、Wi-Fi (802.11)
以太网与交换设备
- 交换机 Switch:工作在链路层,按 MAC 地址表转发,隔离冲突域
- 交换机自学习:源 MAC + 端口登记,未知单播洪泛,老化删除
- VLAN 虚拟局域网:划分广播域,跨交换机用 Trunk 干道
- 生成树 STP:消除环路,避免广播风暴
- 广播域 vs 冲突域:Hub 不隔离冲突域;Switch 隔离冲突域不隔离广播域;路由器两者都隔离
ARP 地址解析
把 IP 地址 → MAC 地址 的映射协议,链路层寻址的前置步骤。
- 流程:广播 ARP 请求 → 目标单播 ARP 应答 → 写入 ARP 缓存(有 TTL)
- 攻击风险:ARP 欺骗(伪造应答,中间人)
- 反向:RARP / DHCP 用于 MAC → IP
【概念题】以太网规定最小帧长为 64 字节(数据部分至少 46 字节),主要原因是什么?
答案:保证 CSMA/CD 冲突检测。在最大网络直径下,发送方必须在帧发送完毕之前检测到冲突,因此最短帧长与传播时延、冲突窗口(2τ)挂钩。
【选择题】交换机收到目的 MAC 地址未知的单播帧时,应当如何处理?
答案:洪泛。MAC 地址表中查不到目的 MAC 时,交换机将该帧从除接收端口外的所有端口转发出去。
【辨析题】集线器(Hub)与交换机(Switch)在工作层次和冲突域隔离上有何不同?
答案:Hub 工作在物理层,所有端口共享一个冲突域;Switch 工作在数据链路层,每个端口是独立冲突域,可并行转发。
网络层:IP 与路由
互联网的心脏:逻辑寻址(IP)、跨网转发(路由)、连通性诊断(ICMP)。
IP 地址体系
- IPv4:32 位,点分十进制,约 43 亿地址
- 历史分类:A 类 0-127 / B 类 128-191 / C 类 192-223 / D 组播 / E 保留
- 特殊地址:127.0.0.1 回环、0.0.0.0 本机、255.255.255.255 受限广播
- 私有地址段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16
- IPv6:128 位,冒号十六进制,可自动配置(SLAAC)
子网划分与 CIDR
- 子网掩码:区分网络号与主机号,如 255.255.255.0
- CIDR 无类域间路由:192.168.1.0/24 表示前 24 位是网络号
- 子网数 = 2^借位数;可用主机数 = 2^主机位 - 2(去网络号与广播号)
- 示例:/26 → 4 个子网,每子网 62 台可用主机
- CIDR 聚合:合并连续子网,减少路由表条目(路由聚合)
路由与路由协议
- 静态路由:手工配置,简单但无法适应拓扑变化
- 动态路由:路由器间交换信息自动学习
- 距离向量:RIP(跳数 ≤15,30s 广播,适合小网)
- 链路状态:OSPF(基于 Dijkstra 最短路径,收敛快,适合中大型网络)
- 域间:BGP(AS 自治系统间,路径向量,互联网骨干协议)
ICMP 与 NAT / DHCP
- ICMP:差错报告与诊断;ping 用回显请求/应答,traceroute 用 TTL 耗尽探测路径
- NAT 网络地址转换:内网私有 IP ↔ 公网 IP 映射,缓解 IPv4 枯竭
- NAPT/端口映射:多台内网主机共享一个公网 IP + 不同端口
- DHCP:自动分配 IP/掩码/网关/DNS,四步:Discover → Offer → Request → Ack
- 分片与重组:MTU 限制下 IP 分片,IPv6 由端到端路径 MTU 发现替代
【计算题】将网络 192.168.1.0/24 划分成 4 个等长子网,子网掩码变为多少?每个子网可用的主机地址数是多少?
答案:255.255.255.192(/26),每子网 62 个可用主机。借 2 位主机位(2²=4 个子网),掩码由 /24 变 /26;主机位剩 6 位,可用数 = 2⁶ − 2 = 62。
【聚合题】将 202.113.79.32/28 与 202.113.79.48/28 聚合为一个 CIDR 地址块,结果是什么?
答案:202.113.79.32/27。两个相邻 /28 块合并为 /27(块大小 32),起始地址 32 能被 32 整除,聚合后覆盖 32–63 地址段。
【选择题】RIP 与 OSPF 分别属于哪种路由算法,主要依据什么度量?
答案:RIP 为距离向量算法,以跳数为度量(最大 15 跳);OSPF 为链路状态算法,基于 Dijkstra 最短路径计算开销,收敛更快。
传输层:TCP 与 UDP
端到端通信的舞台:端口标识进程,TCP 保可靠,UDP 保速度。
端口与套接字
- 端口号 16 位(0-65535):知名端口 0-1023、注册端口 1024-49151、动态端口 49152-65535
- 套接字 Socket = IP 地址 : 端口号,唯一标识一个通信端点
- 连接 = 四元组(源 IP、源端口、目的 IP、目的端口)
- 多路复用/分用:一个进程对应一个端口,端口决定数据交给谁
UDP 特点
- 无连接、尽最大努力交付(不可靠)
- 首部仅 8 字节:源/目的端口 + 长度 + 校验和
- 无拥塞控制 → 适合实时音视频、DNS 查询、游戏
- 支持一对一、一对多、多对多通信
TCP 特点
- 面向连接、可靠、字节流,全双工
- 首部最小 20 字节,含序号、确认号、标志位、窗口等
- 可靠机制:序号/确认、超时重传、校验和、去重/排序
- 流量控制:滑动窗口(接收方通告窗口 rwnd)
- 拥塞控制:慢启动、拥塞避免、快重传、快恢复
TCP 三次握手 —— 建立连接
TCP 四次挥手 —— 释放连接
| 对比维度 | TCP | UDP |
|---|---|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠,有序交付 | 不可靠,尽力而为 |
| 首部 | 20~60 字节 | 8 字节 |
| 传输方式 | 字节流 | 数据报 |
| 流量/拥塞控制 | 有 | 无 |
| 适用场景 | Web、文件传输、邮件 | 音视频、DNS、游戏 |
| 典型协议 | HTTP、FTP、SMTP、SSH | DNS、DHCP、TFTP、RTP |
【选择题】TCP 三次握手的第二次握手报文中,SYN 与 ACK 标志位应如何设置?
答案:SYN=1 且 ACK=1。第二次握手(服务器→客户端)同时携带 SYN 以建立服务器方向连接,并以 ACK 确认客户端发来的 SYN 序号。
【计算题】主机甲向主机乙发送一个 TCP 段,序号(seq)为 1000,携带 100 字节数据。主机乙收到的确认号(ack)应为多少?
答案:1100。确认号 = 期望收到的下一字节序号 = 1000 + 100 = 1100。
【简答题】为什么 TCP 释放连接需要四次挥手?
答案:TCP 是全双工通信,每个方向必须独立关闭:客户端先发 FIN 关闭发送方向,服务器确认后仍可继续发送数据,待数据发完再发 FIN 关闭自己的方向,最后客户端 ACK 确认。因此需要四次交互。
应用层:HTTP 与 DNS
离用户最近的一层:浏览器怎么取到网页、域名怎么变成 IP。
HTTP 报文与方法
- 请求报文:请求行(方法 + URL + 版本)+ 首部 + 主体
- 响应报文:状态行(版本 + 状态码 + 短语)+ 首部 + 主体
- 常用方法:GET(取资源)、POST(提交)、PUT(覆盖)、DELETE、PATCH(部分更新)、HEAD、OPTIONS
- 特性:无状态(靠 Cookie/Session 补状态)、默认无连接(HTTP/1.1 起长连接)
- 1.0 vs 1.1:连接复用、Host 头、缓存控制、管线化
HTTP 状态码
- 1xx 信息:100 Continue、101 协议切换
- 2xx 成功:200 OK、201 已创建、204 无内容
- 3xx 重定向:301 永久、302 临时、304 未修改(走缓存)
- 4xx 客户端错误:400 请求错误、401 未认证、403 禁止、404 未找到、429 限流
- 5xx 服务端错误:500 内部错误、502 网关错误、503 服务不可用、504 网关超时
HTTPS 与 TLS
- HTTPS = HTTP + TLS/SSL(443 端口)
- TLS 握手:证书校验 → 协商密钥 → 对称加密传输(如 AES)
- 混合加密:非对称(RSA/ECC)交换密钥,对称加密数据
- 证书:CA 签名的公钥凭证,校验服务器身份防中间人
- 前向安全:ECDHE 密钥交换保证历史流量不被破解
DNS 域名系统
- 作用:域名 → IP 的分布式数据库(UDP 53)
- 层次:根 → 顶级域(.com/.cn)→ 二级域 → 子域
- 解析过程:本地缓存 → 本地 DNS → 递归/迭代查询根、TLD、权威服务器
- 记录类型:A/AAAA(IPv4/6)、CNAME(别名)、MX(邮件)、TXT/SPF、NS
- 扩展:DNS 负载均衡(多 A 记录)、CDN 就近调度、DoH/DoT 加密
Cookie 与 Session
- Cookie:存在客户端的小块数据,随请求自动携带
- Session:存在服务端的会话状态,靠 Session ID 关联
- 区别:Cookie 有体积限制且可被篡改;Session 更安全但占服务端资源
- 安全属性:HttpOnly(防 JS 读取)、Secure(仅 HTTPS)、SameSite(防 CSRF)
其他常用应用层协议
- FTP 文件传输(21 控制 / 20 数据),主动/被动模式
- SMTP 发邮件(25/465/587)、POP3 收邮件(110)、IMAP(143,保留服务器端)
- SSH 远程登录(22,加密)、Telnet(23,明文已弃用)
- WebSocket:HTTP 升级后的全双工长连接,适合实时推送
- DHCP:动态主机配置(67/68)
【选择题】HTTP 状态码 301、304、404、500 分别表示什么含义?
答案:301 永久重定向;304 资源未修改(使用缓存副本);404 请求的资源不存在;500 服务器内部错误。
【简答题】DNS 解析中「递归查询」与「迭代查询」有什么区别?
答案:递归查询中,本地域名服务器替客户端完成逐级查询并直接返回最终结果;迭代查询中,服务器每次只返回下一级服务器的地址,由请求方继续逐级查询。实际解析常为「递归 + 迭代」结合。
【辨析题】Cookie 与 Session 的存储位置和安全性有何不同?
答案:Cookie 存储在客户端,可被用户查看/篡改,有体积限制;Session 存储在服务端,只把 Session ID 通过 Cookie 交给客户端,安全性更高但占用服务端资源。
网络安全
安全四要素:机密性、完整性、可用性、身份认证。加密是地基,防护是围墙。
加密与哈希
- 对称加密:加解密同一密钥,快;代表 AES、DES、3DES
- 非对称加密:公钥加密/私钥解密,慢;代表 RSA、ECC
- 哈希:单向不可逆,代表 MD5(已破)、SHA-256
- 数字签名:私钥签名 + 公钥验签,保证完整性 + 认证 + 防抵赖
- 数字证书:CA 给公钥做担保,X.509 标准
边界防护设备
- 防火墙:包过滤 / 状态检测 / 应用层代理,按规则放行流量
- IDS 入侵检测:被动旁路监控告警;IPS 入侵防御:主动阻断
- VPN:IPsec / SSL VPN 加密隧道,远程安全接入
- WAF:防护 Web 应用层攻击(SQL 注入、XSS 等)
- DMZ 隔离区:放置对外服务,隔开内外网
常见攻击与防御
- DoS / DDoS 拒绝服务:洪水/放大攻击;防御:限流、CDN 抗量、黑洞
- 中间人 MITM:窃听/篡改;防御:HTTPS 证书校验、防 ARP 欺骗
- SQL 注入:拼接恶意 SQL;防御:参数化查询、白名单校验
- XSS 跨站脚本:注入脚本盗取 Cookie;防御:转义输出、CSP、HttpOnly
- CSRF 跨站请求伪造:借用户身份发请求;防御:Token、SameSite、校验 Referer
- 钓鱼/暴力破解:社会工程与口令攻击;防御:MFA、弱口令检测
纵深防御思想
- 边界防护:防火墙 + IDS/IPS + VPN 网关
- 传输防护:HTTPS / TLS 1.2+ / 证书轮换
- 主机防护:补丁、杀软、主机入侵检测 HIDS
- 应用防护:WAF、安全编码、最小权限
- 数据防护:加密存储、脱敏、备份与容灾(RTO/RPO)
- 管理防护:审计日志、安全意识、应急响应
【概念题】数字签名是如何实现的?它提供哪些安全特性?
答案:发送方用自己的私钥对消息摘要加密(签名),接收方用发送方的公钥解密验证。可提供完整性(摘要匹配)、身份认证(私钥唯一)、不可抵赖(无法否认发送)。
【选择题】HTTPS 默认使用哪个端口?TLS 握手阶段使用什么加密方式交换密钥?
答案:443;非对称加密。TLS 握手用非对称加密(如 RSA/ECDHE)协商对称密钥,之后用对称加密(如 AES)传输业务数据,兼顾安全与性能。
【简答题】列举两种防御 SQL 注入的常用手段。
答案:①使用参数化查询/预编译语句,不让用户输入拼接进 SQL;②输入白名单校验与转义,限制特殊字符;辅助措施还有最小权限数据库账号、WAF 过滤。
现代网络技术
从 HTTP/2 到 5G:网络协议与技术栈仍在演进。
HTTP/2 与 HTTP/3
- HTTP/2:多路复用(同连接并发请求)、头部压缩 HPACK、服务端推送、二进制分帧
- 遗留问题:队头阻塞仍存在于 TCP 层
- HTTP/3:基于 QUIC(UDP 之上的可靠协议),0-RTT 握手、连接迁移、彻底解决队头阻塞
- QUIC 特性:内置 TLS 1.3、独立流隔离、无队头阻塞
CDN 与负载均衡
- CDN:内容分发网络,边缘节点就近缓存内容,降低源站压力与用户时延
- 调度方式:DNS 就近解析、Anycast、GSLB
- 负载均衡 LB:L4(四元组转发)/ L7(HTTP 内容路由)
- 算法:轮询、加权、最小连接、一致性哈希
- 健康检查:主动探测后端,故障自动摘除
SDN 与虚拟化网络
- SDN:控制平面与数据平面分离,集中控制器下发流表
- OpenFlow:南向接口标准协议
- Overlay:VXLAN 等隧道技术,在物理网络上叠加虚拟网络
- NFV:网络功能软件化(虚拟防火墙、虚拟路由器)
- 容器网络:CNI、Service Mesh(Istio)、eBPF 数据面
5G 与边缘网络
- 5G 三大场景:eMBB 增强移动宽带、uRLLC 超低时延高可靠、mMTC 海量物联网
- 网络切片:按需划分虚拟专网
- 边缘计算:算力下沉到靠近用户的位置,降低时延
- 物联网:NB-IoT、LoRa 等低功耗广域网技术
- 卫星互联网:低轨星座(Starlink)提供全球覆盖
【简答题】HTTP/2 的多路复用解决了什么问题?为什么仍存在队头阻塞?
答案:多路复用使一个 TCP 连接可同时承载多个请求/响应,解决 HTTP/1.1 应用层的队头阻塞;但底层仍是 TCP 字节流,TCP 层的队头阻塞依然存在——一个丢失的报文会阻塞后续所有流,因此需要 HTTP/3(QUIC)彻底解决。
【选择题】QUIC 协议基于哪个传输层协议构建?如何保证可靠性?
答案:UDP。QUIC 在 UDP 之上自行实现可靠传输、流量与拥塞控制,并内置 TLS 1.3,实现 0-RTT 快速握手与独立流隔离。
【简答题】5G 的三大应用场景分别是什么?
答案:eMBB(增强移动宽带,高速率大流量)、uRLLC(超可靠低时延通信,如自动驾驶/工业控制)、mMTC(海量机器类通信,如物联网传感网络)。