《通信网络系统基础》课程重点

专业知识 / 2022-10-23

通信网络系统基础

总成绩 = 平时 50% + 期末(开卷) 50%

教学内容:网络系统架构、网络基本技术、网络新技术

一、通信网络系统架构

1. 理解网络体系结构系统性思想与理念

  • 网络体系结构

    • What

      • 网络分层结构服务协议的集合
      • 内容——分层结构模型、层间接口、各层协议
    • Why

      • 相互通信非常复杂、将复杂问题简单化、网络功能分层
    • 层次结构的三个部分

      • 信息通信——端端信息交换通信
      • 网际通信——网络层协议决定了通信方式和路由形式
        • 网络层是核心层次:承上启下、全局通信与控制
        • 不同的网络层及协议,决定了不同网络的通信模式和路由模式,也决定了网络的通信性能
      • 数据通信——底层通信网络或系统,对高层信息承载与传递
        • 通常称为物理网络(底层通信网络),是一种独立的网络形式
        • 通常是二层以及以下层,隧道也是物理网络
    • OSI 参考模型**(抽象)**

      • 服务:指明本层要为上层做什么,但并不指明要如何做
      • 接口:指明层间交互的参数、内容、以及访问方式
        • 服务访问点——描述上下实体间数据传递关系
          • 上层通过 SAP 向相邻下层请求服务,下层通过 SAP 向上层提供服务
          • 协议实体对上提供了多个并行的服务(一个 SAP 对应一个上层实体)
          • 上层实体只关联一个下层实体提供的服务
        • 层间通信通过原语实现
      • 协议:指明协议是实现服务和本层功能的主体,但并不指明用什么协议
        • 协议——对等实体之间通信(对话)使用的一组规则和约定
    • TCP/IP 参考模型**(具体)**

      • 特点:在传输层和网络层定义具体的主协议,并描述协议的具体细节

      • 思想:网络层用 IP 协议将不同的物理网互连起来,从而实现 IP 分组从源端到目的端的传递

      • 物理网取代 L1 和 L2,涵盖了更广泛的内容:

        1、退化为 OSI 模型的 L1、L2 和传输介质

        2、物理网涵盖: 通信系统、或通信网络,甚至可以是 TCP/IP 网络

        3、物理网具备更灵活多样的组网和通信能力,不同于简单的传输介质

2. 理解网络协议体系与协议栈

对等实体:通信双方的同层且执行相同协议的实体
协议:对等实体间的对话规则

  • 协议

    • 定义:计算机网络中通信双方所遵守的规则、标准或约定的集合
    • 基本模型:实体、服务、对话
  • 协议的对话——三要素:

    • 语法:信息的格式(由哪几部分组成)
    • 语义:信息的含义及控制信息(各部分的具体含义)
    • 时序:信息交换的步骤与顺序等
  • 协议栈

    • 一个节点(主机,路由器等)不同层协议的集合称为协议栈
    • 每层可能多个协议实体,每个实体独立并行运行,实现本层功能
  • 协议体系

    • 纵向结构:设备协议栈——各层协议的集合,描述数据传递关系(层间通信)—— 实通信
      • 上下层协议实体之间的通信 —— 称为服务
      • 通过服务访问点实现上下层协议实体之间的通信
        • 上下层协议实体并不知晓对方协议细节
        • 通过清晰定义接口功能(SAP)来实现通信
    • 横向结构:各层协议对等交互关系,对等实体之间通信 —— 虚通信(透明通信)
      • TCP:端到端对话,用TCP报文
      • IP:逐跳对话,用IP报文
      • 链路:分段对话,用数据帧、
    • 层间实体通信与对等实体通信的关系
      • 实质就是实通信与虚通信的关系
      • 实通信:0发送方向下逐层封装,接收方向上层逐层解封
      • 实通信是实现虚通信的基础
  • 协议类型

    • 通信型协议(主协议)
      • 提供通信服务的协议,为其它实体提供分组传递服务
      • MAC、IP、TCP、UDP等协议
      • 提供多条分组传递服务路径,即通过复用实现高层协议分组的并行传输
      • 使用别的协议提供的分组传递服务
      • 具有上下的通道 (接口)
        • 使用 SAP Notation 来保证对等关系
    • 功能型协议(辅助协议)
      • 实现某些功能、不提供通信服务
      • ARP、ICMP等协议
      • 产生分组或消化分组
      • 使用别的协议提供的分组传递服务
      • 通常只有向下的通道 (接口),没有向上的通道 (接口)
  • 协议栈构建准则

    • 准则1:对等实体准则
      • 需要知道一个协议实体在与谁进行对话
      • 否则,这个协议实体也没有存在的必要了
    • 准则2:上下实体独立准则
      • 实体不必关心 SAP 上面究竟放置了哪些实体
      • 注:同层实体也可能构成上下实体关系
    • 准则3:透明传输准则
      • 对等实体间可传递任意数据、接收内容=发送内容
  • 模块化思想

    • 尽管可以设计地完善,但若能划分成一个主协议 (通信型) 和若干辅助协议 (功能型) 可以提高协议性能
    • 辅助 (功能型) 协议为主协议功能的增加、补充和修改提供了灵活的手段

3. 理解并掌握网络拓扑的概念

  • 网络拓扑结构

    • 网络系统组成的抽象表达
    • 物理拓扑
      • 网络节点互连形成的结构
    • 逻辑拓扑
      • 建立在物理拓扑之上的数据流通路形成的结构
  • 在实际应用中,可以按需构建不同的网络拓扑

    • 针对大网,逻辑分割化块 —— 逻辑结构

      • 网络,总有它的属主,多个属主的网络互联起来形成更大规模的网络,这就是:网际网 (Internetwork)、因特网 (Internet,基于TCP/IP技术的网际网)
      • 特点
        • 拓扑结构简化,还可人为组织
        • 尺度伸缩性强,大可覆盖全球,小可在几台计算机
        • 更容易把握网络技术 (网内技术、网间技术)
      • 问题
        • 网间链路评估问题
        • 网内穿越评估问题
    • 根据不同功能构建网络 —— 功能结构

      • 因特网服务提供商(ISP):根据向用户提供服务,布局网络功能
        • 接入网、汇聚网、核心网、数据中心网、…
    • 根据特定通信构建网络 —— 通信结构

      • 无线局域网、无线广域网、按需布局网络拓扑等

      • 通信系统之上的网络

        • 数据通信 ——可在任意两点间部署数据传输通道
        • 组网 ——根据需要部署传输通道和路由器
        • 按需构建网络的拓扑结构
  • 分层拓扑

    • 为了应对日益扩大的网络
    • 路由问题:
      • 路由也需要分层,反过来会影响拓扑的分层
      • 网内路由、域内路由、域间路由、区间路由、区内路由
  • Internet 网络结构

    • Internet 是一个巨型复杂系统,过去认为它的拓扑结构是一个随机网络,后来测试结果发现与随机网络预测不符,而是一个无尺度网络
      • 随机网络:节点的连接数是随机分布的(正态分布)
      • 无尺度网络 (Scale free): 少数节点具有很高连接数 (集散节点),连接分布遵循“幂次定律”
        • 任何节点与其它k个节点连接概率,与1/k成正比(无尺度特性)
        • 可承受意外故障,无法抗拒协同式攻击

