网络层

概述

网络层功能

在数据链路层的支持下, 将报文分组从源节点传输到目的节点。

网络层与数据链路层的区别

数据链路层仅完成相邻节点之间的数据传输, 网络层完成源节点到目的节点的数据传输。

报文分组

  • 一份完整的信息称为一个报文。
  • 分组交换技术将报文划分为若干个较小的格式化信息单位独立传输, 这样的格式化信息单位称为报文分组, 简称“分组” 。 “分组” 是网络层的协议数据单元(NPDU)。
  • 分组的一般格式:
    在这里插入图片描述
  • 分组作为数据帧的数据部分。

网络地址

  • 网络地址是主机或节点的标识, 即一个网络地址在整个网络中唯一地标识一个主机或节点。
  • 网络地址是结构化地址, 由网络号和主机号组成。

虚电路与数据报

分组交换技术

  • 分组交换的基本原理
    将一份完整的报文划分为若干个分组, 每个分组以存储/转发方式, 独立地从源节点传输到目的节点, 目的节点收到这些分组重新组装成原报文。
  • 分组交换技术特征:
    化整为零, 存储转发。
  • 优点
    使多路数据能够复用一条链路, 提高链路的利用率。
    有利于差错控制。
    有利于安全性
  • 缺点
    当网络拥塞时, 会导致分组传输延迟增加, 对流媒体影响较大。
  • 分组交换技术的两种实现方式: 虚电路和数据报。

虚电路

在这里插入图片描述
虚电路工作原理
设:主机HA要向HC发送报文分组。

  1. 首先主机HA向HC发一虚呼叫(虚电路连接请求),该虚呼叫选择一条适当的路径到达Hc,记下沿途所经过的路径作为虚电路,如HA-A-E-B-CHc, 并给其赋一个虚电路号VC1。
  2. 如果沿途所经过的节点及目的主机Hc准备就绪,则Hc发一响应给HA ;HA收到该响应,则虚电路VC1建立完毕。虚呼叫需要向沿途所经过的节点提出请求,任一节点拒绝(由于资源不足),均导致虚电路建立失败。
  3. HA和HC的分组必须通过该虚电路进行传输。
  4. 分组传输完毕,拆除虚电路,释放虚电路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完成边界路由器之间的路由选择。
  • 支持策略路由, 这些策略包括政治、 安全和经济方面因素
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值