[计算机网络]网络层IP协议 选路算法

网络层

不再属于端到端的服务

主机和路由器中出现

网络层的功能和服务:虚电路和数据报。

概述

发送方和接收方于网络层中作用

发送方接收方
将来自运输层的每个报文段封装成一个数据报(网络层分组);接收来自相邻的路由器R2的数据报
将数据报向目的地发送,即向相邻的路由器R1发送解封出报文段,并交付给其运输层。
image-20210109093856040image-20210109093946588
路由器主要作用将数据报从*输入链路“转发”到输出链路。*只实现下三层部分。

网络层功能

将分组从发送主机移动到接收主机

转发与路由
  • 转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口。与路由器的内部结构相关

  • 路由(routing):确定分组从源到目的经过的路径。通过选路算法计算路径

  • 路由算法(routing algorithms):通过网络的端到端路径

转发和路由区别

转发路由
将分组从路由器的一个数据链路接口转移到一个合适的输出链路接口的 本地动作指分组从源到目的地端到端路径的网络范围动作
只涉及分组在路由器中从入链路到出链路的传送。涉及网络中的所有路由器,集体经选路协议交互,决定分组从源到目的地的路径。
路由器转发分组过程

转发表:每个路由器有一张

分组首部(目的地址或某个连接标识)和相应输出链路的对照表

转发表内容:由选路算法决定

  • 集中式:选路算法在某个中心点运行。
  • 分布式:选路算法分布在多个路由器运行。
  • 路由器根据到达分组的首部值在转发表中查询。
  • 找到相应的输出链路接口,并将分组转发出去。
image-20210109100728910
常见设备
分组交换机链路层交换机路由器
一台通用分组交换设备,根据分组首部值,从输入链路接口到输出链路接口传送分组。根据链路层字段值作转发决定的分组交换机。根据网络层字段值作转发决定的分组交换机
连接建立

ATM,帧中继的网络层会使用

网络层数据分组开始传输前,在所选择的源到目的地路径上的各路由器之间相互握手,建立连接状态。

因特网网络层使用使用IP协议,而不执行连接建立。

image-20210109101804024

传输层连接与网络层连接

网络层连接运输层连接
网络层数据分组开始传输前,在所选择的源到目的地路径上的各路由器之间相互握手,建立连接状态。如TCP协议,在数据实际传输之前,发送方和接收方经过三次握手建立所需的状态信息。

网络服务模型

网络可能提供的服务
确保交付确保分组到达目的地
具有时延上界的确保交付主机到主机的时延
有序分组交付按发送顺序到达
确保最小带宽发送主机以低于特定比特率的速率发送比特,分组不会丢失,在一定时延到达
确保最大时延抖动发送方发送两个连续分组的时间间隔与接收到的间隔相同
网络层服务模型
网络体系结构服务模型带宽保证无丢失保证排序定时拥塞指示
Internet尽最大可能交付任何可能顺序不维持
ATMCBR保证恒定速率有序维持拥塞不出现
ATMABR保证最小速率有序不维持提供拥塞指示
ATM服务模型

提供多重的服务模型。在同一网络中为不同的连接提供不同类别的服务

CBR与ABR
CBR(Costant bit rate) 恒定比特率服务标准的ATM服务模型。适用于实时、恒定比特率的音频和视频流ABR(Available bit rate)可用比特率服务“比尽力服务稍好一点”的服务。
服务目标使网络连接看起来就像在发送主机和接收主机之间有一条专用的固定带宽的传输链路。特征可能会丢失信元;
ATM信元传输时的端到端时延可变性(时延抖动)及丢失、迟交的信元都保证在规定值以下。保证最小信元传输速率 (MCR),或比MCR更高(有足够空闲资源);
能够为发送方提供反馈信息

虚电路和数据报网络

概念辨析

无连接服务与连接服务

无连接服务(connection-less service)连接服务(connection service)
事先为系列分组的传输确定传输路径首先为系列分组的传输确定从源到目的经过的路径(建立连接)
每个分组独立确定传输路径然后沿该路径(连接)传输系列分组
不同分组可能传输路径不同系列分组传输路径相同
数据报网络 (datagram network )传输结束后拆除连接
虚电路网络(virtual-circuit network )

运输层与网络层提供服务异同

运输层网络层
向应用层提供进程到进程的服务。向运输层提供主机到主机的服务。
提供无连接服务和面向连接服务。提供无连接服务和面向连接服务。

