第四章 网络层2

一、了解自治系统的概念,自治系统间和自治系统内部路由的区别

1.自治系统

自治系统 (Autonomous System, AS)由一个或者多个独立的管理实体控制的采用相同路由策略的网络和路由器组成

2.自治系统间和自治系统内部路由的区别

  • 自治系统内部选择各自的内部路由协议IGP
    • 可以采用不同的路由协议,可以采用不同的metric
  • 自治系统之间运行外部路由协议EGP
    • 将AS内部的网络汇集在一起发布到其他AS
    • 策略路由

二、链路状态路由

链路状态路由协议通告的的是链路状态而不是路由表。运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)

路由协议之后,生成自己的链路状态信息,此时不再通告路由信息,而是LSA。LSA描述了路由器接口的状态信息,例如接口的开销、连接的对象、带宽、对端ip、网络类型等。路由器之间都会交互·这种链路状态信息,所有路由器最后出现一个区域内完全相同的链路状态数据库,区域内部的每个路由器都有其他路由器的LSA,此时大家都有全部的LSA,LSA存放在数据库(LSDB),相当于每个路由器都知道别的链路情况

(一)掌握Dijkstra算法

1.基本思想

  1. 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算)。

  2. 此外,引进两个集合S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点s的距离)

  3. 初始时,S中只有起点s;U中是除s之外的顶点,并且U中顶点的路径是”起点s到该顶点的路径”。然后,从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 然后,再从U中找出路径最短的顶点,并将其加入到S中;接着,更新U中的顶点和顶点对应的路径。 … 重复该操作,直到遍历完所有顶点

2.操作步骤

  1. 初始时,S只包含起点s;U包含除s外的其他顶点,且U中顶点的距离为”起点s到该顶点的距离”[例如,U中顶点v的距离为(s,v)的长度,然后s和v不相邻,则v的距离为∞]。

  2. 从U中选出”距离最短的顶点k”,并将顶点k加入到S中;同时,从U中移除顶点k。

  3. 更新U中各个顶点到起点s的距离。之所以更新U中顶点的距离,是由于上一步中确定了k是求出最短路径的顶点,从而可以利用k来更新其它顶点的距离;例如,(s,v)的距离可能大于(s,k)+(k,v)的距离。

  4. 重复步骤(2)和(3),直到遍历完所有顶点。

(二)掌握链路状态路由算法的基本步骤,了解什么是链路状态分组LSP,了解为什么要进行以及如何进行可靠地扩散

1.链路状态路由算法

该算法的设计思路非常简单,对于每个路由器来说,需要完成以下步骤:

  1. 发现它的邻居节点们,了解它们的网络地址
  2. 设置到它的每个邻居的成本度量
  3. 构造一个分组,包含它所了解到的所有信息
  4. 发送这个分组给所有其他的路由器
  5. 计算到每个路由器的最短路径

实际上,该算法将完整的拓扑结构分发给了每一个路由器。然后每个路由器运行Dijkstra算法就可以找到从本地到每一个其他路由器的最短路径。

(1)发现邻居

当一个路由器启动时,它的第一个任务就是找出哪些路由器是它的邻居。为了实现这个目标,它只需要在每一条点到点线路上发送一个特殊的 HELLO数据包。线路另一端的路由器应该返回一个应答说明自己是谁。

(2)设置链路成本

为了寻求最短路径,链路状态路由算法需要每条链路以距离或成本度量。到邻居节点的成本可自动设置或由网络运营商配置的度量。一种常见的选择是使成本和带宽成反比。如果网络地理上分散,链路的延迟可以作为成本的组成部分。确定这种延迟的最直接的方法是通过线路给另一边发送一个特殊的 ECHO数据包,要求对方立即返回,通过测量往返时间再除以2,发送路由器可以得到一个合理的延迟估计值。

(3)构造链路状态包

该数据包的内容首先是发送方的标识符,接着是一个 序号(seq)年龄(age),以及一个 邻居列表,对于每个邻居同时要给出 到这个邻居的成本

构造链路状态包很容易。难得是确定什么时候构造数据包,一种做法是周期性的构造数据包。另一种做法是每当发生某些重要的事情时才创建数据包,比如当一条线路断掉或者一个邻居节点停机时,或者当它们重新恢复运行时,或当它们得特性发生了一定变化时。