4. 了解不同通信体制网络的协议结构

  • LTE/4G 网络结构

    • 4G/5G与计算机网络相比

      • 网络结构不同

        • 计算机网络:多种网络拓扑
        • 4G/5G:蜂窝网
      • 网络协议栈不同

        • 计算机网络:TCP/IP协议栈
        • 4G/5G:4G/5G协议栈+TCP/IP
      • 网络控制方式不同

        • IP:分布式控制
        • 4G/5G:集中式+分布式控制
    • 网络架构:核心网 + 接入网

      • 核心网:EPC —— IP分布式结构
      • 接入网:E-UTRAN
    • 根据需求设计网络结构

      • 用户数据的需求
        • 方便传输
        • 资源访问快捷
        • 需要分布式架构
      • 控制信息的需求
        • 传输可靠
        • 便于决策和控制
        • 需要集中式架构
      • E-UTRAN:扁平化 + IP 化
        • 降低了呼叫建立时延以及用户数据的传输时延
        • 便于 eNB 之间的数据直传
      • E-UTRAN 与 EPC 之间:eNB 与 MME/S-GW 具有灵活的连接
        • 便于漫游/切换
      • EPC:全 IP 化
        • 便于接入互联网
    • 协议栈中的两层 IP

      • 下层的 IP 通过隧道提供物理网络支持,能够更好支持 4G 网络内部的各种信息服务
      • 上层的 IP 建立在隧道之上,为了方便接入互联网
    • 选用 UDP 与 SCTP 的问题

      • 数据服务使用 IP + UDP,一是因为 EPC 中使用有线连接,二是上层能够提供可靠性保障
      • 信令使用 IP + SCTP,主要是因为信令不重传,需要下层的 SCTP 提供可靠性保障

5. 具备初步的网络系统架构分析和设计能力

  • 网络功能部署

    • “足够就好”

      • 在网络级别上能够完整实现某些功能且能够减少主机负担,则可在网络上部署该功能,否则不可
    • “除非必要”

      • 尽可能在端系统上实现
      • 尽可能保持网络的简单,快速转发
      • 保持灵活性
    • “如果有用”

      • 能在主机上层实施的功能,交给较低的层次来实施的话,只能作为性能提升的手段
  • 网络三平面架构

    • 传送平面

      • 基本的用户业务承载数据传送功能,也称数据平面或用户平面
    • 管理平面

      • 执行系统管理功能
    • 控制平面

      • 强化网络运营的控制特性

二、通信网络协议技术

  • 协议的服务

    • 服务通过对上提供的接口来实现
    • 只有主协议(通信型协议)才有服务
    • 实体提供多个服务接口,使用不同的序号标识不同的分组流
    • 一般的实体只使用一个下层实体提供的服务,但网络协议实体应用实体可以使用多个实体提供的服务
  • 语义的表示

    • 定位编码法**(首选)**
      • 用固定字节数存放信息内容
        • 每种信息在固定位置、占固定字节长度
        • 用编码形式表示信息内容
      • 固定字节位置存放固定 Key 的内容
        • 优点:占用空间小,内容为机器所理解
      • 协议PDU形式
        • 情况1:一种协议、一种报文
        • 情况2:一种协议、多种报文格式
      • 特定参数存放在特定位置
      • 处理高效、扩展不易
    • 变长编码法
      • 每个域用三字段表示 TLV(Type, Length, Value)
      • 某个 L 出错,会导致后面的域跟着出错
        • 多次用 TLV 对内容进行分组
      • 当遇见变长的内容且内容长度变化幅度较大时,可考虑采用TLV编码
    • 文字表述法
      • 用可显式字符串表示分组各个域(XML等)
      • 特点
        • 技术支撑好:解释型,有高级语言编译技术的支撑
        • 弹性大:域的多少、域的位置可灵活变化
        • 扩展性强:可随时增加新的域(更新解释程序),旧的解释程序直接忽略不认识的域
  • 协议交互类型

    • 无应答交互
      • 无状态交互
      • TpT_p 之后即可发送下一报文,交互能力可达发送容量 RpR_p
      • 不受 RTT 的影响、不受发送失败影响
      • 有 PDU 错误 (丢失) 问题,概率为 PfP_f
    • 简单应答交互
      • 有状态交互
      • 发方不能连续发送,交互能力减小
      • 下一次交互必须等前一次交互结束后才能发生
    • 序列可靠交互
      • 有状态交互
        • 约束:等待、重传、顺序
      • 连续若干个分组,彼此存在前后顺序的逻辑关系,要求可靠地传递到对方
        • 停等协议
        • 回退 N 协议
        • 选择性重传协议
      • 特性与简单应答相似,但存在终止通信的概率
  • 面向连接与无连接协议

    • 面向连接——电路交换、虚电路交换
      • 建立一条从源到目的的电路/虚电路(可能包含多个子网的电路/虚电路)
        • 一条电路/虚电路的特性将继承各网络中最差的那段
        • 所有网络最好具有大致相同的特性
    • 无连接——数据报
      • 在互联网层面上无法提供可靠性
        • 对网络的多样化适应性强
        • 既适应无连接网络,也适应采用面向连接技术的网络之间的互联
    • 电路交换
      • 在源和目的之间建立一条专用通路,通信期间信道独占
      • 通信过程有三个阶段: 连接建立,数据传输,连接拆除
      • 面向流,数据在经过交换节点时处理时延很短,整个通信过程几乎只有传播延迟
      • 特点: 信道独占,顺序到达,交换时延短,几乎无时延抖动,信道利用率低
    • 分组交换——虚电路、数据报
      • 以分组为单位:将待传数据切分成较小的分组
      • 各分组在每个交换节点上:存储转发
      • 通信采用统计时分复用,不独占信道资源
      • 特点:信道不独占,信道利用率高,可能高时延(存储转发、寻径导致的过站延时),可能丢分组,对于数据报交换可能乱序到达
  • 协议设计

    • 可靠性
      • What
        • 差错控制、流量控制、顺序控制
      • How
        • 面向连接、重发机制、确认机制、PDU编号、流控机制
    • 健壮性
      • What
        • 对网络中出现意外或设备故障情况下的适应性或应变能力
      • IP 健壮但不可靠
    • 网络拥塞
      • 流量控制
        • 避免一个快速发送者用分组淹没慢速接收者
      • 拥塞控制
        • 避免一组发送者用分组淹没网络
      • 开环控制(拥塞预防)与闭环控制(拥塞处理)
      • TCP 拥塞控制
        • TCP 协议的发送窗口最初是为流量控制设计的,后面的扩展让窗口与拥塞控制联系起来
          • CWnd:拥塞窗口(动态调整,拥控)
          • RWnd:接收窗口(对方接收缓冲区的尺寸,流控)
        • 过大的窗口产生的危害远远高于过小窗口产生的危害
          • 过大窗口:分组被网络丢失造成重传
          • 过小窗口:吞吐量有些低而已
          • 慢增快减
          • 慢启动 + AIMD
            • 慢启动:收到每个 ACK 时,CWnd += 1(成功发送窗口内的数据后 CWnd 翻倍)
            • 门限:CWnd 上升到门限时,转为 AIMD 过程
            • AI:成功发送窗口内的数据,CWnd += 1
            • MD:超时后,门限 = CWnd/2,CWnd = 1
          • TCP Reno
            • 快速重传:当收到 3 个重复的 Ack 后,立即开始重传 (不必等超时)
              • Threshold = CWnd/2
              • CWnd = Threshold

