「生活可以更简单, 欢迎来到我的开源世界」
  1. 网络层提供的两种服务
  2. 网际协议IP
    1. 虚拟互连网络
    2. 分类的IP地址
    3. IP地址与硬件地址
    4. 地址解析协议ARP
    5. IP数据报的格式
    6. IP层转发分组的流程
  3. 划分子网和构造超网
    1. 划分子网
    2. 使用子网时分组的转发
    3. 无分类编址CIDR(构造超网)
  4. 网际控制报文协议ICMP
  5. 互联网的路由选择协议
    1. 内部网关协议RIP
      1. 距离向量算法
      2. RIP协议的报文格式
    2. 内部网关协议OSPF
    3. 外部网关协议BGP
    4. 路由器的构成
  6. IPv6
  7. IP多播
  8. 虚拟专用网VPN和网络地址转换NAT
  9. 多协议标记交换MPLS
第4章 网络层
2018-07-24
」 「

物理层:

网络层:

网络层提供的两种服务

image-20200728093740761

image-20200728093848515

TCP/IP体系的网络层提供的是数据报服务。

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一。

与IP协议配套使用的还有三个协议:

image-20200728094413197

将网络互连起来需要一些中间设备

当中间设备是转发器或网桥时,仅仅是扩大网络,从网络层的角度看仍然是一个网络。

虚拟互连网络

参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成一个虚拟互连网络:逻辑互连,物理异构。利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络

image-20200728095949054

互联网可以由多种异构网络互连组成

分类的IP地址

IP地址的编址方法经过三个历史阶段:

分类的IP地址就是将IP地址分为若干个固定类,每一类都由网络号和主机号组成,一台主机号在它网络号指明的网络范围内必须是唯一的,由此可见:一个IP地址在整个互联网范围内是唯一的

$IP地址 ::= {<网络号>, <主机号>}$

image-20200728101213049

image-20200728103151240

image-20200728104739564

image-20200728104751558

IP地址具有一些特点:

IP地址与硬件地址

物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址(因为由软件实现)。

image-20200728133142131

image-20200728133550813

地址解析协议ARP

ARP协议的作用:根据机器(主机或路由器)的IP地址,找出对应的硬件地址。

image-20200728134219604

每一台主机都有一个ARP告诉缓存,里面有本局域网上各主机和路由器的IP地址到硬件地址的映射表,存放已知的一些地址。

image-20200728150617878

既然网络链路层传送的帧是按照硬件地址寻址的,为什么还要使用抽象的IP地址,从而使用ARP协议?

答:全世界存在各式各样的网络,它们使用不同的硬件地址,要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。但IP编址解决了这个复杂的问题,连接到互联网的主机只需要各自拥有一个唯一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便。

IP数据报的格式

image-20200728154759740

IP层转发分组的流程

在互联网上转发分组时,是从一个路由器转发到下一个路由器。

在路由表中,每条路由最主要的是两个信息:

(目的网络地址, 下一跳地址)

根据目的网络地址来确定下一跳路由器,可得出:

  1. IP数据报最终一定可以找到目的主机所在目的网络上的路由器
  2. 只有到达最后一个路由器时,才试图向目的主机进行直接交付

互联网所有的分组转发都是基于目的主机所在的网络,但也允许对特定的目的主机指明一个路由,即特定主机路由

路由器还可采用默认路由(标记为0.0.0.0)以减少路由表所占用的空间和搜索路由表所用的时间。

IP数据报的首部没有存放“下一跳路由器的IP地址”,且首部的源IP地址和目的IP地址不变,路由器接收到数据报后从路由表得到下一跳路由器的IP地址,通过网络接口软件将其转换成硬件地址(ARP),并放在链路层的MAC帧的首部,根据该硬件地址寻找下一跳路由器。

路由表中能不使用IP地址直接使用硬件地址吗?

