计算机网络-第四章 网络层 下

计算机网络-第四章 网络层 中

文章目录

4.6 互联网的路由选择协议

4.6.4 外部网关协议 BGP

在这里插入图片描述

  • BGP 是不同自治系统的路由器之间交换路由信息的协议。
  • BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。
  • 可以将 BGP-4 简写为 BGP。

1. 协议 BGP 的主要特点

  • 用于自治系统 AS 之间的路由选择。
  • 只能是力求选择出一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由
    1. 互联网的规模太大,使得自治系统AS之间路由选择非常困难。
    2. 自治系统AS之间的路由选择必须考虑有关策略。
  • 采用了路径向量 (path vector) 路由选择协议。

BGP 发言者 (BGP speaker)

  • 在一个自治系统 AS 中有两种不同功能的路由器,即边界路由器(或边界网关)和内部路由器。在这里插入图片描述
eBGP 连接和 iBGP 连接

在这里插入图片描述

  • 在 AS 之间, BGP 发言者在半永久性 TCP 连接(端口号为179)上建立 BGP 会话(session)。这种连接又称为 eBGP 连接。
  • 在 AS 内部,任何相互通信的两个路由器之间必须有一个逻辑连接(也使用 TCP 连接)。AS 内部所有的路由器之间的通信是全连通的。这种连接常称为 iBGP 连接。
  • eBGP (external BGP) 连接:运行 eBGP 协议,在不同 AS 之间交换路由信息。
  • iBGP (internal BGP) 连接:运行 iBGP 协议, 在 AS 内部的路由器之间交换 BGP 路由信息。
IGP、iBGP 和 eBGP 的关系

在这里插入图片描述

  • 在 AS 内部运行
    • 内部网关协议 IGP(可以是协议 OSPF 或 RIP)。
    • 协议 iBGP。
  • 在 AS 之间运行
    • 协议 eBGP。
eBGP 和 iBGP
  • 同一个协议 BGP(使用的报文类型、使用的属性、使用的状态机等都完全一样)。
  • 但它们在通报前缀时采用的规则不同
    • 在 eBGP 连接的对等端得知的前缀信息,可以通报给一个 iBGP 连接的对等端。反过来也是可以的。
    • 但从 iBGP 连接的对等端得知的前缀信息,则不能够通报给另一个 iBGP 连接的对等端。
      在这里插入图片描述
  • R3 从 eBGP 连接的对等端 R4 得到的前缀信息可以通报给 iBGP 连接的对等端 R1 或 R2。
  • R3 从 iBGP 连接的对等端 R1 和 R2 得到的前缀信息可以通报给 eBGP 连接的对等端 R4。
  • 但 R3 从 iBGP 连接的对等端 R1 得到的前缀信息不允许再通报给另一个 iBGP 连接的对等端 R2。
BGP 路由信息
  • BGP 路由 = [ 前缀, BGP属性 ] = [ 前缀, AS-PATH, NEXT-HOP ]
    • 前缀:指明到哪一个子网(用 CIDR 记法表示)。
    • BGP 属性:最重要的两个属性是
      • 自治系统路径 AS-PATH
      • 下一跳 NEXT-HOP。
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述
  • AS2 可经 IP3a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3a]
  • 路由 1:AS1 可经 IP2a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS2 AS3, IP2a]
  • 路由2:AS1 可经 IP3c 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3c]
  • 路由器 R1a 的转发表中,沿 BGP 路由 1 到达前缀 X 的项目是
    (匹配前缀X,下一跳路由器 R1b)或(匹配前缀X,转发接口 0)。

3. 三种不同的自治系统 AS

在这里插入图片描述

  • 末梢 AS:不会把来自其他 AS 的分组再转发到另一个 AS。必须向所连接的 AS 付费。
  • 多归属 AS (multihomed AS):同时连接到两个或两个以上的 AS。增加连接的可靠性。(不会为别人转发分组,只负责接收自己有关的分组)
  • 穿越 AS:为其他 AS 有偿转发分组。
  • 对等 AS:经过事先协商的两个 AS,彼此之间的发送或接收分组都不收费。
BGP 路由如何避免兜圈子?