三、中继交换原理

  • 中继

    • 从一个端口接收 PDU,从另一个端口转发出去

    • 协议中继

      • 协议对话、中继协议 PDU
      • 中继方式:PDU中继
        –协议掌握PDU的内容
        –用首部信息转发PDU
    • 协议外中继

      • 借助协议外部的中继,中继 DU

        • 不同协议间的中继
      • 中继方式:DU中继
        –中继不掌握DU内容
        –用ICIx信息转发DU

      • 可以实现协议转换

      • 条件

        1、实现两种地址空间的某种映射关系(IPv4 可以中继到 IPv6,MAC 无法向 PPP 映射)
        2、实现两种协议的 SAP 间的某种映射关系(要求中继实体了解所中继的 DU 是什么)

        3、实现不同最大传输单元 (MTU) 的适配(中继实体没有对等实体,难以实现分片重组)

    • 数据链路层都是协议外中继

      • 同种协议中继
      • 跨协议中继
    • 网络层两种中继都有

      • 协议内中继 — 网络协议的组网、路由、转发 (路由器)
        • IP 中继实体内嵌于 IP 实体
      • 协议外中继 — 从一种网络进入另一种网络 (网关)
      • 在网络层对异构物理网络做协议外中继,相当于协议覆盖
    • 传输层的通信端点无中继功能,传输层中继是使用代理的方式对应用通信进行中继(ssh、Nginx)

      • TCP中继:可理解为两段TCP的“级联”,优点就是 Nginx
    • 中继实体不是协议实体(没有对等实体)

  • 中继性能

    • 中继性能指标
      • 吞吐量:处理的分组数/秒
      • 服务质量:实时性、公平性等
    • 影响中继性能的主要因素
      • 入、出排队等待时延
      • 交换的处理能力
      • 容量(含队列存储容量,交换容量)
    • QoS: 典型服务质量指标
      • 传输延时
      • 延时抖动
      • 恒定流量: 保证传输速率
      • 额定流量、最低流量:保证传输
  • 中继选路算法

    • 查表匹配算法 FIB
      • 依次为每个分组查表匹配 (集中式串行处理)
      • 算法性能:假设平均每个分组需v次查表实现匹配,则要求中继系统查表速度:Cv
      • 提升性能:逐跳修改 SMAC 和 DMAC(增加跳数,减少表项)
    • 以太网交换机 FIB 算法
      • 问题:地址空间巨大、占用的MAC地址在空间中稀疏分布
      • FIB 中仅存放当前已知站点的 MAC
        • 基于源地址学习方法
        • 加入老化时间,让 FIB 表动态更新,删除过旧的信息
      • 使用 HASH 来快速匹配
        • FIB 中依然需要保存 MAC 地址,避免多个地址出现相同的 HASH 值
      • 以太网交换机处理效率很高
        • 存在不同MAC的hash冲突问题
        • 1G/10G/100G以太网上都容易实现大容量交换
    • IP 路由器 FIB 算法
      • 问题:全局范围内所有的 IP 地址都是潜在的目的地址,表项极多
      • 综合多种手段,提升FIB算法的效率
        • 手段1:子网地址取代目标IP地址,压缩表项数
        • 手段2:缺省路由 (default route)
        • 手段3:并行搜索
        • 手段4:优化FIB搜索算法
      • 路由器处理效率最低,吞吐率最低
        • 超高速互联网上难以担当重任
        • 部署在超高速分组交换网的边缘
    • MPLS 交换机 FIB 算法
      • MPLS是一种标签交换技术
        • 分组首部只有一个2字节的标签域
        • 12bit的标签值 、4bit 控制信息
      • MPLS处理效率最高
        • 可满足超高速互联网中的分组交换
  • 中继排队模型

    • 排队算法的一般模型包括三个算法
      • 分类 —— 进入不同的队列算法
      • 资源 —— 队列缓冲区资源分配算法
      • 调度 —— 输出调度算法
    • IQ
      • 分组先进入各队列,仅允许各队首到不同输出端口的分组进入交换矩阵
      • 有队首阻塞 HOL
    • OQ
      • 分组直接进入交换矩阵,在输出端口排队
      • 交换矩阵需要存储转发
      • 优选
    • VOQ
      • 既想要 IQ 交换矩阵的简洁性,又想要 OQ 的交换性能
      • 在一个物理通道上(一个 Crossbar 端口),面向多个输出方向实现多个虚拟输出队列
        • 在 IQ 的每个入口处把数据分流了,避免了 HOL
      • 性能趋于 OQ
        • 如果分组流是突发的,但缓冲区无限大,或分组流是均匀达到的
    • 经典排队算法
      • FIFO
      • 优先级排队 PQ
        • PDU按优先级排到不同的队列中;只有当高优先级队列为空,才传下一低优先级;当有高优先级分组到达,“马上”转到高优先级。
        • 问题
          • 过于重优轻慢的问题
            • 带宽的有效速率一方面看分组的优先级,另一方面看到达速率
          • 低优先级的分组被拖延现象
      • 分类排队 CQ
        • 将单一优先级分类改变成一般分类概念进行排队,并为各队列分配适当的流量比例额度
        • 问题
          • 如何对语音和数据进行分类?
          • 队列额度高、队列短问题
          • 需要相当量的手工配置和调节
      • 公平队列调度 FQ
        • 公平地服务每个队列 ,分组越长,得到的服务越多
        • 分组分类上进行调节
          • 按业务流区分,轮询取每个队列的分组进行服务
          • 可以调整入队的方式来实现公平
      • 加权公平队列调度 WFQ
        • FQ 通过加权,对各个队列实现一定水平的配额分配