不行,使用抽象的IP地址目的是为了隐藏底层网络的复杂性而便于分析和研究问题,这样就不可避免的要付出些代价,如选择路由时的一些开销。

分组转发算法

  1. 从数据报首部提取目的主机的IP地址,得出目的网络地址
  2. 若是路由器直连的某个网络地址,则把数据报直接交付目的主机:将目的主机地址转换为硬件地址,把数据报封装成帧并发送)。否则就是间接交付,执行3。
  3. 若路由表中有目的地址的特定主机路由,则把数据报传送给路由表中指明的下一跳路由器。否则执行4。
  4. 若路由表中有到达目的网络的路由,则把数据报传送给路由表中指明的下一跳路由器。否则执行5。
  5. 若路由表中有一个默认路由,则把数据报传送给路由表中指明的下一跳路由器。否则执行6。
  6. 报告转发分组出错

划分子网和构造超网

划分子网

在ARPANET早期,两级IP地址的缺点:

1985年起,在IP地址中有增加了一个子网号字段,使两级IP地址变成三级IP地址,这种做法称为子网划分

划分子网基本思路:

划分子网只是把IP地址的主机号部分进行再划分,而不改变IP地址原来的网络号。

从IP数据报的首部无法看出源主机或目的主机所连接的网络是否使用了子网的划分,需要使用子网掩码,子网掩码32位对应IP地址的网络号(包括子网号)部分全为1,主机号部分全为0。将IP地址与子网掩码逐位相与(AND)可得出子网的网络地址。

子网掩码中网络号对应位的1一般是连续的。

好处:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位相与就立即得到网络地址来。以便路由器统一使用。

如果一个网络不划分子网,那么其子网掩码使用默认子网掩码:默认子网掩码中1的位置和IP地址中的网络字段(net-id)正好相对应。

子网掩码是一个网络或一个子网的重要属性。路由器和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,必须同时给出该网络的子网掩码。若干一个路由器连接在两个子网就拥有两个网络地址和两个子网掩码。

划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。

使用子网时分组的转发

使用子网划分后,路由表必须包含以下三项内容:目的网络地址子网掩码下一跳地址

划分子网情况下的分组转发算法:

  1. 从收到的数据报首部获取目的IP地址D
  2. 判断是否直接交付。对路由器之间相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址匹配,若匹配则直接交付(转换成帧);否则就是间接交付3
  3. 若路由器中有目的网络地址为D的特定主机路由,则把数据报传送给路由表中指明的下一跳路由器。否则执行4
  4. 对路由表中的每一行(三项内容),用其子网掩码和D逐位相与,其结果为N。若N与目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器。否则执行5
  5. 若路由器中有一个默认路由,则把数据报传送给路由表中指明的默认路由器。否则执行6
  6. 报告转发分组出错

无分类编址CIDR(构造超网)

使用变长子网掩码VLSM可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,正式名称是无分类域间路由选择CIDR

CIDR最主要的两个特点:

  1. CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而能更加有效地分配IPv4的地址空间,并且在新的IPv6使用之前容许互联网的规模继续增长
  2. CIDR把网络前缀都相同的连续IP地址组成一个CIDR地址块

CIDR把32位的IP地址划分为前后两个部分:前面部分是网络前缀,指明网络;后面部分用来指明主机。

CIDR使IP地址从三级编址又回到了两级编址,无分类的两级编址IP地址 ::= {<网络前缀>, <主机号>}

CIDR使用斜线记法,或称为CIDR记法,即IP地址后面加上斜线,然后写上网络前缀所占的位数。

CIDR使用32位的地址掩码,斜线记法中,斜线后面的数字就是地址掩码中1的个数。

由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,使得路由表中的一个项目可表示原来传统分类地址的很多个路由。路由聚合也称构成超网(每个CIDR地址块都包含了多个C类地址)。

路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。

使用CIDR可以更加有效地分配IPv4的地址空间,可根据客户的需要分配适当大小的CIDR地址块。网络前缀越短,其地址快所包含的地址数就越多