| TCP:提供连接服务。
UDP提供无连接服务。 | 虚电路网络:提供连接服务。
数据报网络:提供无连接服务。 |
| 面向连接服务在网络边缘的端系统中实现 | 面向连接服务在端系统及网络核心的路由器中实现。 |

虚电路网络

Virtual circuits;根据虚电路号转发分组。

一条从源主机到目的主机,类似于电路的逻辑连接

  • 使用分组交换
  • 每个分组的传输利用链路的全部带宽
  • 源到目的经过的网络层设备共同完成虚电路功能
虚电路组成

可以同时创建多条虚电路

源和目的地之间的一条逻辑连接路径一系列链路和路由器
VCID该路径上每段链路的号码,每条链路上的VC号可能不同
转发表VC路径上每台路由器中都有该表。根据转发表进行转发
  • 沿某条虚电路传输的分组,携带对应虚电路的VCID,而非目的地址

  • 同一条VC,在每段链路上的VCID通常不同

    路由器转发分组时根据转发表改写/替换虚电路号

虚电路网络工作过程
  • 在源和目的之间创建一个VC
  • 源向该VC发送带有VC号的分组
  • 每经过一台中间路由器,用新的VC号代替原VC号: 从VC号转发表获得
  • 分组在每条链路上的VC号不同。
  • 依此规则,直到目的地。
VC号转发表结构

VC路径上每个路由器都需要维护VC连接的状态信息

*物理线路未独占:*可同时建立多条虚电路

服务可靠:到达顺序与发送顺序一致

image-20210109113816160
VC号转发表维持
VC号维持方法只要该路由器创建新的VC,其转发表中就增加一项;
终止一个VC,其转发表中就删除对应项。
路由器必须为正在进行的连接维护连接状态信息,直到该连接释放。
每条链路采用不同VC号的优点减少分组首部VC字段的长度;
简化虚电路的建立过程。
虚电路的三个阶段
虚电路建立

在发送方与接收方之间建立一条虚电路,即决定所有分组要通过的一系列链路与路由器,并为每条链路确定一个VC号。

  • 发送方与网络层联系,指定接收方地址,由网络建立虚电路 (VC)。
  • 涉及到路径上每个路由器转发表的更新、资源预留
image-20210109114509900
数据传送

沿该虚电路传输数据分组

image-20210109114551039

虚电路拆除
  • 由其中一方通知其网络层终止该虚电路;
  • 通知网络另一侧的端系统呼叫结束,并更新路径上每台路由器中的转发表
虚电路信令协议

signaling protocols

用于VC的建立、维护与拆除

  • 路径选择

应用于虚电路网络

  • 如ATM、帧中继(frame-relay)网络等

目前的Internet不采用

image-20210110085137088

信令报文:
端系统向网络发送的指示虚电路的启动与终止的报文、以及路由器之间传递的用于建立虚电路的报文。

信令协议:

​ 用来交换信令报文的协议。

数据报网络

网络层无连接

每个分组携带目的地址

路由器根据分组的目的地址转发分组 (相同源和目的地的分组可能采用不同的路径)

  • 基于路由选择协议
  • 检索转发表
  • 每个分组独立选路
传输过程
  • 发送方给要发送的分组加上目的端系统地址,并送入网络
  • 经过若干中间路由器转发分组,直到目的地。
image-20210110085846992
路由器转发方法

根据到达分组的目的地址在转发表中查询,找到相应的输出链路接口,并将分组转发出去。

  • 转发表:每台路由器有一张。
  • 目的地址与链路接口的映射表。
  • 转发表中的表项数与地址位数有关,每个可能的地址对应一项。
image-20210110090952184
最长前缀匹配

在检索转发表时,优先选择与分组目的地址匹配的前缀最长的入口(entry)

image-20210110091034484

VC网络与数据报网络对比

数据报网络VC网络
InternetATM
简化网络,复杂边缘简化边缘。复杂网络
路由器转发表只维持转发状态信息。 由选路算法修改(1~5分钟更新)。
一个端系统发送给另一个端系统的一批分组可能在网络中选择不同的路径,到达的顺序可能不一致。
转发表随虚电路的建立和拆除更新。
计算机之间的数据交换: “弹性”服务,没有严格时间需求电话网络演化而来
链路类型众多:特点、性能各异;统一服务困难核心业务是实时对话:严格的时间、可靠性需求;需要有保障的服务
“智能”端系统 (计算机):可以自适应、性能控制、差错恢复“哑(dumb)” 端系统(非智能):电话机,传真机