四、IP 组网原理

4.1 IP 编制技术

1. IPv4/v6编址技术:分类、表示方法、特殊IP地址及用途

  • IPv4
    • 分类编址(2级)
      • 极大的地址空间浪费
    • 子网编址(3级)
      • 一般针对 A、B 类地址
      • 使用掩码来确定网络地址
      • 分级路由:递交至网络 -> 递交至子网 -> host
    • 超网
      • 一般针对 C 类地址
      • 聚合的 C 类网个数是2的乘方
      • 可用于大型组织的地址申请,或者路由聚合
    • 无分类编址(2级)
      • 子网和超网依旧属于分类编址
      • 使用可变长地址块,每个地址块的地址数量必须是2的乘方
      • 两级编址:前缀 + 后缀
        • 使用 CIDR 指明前缀
      • 具有相同网络前缀的地址可以用1个网络地址来表示——路由聚合
    • 地址划分 P35
    • 多接口主机可以用同一网络的 IP 地址,但路由器各接口必须接入不同的 IP 网络
    • 特殊 IP P43
  • IPv6
    • 无分类编址
      • 十六进制冒号记法
        • 忽略一个区(两个冒号间的4个数字)开头的零
        • 零压缩:使用双冒号替代连续的几个零区
          • 一个地址中只能使用一次双冒号
      • 混合表示法:十六进制冒号法 + 点分十进制法
      • CIDR记法:IPv6-address / prefix-length
    • 单播地址
      • 三种单播:
        • 全局单播:全局唯一
        • 本地链路单播:同一个交换机下唯一,不同于私有地址。在邻居交互时、维护链路信息时会用到。对应 MAC 地址,MAC 也是在交换机下唯一。
        • 本地单播:子网唯一的私有地址,对应 v4 的私有地址
      • 全球单播地址 2000::/8
        • 2^(128/8) 个地址用于全局公网单播
      • IPv4 兼容地址 0000::/8
        • 未指明地址 – ::/128
        • 环回地址 – ::1/128
        • 嵌入的IPv4地址
          • 兼容地址 – ::/96
          • 映射地址 – ::FFFF/96
      • 本地链路地址 FE80::/10
        • 定义每个网络接口
        • 用于自动配置与邻居发现
      • 唯一本地单播地址 FC00::/7
    • 多播地址 FF00::/8
      • IPv6认为广播是多播的一个特例
    • 任播地址
      • 定义共享一个地址的一组计算机
      • 发送到任播地址的分组被交付给这个组中最容易到达的那个计算机
      • 任播地址是从单播地址块中指派的
    • 三级结构
      • 全球路由选择前缀
      • 子网标识
      • 接口标识
        • 可以嵌入长度小于64位的物理地址
        • MAC 到 IPv6 的映射(P57)

2. NAT技术原理

  • 实现机构内部通信的保密性

    • 专有网

    • 混合网络(内部通信使用专有网,外部通信使用 Internet)

    • VPN(使用 Internet 进行机构内部与外部通信)

      • 隧道:一条建立在 Internet 上的数据通道

      • 安全机制

        • Confidentiality 安全性、隐私性(不被第三方看见)
        • Sender Authentication 授权用户才能使用
        • Message Integrity 完整性(不被第三方伪造)
  • NAT

    • 专网地址无法在公网上使用(不会被路由),需要进行地址转换
    • 基本 NAT
      • 一个本地地址对应一个全局地址
    • 端口 NAT(NAPT)
      • 多个本地地址对应一个全局地址上的不同端口
      • NAT 表中除了本地映射信息,还需要记录正在访问的公网主机的 IP 与端口,以及使用的传输层协议
      • Cone NAT(P81)
        • Full Cone NAT
          • 绑定好 NAT 端口后来者不拒
        • Address Restricted Cone NAT
          • 只能接收记录过 IP 的对象的包
        • Port Restricted Cone NAT
          • 只能接收记录过 IP 与端口的对象的包
      • Symmetric NAT
        • 不会完全绑定,针对不同外网主机,哪怕内网是同一个 IP 与端口,也会建立不同的 NAT 端口
      • 可用于 TCP 负载均衡
    • 限制:通信往往只能由内网主机(使用内网地址)主动发起
      • 外网访问内网服务器,需要进行 DDNS
      • 没有公网 IP 则需要进行内网穿透

3. IP地址与物理网地址的解析方法

  • ARP
    • 基于广播,动态掌握物理网中站点的 IP 与物理地址之间的映射关系
    • 使用 ARP 缓存表来加速,定期清空有助于动态维护更新
    • 免费 ARP
      • 入网时可以用 ARP 解析自己想用的 IP 地址来避免冲突
    • ARP 欺骗攻击
      • 响应欺骗攻击
        • 中间人,窃取数据
      • 请求欺骗攻击
        • 持续广播,降低网络性能
      • 处理方法
        • 静态 ARP
        • VLAN
        • 数据加密
  • 多播地址解析
    • 每个 IP 多播地址定义一个多播组
    • 利用物理网的多播或广播机制,在支持多播的物理网上实现多播
    • 直接把组播 IP 的最后 23 bits 映射到 MAC 的最后(前面 25 bits 为固定的,表示这是来自 ipv4 组播的映射),会让 32 个组播地址(28-23=5,2^5=32)映射成同一个MAC地址