在三级结构IP地址中,划分子网是使网络前缀变长。

最长前缀匹配:使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由时可能会得到不止一个匹配结果。此时,应答从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体。

CIDR查找路由表的方法:

网际控制报文协议ICMP

为了更有效地转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP,ICMP运行主机或路由器报告差错情况和提供有关异常情况的报告。

ICMP是互联网标准协议,但不是高层协议,ICMP报文是装在IP数据报中,作为其数据部分,是IP层的协议。

image-20201005211720216

ICMP报文的种类:

image-20201005211953578

ICMP报文的代码字段是为了进一步区分某种类型中的几种不同情况,检验和字段用来校验整个ICMP报文(IP数据报首部的检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错)。

image-20201005212634356

如图,所有ICMP差错控制报文拥有同样的格式:

不应发送ICMP差错报告报文的几种情况:

常用的ICMP询问报文有两种:

ICMP的重要应用:

互联网的路由选择协议

从路由算法能否随网络的通信量或拓扑自适应地进行调整或变化来划分,有两大类:

互联网采用分层次的路由选择协议,其原因是:

自治系统AS是在单一技术管理下的一组路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。一个AS对其它AS表现出的是一个单一的和一致的路由选择策略。

互联网把路由选择协议划分为两大类:

自治系统之间的路由选择叫做域间路由选择,而自治系统内部的路由选择叫做域内路由选择

内部网关协议RIP

RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,最大的优点是简单。

RIP协议要求网络中的每一个路由器都要维护从它自己到其它每一个目的网络的距离记录(距离向量)。

RIP协议的“距离”也称为“跳数”,每经过一个路由器,跳数就增加1。RIP允许一条路径最多只能包含15个路由器,因此“距离“等于16时即相当于不可达。RIP只适用于小型互联网

RIP不能在两个网络之间同时使用多条路由,RIP选择一条具有最少路由器的路由(最短路由)。

RIP协议的特点:

在一般情况下,RIP协议可以收敛,并且过程较快。

”收敛“就是在自治系统中所有的结点都得到正确的路由选择信息的过程。

路由表中最主要的信息就是:到某个网络的距离(即最短距离),以及应经过的下一跳地址。

路由表更新的原则就是找出到每个目的网络的最短距离,这种更新算法又称为”距离向量算法”。

距离向量算法

每个路由表项目项目都有三个关键数据:<目的网络N,距离d,下一跳路由器X>。

对每个相邻路由器发送过来的RIP报文,进行以下步骤:

  1. 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目

    1. 把下一跳字段中的地址改为X
    2. 把所有的距离字段的值加一
  2. 对修改后的RIP报文中的每一个项目,进行以下步骤:

    若原来的路由表中没有目的网络N,则把该项目添加到路由表中

    否则:

    ​ 若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目

    ​ 否则:

    ​ 若收到的项目中的距离d小于路由表中的距离,则进行更新

    ​ 否则什么也不做

  3. 若3分钟还没有收到相邻路由表的更新路由表,则把此相邻路由器标记为不可达的路由器,即把距离置为16

  4. 返回

RIP协议的报文格式

RIP协议是应用层协议,使用运输层的用户数据报UDP进行传送(使用UDP的端口520)

image-20201022204132015

RIP报文由首部和路由部分组成:

一个RIP报文最多可包含25个路由,RIP报文的最大长度是$4+20\times25=504$字节

RIP协议的优点:实现简单、开销较小、收敛较块。

RIP协议的缺点:

内部网关协议OSPF

OSPF最主要的特征就是使用分布式的链路状态协议,与RIP相比,有三个要点不一样:

  1. 向本自治系统中所有路由器发送信息,使用洪泛法,RIP仅向相邻路由器发送信息
  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所指的的部分信息
  3. 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息

由于各个路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,在全网范围内是一致的(称为链路状态数据库的同步)。