路由器工作原理

网络层转发功能:将分组从路由器的输入链路传送到适当的输出链路

路由器体系结构:

image-20210110092310587

输入端口

  • 输入物理链路端接到路由器的物理层;
  • 实现路由器的数据链路层功能
  • 实现查找与转发功能,以便分组通过路由器交换结构转发到适当的输出端口
  • 将控制性分组从输入端口转发到选路处理器

通常,路由器的多个端口被击中到一块 线路卡(line card)上。

交换结构

  • 将路由器的输入端口连接到它的输出端口。完全包含在路由器中

输出端口

  • 存储经过交换结构转发给它的分组,并将分组发送到输出链路。
  • 完成与输入端口顺序相反的数据链路层和物理层功能

对于双向链路,输出端口与其输入端口通常在同一线路卡上成对出现

选路处理器

  • 执行选路协议,维护选路信息以及转发表并执行路由器中的网络管理功能。

输入端口

  • 线路端接与数据链路处理:实现与输入链路相关的物理层和数据链路层功能
  • 查找,转发,排队
image-20210110093403893
查找/转发

确定将一个到达的分组通过交换结构转发给哪个输出端口,通过查找转发表实现。

分散式转发集中式转发
选路处理器计算转发表,给每个输入端口存放一份拷贝,能随选路更新。路由器的输入端口处理能力有限
在每个输入端口本地做出交换决策,无须激活中央选路处理器。直接将分组转发给中央选路处理器,查找转发表并将分组转发到适当的输出端口。
可避免在路由器中某个单点产生转发处理瓶颈。将工作站或服务器用作路由器时采用。选路处理器就是CPU,输入端口是一块网络接口卡。
查表速度

*查表:*搜索转发表,查找最长匹配的表项,若无相应表项找出默认选路表项。

*查找速率:*受许多因素影响,如路由器速度、链路速率、查找算法等。

目标: 减少排队 输入端口处理速度要超过线路速度。

  • 完成一次查找的时间应少于从输入端口接收一个分组所需的时间(对收到的分组的输入处理在下一个接收操作结束之前完成)。
查找方法
  • 线性查找:按顺序找。不适合庞大的转发表

  • 二分查找:将转发表表项存放在一个树形数据结构中。
    树的每一层对应目的地址的一个比特,查找某个地址时,从树的根节点开始,依次查地址的每一位。

    image-20210110094825979
  • 内容可寻址内存(CAM):将一个32bit IP地址提交给CAM,由它以常数时间返回该地址对应的转发表表项内容。如,Cisco8500系列。

  • 将最近被访问的表项保存在高速缓存(cache)中

输入端口可能出现问题

分组阻塞 (blocked): 来自其他输入端口的分组当前正在使用交换结构。

​ 被阻塞的分组必须在输入端口处排队,等待以后调度通过交换结构。

交换结构

将分组从输入端口交换(转发)到输出的端口。

image-20210110095109567
经过内存交换

早期用计算机作为路由器

  • 输入端口与输出端口之间的交换由CPU(选路处理器)控制完成;

  • 输入端口与输出端口类似I/O设备:

    当分组到达输入端口时,通过中断向选路处理器发出信号,将分组拷贝到处理器内存中;

    选路处理器根据分组中的目的地址查表找出适当的输出端口,将该分组拷贝到输出端口的缓存中。

image-20210110095435799
转发速度

受内存带宽的速度限制 (每个分组穿过两次总线)

若内存带宽为*每秒写入或读出B个分组,*则总的转发吞吐量 (分组从输入端口被传送到输出端口的总速率)小于B/2。

image-20210110095538277
改进

现代路由器改进:

输入线路上的处理器来执行目的地址的查找,并将分组存储(交换)进适当的存储位置。

类似共享内存的多处理机,用一个线路卡上的处理器将分组存储进适当输出端口的内存中。
如,Cisco 8500。

经总线交换

输入端口通过一条共享总线将分组直接传送到输出端口,不需要选路处理器的干预。

  • 每次只能有一个分组通过总线传送。
  • 分组到达一个输入端口时,若总线正忙,会被暂时阻塞,在输入端口排队
  • 路由器交换带宽受总线速率限制。
image-20210110095855511
经交换矩阵交换

纵横式交换机:由2n条总线组成,n个输入端口与n个输出端口连接。

