HCIP学习22 结构化地址规划及网络常见知识点问题
本文系统阐述了企业网络规划与常见网络协议的工作原理。在地址规划部分,详细介绍了172.16.0.0/16网段的VLSM划分方案,将地址空间划分为8个/19大段并分配至不同OSPF区域。在网络协议方面,深入解析了OSI七层模型与TCP/IP四层模型的区别、ARP/DHCP/DNS等协议的工作流程、TCP与UDP的差异、交换机与路由器的转发机制、STP/RSTP/MSTP的演进关系、OSPF的状态机转
一、结构化地址规划(172.16.0.0/16 借 3 位划分)
1.1 总地址块与大段划分
总地址块:172.16.0.0/16(范围:172.16.0.0 - 172.16.255.255)
划分方式:借 3 位主机位作为网络位,划分为8 个 / 19 大段(每个大段包含 32 个 / 24 子网)
| 大段编号 | 网段范围 | 对应 OSPF 区域 | 用途 |
|---|---|---|---|
| 1 | 172.16.0.0/19(172.16.0.0 - 172.16.31.255) | Area 0(骨干区域) | 核心链路、骨干设备互联 |
| 2 | 172.16.32.0/19(172.16.32.0 - 172.16.63.255) | Area 1 | 工程组、非骨干区域 1 |
| 3 | 172.16.64.0/19(172.16.64.0 - 172.16.95.255) | Area 2 | 项目组、非骨干区域 2 |
| 4 | 172.16.96.0/19(172.16.96.0 - 172.16.127.255) | Area 3 | 研发组、非骨干区域 3 |
| 5 | 172.16.128.0/19(172.16.128.0 - 172.16.159.255) | Area 4 | 预留扩展区域 |
| 6 | 172.16.160.0/19(172.16.160.0 - 172.16.191.255) | RIP 区域 | RIP 协议专用网段 |
| 7 | 172.16.192.0/19(172.16.192.0 - 172.16.223.255) | 预留 | 未来扩展 |
| 8 | 172.16.224.0/19(172.16.224.0 - 172.16.255.255) | 预留 | 未来扩展 |
1.2 各区域详细子网划分
Area 0(骨干区域,172.16.0.0/19)
| 子网网段 | 子网掩码 | 再划分 | 用途 | 示例分配 |
|---|---|---|---|---|
| 172.16.0.0/24 | 255.255.255.0 | /30(每个子网 2 个可用 IP) | P2P 点对点链路专用 | 172.16.0.0/30:R10-R11172.16.0.4/30:R10-R12172.16.0.8/30:R10-R13 |
| 172.16.1.0/24 | 255.255.255.0 | /29(每个子网 6 个可用 IP) | MA 多路访问链路专用 | 172.16.1.0/29:核心交换机 1172.16.1.8/29:核心交换机 2 |
| 172.16.2.0/24 ~ 172.16.31.0/24 | 255.255.255.0 | /24 或 / 25 | 预留骨干用户网段 | 172.16.2.0/25:管理网段172.16.2.128/25:服务器网段 |
Area 1(工程组,172.16.32.0/19)
| 子网网段 | 子网掩码 | 再划分 | 用途 | 示例分配 |
|---|---|---|---|---|
| 172.16.32.0/24 | 255.255.255.0 | /29 | MA 链路专用 | 172.16.32.0/29:R11-R14 |
| 172.16.33.0/24 | 255.255.255.0 | /24 | 工程组用户网段 | PC5:172.16.33.1/24 |
| 172.16.34.0/24 ~ 172.16.63.0/24 | 255.255.255.0 | /24 | 预留用户网段 | 172.16.34.0/24:工程组服务器 |
Area 2(项目组,172.16.64.0/19)
| 子网网段 | 子网掩码 | 再划分 | 用途 | 示例分配 |
|---|---|---|---|---|
| 172.16.64.0/24 | 255.255.255.0 | /30 | P2P 链路专用 | 172.16.64.0/30:R12-R15 |
| 172.16.65.0/24 | 255.255.255.0 | /24 | 项目组用户网段 | PC6:172.16.65.1/24 |
| 172.16.66.0/24 ~ 172.16.95.0/24 | 255.255.255.0 | /24 | 预留用户网段 | 172.16.66.0/24:项目组服务器 |
Area 3(研发组,172.16.96.0/19)
| 子网网段 | 子网掩码 | 再划分 | 用途 | 示例分配 |
|---|---|---|---|---|
| 172.16.96.0/24 | 255.255.255.0 | /30 | P2P 链路专用 | 172.16.96.0/30:R13-R16 |
| 172.16.97.0/24 | 255.255.255.0 | /24 | 研发组用户网段 | PC7:172.16.97.1/24 |
| 172.16.98.0/24 ~ 172.16.127.0/24 | 255.255.255.0 | /24 | 预留用户网段 | 172.16.98.0/24:研发组服务器 |
Area 4(预留,172.16.128.0/19)
| 子网网段 | 子网掩码 | 再划分 | 用途 |
|---|---|---|---|
| 172.16.128.0/24 | 255.255.255.0 | /30 | P2P 链路专用 |
| 172.16.129.0/24 ~ 172.16.159.0/24 | 255.255.255.0 | /24 | 预留用户网段 |
RIP 区域(172.16.160.0/19)
| 子网网段 | 子网掩码 | 用途 |
|---|---|---|
| 172.16.160.0/24 | 255.255.255.0 | RIP 协议链路专用 |
| 172.16.161.0/24 ~ 172.16.191.0/24 | 255.255.255.0 | RIP 用户网段 |
二、网络常见知识点问题
1. OSI 参考模型和 TCP/IP 模型区别?OSI 参考模型各个层次名称以及每一层的功能?
1.1 OSI 参考模型层次与功能(从下到上)
| 层次 | 名称 | 核心功能 | 数据单位 | 典型设备 / 技术 |
|---|---|---|---|---|
| 第 7 层 | 应用层 | 为应用程序提供网络服务,定义应用层协议和交互规则 | 数据 | 浏览器、邮件客户端HTTP、FTP、SMTP、DNS |
| 第 6 层 | 表示层 | 数据格式转换、加密解密、压缩解压缩,确保不同系统间数据可理解 | 数据 | 加密算法(AES)、压缩算法(ZIP)ASCII、UTF-8 编码 |
| 第 5 层 | 会话层 | 建立、管理和终止应用程序之间的会话连接,提供会话同步和恢复 | 数据 | 会话控制协议(RPC)NetBIOS |
| 第 4 层 | 传输层 | 提供端到端的可靠或不可靠数据传输,实现流量控制和拥塞控制 | 段(Segment)数据报(Datagram) | 防火墙、负载均衡器TCP、UDP 协议 |
| 第 3 层 | 网络层 | 路由选择、分组转发,实现不同网络之间的通信 | 分组(Packet) | 路由器、三层交换机IP、ICMP、ARP 协议 |
| 第 2 层 | 数据链路层 | 将比特流封装成帧,实现相邻节点之间的可靠传输,进行差错检测和纠正 | 帧(Frame) | 交换机、网卡以太网、PPP、HDLC 协议 |
| 第 1 层 | 物理层 | 传输比特流,定义物理介质的电气、机械、功能和规程特性 | 比特(Bit) | 网线、光纤、集线器RJ45 接口、电压标准 |
1.2 TCP/IP 模型层次与功能
| 层次 | 名称 | 对应 OSI 层次 | 核心功能 |
|---|---|---|---|
| 第 4 层 | 应用层 | 应用层 + 表示层 + 会话层 | 整合了 OSI 上三层的功能,直接为应用程序提供服务 |
| 第 3 层 | 传输层 | 传输层 | 与 OSI 传输层功能相同,提供端到端传输 |
| 第 2 层 | 网际层 | 网络层 | 与 OSI 网络层功能相同,负责路由选择和分组转发 |
| 第 1 层 | 网络接口层 | 数据链路层 + 物理层 | 整合了 OSI 下两层的功能,负责物理传输和帧封装 |
1.3 两者主要区别
| 对比项 | OSI 参考模型 | TCP/IP 模型 |
|---|---|---|
| 层次数量 | 7 层 | 4 层 |
| 设计理念 | 先有模型,后有协议,理论性强 | 先有协议,后有模型,实用性强 |
| 通用性 | 通用模型,适用于所有网络体系 | 专门为 TCP/IP 协议栈设计 |
| 层次划分 | 严格区分服务、接口和协议 | 层次划分不严格,功能重叠 |
| 可靠性 | 强调可靠性,所有层次都有差错控制 | 仅在传输层强调可靠性 |
| 实际应用 | 理论教学和网络设计参考 | 互联网实际使用的标准模型 |
2. TCP/IP 模型每一层的名称,以及每一层常见的协议
| 层次 | 名称 | 常见协议 |
|---|---|---|
| 应用层 | 应用层 | HTTP、HTTPS、FTP、TFTP、SMTP、POP3、IMAP、DNS、Telnet、SSH、SNMP、DHCP、NTP、RTP、RTSP |
| 传输层 | 传输层 | TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议) |
| 网际层 | 网际层 | IPv4、IPv6、ICMP(互联网控制消息协议)、IGMP(互联网组管理协议)、ARP(地址解析协议)、RARP(反向地址解析协议) |
| 网络接口层 | 网络接口层 | 以太网(Ethernet)、PPP(点对点协议)、HDLC(高级数据链路控制)、Frame Relay(帧中继)、ATM(异步传输模式)、Wi-Fi(802.11) |
3. ARP 协议种类,ARP 协议工作原理
3.1 ARP 协议种类
-
普通 ARP:用于已知 IP 地址,获取对应的 MAC 地址
-
反向 ARP(RARP):用于已知 MAC 地址,获取对应的 IP 地址(已被 DHCP 取代)
-
免费 ARP(Gratuitous ARP):发送 ARP 请求查询自己的 IP 地址,用于检测 IP 地址冲突和更新 ARP 缓存
-
代理 ARP(Proxy ARP):路由器代替目标主机回复 ARP 请求,使不同网段的主机能够通信
-
反向 ARP(InARP):用于帧中继等网络中,已知 DLCI(数据链路连接标识符),获取对应的 IP 地址
3.2 普通 ARP 工作原理
-
主机 A 需要与主机 B 通信,首先检查自己的 ARP 缓存中是否有主机 B 的 IP 地址对应的 MAC 地址
-
如果没有,主机 A 在本地网络中广播 ARP 请求报文,报文内容包括:
-
源 IP 地址:主机 A 的 IP 地址
-
源 MAC 地址:主机 A 的 MAC 地址
-
目标 IP 地址:主机 B 的 IP 地址
-
目标 MAC 地址:FF:FF:FF:FF:FF:FF(广播地址)
-
-
本地网络中的所有主机都会收到这个 ARP 请求,但只有目标 IP 地址与自己 IP 地址相同的主机 B 会处理
-
主机 B 回复 ARP 响应报文(单播),报文内容包括:
-
源 IP 地址:主机 B 的 IP 地址
-
源 MAC 地址:主机 B 的 MAC 地址
-
目标 IP 地址:主机 A 的 IP 地址
-
目标 MAC 地址:主机 A 的 MAC 地址
-
-
主机 A 收到 ARP 响应后,将主机 B 的 IP 地址和 MAC 地址的映射关系添加到自己的 ARP 缓存中,然后使用这个 MAC 地址封装数据帧发送给主机 B
ARP 缓存老化时间:默认 15-20 分钟,超时后会重新发送 ARP 请求
4. HTTP 协议延伸 --- 访问一次网页的完整通讯过程
以访问https://www.baidu.com为例,完整过程分为以下 10 步:
-
DNS 域名解析
-
浏览器检查自己的 DNS 缓存中是否有
www.baidu.com对应的 IP 地址 -
如果没有,向操作系统的 DNS 缓存查询
-
如果还没有,向本地 DNS 服务器发送 DNS 查询请求
-
本地 DNS 服务器通过递归查询或迭代查询,最终获取
www.baidu.com对应的 IP 地址(例如:180.101.50.242)
-
-
建立 TCP 连接(三次握手)
-
客户端向服务器发送 SYN 报文(同步报文),请求建立连接
-
服务器回复 SYN+ACK 报文,确认客户端的连接请求,并请求建立反向连接
-
客户端回复 ACK 报文,确认服务器的连接请求,TCP 连接建立成功
-
-
建立 TLS/SSL 连接(HTTPS 专用)
-
客户端向服务器发送 Client Hello 报文,包含支持的 TLS 版本、加密套件等信息
-
服务器回复 Server Hello 报文,选择使用的 TLS 版本和加密套件,并发送服务器证书
-
客户端验证服务器证书的有效性
-
客户端生成预主密钥,使用服务器公钥加密后发送给服务器
-
服务器使用自己的私钥解密预主密钥
-
双方使用预主密钥生成会话密钥,用于后续数据的加密传输
-
-
客户端发送 HTTP 请求
-
客户端构造 HTTP 请求报文,包括请求行(GET / HTTP/1.1)、请求头(Host: www.baidu.com、User-Agent 等)、空行和请求体(GET 请求没有请求体)
-
使用会话密钥加密 HTTP 请求报文
-
将加密后的报文封装成 TCP 段,发送给服务器
-
-
服务器处理 HTTP 请求
-
服务器收到 TCP 段后,进行 TCP 校验和重组
-
使用会话密钥解密 HTTP 请求报文
-
解析 HTTP 请求,根据请求的 URL 和方法,调用相应的处理程序
-
生成 HTTP 响应报文,包括状态行(HTTP/1.1 200 OK)、响应头(Content-Type: text/html 等)、空行和响应体(HTML 页面内容)
-
-
服务器发送 HTTP 响应
-
使用会话密钥加密 HTTP 响应报文
-
将加密后的报文封装成 TCP 段,发送给客户端
-
-
客户端接收并解析 HTTP 响应
-
客户端收到 TCP 段后,进行 TCP 校验和重组
-
使用会话密钥解密 HTTP 响应报文
-
解析 HTTP 响应,获取 HTML 页面内容
-
-
浏览器渲染 HTML 页面
-
浏览器解析 HTML 代码,构建 DOM 树
-
解析 CSS 代码,构建 CSSOM 树
-
将 DOM 树和 CSSOM 树结合,构建渲染树
-
根据渲染树进行布局(Layout)和绘制(Paint),最终在屏幕上显示页面
-
-
加载页面中的其他资源
-
浏览器在渲染 HTML 页面的过程中,会发现页面中包含的其他资源(如图片、CSS 文件、JavaScript 文件等)
-
重复步骤 4-8,加载这些资源
-
-
关闭 TCP 连接(四次挥手)
-
客户端发送 FIN 报文,请求关闭连接
-
服务器回复 ACK 报文,确认客户端的关闭请求
-
服务器发送 FIN 报文,请求关闭反向连接
-
客户端回复 ACK 报文,确认服务器的关闭请求,TCP 连接关闭成功
-
5. DHCP 协议的工作过程
DHCP(动态主机配置协议)用于自动为网络中的主机分配 IP 地址、子网掩码、网关、DNS 服务器等网络参数,工作过程分为4 步(DORA 过程):
-
发现阶段(Discover)
-
客户端启动时,由于没有 IP 地址,向本地网络中广播 DHCP Discover 报文
-
报文源 IP 地址:0.0.0.0
-
报文目标 IP 地址:255.255.255.255(广播地址)
-
报文内容:客户端的 MAC 地址、请求的参数列表等
-
-
提供阶段(Offer)
-
本地网络中的所有 DHCP 服务器都会收到 DHCP Discover 报文
-
每个 DHCP 服务器从自己的地址池中选择一个未分配的 IP 地址,向客户端单播 DHCP Offer 报文
-
报文内容:提供的 IP 地址、子网掩码、网关、DNS 服务器、租约期限等
-
-
选择阶段(Request)
-
客户端可能会收到多个 DHCP Offer 报文,通常选择第一个收到的 Offer
-
客户端向本地网络中广播 DHCP Request 报文,通知所有 DHCP 服务器自己选择了哪个服务器提供的 IP 地址
-
报文内容:选择的 DHCP 服务器的 IP 地址、请求的 IP 地址等
-
-
确认阶段(Acknowledge)
-
被选中的 DHCP 服务器收到 DHCP Request 报文后,向客户端单播 DHCP ACK 报文,确认 IP 地址的分配
-
其他 DHCP 服务器收到 DHCP Request 报文后,收回自己提供的 IP 地址
-
客户端收到 DHCP ACK 报文后,配置自己的网络参数,完成 IP 地址的获取
-
补充:
-
租约更新:当租约期限达到 50% 时,客户端会向 DHCP 服务器发送 DHCP Request 报文,请求更新租约
-
租约重新绑定:如果租约更新失败,当租约期限达到 87.5% 时,客户端会向本地网络中广播 DHCP Request 报文,请求重新绑定
-
释放 IP 地址:客户端关机时,会向 DHCP 服务器发送 DHCP Release 报文,释放自己的 IP 地址
6. 交换机的转发原理
交换机工作在数据链路层,基于 MAC 地址进行数据帧的转发,核心是MAC 地址表(CAM 表)。转发过程分为以下 3 步:
-
学习 MAC 地址
-
当交换机从某个端口收到一个数据帧时,会提取数据帧中的源 MAC 地址和接收端口号
-
检查 MAC 地址表中是否有该源 MAC 地址的条目
-
如果没有,将源 MAC 地址和接收端口号的映射关系添加到 MAC 地址表中
-
如果有,更新该条目的老化时间
-
-
转发数据帧
-
提取数据帧中的目标 MAC 地址
-
检查 MAC 地址表中是否有该目标 MAC 地址的条目
-
如果有:将数据帧从对应的端口单播转发出去
-
如果没有:将数据帧从除接收端口外的所有其他端口广播转发出去(泛洪)
-
-
更新 MAC 地址表
-
MAC 地址表中的条目有老化时间(默认 300 秒)
-
如果在老化时间内没有收到来自某个 MAC 地址的数据帧,该条目会被自动删除
-
如果收到来自某个 MAC 地址的数据帧,但接收端口与 MAC 地址表中记录的端口不同,会更新该条目的端口号
-
补充:
-
交换机的每个端口都是一个独立的冲突域,能够有效减少网络冲突
-
交换机支持全双工通信,能够同时发送和接收数据,提高网络带宽
7. 路由器的转发原理
路由器工作在网络层,基于 IP 地址进行数据包的转发,核心是路由表。转发过程分为以下 4 步:
-
接收数据包
-
路由器从某个接口收到一个数据包
-
检查数据包的完整性和合法性,丢弃错误的数据包
-
-
查找路由表
-
提取数据包中的目标 IP 地址
-
在路由表中查找与目标 IP 地址最长匹配的路由条目
-
最长匹配原则:选择子网掩码最长的路由条目,例如:目标 IP 地址为 192.168.1.10,路由表中有 192.168.1.0/24 和 192.168.0.0/16 两条路由,会选择 192.168.1.0/24
-
-
转发数据包
-
根据找到的路由条目,确定数据包的下一跳 IP 地址和出接口
-
将数据包封装成新的数据帧,源 MAC 地址为出接口的 MAC 地址,目标 MAC 地址为下一跳 IP 地址对应的 MAC 地址(通过 ARP 协议获取)
-
将数据帧从出接口发送出去
-
-
如果没有找到匹配的路由条目
-
如果路由表中有默认路由(0.0.0.0/0),将数据包转发到默认路由的下一跳
-
如果没有默认路由,丢弃数据包,并向源主机发送 ICMP 不可达报文
-
补充:
-
路由器的每个接口都是一个独立的广播域,能够有效隔离广播风暴
-
路由器支持多种路由协议(如 OSPF、BGP、RIP 等),能够动态学习和更新路由表
8. DNS 协议的工作过程
DNS(域名系统)用于将人类可读的域名(如www.baidu.com)转换为机器可读的 IP 地址(如 180.101.50.242),工作过程分为递归查询和迭代查询两种:
8.1 递归查询
-
客户端向本地 DNS 服务器发送 DNS 查询请求
-
本地 DNS 服务器代替客户端进行查询,直到获取到最终的 IP 地址
-
本地 DNS 服务器将最终的 IP 地址返回给客户端
-
特点:客户端只需要发送一次查询请求,所有的查询工作都由本地 DNS 服务器完成
8.2 迭代查询
-
本地 DNS 服务器向根 DNS 服务器发送 DNS 查询请求
-
根 DNS 服务器返回顶级域名服务器(如.com 服务器)的 IP 地址
-
本地 DNS 服务器向顶级域名服务器发送 DNS 查询请求
-
顶级域名服务器返回权威域名服务器(如baidu.com服务器)的 IP 地址
-
本地 DNS 服务器向权威域名服务器发送 DNS 查询请求
-
权威域名服务器返回目标域名对应的 IP 地址
-
特点:本地 DNS 服务器需要发送多次查询请求,每次查询都得到一个更接近目标的 DNS 服务器的 IP 地址
8.3 DNS 查询过程(以www.baidu.com为例)
-
客户端检查自己的 DNS 缓存
-
客户端向本地 DNS 服务器发送递归查询请求
-
本地 DNS 服务器检查自己的 DNS 缓存
-
本地 DNS 服务器向根 DNS 服务器发送迭代查询请求
-
根 DNS 服务器返回.com 顶级域名服务器的 IP 地址
-
本地 DNS 服务器向.com 顶级域名服务器发送迭代查询请求
-
.com 顶级域名服务器返回baidu.com权威域名服务器的 IP 地址
-
本地 DNS 服务器向baidu.com权威域名服务器发送迭代查询请求
-
baidu.com权威域名服务器返回www.baidu.com对应的 IP 地址
-
本地 DNS 服务器将 IP 地址返回给客户端
-
客户端使用 IP 地址访问目标网站
补充:
-
DNS 缓存:客户端、本地 DNS 服务器、权威 DNS 服务器都会缓存 DNS 查询结果,以提高查询速度
-
DNS 端口:使用 UDP 53 端口进行查询,使用 TCP 53 端口进行区域传输
9. TCP 和 UDP 协议区别?以及常见的应用场景?
9.1 区别
| 对比项 | TCP(传输控制协议) | UDP(用户数据报协议) |
|---|---|---|
| 连接类型 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输,保证数据不丢失、不重复、按序到达 | 不可靠传输,不保证数据的可靠性 |
| 流量控制 | 支持滑动窗口机制进行流量控制 | 不支持流量控制 |
| 拥塞控制 | 支持慢启动、拥塞避免、快速重传、快速恢复等拥塞控制机制 | 不支持拥塞控制 |
| 传输效率 | 较低,因为需要建立连接、确认和重传 | 较高,因为没有额外的开销 |
| 首部大小 | 20-60 字节 | 8 字节 |
| 数据边界 | 不保留数据边界,将数据视为字节流 | 保留数据边界,每个 UDP 数据报都是独立的 |
| 适用场景 | 对可靠性要求高的应用 | 对实时性要求高的应用 |
9.2 常见应用场景
TCP 应用场景
-
网页浏览:HTTP、HTTPS
-
文件传输:FTP、SFTP
-
电子邮件:SMTP、POP3、IMAP
-
远程登录:SSH、Telnet
-
数据库访问:MySQL、Oracle
UDP 应用场景
-
实时视频:直播、视频会议(如 Zoom、腾讯会议)
-
实时音频:VoIP(网络电话)、语音聊天
-
游戏:在线游戏(如王者荣耀、英雄联盟)
-
广播和多播:DHCP、DNS、SNMP、NTP
-
物联网:传感器数据传输
10. TCP 协议报文参数,以及参数的作用
TCP 报文由首部和数据两部分组成,首部长度为 20-60 字节,主要参数如下:
| 参数 | 长度(位) | 作用 |
|---|---|---|
| 源端口号 | 16 | 标识发送端的应用程序 |
| 目标端口号 | 16 | 标识接收端的应用程序 |
| 序号(Sequence Number) | 32 | 标识本报文段所发送的数据的第一个字节的序号,用于保证数据的按序到达 |
| 确认号(Acknowledgment Number) | 32 | 标识期望收到的下一个报文段的第一个字节的序号,用于确认收到的数据 |
| 数据偏移 | 4 | 标识 TCP 首部的长度,以 4 字节为单位,最小值为 5(20 字节),最大值为 15(60 字节) |
| 保留位 | 6 | 保留为将来使用,必须为 0 |
| 控制位 | 6 | 包含 6 个标志位,用于控制 TCP 连接的建立、维护和关闭:- URG:紧急指针有效- ACK:确认号有效- PSH:推送操作- RST:重置连接- SYN:同步序号,用于建立连接- FIN:发送端完成数据发送,用于关闭连接 |
| 窗口大小 | 16 | 标识接收端的接收窗口大小,用于流量控制,单位为字节 |
| 校验和 | 16 | 用于检测 TCP 报文在传输过程中是否出现错误 |
| 紧急指针 | 16 | 标识紧急数据的最后一个字节的序号,只有当 URG 标志位为 1 时才有效 |
| 选项 | 可变 | 长度可变,最长为 40 字节,用于提供额外的功能,如最大段大小(MSS)、窗口扩大因子、时间戳等 |
11. TCP 协议为什么需要面向连接,什么是 TCP 的面向连接?
11.1 为什么需要面向连接
-
保证数据的可靠性:面向连接的通信能够在数据传输前建立连接,确保双方都准备好接收数据;在数据传输过程中进行确认和重传,保证数据不丢失、不重复、按序到达;在数据传输结束后释放连接,确保资源被正确回收。
-
实现流量控制和拥塞控制:面向连接的通信能够在连接建立过程中协商双方的参数(如最大段大小、窗口大小等),在数据传输过程中根据网络状况动态调整发送速率,避免网络拥塞和数据丢失。
-
提供端到端的可靠通信:面向连接的通信能够为应用程序提供一个可靠的字节流服务,应用程序不需要关心数据的传输细节,只需要将数据交给 TCP 即可。
11.2 什么是 TCP 的面向连接
TCP 的面向连接是指在数据传输之前,通信双方必须先建立一条逻辑连接,然后才能进行数据传输,数据传输结束后,必须释放这条连接。
TCP 的连接是虚连接,不是物理连接,它是通过通信双方的状态机和报文交换来实现的。一条 TCP 连接由源 IP 地址、源端口号、目标 IP 地址、目标端口号四元组唯一标识。
TCP 连接的建立通过三次握手实现,连接的释放通过四次挥手实现。
12. 什么是 TCP 的快速重传?TCP 如何进行流控?
12.1 TCP 的快速重传
快速重传是 TCP 的一种拥塞控制机制,用于快速检测和重传丢失的报文段,避免等待超时重传计时器到期,提高传输效率。
工作原理:
-
当接收端收到一个失序的报文段时,会立即发送一个重复 ACK,确认已经收到的最后一个有序的报文段
-
如果发送端连续收到3 个重复 ACK,就认为对应的报文段已经丢失,立即重传该报文段,而不需要等待超时重传计时器到期
优点:
-
能够快速检测和重传丢失的报文段,减少数据传输的延迟
-
避免了超时重传计时器到期导致的长时间等待
12.2 TCP 的流量控制
流量控制是 TCP 的一种机制,用于防止发送端发送数据的速度超过接收端的接收能力,避免接收端缓冲区溢出,导致数据丢失。
TCP 使用滑动窗口机制实现流量控制:
-
接收端在发送 ACK 报文时,会在窗口大小字段中通知发送端自己当前的接收缓冲区大小(即能够接收的最大字节数)
-
发送端根据接收端通知的窗口大小,调整自己的发送窗口大小,确保发送的数据量不超过接收端的接收能力
-
当接收端的接收缓冲区满时,会将窗口大小设置为 0,通知发送端停止发送数据
-
当接收端的接收缓冲区有空闲空间时,会发送一个窗口更新报文,通知发送端可以继续发送数据
滑动窗口的特点:
-
窗口大小是动态变化的,根据接收端的接收能力实时调整
-
发送端的发送窗口大小等于接收端的接收窗口大小
-
滑动窗口机制能够实现流量控制和可靠传输的结合
13. TCP 如何判断网络拥塞?如何解决网络拥塞问题?
13.1 TCP 如何判断网络拥塞
TCP 主要通过以下两种方式判断网络拥塞:
-
超时重传:如果发送端在超时重传计时器到期后仍然没有收到 ACK 报文,就认为网络发生了拥塞,导致报文段丢失
-
快速重传:如果发送端连续收到 3 个重复 ACK,就认为对应的报文段已经丢失,网络可能发生了拥塞
13.2 TCP 如何解决网络拥塞问题
TCP 使用拥塞控制机制解决网络拥塞问题,主要包括以下 4 个算法:
-
慢启动(Slow Start)
-
当 TCP 连接建立时,拥塞窗口(cwnd)初始化为 1 个 MSS(最大段大小)
-
每收到一个 ACK 报文,拥塞窗口增加 1 个 MSS
-
拥塞窗口呈指数增长,直到达到慢启动阈值(ssthresh)或发生拥塞
-
目的:在网络状况未知的情况下,缓慢增加发送速率,避免突然发送大量数据导致网络拥塞
-
-
拥塞避免(Congestion Avoidance)
-
当拥塞窗口达到慢启动阈值时,进入拥塞避免阶段
-
每经过一个 RTT(往返时间),拥塞窗口增加 1 个 MSS
-
拥塞窗口呈线性增长,直到发生拥塞
-
目的:在网络拥塞发生前,缓慢增加发送速率,避免网络拥塞
-
-
快速重传(Fast Retransmit)
-
如问题 12 所述,当发送端连续收到 3 个重复 ACK 时,立即重传丢失的报文段
-
目的:快速检测和重传丢失的报文段,减少数据传输的延迟
-
-
快速恢复(Fast Recovery)
-
当发送端连续收到 3 个重复 ACK 时,进入快速恢复阶段
-
将慢启动阈值设置为当前拥塞窗口的一半
-
将拥塞窗口设置为慢启动阈值 + 3 个 MSS
-
每收到一个重复 ACK,拥塞窗口增加 1 个 MSS
-
当收到新的 ACK 报文时,将拥塞窗口设置为慢启动阈值,进入拥塞避免阶段
-
目的:在发生轻微拥塞时,避免进入慢启动阶段,提高传输效率
-
拥塞控制的整体流程:
-
连接建立时,进入慢启动阶段,拥塞窗口指数增长
-
当拥塞窗口达到慢启动阈值时,进入拥塞避免阶段,拥塞窗口线性增长
-
当发生超时重传时,将慢启动阈值设置为当前拥塞窗口的一半,拥塞窗口重置为 1 个 MSS,重新进入慢启动阶段
-
当发生快速重传时,进入快速恢复阶段,然后进入拥塞避免阶段
14. 如何搭建企业网络?三层架构每一层的功能和作用?
14.1 企业网络三层架构
企业网络通常采用三层架构设计,从下到上分为接入层、汇聚层和核心层。
14.2 各层功能和作用
接入层(Access Layer)
-
位置:最靠近用户的一层
-
核心功能:为终端设备(如 PC、打印机、IP 电话等)提供网络接入
-
主要技术:
-
VLAN 划分:将不同部门的用户划分到不同的 VLAN,实现逻辑隔离
-
端口安全:限制每个端口的 MAC 地址数量,防止非法接入
-
802.1X 认证:对用户进行身份认证,确保只有合法用户才能接入网络
-
PoE 供电:为 IP 电话、无线 AP 等设备提供以太网供电
-
-
典型设备:接入层交换机、无线 AP
汇聚层(Distribution Layer)
- 位置:接入层和核心层之间
-
核心功能:汇聚接入层的流量,提供路由选择、安全控制和流量管理
-
主要技术:
-
三层路由:实现不同 VLAN 之间的通信
-
访问控制列表(ACL):实现网络安全控制,限制不同 VLAN 之间的访问
-
链路聚合:将多个物理链路捆绑成一个逻辑链路,提高带宽和冗余性
-
VLAN 间路由:实现不同 VLAN 之间的通信
-
QoS(服务质量):对不同类型的流量进行优先级处理,保证关键业务的带宽
-
-
典型设备:三层交换机、路由器
核心层(Core Layer)
-
位置:企业网络的最顶层
-
核心功能:高速转发数据,提供高可靠性和高可用性
-
主要技术:
-
高速路由:使用 OSPF、BGP 等路由协议,实现高速路由转发
-
冗余设计:采用双核心、双链路等冗余设计,避免单点故障
-
负载均衡:将流量均匀分配到不同的链路和设备上,提高网络性能
-
防火墙:实现企业网络与互联网之间的安全隔离
-
-
典型设备:核心路由器、核心交换机、防火墙
14.3 企业网络搭建步骤
-
需求分析:了解企业的业务需求、用户数量、应用类型、安全要求等
-
网络设计:设计网络拓扑结构、IP 地址规划、VLAN 规划、路由规划、安全规划等
-
设备选型:根据网络设计方案,选择合适的网络设备(交换机、路由器、防火墙等)
-
设备配置:配置网络设备的基本参数、VLAN、路由、安全策略等
-
网络测试:测试网络的连通性、性能、安全性等
-
网络部署:将网络设备安装到实际环境中,进行布线和连接
-
网络运维:对网络进行日常维护和管理,及时处理网络故障
15. VLAN 的应用场景,以及 VLAN 的工作过程?
15.1 VLAN 的应用场景
VLAN(虚拟局域网)是一种将物理局域网划分为多个逻辑局域网的技术,主要应用场景包括:
-
部门隔离:将不同部门的用户划分到不同的 VLAN,实现逻辑隔离,提高网络安全性
-
广播风暴控制:每个 VLAN 都是一个独立的广播域,能够有效隔离广播风暴,提高网络性能
-
灵活的网络管理:用户可以根据业务需求灵活调整 VLAN 成员,不需要改变物理连接
-
安全控制:通过访问控制列表(ACL)限制不同 VLAN 之间的访问,实现细粒度的安全控制
-
虚拟工作组:将不同物理位置的用户划分到同一个 VLAN,组成虚拟工作组,方便协作
15.2 VLAN 的工作过程
VLAN 的工作过程主要包括VLAN 标记、VLAN 转发和VLAN 去标记三个步骤:
-
VLAN 标记(Tagging)
-
当交换机从接入端口(Access Port)收到一个未标记的数据帧时,会根据接入端口的 PVID(端口 VLAN ID)为数据帧添加 VLAN 标记
-
VLAN 标记包含在以太网帧的首部中,长度为 4 字节,其中 12 位用于标识 VLAN ID(范围:1-4094)
-
-
VLAN 转发
-
交换机根据数据帧中的 VLAN ID 和目标 MAC 地址,在对应的 VLAN MAC 地址表中查找转发端口
-
如果找到转发端口,且该端口允许该 VLAN 的数据帧通过,则将数据帧转发到该端口
-
如果转发端口是 trunk 端口(干道端口),则保留 VLAN 标记
-
如果转发端口是接入端口,则去掉 VLAN 标记
-
-
VLAN 去标记(Untagging)
-
当数据帧从接入端口转发出去时,交换机会去掉数据帧中的 VLAN 标记,将未标记的数据帧发送给终端设备
-
补充:
-
Access 端口:只能属于一个 VLAN,用于连接终端设备
-
Trunk 端口:可以属于多个 VLAN,用于连接交换机之间的链路
-
Native VLAN:Trunk 端口上的默认 VLAN,未标记的数据帧会被分配到 Native VLAN
16. 三层交换机和路由器的区别?
三层交换机和路由器都工作在网络层,能够实现路由功能,但它们在设计目标、性能、功能等方面存在明显区别:
| 对比项 | 三层交换机 | 路由器 |
|---|---|---|
| 设计目标 | 主要用于局域网内部的高速数据转发,实现 VLAN 间路由 | 主要用于不同网络之间的互联,实现广域网路由 |
| 转发技术 | 采用硬件转发(ASIC 芯片),转发速度快 | 采用软件转发(CPU),转发速度慢 |
| 接口类型 | 主要提供以太网接口(RJ45、SFP 等) | 提供多种接口类型(以太网、串口、POS 等),支持广域网协议 |
| 路由功能 | 支持基本的路由协议(OSPF、RIP 等),主要用于局域网内部路由 | 支持丰富的路由协议(OSPF、BGP、IS-IS 等),主要用于广域网路由 |
| NAT 功能 | 部分三层交换机支持 NAT 功能,但性能有限 | 支持完善的 NAT 功能,能够实现地址转换和端口映射 |
| 防火墙功能 | 基本不支持防火墙功能 | 支持丰富的防火墙功能(ACL、VPN、入侵检测等) |
| 价格 | 相对较低 | 相对较高 |
| 适用场景 | 企业局域网内部,实现 VLAN 间路由和高速数据转发 | 企业网络出口,实现与互联网和其他分支机构的互联 |
总结:三层交换机是带有路由功能的交换机,主要用于局域网内部;路由器是专门用于路由的设备,主要用于广域网互联。
17. 什么是 STP,STP 协议如何工作?
17.1 什么是 STP
STP(生成树协议)是一种用于防止以太网环路的协议,它通过在交换机之间传递 BPDU(桥协议数据单元),计算出一个无环的生成树拓扑,将冗余链路中的某些端口阻塞,从而避免环路的产生。
当主链路发生故障时,STP 会自动将阻塞的端口切换为转发状态,恢复网络的连通性,实现链路冗余。
17.2 STP 协议的工作过程
STP 的工作过程分为以下 4 步:
-
选举根桥(Root Bridge)
-
所有交换机都认为自己是根桥,向网络中发送 BPDU 报文
-
BPDU 报文中包含桥 ID,桥 ID 由桥优先级(默认 32768)和MAC 地址组成
-
桥 ID 最小的交换机被选举为根桥
-
根桥的所有端口都为指定端口,处于转发状态
-
-
选举根端口(Root Port)
-
对于非根桥交换机,选举一个根端口,该端口是到根桥路径开销最小的端口
-
路径开销:根据链路带宽计算,带宽越高,路径开销越小(例如:100Mbps 链路的路径开销为 19,1Gbps 链路的路径开销为 4)
-
如果多个端口的路径开销相同,则比较对端的桥 ID,桥 ID 小的端口为根端口
-
如果对端的桥 ID 也相同,则比较对端的端口 ID,端口 ID 小的端口为根端口
-
根端口处于转发状态
-
-
选举指定端口(Designated Port)
-
对于每个网段,选举一个指定端口,该端口是该网段到根桥路径开销最小的端口
-
指定端口由所在网段的交换机选举产生,桥 ID 小的交换机的端口为指定端口
-
如果桥 ID 相同,则比较端口 ID,端口 ID 小的端口为指定端口
-
指定端口处于转发状态
-
-
阻塞非指定端口
-
既不是根端口也不是指定端口的端口被称为非指定端口,处于阻塞状态
-
阻塞状态的端口不转发用户数据,但仍然接收和处理 BPDU 报文
-
补充:
-
STP 的端口状态:Disabled、Blocking、Listening、Learning、Forwarding
-
STP 的收敛时间:默认 30-50 秒
18. RSTP 有哪些快速收敛机制?
RSTP(快速生成树协议)是 STP 的改进版本,解决了 STP 收敛速度慢的问题,主要有以下5 种快速收敛机制:
-
端口角色重新定义
-
RSTP 将 STP 的 5 种端口状态简化为 3 种:Discarding(丢弃)、Learning(学习)、Forwarding(转发)
-
新增了 ** 替代端口(Alternate Port)和备份端口(Backup Port)** 两种端口角色
-
替代端口:根端口的备份端口,当根端口故障时,替代端口会立即切换为根端口
-
备份端口:指定端口的备份端口,当指定端口故障时,备份端口会立即切换为指定端口
-
-
边缘端口(Edge Port)
-
直接连接终端设备的端口可以配置为边缘端口
-
边缘端口不需要经过 Listening 和 Learning 状态,直接进入 Forwarding 状态
-
边缘端口如果收到 BPDU 报文,会自动变为普通端口,重新进行 STP 计算
-
-
点对点链路快速收敛
-
当两个交换机之间的链路是点对点链路(全双工)时,RSTP 使用 ** 提议 / 同意(Proposal/Agreement)** 机制实现快速收敛
-
当一个端口被选举为指定端口时,会向对端发送 Proposal 报文
-
对端如果同意该端口成为指定端口,会发送 Agreement 报文
-
发送端收到 Agreement 报文后,该端口立即进入 Forwarding 状态,不需要等待 30 秒
-
-
根端口快速切换
-
当根端口故障时,替代端口会立即切换为根端口,进入 Forwarding 状态
-
不需要等待 30 秒的收敛时间
-
-
拓扑变化处理优化
-
RSTP 简化了拓扑变化的处理过程,当拓扑发生变化时,只需要通知相关的交换机,而不需要广播到整个网络
-
拓扑变化通知(TCN)报文直接由根端口发送给根桥,根桥再将拓扑变化信息广播到整个网络
-
交换机收到拓扑变化信息后,会将 MAC 地址表的老化时间设置为 15 秒,加速 MAC 地址表的更新
-
总结:RSTP 的收敛时间可以缩短到1-2 秒,大大提高了网络的可靠性和性能。
19. MSTP 和 STP 相比有哪些改进?
MSTP(多生成树协议)是 RSTP 的进一步改进,解决了 RSTP 中所有 VLAN 共享一棵生成树的问题,主要有以下4 个改进:
-
多生成树实例
-
MSTP 可以将多个 VLAN 映射到同一个生成树实例(MSTI),每个生成树实例独立计算生成树拓扑
-
不同的生成树实例可以有不同的根桥和转发路径,实现流量的负载均衡
-
例如:将 VLAN 10 映射到 MSTI 1,根桥为交换机 A;将 VLAN 20 映射到 MSTI 2,根桥为交换机 B,这样 VLAN 10 的流量走交换机 A,VLAN 20 的流量走交换机 B,实现负载均衡
-
-
MST 域(MST Region)
-
具有相同 MST 配置名称、MST 配置修订号和 VLAN 到 MSTI 映射关系的交换机组成一个 MST 域
-
MST 域内部运行 MSTP,域之间运行 RSTP
-
对于域外部的交换机来说,整个 MST 域就像一个虚拟的交换机
-
-
兼容 STP 和 RSTP
-
MSTP 完全兼容 STP 和 RSTP 协议
-
MSTP 交换机可以与 STP 和 RSTP 交换机混合组网
-
当 MSTP 交换机收到 STP BPDU 报文时,会自动切换为 STP 模式
-
-
保留 RSTP 的快速收敛机制
-
MSTP 保留了 RSTP 的所有快速收敛机制,如边缘端口、点对点链路快速收敛、根端口快速切换等
-
收敛速度与 RSTP 相同,为 1-2 秒
-
总结:MSTP 既解决了 STP 收敛速度慢的问题,又解决了 RSTP 中所有 VLAN 共享一棵生成树导致的带宽浪费问题,是目前企业网络中最常用的生成树协议。
20. STP 存在哪些端口状态?RSTP/MSTP 呢?
20.1 STP 的端口状态(5 种)
| 端口状态 | 说明 | 是否接收 BPDU | 是否发送 BPDU | 是否学习 MAC 地址 | 是否转发用户数据 |
|---|---|---|---|---|---|
| Disabled | 端口被管理员关闭或故障 | 否 | 否 | 否 | 否 |
| Blocking | 端口被阻塞,防止环路 | 是 | 否 | 否 | 否 |
| Listening | 端口开始参与 STP 计算,选举根桥、根端口和指定端口 | 是 | 是 | 否 | 否 |
| Learning | 端口开始学习 MAC 地址,构建 MAC 地址表 | 是 | 是 | 是 | 否 |
| Forwarding | 端口正常转发用户数据 | 是 | 是 | 是 | 是 |
STP 状态转换时间:
-
Blocking → Listening:20 秒(最大老化时间)
-
Listening → Learning:15 秒(转发延迟)
-
Learning → Forwarding:15 秒(转发延迟)
-
总收敛时间:30-50 秒
20.2 RSTP/MSTP 的端口状态(3 种)
RSTP/MSTP 将 STP 的 5 种端口状态简化为 3 种,合并了 Disabled、Blocking 和 Listening 状态:
| 端口状态 | 说明 | 是否接收 BPDU | 是否发送 BPDU | 是否学习 MAC 地址 | 是否转发用户数据 |
|---|---|---|---|---|---|
| Discarding | 端口被阻塞,防止环路 | 是 | 否 | 否 | 否 |
| Learning | 端口开始学习 MAC 地址,构建 MAC 地址表 | 是 | 是 | 是 | 否 |
| Forwarding | 端口正常转发用户数据 | 是 | 是 | 是 | 是 |
RSTP/MSTP 状态转换时间:
-
边缘端口:直接进入 Forwarding 状态,不需要等待
-
点对点链路:通过 Proposal/Agreement 机制,直接进入 Forwarding 状态,不需要等待
-
根端口切换:直接进入 Forwarding 状态,不需要等待
-
总收敛时间:1-2 秒
21. 什么是链路聚合?作用?
21.1 什么是链路聚合
链路聚合(Link Aggregation)是一种将多个物理链路捆绑成一个逻辑链路的技术,也称为端口聚合或以太通道(EtherChannel)。
链路聚合后的逻辑链路称为聚合组,聚合组的带宽等于所有物理链路带宽的总和。
21.2 链路聚合的作用
-
提高带宽:将多个物理链路的带宽合并,提高链路的总带宽。例如:将 4 个 1Gbps 的物理链路捆绑成一个聚合组,总带宽为 4Gbps
-
实现链路冗余:当聚合组中的某个物理链路发生故障时,流量会自动切换到其他正常的物理链路上,不会导致网络中断
-
负载均衡:将流量均匀分配到聚合组中的各个物理链路上,提高链路的利用率
-
避免环路:链路聚合后的逻辑链路被视为一个单一的链路,不会产生环路,不需要运行 STP 协议
21.3 链路聚合的模式
-
静态聚合:由管理员手动配置聚合组,不需要协议协商
-
动态聚合:使用 LACP(链路聚合控制协议)自动协商聚合组的成员和模式
-
LACP 主动模式:主动发送 LACP 报文,协商聚合
-
LACP 被动模式:被动接收 LACP 报文,只有收到对端的 LACP 报文后才会回复
-
22. 什么是 VRRP 协议?VRRP 协议是如何工作的?
22.1 什么是 VRRP 协议
VRRP(虚拟路由器冗余协议)是一种用于实现网关冗余的协议,它将多个物理路由器组成一个虚拟路由器,为网络中的主机提供一个虚拟的默认网关。
当主路由器发生故障时,备份路由器会自动切换为主路由器,继续为网络中的主机提供网关服务,实现网关的高可用性。
22.2 VRRP 协议的工作过程
-
虚拟路由器组成
-
多个物理路由器组成一个 VRRP 备份组,共享一个虚拟 IP 地址和虚拟 MAC 地址
-
虚拟 IP 地址是网络中主机的默认网关地址
-
虚拟 MAC 地址的格式为:00-00-5E-00-01-{VRID},其中 VRID 是 VRRP 备份组的编号(范围:1-255)
-
-
选举主路由器(Master)
-
VRRP 备份组中的路由器通过发送 VRRP 报文选举主路由器
-
VRRP 报文中包含优先级(范围:1-254,默认 100),优先级最高的路由器被选举为主路由器
-
如果优先级相同,则比较 IP 地址,IP 地址大的路由器被选举为主路由器
-
主路由器负责转发发送到虚拟 IP 地址的数据包,并定期发送 VRRP 报文通知备份路由器自己的状态
-
-
备份路由器(Backup)
-
优先级低于主路由器的路由器为备份路由器
-
备份路由器不转发数据包,只接收主路由器发送的 VRRP 报文
-
如果备份路由器在一定时间内(默认 3 秒)没有收到主路由器的 VRRP 报文,就认为主路由器发生了故障
-
-
主备切换
-
当主路由器发生故障时,优先级最高的备份路由器会切换为主路由器
-
新的主路由器会发送免费 ARP 报文,通知网络中的主机更新 ARP 缓存,将虚拟 IP 地址对应的 MAC 地址更新为新的主路由器的虚拟 MAC 地址
-
当原来的主路由器恢复正常后,如果它的优先级高于当前的主路由器,会重新切换为主路由器(抢占模式)
-
补充:
-
VRRP 抢占模式:默认开启,当优先级高的路由器恢复后,会重新抢占主路由器的位置
-
VRRP 认证:支持明文认证和 MD5 认证,防止非法路由器加入 VRRP 备份组
23. OSPF 的工作过程?
OSPF(开放式最短路径优先)是一种链路状态路由协议,工作过程分为以下5 个阶段:
-
邻居发现阶段
-
OSPF 路由器启动后,会在所有运行 OSPF 的接口上发送Hello 报文
-
Hello 报文用于发现和维护邻居关系,包含路由器 ID、区域 ID、优先级、Hello 间隔、死亡间隔等信息
-
当两个路由器收到对方的 Hello 报文,并且 Hello 报文中的参数匹配时,建立邻居关系,进入 Init 状态
-
-
邻居关系建立阶段
-
当两个路由器建立邻居关系后,进入2-Way 状态,表示双方都收到了对方的 Hello 报文
-
在广播型网络和 NBMA 网络中,会在这个阶段选举DR(指定路由器)和BDR(备份指定路由器)
-
DR 和 BDR 负责与网络中的所有其他路由器建立邻接关系,减少 LSA 的泛洪数量
-
-
链路状态信息交换阶段
-
当邻居关系建立后,进入ExStart 状态,开始交换链路状态信息
-
首先选举主从路由器,路由器 ID 大的为主路由器
-
主从路由器交换DD 报文(数据库描述报文),DD 报文包含本地链路状态数据库中 LSA 的摘要信息
-
当双方交换完 DD 报文后,进入Exchange 状态
-
-
链路状态信息同步阶段
-
路由器根据 DD 报文中的 LSA 摘要信息,向对方发送LSR 报文(链路状态请求报文),请求自己没有的 LSA
-
对方收到 LSR 报文后,发送LSU 报文(链路状态更新报文),包含请求的 LSA 的详细信息
-
路由器收到 LSU 报文后,更新自己的链路状态数据库,并发送LSAck 报文(链路状态确认报文)确认收到
-
当双方的链路状态数据库完全同步后,进入Loading 状态
-
-
路由计算阶段
-
当链路状态数据库同步完成后,进入Full 状态,表示邻接关系建立成功
-
每个路由器使用SPF 算法(最短路径优先算法),以自己为根节点,计算到网络中所有其他节点的最短路径
-
根据计算结果,生成路由表,用于数据包的转发
-
补充:
-
OSPF 的 Hello 间隔:广播型网络和点对点网络为 10 秒,NBMA 网络为 30 秒
-
OSPF 的死亡间隔:为 Hello 间隔的 4 倍,即 40 秒或 120 秒
-
OSPF 的 LSA 老化时间:默认 3600 秒,超时后会重新泛洪 LSA
24. OSPF 的数据包有哪些?每个数据包的作用?
OSPF 协议使用 5 种类型的数据包,所有数据包都封装在 IP 报文中,协议号为 89:
| 数据包类型 | 类型号 | 名称 | 作用 |
|---|---|---|---|
| Hello 报文 | 1 | Hello Packet | 发现和维护邻居关系,选举 DR 和 BDR |
| DD 报文 | 2 | Database Description Packet | 交换链路状态数据库的摘要信息,选举主从路由器 |
| LSR 报文 | 3 | Link State Request Packet | 请求对方发送自己没有的 LSA 的详细信息 |
| LSU 报文 | 4 | Link State Update Packet | 发送 LSA 的详细信息,用于链路状态信息的更新和泛洪 |
| LSAck 报文 | 5 | Link State Acknowledgment Packet | 确认收到 LSU 报文,保证 LSA 传输的可靠性 |
25. OSPF 有哪些状态机、每一种状态下 OSPF 实现了哪些工作?
OSPF 邻居关系的建立过程分为以下8 个状态机:
| 状态机 | 说明 | 实现的工作 |
|---|---|---|
| Down | 初始状态 | 路由器还没有收到任何 OSPF 报文 |
| Attempt | 尝试状态 | 仅在 NBMA 网络中存在,路由器主动向邻居发送 Hello 报文,尝试建立邻居关系 |
| Init | 初始化状态 | 路由器收到了对方的 Hello 报文,但对方的 Hello 报文中没有包含自己的路由器 ID |
| 2-Way | 双向通信状态 | 双方都收到了对方的 Hello 报文,邻居关系建立成功;在广播型和 NBMA 网络中,选举 DR 和 BDR |
| ExStart | 交换初始状态 | 开始交换链路状态信息,选举主从路由器 |
| Exchange | 交换状态 | 交换 DD 报文,包含本地链路状态数据库中 LSA 的摘要信息 |
| Loading | 加载状态 | 发送 LSR 报文请求自己没有的 LSA,接收 LSU 报文更新链路状态数据库 |
| Full | 完全邻接状态 | 双方的链路状态数据库完全同步,邻接关系建立成功;开始使用 SPF 算法计算路由 |
26. 什么是 OSPF 的条件匹配?为什么要进行 OSPF 条件匹配?
26.1 什么是 OSPF 的条件匹配
OSPF 的条件匹配是指两个 OSPF 路由器在建立邻居关系之前,必须满足一系列的条件,只有当这些条件都满足时,才能建立邻居关系。
26.2 为什么要进行 OSPF 条件匹配
OSPF 是一种链路状态路由协议,要求同一个区域内的所有路由器具有相同的链路状态数据库。如果两个路由器的参数不匹配,会导致链路状态数据库不一致,从而产生路由环路和黑洞等问题。
通过条件匹配,可以确保建立邻居关系的路由器具有相同的参数,保证 OSPF 协议的正常运行。
26.3 OSPF 建立邻居关系的条件(条件匹配)
-
区域 ID 相同:两个路由器的接口必须属于同一个 OSPF 区域
-
子网掩码相同:两个路由器的接口 IP 地址必须在同一个子网,子网掩码相同
-
Hello 间隔和死亡间隔相同:两个路由器的 Hello 间隔和死亡间隔必须相同
-
认证类型和密码相同:如果启用了 OSPF 认证,两个路由器的认证类型和密码必须相同
-
Stub 区域标记相同:如果接口属于 Stub 区域、完全 Stub 区域、NSSA 区域或完全 NSSA 区域,两个路由器的区域标记必须相同
-
路由器 ID 唯一:两个路由器的路由器 ID 不能相同
-
接口网络类型兼容:两个路由器的接口网络类型必须兼容(例如:点对点网络只能与点对点网络建立邻居关系)
27. 影响 OSPF 建立邻居的条件?
影响 OSPF 建立邻居的条件分为必要条件和非必要条件:
27.1 必要条件(必须满足,否则无法建立邻居关系)
-
接口 UP,且 IP 地址配置正确
-
两个路由器的接口属于同一个 OSPF 区域
-
两个路由器的接口 IP 地址在同一个子网,子网掩码相同
-
两个路由器的 Hello 间隔和死亡间隔相同
-
两个路由器的认证类型和密码相同(如果启用了认证)
-
两个路由器的 Stub 区域标记相同
-
两个路由器的路由器 ID 唯一
-
两个路由器的接口网络类型兼容
27.2 非必要条件(不影响邻居关系的建立,但会影响路由计算)
-
接口优先级:影响 DR 和 BDR 的选举,但不影响邻居关系的建立
-
接口 Cost:影响路由的计算,但不影响邻居关系的建立
-
路由器的 OSPF 进程号:本地有效,不影响邻居关系的建立
28. OSPF 协议存在哪些接口网络类型,区别?
OSPF 协议定义了 5 种接口网络类型,不同的网络类型在 Hello 间隔、死亡间隔、是否选举 DR/BDR 等方面存在区别:
| 网络类型 | Hello 间隔 | 死亡间隔 | 是否选举 DR/BDR | 适用场景 |
|---|---|---|---|---|
| Broadcast(广播型) | 10 秒 | 40 秒 | 是 | 以太网、令牌环网等广播型网络 |
| NBMA(非广播多路访问) | 30 秒 | 120 秒 | 是 | 帧中继、X.25 等非广播多路访问网络 |
| Point-to-Point(点对点) | 10 秒 | 40 秒 | 否 | PPP、HDLC 等点对点链路 |
| Point-to-Multipoint(点对多点) | 30 秒 | 120 秒 | 否 | 星型拓扑的帧中继网络 |
| Point-to-Multipoint Non-Broadcast(点对多点非广播) | 30 秒 | 120 秒 | 否 | 不支持广播的点对多点网络 |
各网络类型的详细区别
-
Broadcast:
-
支持广播和多播
-
自动发现邻居
-
选举 DR 和 BDR,所有路由器只与 DR 和 BDR 建立邻接关系
-
是以太网接口的默认网络类型
-
-
NBMA:
-
不支持广播和多播
-
需要手动配置邻居
-
选举 DR 和 BDR
-
是帧中继接口的默认网络类型
-
-
Point-to-Point:
-
支持广播和多播
-
自动发现邻居
-
不选举 DR 和 BDR,两个路由器直接建立邻接关系
-
是 PPP 和 HDLC 接口的默认网络类型
-
-
Point-to-Multipoint:
-
支持广播和多播
-
自动发现邻居
-
不选举 DR 和 BDR,中心路由器与所有分支路由器建立邻接关系
-
适用于星型拓扑的帧中继网络
-
-
Point-to-Multipoint Non-Broadcast:
-
不支持广播和多播
-
需要手动配置邻居
-
不选举 DR 和 BDR
-
适用于不支持广播的点对多点网络
-
更多推荐
所有评论(0)