4. IPv6的主机地址自动配置技术原理

  • DHCP
    • 状态自动配置
    • C/S 模型,允许存在多个应答者,Client从中选择
    • 分配的地址是有租期的, Client可能需要续约
    • DHCP Client用UDP广播DHCP请求,DHCP服务器用UDP回答DHCP应答
    • DHCP 中继
      • 实现跨IP网络的动态IP分配
    • DHCP 欺骗攻击
      • 服务器和客户端没有认证机制
      • DHCP Snooping
        • 交换机 只转发信任端口的 DHCP OFFER/ACK/NAK报文,丢弃非信任端口的DHCPOFFER/ACK/NAK 报文,从而达到阻断非法DHCP服务器的目的
    • 其他安全问题(P128)
  • IPv6 自动配置
    • Ipv6 将接口地址纳入 IP 地址内,只需要路由器提供前缀,就能使用无状态配置来自动生成 v6 地址
    • 接口地址能形成链路唯一地址,于是就可以发广播去向路由器请求网络前缀

5. 理解移动IP的编址问题及解决方案

  • 移动 IP(P50)

    • 问题

      • IP 地址为固定网络设置,网络前缀与物理网络绑定
      • 主机移动导致的地址变更,会使得切换网络时通信中断
    • 归属地址

      • 永久地址:关联归属网络
    • 转交地址

      • 临时地址:关联外地网络

4.2 IP 分组传送技术

掌握IP分组的递交与转发概念

  • 路由:找寻并维护到所有可能目的地的路径
    • 选择到所有可能目的地的路径
  • 转发:查路由表(routing table)找到到达分组目的地的路径
    • 选择到特定分组目的地的路径
  • 交付:在网络层控制下,底层物理网络对分组的发送处理
    • 直接交付(Direct delivery)
      • 分组目的地址与分组的发送接口在同一IP网络中
    • 间接交付(Indirect delivery)
      • 分组目的地址与分组的发送接口在不同IP网络中
  • RIB 与 FIB
    • RIB 是由各种路由进程(执行路由协议)提供的信息来构建
    • 从RIB中的所有路由中选出最佳路由后,将它们复制到FIB

掌握单播和多播通信中的IP分组转发技术及其区别

  • 广播:某个网络内
    • 本地广播:目的地址=全1地址
    • 转发:不转发
    • 网络广播:目的地址=网络广播地址
  • 多播:跨网络
    • 目的地址=多播地址
    • 多播路由器在本地搜集组播成员,并在全局扩散它有哪个组播的成员
    • 加入指定的多播组
      • 每一个多播地址代表一个多播组
      • IP实体可同时加入多个多播组
  • IGMP
    • 功能:帮助多播路由器创建和更新每个接口子网中的多播组成员列表 —— 本地多播组成员信息
    • 目标:路由器能够实时监控所在网络中存在哪些组播业务
    • 要实现基本功能
      • 路由器如何知道有哪些组播业务(关心哪个接口有业务)
      • 路由器如何实时监控
    • 基本工作原理
      • 主机将主动发送IGMP 成员关系报告报文到其要加入的组播组,以声明加入
      • IGMP 查询器周期性地以组播方式,向本地网段内的所有主机与路由器发送IGMP 查询报文(周期性轮询)
      • 在收到该查询报文后,关注G1 的Host B 与Host C 其中之一(这取决于谁的延迟定时器先超时)响应(通过报文抑制来提高效率,一个发了其他的就不用发了)
    • 多播转发的特征
      • 动态:成员动态变化
      • 无方向性:转发环路
    • 解决方案
      • 对同一个多播分组只能转发一次:反向路径转发 RFP
      • 沿最优路径转发:多播树

掌握IPv4/IPv6、ICMP/ICMPv6协议原理

  • IP 协议
    • 尽最大努力(Best effort)交付
      • 尽力发送、无连接、不可靠、数据报
    • 分组格式(P48)
    • IP 分组分片
      • ID 字段标志是哪个 IP 分组,flag 字段表示是否启用分组、是否是最后一个,分片 offset 字段表示当前的分片偏移值(ID 对应报文的第几个分片)
      • Offset 的单位是 Byte,分组长度不足的补 0(偏移字段13bit,而数据报长度16bit)
      • 分组交换核心:存储转发
        • 需要 IP 分组比较小(一台交换机的入口和出口性能受限)
          增加统计复用的可能
      • 为什么用 offset 来标志某一分片而不是 number:在传送中也可能会被进一步分片,用 number 就会出问题
      • Total length 字段需要加上头部大小 20 B,offset 的计算不包括头部(从 0 开始标号)
    • 分片重组
      • 使用重组表
      • 有时限,超时未到齐直接丢弃
  • IPv6 协议
    • IPv6的产生原因:IPv4地址紧缺
    • IPv6的目标:取代IPv4
    • IPv6的改进
      • 地址长度128位(首部 40 B,v4 20B)
      • 基本首部 + 扩展首部,利于协议扩展(基本首部字段少)
      • 支持资源分配:通信量类别字段 、流标签字段(方便 QoS)
      • 支持更多的安全性:认证选项、加密 选项
      • 其它:自动发现技术、自动配置技术、……
    • v4 到 v6 过渡
      • 双协议栈
      • 隧道技术
        • 自动隧道:直接打上 v4 的头传给目标主机
        • 配置隧道:在一头一尾需要做 v6 与 v4 的转换
      • 首部转换
  • ICMP 协议
    • IP的辅助协议(不解决问题,只辅助)
    • 实现在 IP 之上
      • 无连接通信
      • 直接送达目的站点,沿途的转发路由器不能获知ICMP报文内容
    • 差错报告报文
      • 报告路由器或目的主机在处理IP分组时可能遇到的问题
      • 不产生ICMP差错报文的差错
        • 携带ICMP差错报文的IP分组
        • 非第一片的IP分片
        • 多播分组
        • 具有127.0.0.0或0.0.0.0这类特殊地址的IP分组
      • 差错报告会把前 28B 拷贝下来(IP 头和 8B 数据)
    • 查询报文
      • 帮助主机或网络管理员从某个路由器或对方主机处获取特定信息
  • ICMPv6 协议
    • 在 ICMP 的基础上,实现ARP的功能,并能发现路由器(无状态的DHCP),以及 IGMP 的功能