到达输入端口的分组沿水平总线穿行,直至与所希望的输出端口的垂直总线交叉点:

  • 若该垂直总线空闲,则分组被传送到输出端口
  • 否则,该分组被阻塞,在输入端口排队。
image-20210110100335544

输出端口

取出存放在输出端口内存中的分组,并将其传输到输出链路上。

交换结构将分组交付给输出端口的速率超过输出链路速率,就需要排队与缓存管理功能。

image-20210110100610836

出现排队时机

  • 输入端口和输出端口都会形成分组队列。

    1. 当队列逐步增长,路由器缓存空间满,在输入端口或输出端口出现分组丢失 (packet loss)。
    2. 丢失具体位置,取决于流量负载、交换结构的相对速度、线路速度等因素。
  • 假定:

    1. 输入线路速率与输出线路速率相同
    2. 有n个输入端口和n个输出端口
    3. 交换结构速率:将分组从输入端口移动到输出端口的速率。
输入端口不排队时机

交换结构的速率至少是输入线路速率的n倍,在输入端口处不会出现排队。

最坏情况:有n条输入线路同时接收分组
交换结构可以在每个输入端口(同时)接收一个分组的时间内将n个分组从输入端口传送到输出端口。

image-20210110101150392
输入端口排队时机

交换结构比输入端口综合的速度慢时产生

  • 交换结构不够快:即相对于输入线路速度不能快得使所有到达的分组无延迟地通过它传送。
  • 在输入端口出现分组排队:等待通过交换结构传送到输出端口。
输出端口何时排队

设交换结构的速率至少是线路速率的n倍

  • 最坏情况:到达每个输入端口的分组都被发往同一个输出端口。
    一个单位时间(接收或发送一个分组)内,将有n个分组到达同一输出端口,排队(等待)发送到输出链路。

  • 发出队列中一个分组的时间内,又有n个分组到达。

  • 依此类推,最终排队的分组快速增长,很快占满输出端口的存储空间,使后续分组被丢弃。

image-20210110101722374
分组调度程序

输出端口排队的分组中选出一个发送

原则:

  • 先来先服务FCFS:简单。
  • 加权公平排队WFQ:在具有排队分组的不同端到端连接之间公平地共享输出链路。
分组丢弃方法

若缓冲已满,丢弃分组。

  • 丢弃后到的分组(弃尾);

  • 删除一个或多个已排队的分组;

    *活动队列管理AQM算法:*在缓存填满前丢弃分组 或 首部加标记,向发送方提供拥塞信号。

    如,随机早期检测RED算法: 输出队列长度维护一个加权平均值。

随机早期检测RED算法
image-20210110102117034
纵横式交换结构
假定结果
所有链路速度相同分组输出端口不同:多个分组可以被并行传送
交换结构速率与输入链路速率相同:分组从输入端口传送到给定输出端口的时间与从输入链路接收一个分组的时间相同发往相同输出端口:不同输入队列中的分组发往同一输出队列,其中的一些分组被阻塞,在输入队列中等待(交换结构一次传一个分组到端口)
分组按FCFS方式从输入队列移动到输出队列中
image-20210110102712470

IP 协议

主机,路由器网络层主要功能:

image-20210110103126010

IP数据报(分组)格式(IPV4)

image-20210110110409320

image-20210110111710290
  • 前5行为固定首部

  • 生存期TTL:避免分组无限循环传输。

    路由器转发一次分组,TTL减1

    如果TTL=0,路由器则丢弃该IP分组

IP分片

概述

最大传输单元(MTU)

网络链路存在MTU (最大传输单元)—链路层数,据帧可封装数据的上限。

不同链路的MTU不同

image-20210110112122466 image-20210110112133842
分片与重组

不同链路的MTU不同,则在小MTU链路上传播的大数据包需要分片

  • 大IP分组向较小MTU链路转发时,可以被*“分片” (fragmented)*

    1个IP分组分为多片IP分组

    IP分片到达目的主机后进行*“重组”(reassembled)*

  • IP首部的相关字段用于标识分片以及确定分片的相对顺序

    总长度、标识、标志位和片偏移

