目录
概述
网络层功能
在数据链路层的支持下, 将报文分组从源节点传输到目的节点。
网络层与数据链路层的区别
数据链路层仅完成相邻节点之间的数据传输, 网络层完成源节点到目的节点的数据传输。
报文分组
- 一份完整的信息称为一个报文。
- 分组交换技术将报文划分为若干个较小的格式化信息单位独立传输, 这样的格式化信息单位称为报文分组, 简称“分组” 。 “分组” 是网络层的协议数据单元(NPDU)。
- 分组的一般格式:
- 分组作为数据帧的数据部分。
网络地址
- 网络地址是主机或节点的标识, 即一个网络地址在整个网络中唯一地标识一个主机或节点。
- 网络地址是结构化地址, 由网络号和主机号组成。
虚电路与数据报
分组交换技术
- 分组交换的基本原理
将一份完整的报文划分为若干个分组, 每个分组以存储/转发方式, 独立地从源节点传输到目的节点, 目的节点收到这些分组重新组装成原报文。 - 分组交换技术特征:
化整为零, 存储转发。 - 优点
使多路数据能够复用一条链路, 提高链路的利用率。
有利于差错控制。
有利于安全性 - 缺点
当网络拥塞时, 会导致分组传输延迟增加, 对流媒体影响较大。 - 分组交换技术的两种实现方式: 虚电路和数据报。
虚电路
虚电路工作原理:
设:主机HA要向HC发送报文分组。
- 首先主机HA向HC发一虚呼叫(虚电路连接请求),该虚呼叫选择一条适当的路径到达Hc,记下沿途所经过的路径作为虚电路,如HA-A-E-B-CHc, 并给其赋一个虚电路号VC1。
- 如果沿途所经过的节点及目的主机Hc准备就绪,则Hc发一响应给HA ;HA收到该响应,则虚电路VC1建立完毕。虚呼叫需要向沿途所经过的节点提出请求,任一节点拒绝(由于资源不足),均导致虚电路建立失败。
- HA和HC的分组必须通过该虚电路进行传输。
- 分组传输完毕,拆除虚电路,释放虚电路VC1占用的资源。
虚电路的特点
- 通信前,发送方和接收方之间必须建立连接(虚电路) , 所以虚电路是面向连接的网络服务。
- 虚电路只是一种逻辑电路, 而不是真正的物理电路。 报文分组在虚电路上传输不像在物理电路上那样中畅通无阻,而是要经过节点的“存储转发” 。
- 一旦虚电路建立完毕, 所有分组必须经过该虚电路进行。 因此,虚电路能够保证分组的顺序到达。
- 仅当建立虚电路时需要源/目的节点地址, 数据分组只需分配一个虚电路号而无需携带完整的源/目的节点地址。
- 一条链路上允许建立多个虚电路。
虚电路号与虚电路表
- 固定虚电路号
建立虚电路时, 由发起方选择一个固定的虚电路号。
每个节点维护一张虚电路表, 记录前一个节点、 下一个节点、 虚电路号等信息。
- 动态虚电路号
当有多条虚电路时, 不同的发起方可能会选择相同的虚电路号。 为避免这种情况, 常采用动态虚电路号, 不同的节点对同一条虚电路可使用不同的虚电路号。
每个节点的虚电路表记录两个虚电路号:前一节点选择的虚电路号, 本节点选择的虚电路号。
数据报
数据报无需建立连接, 每个分组携带完整的源/目的地址, 独立的选择路径, 通过不同的路径到达目的主机 。
- 数据报的特点
无需建立连接就可传输报文分组, 因此数据报称为非面向连接的网络服务。
不同的分组可以通过不同的路由到达目的主机, 先发出的分组未必先到;因此数据报不能保证分组的顺序到达。
每个分组携带完整的源/目的地址, 独立的选择路径
路由选择
路由选择及其分类
路由选择:根据某种策略, 选择一条到达目的主机的最佳路径。
路由选择由路由器完成;对单个路由器而言, 路由选择实质上是选择最佳输出链路(端口) , 多个路由器协作选择一条最佳路由。
路由选择是网络层最重要功能, 无论是虚电路, 还是数据报都要进行路由选择。 虚电路仅需要一次路由选择(虚呼叫) , 数据报需要为每个分组选择路由。
路由选择分类
- 静态路由:
按照某种固定的规则进行路由选择, 不随网络流量和拓扑结构变化而变化。 - 动态路由:
根据当前拓扑结构和流量的变化来动态改变路由, 又称为自适应路由。
静态路由算法
扩散法(洪泛法)
- 当节点收到一个分组后, 向除进来的链路外的所有其他链路转发(扩散) ,其结果是至少有一个分组以最快的速度到达目的节点。
- 问题:扩散过程产生大量重复分组(就像洪水泛滥一样) , 导致网络无法运行。
- 解决措施:每个分组设置一个下跳数字段,每经过一个节点下跳数减1;当下跳数为0时,丢弃该分组。
固定式路由选择
每个结点保存一张固定的路由表, 当某一分组到达时, 根据分组的目的地址, 在路由表中找到其对应的输出链路。
路由表一般结构:
这里的“距离”是广义的,表示到达目的节点所要付出的“代价”,可以是实际距离、平均流量、延迟、下跳数等。
网络管理员为每个路由器配置固定路由表, 固定路由表一旦生成, 就不再改变, 除非网络管理员重新配置。
- 优点:简单, 路由算法开销小。
- 缺点:不能适应网络流量和拓扑结构的变化。
- 适用:小规模网络。
动态路由算法
热土豆算法
-
基本思想
当节点收到一个分组后, 选择一条输出队列最短的链路尽快的将其转发出去, 而不管目的节点位于何方。 -
优点:尽量提高链路的利用率。
-
缺点:盲目性。
-
改进:与固定式路由算法混合使用
首先根据固定路由算法选择可能的输出链路, 并给这些链路赋上一定权值;
再根据链路队列长度, 赋上一定权值;
选择这两个权值之和最小的链路。
逆向自学习算法
每个节点保存一张转发表(路由表) , 该表主要字段包括:
- 初始时转发表为空。
- 当数据包到达节点时,
将数据包的源地址视为转发表的目的地址, 输入端口视为转发表的输出端口;如果转发表存在该目的地址, 则刷新该记录;如果转发表不存在该目的地址, 则增加一条新记录。
根据数据包的目的地址, 查询转发表;如果找到,则从指定的输出端口转发;如果找不到,则广播。 - 定期扫描转发表,清除过时的记录。
距离向量路由算法 (D-V算法)
基本思想
每个节点都保存一张动态路由表, 路由表包括目的节点地址, 最短距离、 最佳输出链路。 与固定式路由选择不同的是:相邻结点之间定期交换路由信息(如每隔30秒) , 并根据最新路由信息, 刷新路由表。
初始化:
- 当节点加入网络时, 获取直接相连的链路情况(无需知道网络全局拓扑) ;
- 构建初始路由表, 初始路由表中的目的节点仅包含直接相连的节点,“距离” 值置为0;
- 将初始路由表发给直接相连的节点
路由信息更新:
经过一个周期后,节点C修改步骤如下:
- C实测到达相邻结点B,D的“距离”。若以延迟为“距离”度量, C向 B,D发出探测分组,该分组记录发出时间和接收时间,那么链路延迟就是接收和发出的时间差。 (C → B: 6 , C → D: 2)
- 收到相邻结点B , D发来的路由信息后,重新生成下一周期路由表。
D-V算法优缺点
- 优点:由于仅相邻节点交换路由信息,所以运算量和交换的信息量较小。
- 缺点:收敛速度慢, 对网络变化需经若干周期才能作出反应。特别是对好消息反应快,对坏消息反应迟钝
无穷计数问题的解决:
- 规定一个足够大的数作为∞ ,如RIP规定为16; 缺点是限制了网络规模。
- 水平分割法,即不允许将从相邻节点获得的路由信息再提供给该相邻节点。
链路状态路由选择算法(L-S算法
基本思想:
所有节点相互交换路由信息, 并根据最新路由信息刷新路由表。
L-S算法描述:
- 发现邻居结点
当一个路由器启动以后,通过向每个端口发送特殊的HELLO分组来发现邻居结点;收到HELLO分组的路由器应返回一个应答来说明它的网络地址。 - 测量相邻链路开销
通过发送特殊的ECHO分组来实现,测量其往返时间,再除以2。 - 产生链路状态分组
每个节点实测所有相邻链路的开销,创建链路状态分组(L-S分组) 。
D: 表示节点D产生的L-S分组。
序号: IP协议用32位表示序号;如果一个L-S分组到达时,其序号比最近到达的序号小,则丢弃,以保证节点收到的是最新的L-S分组。
生存期: 在L-S分组广播过程中,每经过一个节点递减1, 一旦生存期为0, 则丢弃 - 广播L-S分组
每个节点向其他所有节点广播自己的L-S分组。 - 刷新路由表
结点获得最新L-S分组后,用最短路径算法计算到其他结点的最短路由,并刷新路由表
D-V和L-S算法的比较
路由协议简介
路由信息协议(RIP)
RIP采用D-V算法, 用于小规模网络。
技术特点:
- 距离: 下跳数, 允许对下跳数加权。
- 路由信息交换周期: 缺省值为30秒。
- 无穷计数问题: RIP选择16作为∞;为了加快收敛速度, RIP采用水平分割技术。
- RIP消息交换: 通过UDP协议传输, 端口号为520。
开放最短路由优先协议(OSPF)
OSPF采用L-S算法, 是目前Internet的主要内部网关协议。
自治系统(AS):
- 由 一 个 独 立 的 管 理 实 体 控 制 的 网 络 称 为 自 治 系 统 。 每 个 自 治 系 统 由 ICANN(Internet Corporation for Assiigned Names and Numbers) 分配唯一的自治系统编号。
- Internet规模非常庞大, 导致D-V算法收敛性很差, L-S算法会产生广播风暴, 而且路由表也会变得非常大。
- 因此, Internet采用层次路由架构:
(1) 自治系统内部路由选择协议, 称为内部网关协议(IGP) 。
(2) 自治系统之间的路由选择协议, 称为外部网关协议(EGP) 。 - 不同的自治系统允许采用不同的路由协议, 每个自治系统采用相同的路由协议
OSPF技术特点
- 距离: 允许网络管理员选择多种“距离”度量,如延迟,数据率,通信费用,下跳数等。
- OSPF支持区域概念。
为了简化路由规模, 一个自治系统允许划分成一个主域和若干个本地域。 主域的ID为0(0.0.0.0) 本地域都与主域相连, 所有本地域之间的路由必须通过主域。 - OSPF支持认证服务, 防止发送假L-S分组来愚弄路由器。
- OSPF不用UDP而直接利用IP分组发送消息(L-S分组), IP分组的协议号为89。
边界网关协议(BGP)
内部网关协议(IGP) 与外部网关协议(EGP) 的区别:
- IGP注重效率
- EGP注重策略-
作为Internet外部网关协议, 用于不同AS之间的路由选择。
技术特点:
- BGP采用路径向量路由算法, 路由表中记录到达目的地的确切路由,而不是最短距离, 从而解决“无穷计数” 问题。
- 每个AS至少要有设置一个边界路由器, 边界路由器连接若干个AS,BGP完成边界路由器之间的路由选择。
- 支持策略路由, 这些策略包括政治、 安全和经济方面因素