(4)分发链路状态包

链路状态路由算法最技巧的部分在于分发路由状态数据包。首先,基本的思路是使用泛洪法将链路状态包分发给所有的路由器

为了控制泛洪规模,每个数据包都包含一个 序号(seq),序号随着每一个新数据包发出而注意递增。路由器记录下它所看到的所有(源路由器、序号)对。当一个新的链路状态数据包到达时,路由器检查这个新来的数据包是否已经出现在上述观察到的列表中。如果是一个新的数据包,则把它转发到除了入境路线之外的所有其他线路上。如果这是一个重复的数据包,则将它丢弃。如果数据包得序号小于当前所看到过得来自该源路由器得最大序列号,则将它作为过时数据包而拒绝接收,因为路由器已经有了更新得数据。

  • 问题一:序号绕回,可能会产生混淆。解决方案是使用一个32位得序列号,即使1S一个链路状态数据包,也要137年才能绕回,所以这种可能性可以忽略!
  • 问题二:序号被破坏了。比如发送方发送得序号是4,由于产生1bit错误,所以接收方接受的65540,那么,序号5-65540得数据包都将被作为过时数据包而拒绝接受。

所有这些问题的解决方案都一样:在每个数据包得序号后面包含一个 年龄(age) 字段,并且每秒钟将年龄减1,当年龄字段的值被减到0时,来自路由器的该信息将被丢弃。通常情况下,每隔一段时间,比如10s,一个新的数据包就会到来;所以只有当一个路由器停机时(或者6个连续的数据包被丢失,这种情况发生的可能性不大),路由器信息才会超时。在初始泛洪过程中,每个路由器也要递减age字段,这样可以确保没有数据包丢失,也不会无限制生存下去。

为了使得算法更为健壮。当一个链路状态数据包被泛洪到一个路由器时,它并没有立即被排入队列等待传输。相反,它首先被放到一个 保留区 中等待一段时间。如果在这个数据包被发出去之前,另一个来自同一个源路由器的链路状态数据包也到来了,那么就比较它们得序号,保留最新的包。为了防止线路产生错误导致丢包和错包,所有的链路状态数据包都要被确认。

(5)计算新路由
一旦路由器积累了全部的链路状态数据包之后,它就可以构造出完整的网络图,然后就可以在路由器本地运行Dijkstra算法,从而构造出从本地出发到所有可能目标的最短路径。这个算法的运行结果告诉路由器到达每个目的地能够走那条路径。这个信息被安装在路由表中。

2.链路状态分组LSP

链路状态分组LSP(Link State Packet):

  • 每个路由器周围的链路情况
  • 需要传播给所有路由器

网络的链路状态信息给出了该网络所连接的路由器的信息

3.可靠扩散

LSP的传播采用可靠扩散,即扩散给邻居时要求确认

当路由器S的LSP顺序号到达最大值时, 应等老的链路状态“过期” ,才能发送新的最小顺序号的LSP

  • 可通过扩散顺序号为最大值,但是age=0的LSA来清除老的LSP

节点间的路由信息交换采用确认机制: 扩散LSP时要求ACK

收到路由分组后不是马上扩散,而是等待一段时间,丢弃这段时间来的重复和过时的分组,减少负载开销

  • 路由器有k个邻居,对于要扩散的每个LSP,对于每个邻居,维护2个标记(共2k个标记),分别对应是否要SEND到该邻居,是否要发送ACK给该邻居
  • 路由器从X收到S的LSP时
    • 如果顺序号更新,则接受,保存LSP,设置ACK X,设置SEND给其它路由器
    • 如果更老,则忽略
    • 如果相等,则设置ACK X,清除SEND X
  • 轮流扫描ACK和SEND标志,发送实际的报文

(三)OSPF

