通信网络系统基础
总成绩 = 平时 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:透明传输准则
- 对等实体间可传递任意数据、接收内容=发送内容
- 准则1:对等实体准则
-
模块化思想
- 尽管可以设计地完善,但若能划分成一个主协议 (通信型) 和若干辅助协议 (功能型) 可以提高协议性能
- 辅助 (功能型) 协议为主协议功能的增加、补充和修改提供了灵活的手段
3. 理解并掌握网络拓扑的概念
-
网络拓扑结构
- 网络系统组成的抽象表达
- 物理拓扑
- 网络节点互连形成的结构
- 逻辑拓扑
- 建立在物理拓扑之上的数据流通路形成的结构
-
在实际应用中,可以按需构建不同的网络拓扑
-
针对大网,逻辑分割化块 —— 逻辑结构
- 网络,总有它的属主,多个属主的网络互联起来形成更大规模的网络,这就是:网际网 (Internetwork)、因特网 (Internet,基于TCP/IP技术的网际网)
- 特点
- 拓扑结构简化,还可人为组织
- 尺度伸缩性强,大可覆盖全球,小可在几台计算机
- 更容易把握网络技术 (网内技术、网间技术)
- 问题
- 网间链路评估问题
- 网内穿越评估问题
-
根据不同功能构建网络 —— 功能结构
- 因特网服务提供商(ISP):根据向用户提供服务,布局网络功能
- 接入网、汇聚网、核心网、数据中心网、…
- 因特网服务提供商(ISP):根据向用户提供服务,布局网络功能
-
根据特定通信构建网络 —— 通信结构
-
无线局域网、无线广域网、按需布局网络拓扑等
-
通信系统之上的网络
- 数据通信 ——可在任意两点间部署数据传输通道
- 组网 ——根据需要部署传输通道和路由器
- 按需构建网络的拓扑结构
-
-
-
分层拓扑
- 为了应对日益扩大的网络
- 路由问题:
- 路由也需要分层,反过来会影响拓扑的分层
- 网内路由、域内路由、域间路由、区间路由、区内路由
-
Internet 网络结构
- Internet 是一个巨型复杂系统,过去认为它的拓扑结构是一个随机网络,后来测试结果发现与随机网络预测不符,而是一个无尺度网络
- 随机网络:节点的连接数是随机分布的(正态分布)
- 无尺度网络 (Scale free): 少数节点具有很高连接数 (集散节点),连接分布遵循“幂次定律”
- 任何节点与其它k个节点连接概率,与1/k成正比(无尺度特性)
- 可承受意外故障,无法抗拒协同式攻击
- Internet 是一个巨型复杂系统,过去认为它的拓扑结构是一个随机网络,后来测试结果发现与随机网络预测不符,而是一个无尺度网络
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等)
- 特点
- 技术支撑好:解释型,有高级语言编译技术的支撑
- 弹性大:域的多少、域的位置可灵活变化
- 扩展性强:可随时增加新的域(更新解释程序),旧的解释程序直接忽略不认识的域
- 定位编码法**(首选)**
-
协议交互类型
- 无应答交互
- 无状态交互
- 在 之后即可发送下一报文,交互能力可达发送容量
- 不受 RTT 的影响、不受发送失败影响
- 有 PDU 错误 (丢失) 问题,概率为
- 简单应答交互
- 有状态交互
- 发方不能连续发送,交互能力减小
- 下一次交互必须等前一次交互结束后才能发生
- 序列可靠交互
- 有状态交互
- 约束:等待、重传、顺序
- 连续若干个分组,彼此存在前后顺序的逻辑关系,要求可靠地传递到对方
- 停等协议
- 回退 N 协议
- 选择性重传协议
- 特性与简单应答相似,但存在终止通信的概率
- 有状态交互
- 无应答交互
-
面向连接与无连接协议
- 面向连接——电路交换、虚电路交换
- 建立一条从源到目的的电路/虚电路(可能包含多个子网的电路/虚电路)
- 一条电路/虚电路的特性将继承各网络中最差的那段
- 所有网络最好具有大致相同的特性
- 建立一条从源到目的的电路/虚电路(可能包含多个子网的电路/虚电路)
- 无连接——数据报
- 在互联网层面上无法提供可靠性
- 对网络的多样化适应性强
- 既适应无连接网络,也适应采用面向连接技术的网络之间的互联
- 在互联网层面上无法提供可靠性
- 电路交换
- 在源和目的之间建立一条专用通路,通信期间信道独占
- 通信过程有三个阶段: 连接建立,数据传输,连接拆除
- 面向流,数据在经过交换节点时处理时延很短,整个通信过程几乎只有传播延迟
- 特点: 信道独占,顺序到达,交换时延短,几乎无时延抖动,信道利用率低
- 分组交换——虚电路、数据报
- 以分组为单位:将待传数据切分成较小的分组
- 各分组在每个交换节点上:存储转发
- 通信采用统计时分复用,不独占信道资源
- 特点:信道不独占,信道利用率高,可能高时延(存储转发、寻径导致的过站延时),可能丢分组,对于数据报交换可能乱序到达
- 面向连接——电路交换、虚电路交换
-
协议设计
- 可靠性
- What
- 差错控制、流量控制、顺序控制
- How
- 面向连接、重发机制、确认机制、PDU编号、流控机制
- What
- 健壮性
- What
- 对网络中出现意外或设备故障情况下的适应性或应变能力
- IP 健壮但不可靠
- What
- 网络拥塞
- 流量控制
- 避免一个快速发送者用分组淹没慢速接收者
- 拥塞控制
- 避免一组发送者用分组淹没网络
- 开环控制(拥塞预防)与闭环控制(拥塞处理)
- 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
- 快速重传:当收到 3 个重复的 Ack 后,立即开始重传 (不必等超时)
- TCP 协议的发送窗口最初是为流量控制设计的,后面的扩展让窗口与拥塞控制联系起来
- 流量控制
- 可靠性
三、中继交换原理
-
中继
-
从一个端口接收 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处理效率最高
- 可满足超高速互联网中的分组交换
- MPLS是一种标签交换技术
- 查表匹配算法 FIB
-
中继排队模型
- 排队算法的一般模型包括三个算法
- 分类 —— 进入不同的队列算法
- 资源 —— 队列缓冲区资源分配算法
- 调度 —— 输出调度算法
- 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
- 分类编址(2级)
- 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 与端口的对象的包
- Full Cone NAT
- 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网络中
- 直接交付(Direct delivery)
- 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 分组比较小(一台交换机的入口和出口性能受限)
增加统计复用的可能
- 需要 IP 分组比较小(一台交换机的入口和出口性能受限)
- 为什么用 offset 来标志某一分片而不是 number:在传送中也可能会被进一步分片,用 number 就会出问题
- Total length 字段需要加上头部大小 20 B,offset 的计算不包括头部(从 0 开始标号)
- 分片重组
- 使用重组表
- 有时限,超时未到齐直接丢弃
- 尽最大努力(Best effort)交付
- 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报文转送到移动主机
- 本机也可以充当外部代理,叫做同址转交地址
- 归属代理(Home Agent,HA)
- 移动IP通信模型
- FA 转交
- 移动主机的FA转交地址 = 外地代理的IP地址
- 使用隧道承载指向归属地 IP 的包发往 FA
- 在 FA 处用移动主机的链路地址交付
- 同址转交
- 移动主机的FA转交地址 = 外地代理的IP地址 移动主机的同址转交地址 = 外地网络DHCP分配
- 使用隧道承载指向归属地 IP 的包直接发给移动主机
- 移动主机自行解封
- FA 转交
- 代理ARP、免费ARP
- HA截获所有到移动主机的IP报文
- 需要特殊处理HA中主机与它的通信(会认为是一个IP子网里)——由代理来处理 ARP 请求
- 当代理路由收到对特定主机的ARP请求时,用自己的物理地址(接收端口)进行ARP应答
- 通常在同一子网内,隔离主机与其他主机通信时使用代理 ARP
- 上述隔离网络的情况下由路由器来作代理,在移动网络中,由HA来作代理
- 很明显 ARP 本身存在安全漏洞
- 二次穿越问题
- 严重低效
- FA的主机与它通信需要穿越到HA
- 三角路由问题
- 中度低效
- 外部通信走的路由不是最优(需要走HA)
- 解决低效问题
- 远程主机绑定移动主机的归属地址和转交地址
- 移动主机再次移动
- HA向远程主机发送告警分组以通知绑定的改变
- 拆除会有问题
- “双地址”,目标对外不改变移动主机的IP地址
基于分组目的地址和基于标签的分组转发技术
- 基于目的地址的转发——路由表
- 目的:网络
- 路经:下一跳
- IP MASK 下一跳 接口
- 路由表的大小只与网络的个数有关,与每个网络的大小(包含的主机数多少)无关
- 所有可达的特定网络:直连网络、已知的非直连网络
- 只有最后一跳才知道目的主机是否存在
- 默认路由
- 不匹配特定网络路由的所有目的网络的转发路径
- 功能
- 使路由表变得更小
- 隐藏大量的路由信息
- 一般默认网关只有主机配置,路由器配置默认网关会有问题——默认路由环路问题
- 无分类编址的转发采用最长掩码匹配(字典树)
- 路由聚合要求被聚合的网络都通过同样的下一站路经
- 合理的IP地址规划
- 隐藏网络结构
- 基于标签的转发——MPLS
- 标签:无连接 -> 面向连接
- 标签堆栈:多个流共享一个路经
- MPLS 使用交换而非路由
- 交换表中记录接口与下一个标签,通过当前标签进行索引
多播分组的反向路径转发技术
- RPF
- 使用源IP地址查找单播路由表
- 分组到达正确接口:按输出接口表转发
- 分组到达错误接口:丢弃
- 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 和端口来标识并维护不同的连接
- 端口是用来标识进程的,子进程为什么能依旧使用那一个端口号??
- 生成一堆子进程来单独处理
- Iterative server 串行处理
- 应用层与网络层之间的桥梁
-
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)
-
- VT
- 由 client 的 Init tag 来指定 server 使用的 VT 号。反之亦然 -> 安全,无法进行 TCP 那种无脑的 DDOS,因为至少需要对方解析自己的报文要求,按照自己的 Init tag 来发才会被分配服务(不断重复发连接请求不再会占用对方缓存)
- 这是一种常用的安全思路:发一个东西过去,要求对方返回一个拷贝
-
- 使用 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)
- 大中规模的网络
- LS 路由算法:需要掌握网络的加权拓扑,自己计算各条最短路径
-
BGP
- BGP 报文(P112)
- BGP 会话
- EBGP 会话:在两个 AS 的边界路由器之间建立邻站(peer)关系
- EBGP 在通告时,下一跳都是自己
- IBGP 会话:在 AS 内部交换路由信息
- IBGP 在通告时,下一跳保持不变,都是来自最近的一条 EBGP 的下一跳
- EBGP 会话:在两个 AS 的边界路由器之间建立邻站(peer)关系
- 路经属性(P117,P122)
- 为什么 BGP 还需要使用内部路由?(P126)
- 1 跨内部路由器的会话需要用 IGP 来建立连接
- 2 解决路由黑洞需要 IGP 来找到外部路由怎么走
- 应用(P133)
- 只有转接 AS 需要使用 BGP
-
DVMRP(P168)
- 有源树,密集模式协议
- 多播路由表
-
PIM
- PIM-DM:有源树(P165)
- 密集模式 DM:假设一开始所有路由器都有组播成员
- PIM-SM:单向共享树 + 有源树(P166)
- 稀疏模式 SM:假设一开始没有组播成员
- 单播路由表
- PIM-DM:有源树(P165)
理解策略路由技术
- 策略路由(P134)
- 不按最短路径,而是按照规则来分配
- BGP 广泛采用策略路由
- Path vector routing(P104)
- 交互内容:各个AS内的网络可达性
- 交互对象:对等的AS边界路由器
- 交互时机:事件(可达性变化)触发
- 选择性的路由宣告——基于策略的考虑
- 宣告:将路径信息告诉谁——“我”是否愿意为其提供服务
- 选择:流量从哪条路径走
- 典型策略:挣钱/省钱、性能最大化、最小化自己的带宽使用(烫手山芋)(P101)
掌握IP多播路由选择协议的基本原理与特性
- 多播路由选择协议
- 组播路由器(P139)
- 使用 IGMP 来收集本地的组播成员信息
- 使用多播路由协议来宣告组播信息
- 多播树
- 有源树:以源节点为根,有几个源就有几棵树
- 用(源节点ip,组播组ip)描述
- 单向树
- 共享树:以指定的汇聚节点 RP 为根
- 用(*,组播组ip)描述
- 单向共享树 + 双向共享树
- 资源消耗少、传输延迟大、需要结合其他方法来建立汇集点到根的通路
- 剪枝
- 剪掉树中没有多播接收成员分支的过程,有时效性
- 嫁接
- 剪掉的分支上如果又出现了多播接收成员,则将其快速接回树上的过程
- 有源树:以源节点为根,有几个源就有几棵树
- 组播路由器(P139)
多播通信中的单播路由与多播路由的关联
- 单向共享树中,多播源可以用单播隧道或有源树来将多播信息流送至根
- PIM、CBT 使用单播路由表来用 RPF 提高洪泛效率