在这里插入图片描述

  • AS3 检查收到的 BGP 路由的 AS-PATH 中已经有了自己,立即删除掉这条路由,从而避免兜圈子路由的出现。
  • 请记住:在属性 AS-PATH 中,不允许出现相同的 AS 号。

4. BGP 的路由选择

  • 本地偏好 (local preference) 值最高的路由 (默认值=100)
  • AS 跳数最小的路由
  • 使用热土豆路由选择算法(分组在 AS 内的转发次数最少)
  • 路由器 BGP ID 数值最小的路由。具有多个接口的路由器有多个 IP 地址,BGP ID 就使用该路由器的 IP 地址中数值最大的一个。
本地偏好 (local preference) 值最高

在这里插入图片描述

  • AS1 选择通过路由器 R1d 到达 X 的 BGP 路由
AS 跳数最小

在这里插入图片描述

  • AS1 选择通过路由器 R1c 到达 X 的 BGP 路由
  • 但事实上,分组在 AS4 中反而要经过更多次数的转发。
  • 说明协议 BGP 不存在真正的最佳路由选择。
热土豆路由选择算法

在这里插入图片描述

  • R1a 选择 R1c 作为离开 AS1 的最佳选择,其 BGP 转发表中对应的项目应当是:(匹配前缀 X,下一跳路由器 R1c)。
  • R1b 选择 R1d 作为离开 AS1 的最佳选择,其 BGP 转发表中对应的项目应当是:(匹配前缀 X,下一跳路由器 R1d)。
路由器BGP标识符
  • 在BGP进行交互的报文中,共首部有一4字节的字段,叫作BGP标识符,记为BGPID。这个字段被赋予一个无符号整数作为运行BGP的路由器的唯一标识符。具有多个接口的路由器有多个IP地址。BGPID就使用该路由器的IP地址中数值最大的一个。

5. BGP-4 的四种报文

  • OPEN (打开)
    • 用来与相邻的另一个 BGP 发言者建立关系,使通信初始化。
  • UPDATE (更新)
    • 用来通告某一路由的信息,以及列出要撤销的多条路由。
    • 撤销路由可以一次撤销许多条,但增加新路由时,每个更新报文只能增加一条。
  • KEEPALIVE (保活)
    • 用来周期性地证实邻站的连通性。
    • 周期性地交换KEEPALIVE报文
      • KEEPALNE报文只包含BGP报文的通川订部
  • NOTIFICATION (通知)
    • 用来发送检测到的差错。
BGP 报文具有通用首部

在这里插入图片描述

4.6.5 路由器的构成

  • 路由器工作在网络层,用于互连网络。
  • 是互联网中的关键设备。
  • 路由器的主要工作:转发分组
    把从某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。

1. 路由器的结构

在这里插入图片描述

“转发”和“路由选择”的区别
  • 转发
    • 根据转发表将用户的 IP 数据报从合适的端口转发出去。
    • 仅涉及到一个路由器。
    • 转发表是从路由表得出的。
    • 转发表必须包含完成转发功能所必需的信息,每一行必须包含从要到达的目的网络到输出端口和某些 MAC 地址信息(如下一跳的以太网地址)的映射。
  • 路由选择
    • 按照路由选择算法,根据网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个的路由表。
    • 涉及到很多路由器。
    • 路由表一般仅包含从目的网络到下一跳(用 IP 地址表示)的映射
输入端口对线路上收到的分组的处理

在这里插入图片描述

输出端口将交换结构传送来的分组发送到线路

在这里插入图片描述

2. 交换结构

  • 常用交换方法有三种:通过存储器、通过总线、通过纵横交换结构。
    在这里插入图片描述
通过存储器
  • (1) 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
  • (2) 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
  • (3) 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率(因为需要读和写))一定小于 M/2。
    在这里插入图片描述
通过总线
  • (1) 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
  • (2) 当分组到达输入端口时若发现总线忙,则被阻塞而不能通过交换结构,并在输入端口排队等待。
  • (3)因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。

在这里插入图片描述

通过纵横交换结构 (crossbar switch fabric)
  • 常被称为互连网络 (interconnection network)。
  • (1) 它有 2N 条总线,控制交叉节点可以使 N 个输入端口和 N 个输出端口相连接。
  • (2) 当输入端口收到一个分组时,就将它发送到水平总线上。
  • (3) 若通向输出端口的垂直总线空闲,则将垂直总线与水平总线接通,把该分组转发到这个输出端口。若输出端口已被占用,分组在输入端口排队等待。
  • 特点:是一种无阻塞的交换结构,分组可以转发到任何一个输出端口,只要这个输出端口没有被别的分组占用。
    在这里插入图片描述

