计算机网络学习记录--第四章 网络层(下)


上一篇 : 第四章 网络层(上)
下一篇 :

第四章 网络层

4.5 互联网的路由选择协议

本节讨论几种常用的路由选择协议,也就是路由表中的路由是怎样得出的。

4.5.1 有关路由选择协议的几个概念

  1. 理想的路由算法
      路由选择协议的核心就是路由算法即需要何种算法来获得路由表中的各项目。理想的路由算法应该具有以下一些特点:
      (1)算法必须是正确的和完整的:保证能把分组送到目的主机。
      (2)算法在计算上应简单:不应该使通信量增加。
      (3)算法应能适应通信量和网络拓扑的变化
      (4)算法应具有稳定性。在通信量和网络拓扑相对稳定的情况下,路由算法应收敛于一个可以接受的解。
      (5)算法应该是公平的。不能仅仅为了某一用户端到端时延最小,而不考虑其他用户。
      (6)算法应是最佳的。应该能找出最好的路由,使得分组平均时延最小而网络吞吐量最大。当然,网络的可靠性有时更重要。
      路由选择是网络中所有结点共同协调工作的结果。路由选择的环境往往是变化的,并且是事先未知的。在网络发生拥塞时,还需要有能缓解这种情况的选择策略。
      从路由算法能否随网络的通信量或拓扑自适应的进行调整变化来划分,有两大类:静态路由选择策略 (简单的小网络)和 动态路由选择策略(较复杂的大网络)。
  2. 分层次的路由选择协议
      互联网采用的路由选择协议主要是自适应的(即动态的)、分布式路由选择协议。有以下两个原因:
      (1)互联网规模很大。让所有路由器知道网络怎样到达不切实际。
      (2)许多单位不愿意让外界了解自己单位网络布局细节和采用的路由选择协议,但还希望连接在互联网上。
      可以把整个互联网划分成许多小的自治系统(autonomous system),记为AS。自治系统AS是在单一技术管理下的一组路由器这些路由器使用一种自治系统内部的路由选择协议和共同的度量
      一个AS对其他AS表现出的是一个单一和一致的路由选择策略。一个大的ISP就是一个自治系统。
      使用分层次的路由选择方法,互联网把路由选择协议划分为两大类
      (1)内部网关协议IGP(interior gateway protocol)(域内路由选择):在一个自治系统内部使用的路由选择协议。如RIP协议和OSPF协议,协议的特点就是路由器要不断的和其他一些路由器交换路由信息。
      (2)外部网关协议EGP(external gateway protocol)(域间路由选择):源主机和目的主机处在一个不同的自治系统中,当数据报传到一个自治系统的边界时,就使用EGP协议将路由选择信息传递到另一个自治系统中。如BGP协议(边界网关协议)。
    内部与外部网关协议

4.5.2 内部网关协议RIP

1. 工作原理
  路由信息协议RIP(routing information protocol):一种分布式的基于距离向量的路由选择协议,优点是简单。
  距离的定义:从一路由器到直接连接的网络的距离定义为1(定义为0也是可以的)。从一路由器到非直接连接的网络的距离定义为所经过的路由器数加一,也称为跳数
  路由器 —>(1) 网络 <----> 路由器 <----> (1+1)网络 <----> 路由器 <----> (2+1)网络。
  RIP允许一条路径最多只包含15个路由器,当距离等于16时相当于不可达,因此只适用于小型互联网
  RIP会选择一条具有最少路由器的路由,哪怕还存在一条高速(低时延)但路由器较多的路由。
  RIP协议的特点:
  ①和哪些路由器交换信息?
    仅和相邻路由器交换信息。
  ②交换什么信息?
    交换的是路由表。“我到本自治系统中所有网络的(最短距离),以及每个网络应经过的下一跳路由器”。(目的网络,距离,下一条地址)
  ③在什么时候交换信息?
    按固定的时间间隔交换路由信息。(更新路由表)例如,每隔30秒,路由器根据收到的路由信息更新路由表。
  路由器在刚开始工作时(构造路由表),路由表是空的。然后路由器得出到直接相连的几个网络的距离(1),接着每个路由器只和数目非常有限的相邻路由器交换和更新路由信息,若干次更新后,路由表就建立好了。