理解基于代理的移动IP技术及其通信问题

  • 移动 IP
    • “双地址”,目标对外不改变移动主机的IP地址
      • 归属地址(home address) 始终对外,不变化
      • 转交地址(care-of address) 真实转交地址
    • 不在无关路由器上设特定主机路由
      • 归属代理(Home Agent,HA)
        • 截获所有到移动主机的IP报文,并转送给外地代理
      • 外地代理(Foreign Agent,FA)
        • 归属代理送来的IP报文转送到移动主机
        • 本机也可以充当外部代理,叫做同址转交地址
    • 移动IP通信模型
      • FA 转交
        • 移动主机的FA转交地址 = 外地代理的IP地址
        • 使用隧道承载指向归属地 IP 的包发往 FA
        • 在 FA 处用移动主机的链路地址交付
      • 同址转交
        • 移动主机的FA转交地址 = 外地代理的IP地址 移动主机的同址转交地址 = 外地网络DHCP分配
        • 使用隧道承载指向归属地 IP 的包直接发给移动主机
        • 移动主机自行解封
    • 代理ARP、免费ARP
      • HA截获所有到移动主机的IP报文
      • 需要特殊处理HA中主机与它的通信(会认为是一个IP子网里)——由代理来处理 ARP 请求
      • 当代理路由收到对特定主机的ARP请求时,用自己的物理地址(接收端口)进行ARP应答
      • 通常在同一子网内,隔离主机与其他主机通信时使用代理 ARP
        • 上述隔离网络的情况下由路由器来作代理,在移动网络中,由HA来作代理
        • 很明显 ARP 本身存在安全漏洞
    • 二次穿越问题
      • 严重低效
      • FA的主机与它通信需要穿越到HA
    • 三角路由问题
      • 中度低效
      • 外部通信走的路由不是最优(需要走HA)
    • 解决低效问题
      • 远程主机绑定移动主机的归属地址和转交地址
      • 移动主机再次移动
        • HA向远程主机发送告警分组以通知绑定的改变
        • 拆除会有问题

基于分组目的地址和基于标签的分组转发技术

  • 基于目的地址的转发——路由表
    • 目的:网络
    • 路经:下一跳
    • IP MASK 下一跳 接口
    • 路由表的大小只与网络的个数有关,与每个网络的大小(包含的主机数多少)无关
    • 所有可达的特定网络:直连网络、已知的非直连网络
      • 只有最后一跳才知道目的主机是否存在
    • 默认路由
      • 不匹配特定网络路由的所有目的网络的转发路径
      • 功能
        • 使路由表变得更小
        • 隐藏大量的路由信息
      • 一般默认网关只有主机配置,路由器配置默认网关会有问题——默认路由环路问题
    • 无分类编址的转发采用最长掩码匹配(字典树)
    • 路由聚合要求被聚合的网络都通过同样的下一站路经
      • 合理的IP地址规划
      • 隐藏网络结构
  • 基于标签的转发——MPLS
    • 标签:无连接 -> 面向连接
    • 标签堆栈:多个流共享一个路经
    • MPLS 使用交换而非路由
      • 交换表中记录接口与下一个标签,通过当前标签进行索引

多播分组的反向路径转发技术

  • RPF
    • 使用源IP地址查找单播路由表
      • 分组到达正确接口:按输出接口表转发
      • 分组到达错误接口:丢弃
    • IP多播转发是倒立的:关注信息流来自何方,而非流向何方!

IPv4协议原理及其软件架构

  • P77

4.3 端到端传送与网络拥塞控制技术