4.7 IP 多播

4.7.1 IP 多播的基本概念

  • 1988 年,Steve Deering 首次提出 IP 多播的概念。
  • 多播 (multicast):以前曾译为组播
  • 目的:更好地支持一对多通信。
  • 一对多通信:一个源点发送到许多个终点。

多播可大大节约网络资源

在这里插入图片描述
在这里插入图片描述

IP 多播

  • 在互联网上进行多播就叫做 IP 多播
  • 互联网范围的多播要靠路由器来实现。
  • 能够运行多播协议的路由器称为多播路由器 (multicast router)。
  • 多播路由器也可以转发普通的单播 IP 数据报。
  • 从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On the InterNEt)。

多播 IP 地址

  • 在 IP 多播数据报的目的地址需要写入多播组标识符
  • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。
    地址范围:224.0.0.0 ~ 239.255.255.255
  • 每一个 D 类地址标志一个多播组。
  • 多播地址只能用于目的地址,不能用于源地址。

多播数据报

  • 多播数据报和一般的 IP 数据报的区别
    • 目的地址:使用 D 类 IP 地址。
    • 协议字段 = 2,表明使用网际组管理协议 IGMP。
  • 尽最大努力交付,不保证一定能够交付多播组内的所有成员。
  • 对多播数据报不产生 ICMP 差错报文。在 PING 命令后面键入多播地址,将永远不会收到响应。

4.7.2 在局域网上进行硬件多播

  • IANA 拥有的以太网地址块的高 24 位为 00-00-5E。
  • TCP/IP 协议使用的以太网地址块的范围是
    00-00-5E-00-00-00
    00-00-5E-FF-FF-FF
  • IANA 只拿出 01-00-5E-00-00-0001-00-5E-7F-FF-FF (223 个地址)作为以太网多播地址。或者说,在 48 位的多播地址中,前 25 位都固定不变,只有后 23 位可用作多播

D 类 IP 地址与以太网多播地址的映射关系

在这里插入图片描述

  • 收到多播数据报的主机,还要在 IP 层对 IP 地址进行过滤,把不是本主机要接收的数据报丢弃。

4.7.3 网际组管理协议 IGMP 和多播路由选择协议

1. IP 多播需要两种协议

  • 网际组管理协议 IGMP (Internet Group Management Protocol)
    • 使多播路由器知道多播组成员信息(有无成员)。
  • 多播路由选择协议
    • 使多播路由器协同工作,把多播数据报用最小代价传送给多播组的所有成员。
IGMP 使多播路由器知道多播组成员信息

在这里插入图片描述

  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
多播路由选择协议更为复杂

在这里插入图片描述

  • 路由器 R 不应当向网络 N3 转发多播组 M1 的分组,因为网络 N3 上没有多播组 M1 的成员。
  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),因为每一台主机可以随时加入或离开一个多播组。
  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,还要考虑这个多播数据报从什么地方来要到什么地方去。
  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员的接入网络。

2. 网际组管理协议 IGMP

  • 1989 年公布的 RFC 1112(IGMPv1)已成为了互联网的标准协议。
  • 1997 年公布的 RFC 2236(IGMPv2,建议标准)对 IGMPv1 进行了更新。
  • 2002 年 10 月公布了 RFC 3376(IGMPv3,建议标准)。
IGMP 使用 IP 数据报传递其报文
  • 在 IGMP 报文加上 IP 首部构成 IP 数据报。
  • 但 IGMP 也向 IP 提供服务。
  • 因此,不把 IGMP 看成是一个单独的协议,而是整个网际协议 IP 的一个组成部分。
IGMP 工作可分为两个阶段
  • 第一阶段:加入多播组。
  • 第二阶段:探询组成员变化情况。

第一阶段:加入多播组
在这里插入图片描述

  1. 当某个主机加入多播组时,该主机向多播组的多播地址发送 IGMP 报文,声明自己要成为该组的成员。
  2. 本地的多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。