2. 距离向量算法
  距离向量算法的基础是Bellman-Ford算法:设X是结点A到B的最短路径上的一个结点。若把A–>B拆成两段路径A—>X和X—>B,则每一段路径A—>X和X—>B也都分别是结点A到X和结点X到B的最短路径。
  对每一个地址为X的相邻路由器发送过来的RIP报文,进行以下步骤:
    ①下一跳地址都改为X,距离都加一
    ②若原来路由表中没有目的网络N,则将这一项添加到路由表中
    ③若原来路由表中有目的网络N,并且下一跳地址都是X,则更新成新的这一项。
    ④若原来路由表中有目的网络N,但下一跳地址不是X,则要比较距离,保留距离小的那一项。
    ⑤如果3分钟还没有收到相邻路由器的更新路由表,则把相邻路由器即为不可达的路由器,距离设置为16。(更新路由表)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  虽然所有路由器最终都拥有了整个自治系统的全局路由信息,但由于每个路由器的位置不同,它们的路由表当然也是不同的。

3. RIP协议的报文格式
  RIP协议使用运输层的用户数据报UDP进行传送,UDP的端口520。
RIP协议
  RIP协议由首部和路由部分组成。
  (1)首部占4个字节,命令字段指出报文的意义,例如,1表示求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由更新报文必为0是为了4字节的对齐
  (2)路由部分,每个路由信息需要20个字节。地址族标识符(地址类别)字段用来标志所使用的地址协议(IP地址为2)。路由标记填入自治系统号ASN(原来16位,现在已近扩展到了32位),考虑使RIP有可能收到本自治系统以外的路由选择。后面指出某个网络地址,该网络子网掩码,下一跳路由器地址以及到此网络的距离
  一个RIP报文最多可包括25个路由,因而RIP报文最大长度是4 + 20 * 25 = 504字节。如果超过,要再用一个RIP报文来传送
  RIP2具有简单的鉴别功能。若使用,则地址族标识符为全1(0xFFFF),路由标记写入鉴别类型,剩下16字节为鉴别数据。之后最多可以放置24个路由信息。
缺点
  RIP协议的缺点-----坏消息传播的很慢
    ①当网1出故障,路由器R1会将路由表中到达网1那一项,设置为不可达。
    ②这个不可达信息可能要经过30秒才能把更新信息发送给路由器R2。
    ③而此时R2可能已经把自己的路由表发送给了R1,使得R1会误认为:经过R2可以到达网1,并且距离加一。
    ④R1再把更新的信息发送给R2。认为通过R1能经过网1,距离加一。
    ⑤这样一来一回,直到距离增加到16,路由器才知道网1是不可达的,速度很慢
  总之,RIP协议实现简单,开销较小,最大距离为15,适合小规模的网络,坏消息传播的慢。对于较大规模的网络就应该使用OSPF了。

4.5.3 内部网关协议OSPF

