当前位置: 首页 > news >正文

HCIP笔记

一、网络类型分类 (OSPF 视角)

        OSPF (开放最短路径优先) 协议会根据不同的二层链路类型生成不同的网络类型,这主要体现在其邻居发现、链路状态通告 (LSA) 泛滥方式以及指定路由器 (DR) / 备份指定路由器 (BDR) 的选举机制上。

        1.多点接入网络 

                (1)原因: 在一个共享媒体(如以太网)上,多个设备共享同一网段。OSPF 需要机                             制来避免 LSA 的重复泛滥和选举一个代表(DR/BDR)来维护邻接关系,以减少                             不必要的网络流量。

                 (2) 广播型多点接入 :

                        a.特点: 支持广播。OSPF 进程会向 224.0.0.5 (AllSPFRouters - 所有 OSPF 路由                              器)地址发送 Hello 包以发现邻居。

                        b.DR/BDR 选举: 在 BMA 网段,OSPF 会选举 DR 和 BDR。只有 DR 和 BDR 之                         间会建立完全邻接关系 ,并负责泛滥 LSA;其他路由器 (DROther) 只与 DR/BDR                           建立完全邻接关系,而与其他 DROther 仅建立2-WAY状态(非完全邻接),不交                           换LSA。

                        c.优点: 减少了网络中需要维护的邻接关系数量,降低了 CPU 和内存的消耗。

                        d.例子: 以太网 (Ethernet)。

                (3)非广播型多点接入:

                        a.特点: 不支持广播,OSPF 无法直接通过广播 Hello 包发现邻居。

                        b.解决方案:

                              1.手动指定邻居 : 在 OSPF 接口配置 neighbor<IP> 命令,直接指定对方为邻                                   居。

                               2.配置虚拟邻居: 在 NBMA 网络上模拟点对点(P2P) 链路,这样 OSPF 就可                                     以基于 P2P 的模式进行通信。

                       c.DR/BDR 选举: NBMA 网络也可以选举 DR/BDR,但配置相对复杂。可以手动                           指定 DR/BDR,或者通过优先级 (Priority) 来选举。

                        d.网络类型模拟: NBMA 网络可以被 OSPF 视为 broadcast、                                                             non-broadcast 或 point-to-multipoint。

                                1.ospf network-type broadcast:模拟 BMA,需要配置邻居,选举                                                 DR/BDR。

                                2.ospf network-type non-broadcast:最原始的 NBMA 类型,需要手动配                                     置所有邻居,并选举 DR/BDR。

                               3.ospf network-type point-to-multipoint:将 NBMA 网络视为一个点到多点                                 (P2MP) 结构,不选举 DR/BDR,所有邻居之间都建立完全邻接关系。这种                                    方式相对简单,尤其适用于 Spoke-to-Spoke (分支到分支) 连接不重要的场景。

                      e.例子: 帧中继 ,ATM (异步传输模式)。

                       f.帧中继特殊性: 帧中继的 DLCI ( 数据链路连接标识符) 相当于逻辑连接。在一个                        共享的帧中继接口上,可以创建多个子接口,每个子接口可以配置一个 DLCI,并模                         拟成不同的 OSPF 网络类型。

        2.点到多点网络

                (1)背景: 适用于不适合进行 DR/BDR 选举或不需要 DR/BDR 的场景。

                (2)特点:

                        a.不选举 DR/BDR: 所有路由器在 P2MP 网段上都会与所有其他路由器建立完全                            邻接关系。

                         b.LSA 类型: 使用 Type 2 LSA来描述整个网段,然后由邻居(Hub - 中心节点)                           再发送 Type 1 LSA 来描述其连接的 Hub-and-Spoke (中心辐射型) 拓扑。

                        c.配置: 通常在 NBMA 网络中,为了简化配置(避免 DR/BDR 选举和邻居关系                              管理),将其手动配置为 point-to-multipoint。

                    (3)使用场景: 当一个 NBMA 网络中的连接是非永久性或分支较多的情况下,可以                           简化管理。

        3.点到点网络

                (1)特点:

                        a.无 DR/BDR 选举: 两个设备直接连接,自动建立完全邻接关系。

                        b.LSA 类型: 只使用 Type 1 LSA (Router LSA)。

                        c.配置简便: 适用于串行链路、PPP、HDLC 等。

                (2)OSPF 行为: 在 P2P 链路上,OSPF 发送 Hello 包到 224.0.0.5,并与对端直接建立                 FULL 邻接关系。

总结 OSPF 网络类型的影响:

网络类型

Hello 报文目标地址

DR/BDR 选举

邻接关系建立