第二阶段:探询组成员变化情况
在这里插入图片描述

  1. 本地多播路由器周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
  2. 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
  3. 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
IGMP 采用的一些具体措施,以避免增加大量开销
  • 所有通信都使用 IP 多播。只要有可能,都用硬件多播来传送。
  • 对所有的组只发送一个请求信息的询问报文。默认询问速率是每 125 秒发送一次。
  • 当同一个网络上连接有多个多播路由器时,能迅速和有效地选择其中的一个来探询主机的成员关系。
  • 分散响应。在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10 秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数。对应于最小时延的响应最先发送。
  • 采用抑制机制。同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就不再发送响应了。
  • 多播数据报的发送者和接收者都不知道(也无法找出)一个多播组的成员有多少,以及这些成员是哪些主机。

3. 多播路由选择

在这里插入图片描述

  • 实际上就是要找出以源主机为根节点的多播转发树
  • 不同的多播组对应于不同的多播转发树。
  • 同一个多播组,对不同的源点也会有不同的多播转发树。
  • M 个源,N 个多播组,需要 MⅹN 棵以源为根的多播转发树

  • 转发多播数据报时使用三种方法:
    (1) 洪泛与剪除
    (2) 隧道技术 (tunneling)
    (3) 基于核心的发现技术
(1) 洪泛与剪除
  • 适合于较小的多播组,所有组成员接入的局域网也是相邻接的。
  • 开始时,路由器转发多播数据报使用洪泛的方法(这就是广播)。
  • 为避免兜圈子,采用反向路径广播 RPB (Reverse Path Broadcasting) 的策略。

RPB 的要点:检查,转发
在这里插入图片描述

  • 检查数据报是否是从源点经最短路径传送来的,只要从本路由器寻找到源点的最短路径上的第一个路由器是否就是刚才把多播数据报送来的路由器。

RPB 的要点:形成以源为根节点的多播转发树
在这里插入图片描述

  • 如果存在几条同样长度的最短路径,选择 IP 地址最小的。
  • 最后就得出了以源为根节点的、用来转发多播数据报的多播转发树。

RPB 的要点:剪枝与嫁接

  • 剪枝:如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就把它和下游的树枝一起剪除
  • 嫁接:当某个树枝有新增加的组成员时,可以再接入到多播转发树上。
    在这里插入图片描述
    在这里插入图片描述
(2) 隧道技术 (tunneling)

在这里插入图片描述

(3) 基于核心的发现技术
  • 对于多播组的大小在较大范围内变化时都适合。
  • 对每一个多播组 G 指定一个核心 (core) 路由器,并给出它的 IP 单播地址
  • 核心路由器按照前面讲过的 2 种方法创建出对应于多播组 G 的转发树核心路由器为根节点)。
    • 为一个多播组构建一棵转发树,而不是为每个(源,组)组合构建一棵转发树。
    • 构建转发树开销较小,扩展性较好。
  • 如果有一个路由器 R1 向核心路由器发送数据报,那么它在途中经过的每一个路由器都要检查其内容。
  • 当数据报到达参加了多播组 G 的路由器 R2 时,R2 就处理这个数据报。
    • 如果 R1 发出的是一个多播数据报,其目的地址是 G 的组地址,R2 就向 G 的成员转发这个多播数据报。
    • 如果 R1 发出的数据报是一个请求加入多播组 G 的数据报,R2 就把这个信息加到它的路由中,并用隧道技术向 R1 转发每一个多播数据报的副本。
几种多播路由选择协议
  • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)。互联网上使用的第一个多播路由选择协议
  • 基于核心的转发树 CBT (Core Based Tree)
  • 开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)
  • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) 。唯一成为互联网标准的一个协议
  • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

4.8 虚拟专用网 VPN 和网络地址转换 NAT

4.8.1 虚拟专用网 VPN

  • 由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。
  • 考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。
  • 如果一个机构内部的计算机通信也是采用 TCP/IP 协议,那么这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。

本地地址与全球地址

  • 本地地址:仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。
  • 全球地址:全球唯一的 IP 地址,必须向互联网的管理机构申请。
  • 问题:如何区分本地地址和全球地址
  • 解决:RFC 1918 指明了一些专用地址 (private address)。
    • 专用地址只能用作本地地址,而不能用作全球地址。
    • 互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发