RIP协议的每个路由器虽然知道所有的网络的距离以及下一跳路由器,但却不知道全网的拓扑结构。

OSPF的更新过程收敛得快是其重要优点。

为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域

划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,减少整个网络上的通信量。

区域内部的路由器只知道本区域的完整网络拓扑,而不知道其它区域 的网络拓扑情况。

OSPF使用层次结构的区域划分

OSPF是网络层协议,不用UDP而是直接用IP数据报传送(IP数据报首部协议字段值为89)。OSPF构成的数据报很短,可减少路由信息的通信量,不必将长的数据报分片传送。

OSPF分组使用24字节的固定长度首部。

image-20201022214046044

OSPF还有一些特点:

  1. OSPF允许管理员给每条路由指派不同的代价。OSPF对于不同类型的业务可计算出不同的路由
  2. 如果一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫做多路径间的负载均衡
  3. 所有在OSPF路由器之间交换的分组都具有鉴别的功能,因而保证了仅在可信赖的路由器之间交换链路状态信息
  4. OSPF支持可变长度的子网划分和无分类的编址CIDR
  5. 由于网络中的链路状态经常变化,因此OSPF让每个链路状态都带上一个32位的序号,序号越大状态越新。【OSPF规定,链路状态序号增长的速度不得超过每5秒钟1次,可保证600年内不产生重复号】

OSPF共有5种分组类型:

  1. 类型1,问候分组,用来发现和维持邻站的可达性
  2. 类型2,数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
  3. 类型3,链路状态请求分组,向对方请求发送某些链路状态项目的详细信息
  4. 类型4,链路状态更新分组,用洪泛法对全网更新链路状态
  5. 类型5,链路状态确认分组,对链路更新分组的确认

OSPF规定,每两个相邻的路由器每隔10秒钟交换一次问候分组,以便知道哪些邻站是可达的。

image-20201023145419320

网络运行过程中,只要有一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。

OSPF使用的是可靠的洪泛法:在收到更新分组后要发送确认(收到重复的更新分组只需要发送一次确认)。

image-20201023145840607

为了确保链路状态数据库与全网的状态保持一致,OSPF规定每隔一段时间要刷新一次数据库中的链路状态。

由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多,且没有“坏消息传得慢”的问题。

外部网关协议BGP

边界网关协议BGP力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

BGP采用了路径向量路由选择协议。

在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。一个BGP发言人与其它AS的BGP发言人要交换路由信息,就要先建立TCP连接(端口号为179),然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。

使用TCP连接能提供可靠的服务,也简化了路由选择协议。使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的邻站或对等站。

每个BGP发言人除了必须运行BGP协议外,还必须运行该自治系统使用的内部网关协议。

image-20201023162357292

BGP协议交换路由信息的结点数量级是自治系统个数的量级,比自治系统中的网络数少很多。

BGP支持无分类域间路由选择CIDR。

BGP刚运行时交换的是整个BGP路由表,但以后只需要在发生变化时更新有变化的部分,节省了网络带宽和减少路由器的处理开销。

RFC4217中规定了BGP-4的四种报文:

  1. OPEN(打开)报文,用来与另一个BGP发言人建立关系,使通信初始化
  2. UPDATE(更新)报文,用来通告某一路由的信息,以及列出要撤销的多条路由
  3. KEEPALIVE(保活)报文,用来周期性地保证邻站的连通性
  4. NOTIFICATION(通知)报文,用来发送检测到的差错

image-20201023164324908

路由器的构成

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组(网络层的主要工作)。

image-20201023171507916

图中输入和输出端口各有三个方框,用方框中的1、2、3分别代表物理层、数据链路层、网络层的处理模块。

整个路由器结构划分为两大部分:

image-20201023171846304

image-20201023171910571

image-20201025142348913

分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理,若分组处理速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面进入队列的分组被丢弃(droptail,弃尾)。

“转发”和“路由选择”的区别:

请注意“转发”和“路由选择”是有区别的。在互联网中,“转发”就是路由器根据转发表把收到的IP数据报从路由器合适的端口转发出去。“转发”仅仅涉及到一个路由器。但“路由选择”则涉及到很多路由器,路由表则是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,得出整个网络的拓扑变化情况,因而能够动态地改变所选择的路由,并由此构造出整个的路由表。路由表一般仅包含从目的网络到下一跳(用IP地址表示)的映射,而转发表是从路由表得出的。转发表必须包含完成转发功能所必需的信息。这就是说在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息(如下一跳的以太网地址)的映射。将转发表和路由表用不同的数据结构实现会带来一些好处,这是因为在转发分组时,转发表的结构应当使査找过程最优化,但路由表则需要对网络拓扑变化的计算最优化。路由表总是用软件实现的,但转发表则甚至可用特殊的硬件来实现。请读者注意,在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,而可以笼统地都使用路由表这一名词。

IPv6

解决IP地址耗尽的根本措施就是采用具有更大地址空间的新版本的IP,即IPv6。

IPv6仍支持无连接的传送,但将协议数据单元PDU称为分组,而不是IPv4数据报。

IPv6的主要变化:

  1. 更大的地址空间,IPv6把地址从IPv4的32位增大到了4倍,即增大到128位
  2. 扩展的地址层次结构
  3. 灵活的首部格式
  4. 改进的选项
  5. 允许协议继续扩充
  6. 支持即插即用(即自动配置)
  7. 支持资源的预分配
  8. IPv6首部改为8字节对齐,原来的IPv4是4字节对齐

IPv6数据报由两大部分组成:

image-20201025145841250

image-20201025145952981

RFC 2460定义了六种拓展首部:

数据报途中经过的路由器不处理扩展首部(逐跳选项扩展首部除外),大大提高了路由器的处理效率。

每个扩展首部的长度各不相同,都由若干个字段组成,但所有扩展首部的第一个字段都是8位的“下一个首部”字段。

当使用扩展首部时,应按以上先后顺序出现,高层首部总是放在最后面。

IPv6数据报的目的地址可以是以下三种基本类型地址之一:

IPv6把主机和路由器称为结点,一个结点可能有多个与链路相连的接口。

IPv6使用冒号十六进制记法,每个16位的值用十六进制值表示,各值之间用冒号分隔。

十六进制记法中,允许把数字前面的0省略,0000可省略前三个0;还可以零压缩,即一连串的0可以用一对冒号取代,但任一地址中只能使用一次零压缩。

image-20201025154936400

CIDR的斜线表示法仍然可用:

image-20201025155027723

image-20201025155104236

从IPv4向IPv6过渡只能采用逐步演进的办法,还必须使新安装的IPv6系统能够向后兼容,即IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。

两种向IPv6过渡的策略:

和IPv4一样,IPv6也不保证数据报的可靠交付,需要使用ICMP来反馈一些差错信息。新的版本称为ICMPv6,比ICMPv4要复杂得多。

image-20201025170416172

ARP和IGMP都已被合并到ICMPv6。

ICMPv6是面向报文的协议,利用报文来报告差错,获取信息,探测邻站或管理多播通信。

ICMPv6还增加了几个定义报文功能和含义的其它协议,我们把这些报文都列入ICMPv6的不同类别,因为这些报文都具有相同的格式,并且所有报文类型都由ICMPv6协议处理。

image-20201025170832353

ND和MLD协议是运行在ICMPv6协议之下的,邻站发现报文和组成员关系报文分别是在ND协议和MLD协议的控制下进行发送和接收的。

IP多播

在互联网上进行多播就叫做IP多播,IP多播所传送的分组需要使用多播IP地址

image-20201026105832780

多播数据报的目的地址一定不能写入主机的IP地址,应为不可能写下那么多的主机IP地址。在多播数据报的目的地址写入的是多播组的标识符,然后设法让加入这个多播组的主机IP地址与多播组的标识符关联起来。多播数据报首部的协议字段值是2,表明使用网际组管理协议IGMP。