image-20210110113405691
IP分组中的分片相关字段
image-20210110111710290
标识字段标志位片偏移
占16位:标识一个IP分组DF (Don’t Fragment) ;MF (More Fragment)字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量
IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组image-20210110154650517片偏移字段以8字节为单位
image-20210110154700039
IP分片过程
假设原IP分组总长度为L,待转发链路的MTU为M
L>M,且DF=0,则可以/需要分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:image-20210111171055683
需要的总片数为:image-20210111171106840
每片的片偏移字段取值为:image-20210111171141729
每片的总长度字段为:image-20210111171156866
每片的MF标志位为:image-20210111171210007
实例
image-20210111171235543

IP编址

addressing

源地址(SA);目的地址(DA)

image-20210111172130863
  • 接口(interface): 主机/路由器与物理链路的连接

    1. 实现网络层功能

    2. 路由器通常有多个接口

      路由器通常有多个IP地址

      用于把分组送到目的IP网络。

    3. 主机通常只有一个或两个接口 (e.g.,有线的以太网接口,无线的802.11接口)

      网络层地址:互连网中主机分配的一个唯一地址。

  • IP地址:32比特(IPV4),126比特(IPV6)

    编号标识主机,路由器的接口 采用2进制或点分10进制

    点分十进制表示:将4个字节中的每一个字节分别用十进制数来表示,十进制数之间用 “.” 分隔

image-20210111172337814

IP子网(Subnet )

IP地址具有相同网络号的设备接口

不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口

网络号(NetID);主机号(HostID)

image-20210111172616325

有类IP地址
image-20210111173415064
特殊IP地址
image-20210111180355749

私有(Private)IP地址

image-20210111180556817
子网划分

将IP地址划分为3段,使用子网号进行子网划分

网络号(NetID) – 高位比特

子网号(SubID) – 原网络主机号部分比特

主机号(HostID) – 低位比特

image-20210111181659197
子网掩码

子网地址 + 子网掩码 准确确定子网大小

形如IP地址: image-20210111182130259

  • 10进制
  • 点分10进制

取值:

  • NetID,SubID全取1
  • HostID全取0
A网的默认子网掩码为255.0.0.0
B网的默认子网掩码为255.255.0.0
C网的默认子网掩码为255.255.255.0
借用3比特划分子网的B网的子网掩码为255.255.224.0
子网掩码应用

将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。

image-20210111183201876

CIDR与路由聚合

无类域间路由(CIDR: Classless InterDomain Routing)

最长前缀匹配优先使得路由聚合(route aggregation)

CIDR

消除传统的 A 类、B 类和 C 类地址界限

  • NetID+SubID→Network Prefix (Prefix)可以任意长度

融合子网地址与子网掩码,方便子网划分

  • 无类地址格式:a.b.c.d/x,其中x为前缀长度
image-20210111200301281

提高IPv4 地址空间分配效率

提高路由效率

  • 将多个子网聚合为一个较大的子网
  • 构造超网(supernetting)
路由聚合

选用更具体的路由:最长前缀匹配优先

层级编址使得路由信息通告更高效

image-20210111201940911

选路算法

选路:确定分组从发送方传送到接收方所要通过的路径(路由)。

  • 数据报服务:在给定源和目的地之间传输不同分组可能采用不同的路由。
  • 虚电路服务:在给定源和目的地之间的所有分组采用同一路径。

分组通过路由器转发,每个路由器都有一张转发表,选路算法决定转发表内容。

选路算法:根据给定的网络抽象图,找出从源节点到目的节点间的最低费用路径。

好路由算法评判标准;诸多因素,如链路长度,传播时延,价格等。

网络的抽象图模型

用“节点图”表示网络的结构。

图G = (N,E):表示N个节点和E条边的集合,每条边是来自N的一对节点。

  • 节点:表示路由器(做出分组转发判决的点)。如u,v,w,x,y,z。
  • 边:连接节点的线段,表示路由器之间的物理链路。如(u,v)、 (u,x) 、(u,w)、…
image-20210112082740285

边的值(Costs): 表示对应链路的物理长度、或链路速度、或与链路相关的费用。

  • 若结点x与结点y直接相连,则c(x,y) = 链路费用。
  • 若结点x与结点y不直接相连,则c(c,y) = 无穷。

路径:路径所经过的结点序列

路径(x1,x2,…,xp)费用:沿途所有边的费用之和。 即c(x1,x2) + c(x2,x3) + …+c(xp-1,xp)
任意两个节点x和y 之间有多条路径,费用不一定相同

最低费用路径 :该路径上链路费用之和最小。

最短路径:所有链路的费用都相同的情况。即在源和目的地之间经过链路最少的路径。

路由算法分类