理解和掌握UDP、TCP、SCTP协议的端到端传送服务特性、协议功能与控制技术,以及它们为应用层提供的服务特性、通信特点、功能和应用场合

  • 传输层

    • 应用层与网络层之间的桥梁
      • IP:简单通信,提高转发效率
      • TCP/UDP:利用终端处理能力,提升通信质量
      • 应用:网络应用系统
    • 进程间通信
      • IP、端口 四个地址唯一标识一对进程间的通信
      • 有任何一个地址不一样,则连接就不一样
    • 端口
      • Well-known ports,熟知端口
      • Registered ports,注册端口
      • Dynamic ports,动态端口
    • 并行服务
      • Iterative server 串行处理
        • 用 buffer 来逐个排队处理
      • concurrent server 并发处理
        • 生成一堆子进程来单独处理
          • 端口是用来标识进程的,子进程为什么能依旧使用那一个端口号??
            • 因为唯一标识一对连接的是四个地址,虽然 server 的端口不变,但是源一定变了(不同主机的 IP 不一样,同一台主机上建立的两条连接一定源端口不一样)
            • 操作系统中,在传输层和应用层之间实际上夹了一层 socket,tcp 和 udp 拿到的数据实际上是交付给了 socket,scoket 使用源目 IP 和端口来标识并维护不同的连接
  • UDP(P47)

    • Message Delivery service
    • 对IP协议的增强
      • 无连接、不可靠、数据报通信
      • 提供传输层服务,特别是:进程到进程的通信
  • TCP(P58)

    • Stream Delivery service
    • 高层应用的需求:reliability
      • 进程到进程的通信
      • 面向连接、可靠的字节流通信
    • 解决的问题
      • 超时重传机制:不可靠,报文有丢失现象,影响TCP报文可靠性
      • 自适应加速机制:不同传输路径,报文到达延迟,时间变化大,影响TCP效率
      • 接收窗口机制:不同传输路径,报文到达顺序错乱
      • 拥塞控制机制:网络拥塞,突发性报文丢失
    • 初始序号(ISN)
      • 在建立连接时,通信双方的TCP各自随机产生初始序号
      • 建立连接阶段的控制报文段有序号,但数据部分为0
    • 确认号
      • 期望接收的下一个数据字节的编号,是累积值
    • 三次握手
      • 第一个建链报文一定会把 ack 置位(无效),后面的 ack = 收到的 seq + 1(已经收到 seq + 1 以前的所有报文)
      • ACK 报文是不需要确认的,之后的一个报文使用和 ACK 报文一样的 seq 值
      • 建链 syn 是特殊报文,需要确认(syn报文长为1)
      • DOS 安全问题:server接收请求有代价,可以伪装client持续向一个server持续发tcp建链请求(SCTP 可避免该问题)
    • 推送数据
      • 由发送方进程执行,设置PSH标志位,要求发方TCP不需要等待窗口填满,立即发送报文段
      • 收方不必等待更多数据到来,立即交付给应用程序
      • PSH 的数据还是会进收方入缓存中,只是会提醒接收方尽快处理
    • 紧急数据
      • 发方设置URG控制位置,将紧急数据插入报文段数据起始处,紧急指针值为紧急数据的最后一个字节编号
      • 收方立即通知接收应用程序
      • URG 的数据不会进入收方缓存(发方也是立即发),收方需要立即处理
    • 四次挥手
      • 通信是双向的,但连接终止是单向进行的
      • 连接拆除的发起方只能关闭自己的发送方向,而TCP的另一端可以继续发送数据——半关闭
    • 流量控制:滑动窗口(P85)
      • rwnd 窗口用于流控
    • 差错控制:校验和、确认、动态超时重传(P92)
    • 拥塞控制:发现丢包,控制发送速率(P95)
      • cwnd 窗口用于拥控
  • SCTP(P111)

    • 为多媒体、流业务应用提供面向报文的可靠传输层服务

    • SCTP 的关联和 TCP 的连接不太一样——多重流、多重归属

      • 多重流:一个关联可以同时传多个数据管道的数据
      • 多重归属:SCTP 允许在一个关联上配置多个 IP,对服务器来说可以用多个网络接口来同时提供高性能服务
    • SCTP分组:控制块 + 数据块

      • 一个SCTP分组可有多个数据块,可属不同流
    • 报文流

      • VT 标识一条关联,TCP 则是用四个地址标识一个连接:SCTP 允许多重分组 -> 一条关联上允许多个 IP 地址
      • SI 与 SSN 实现了多条流传输
      • TSN 是统一的编号
    • 解决 ACK DoS(P125)

        1. VT
        • 由 client 的 Init tag 来指定 server 使用的 VT 号。反之亦然 -> 安全,无法进行 TCP 那种无脑的 DDOS,因为至少需要对方解析自己的报文要求,按照自己的 Init tag 来发才会被分配服务(不断重复发连接请求不再会占用对方缓存)
        • 这是一种常用的安全思路:发一个东西过去,要求对方返回一个拷贝
        1. 使用 Cookie 进行四次握手
      • 本质是在推迟资源分配,避免恶意主机占用内存

    • 三次挥手:没有“半关闭”状态,一方关闭关联则另一方必须立即终止传输

    • SCTP 没有使用普通 ACK 来对控制信息进行确认,因此只有 DATA 块才消耗 TSN

    • 流量控制

      • 接收方 cumTSN winSize lastACK
      • 发送方 curTSN rwnd inTransit
    • 差错控制

      • 使用 SACK 能够汇报乱序和重复的数据块
    • 拥塞控制(P135)

TCP和SCTP协议的端到端传送原理与网络拥塞控制技术

  • 拥塞控制
    • 拥塞会导致分组丢弃,从而引起重传,使情况更糟
    • 主要原因
      • 到达速率 > 处理速率
      • 离开速率 < 处理速率
    • 控制策略
      • 开环——避免
      • 闭环——处理
    • 连接机制
      • 无连接服务:不能有效实施控制
      • 面向连接服务:能够实施流量控制、差错控制、拥塞控制
  • TCP 的拥塞控制(P95)
    • TCP 的拥塞检测手段就是丢包情况
    • 为减少丢包,TCP 会控制发送速率
    • 但传输超时不一定意味着发生了网络拥塞
  • SCTP 的拥塞控制(P135)
    • 与 TCP 不同的是有多归属的处理

在无可靠性保障的条件下实现可靠传输的技术原理

  • 底层网络和IP网络是不可靠、无连接投递 -> 使用协议自身的可靠性机制:TCP
  • 窗口控制
    • 序号(Sequence number)
    • 确认(Acknowledgment)
    • 超时重传机制
    • 窗口
      • 滑动(sliding)
      • 扩展(expanding)
      • 缩回(shrinking)
      • 关闭(closing)
  • 停等协议
    • 接收方向发送方反馈每一帧的接收信息
    • 由于只允许发送方每次发送一个未确认的数据帧,这样对“长信道”来说,停等协议对信道的利用率低
  • 滑动窗口协议
    • 通过设置窗口大小控制发送数据量
      • 发送窗口扩展:程序处理数据的速度比接收的块
      • 发送窗口收缩:程序处理数据的速度比接收的慢
      • 发送窗口关闭:接收窗口满了
    • 字节号不在发送窗口的数据不能发送,不在接收窗口的数据不能接收
    • 差错控制
      • 收方:反馈确认号
      • 发方:发送窗口滑动
    • 流量控制
      • 收方:反馈接收窗口值
        • 接收方掌握流量控制的话语权
      • 发方:发送窗口大小变化
    • 流控机制不会立即见效(P90)
    • 糊涂窗口综合症
      • 症状:报文段携带很少数据,降低效率
      • 原因:发方数据产生慢/收方数据消耗慢
      • 解决:发方延迟发送,收方推迟确认
  • ARQ
    • 接收方对成功接收的数据返回 ACK
    • 发送方发送每一个数据都要缓存,直到收到 ACK,定时器超时后需要重传

SCTP与TCP协议的差异

  • 简要对比:UDP、TCP、SCTP(P112)
  • SCTP关联操作 vs. TCP连接操作(P128)

五、IP 路由技术