RFC 1918 指明的专用 IP 地址

在这里插入图片描述

专用网

  • 采用专用 IP 地址的互连网络称为专用互联网本地互联网,或更简单些,就叫做专用网
  • 专用 IP 地址也叫做可重用地址 (reusable address)。
虚拟专用网 VPN
  • 利用公用互联网作为本机构各专用网之间通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。
  • 专用网:指这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。
  • 虚拟:表示实际上没有使用通信专线,只是在效果上和真正的专用网一样。
虚拟专用网 VPN 的构建
  • 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密
  • 必须为每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

用隧道技术实现虚拟专用网

在这里插入图片描述
在这里插入图片描述

VPN 类型

  • 内联网 (intranet):同一个机构的内部网络所构成的 VPN。
  • 外联网 (extranet):一个机构和某些外部机构共同建立的 。
  • 远程接入 VPN (remote access VPN):允许外部流动员工通过接入 VPN 建立 VPN 隧道访问公司内部网络,好像就是使用公司内部的本地网络访问一样。

4.8.2 网络地址转换 NAT

  • 问题:在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?
  • 解决
    1. 再申请一些全球 IP 地址。但这在很多情况下是不容易做到的。
    2. 采用网络地址转换 NAT。这是目前使用得最多的方法。

网络地址转换 NAT (Network Address Translation)

  • 1994 年提出。
  • 需要在专用网连接到互联网的路由器上安装 NAT 软件。
  • 装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球 IP 地址。
  • 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。
网络地址转换的过程

在这里插入图片描述

  • 在内部主机与外部主机通信时,在 NAT 路由器上发生了两次地址转换:
    1. 离开专用网时:替换源地址,将内部地址替换为全球地址。
    2. 进入专用网时:替换目的地址,将全球地址替换为内部地址。
      在这里插入图片描述
网络地址转换 NAT
  • 当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时n 台主机接入到互联网。
  • 可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。
    • 通过 NAT 路由器的通信必须由专用网内的主机发起,因此,专用网内部的主机不能充当服务器用。

网络地址与端口号转换 NAPT

  • NAT 并不能节省 IP 地址。
  • NAPT 可以使多台拥有本地地址的主机,共用一个 全球 IP 地址,同时和互联网上的不同主机进行通信。
  • 使用运输层端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。
NAPT 地址转换表

在这里插入图片描述

  • NAPT 把专用网内不同的源 IP 地址都转换为相同的全球 IP 地址,将 TCP 源端口号转换为新的 TCP 端口号(互不相同)。
  • 收到从互联网发来的应答时,从 IP 数据报的数据部分找出运输层端口号,从 NAPT 转换表中找到正确的目的主机。

4.9 多协议标记交换 MPLS

在这里插入图片描述

  • MPLS (MultiProtocol Label Switching):互联网建议标准。
  • 多协议:在 MPLS 的上层可以采用多种协议。
  • 标签:MPLS 利用面向连接技术,使每个分组携带一个叫做标签 (label) 的小整数。标签交换路由器用标签值检索转发表,实现分组的快速转发。

  • MPLS 特点
    • MPLS 并没有取代 IP,而是作为一种 IP 增强技术
    • 特点:
      1. 支持面向连接的服务质量;
      2. 支持流量工程,平衡网络负载;
      3. 有效地支持虚拟专用网 VPN。

4.9.1 MPLS 的工作原理

在这里插入图片描述

  • 当网络很大时,查找路由表要花费很多时间。
  • 在出现突发通信时,缓存会溢出,引起分组丢失、传输时延增大和服务质量下降。