静态路由动态路由全局选路算法分散选路算法负载敏感算法负载迟钝算法
路由更新慢路由更新快所有路由器掌握完整的网络拓扑和链路费用信息路由器只掌握物理相连的邻居以及链路费用链路费用会动态地变化,反映出底层链路的当前拥塞水平。某条链路的费用一般不马上反映其当前的(或最近的)拥塞级别。
手工配置,一般配置后基本不再变化定期更新邻居间信息交换、运算的迭代过程如果当前拥塞的一条链路被赋以高费用,则选路算法应绕开该拥塞链路来选择路由。
优先级高机试响应链路费用或网络拓扑变化E.g. 链路状态(LS)路由算法:必须知道网络中每条链路的费用E.g. 距离向量(DV)路由算法:每个节点维护到网络中所有其他节点的费用(距离)的估计向量如早期的ARPAnet选路算法。因特网的选路算法
易受选路循环、路由振荡之类问题的影响。

其他选路算法

热土豆选路算法(hot potato routing)网络流算法电路交换选路算法
路由器尽可能快地转发输出分组。把分组流量看成是一个网络中源和目的地之间的流。将选路问题形式化为数学上的受限优化问题网络流问题)。每条链路资源(如缓冲区、部分链路带宽)都要保留给每个要经过该链路的连接。
向任意不拥塞的输出链路转发分组,不管目的地在哪里。对分组交换数据网有帮助。

链路状态路由算法

  • 前提条件:已知网络拓扑和所有链路的费用作为算法的输入。

  • 获取方法:每个结点向网络中广播链路状态分组(含有它所连接的链路的费用)。

    由链路状态广播算法实现。最终使所用结点都有一个相同且完整的网络视图。

  • 每个结点都可以运行链路状态算法并计算出最低费用路径集。

Dijkstra最低费用路径算法

源节点为起点,每次找出一个到源节点的费用最低的节点,直到把所有的目的节点都找到为止。

Dijkstra 算法符号
所有结点(路由器)掌握网络拓扑和链路费用
通过“链路状态广播”所有结点拥有相同信息
c(x,y): 结点x到结点y链路费用;如果x和y不直接相连,则=∞
计算从一个结点(“源”)到达所有其他结点的最短路径D(v): 从源到目的v的当前路径费用值
迭代: k次迭代后,得到到达k个目的结点的最短路径p(v): 沿从源到v的当前路径,v的前序结点
N’: 已经找到最小费用路径的结点集合
image-20210112090016414
算法组成
  • 由一个初始化步骤和其后的循环组成。
  • 循环执行的次数与网络中的节点个数(除源节点)相同。
  • 结束时,算出从源节点到网络中所有其他节点的最短路径。
image-20210112090148027

实例

image-20210112091048550 image-20210112091057772
算法效率

算法复杂性: n个结点

  • 每次迭代: 需要检测所有不在集合N’中的结点w
  • n(n+1)/2次比较: O(n2)
  • 更高效的实现: O(nlogn)

存在震荡(oscillations)可能

  • e.g., 假设链路费用是该链路承载的通信量:
image-20210112091329020

避免震荡方法避免所有路由器同时运行LS算法

  • 既使路由器以相同周期运行LS算法,但在每个节点上算法的执行时刻不同。

    因特网的自同步问题: 既使路由器初始时以同一周期但不同时刻执行算法,但最终会变为同步并保持

距离向量路由算法

Distance Vector

是一种迭代的,异步的和分布式的算法。

  • 分布式:每个节点都从其直接相连邻居接收信息,进行计算,再将计算结果分发给邻居。
  • 迭代:计算过程一直持续到邻居之间无更多信息交换为止。
  • 自我终结:算法能自行停止。
  • 异步:不要求所有节点相互之间步伐一致地操作。
Bellman-Ford方程

动态规划思想

dx (y):=从x到y最短路径的费用(距离)

image-20210112092153202
举例
image-20210112092639919

重点:结点获得最短路径的下一跳,该信息用于转发表。

DV算法思想

核心思想:

  1. 每个结点不定时地将其自身的DV估计发送给其邻居

  2. 当x接收到邻居的新的DV估计时,即依据B-F更新其自身的距离向量估计:

    image-20210112093421008
  3. Dx (y)将最终收敛于实际的最小费用 dx (y)

Dx (y) = 从结点x到结点y的最小费用估计

  • x维护距离向量(DV): Dx = [Dx (y): y є N ]