理解路由选择方式与网络结构间的关系

  • 转发与路由(P5)
    • 转发:数据面,本地,
    • 路由:控制面,全局
  • 路由
    • 动态路由
      • 先应:不断维护路由表,任务到了直接查表转发(SDN)
      • 反应:有需求再去产生路由表,任务到了如果没有对应表项则现场找路——无线网络用的多(维护开销小,对拓扑变化频繁的网络比较友好)(移动 ad-hoc)
      • 分布 VS 集中
    • 路由分类
      • 基于目标
        • 最短路径优先会导致大量的交叠
      • 基于流
      • 基于策略
  • 收敛:所有路由器对于网络拓扑在认知上达成了一致
  • 度量:用来衡量通过某一网络所需的代价(跳数 or 带宽)
  • 自治系统
    • Internet 划分了很多级,分成多个自治系统,每个自治系统内部又进一步划分
    • 主要原因:Internet 网络太大,一种路由协议无法更新所有路由器的路由表
    • IGP:内部网关协议/域内路由(路由选择主要考虑Metric)
      • AS 内路由器交换拓扑信息
      • 形成 AS 内的最短路径
      • 要求无死节点、无环路
    • EGP:外部网关协议/域间路由(路由选择主要考虑策略)
      • AS 边界路由器交换内部网络可达性信息
      • 形成合理的 AS 路径
      • AS 间的商业关系决定了拓扑关系
    • 三级路由体系:单个网络内部、AS 内部、AS 之间
    • 类型
      • 残桩 AS:只有一条连接到达另一个 AS
      • 多归属 AS:有多条连接到达其他多个 AS,只能是数据流量的信源或信宿
      • 转接 AS:允许数据流量穿越的多归属 AS

掌握典型域内和域间路由选择协议的基本原理与特性

  • RIP

    • DV 路由算法:不需要掌握网络的加权拓扑,逐跳累加确定各条最短路径

    • 采用广播方式与邻居网关交互路由信息

    • 发送 RIP 回应的情况

      • 接收到 RIP 请求
      • 周期广播路由表
      • 路由表项发生变化
    • 计时器

      • 周期计时器(25-35s):用于周期广播
      • 过期计时器(180s):管理路由的有效性,超时则把对应跳数设为 16
      • 垃圾收集(120s):此间继续周期广播,告知该条跳数为 16 的无效路由
    • 问题(P51)

      • 收敛慢:周期广播
      • 不稳定:路由环路
    • 解决(P54)

      • 触发更新、分割范围、毒性逆转、抑制定时器
      • 不能完全解决
    • 应用(P61)

      • 小规模网络
  • OSPF

    • LS 路由算法:需要掌握网络的加权拓扑,自己计算各条最短路径
      • 使用 Dijkstra 算法,计算最短路径优先(SPF)树,更新路由表
    • 采用扩散方式与所有网关交互路由信息(事件驱动)
      • 每个路由器都应该有互联网的全貌
    • 链路状态:通过链路连接了哪些邻居,以及它们的类型、权重、on/off 状态
    • 网络类型
      • 点到点网络
      • 转接网络(广播多路访问网络 + 非广播型多路访问网络)
        • 选择一个指定路由器 DR 来充当转接网络抽象成为的路由器
      • 残桩网络
      • 虚链路
    • OSPF 报文(P80)
    • OSPF 操作(P81)
      • 确定自己的邻居关系
        • Hello 机制:周期性的发送 HELLO 报文以告知自己的存在,超时则说明该邻居断开
      • 向全体路由器通告自己与邻居的链路状态
        • 链路状态数据库(LSDB)初始化
        • 链路状态请求
        • 链路状态全网通告
          • 可靠洪泛:必须对收到的新LSA进行确认(显示确认:LSA Ack;隐式确认:LSU)
          • 广播型穿越网络:先发给 DR,DR 告知该转接网络的所有设备,收到后它们在其它接口上洪泛该 LSA
      • 用收到的链路状态独立计算路由
    • 多区域 OSPF(P87)
    • 四种路由器(P90)
    • 五种 LSA(P91)
    • 应用(P103)
      • 大中规模的网络
  • BGP

    • BGP 报文(P112)
    • BGP 会话
      • EBGP 会话:在两个 AS 的边界路由器之间建立邻站(peer)关系
        • EBGP 在通告时,下一跳都是自己
      • IBGP 会话:在 AS 内部交换路由信息
        • IBGP 在通告时,下一跳保持不变,都是来自最近的一条 EBGP 的下一跳
    • 路经属性(P117,P122)
    • 为什么 BGP 还需要使用内部路由?(P126)
      • 1 跨内部路由器的会话需要用 IGP 来建立连接
      • 2 解决路由黑洞需要 IGP 来找到外部路由怎么走
    • 应用(P133)
      • 只有转接 AS 需要使用 BGP
  • DVMRP(P168)

    • 有源树,密集模式协议
    • 多播路由表
  • PIM

    • PIM-DM:有源树(P165)
      • 密集模式 DM:假设一开始所有路由器都有组播成员
    • PIM-SM:单向共享树 + 有源树(P166)
      • 稀疏模式 SM:假设一开始没有组播成员
    • 单播路由表

理解策略路由技术

  • 策略路由(P134)
    • 不按最短路径,而是按照规则来分配
    • BGP 广泛采用策略路由
    • Path vector routing(P104)
      • 交互内容:各个AS内的网络可达性
      • 交互对象:对等的AS边界路由器
      • 交互时机:事件(可达性变化)触发
      • 选择性的路由宣告——基于策略的考虑
        • 宣告:将路径信息告诉谁——“我”是否愿意为其提供服务
        • 选择:流量从哪条路径走
        • 典型策略:挣钱/省钱、性能最大化、最小化自己的带宽使用(烫手山芋)(P101)

掌握IP多播路由选择协议的基本原理与特性

  • 多播路由选择协议
    • 组播路由器(P139)
      • 使用 IGMP 来收集本地的组播成员信息
      • 使用多播路由协议来宣告组播信息
    • 多播树
      • 有源树:以源节点为根,有几个源就有几棵树
        • 用(源节点ip,组播组ip)描述
        • 单向树
      • 共享树:以指定的汇聚节点 RP 为根
        • 用(*,组播组ip)描述
        • 单向共享树 + 双向共享树
        • 资源消耗少、传输延迟大、需要结合其他方法来建立汇集点到根的通路
      • 剪枝
        • 剪掉树中没有多播接收成员分支的过程,有时效性
      • 嫁接
        • 剪掉的分支上如果又出现了多播接收成员,则将其快速接回树上的过程

多播通信中的单播路由与多播路由的关联

  • 单向共享树中,多播源可以用单播隧道或有源树来将多播信息流送至根
  • PIM、CBT 使用单播路由表来用 RPF 提高洪泛效率
一只学术咸鱼 _(:ᗤ」ㄥ)_