多播组的标识符就是IP地址中的D类地址。

D类地址的前四位的1110,因此D类地址的范围是224.0.0.0239.255.255.255,D类地址可以标志$2^{28}$个多播组。

多播数据报是“尽最大努力交付”,不保证一定能够交付多播组的所有成员。

多播地址只能用于目的地址,而不能用于源地址。

多多播数据报不产生ICMP报文,若在PING命令后面键入多播地址,将永远不会收到响应。

IP多播可以分为两种:

IANA拥有以太网地址块的高24位,为00-00-5E

TCP/IP协议使用的以太网地址块的范围是从00-00-5E-00-00-0000-00-5E-FF-FF-FF

IANA拥有以太网组播地址的范围是从01-00-5E-00-00-0001-00-5E-7F-FF-FF

在每一个地址中,只有23位可用作多播,只能和D类IP地址的23位有一一对应关系。

image-20201026105848152

由于多播IP地址与以太网硬件地址的映射关系并不是唯一的,因此收到多播数据报的主机,需要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

IP多播需要两种协议:

IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲是主机的某个进程)参加或退出某个多播组。

多播转发必须动态地适应多播组成员的变化(网络拓扑并未发生变化)。

多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。

多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

IGMP的工作分为两个阶段:

  1. 第一阶段:当某台主机加入新的多播组时,该主机应向多播组的多播地址发送一个IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给互联网上的其它多播路由器
  2. 第二阶段:组成员的关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要有一台主机对某个组响应,那么多播路由器就认为这个组是活跃的

多播路由选择实际上就是要找出以源主机为根节点的多播转发树。在多播转发树上,每个多播路由器向树的叶节点方向转发收到的多播数据报,但多播转发树上的路由器不会收到重复的多播数据报(即多播数据报不应在互联网上兜圈子)。不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

多播路由选择协议在转发多播数据报时使用的三种方法:

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

RFC 1918指明了一些专用地址,这些地址只能用于机构内部通信,不能用于和互联网主机通信:

采用这样的IP地址的互联网称为专用互联网本地互联网,简称专用网

专用IP地址也叫做可重用地址

当同一个机构在不同地方的部门互相通信时(机构内部的通信),有两种方法:

image-20201027204028262

专用网内部的主机已经分配到本地IP地址,但又想要和互联网上主机通信,可以使用网络地址转换NAT,该方法需要在专用网连接到互联网的路由器上安装NAT软件。

装有NAT软件的路由器叫做NAT路哟去,它至少要有一个有效的外部全球IP地址。

image-20201027205036403

当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n台主机接入到互联网。

使用端口号的NAT也叫做网络地址与端口转换NAPT

多协议标记交换MPLS

MPLS利用面向连接技术,使每个分组携带一个叫做标记的小整数。当分组到达交换机(即标记交换路由器)时,交换机读取分组的标记,并用标记值来检索分组转发表。

MPLS作为一种IP增强技术,被广泛地应用在互联网中。

MPLS具有三个方面的特定:

MPLS给IP数据报打上标记,根据标记在第二层(链路层)用硬件进行转发,提高转发速率。

MPLS域是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持MPLS技术的标记交换路由器LSR。LSR同时具有标记交换和路由选择两项功能:

image-20201027211937988

转发等价类FEC:路由器按照同样的方式对的的IP数据报的集合。

image-20201027212123749

网络管理员采用自定义的FEC可以更好地管理网络的资源,这种均衡网络负载的做法也称为流量工程TE通信量工程

加了MPLS首部的IP数据报封装成以太网帧时,以太网的类型字段在单播的情况下设置为8847,在多播的情况下为8848,接收方可以用帧的类型来判决这个帧是否携带了MPLS标记(占4字节)。

image-20201027214838639

image-20201027214849945

<⇧>