一、结构化地址规划(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 协议种类

  1. 普通 ARP:用于已知 IP 地址,获取对应的 MAC 地址

  2. 反向 ARP(RARP):用于已知 MAC 地址,获取对应的 IP 地址(已被 DHCP 取代)

  3. 免费 ARP(Gratuitous ARP):发送 ARP 请求查询自己的 IP 地址,用于检测 IP 地址冲突和更新 ARP 缓存

  4. 代理 ARP(Proxy ARP):路由器代替目标主机回复 ARP 请求,使不同网段的主机能够通信

  5. 反向 ARP(InARP):用于帧中继等网络中,已知 DLCI(数据链路连接标识符),获取对应的 IP 地址

3.2 普通 ARP 工作原理

  1. 主机 A 需要与主机 B 通信,首先检查自己的 ARP 缓存中是否有主机 B 的 IP 地址对应的 MAC 地址

  2. 如果没有,主机 A 在本地网络中广播 ARP 请求报文,报文内容包括:

    • 源 IP 地址:主机 A 的 IP 地址

    • 源 MAC 地址:主机 A 的 MAC 地址

    • 目标 IP 地址:主机 B 的 IP 地址

    • 目标 MAC 地址:FF:FF:FF:FF:FF:FF(广播地址)

  3. 本地网络中的所有主机都会收到这个 ARP 请求,但只有目标 IP 地址与自己 IP 地址相同的主机 B 会处理

  4. 主机 B 回复 ARP 响应报文(单播),报文内容包括:

    • 源 IP 地址:主机 B 的 IP 地址

    • 源 MAC 地址:主机 B 的 MAC 地址

    • 目标 IP 地址:主机 A 的 IP 地址

    • 目标 MAC 地址:主机 A 的 MAC 地址

  5. 主机 A 收到 ARP 响应后,将主机 B 的 IP 地址和 MAC 地址的映射关系添加到自己的 ARP 缓存中,然后使用这个 MAC 地址封装数据帧发送给主机 B

ARP 缓存老化时间:默认 15-20 分钟,超时后会重新发送 ARP 请求

4. HTTP 协议延伸 --- 访问一次网页的完整通讯过程

以访问https://www.baidu.com为例,完整过程分为以下 10 步:

  1. DNS 域名解析

    • 浏览器检查自己的 DNS 缓存中是否有www.baidu.com对应的 IP 地址

    • 如果没有,向操作系统的 DNS 缓存查询

    • 如果还没有,向本地 DNS 服务器发送 DNS 查询请求

    • 本地 DNS 服务器通过递归查询或迭代查询,最终获取www.baidu.com对应的 IP 地址(例如:180.101.50.242)

  2. 建立 TCP 连接(三次握手)

    • 客户端向服务器发送 SYN 报文(同步报文),请求建立连接

    • 服务器回复 SYN+ACK 报文,确认客户端的连接请求,并请求建立反向连接

    • 客户端回复 ACK 报文,确认服务器的连接请求,TCP 连接建立成功

  3. 建立 TLS/SSL 连接(HTTPS 专用)

    • 客户端向服务器发送 Client Hello 报文,包含支持的 TLS 版本、加密套件等信息

    • 服务器回复 Server Hello 报文,选择使用的 TLS 版本和加密套件,并发送服务器证书

    • 客户端验证服务器证书的有效性

    • 客户端生成预主密钥,使用服务器公钥加密后发送给服务器

    • 服务器使用自己的私钥解密预主密钥

    • 双方使用预主密钥生成会话密钥,用于后续数据的加密传输

  4. 客户端发送 HTTP 请求

    • 客户端构造 HTTP 请求报文,包括请求行(GET / HTTP/1.1)、请求头(Host: www.baidu.com、User-Agent 等)、空行和请求体(GET 请求没有请求体)

    • 使用会话密钥加密 HTTP 请求报文

    • 将加密后的报文封装成 TCP 段,发送给服务器

  5. 服务器处理 HTTP 请求

    • 服务器收到 TCP 段后,进行 TCP 校验和重组

    • 使用会话密钥解密 HTTP 请求报文

    • 解析 HTTP 请求,根据请求的 URL 和方法,调用相应的处理程序

    • 生成 HTTP 响应报文,包括状态行(HTTP/1.1 200 OK)、响应头(Content-Type: text/html 等)、空行和响应体(HTML 页面内容)

  6. 服务器发送 HTTP 响应

    • 使用会话密钥加密 HTTP 响应报文

    • 将加密后的报文封装成 TCP 段,发送给客户端

  7. 客户端接收并解析 HTTP 响应

    • 客户端收到 TCP 段后,进行 TCP 校验和重组

    • 使用会话密钥解密 HTTP 响应报文

    • 解析 HTTP 响应,获取 HTML 页面内容

  8. 浏览器渲染 HTML 页面

    • 浏览器解析 HTML 代码,构建 DOM 树

    • 解析 CSS 代码,构建 CSSOM 树

    • 将 DOM 树和 CSSOM 树结合,构建渲染树

    • 根据渲染树进行布局(Layout)和绘制(Paint),最终在屏幕上显示页面

  9. 加载页面中的其他资源

    • 浏览器在渲染 HTML 页面的过程中,会发现页面中包含的其他资源(如图片、CSS 文件、JavaScript 文件等)

    • 重复步骤 4-8,加载这些资源

  10. 关闭 TCP 连接(四次挥手)

    • 客户端发送 FIN 报文,请求关闭连接

    • 服务器回复 ACK 报文,确认客户端的关闭请求

    • 服务器发送 FIN 报文,请求关闭反向连接

    • 客户端回复 ACK 报文,确认服务器的关闭请求,TCP 连接关闭成功

5. DHCP 协议的工作过程

DHCP(动态主机配置协议)用于自动为网络中的主机分配 IP 地址、子网掩码、网关、DNS 服务器等网络参数,工作过程分为4 步(DORA 过程):

  1. 发现阶段(Discover)

    • 客户端启动时,由于没有 IP 地址,向本地网络中广播 DHCP Discover 报文

    • 报文源 IP 地址:0.0.0.0

    • 报文目标 IP 地址:255.255.255.255(广播地址)

    • 报文内容:客户端的 MAC 地址、请求的参数列表等

  2. 提供阶段(Offer)

    • 本地网络中的所有 DHCP 服务器都会收到 DHCP Discover 报文

    • 每个 DHCP 服务器从自己的地址池中选择一个未分配的 IP 地址,向客户端单播 DHCP Offer 报文

    • 报文内容:提供的 IP 地址、子网掩码、网关、DNS 服务器、租约期限等

  3. 选择阶段(Request)

    • 客户端可能会收到多个 DHCP Offer 报文,通常选择第一个收到的 Offer

    • 客户端向本地网络中广播 DHCP Request 报文,通知所有 DHCP 服务器自己选择了哪个服务器提供的 IP 地址

    • 报文内容:选择的 DHCP 服务器的 IP 地址、请求的 IP 地址等

  4. 确认阶段(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 步:

  1. 学习 MAC 地址

    • 当交换机从某个端口收到一个数据帧时,会提取数据帧中的源 MAC 地址接收端口号

    • 检查 MAC 地址表中是否有该源 MAC 地址的条目

    • 如果没有,将源 MAC 地址和接收端口号的映射关系添加到 MAC 地址表中

    • 如果有,更新该条目的老化时间

  2. 转发数据帧

    • 提取数据帧中的目标 MAC 地址

    • 检查 MAC 地址表中是否有该目标 MAC 地址的条目

    • 如果有:将数据帧从对应的端口单播转发出去

    • 如果没有:将数据帧从除接收端口外的所有其他端口广播转发出去(泛洪)

  3. 更新 MAC 地址表

    • MAC 地址表中的条目有老化时间(默认 300 秒)

    • 如果在老化时间内没有收到来自某个 MAC 地址的数据帧,该条目会被自动删除

    • 如果收到来自某个 MAC 地址的数据帧,但接收端口与 MAC 地址表中记录的端口不同,会更新该条目的端口号

补充

  • 交换机的每个端口都是一个独立的冲突域,能够有效减少网络冲突

  • 交换机支持全双工通信,能够同时发送和接收数据,提高网络带宽

7. 路由器的转发原理

路由器工作在网络层,基于 IP 地址进行数据包的转发,核心是路由表。转发过程分为以下 4 步:

  1. 接收数据包

    • 路由器从某个接口收到一个数据包

    • 检查数据包的完整性和合法性,丢弃错误的数据包

  2. 查找路由表

    • 提取数据包中的目标 IP 地址

    • 在路由表中查找与目标 IP 地址最长匹配的路由条目

    • 最长匹配原则:选择子网掩码最长的路由条目,例如:目标 IP 地址为 192.168.1.10,路由表中有 192.168.1.0/24 和 192.168.0.0/16 两条路由,会选择 192.168.1.0/24

  3. 转发数据包

    • 根据找到的路由条目,确定数据包的下一跳 IP 地址出接口

    • 将数据包封装成新的数据帧,源 MAC 地址为出接口的 MAC 地址,目标 MAC 地址为下一跳 IP 地址对应的 MAC 地址(通过 ARP 协议获取)

    • 将数据帧从出接口发送出去

  4. 如果没有找到匹配的路由条目

    • 如果路由表中有默认路由(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为例)

  1. 客户端检查自己的 DNS 缓存

  2. 客户端向本地 DNS 服务器发送递归查询请求

  3. 本地 DNS 服务器检查自己的 DNS 缓存

  4. 本地 DNS 服务器向根 DNS 服务器发送迭代查询请求

  5. 根 DNS 服务器返回.com 顶级域名服务器的 IP 地址

  6. 本地 DNS 服务器向.com 顶级域名服务器发送迭代查询请求

  7. .com 顶级域名服务器返回baidu.com权威域名服务器的 IP 地址

  8. 本地 DNS 服务器向baidu.com权威域名服务器发送迭代查询请求

  9. baidu.com权威域名服务器返回www.baidu.com对应的 IP 地址

  10. 本地 DNS 服务器将 IP 地址返回给客户端

  11. 客户端使用 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 主要通过以下两种方式判断网络拥塞:

  1. 超时重传:如果发送端在超时重传计时器到期后仍然没有收到 ACK 报文,就认为网络发生了拥塞,导致报文段丢失

  2. 快速重传:如果发送端连续收到 3 个重复 ACK,就认为对应的报文段已经丢失,网络可能发生了拥塞

13.2 TCP 如何解决网络拥塞问题

TCP 使用拥塞控制机制解决网络拥塞问题,主要包括以下 4 个算法:

  1. 慢启动(Slow Start)

    • 当 TCP 连接建立时,拥塞窗口(cwnd)初始化为 1 个 MSS(最大段大小)

    • 每收到一个 ACK 报文,拥塞窗口增加 1 个 MSS

    • 拥塞窗口呈指数增长,直到达到慢启动阈值(ssthresh)或发生拥塞

    • 目的:在网络状况未知的情况下,缓慢增加发送速率,避免突然发送大量数据导致网络拥塞

  2. 拥塞避免(Congestion Avoidance)

    • 当拥塞窗口达到慢启动阈值时,进入拥塞避免阶段

    • 每经过一个 RTT(往返时间),拥塞窗口增加 1 个 MSS

    • 拥塞窗口呈线性增长,直到发生拥塞

    • 目的:在网络拥塞发生前,缓慢增加发送速率,避免网络拥塞

  3. 快速重传(Fast Retransmit)

    • 如问题 12 所述,当发送端连续收到 3 个重复 ACK 时,立即重传丢失的报文段

    • 目的:快速检测和重传丢失的报文段,减少数据传输的延迟

  4. 快速恢复(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 企业网络搭建步骤

  1. 需求分析:了解企业的业务需求、用户数量、应用类型、安全要求等

  2. 网络设计:设计网络拓扑结构、IP 地址规划、VLAN 规划、路由规划、安全规划等

  3. 设备选型:根据网络设计方案,选择合适的网络设备(交换机、路由器、防火墙等)

  4. 设备配置:配置网络设备的基本参数、VLAN、路由、安全策略等

  5. 网络测试:测试网络的连通性、性能、安全性等

  6. 网络部署:将网络设备安装到实际环境中,进行布线和连接

  7. 网络运维:对网络进行日常维护和管理,及时处理网络故障

15. VLAN 的应用场景,以及 VLAN 的工作过程?

15.1 VLAN 的应用场景

VLAN(虚拟局域网)是一种将物理局域网划分为多个逻辑局域网的技术,主要应用场景包括:

  1. 部门隔离:将不同部门的用户划分到不同的 VLAN,实现逻辑隔离,提高网络安全性

  2. 广播风暴控制:每个 VLAN 都是一个独立的广播域,能够有效隔离广播风暴,提高网络性能

  3. 灵活的网络管理:用户可以根据业务需求灵活调整 VLAN 成员,不需要改变物理连接

  4. 安全控制:通过访问控制列表(ACL)限制不同 VLAN 之间的访问,实现细粒度的安全控制

  5. 虚拟工作组:将不同物理位置的用户划分到同一个 VLAN,组成虚拟工作组,方便协作

15.2 VLAN 的工作过程

VLAN 的工作过程主要包括VLAN 标记VLAN 转发VLAN 去标记三个步骤:

  1. VLAN 标记(Tagging)

    • 当交换机从接入端口(Access Port)收到一个未标记的数据帧时,会根据接入端口的 PVID(端口 VLAN ID)为数据帧添加 VLAN 标记

    • VLAN 标记包含在以太网帧的首部中,长度为 4 字节,其中 12 位用于标识 VLAN ID(范围:1-4094)

  2. VLAN 转发

    • 交换机根据数据帧中的 VLAN ID 和目标 MAC 地址,在对应的 VLAN MAC 地址表中查找转发端口

    • 如果找到转发端口,且该端口允许该 VLAN 的数据帧通过,则将数据帧转发到该端口

    • 如果转发端口是 trunk 端口(干道端口),则保留 VLAN 标记

    • 如果转发端口是接入端口,则去掉 VLAN 标记

  3. 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 步:

  1. 选举根桥(Root Bridge)

    • 所有交换机都认为自己是根桥,向网络中发送 BPDU 报文

    • BPDU 报文中包含桥 ID,桥 ID 由桥优先级(默认 32768)和MAC 地址组成

    • 桥 ID 最小的交换机被选举为根桥

    • 根桥的所有端口都为指定端口,处于转发状态

  2. 选举根端口(Root Port)

    • 对于非根桥交换机,选举一个根端口,该端口是到根桥路径开销最小的端口

    • 路径开销:根据链路带宽计算,带宽越高,路径开销越小(例如:100Mbps 链路的路径开销为 19,1Gbps 链路的路径开销为 4)

    • 如果多个端口的路径开销相同,则比较对端的桥 ID,桥 ID 小的端口为根端口

    • 如果对端的桥 ID 也相同,则比较对端的端口 ID,端口 ID 小的端口为根端口

    • 根端口处于转发状态

  3. 选举指定端口(Designated Port)

    • 对于每个网段,选举一个指定端口,该端口是该网段到根桥路径开销最小的端口

    • 指定端口由所在网段的交换机选举产生,桥 ID 小的交换机的端口为指定端口

    • 如果桥 ID 相同,则比较端口 ID,端口 ID 小的端口为指定端口

    • 指定端口处于转发状态

  4. 阻塞非指定端口

    • 既不是根端口也不是指定端口的端口被称为非指定端口,处于阻塞状态

    • 阻塞状态的端口不转发用户数据,但仍然接收和处理 BPDU 报文

补充

  • STP 的端口状态:Disabled、Blocking、Listening、Learning、Forwarding

  • STP 的收敛时间:默认 30-50 秒

18. RSTP 有哪些快速收敛机制?

RSTP(快速生成树协议)是 STP 的改进版本,解决了 STP 收敛速度慢的问题,主要有以下5 种快速收敛机制

  1. 端口角色重新定义

    • RSTP 将 STP 的 5 种端口状态简化为 3 种:Discarding(丢弃)、Learning(学习)、Forwarding(转发)

    • 新增了 ** 替代端口(Alternate Port)备份端口(Backup Port)** 两种端口角色

    • 替代端口:根端口的备份端口,当根端口故障时,替代端口会立即切换为根端口

    • 备份端口:指定端口的备份端口,当指定端口故障时,备份端口会立即切换为指定端口

  2. 边缘端口(Edge Port)

    • 直接连接终端设备的端口可以配置为边缘端口

    • 边缘端口不需要经过 Listening 和 Learning 状态,直接进入 Forwarding 状态

    • 边缘端口如果收到 BPDU 报文,会自动变为普通端口,重新进行 STP 计算

  3. 点对点链路快速收敛

    • 当两个交换机之间的链路是点对点链路(全双工)时,RSTP 使用 ** 提议 / 同意(Proposal/Agreement)** 机制实现快速收敛

    • 当一个端口被选举为指定端口时,会向对端发送 Proposal 报文

    • 对端如果同意该端口成为指定端口,会发送 Agreement 报文

    • 发送端收到 Agreement 报文后,该端口立即进入 Forwarding 状态,不需要等待 30 秒

  4. 根端口快速切换

    • 当根端口故障时,替代端口会立即切换为根端口,进入 Forwarding 状态

    • 不需要等待 30 秒的收敛时间

  5. 拓扑变化处理优化

    • RSTP 简化了拓扑变化的处理过程,当拓扑发生变化时,只需要通知相关的交换机,而不需要广播到整个网络

    • 拓扑变化通知(TCN)报文直接由根端口发送给根桥,根桥再将拓扑变化信息广播到整个网络

    • 交换机收到拓扑变化信息后,会将 MAC 地址表的老化时间设置为 15 秒,加速 MAC 地址表的更新

总结:RSTP 的收敛时间可以缩短到1-2 秒,大大提高了网络的可靠性和性能。

19. MSTP 和 STP 相比有哪些改进?

MSTP(多生成树协议)是 RSTP 的进一步改进,解决了 RSTP 中所有 VLAN 共享一棵生成树的问题,主要有以下4 个改进

  1. 多生成树实例

    • MSTP 可以将多个 VLAN 映射到同一个生成树实例(MSTI),每个生成树实例独立计算生成树拓扑

    • 不同的生成树实例可以有不同的根桥和转发路径,实现流量的负载均衡

    • 例如:将 VLAN 10 映射到 MSTI 1,根桥为交换机 A;将 VLAN 20 映射到 MSTI 2,根桥为交换机 B,这样 VLAN 10 的流量走交换机 A,VLAN 20 的流量走交换机 B,实现负载均衡

  2. MST 域(MST Region)

    • 具有相同 MST 配置名称、MST 配置修订号和 VLAN 到 MSTI 映射关系的交换机组成一个 MST 域

    • MST 域内部运行 MSTP,域之间运行 RSTP

    • 对于域外部的交换机来说,整个 MST 域就像一个虚拟的交换机

  3. 兼容 STP 和 RSTP

    • MSTP 完全兼容 STP 和 RSTP 协议

    • MSTP 交换机可以与 STP 和 RSTP 交换机混合组网

    • 当 MSTP 交换机收到 STP BPDU 报文时,会自动切换为 STP 模式

  4. 保留 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 链路聚合的作用

  1. 提高带宽:将多个物理链路的带宽合并,提高链路的总带宽。例如:将 4 个 1Gbps 的物理链路捆绑成一个聚合组,总带宽为 4Gbps

  2. 实现链路冗余:当聚合组中的某个物理链路发生故障时,流量会自动切换到其他正常的物理链路上,不会导致网络中断

  3. 负载均衡:将流量均匀分配到聚合组中的各个物理链路上,提高链路的利用率

  4. 避免环路:链路聚合后的逻辑链路被视为一个单一的链路,不会产生环路,不需要运行 STP 协议

21.3 链路聚合的模式

  1. 静态聚合:由管理员手动配置聚合组,不需要协议协商

  2. 动态聚合:使用 LACP(链路聚合控制协议)自动协商聚合组的成员和模式

    • LACP 主动模式:主动发送 LACP 报文,协商聚合

    • LACP 被动模式:被动接收 LACP 报文,只有收到对端的 LACP 报文后才会回复

22. 什么是 VRRP 协议?VRRP 协议是如何工作的?

22.1 什么是 VRRP 协议

VRRP(虚拟路由器冗余协议)是一种用于实现网关冗余的协议,它将多个物理路由器组成一个虚拟路由器,为网络中的主机提供一个虚拟的默认网关。

当主路由器发生故障时,备份路由器会自动切换为主路由器,继续为网络中的主机提供网关服务,实现网关的高可用性。

22.2 VRRP 协议的工作过程

  1. 虚拟路由器组成

    • 多个物理路由器组成一个 VRRP 备份组,共享一个虚拟 IP 地址和虚拟 MAC 地址

    • 虚拟 IP 地址是网络中主机的默认网关地址

    • 虚拟 MAC 地址的格式为:00-00-5E-00-01-{VRID},其中 VRID 是 VRRP 备份组的编号(范围:1-255)

  2. 选举主路由器(Master)

    • VRRP 备份组中的路由器通过发送 VRRP 报文选举主路由器

    • VRRP 报文中包含优先级(范围:1-254,默认 100),优先级最高的路由器被选举为主路由器

    • 如果优先级相同,则比较 IP 地址,IP 地址大的路由器被选举为主路由器

    • 主路由器负责转发发送到虚拟 IP 地址的数据包,并定期发送 VRRP 报文通知备份路由器自己的状态

  3. 备份路由器(Backup)

    • 优先级低于主路由器的路由器为备份路由器

    • 备份路由器不转发数据包,只接收主路由器发送的 VRRP 报文

    • 如果备份路由器在一定时间内(默认 3 秒)没有收到主路由器的 VRRP 报文,就认为主路由器发生了故障

  4. 主备切换

    • 当主路由器发生故障时,优先级最高的备份路由器会切换为主路由器

    • 新的主路由器会发送免费 ARP 报文,通知网络中的主机更新 ARP 缓存,将虚拟 IP 地址对应的 MAC 地址更新为新的主路由器的虚拟 MAC 地址

    • 当原来的主路由器恢复正常后,如果它的优先级高于当前的主路由器,会重新切换为主路由器(抢占模式)

补充

  • VRRP 抢占模式:默认开启,当优先级高的路由器恢复后,会重新抢占主路由器的位置

  • VRRP 认证:支持明文认证和 MD5 认证,防止非法路由器加入 VRRP 备份组

23. OSPF 的工作过程?

OSPF(开放式最短路径优先)是一种链路状态路由协议,工作过程分为以下5 个阶段

  1. 邻居发现阶段

    • OSPF 路由器启动后,会在所有运行 OSPF 的接口上发送Hello 报文

    • Hello 报文用于发现和维护邻居关系,包含路由器 ID、区域 ID、优先级、Hello 间隔、死亡间隔等信息

    • 当两个路由器收到对方的 Hello 报文,并且 Hello 报文中的参数匹配时,建立邻居关系,进入 Init 状态

  2. 邻居关系建立阶段

    • 当两个路由器建立邻居关系后,进入2-Way 状态,表示双方都收到了对方的 Hello 报文

    • 在广播型网络和 NBMA 网络中,会在这个阶段选举DR(指定路由器)BDR(备份指定路由器)

    • DR 和 BDR 负责与网络中的所有其他路由器建立邻接关系,减少 LSA 的泛洪数量

  3. 链路状态信息交换阶段

    • 当邻居关系建立后,进入ExStart 状态,开始交换链路状态信息

    • 首先选举主从路由器,路由器 ID 大的为主路由器

    • 主从路由器交换DD 报文(数据库描述报文),DD 报文包含本地链路状态数据库中 LSA 的摘要信息

    • 当双方交换完 DD 报文后,进入Exchange 状态

  4. 链路状态信息同步阶段

    • 路由器根据 DD 报文中的 LSA 摘要信息,向对方发送LSR 报文(链路状态请求报文),请求自己没有的 LSA

    • 对方收到 LSR 报文后,发送LSU 报文(链路状态更新报文),包含请求的 LSA 的详细信息

    • 路由器收到 LSU 报文后,更新自己的链路状态数据库,并发送LSAck 报文(链路状态确认报文)确认收到

    • 当双方的链路状态数据库完全同步后,进入Loading 状态

  5. 路由计算阶段

    • 当链路状态数据库同步完成后,进入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 建立邻居关系的条件(条件匹配)

  1. 区域 ID 相同:两个路由器的接口必须属于同一个 OSPF 区域

  2. 子网掩码相同:两个路由器的接口 IP 地址必须在同一个子网,子网掩码相同

  3. Hello 间隔和死亡间隔相同:两个路由器的 Hello 间隔和死亡间隔必须相同

  4. 认证类型和密码相同:如果启用了 OSPF 认证,两个路由器的认证类型和密码必须相同

  5. Stub 区域标记相同:如果接口属于 Stub 区域、完全 Stub 区域、NSSA 区域或完全 NSSA 区域,两个路由器的区域标记必须相同

  6. 路由器 ID 唯一:两个路由器的路由器 ID 不能相同

  7. 接口网络类型兼容:两个路由器的接口网络类型必须兼容(例如:点对点网络只能与点对点网络建立邻居关系)

27. 影响 OSPF 建立邻居的条件?

影响 OSPF 建立邻居的条件分为必要条件非必要条件

27.1 必要条件(必须满足,否则无法建立邻居关系)

  1. 接口 UP,且 IP 地址配置正确

  2. 两个路由器的接口属于同一个 OSPF 区域

  3. 两个路由器的接口 IP 地址在同一个子网,子网掩码相同

  4. 两个路由器的 Hello 间隔和死亡间隔相同

  5. 两个路由器的认证类型和密码相同(如果启用了认证)

  6. 两个路由器的 Stub 区域标记相同

  7. 两个路由器的路由器 ID 唯一

  8. 两个路由器的接口网络类型兼容

27.2 非必要条件(不影响邻居关系的建立,但会影响路由计算)

  1. 接口优先级:影响 DR 和 BDR 的选举,但不影响邻居关系的建立

  2. 接口 Cost:影响路由的计算,但不影响邻居关系的建立

  3. 路由器的 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 秒 不支持广播的点对多点网络

各网络类型的详细区别

  1. Broadcast

    • 支持广播和多播

    • 自动发现邻居

    • 选举 DR 和 BDR,所有路由器只与 DR 和 BDR 建立邻接关系

    • 是以太网接口的默认网络类型

  2. NBMA

    • 不支持广播和多播

    • 需要手动配置邻居

    • 选举 DR 和 BDR

    • 是帧中继接口的默认网络类型

  3. Point-to-Point

    • 支持广播和多播

    • 自动发现邻居

    • 不选举 DR 和 BDR,两个路由器直接建立邻接关系

    • 是 PPP 和 HDLC 接口的默认网络类型

  4. Point-to-Multipoint

    • 支持广播和多播

    • 自动发现邻居

    • 不选举 DR 和 BDR,中心路由器与所有分支路由器建立邻接关系

    • 适用于星型拓扑的帧中继网络

  5. Point-to-Multipoint Non-Broadcast

    • 不支持广播和多播

    • 需要手动配置邻居

    • 不选举 DR 和 BDR

    • 适用于不支持广播的点对多点网络

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