结点x:

  • 已知到达每个邻居的费用: c(x,v)

  • 维护其所有邻居的距离向量: Dv = [Dv (y): y є N ]

DV算法特征
异步迭代分布式
引发每次局部迭代的因素:每个结点只当DV变化时才通告给邻居
局部链路费用改变,来自邻居的DV更新邻居在必要时(其DV更新后发生改变)再通告它们的邻居
image-20210112094003443
DV算法过程描述与实例
结点x的选路表

节点x选路表(距离表):

列:所有目的节点

行:该节点的距离向量Dx和其邻居的距离向量Dv

image-20210112094731705
算法过程

初始化

image-20210112095801259

循环

image-20210112095940265
链路费用改变对算法影响
  • 结点检测本地链路费用变化

  • 更新路由信息,重新计算距离向量

  • 如果DV改变,通告所有邻居

链路费用减少的好消息传的快

链路费用增加的坏消息传的慢

某链路费用减少

好消息能在网络中迅速传播

image-20210112100734665
  • t0:y 检测到x的链路费用从4变为1,更新其距离向量,并通知其邻居z; Dy(x) =1
  • t1:z收到来自y的更新报文,更新自己的距离表,此时*到节点x的最低费用减为2,*并通知其邻居y;Dz(x) =2
  • t2:y收到来自z的更新报文,并更新自己的距离表,此时到*节点x的最低费用不变仍为1。*不发送更新报文,算法静止。
  • x与y之间费用减少,DV算法只需要2次迭代到静止状态
某链路费用增加

无穷计数(count to infinity)

坏消息传得慢

image-20210112101009049 image-20210112101055862
  • 产生**“选路回环”**:为到达x, y通过z选路,z又通过y选路。
    即目的地为x的分组到达y或z后,将在这两个节点之间不停地来回反复,直到转发表发生改变为止
毒性逆转

毒性逆转(poisoned reverse)

避免出现选路回环现象使得坏消息能迅速传播。

局限

三个或更多节点的回路:毒性逆转技术检测不到; 因此, “不可计数问题”也未解决。

image-20210112105115647

基本思想

如果一个结点(e.g. Z)到达某目的(e.g.X)的最小费用路径是通过某个邻居(e.g.Y),则:

  • 通告给该邻居结点到达该目的的距离为无穷大

例子:z到x

image-20210112104018300

过程描述:

image-20210112105335653
定义最大度量**(maximum metric)**

定义一个最大的有效费用值,如15跳步,16跳步表示∞

image-20210112104928583

LS与DV算法比较

比较方面LS算法DV算法
每个节点与所有其他节点广播交流,只告知与其直接相连链路的费用。每个节点只与邻居互相交流,得到邻居的新费用,并告知邻居自己的当前最低费用

| 报文复杂性 | 知道网络每条链路的费用,需发送O(nE)个报文;当一条链路的费用变化时,必须通知所有节点 | 迭代时,在两个直接邻居之间交换报文
收敛时间受许多因素影响;当链路费用改变时,只有该链路相连的节点的最低费用路径发生改变时,才传播已改变的链路费用。 |
| 收敛速度 | 需要O(nE)个报文和O(n2)的搜寻。 | 收敛较慢。可能会遇到选路回环,或计数到无穷的问题。 |
| 健壮性:当一台路由器发生故障、操作错误或受到破坏时 | 路由器向其连接的一条链路广播不正确费用。路由计算基本独立(仅计算自己的转发表),有一定健壮性。 | 一个节点可向任意或所有目的节点发布其不正确的最低费用路径。
一个节点的计算值会传递给它的邻居,并间接地传递给邻居的邻居。
一个不正确的计算值会扩散到整个网络。 |

层次路由

按区域或自治系统的形式组织路由器。将一个大的系统划分成若干小系统(自治系统),自治系统之间再互连。

将任意规模网络抽象为一个图计算路由-过于理想化

  • 标识所有路由器
  • 扁平网络

实际网络中不可行。

自治系统等概念
自治系统AS(autonomous systems)按区域划分的系统。每个AS由一组在相同管理者控制下的路由器组成。
同一AS内的路由器运行相同的路由协议(算法)自治系统内部路由协议(“intra-AS” routing protocol);相互拥有信息。
不同自治系统内的路由器可以运行不同的AS内部路由协议
网关路由器(gateway router)位于AS“边缘”;通过链路连接其他AS的网关路由器
路由器转发表由AS内部选路协议和AS间选路协议产生。
AS之间的互联
image-20210112112912882
  • 自治系统内分别运行各自的内部选路协议
  • 自治系统间运行AS间选路协议。

