10. 计算机网络¶
网络模型与协议、接入技术、IP 地址、网络诊断、WWW 服务与网络规划。
配套阅读:计算机网络:课件笔记,含课程配图、例题和参考解析。
本章目录¶
分层、接入与网络规划¶
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 网络分层与数据传输
## OSI 七层参考模型
- 物理层
- 以电、光或无线信号传送比特
- 规定接口、信号编码与传输介质
- 中继器、集线器工作在这一层
- 数据链路层
- 在相邻节点间传送帧,完成成帧、介质访问与差错检测
- 以太网帧包含源 MAC、目的 MAC 与校验字段
- 网桥、二层交换机依据 MAC 地址转发
- 网卡通常同时涉及物理层和数据链路层
- 网络层
- 通过逻辑地址、路由选择与分组转发连接不同网络
- 路由器、三层交换机提供网络层转发
- IP、ICMP 属于互联网协议体系中的相关协议
- 传输层
- 通过端口区分通信端点,提供端到端传输
- TCP 传送可靠、有序的字节流
- UDP 传送保留消息边界的数据报
- 会话层:建立、管理和终止会话
- 表示层:数据编码、格式转换、压缩与加密等表示功能
- 应用层:为具体应用提供通信服务
## 封装与解封装
- 发送端逐层添加协议控制信息
- 应用数据 → TCP 报文段或 UDP 数据报 → IP 分组 → 链路层帧 → 比特
- 接收端按协议逐层解析并交付上层
- 路由器逐跳转发,链路层封装随所经过的链路而变化
## TCP/IP 四层模型
- 网络接口层:对应 OSI 的物理层与数据链路层功能
- 网际层:对应网络层功能
- 传输层:TCP、UDP
- 应用层:通常包含 OSI 上三层的功能
- 参考模型描述职责,实际协议与设备可能跨越多个层次
## 链路协议与介质访问
- PPP:点到点链路的封装、链路协商与可选认证
- SLIP:早期串行线路 IP 封装协议,功能较简单
- CSMA/CD:共享介质、半双工以太网的碰撞检测机制
- 现代交换式全双工以太网不使用碰撞检测
- CSMA/CA:无线局域网常用的碰撞避免机制
- Token Ring:通过令牌控制发送权的历史局域网技术
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 网络类型与接入技术
## 按覆盖范围分类
- 局域网 LAN:家庭、楼宇或园区等局部范围
- 城域网 MAN:城市范围内的网络互联
- 广域网 WAN:跨地区的网络连接
- 因特网 Internet:采用互联网协议互联的全球网络体系
- 是网络之间的互联体系,不只是一个地理范围等级
## 按拓扑分类
- 总线型:节点共享主干线路
- 星型:节点连接中心设备,便于管理与扩展
- 环型:节点形成闭合环路
- 树型与网状型:多级连接或通过多条路径提高冗余
- 物理连接形态与逻辑数据传输方式可以不同
## 有线接入
- ADSL:利用电话铜线,下行与上行速率非对称
- 典型下行速率高于上行,性能受线路长度与质量影响
- PSTN:公用交换电话网,曾用于调制解调器拨号上网
- DDN:提供数字专线的数据网络
- ISDN:综合业务数字网,承载数字化语音与数据
- HFC:光纤与同轴电缆混合接入网络
- 光纤接入:如 FTTH,将光纤延伸至用户家庭
## 无线接入
- Wi-Fi:基于 IEEE 802.11 的无线局域网技术
- 蓝牙:面向个人设备连接,常用于低功耗、近距离通信
- 红外:通常要求短距离与相对无遮挡的传播路径
- 覆盖范围由功率、频段、协议版本与环境共同决定
- WAPI:无线局域网鉴别与保密基础结构
- 提供认证和保密机制,不是独立的无线传播介质
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 网络规划与层次化设计
## 需求分析
- 功能:终端接入、资源共享、业务互联与远程访问
- 性能:吞吐量、时延、并发量与可用性
- 环境:布线条件、设备兼容性、供电与运行维护条件
- 发展:可扩展性、可维护性与业务增长
## 规划与实施原则
- 实用性:与业务需求和成本约束匹配
- 开放性:采用标准接口与协议,便于互联
- 先进性:兼顾技术成熟度与长期演进
- 可靠性:冗余链路、设备容错与故障恢复
- 安全性:身份认证、网络分区和访问控制
- 高效性:减少瓶颈,合理分配带宽与转发能力
- 可扩展性:预留端口、容量与地址规划空间
## 接入层
- 为终端、无线接入点等提供网络连接
- 可实现 VLAN 划分、端口接入控制与基础流量策略
## 汇聚层
- 汇总接入流量,连接接入层与核心层
- 承担路由汇总、网段间访问控制与服务质量策略
- ACL、分组过滤等功能按网络方案部署
- MAC 地址过滤不能替代可信的身份认证
## 核心层
- 提供高速、低时延的骨干转发
- 通过冗余设计降低单点故障影响
- 简化转发路径,保障各汇聚区域之间的互联
- 小型网络可合并核心层与汇聚层
协议、IP 地址与网络诊断¶
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 互联网协议与端到端通信
## 网际层协议
- IP:提供尽力而为的分组交付
- 本身不保证到达、顺序与无重复
- ICMP:传递差错报告和网络诊断信息
- 不承担应用数据的可靠重传
- IGMP:管理 IPv4 主机与相邻组播路由器之间的组成员关系
- 不负责选择跨网络的组播路由
## 本地链路地址解析
- ARP:在本地链路上解析 IPv4 地址对应的 MAC 地址
- 访问远端网络时,通常解析下一跳网关的 MAC
- ARP 报文不通过 IP 封装,也不会被路由器跨网转发
- 处于链路与网际层的衔接位置,分层归属随模型表述而异
- RARP:根据硬件地址取得 IPv4 地址的历史协议
- 地址配置功能已主要由 BOOTP、DHCP 等机制替代
- IPv6 使用邻居发现 NDP,不使用 ARP
## TCP
- 面向连接:通信双方先建立连接状态
- 面向字节流:不保留应用消息的原始边界
- 序号、确认与重传:实现可靠、有序交付
- 流量控制:避免发送速度超过接收能力
- 拥塞控制:根据网络拥塞调整发送速率
- 可靠交付不代表能保证连接永不失败,也不代表具有加密能力
## UDP
- 无连接:协议本身没有建立连接的握手
- 面向数据报:保留每条消息的边界
- 本身不提供可靠重传、排序或拥塞控制
- 首部和协议处理开销较小,适合可容忍丢包或自行控制可靠性的应用
- 应用可在 UDP 之上实现可靠、安全的通信,如 QUIC
- 实际传输效率取决于业务与网络条件,不能一概认为始终快于 TCP
## 端口与连接
- 端口号为 16 位,范围 0~65535
- IP 地址标识网络接口,端口用于传输层复用与分用
- TCP 连接通常由源 IP、源端口、目的 IP、目的端口共同标识
- TCP 与 UDP 的端口空间彼此独立
- 服务的常用端口是约定,部署时可以使用其他端口
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# IPv4 地址结构与特殊地址
## 地址与掩码
- IPv4 地址为 32 位,通常写成四段点分十进制
- 每段 8 位,数值范围为 0~255
- 地址标识网络接口,一个接口可以配置多个地址
- 网络前缀与主机部分的边界由子网掩码或前缀长度确定
- 连续子网掩码的前部为 1、后部为 0
- `/24` 表示前 24 位是网络前缀,对应 `255.255.255.0`
- 网络地址等于 IP 地址与子网掩码按位与的结果
## 历史上的分类地址
- A 类:最高位为 0,默认网络前缀 `/8`
- 普通单播地址的首字节通常为 1~126
- 首字节为 0 或 127 的范围具有特殊用途
- B 类:前两位为 10,首字节 128~191,默认 `/16`
- C 类:前三位为 110,首字节 192~223,默认 `/24`
- D 类:前四位为 1110,首字节 224~239,用于组播
- E 类:前四位为 1111,首字节 240~255,传统上保留
- `255.255.255.255` 另作受限广播地址
- 分类地址是历史机制,现代路由与地址分配使用 CIDR 前缀
## 私有地址
- `10.0.0.0/8`
- `172.16.0.0/12`:范围为 `172.16.0.0`~`172.31.255.255`
- `192.168.0.0/16`
- 可在不同私有网络中重复使用,不在公共互联网中直接路由
- 访问公网通常需要 NAT 或代理等机制
## 特殊地址
- `127.0.0.0/8`:回环地址,常用 `127.0.0.1` 表示本机
- `0.0.0.0`:未指定地址,可用于尚未取得地址时的源地址
- 服务端绑定该地址通常表示监听所有本地 IPv4 接口
- 与表示默认路由的 `0.0.0.0/0` 含义不同
- `169.254.0.0/16`:IPv4 链路本地地址,不由路由器转发
- 在缺少可用配置时可自动选取,Windows 的 APIPA 是一种实现
- 不限于 Windows,也不能仅凭此地址断定 DHCP 服务故障
- DHCP 失败后的行为由系统和配置决定
- 可能没有可用地址、保留仍有效的配置或采用链路本地地址
- Linux 不存在统一固定的“DHCP 失败地址”
- `255.255.255.255`:本地链路受限广播,路由器不转发
## 子网中的边界地址
- 常规 IPv4 子网中,主机位全 0 表示网络地址
- 主机位全 1 表示该子网的定向广播地址
- 这些边界规则不直接套用于点到点 `/31` 或单地址 `/32`
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 子网划分、CIDR 与路由聚合
## 前缀长度与容量
- CIDR:无类别域间路由,以“地址/前缀长度”表示地址块
- IPv4 前缀长度 p 的范围为 0~32,主机位数 h = 32 − p
- 地址块包含 `2^h` 个地址
- 普通常规单播子网中,当 h ≥ 2 时,可分配主机地址通常为 `2^h − 2`
- 减去网络地址与广播地址;特殊用途范围还需另行考虑
- `/31`:支持该机制的点到点链路可使用两个地址,不保留网络和广播地址
- `/32`:只表示一个地址,常用于主机路由或接口配置
- 地址数量不等于设备数量,还受保留地址、网关和实际分配策略影响
## 划分子网
- 增加前缀长度,从主机部分借位作为子网前缀
- 将 `/p` 等长划分为 `/q`,在 0 ≤ p ≤ q ≤ 32 时得到 `2^(q−p)` 个地址块
- 现代 CIDR 划分不因子网位全 0 或全 1 而再减去两个子网
- VLSM:同一地址块内使用不同长度的前缀,匹配不同容量需求
- 地址块必须按前缀边界对齐,分配的子网之间不能重叠
## 子网计算示例
- 主机地址:`192.168.10.77/26`
- 掩码:`255.255.255.192`;主机位数为 6
- 所在地址块:`192.168.10.64/26`,共 64 个地址
- 网络地址:`192.168.10.64`
- 广播地址:`192.168.10.127`
- 常规可分配范围:`192.168.10.65`~`192.168.10.126`,共 62 个地址
- `192.168.10.0/24` 可等长划分为四个 `/26`
- 网络地址末段分别为 0、64、128、192
## 路由聚合与超网
- 用更短的公共前缀表示多个网络,减少路由条目
- 精确合并等长地址块,需要连续、数量为 2 的幂且边界对齐
- `192.168.8.0/24` 与 `192.168.9.0/24` 可聚合为 `192.168.8.0/23`
- 对应掩码为 `255.255.254.0`,覆盖 512 个地址
- 只取公共前缀可能额外覆盖其他地址块
- 汇总路由的发布需与实际可达范围及更具体路由相协调
## 路由匹配
- 路由器根据目的地址查询路由表,采用最长前缀匹配
- 同时匹配 `/16`、`/24` 与 `/26` 时,优先选择 `/26`
- `0.0.0.0/0` 是 IPv4 默认路由,在没有更具体匹配时使用
- 同一子网的目的主机通常直接交付;远端目的地址通常经下一跳网关
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# IPv6 地址与过渡技术
## 地址表示与合法缩写
- IPv6 地址为 128 位,完整写法为八组 16 位十六进制数,以冒号分隔
- 每组可省略前导 0,不能省略组内或末尾具有数值意义的 0
- 一段连续的全 0 组可用 `::` 代替
- 同一个地址最多出现一次 `::`,且必须代表至少一组全 0
- 展开后必须恰好有八组,每组不超过四个十六进制数字
- `2001:0db8:0000:0000:0000:0000:0000:0001` 可缩写为 `2001:db8::1`
- 使用前缀长度表示网络,例如 `2001:db8:1::/64`
- 常见局域网使用 `/64`,但不能假设所有 IPv6 前缀长度都是 64
- URL 中的 IPv6 字面地址使用方括号,例如 `https://[2001:db8::1]/`
## 地址类型与常见范围
- 单播:交付给地址对应的单个接口
- 组播:交付给一组成员接口,地址范围为 `ff00::/8`
- 任播:多个接口共享一个地址,由路由选择其中一个接口接收
- “最近”由路由度量决定,不一定是地理距离最近
- IPv6 没有广播,以组播等机制完成相应功能
- `::`:未指定地址;`::1`:回环地址
- `fe80::/10`:链路本地地址,不能跨链路路由
- `fc00::/7`:唯一本地地址范围,本地生成的 ULA 使用 `fd00::/8`
- 全球单播地址目前通常位于 `2000::/3`
- `2001:db8::/32` 用于文档示例,不用于实际公网通信
## 协议特点
- 地址空间扩大,便于层次化寻址与路由聚合
- 基本首部固定为 40 字节,可通过扩展首部承载其他功能
- 基本首部不含 IPv4 式的首部校验和
- 路由器不对 IPv6 分组分片;需要分片时由源端处理
- 路径 MTU 发现结合 ICMPv6 的 Packet Too Big 信息调整发送大小
- IPv6 的使用本身不意味着流量自动加密或系统自动安全
## 邻居发现与地址配置
- NDP 基于 ICMPv6,提供邻居地址解析、路由器发现等功能
- 重复地址检测 DAD 用于发现同一链路上的地址冲突
- SLAAC:依据路由器通告等信息进行无状态地址自动配置
- DHCPv6:提供有状态地址分配或其他配置
- 常用 UDP 546 作为客户端端口,UDP 547 作为服务器或中继端口
- 默认路由通常通过路由器通告 RA 获得,不由标准 DHCPv6 提供
- `::/0` 表示 IPv6 默认路由
## IPv4 与 IPv6 的过渡
- 双栈:设备同时运行 IPv4 与 IPv6,按目标和网络能力选择
- 隧道:把一种协议的分组封装在另一种协议之上传输
- 可以跨越尚不支持内层协议的网络,封装会带来额外开销
- 协议转换:在 IPv4 与 IPv6 之间转换报文
- NAT64 可使 IPv6 客户端访问 IPv4 服务
- DNS64 可合成与 NAT64 配套的 AAAA 记录
- 双栈、隧道与转换的功能不同,均不自动提供通信加密
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 应用协议、名称解析与地址配置
## DNS 域名系统
- 分布式、分层的命名体系
- 根域、顶级域与权威 DNS 服务器共同组织名称空间
- 递归解析器代客户端查询,并按 TTL 缓存结果
- 常见记录
- A:IPv4 地址;AAAA:IPv6 地址
- CNAME:别名;MX:邮件交换服务器
- NS:权威名称服务器;PTR:反向解析记录
- 传统 DNS 同时使用 UDP 53 和 TCP 53
- 常规查询常用 UDP;截断响应可转 TCP,区域传送通常用 TCP
- DNS 负责域名解析;ARP 负责本地 IPv4 与链路地址的映射
## DHCP 动态主机配置
- 分配有租期的地址,并提供网关、DNS 等配置
- DHCPv4 使用 UDP:服务器 67,客户端 68
- 初次获取租约的典型流程
- Discover:客户端发现服务器
- Offer:服务器提供可用配置
- Request:客户端请求采用所选配置
- ACK:服务器确认租约
- 客户端在租约到期前续租
- DHCP 中继可帮助客户端联系其他网段的服务器
## 邮件服务
- SMTP:邮件提交与服务器之间的转发
- TCP 25:常用于服务器间转发
- TCP 587:邮件提交,常结合 STARTTLS
- TCP 465:使用隐式 TLS 的邮件提交
- POP3:从服务器获取邮件
- TCP 110:常规服务,可通过 STLS 升级 TLS
- TCP 995:隐式 TLS
## 文件、终端与网络管理
- FTP:文件传输
- TCP 21:控制连接
- 主动模式的数据连接通常从服务器 TCP 20 发出
- 被动模式使用服务器协商的数据端口
- 基本 FTP 不加密;FTPS 使用 TLS,SFTP 基于 SSH
- TFTP:简单文件传输,初始请求发往 UDP 69
- 后续使用协商的传输端口;协议本身没有认证和加密
- 常见于设备引导与配置传输,并非 Windows 专用
- Telnet:TCP 23,传统明文远程终端协议
- SSH:TCP 22,提供加密远程登录等功能
- SNMP:网络设备监控与管理
- 常用 UDP 161 处理请求,UDP 162 接收通知
- SNMPv3 可配置认证与加密
- NFS:远程文件系统访问,常用端口 2049
- 传输方式随版本而异,NFSv4 通常使用 TCP
- HTTP 与 HTTPS:提供 Web 资源与接口服务
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 网络状态与诊断工具
## ping
- 通过 ICMP Echo 请求与应答观察可达性、时延和丢包
- 无应答可能来自过滤或限速,不必然表示目标离线
- 能 ping 通也不代表 Web、邮件等应用服务正常
## tracert 与 traceroute
- 逐步增加 TTL 或 Hop Limit,利用中间设备应答观察路径
- Windows 常用 tracert;Unix 类系统常用 traceroute
- 某一跳超时可能只是设备不响应探测
- 路由变化、负载均衡与返回路径差异会影响结果
## ipconfig 与接口信息
- Windows 的 ipconfig 显示接口地址、掩码与默认网关
- ipconfig /all 可查看 MAC、DNS、DHCP 等详细配置
- Linux 常用 ip addr、ip route 查看地址与路由
## nslookup 与 dig
- 查询 DNS 记录与解析结果
- 可指定解析服务器,区分本机配置与上游解析问题
- DNS 查询成功不代表目标服务已经可访问
## netstat 与 ss
- netstat 可显示连接、监听端口、路由或接口统计
- 可用选项随操作系统而不同
- Linux 的 ss 常用于查看套接字与连接状态
- 本地端口处于监听状态不代表外部路径和防火墙已经放通
WWW 服务¶
---
markmap:
height: 760
initialExpandLevel: 2
autoFit: true
colorFreezeLevel: 2
maxWidth: 280
spacingHorizontal: 80
spacingVertical: 12
nodeMinHeight: 24
paddingX: 10
---
# 万维网与 Web 服务
## WWW 的组成
- 万维网运行在互联网之上,通过超链接组织资源
- 浏览器作为客户端,Web 服务器提供页面、文件与接口
- URL 标识资源位置,HTTP 定义交互语义,HTML 描述文档结构
- 互联网还承载邮件、文件传输等其他服务
## URL 统一资源定位符
- Web URL 常见结构:方案、主机、可选端口、路径、查询与片段
- 示例:`https://example.com:443/docs?q=network#intro`
- `https`:方案,表示使用 HTTPS
- `example.com`:主机名,由 DNS 解析为网络地址
- `443`:显式端口;省略时使用该方案的默认端口
- `/docs`:资源路径
- `?q=network`:查询部分
- `#intro`:片段标识,通常由浏览器处理,不随 HTTP 请求发送
- 百分号编码用于表示 URL 中需要编码的字符或字节
- 相对 URL 依照文档的基准 URL 解析
## HTTP 请求与响应
- 请求包含方法、目标、首部和可选正文
- 响应包含状态码、首部和可选正文
- GET:获取资源;POST:提交数据;PUT:创建或替换目标资源;DELETE:请求删除
- 状态码类别:2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误
- HTTP 本身无状态;Cookie、会话与令牌可维持应用状态
- 缓存控制、内容类型等由协议首部描述
## HTTP 与 HTTPS 的传输
- HTTP 的默认端口为 80,HTTPS 的默认端口为 443
- HTTP/1.1 与 HTTP/2 使用 TCP
- HTTPS 通过 TLS 保护 HTTP 通信
- 提供传输机密性、完整性与服务器身份认证
- 客户端认证取决于是否配置双向 TLS 等机制
- 不能单独保证网站内容可信或消除应用漏洞
- HTTP/3 使用基于 UDP 的 QUIC,并集成 TLS 1.3 握手
## HTML 超文本标记语言
- 通过元素和属性描述页面的内容结构
- 超链接连接文档或资源,表单收集用户输入
- 浏览器解析 HTML,形成文档对象模型 DOM
- CSS 描述样式,JavaScript 实现交互行为
- HTML 本身不是传输协议,也不是通用编程语言
## 一次典型访问
- 解析 URL,并在需要时查询 DNS
- 新建或复用连接;HTTPS 建立受 TLS 保护的通信
- 浏览器发出请求,服务器返回资源
- 浏览器解析文档,按需要继续请求样式、脚本与图片
- 缓存、连接复用与代理可能省略或改变部分步骤