1. OSPF协议的基本特点
  开放最短路径优先OSPF(open shortest path first)协议,原理简单,但实现复杂,使用了Dijkstra提出的最短路径算法SPF。
  OSPF最主要的特征就是使用分布式的链路状态协议,三个要点如下(和RIP都不一样):
  (1)向本自治系统的所有路由器发送信息。使用洪泛法(flooding):路由器通过所有输出端口向所有相邻路由器发送信息,每一个相邻路由器又再将此信息发往其所有的相邻路由器
  (2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。链路状态:说明了本路由器和哪些路由器相邻,以及该链路的“度量”(包括费用,距离,时延,带宽等,也称为“代价”)。
  (3)只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送次信息
  由于各路由器之间频繁的交换链路状态信息,因此所有的路由器都能最终建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图。之后每一个路由器会根据这个拓扑图构建自己的路由表(例如使用Dijkstra最短路径算法)。
  OSPF的更新过程收敛的快是其重要特点。
区域划分
  为了使OSPF能用于规模更大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域(area)。每个区域都有一个32位的区域标识符(点分十进制表示),每个区域内路由器最好不要超过200个。
  这样利用洪泛法交换链路状态信息的范围缩小到每一个区域,减少了网络通信量。
  有主干和其他区域,OSPF协议使用按层次结构的区域划分
  自治系统边界路由器:主干区域中有一个路由器专门和本自治系统外的其他自治系统交换路由信息。
  主干路由器:主干区域内的路由器。
  区域边界路由器:概括其他区域来的信息。
  OSPF直接用IP数据报传送,IP数据报首部协议字段是89,
在这里插入图片描述
  24字节首部各字段:
    版本;类型(五种的一种)
    分组长度:包括OSPF首部在内的分组长度,以字节为单位。
    路由器标识符:标志发送该分组的路由器的接口IP地址
    区域标识符(32位的点分十进制表示);检验和(检验分组中的差错);鉴别类型(0:不用,1:口令);鉴别(鉴别类型为1时,填入8个字符的口令)。
  OSPF的其他特点:
  (1)OSPF对于不同类型的业务可计算出不同的路由。允许管理员给每条路由指派不同的代价
  (2)多路径间负载均衡:可以将通信量分配给几条相同代价的路径。而RIP只能找到一条最短的路径。
  (3)所有再OSPF路由器交换的分组都具有鉴别功能,保证了可信赖路由器之间交换链路状态信息
  (4)OSPF支持可变长度的子网划分 和 无分类编址CIDR
  (5)OSPF让每一个链路状态都带上一个32位的序号,序号越大,状态就越新。同时 序号增长速度不得超过5秒每次,这样600年内不会产生重复号。

2. OSPF的五种分组类型
  ①问候分组:发现和维持邻站可达性。相邻路由器每隔10秒要交换一次问候分组,确认邻站可达(对相邻路由器的基本要求)。如果40秒没有收到某个相邻路由器发来的问候分组,则认为不可达,应立即修改链路状态数据库,并重新计算路由表
  ②数据库描述分组:向邻站给出自己链路状态数据库中,所有链路状态项目的摘要信息。
  ③链路状态请求分组:请求对方发送链路状态项目的详细信息。
  ④链路状态更新分组:OSPF协议最核心的部分,用洪泛法对全网更新链路状态,共有五种不同的链路状态。
  ⑤链路状态确认分组:对链路更新分组的确认。
  当一个路由器开始工作时(构造路由表),(1)通过问候分组得知有哪些相邻路由器在工作,以及将数据发往相邻路由器的代价。(2)与相邻路由器交换数据库描述分组,达到数据库同步。(3)路由器使用链路状态请求分组,向对方请求发送自己缺少的某些链路状态项目的详细信息。(4)通过一系列的这种分组交换,全网同步(也就是不同路由器的链路状态数据库内容 应该是一样的)的链路数据库就建立了。
  只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态(更新路由表)

在这里插入图片描述
  为了确保链路状态数据库与全网的状态保持一致,OSPF还规定每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。
  指定路由器(designated router):代表该局域网上的所有链路,向连接到该网络上的各路由器发送状态信息。

4.5.4 外部网关协议BGP

不同自治系统AS之间的路由选择为什么不能使用前面讨论的内部网关协议,如RIP或OSPF?
  (1)互联网规模太大,使得自治系统AS之间路由选择困难。
  (2)自治系统AS之间的路由选择必须考虑有关策略。比如有的自治系统不愿意让数据报通过自治系统。
在这里插入图片描述
  BGP采用路径向量(path vector)路由选择协议每个自治系统内部有一个路由器作为“BGP发言人”,发言人之间通过共享网络连在一起,要交换路由信息,就要先建立TCP连接(端口号为179,可靠连接),在此连接上交换BGP报文,以建立BGP会话(session),利用BGP会话交换路由信息。
  BGP发言人除了必须运行BGP协议,还要运行自治系统内部所使用的内部网关协议。
  BGP所交换的网络可达性信息,就是要到达某个网络锁经过的一系列自治系统(网络前缀表示)。交换路由信息的结点数量级是自治系统的个数,比自治系统中网络数少很多。
  路由表信息:(目的网络前缀,下一跳路由器,到达该目的网络所需要经过的自治系统序列
   BGP刚开始运行时(构造路由表),BGP邻站交换整个的BGP路由表。以后发生变化时,更新有变化的部分(更新路由表)
  BGP-4的四种报文:
    ①OPEN(打开)报文:与相邻BGP发言人建立关系,使通信初始化。
    ②UPDATE(更新)报文:通告某一条路由的信息,以及列出要撤销的多条路由。【BGP核心内容】
    ③KEEPALIVE(保活)报文:周期性的证实邻站的连通性。(一般每隔30秒)
    ④NOTIFICATION(通知)报文:发送检测到差错。
  向邻站发送OPEN(打开)报文 —> 如果邻站接受,就用KEEPALIVE(保活)报文响应 —>两个BGP发言人邻站关系建立 —>周期性交换KEEPALIVE(保活)报文。
tcp
  BGP报文的格式:通用首部,长度为19字节。首部的三个字段分别是:
    标记字段,16字节,鉴别收到的BGP报文;不使用鉴别全置为一。
    长度字段,包括通用首部在内的整个BGP报文长度,最小值19,最大值4096字节
    类型字段值为1到4,分别对应上述四种报文中的一种。

4.5.5 路由器的构成

1. 路由器的结构
  路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组(网络层的主要工作)
在这里插入图片描述
  路由器结构可以划分为两大部分:路由选择部分 和 分组转发部分。
  路由选择部分也叫控制部分,核心构件是路由选择处理机。主要任务是构造路由表,定期更新和维护路由表
  分组转发部分由三个部分组成,交换结构,一组输入端口,一组输出端口。
    交换结构又称交换组织,作用是根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构是一种在路由器中的网络
    输入输出端口,在路由器的线路接口卡上,物理层进行比特的接受,数据链路层按照协议接收传送分组的帧,分组去除首尾部送入网络层处理。 如果收到的是交换路由信息的分组(如RIP,OSPF分组),则送交路由选择处理机;如果收到的是数据分组,则按首部中的目的地址查找转发表,根据得出结果,找到合适的输出端口。

  谈论路由选择的时候,往往不区分转发表和路由表,都用路由表这一名词。
  事实上,路由表涉及很多路由器,路由器按照复杂的路由算法, 得出整个网络的拓扑变化情况,因而能动态改变所选择的路由,构造出整个路由表,路由表总是由软件实现的,路由表需要对网络拓扑变化的计算最优化;
  但转发只涉及到一个路由器,转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射,转发表可用特殊的硬件来实现,转发表的结构应当使查找过程最优化
  为了使交换功能分散化,往往把复制的转发表放在每一个输入端口,避免在路由器中的某一点出现瓶颈。

  线速:线路把分组传送到路由器的速率。
  分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理
    在输入端口,当一个分组正在查找转发表时,后边又紧跟着从这个输入端口收到另一个分组,这个后到的分组就必须在队列中排队等候,因而产生了一定的时延。
在这里插入图片描述
    在输出端口,当交换结构传送过来分组的速率超出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。
在这里插入图片描述
  因此,存储器的读写带宽要大于路由器的输入加输出的交换速率
    当队列的存储空间减少到零,后面的分组无法再进入队列,就会产生分组丢失设备或线路出故障也可能使分组丢失。

2. 交换结构
  [最早使用的路由器就是普通的计算机,将CPU作为路由选择处理机] 输入端口(IO设备) —> 中断方式通知处理机,分组复制到存储器 —> 提取目的地址,查找路由表 ,分组复制到合适的输出端口缓存 —> 输出端口(IO设备)
  (存储器的读写带宽要大于路由器的交换速率)
在这里插入图片描述
  (a)共享存储器,目的地址的查找和分组在存储器中的缓存都在输入端口进行。
  (b)共享总线,不需要路由选择处理机干预,同一时间只有一个分组在总线上传送,随着总线带宽的提高,这种方式也是可以的。
  (c)通过纵横交换结构进行交换,N个输入端口,N个输出端口,2N条总线。要看水平总线和垂直总线是接通还是断开的。

4.6 IPv6

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

4.6.1 IPv6的基本首部

  支持无连接传送,协议数据单元PDU称为分组(但书中仍采用数据报这一名词),基本首部40字节长。
  IPv6引进的主要变化
    ①地址空间增大到128位,比IPv4大了4倍。
    ②扩展的地址层次结构
    ③灵活的首部格式
    ④改进的选项,放在有效载荷中,首部长度是固定的。IPv4是放在扩展首部
    ⑤允许协议继续扩充
    ⑥支持即插即用(即自动配置)。不需要使用DHCP。
    ⑦支持资源的预分配
    ⑧首部改为8字节对齐
  IPv6分组由基本首部和有效载荷两部分组成。有效载荷允许零个或多个扩展首部,再后面是数据部分。
在这里插入图片描述
  与IPv4相比,IPv6首部中的某些字段进行了如下改进 :
    ①取消了首部长度字段,因为是固定的40字节
    ②取消了服务类型字段,因为优先级和流标号实现了这一个功能。
    ③取消了总长度字段,改用有效载荷长度字段
    ④取消了标识,标志和片偏移字段,这些功能包含在分片扩展首部
    ⑤TTL字段改成跳数限制字段,作用相同。
    ⑥取消了协议字段,改用下一个首部字段。
    ⑦取消了检验和字段网络层的差错检测可以精简掉数据链路层检测到差错的帧会丢弃;运输层,使用UDP检测出差错会丢弃,使用TCP检测出差错会重传,直到正确传送到目的进程为止。
    ⑧取消了选项字段,用扩展首部实现这个功能。
在这里插入图片描述
  IPv6基本首部中各字段的作用:
    ①版本(version),占4位。IPv6该字段为6
    ②通信量类(traffic class),占8位。区分不同IPv6数据报的类别或优先级。
    ③流标号(flow label),占20位。对实时音频/视频数据的传送特别有用,所有属于同一个流的数据报具有相同的流标号。【流:是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频/视频数据)。在这个流所经过的路径上的路由器都保证指明的服务质量】
    ④有效载荷长度,占16位扩展首部都算在有效载荷内,该字段最大值是64KB(65535字节)。
    ⑤下一个首部,占8位。当IPv6数据报没有扩展首部时,它的值指出基本首部后面的数据应交付IP层上面哪一个高层协议(6或17分别表示交付运输层TCP或UDP)。当出现扩展首部时,下一个首部字段的值就标识后面第一个扩展首部的类型
    ⑥跳数限制,占8位。每个路由器在转发数据报时将该值减一
    ⑦源地址,占128位。数据报发送端的IP地址。
    ⑧目的地址,占128位。数据报接收端的IP地址。

  IPv6扩展首部:
    把扩展首部留给路径两端的源点和终点的主机来处理,数据报途中经过的路由器不处理这些扩展首部。这样大大提高了路由器处理效率
    有六种扩展首部:(1)逐跳选项 (2)路由选择 (3)分片 (4)鉴别 (5)封装安全有效载荷 (6)目的站选项
    所有扩展首部的第一个字段都是8位的“下一个首部”字段,指出扩展首部后边的字段是什么,高层首部总是放在最后面。

4.6.2 IPv6的地址

  IPv6数据报的目的地址可以是一下三种基本类型地址之一:
    单播(unicast),传统的点对点通信。
    多播(multicast),一点对多点的通信。
    任播(anycast),任播的终点是一组计算机,但数据报只交付其中距离最近的一个。
  IPv6把实现IPv6的主机和路由器均称为结点

  IPv6中每个地址占128位,采用冒号十六进制记法(colon hexadecimal notation,简称为colon hex),每个16位的值用十六进制值表示,允许使用一次零压缩(一连串连续的零可以为一对冒号所取代)。
在这里插入图片描述
在这里插入图片描述
  CIDR的斜线表示法仍然可用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6.3 从IPv4向IPv6过渡

规定所有路由器在某一天都一律改用IPv6,是不可行的。IPv6过渡只能采用逐步演进的办法,同时还要使新安装的IPv6系统能够向后兼容。也就是说,IPv6系统必须能够接受和转发IPv4分组,并且能为IPv4分组选择路由。
1. 双协议栈
  使一部分主机(或路由器)装有双协议栈,记为IPv6/IPv4,表明具有两个IP地址。
  双协议栈的主机如何知道目的主机采用的是哪一种地址
    使用域名系统DNS来查询,若DNS返回的是IPv4,则双协议栈的源主机就使用IPv4地址;返回的是IPv6就使用IPv6地址。
双协议栈
  上图是采用双协议栈进行IPv4到IPv6的过渡,主机A和F都使用IPv6,中间B到E这段网络是IPv4网络,路由器B不能像C转发IPv6数据报,因为C使用IPv4协议。
  B是IPv6/IPv4路由器,它把IPv6数据报首部转换为IPv4数据报首部后,发送给C。C再转发到D。
  当D转发到IPv4网络的出口路由器E时,再恢复成原来的IPv6数据报。但是IPv6首部中的某些字段却无法恢复,比如流标号只能为空缺,这种信息的损失使用首部转换方法是不可避免的。

2. 隧道技术
在这里插入图片描述
  IPv6数据报要进入IPv4网络时,把IPv6数据报封装成IPv4数据报
  原来的IPv6数据报就好像在IPv4网络的隧道中传输,什么都没有变化。
  当IPv4数据报离开IPv4网络中的隧道时,再把数据部分交给主机的IPv6协议栈。

4.6.4 ICMPv6

  ICMPv6是面向报文的协议,利用报文来报告差错,获取信息,探测邻站和管理多播通信。
在这里插入图片描述
   ICMPv6就是原来IPv4中网际控制报文协议ICMP,地址解析协议ARP,网际组管理协议IGMP三个协议的合并
在这里插入图片描述

4.7 IP多播

4.7.1 IP多播的基本概念

  许多的应用需要由一个源点发送到许多个终点,即一对多通信。比如实时信息交付,软件更新,交互式会议等。
多播更节省资源
  在互联网范围上的多播要靠路由器实现,这些路由器必须增加一些能够识别多播数据报的软件。能够运行多播协议的路由器称为多播路由器(multicast router),多播路由器也可以转发普通的单播IP数据报。
  多播主干网MBONE(multicast backbone on the Internet):可以把分组传播给地点分散但属于一个组的许多台主机。
  IP多播:在互联网上进行多播。IP多播所传送的分组需要使用多播IP地址

  如果某台主机现在想接收某个特定多播组的分组,那么怎样才能使这个多播数据报传送到这台主机
    分析:多播数据报的目的地址肯定不能写这台主机的IP地址,写入的是多播组的标识符所以主机的IP地址肯定要和这个多播组的标识符关联起来。(个人理解是4.7.2联系到硬件地址,虽然可能有不同的IP多播地址映射到相同的硬件多播地址,但是收到多播数据报的主机,可以在IP层利用软件进行过滤)
    多播组的标识符就是IP地址中的D类地址,前四位是1110,因此D类地址范围是224.0.0.0到239.255.255.255,共可标志2^28个多播组,超过2.6亿。多播地址只能用于目的地址,不能用于源地址。
    多播数据报“尽最大努力交付”,不保证一定能够交付多播组内所有成员。首部中的协议字段是2,表明使用网际组管理协议IGMP。不产生ICMP差错报文,若在ping命令后面键入多播地址,就永远不会收到响应。

  IP多播可以分为两种:(1)在局域网上进行硬件多播(互联网上进行多播的最后阶段) (2)在互联网的范围进行多播。

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

  互联网号码指派管理局IANA拥有的以太网地址块的高24位是:00-00-5E。
  以太网硬件地址字段中的第1字节的最低位为1时即为多播地址。这种多播地址数占IANA分配到的地址数的一半。
  因此IANA拥有的以太网多播地址的范围是从01-00-5E-00-00-00到01-00-5E-7F-FF-FF。
在这里插入图片描述
  不难看出,在每一个地址中,只有23位可用作多播,只能和D类IP地址中的23位有一一对应的关系。

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

1. IP多播需要两种协议
  在互联网上传送多播数据报,如果一个路由器连接的局域网上没有这个多播组的成员,则多播数据报就不应当传送到这个路由器。但路由器是怎样知道多播组的成员信息呢?这就要利用一个协议,网际组管理协议IGMP(Internet group management protocol)。
在这里插入图片描述

  IGMP协议让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格上说,是主机上的某个进程参加或退出了某个多播组。但它并不知道IP多播组包括的成员数以及成员分布在哪些网络上。
在这里插入图片描述
  仅仅有IGMP协议是不能完成多播任务的,连接在局域网上的多播路由器还必须和互联网上的多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要多播路由选择协议
  如上图所示,网络拓扑未发生变化,但多播转发必须动态的适应多播组成员的变化因为每台主机可以随时加入或离开一个多播组。e.g. 路由器R现在不应当向网络N3转发多播组①的分组,但是有可能主机G加入了多播组①,此时路由器R应当向网络N3转发多播组①的分组。
  多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,还要考虑这个多播数据报从什么地方来和要到什么地方去。e.g. A不是多播组②的成员,但是也可以向多播组发送多播数据报,那么路由器R就应当把多播数据报转发到N2和N3。而多播组②中的成员E和F,也可以互相发送数据报到对方网络。
  多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。e.g. 主机G没有参加任何多播组,却可以向任何多播组发送数据报,主机G上没有任何多播组的成员也是可以的。

2. 网际组管理协议IGMP
  IGMP使用IP数据报传递其报文。其工作可分为两个阶段
    ①当某台主机加入新的多播组时,该主机向多播组的多播地址发送一个IGMP报文,声明自己要成为该组成员IGMP报文路径为主机----多播路由器----多播组)。
    本地的多播路由器在收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给互联网上的其他多播路由器。
    ②组成员关系是动态的。本地多播路由器要周期性的探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员
    如果一个组,在经过几次的探询后,仍然没有一台主机响应,多播路由器就认为本网络上的主机,已经都离开了这个组,就不会将这个组的成员关系转发给其他的多播路由器。

  IGMP采用的一些具体措施:
    ①主机和多播路由器之间的所有通信都是使用IP多播。
    ②多播路由器在探询组成员关系时,是需要对所有组发送一个请求信息的询问报文。
    ③当同一个网络上连接有几个多播路由器时,迅速有效的选择其中一个来探询主机的成员关系。
    ④若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数(最长响应时间)。对应于最小时延的响应最先发送。
    ⑤只要有本组的其他主机对询问报文发送了响应,自己就可以不用再发送响应了。
    如果一台主机上有多个进程都加入了某个多播组,每个多播数据报只接收一个副本,要给每一个进程发送本地复制的副本。