LSA 类型 (主要)

配置复杂性

 多点接入

224.0.0.5

仅 DR/BDR 与其他完整

Type 1, Type 2

中等

点到多点

224.0.0.5

所有邻居都完整

Type 1

点到点

224.0.0.5

直接建立完整

Type 1


二、数据链路层协议

        1.MA 网络:以太网协议

                (1)CSMA/CD ( 载波侦听多路访问/冲突检测): 以太网早期的媒体访问控制方法。设备                   在发送前监听载波,当多个设备同时发送时会发生冲突,设备检测到冲突后会停止发                        送,并随机等待一段时间后再重试。

                (2)现代以太网 (交换式以太网 ): 通过交换机 工作在数据链路层,每个端口为一个独立                   的冲突域 。设备直接与交换机通信,不再需要 CSMA/CD。交换机使用 MAC 地址表                       来转发帧,实现了全双工通信 ,大大提高了效率。

                 (3)以太网帧格式 :

                        a.起始帧定界符: 用于同步和帧开始。

                        b.目标 MAC 地址: 目标设备的 MAC 地址。

                        c.源 MAC 地址: 源设备的 MAC 地址。

                        d.以太网类型: 指示上层协议类型(如 0x0800 for IP, 0x0806 for ARP)。

                        e.载荷: 上层数据。

                        f.帧校验序列: CRC (循环冗余校验) 校验,用于错误检测。

                        g.最大传输单元: 以太网帧的最大载荷大小,通常为 1500 字节。

        2.P2P 网络

                (1) HDLC 协议 (高级数据链路控制协议)

                        a.应用场景: 早期的串行链路,常用于路由器之间的点对点连接。

                        b.帧结构:

                                Flag (标志) (0x7E): 起始/结束标志。

                                Address (地址): 地址字段(通常为 0xFF)。

                               Control (控制): 控制字段(定义帧类型,如信息帧 I, 监控帧 S, 无编号帧 U)。

                                Protocol (协议): 标识上层协议。

                                Information (信息): 上层数据。

                                FCS (帧校验序列): 帧校验序列。

                     c.特性: 是一种面向比特的同步协议,支持差错检测。但因其私有性和功能限制                             (不如 PPP 灵活),在现代网络中已较少使用,尤其是在提供 IP 服务的场景。

                     d.关键点: Cisco 默认使用 HDLC,导致 Cisco 和非 Cisco 设备之间串行链路无法                             直接通信,除非对端也配置为 HDLC 或 Cisco 端改为 PPP。

                (2) PPP 协议 (点对点协议)

                        a.协议栈: PPP 协议栈包括 LCP (链路控制协议), NCP (网络控制协议,如 IPCP                               IP 控制协议), 以及认证协议 (PAP - 口令认证协议, CHAP - 挑战握手认证协议)。

                        b.LCP 协商阶段:

                                1.MTU 协商: 双方协商链路的最大传输单元。

                                2.认证协议协商: 确定是否进行认证,以及使用哪种认证方式。

                                3.Magic Number (魔术数字): 用于检测链路环回 (Loopback)。

                                4.Echo Request/Reply (回声请求/应答): 用于链路质量测试。

                        c.NCP 协商阶段 (例如 IPCP):

                                1.IP 地址分配 (IP Address Allocation): 动态分配 IP 地址(主动方分配,                                        被动方获取),或静态配置。

                                 2.DNS 服务器地址、WINS 服务器地址等协商。

                        d.PAP (口令认证协议):

                                1.过程: 客户端发送用户名和密码给服务器,服务器验证。

                                2.安全性: 密码以明文传输,容易被截获。

                        e.CHAP (握手认证协议):

                                1.过程:

                                        (1)Challenge (挑战): 服务器向客户端发送一个随机的“挑战”字符串。

                                        (2)Response (响应): 客户端使用挑战字符串和其密码(本地存储的                                              哈希值)进行哈希计算,并将结果发送给服务器。

                                        (3)Verification (验证): 服务器使用相同的挑战字符串和存储的密码哈                                            希值进行计算,如果结果匹配,则认证成功。

                                2.安全性: 密码本身不传输,安全性更高。

                        f.PPP MP (多链路 PPP)

                                1.工作原理: 将多个物理 PPP 链路(例如,多条 ISDN 线路,或多条串行                                       链路)捆绑成一个逻辑链路。

                                2.分片与重组: 当数据包过大无法一次性通过单条链路时,MP 会将数据包                                     分割成小片段 ,通过多条链路并行传输,然后在对端重新组装。

                                3.配置: 需要配置 MP-GROUP 接口,并将物理 PPP 接口加入该组。

                                4.应用: 增加带宽、提高吞吐量、实现负载均衡和链路冗余。