因特网的选路

内部网关协议IGP
RIP路由信息协议(Routing Information Protocol)基于距离向量的路由协议
OSPF开放最短路径优先(Open Shortest Path First)采用Dijkstra最短费用路径算法,是一种链路状态协议。
IGRP内部网关路由协议(Interior Gateway Routing Protocol) Cisco私有协议
外部网关协议
BGP边界网关协议基于距离向量的路由协议。相邻BGP路由器相互交换路径信息。

RIP

早于1982年随BSD-UNIX操作系统发布

适用于小规模路由网络。

距离向量路由算法

  • 距离度量:跳步数 (max = 15 hops), 每条链路1个跳步。
  • 每隔30秒,邻居之间交换一次DV,成为通告(advertisement)。
  • 每次通告:最多25个目的子网(IP地址形式)
image-20210112143628208

如果180秒没有收到通告→邻居/链路失效

  • 经过该邻居的路由不可用

    重新计算路由

  • 向邻居发送新的通告

  • 邻居再依次向外发送通告(如果转发表改变)

  • 链路失效信息能否快速传播到全网

    可能发生无穷计数问题

    • 毒性逆转技术用于预防乒乓(ping-pong)环路

    (另外:无穷大距离 = 16 hops)

RIP路由表是利用一个称作route-d (daemon)的应用层进程进行管理

  • 通告报文周期性地通过UDP数据报发送

    image-20210112144344101

OSPF

“开放”: 公众可用

采用链路状态路由算法

  • LS分组扩散(通告)
  • 每个路由器构造完整的网络(AS)拓扑图
  • 利用Dijkstra算法计算路由

OSPF通告中每个入口对应一个邻居

OSPF通告在整个AS范围泛洪

  • OSPF报文直接封装到IP数据报中

与OSPF极其相似的一个路由协议:IS-IS路由协议

OSPF优点
安全(security): 所有OSPF报文可以被认证(预防恶意入侵)
允许使用多条相同费用的路径 (RIP只能选一条)
对于每条链路,可以针对不同的TOS设置多个不同的费用度量 (e.g., 卫星链路可以针对“尽力”(best effort) ToS设置“低”费用;针对实时ToS设置“高”费用)
集成单播路由与多播路由:多播OSPF协议(MOSPF) 与OSPF利用相同的网络拓扑数据
OSPF支持对大规模AS分层(hierarchical)
OSPF结构

两级分层:局部区(Area),主干区(Backbone)。

image-20210112145519099
内部路由器IR(Internal Routers)区边界路由器(Area Border Routers)主干路由器(Backbone Routers)AS边界路由器(AS boundary routers)
链路状态通告只限于区内"汇总"到达所在区网络的距离,通告给其他边界路由器在主干区内运行OSPF路由算法连接其他AS
每个路由器掌握所在区的详细拓扑
只知道去往其他区网络的“方向” (最短路径)

BGP协议

边界网关协议BGP (Border Gateway Protocol):事实上的标准域间路由协议

相邻BGP路由器相互交换路径信息。

将Internet “粘合”为一个整体的关键

BGP为每个AS提供了一种手段:

  • eBGP: 从邻居AS获取子网可达性信息
  • iBGP: 向所有AS内部路由器传播子网可达性信息
  • 基于可达性信息与策略,确定到达其他网络的 “好”路径

容许子网向Internet其余部分通告它的存在:“我在这儿!

BGP基础
BGP会话(session)两个BGP路由器 (“Peers”)交换BGP报文
通告去往不同目的前缀*(prefix)*的路径 (“路径向量(path vector)”协议)
报文交换基于半永久的TCP连接
BGP报文OPEN: 与peer建立TCP连接,并认证发送方
UPDATE: 通告新路径 (或撤销原路径)
KEEPALIVE: 在无UPDATE时,保活连接;也用于对OPEN请求的确认
NOTIFICATION: 报告先前报文的差错;也被用于关闭连接

广播和多播

image-20210112154246965

多播特性

向多个接收方发送相同的数据应用因特网组管理协议IGMP
更好的带宽利用率视频/音频广播 (电视,无线电类)Internet Group Management Protocol
较少的主机/路由器处理视频会议
更快的参与实时新闻分发
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fire-From

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值