Open Shortest Path Frist 开放式最短路径优先路由协议。采用的是链路状态路由算法,没有路由回环。

  1. 每个路由器通过泛洪链路状态通告(LSA)向外发布本地链路状态信息(例如使能 OSPF的端口,可到达的邻居以及相邻的网段等等)。
  2. 每一个路由器通过收集其它路由器发布的链路状态通告以及自身生成的本地链路状态通告,形成一个链路状态数据库(LSDB)。LSDB 描述了路由域内详细的网络拓扑结构。
  3. 所有路由器上的链路状态数据库是相同的。通过 LSDB,每台路由器计算一个以自己为根,以网络中其它节点为叶的最短路径树。
  4. 通过每台路由器计算的最短路径树得出了到网络中其它节点的路由表。

1.掌握点到点链路、广播链路如何转换为LSA

  • 点到点链路:连接两个路由器节点的双向边来表示
  • 末端网络(Stub network):路由器节点到网络节点的单向边
  • 多个路由器连接到广播网络
    • 一种选择是路由器之间的双向边
    • 引入网络节点,路由器节点通过双向边连接到网络节点,网络节点到路由器节点的边花费为0

LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。

在ospf中主要是通过泛洪LSA、同步LSDB来学习路由,达到全网互通的

链路状态通告(Link State Advertisement): 路由器周围的链路状况,路由器ID+顺序号+age + 链路信息

2.掌握广播链路上为什么需要选取路由器,选取路由器的基本功能

(1)广播链路上选取路由器

在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息.如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系.这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源.为解决这一问题,OSPF协议定义了指定路由器DR(DesignatedRouter),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去.

点到点链路上的邻居关系等同于邻接关系

广播链路上选取选取路由器DR(Designated Router),考虑DR可能出现故障,还会同时选取备份 选取路由BDR

只有DR和BDR与广播链路上的其他路由器有邻接关系

  • 链路状态信息只有在邻接关系的路由器间交换
  • 普通的节点在广播链路扩散LSA时首先传输给DR,然后由DR传输给所有OSPF路由器

(2)选取路由器的基本功能

1)DR产生所在网络的network-LSA。而不用每个相连的路由器都产生network-LSA。

2)与网络中其它所有的路由器建立邻接关系。减少链路状态数据库LSDB交互时的带宽和路由器开销。

3.掌握区域的概念,了解5种LSA的作用,掌握各种LSA的构造和扩散范围

(1)区域

OSPF的区域分为以下5种,不同类型的区域对由自治系统外部传入的路由信息的处理方式。

骨干区域( Backbone Area)

骨干区域是Area 0,是整个OSPF域的中心枢纽。一个OSPF域有且只能拥有一个 Area 0,所有的区域间路由必须通过Area0中转

常规区域( Normal Area)

所有的OSPF区域缺省情况下都是常规区域,当然, Area 0是常规区域中比较特殊的一个。

末梢区域(Stub Area)