三、TCP 协议详解

        1.面向连接

                (1)三次握手:

                        a.SYN (Client -> Server): 客户端发送 SYN 包,请求建立连接,并包含自己的                            初始序列号 。

                        b.SYN-ACK (Server -> Client): 服务器收到 SYN 后,回复 SYN-ACK 包,表                              示同意建立连接,并包含自己的 ISN 以及对客户端 SYN 的确认号 (Client ISN +                              1)。

                        c.ACK (Client -> Server): 客户端收到 SYN-ACK 后,发送 ACK 包,确认服务                            器的 SYN-ACK,并包含对服务器 SYN 的确认号 (Server ISN + 1)。此时连接建                              立。

        2.TCP 报文结构 (关键字段)

                (1)Source Port (源端口), Destination Port (目标端口): 源端口和目标端口。

                (2)Sequence Number (序列号): 当前发送的字节流的起始序列号。

                (3)Acknowledgment Number (确认号): 期望接收的下一个字节的序列号。

                (4)Data Offset (数据偏移 / 头部长度): TCP 头部长度。

                (5)Flags (标志位,如 URG, ACK, PSH, RST, SYN, FIN):

                        a.SYN (同步): 建立连接。

                        b.ACK (确认): 确认号有效。

                        c.FIN (终止): 释放连接。

                        d.RST (重置): 中断连接。

                        e.PSH (推送): 尽快交给应用层处理。

                        f.URG (紧急): 紧急指针有效。

                (6)Window Size (窗口大小): 接收方希望发送方发送的缓存大小(用于流量控制)。

                (7)Checksum (校验和): 校验和,用于检测数据错误。

                (8)Urgent Pointer (紧急指针): 指示紧急数据的位置。

        3.TCP 异常连接 (RST - Reset)

                (1)RST 报文的产生:

                        a.收到一个连接请求(SYN),但没有对应的监听端口 (Listening Port)。

                        b.收到一个报文段,但目标端口或 IP 地址不匹配。

                        c.收到一个无效的 ACK,用于终止连接。

                        d.接收方缓冲区已满,无法处理。

        4.TCP 可靠传输机制

                (1) 连接确认机制

                        a.累计确认: ACK 字段表示期望收到的下一个字节的序列号。例如,如果收到了                           1000 字节数据(序列号 1000),ACK 号就是 1001。这表示之前的所有字节都已                            成功接收。

                       b.窗口字段 : 接收方通过此字段告知发送方自己还有多少可用缓冲区空间 。发送                           方根据此值来限制发送的数据量,实现流量控制 (Flow Control)。

                (2) 重传机制

                        a.超时重传:

                                1.RTO (重传超时时间): TCP 使用 RTT (往返时间) 的加权平均值来估                                            算 RTO。常用的算法是 Karn 算法,它在计算 RTT 时忽略带有 ACK 标志的                                     重传数据包。

                                2.超时间隔加倍 : 当发生重传时,TCP 会将 RTO 乘以一个因子(通常                                           是 2),以避免在网络拥塞时加剧问题。

                        b.快速重传:

                                1.触发: 收到 3 个或更多重复的 ACK (Duplicate Acknowledgement),这通                                     常意味着中间有数据包丢失。

                                2.操作: 发送方立即重传丢失的数据包,而无需等待超时。

                                3.快速恢复: 在快速重传后,TCP 进入快速恢复阶段。它会将 cwnd(拥塞                                    窗口)设为 ssthresh(慢启动阈值)加上 3 个 MSS(因为收到了 3 个                                            Duplicate ACK),然后每收到一个 Duplicate ACK,cwnd 再加 1 MSS,直                                    到收到未丢失数据段的 ACK 后才恢复正常。

                (3) 流控机制

                        a.滑动窗口概念: 发送方维护一个发送窗口 (Send Window),接收方维护一个接                            收窗口 (Receive Window)。发送方可以发送的字节数不能超过发送窗口大小。接                            收方告知发送方的可用缓存大小(接收窗口)决定了发送方的发送窗口上限。

                        b.发送窗口大小 = min(接收方通告的 Window Size, 拥塞窗口 cwnd)

                        c.零窗口探测 : 当接收方通告零窗口时,发送方会暂停发送。为了避免死                                     锁 (Deadlock),发送方会每隔一段时间(RTO/3)发送一个非常小的探测包                                    (1 字节),以检查接收方窗口状态。

                        d.SWS 阻止: TCP 头部中的 Window Scale 选项用于增大窗口值(支持更大的                               窗口,特别是在高延迟、高带宽的网络中,避免带宽时延乘积。

                (4) 校验和

                        a.计算: 包含 TCP 头部、TCP 数据以及伪头部 (Pseudo Header,包含源 IP, 目                             标 IP, 协议号, TCP 长度)。

                        b.作用: 确保数据的完整性 (Integrity)。

        5.TCP 拥塞控制

                (1)拥塞: 指网络中路由器队列 (Router Queues) 过长,导致丢包和延迟急剧增加。

                (2)目的: 避免 TCP 连接加剧网络拥塞。

                (3)拥塞判断 (Congestion Detection):

                        a.丢包 (Packet Loss): 接收方未收到 ACK(超时重传),或收到重复 ACK(快                             速重传)。

                (4)TCP 拥塞控制方法 (加法增加,乘法减小):

                        a.慢启动 :

                                1.阶段: 连接建立初期,cwnd (拥塞窗口) 较小。

                                2.增长: cwnd 指数级增长(每 RTT 增加一倍)。

                                3.目标: 快速探测网络的可用带宽。

                        b.拥塞避免:

                                1.阶段: cwnd 达到 ssthresh (慢启动阈值) 后进入。

                                2.增长: cwnd 线性增长(每 RTT 增加一个 MSS)。

                                3.目标: 缓慢增加发送速率,避免再次引发拥塞。

                        c.拥塞发生与恢复:

                                1.检测到丢包 (通过 3 个 Duplicate ACK):     

                                        (1)ssthresh 减半: ssthresh = max(cwnd / 2, 2 * MSS)

                                        (2)cwnd 设为 ssthresh: cwnd = ssthresh

                                        (3)进入快速恢复: 允许发送方在收到 Duplicate ACK 时发送新的数据,                                          直到收到未丢失数据段的 ACK。

                                2.检测到超时重传:

                                        (1)ssthresh 减半: ssthresh = max(cwnd / 2, 2 * MSS)

                                        (2)cwnd 重置为 1 MSS: cwnd = 1 MSS

                                        (3)重新进入慢启动: 再次进行指数级增长。

TCP Tahoe: 发生丢包(超时或重复 ACK)时,ssthresh 减半,cwnd 设为 1 MSS,并重回慢启动。

TCP Reno: 发生丢包(超时)时,ssthresh 减半,cwnd 设为 1 MSS,重回慢启动;发生丢包(重复 ACK)时,ssthresh 减半,cwnd 设为 ssthresh,并进入快速恢复。

TCP NewReno: 对 Reno 的改进,在快速恢复期间,如果有多于一个的数据包丢失,NewReno 能够更有效地处理。

TCP CUBIC: 现代 TCP 版本(如 Linux 默认)使用的算法,在慢启动和拥塞避免之间引入了“立方体”增长函数 (Cubic Growth Function),在高带宽、高延迟网络中性能更好。

http://www.dtcms.com/a/294494.html

相关文章:

  • 在 macOS 上 安装最新 Python 和 pip
  • mac电脑搭载c、c++环境(基于vs code)
  • 粗大误差智能滤除:基于格拉布斯准则与机器学习的数据清洗体系​
  • 【MySQL】MySQL 索引详解
  • 【数据结构】线性表概括
  • 野指针和内存泄漏是什么?
  • 基于YOLOv5+pyQT6的目标检测系统通用项目模板
  • React中的antd的表格使用方法
  • HDFS写性能优化技巧详解:从理论到实践
  • HBase新手入门
  • kafka动态配置详解
  • Tile级原语与自动推理机制融合,TileAI社区发起人深度剖析TileLang核心技术与优势
  • 小白做投资测算,如何快速上手?
  • Hot100题解
  • iOS 抓包工具有哪些?2025实用指南与场景推荐
  • Docker 基础概念
  • 开源的语音合成大模型-Cosyvoice使用介绍
  • UE5多人MOBA+GAS 29、创建一个等级UI
  • Effective Python 第15条 不要过分依赖给字典添加条目时所用的顺序
  • Kafka的介绍
  • Linux 或者 Ubuntu 离线安装 ollama
  • windows 11 下git软件提交正常,idea git提交总提示需要token
  • Java设计模式-备忘录模式
  • 前缀和经典问题整理
  • 扫描电镜与透射电镜联用表征形貌与元素组成-测试GO
  • C语言(20250723)
  • Zookeeper基本功能和应用场景
  • Zookeeper学习专栏(八):使用高级客户端库Apache Curator
  • 【数据结构初阶】--树和二叉树先导篇
  • spring的value注解