1. MPLS 基本工作过程

  • MPLS 特点:
    • 在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度标签。
    • 对打上标签的 IP 数据报在第二层(链路层)用硬件进行转发。
    • 采用硬件技术对打上标签的 IP 数据报进行转发就称为标签交换
    • 可以使用多种数据链路层协议,如 PPP、以太网、ATM 以及帧中继等。
  • MPLS 协议的基本原理
    在这里插入图片描述
  • MPLS 域
    • MPLS 域 (MPLS domain) :指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。
    • LSR 同时具有标记交换路由选择这两种功能。标记交换功能是为了快速转发,路由选择功能是为了构造转发表
  • MPLS 的基本工作过程
    1. 找出标签交换路径 LSP

      • 各 LSR 使用标签分配协议 LDP (Label Distribution Protocol) 交换报文,找出和标签相对应的标签交换路径 LSP (Label Switched Path)。整个标签交换路径就像一条虚连接一样。
    2. 打标签,然后转发。

      • 入口节点 (ingress node) 给进入 MPLS 域的 IP 数据报打上标签(实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标签进行转发。
      • 给 IP 数据报打标签的过程叫做分类 (classification)。
    3. 标签对换。
      在这里插入图片描述

      • 一个标签仅在两个 LSR 之间才有意义。
      • LSR 要做两件事:转发,更新标记。
      • 更新标记:把入标记更换成为出标记。称之为标签对换 (label swapping)。
    4. 去除标签。

      • 当分组离开 MPLS 域时,MPLS 出口节点 (egress node) 把分组的标签去除。
      • 把 IP 数据报交付给非 MPLS 的主机或路由器。
        • 这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing)
        • 与互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

2. 转发等价类 FEC

  • 给 IP 数据报打标签的过程叫做分类 (classification)。
    • 第三层(网络层)分类:只使用 IP 首部中的目的 IP 地址等。
    • 大多数运营商实现了第四层(运输层)分类:除了要检查 IP 首部外,运输层还要检查 TCP 或 UDP 端口号
    • 有些运营商则实现了第五层(应用层)分类:进一步地检查数据报的内部并考虑其有效载荷
  • 转发等价类 FEC (Forwarding Equivalence Class) :路由器按照同样方式对待的分组的集合。
  • 按照同样方式对待含义:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。
  • 例如:
    • (1) 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报;
    • (2) 所有源地址与目的地址都相同的 IP 数据报;
    • (3) 具有某种服务质量需求的 IP 数据报。
  • 划分 FEC 的方法不受限制,由网络管理员来控制。
  • 入口节点并不是给每一个 IP 数据报指派一个不同的标签,而是将属于同样 FEC 的 IP 数据报都指派同样的标签。
  • FEC 和标签是一一对应的关系。

FEC 用于负载平衡

在这里插入图片描述

  • 自定义的 FEC 可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

4.9.2 MPLS 首部的位置与格式

  • MPLS 不要求下层的网络都使用面向连接的技术。
  • MPLS 采用封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。
    在这里插入图片描述

MPLS 首部的格式

在这里插入图片描述

  • 给 IP 数据报打上标记就是在以太网帧首部和 IP 数据报首部之间插入一个 4 字节的 MPLS 首部。
  • (1) 标签值(占 20 位),可以同时容纳高达 220 个流(即 1048576 个流)。
  • (2) 试验(占 3 位)。保留用作试验。
  • (3) 栈S(占 1 位)。在有“标签栈”时使用。
  • (4) 生存时间 TTL(占 8 位),用来防止 MPLS 分组在 MPLS 域中兜圈子。

4.9.3 新一代的 MPLS

  • MPLS 存在的问题:
    • 控制协议(如 LDP)比较复杂,扩展性差,运行维护较困难。
    • 协议 LDP 无法做到基于时延或带宽等要求的流量调度。
    • 为灵活地选择流量的转发路径,还需要再使用资源预留协议 RSVP。但是:
      • RSVP 的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。
      • RSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP (Equal-Cost Multipath Routing) 。

段路由选择协议 SR

  • 新一代的 MPLS:段路由选择协议 SR (Segment Routing)。
  • 段 (segment):标签,是转发指令的一种标识符。
  • SR 工作原理
    • 基于标签交换,但不需要使用协议 LDP。
    • 由源节点为发送的报文指定路径,并将路径转换成有序的段列表 (Segment List),即 MPLS 标签栈,它被封装在分组首部。
    • 网络中的其他节点就执行首部中的指令(即标签)进行转发。

控制器

  • 即 SDN 控制器。负责:
    • 收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。
    • 给分组分配 SR 标签,指明分组从源点到终点的路径。
  • SR 向 IPv6 演进,这就是 SRv6。
  • SRv6 直接利用 IPv6 字段作为标签寻址 (Locator)。

4.10 软件定义网络 SDN 简介

  • 15
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值