末梢区域也被称为Stub区域,当一个非0常规区域只有单一的出口(例如该区域只有一个ABR 区域边界路由器area border router,或者区域内的路由器不需要根据特定的外部路由来选择离开区域的出口时,该区域可以被配置为Stub区域。

当一个区域被配置为Stub区域后,这个区域的ABR将阻挡Type-5 LSA进入该区域(禁止外部路由被发布到该区域),通过这种方式可减少区域内所泛洪的LSA数量,同时该区域的ABR自动下发一条使用Type-3 LSA描述的默认路由,使得区域内的路由器能够通过这条默认路由到达域外,因此既减小了区域内网络设备的路由表规模,又保证了其访问外部网络的数据可达性

在一个大量引入外部路由的OSPF网络中,将适当的区域配置为Stub区域可以极大地减小该区域内路由器的路由表规模,从而降低设备的资源消耗。另外,对于Stub区域而言,到达OSPF域内其他区域的路,由依然能够被注入,即ABR依然会将描述区域间路由的Type-3 LSA注入到Stub区域中。

非完全末梢区域(Not-So-Stubby Area)

NSSA (Not-So-Stubby Area)即非完全末梢区域,可以理解为Stub区域的变种,它拥有Stub区域的特点—阻挡Type-4及Type-5 LSA进入,从而在一定程度上减少区域内泛洪的LSA数量,同时它还有另一个特点,那就是允许该区域的路由器将少量外部路由引入OSPF,被引入的外部路由,以Type-7 LSA描述,并且这些Type-7 LSA只能够在当前的NSSA内泛洪,不允许直接进入Area0,为了使这些被引入NSSA的外部路由能让OSPF域内的其他区域学习到, NSSA的ABR会将Type-7 LSA转换成Type-5 LSA然后注入Areao,从而泛洪到整个OSPF域。

(2)LSA

ospf本质是通过lsa(链路状态通告)洪泛,将运行ospf域内的所有lsa存放到本地lsdb(链路状态数据库),然后通过spf(最短路径优先算法)计算出路由并加载到路由表中。

通过Type、Ls id和AdvRouter可以唯一的标识一条lsa。

类型 LS ID 通告者 传播范围 携带的信息
Type - 1LSA:Router 通告者 ospf域内所有运行ospf的设备的RID 单区域 本地接口直连的拓扑信息
Type - 2LSA:Network DR的接口IP MA网路中的DR的RID 单区域 单个MA网络的拓扑信息的补充
Type - 3LSA:Sum-net 路由网段 ABR,在经由其他ABR转发时会修改为新的ABR 单区域 其他区域的路由信息
Type - 5LSA:External(ase) 域外路由网段 ASBR ospf域内 域外路由
Type - 4LSA: Sum-Asbr(summary) ASBR的RID 和ASBR同区域的ABR,在经由其他ABR转发时修改为新的ABR 除ASBR所在区域外的OSPF单区域 ASBR的位置信息

(1)一类LSA是最重要的LSA,它携带着设备的直连接口的详细信息,网络内所有运行ospf的设备都需要发送并且只发送一条,它通过LINK描述接口,每一条LINK都是用来描述路由器的接口的连接情况,一个接口也可以使用多条LINK来进行描述。

(2)二类LSA是专门对MA(multi-access)多路访问网络的描述,由MA网络中的DR进行通告(一个MA网络中只需要一条2类LSA即可描述,避免重复更新)。

(3)ABR 区域边界路由器area border router在传递三类LSA时,会将通告者修改为自己,这样区域内的路由器就可以通过一类和二类的验算找到通告者。

(4)五类的通告者为ASBR(自治系统边界路由器),并在整个ospf域进行传播,经过ABR时不会修改通告者。

(5)由于五类ASBR在传递的时候不会修改通告者,但OSPF规定,所有传递路由的LSA信息必须经过拓扑信息(1类和2类LSA)的验算,而其他区域的设备无法通过拓扑信息验算到ASBR的位置,所以就有了四类LSA。四类LSA只携带通往ASBR的路由信息,LS ID为ASBR的RID,通告者为ABR,在通过下一个ABR设备时需要修改为新的ABR,这使得其他区域的设备可以西安通过拓扑信息验算到ABR的位置,将信息交由ABR转发给ASBR。

三、距离向量路由

距离向量路由算法是一种迭代的、异步的和分布式的算法。
(1)分布式:每个节点都从其直接相连邻居接受信息,进行计算,再将计算结果分发给邻居。
(2)迭代:计算过程一直持续到邻居之间无更多信息交换为止。
(3)异步:不要求所有节点相同之间步伐一致地操作。
(4)自我终结:算法能自行停止。

(一)掌握距离向量路由协议的基本工作过程,无穷计数问题

1.距离向量路由协议

对每个节点x
(1)在每个节点建立自己的距离向量表并初始化。
(2)在每个节点将自己维护的距离向量表向其邻居节点转发。(节点对这次变化未进行路由表改变则此路消失,最终结束是所有包消失)
(3)每个节点收到邻居节点发送的距离向量表以后基于新的信息采用方程来更新自己的距离向量表。
(4)当自己的距离向量表发生变化时,将新的距离向量表发送给自己的邻居节点,如果与以前的向量表相同则不向其邻居节点转发,直到每个节点的距离向量表达到稳定为止。

Bellman-ford算法可以解决带有负权边的问题,是求解带负权边的单源最短路问题的经典算法。时间复杂度是O(nm),核心思想是”松弛操作”。

 

异步迭代:作为每一个路由器不是同步迭代同步结束。
邻居再计算,邻居再选择是否通告邻居(邻居的邻居)

2.无穷计数问题

当y由4变成60时,还没告诉z,z之前告诉,z到x是5,现在y到x是60,根据距离向量路由算法得现在最短路径为5(z到x)+1(y到z)= 6

一直重复下去,直到,z发现经过y到x(51)比直接到x距离长(50),这样重复很多次,如果50或者60变成很大时候,就会出现无穷计数问题。

无穷计数的解决办法(毒性逆转)

无穷计数的解决办法(定义最大度量)

虽然可能出现无穷计数问题,但是通过定义最大度量值的方法,会在有限的交换过程中到达最终达到收敛,最终反应网络实际状态。
16跳步认为不可抵达即无穷大

(二)掌握水平分割以及反向抑制的水平分割

1.水平分割

水平分割:一条路由信息不要发送给该信息的来源

在路由信息传送过程中,路由器从某个接口接收到的更新信息不允许再从这个接口发回去

2.反向抑制的水平分割

反向毒化:把从邻居学习到的路由费用设置为无限大并立即发送给那个邻居

路由器从某个接口上接收到某个网段的路由信息之后,并不是不往回发送信息了,而是发送,只不过是将这个网段的跳数设为无限大,再发送出去

收到此种的路由信息后,接收方路由器会立刻抛弃该路由,而不是等待其老化时间到(Age Out)。这样可以加速路由的收敛。

进入稳定状态,确认稳定状态。确认处于稳定状态指的是上一轮的转发表 (路由表)与当前轮的转发表一样,即到目的地的路径花费一样

(三)了解RIP,了解RIP-1和RIP-2的区别

1.RIP

RIP是Routing Information Protocol(路由信息协议)的简称,它是一种较为简单的内部网关协议(Interior Gateway Protocol)

RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离

在RIP网络中,缺省情况下,设备到与它直接相连网络的跳数为0,通过一个设备可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不可能在大型网络中得到应用

RIP协议有两种更新机制:

一是定期更新,二是触发更新。定期更新是根据设置的更新计时器定期发送RIP路由通告。而触发更新是RIP路由器一旦察觉到网络变化,就尽快甚至是立即发送更新报文,而不等待更新周期结束。只要触发更新的速度足够快,就可以大大地防止“计数到无穷大”的发生,但是这一现象还是有可能发生的

无论是定期更新,还是触发更新,RIP路由的更新规则如下:

  1. 如果更新的某路由表项在路由表中没有,则直接在路由表中添加该路由表项
  2. 如果路由表中已有相同目的网络的路由表项,且来源端口相同,那么无条件根据最新的路由信息更新其路由表
  3. 如果路由表中已有相同目的网络的路由表项,但来源端口不同,则要比较它们的度量值,将度量值较小的一个作为自己的路由表项
  4. 如果路由表中已有相同目的网络的路由表项,且度量值相等,保留原来的路由表项

2.RIP-1和RIP-2的区别

RIP1和RIP2的区别:
RIP还要提到一点是RIP分为RIP1与RIP2两个版本,区别如下:

  • 区别一:RIP1是一个有类路由协议,即所有的更新包中不含子网掩码,不支持VLSM, 所以就要求网络中所有设备必须使用相同的子网掩码,否则就会出错,而RIP2是一个无类的路由协议,它使用子网掩码。
  • 区别二:第二个不同的地方是RIP1是发送更新包的时候使用的是广播包,而RIP2默认使用的是组播224.0.0.9,也支持广播发送,这样相对于RIP1来说就节省了一部分网络带宽。
  • 区别三:第三个就是RIP2支持明文或者是 MD5验证,要求两台路由器在同步路由表的时候必须进行验证,通过才可以进行路由同步,这样可以加强安全性。

四、IP组播

网络中存在组播源,组播路由器,和组播组成员三个角色,它们在同一组播组中进行组播通信。

  • 组播组:用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收发往该组播组的组播数据。
  • 组播源:信息的发送者。一个组播源可以同时向多个组播组发送数据,多个组播源也可以同时向一个组播组发送报文。
  • 组播组成员:所有加入某组播组的主机便成为该组播组的成员。组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。
  • 组播路由器:支持三层组播功能的路由器或交换机。组播路由器不仅能够提供组播路由功能,也能够在与用户连接的末梢网段上提供组播组成员的管理功能。

(一)了解任意源组播服务模型和单一源组播服务

1.任意源组播服务模型

ASM模型(Any-Source Multicast)

接收者主机加入组播组后可以接收任意源发送到该组的数据

ASM地址=任意源+组播组地址 (*,G)

要求组地址必须整个组播网络中"唯一"

  • 唯一是指在同一时刻一个ASM地址只能被一种组播应用使用
    • 如果在同一时刻有两个或者多个不同应用使用同一个ASM地址发送数据。会导致它们的接收者会受到来自两个源的数据,数据会混乱,也会导致网络拥塞

2.单一源组播服务

SSM模型(Source-Specific Multicast)

接收者主机加入组播组后可以接受特定源发送到该组的数据

SSM地址=组播源IP+组播组地址 (S,G)

不要求组地址全网唯一,需要每个组播源保持”唯一“

  • 唯一是指同一个源上不同的组播应用必须使用不同的SSM地址来区分
  • 不同的组播源之间可以使用相同的组地址,因为SSM模型针对每个(S,G)信息都会生产表项。节省组播组地址、不会造成网络拥塞

(二)掌握IGMPv2协议的基本工作方式:软状态、反馈抑制和离开组播组

1.IGMPv2协议

IGMPv2是为了改进IGMPv1两方面不足而产生的改进版,一是IGMPv2增加了独立的查询机制(IGMPv1中的查询器是由PIM协议选举指定路由器(DR)担当查询器的)二是增加了离开组机制,包含了离开信息,允许迅速向组播路由协议(PIM)报告组成员终止情况(IGMPv1中没有离开机制),这对高带宽组播组或易变型组播成员而言,是非常重要的。
查询器选举机制

  1. 因为在同一广播域内,主机发出的报告报文,所有路由器都可以接收到,所以只需要一台路由器负责接收主机发出的报告报文与回应报告报文即可,这样可以节省很多带宽以及省略很多重复的数据包。
  2. 在初始化阶段,路由器都认为自己是查询器,向网段内所有主机,所有路由器发送普遍组查询报文。会将报文的源地址与自己的入接口地址做比较,通过比较IP地址最小的路由器将成为查询器,其他路由器将成为非查询器(Non-Querier)。
  3. 之后,将由查询器向本网段内的所有主机和其他组播路由器发送普遍组查询报文,而非查询器则不再发送普遍组查询报文。
  4. 每个非查询器上会启动一个计时器(Ohter Querier Present Timer其他查询器存在时间定时器),在该定时器超时前,如果收到了来自查询器的查询报文,则重置定时器;否则,则认为原查询器失效,并发起新的查询器选举过程。

2.软状态

每个组播路由器定期(60到90秒)发送Query消息给所有主机(224.0.0.1)

最小IP地址的组播路由器充当询问者,其他停止发送Query

软状态机制:定期发送Query以刷新状态;超时时移走状态信息

3.反馈抑制

收到Query后主机发送Report到其所属的组播地址G

反馈抑制:Query包含最大响应时间,主机选择[0,Max Resp. Time]时刻准备发送Report

4.离开组播组

离开时:可悄悄离开,但会浪费带宽

最近一次组成员询问中发送report消息的主机发送Leave Group消息给所有组播路由器(224.0.0.2)

Querier发送指定了组播组的Query消息来询问对于特定的组播组G是否还有其他成员属于该组播组

组离开机制

  1. HostA向本地网段224.0.0.2(网段内所有路由器)发送G1组离开报文。
  2. 查询器收到离开报文之后,会发送针对G1的特定组查询报文,发送间隔和发送次数可以通过命令配置(默认为发送两个,每隔一一秒发送一个),同时查询器启动组成员关系定时器(Timer-Membership=发送间隔x发送次数)。
  3. 该网段内存在组G1的其他成员,这些成员在收到查询器发出的查询报文后,会立即发送针对G1组的成员报告报文以继续维护该组成员的关系,如果该网段内不存在G1的成员,查询器将不会收到针对G1组发出的成员报告报文,在Timter-Membership超时后,查询器将删除(*.G1)的对应IGMP组表项,当有组G1的组播数据到达查询器后,查询器将不会向下游转发。

五、IPv6

IPv6的使用,网络地址资源数量不足的问题,而且也解决了多种接入设备连入互联网的障碍。

IPv6头部大小固定(40字节),并包含128位源地址和目的地址。下一个头部字段能用于说明IPv6头部之后其他扩展头部的存在和类型,他们形成一条包括特殊扩展或处理指令的头部链。应用数据跟在这条头部链之后,通常紧跟着一个传输层头部。

(一)掌握IPv6相比IPv4的改进,分组格式之间的变化

1.IPv6相比IPv4的改进

  1. 更大的地址空间:16字节,128位
  2. 首部的简化:只有7个固定域,撤消了有关分段的域和校验和域,以便更快地处理分组,提高路由器的吞吐量缩
  3. 短延时。
  4. 更好地支持选项:选项是有次序的,以便路由器可简单地跳过与它无关的选项,加快分组的处理速度
  5. 增强了安全性:认证和隐私是关键特征
  6. 更加关注服务质量:以支持Internet上日益增长的多媒体应用

2.分组格式之间的变化

IPv6报文 分为三个部分:头部、扩展头、上层协议数据单元。

  • 4位版本号指定IP协议的版本。对于IPv6来说,其值是6。
  • 8位.通信类型指示数据流通信类型或优先级,和IPv4的TOS类似。
  • 20位流标签是IPv6新增加的字段,用于某些对连接的服务质量有特殊要求的通信,比如音视频等实时传输。
  • 16位净荷长度指的是IPv6扩展头部和应用程序数据长度之和,不包括固定头部长度。
  • 8位下一个包头指出紧跟IPv6固定头部后的包头类型,如扩展头或某个上层协议头(比如TCP、UDP、ICMP)。类似于IPv4头部中的协议字段,且相同的取值有形同的含义。
  • 8位跳数限制,和IPv4中的TTL含义相同。
  • IPv6用128位(16字节)来表示IP地址。使得IP地址的总量达到了2的128次方。

(二)掌握128比特的地址空间,如何压缩IPv6地址

IPv6地址:128bit,16个字节。

(1)首选格式:X:X:X:X:X:X:X:X,8个16bit段,前导零可以删除,但是每段要有一个数字;

  • 举例:
  • 2001:0DB8:0000:0000:0008:0800:200C:417A
  • 删除前导零后:
  • 2001:DB8:0:0:8:800:200C:417A

(2)压缩格式:将多个连续为0的段用::表示,一个IPv6地址只允许一个::

  • 举例:
  • 2001:410:0:1:0:0:0:45FF
  • 压缩后:
  • 2001:410:0:1::45FF

(三)了解IPv6的过渡方法(可以和IP隧道的概念结合起来)

1.IPv40IPv6双协议栈(Dual-stack)

双栈技术是IPv4向IPv6过渡的一种有效的技术,其节点同时支持IPv4和IPv6协议栈,当IPv6节点与IPv6节点互通时使用IPv6协议栈,与IPv4节点互通时借助于IPv4 over IPv6隧道使用IPv4协议栈,通过此技术,实现分别与IPv4或IPv6节点间的信息互通。

双栈技术是IPv6过渡技术的基础,灵活启用/关闭IPv4/IPv6功能,对IPv4和IPv6提供了完全的兼容,但这种方式需要双路由基础设施,即所有节点都支持双栈,因此增强了改造和部署难度,网络复杂程度也更高。

2.网络中的隧道技术(Tunnelling)

这种模式运用于IPv4 和IPv6的边界。首先,借助IPv4网络来建立IPv4隧道,然后实现IPv6点到点访问,通常用于IDC出口边界或内部IGP跨域访问。

隧道技术又分为自动和人工配置两种,人工配置的隧道技术是在隧道的终点人工配置到某个特定的IPv4地址;对于自动隧道技术来说,封装是自动在进行封装的路由器/主机上完成的,隧道终点的IPv4地址被包含在目的地址为IPv6地址的数据包中,如“6to4”隧道技术。

3.翻译机制(Translation Mechanism )

即在不改动现有网络结构情况下,通过地址转换协议,进行IPv4 to IPv6 或IPv6 to IPv4 访问转换,可满足IPv4与IPv6之间的双向访问需求。

这种模式对于设备性能要求较高,对高并发业务支撑较困难,适合会话较小的业务。

posted @ 2022-12-25 14:20  ImreW  阅读(115)  评论(0编辑  收藏  举报