3. 多播路由选择协议
多播路由选择实际上就是要找出以源主机为根结点的多播转发树。对不同的多播组,对应于不同的多播转发树,同一个多播组对不同的源点也会有不同的多播转发树。
(1)洪泛与剪枝
  适用于较小的多播组,所有组成员接入的局域网也是相邻接的
  开始用洪泛的方法转发多播数据报,为了避免兜圈子,采用了反向路径广播RPB(reverse path broadcasting)策略。
  得出用来转发多播数据报的多播转发树后,以后就按这个多播转发树转发多播数据报。
在这里插入图片描述
(2)隧道技术
  适用于多播组的位置在地理上很分散的情况
  当两个路由器之间的网络不支持多播,路由器就要对多播数据报进行封装,加上普通的单播数据报首部,通过隧道传送,到达目的路由器后,再把首部剥去。
在这里插入图片描述
(3)基于核心的发现技术
  对于多播组的大小在较大范围内变化时都合适
  每一个多播组有一个核心路由器,构建好转发树,针对接收到的多播数据报,会向其他组成员转发这个多播数据报;针对请求加入多播组的数据报,利用隧道技术将每一个多播数据报的副本转发给该路由器

  一些建议使用的多播路由选择协议:
    距离向量多播路由选择协议
    基于核心的转发树CBT
    开放最短通路优先的多播扩展MOSPF
    协议无关多播----稀疏方式 PIM-SM:协议无关表示,并不要求使用特定的单播路由选择协议,来与远程路由器相连。
    协议无关多播----密集方式 PIM-DM

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

