跳转至

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 保护的通信 - 浏览器发出请求,服务器返回资源 - 浏览器解析文档,按需要继续请求样式、脚本与图片 - 缓存、连接复用与代理可能省略或改变部分步骤