4.8.1 虚拟专用网VPN(专用网之间,加密,隧道)

  本地地址:仅在本机构有效的IP地址。
  全球地址:全球唯一的IP地址。
  专用地址:只能用于一个机构的内部通信不能用于互联网上的主机通信。(只能用作本地地址)专用IP地址也叫可重用地址(reusable address)。
  在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
  三个专用地址块:
    (1)10.0.0.0 到 10.255.255.255(或记为10.0.0.0/8,又称为24位块)
    (2)172.16.0.0 到 172.31.255.255(或记为172.16.0.0,又称为20位块)
    (3)192.168.0.0 到 192.168.255.255(或记为192.168.0.0,又称为16位块)
  专用互联网(本地互联网):采用上边这样的专用IP地址的互连网络。

  当很大机构的许多部门分布的范围很广,部门之间相互交换信息有两种方法:
  (1)租用电信公司的通信线路,租金很高。
  (2)利用公用的互联网作为本机构各专用网之间的通信载体。这样的专用网叫做虚拟专用网VPN(virtual private network)。通过互联网传送的数据都必须加密

  可以使用IP隧道技术实现虚拟专用网
  如果某个机构在两个相隔较远的场所建立了专用网A和B,想要通过公用的互联网构成一个VPN
  每一个场所至少要有一个路由器具有合法的全球IP地址,路由器与互联网的接口地址必须是合法的全球IP地址,与专用网内部的接口则是专用网的本地地址。
在这里插入图片描述
  如果场所A的主机X要和场所B的主机Y通信,X将内部数据报发送到路由器R1,R1发现目的网络必须经过互联网才能到达,就把整个内部数据报加密,然后重新加上数据报的首部,封装成在互联网上发送的外部数据报。源地址是路由器R1的全球地址,目的地址是路由器R2的全球地址R2收到数据报后将数据部分取出再解密,交付主机Y
  内联网VPN(intranet VPN):所有专用网都是同一机构的。
  外联网VPN(extranet VPN):有外部机构(合作伙伴)加入进来。
  远程接入VPN(remote access VPN):外地工作的流动员工与本机构专用网之间的通信。

4.8.2 网络地址转换NAT(专用网与互联网,源地址转换,NAT地址转换表)

  专用网内部的一些主机,想和互联网上的主机通信,应该采取什么措施?
  将路由器装上NAT软件,叫做NAT路由器,至少有一个全球IP地址。
  使用本地地址的主机想要和外界通信时,要在NAT路由器上将其本地地址转换为全球IP地址,才能和互联网连接。
  NAT路由器收到互联网上主机B的IP数据报,要通过查找NAT地址转换表,将旧的目的地址改成新的主机 A 的本地IP地址。
在这里插入图片描述
  通过NAT路由器的通信必须是专用网内的主机发起,因此不能充当服务器用。如果由互联网发起,则NAT路由器在转换目的地址时,在NAT地址转换表中是无法查到本地地址的。
  当NAT路由器有n个全球地址时,专用网最多同时有n台主机接入到互联网。为了更加有效的利用NAT路由器上的全球IP地址,在NAT地址转换表加入运输层的端口号,可以使多个拥有本地地址的主机共用一个NAT路由器上的全球IP地址,从而可以同时和互联网上不同主机进行通信
  使用端口号的NAT叫做网络地址与端口号转换NAPT(network address and port translation)。(虽然IP地址相同,但是TCP端口号不同,因此根据不同端口号进行转换与查找)

4.9 多协议标记交换MPLS

  MPLS利用面向连接的技术,使每个分组都携带一个叫做标记的小整数。当分组到达标记交换路由器是,用标记来检索分组转发表,速度会快很多。
  MPLS是一种IP增强技术,有三方面特点:(1)支持面向连接的服务质量 (2)支持流量工程,平衡网络负载 (3)有效支持虚拟专用网VPN

4.9.1 MPLS的工作原理

1. 基本工作过程
  在转发时,不再上升到第三层(网络层)查找转发表,而是根据标记在第二层(数据链路层)用硬件进行转发,加快了速度。MPLS可使用多种链路层协议,如PPP,以太网,ATM以及帧中继等。
在这里插入图片描述
  (1)MPLS是面向连接的,如上图中的路径A->B->C->D(标记交换路径LSP,label switched path),路径上的第一个标记交换路由器LSR就根据IP数据报的初始标记确定了整个的标记交换路径。
  (2)打上标记(分类)实际上是插入一个MPLS首部,并按照转发表把它转发给下一个LSR。
  (3)一个标记仅仅在两个标记交换路由器LSR之间才有意义。LSR要做的两件事情:1.转发 2.更换新的标记转发表的内容:(入接口,入标记,出接口,出标记)
  (4)显示路由选择:由入口LSR确定进入MPLS域以后的转发路径。与每一个路由器逐跳选择路由 有很大区别。
2. 转发等价类FEC
  转发等价类FEC是MPLS的一个重要概念,是路由器按照同样方式对待IP数据报的集合。属于同样FEC的IP数据报都指派同样的标记FEC和标记是一一对应的关系
在这里插入图片描述
  上图(b)中,可以设置两种FEC,前一种FEC的路径设置为H1->A->B->C->H3,后一种的路径设置为H2->A->D->E->C->H4。这样就可以使网络负载较为均衡。
  网络管理员采用自定义的FEC就可以更好的管理网络的资源。这种均衡网络负载的做法称为流量工程TE(traffic engineering)或通信量工程

4.9.2 MPLS首部的位置与格式

  在加上MPLS首部的IP数据报 封装成以太网帧时,以太网的类型字段在单播的情况设置为8847,多播的情况设置为8848,这样就可以区分这个帧是否携带了MPLS标记。
在这里插入图片描述
  MPLS首部占4个字节,具体标记在“标记值”字段中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值