当前位置: 首页 > news >正文

计算机网络——网络层(路由选择协议、路由器工作原理、IP多播、虚拟专用网和网络地址转换)

目录

路由选择协议

因特网的路由选择协议特点

路由信息协议RIP

RIP衡量目的网络距离 

RIP选择路由器的方式 

RIP具有以下三个重要特点

RIP的基本工作流程 

RIP的距离向量算法

​编辑

​编辑

 RIP存在的问题——“坏消息传播得慢”

 RIP的封装

开放最短路径优先协议OSPF

链路状态 

OSPF路由器邻居关系的建立和维护

链路状态通告 

链路状态分组 

链路状态数据库 

基于链路状态数据库进行最短路径优先计算

OSPF的五种分组类型

​编辑

OSPF的基本工作过程

多点接入网络中的OSPF路由器

OSPF协议划分区域 

练习 

外部网关协议BGP

BGP的产生原因 

BGP的工作流程概括

BGP路由的一般格式

​编辑

BGP工作流程详解 

三种不同的AS自治系统 

BGP的路由选择 

BGP适用于多级结构的因特网

BGP-4的四种报文

练习 

路由器基本工作原理

路由器的工作流程

交换结构的速率 

IP多播 

IP多播与多播组 

在局域网上进行硬件多播 

剖析mac地址和ip地址的关系

收到IP多播数据报的主机还要在网际层利用软件进行过滤 

 在因特网上进行IP多播的两种协议

简述两种协议的作用 

 网际组管理协议IGMP

洪泛法建立广播树

网际组管理协议IGMP的基本工作原理——加入多播组

 网际组管理协议IGMP的基本工作原理——监视多播组的成员变化

网际组管理协议IGMP的基本工作原理——退出多播组

 多播路由选择协议

反向路径广播RPB算法

组共享树多播路由选择

其他多播路由选择 

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

 虚拟专用网的工作流程

网络地址转换 

 最基本的NAT方法

网络地址与端口号转换方法  

NAT与NAPT两种网络地址转换的总结 


路由选择协议

        应当指出,路由选择是个非常复杂的问题,因为它是网络中的所有节点共同协调工作的结果。其次,路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

        例如,网络中出了某些故障。此外,当网络发生拥塞时,就特别需要有能缓解这种拥塞的路由选择

         倘若从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则只有两大类,即静态路由选择策略动态路由选择策略。静态路由选择也叫作非自适应路由选择,

静态路由选择:

  • 采用人工配置的方式给路由器添加网络路由.默认路由和特定主机路由等路由条目。
  • 静态路由选择简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化。
  • 静态路由选择一般只在小规模网络中采用。

动态路由选择:

  • 路由器通过路由选择协议自动获取路由信息
  • 动态路由选择比较复杂、开销比较大,但能较好地适应网络状态的变化。
  • 动态路由选择适用于大规模网络。 

因特网的路由选择协议特点

解释因特网的路由选择协议——分层次特点

路由信息协议RIP

        路由信息协议(Routing Information Protocol,RIP)是内部网关协议中最先得到广泛使用的协议之一。

        RIP要求自治系统AS内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为距离向量(Distance-Vector,D-V) 。

RIP衡量目的网络距离 

        RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。

  • RIP将路由器到直连网络的距离定义为1。
  • RIP将路由器到非直连网络的距离定义为所经过的路由器数加1。
  • RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网。

举例说明如下:

RIP选择路由器的方式 

        RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。


        当到达同一目的网络有多条RIP距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上。


 

RIP具有以下三个重要特点
 

和谁交换信息:

        仅和相邻路由器交换信息。



交换什么信息:

        路由器自己的路由表
        即本路由器到所在自治系统AS中各网络的最短RIP距离,以及到各网络应经过的下一跳路由器。


何时交换信息:
        周期性交换(例如,每隔约30秒)。
        为了加快RIP的收敛速度,当网络拓扑发生变化时,路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新。

RIP的基本工作流程 


RIP的基本工作过程小结如下

  • 路由器刚开始工作时,只知道自己到直连网络的RIP距离为1。
  • 每个路由器仅和相邻路由器周期性地交换并更新路由信息。
  • 若干次交换和更新后,每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器,称为收敛。

RIP的距离向量算法

 D中路由表修改规则如下:





除了上述RIP路由条目更新规则,在RIP的距离向量算法中还包含以下一些时间参数:

  • 路由器每隔大约30秒向其所有相邻路由器发送路由更新报文。
  • 若180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为16,表示不可达),若再过一段时间(如120秒),还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除。

 RIP存在的问题——“坏消息传播得慢”

 

“        坏消息传播得慢”的问题又被称为路由环路或RIP距离无穷计数问题。这是距离向量算法的一个固有问题。可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害:

  • 限制最大RIP距离为15(16表示不可达)。
  • 当路由表发生变化时就立即发送路由更新报文(即“触发更新”),而不仅是周期性发送。
  • 让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)。


        使用上述措施仍无法彻底解决问题。因为在距离向量算法中,每个路由器都缺少到目的网络整个路径的完整信息,无法判断所选的路由是否出现了环路。


 RIP的封装

        现在较新的RIP版本是1998年11月公布的RIP2,已经成为因特网标准协议。与RIP1相比,RIP2可以支持变长子网掩码和CIDR。另外,RIP2还提供简单的鉴别过程并支持多播

        RIP相关报文使用运输层的用户数据报协议UDP进行封装,使用的UDP端口号为520。

  • RIP报文封装的角度看,RIP属于TCP/IP体系结构的应用层。
  • RIP的核心功能是路由选择,这属于TCP/IP体系结构的网际层。

 

开放最短路径优先协议OSPF

        开放最短路径优先(Open Shortest Path First,OSPF)协议是为了克服路由信息协议RIP的缺点在1989年开发出来的。

  • “开放”表明OSPF协议不是受某一厂商控制,而是公开发表的。
  • “最短路径优先”是因为使用了Dijkstra提出的最短路径算法(Shortest Path First,SPF)。

        ‘开放最短路径优先”只是一个路由选择协议的名称,但这并不表示其他的路由选择协议不是“最短路径优先”实际上,用于自治系统AS内部的各种路由选择协议(例如RIP),都要寻找一条“最短”的路径。

  • OSPF是基于链路状态的,而不像RIP是基于距离向量的。
  • OSPF基于链路状态并采用最短路径算法计算路由,从算法上保证了不会产生路由环路
  • OSPF不限制网络规模,更新效率高,收敛速度快。

链路状态 

        链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价(cost)" 。“代价”用来表示费用、距离、时延和带宽等,这些都由网络管理人员来决定。


 

OSPF路由器邻居关系的建立和维护
 

        OSPF相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系。

        问候(Hello)分组封装在IP数据报中,发往组播地址224.0.0.5。IP数据报首部中的协议号字段的取值为89,表明lP数据报的数据载荷为OSPF分组。

  • 问候(Hello)分组的发送周期为10秒。
  • 若40秒未收到来自邻居路由器的问候(Hello)分组,则认为邻居路由器不可达。
  • 每个路由器都会建立一张邻居表。

R1邻居表另一边状态如下:

链路状态通告 

        使用OSPF的每个路由器都会产生链路状态通告(Link State Advertisement,LSA)LSA中包含以下两类链路状态信息:

  • 直连网络的链路状态信息
  • 邻居路由器的链路状态信息

链路状态分组 

        链路状态通告LSA被封装在链路状态更新(Link State Update,LSU)分组中,采用可靠的洪泛法(Flooding)进行发送

  • 洪泛法的要点是路由器向自己所有的邻居路由器发送链路状态更新分组收到该分组的各路由器又将该分组转发给自己所有的邻居路由器(但其上游路由器除外),以此类推。
  • 可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认。

链路状态数据库 

  • 使用OSPF的每一个路由器都有一个链路状态数据库(Link State Database,LSDB),用于存储链路状态通告LSA。
  • 通过各路由器洪泛发送封装有各自链路状态通告LSA的链路状态更新分组LSU,各路由器的链路状态数据库LSDB最终将达到一致。

 这是在路由器R2的链路状态数据库,其中记录有系统中各路由器的链路状态通告

基于链路状态数据库进行最短路径优先计算
 

        使用OSPF的各路由器,基于链路状态数据库LSDB进行最短路径优先计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。

        
         

OSPF的五种分组类型

        OSPF构成的数据报很短。这样做可减少路由信息的通信量。

        数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。 

OSPF的基本工作过程


 

多点接入网络中的OSPF路由器
 

在多点接入网络中OSPF路由器邻居关系的建立
 


        
        为了确保链路状态数据库与全网的状态保持一致,OSPF 还规定每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。
        由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议RIP 好得多。

        为了减少所发送问候分组和链路状态更新分组的数量,OSPF采用以下措施:

  • 选举指定路由器(Designated Router,DR)和备用的指定路由器(Backup DesignatedRouter,BDR)
  • 所有的非DR/BDR只与DR/BDR建立邻居关系
  • 非DR/BDR之间通过DR/BDR交换信息

OSPF协议划分区域 

        为了使OSPF协议能够用于规模很大的网络,OSPF把一个自治系统AS再划分为若干个更小的范围,称为区域(area) 。

        每个区域的规模不应太大,一般所包含的路由器不应超过200个

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

区域中路由器的种类 

  • 自治系统边界路由器在主干区域内还要有一个路由器,专门和本自治系统外的其他自治系统交换路由信息。如本例中的R6
  • 主干路由器主区区域内的路由器。例如本例中的路由器R3、R4、R5、R6和R7
  • 区域内路由器路由器的所有接口都在同一个区域内。区域1内的R1和R2,区域2内的R8,区域3内的R9
  • 区域边界路由器:一个接口用于连接自身所在区域,另一个接口用于连接主干区域。本例中的R3、R4和R7

区域边界路由器的工作         

        以R3为例,R3向区域1发送区域区域0、2和3的链路状态通告;而向主干区域发送区域1的链路状态通告

        采用划分区域的方法,虽然使交换信息的种类增多了,同时也使OSPF协议更加复杂了,但这样做能使每一个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模更大的自治系统AS.
 

练习 

外部网关协议BGP

         外部网关协议BGP对互联网非常重要。我们知道,前面两节所介绍的路由选择协议 RIP和 OSPF,都只能在一个自治系统AS内部工作。

        因此,若没有协议BGP,那么分布在全世界数以万计的AS都将是一个个没有联系的孤岛。正是由于有了BGP这种黏合剂,才使得这么多的AS 孤岛能够连接成一个完整的互联网。

BGP的产生原因 

 Q:在不同自治系统AS之间的路由选择为什么不能使用内部网关协议,如RIP或OSPF?


        A:内部网关协议(如RIP或OSPF)主要是设法使数据报在AS中尽可能有效地从源站传送到目的站。在一个AS内部也不需要考虑其他方面的策略
        然而BGP的适应环境大不相同:

  1. 互联网的规模太大,使得自治系统AS之间路由选择非常困难:
    •  链路状态相关协议所遇到的问题:目前在互联网的主干网路由器中,一个转发表的项目数甚至可达到50万个网络前缀。如果使用链路状态协议,则每一个路由器必须维持一个很大的链路状态数据库。
              对于这样大的主干网用Dijkstra 算法计算最短路径时花费的时间也太长。
       
    • 路径度量相关协议所遇到的问题:另外,由于自治系统AS各自运行自己选定的内部路由选择协议,并使用本AS指明的路径度量,因此,当一条路径通过几个不同AS时,要想对这样的路径计算出有意义的代价是不太可能的。
             例如,对某 AS来说,代价为1000可能表示一条比较长的路由。但对另一AS,代价为1000却可能表示不可接受的坏路由。
    • 合理的做法在自治系统之间交换“可达性”信息(“可到达”或“不可到达”)。例如,告诉相邻路由器:“到达网络前缀N可经过自治系统AS1”
  2. 自治系统AS之间的路由选择必须考虑有关策略:
    • 由于相互连接的网络的性能相差很大,会有如下情况出现
      • 根据最短距离(即最少跳数)找出来的路径,可能并不合适。
      • 也有的路径的使用代价很高或很不安全。
      • 还有一种情况,如自治系统AS3,要发送数据报给自治系统AS3,本来最好是经过自治系统AS3;。但AS3不愿意让这些数据报通过本自治系统的网络即使AS1愿意支付一定的费用。
                但另一方面,自治系统AS3愿意让某些相邻自治系统的数据报通过自己的网络,特别是对那些付了服务费的某些自治系统更是如此。
    • 因此,自治系统之间的路由选择协议应当允许使用多种路由选择策略,这些策略并不是基于路由协议本身,而是包括政治、安全或经济方面的考虑:
      • 例如,我国国内的站点在互相传送数据报时不应经过国外兜圈子,特别是不要经过某些对我国的安全有威胁的国家。
      • 还可举出一些策略的例子,如:“仅在到达下列这些地址时才经过AS1,",“AS1和AS2相比时应优先通过AS1”
      • 显然使用这些策略只是为了找出更好路由而不是最佳路由

        由于上述情况,边界网关协议 BGP只能是力求选择出一条能够到达目的网络前缀且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由。

        这里所说的BGP路由,是指经过哪些自治系统AS可以到达目的网络前缀。当然,这选择出的比较好的路由,也有时不严格地称为最佳路由。

        BGP采用了路径向量(path vector)路由选择协议,它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大的区别。 

BGP的工作流程概括


        BGP发言人除了运行BGP协议外,还必须运行自己所在AS所使用的内部网关协议IGP,例如RIP或OSPF。
 


BGP路由的一般格式

  • 前缀:就是通告的BGP路由终点(子网前缀)。
  • AS-PATH(自治系统路径)是通告的BGP路由所经过的自治系统。BGP路由每经过一个AS,就将其自治系统号ASN加入到AS-PATH中,“BGP路由”必须指出通过哪些自治系统AS,但不指出路由中途要通过哪些路由器。
  • NEXT-HOP(下一跳)是通告的BGP路由起点。

        
        BGP属性有好几种类型,但最重要两个就是这里列出的 AS-PATH和 NEXT-HOP。

BGP工作流程详解 


R4收到R1的BGP路由

        这样,路由器R4只要收到要到达前缀X的分组,都按照R4→R3→R2→R1→X的路径,最后到达前缀X。

三种不同的AS自治系统 

        在互联网中自治系统AS的数量非常之多,其连接图也是相当复杂的。但归纳起来,可以把AS划分为三大类,即末梢AS (stub AS)、穿越AS(transit AS) 和对等AS (peering AS)。
 

 末梢AS (stub AS)

        末梢AS不是穿越AS,它不允许分组穿越自己的自治系统。

        末梢AS5也不能把(AS5→AS2一AS4)这样的BGP路由信息通告给AS3;如果AS3有分组要转发给AS4,可以通过对等AS2转发,但不能通过末梢AS5。

对等AS

        是经过事先协商的两个AS,彼此之间的发送或接收分组都不收费,这样大家转发分组都比较方便。

 穿越AS

        往往是拥有很好的高速通信干线的主干AS,其任务就是为其他的AS有偿转发分组。通常都会有很多的AS连接到穿越AS上。

BGP路由必须避免兜圈子的出现
 

         因此AS3应立即删除此BGP路由,因而避免了兜圈子路由的出现。

BGP的路由选择 

        假如从一个AS到另外一个AS中的前缀X只有一条BGP路由,那么就不存在选择BGP路由的问题,因为这时BGP路由是唯一的。
        但如果到前缀X有两条或更多的BGP路由可供选择,那么就应当根据以下的原则,按照这里给出的先后顺序,选择一条较好的BGP路由。

本地偏好LOCAL-PREF (LOCAL PREFerence)值最高的路由要首先选择。

        在 BGP路由中的属性里面有一个选项叫作本地偏好,在属性中记为LOCAL-PREF。

        本地偏好也就是本地优先,是指,从本AS开始的、到同一个前缀的不同 BGP路由中,挑选一个较好的(即偏好值最高的)路由。这可由路由器管理员或网络管理员根据政治上或经济上的策略来设置。

        但是,即使所有的通信量都通过这条高速链路,使得链路负荷过重,协议 BGP也无法把一些负载调整到负载较轻的那条低速链路上。
 

         如果从几条BGP路由中找不出本地偏好值最高的路由,则执行下一条。

 选择具有AS跳数最少的路由

        这个例子再次说明了协议BGP无法选择出最佳路由。

        如果按前两种方法都无法选择最好的路由,那么就在要进入BGP路由的AS,执行热土豆路由选择算法

热土豆路由选择算法

选择BGP标识符最小的路由 

        在BGP进行交互的报文中,其首部有一4字节的字段,叫作 BGP标识符,记为 BGP ID。这个字段被赋予一个无符号整数作为运行 BGP 的路由器的唯一标识符。

        具有多个接口的路由器有多个IP地址。BGP ID 就使用该路由器的IP地址中数值最大的一个。

         

BGP适用于多级结构的因特网

BGP-4的四种报文
 

BGP报文是作为TCP报文的数据部分来传送的,四种类型的BGP报文具有同样的首部。


 

练习 


 

路由器基本工作原理

        路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是转发分组。 

 这是典型的路由器基本结构,它由路由选择部分分组转发部分这两部分构成

  • 路由选择部分的核心构建是路由选择处理机
  • 分组转发部分由交换结构,一组输入端口以及一组输出端口构成。

路由选择处理机的作用:其任务是根据所使用的路由选择协议的周期性的与其他路由器进行路由信息的交换,以便构建和更新路由表。

路由器的工作流程


数据分组进入交换结构后


数据分组转发


假如输入端网络层传输的是路由报文
 

        路由器的各端口还应具有输入缓冲区和输出缓冲区

  • 输入缓冲区用来暂存新进入路由器,但还来不及处理的分组。
  • 输出缓冲区用来暂存已经处理完毕,但还来不及发送的分组。 

交换结构的速率 

         交换结构的速率对于路由器的性能是至关重要的。

        为了提高路由器的转发速率,实现转换结构的三种基本方式是通过存储器,通过总线以及通过互联网络这三种交换结构可实现的。

IP多播 

        多播(Multicast,也称为组播)是一种实现“一对多”通信的技术,与传统单播“一对一”通信相比,多播可以极大地节省网络资源。

        在因特网上进行的多播,称为IP多播。

        IP多播可以分为以下两种: 

  • 只在本局域网上进行的硬件多播。
  • 在因特网上进行的多播。

        现在IP多播(multicast,以前曾译为组播)已成为互联网的一个热门课题。这是由于有许多的应用需要由一个源点发送到许多个终点,即一对多的通信。

        例如,实时信息的交付(如新闻、股市行情等)、软件更新、交互式会议等。随着互联网的用户数目的急剧增加,以及多媒体通信的开展,有更多的业务需要多播来支持

用视频接收来举例说明

        当多播组的成员数量很大时,采用多播方式可以显著地减少网络中各种资源的消耗。

IP多播与多播组 

        目前大部分主机都是通过局域网接入因特网的。因此,在因特网上进行多播的最后阶段,还是要把IP多播数据报在局域网上用硬件多播交付给多播组的所有成员。
 

  • 每个多播组的成员是可以随时变动的一台主机可以随时加入或离开多播组
  • 多播组成员的数量和所在的地理位置也不受限制一台主机可以属于几个多播组
  • 非多播组成员也可以向多播组发送IP多播数据报。

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

        IPv4多播地址又可分为预留的多播地址(永久多播地址)、全球范围可用的多播地址以及本地管理的多播地址。


 

在局域网上进行硬件多播 

            由于MAC地址(也称为硬件地址)有多播MAC地址这种类型,因此只要把IPv4多播地址映射成多播MAC地址,即可将IP多播数据报封装在局域网的MAC帧中。

        当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址。

剖析mac地址和ip地址的关系

        因特网号码指派管理局IANA,将自己从IEEE注册管理机构申请到的以太网MAC地址块中从01-00-5E-00-00-00到01-00-5E-7F-FF-FF的多播MAC地址,用于映射IPv4多播地址。


最大多播mac地址和最小多播mac地址


32位ipv4地址映射成48位多播mac地址的方法


IP多播地址与多播MAC地址的映射关系

        如果不同的IP多播地址之间的不同之处仅出现在不能映射的那5个比特,则这些IP多播地址会映射出同一个多播MAC地址。

收到IP多播数据报的主机还要在网际层利用软件进行过滤 

在mac层无法匹配的主机


在mac层匹配的,但网际层不匹配


mac层和网际层都匹配的

 在因特网上进行IP多播的两种协议

        要在因特网上进行IP多播,就必须要考虑IP多播数据报经过多个多播路由器进行转发的问题

        多播路由器必须根据IP多播数据报首部中的IP多播地址,将其转发到有该多播组成员的局域网。

简述两种协议的作用 

IGMP的作用 


 网际组管理协议IGMP

        和网际控制报文协议ICMP相似,IGMP使用IP数据报传递其报文(即 IGMP报文加上IP首部构成IP数据报),但它也向IP提供服务。因此,我们不把 IGMP看成是一个单独的协议,而是属于整个网际协议IP的一个组成部分。
 

洪泛法建立广播树

        洪泛法在网络环路中会兜圈产生广播风暴。

网际组管理协议IGMP的基本工作原理——加入多播组
 

 



 网际组管理协议IGMP的基本工作原理——监视多播组的成员变化

 


大约两秒钟后,主机B发送IGMP成员报告报文



假设主机C不再是多播组228.1.1 1.1的成员

   


        需要说明的是,收到IGMP成员查询报文的被查询多播组的任何成员将会发送IGMP成员报告报文作为应答。为了减少不必要的重复应答,每个多播组只需要有一个成员应答就可以了。

        因此采用了一种延迟响应的策略,那就是收到IGMP成员查询报文的主机,并不是要立即响应,而是在1到10秒的范围内等待一段随机的时间后再进行响应。如果在这段随机的时间内收到了同组其他成员发送的IGMP呈报报告报文就取消响应。

网际组管理协议IGMP的基本工作原理——退出多播组
 

        IGMPv2在IGMPv1的基础上增加了一个可选项:当主机要退出某个多播组时,可主动发送一个离开组报文而不必等待多播路由器的查询。这样可使多播路由器能够更快地发现某个组有成员离开。
 


IGMP成员查询过程请看——监视多播组成员变化

 多播路由选择协议

        基于源树的多播路由选择的最典型算法是反向路径多播(Reverse Path Multicasting,RPM)算法。

        RPM算法包含以下两个步骤:

  • 利用反向路径广播(Reverse Path Broadcasting,RPB)算法建立一个广播转发树。
  • 利用剪枝(Pruning)算法,剪除广播转发树中的下游非成员路由器,获得一个多播转发树。

        要建立广播转发树,可以使用洪泛(Flooding)法。

反向路径广播RPB算法

特点如下: 

 



        经过上述过程,最终可以得出转发广播分组的广播转发树以后就按该广播转发树转发广播分组,这样就避免了广播分组兜圈子,同时每一个路由器也不会收到重复的广播分组。
 

        RPB虽然很好的解决了转发环路的问题,但只是实现了广播,要实现真正的多播,还要将像R8这样的没有多播组成员的非成员从广播转发数上减除 

剪除报文 


嫁接报文

组共享树多播路由选择
 

特点如下:

 

假如源主机向多播组发送了一个多播分组

  

其他多播路由选择 

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

虚拟专用网特点如下: 

 虚拟专用网的工作流程

 

        
        虽然两个专用网内的主机间发送的数据报是通过公用的因特网传送的,但从效果上就好像是本机构的专用网上传送一样,这也是虚拟专用网中“虚拟”的含义。
 

  • 本例所示的是同一机构内不同部门的内部网络所构成的VPN,又称为内联网VPN。
  • 有时,一个机构的虚拟专用网VPN需要某些外部机构(通常是合作伙伴)参加进来,这样的VPN就称为外联网VPN。

网络地址转换 

        下面讨论另一种情况,就是在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和互联网上的主机通信(并不需要加密),那么应当采取什么措施呢?

        最简单的办法就是设法再申请一些全球IP地址。但这在很多情况下是不容易做到的目前使用得最多的方法是采用网络地址转换。
 

 最基本的NAT方法

主机A位于专用网中,其IP地址为专用地址IPA

主机B位于因特网中,其IP地址为全球地址IPB,

该路由器为net路由器,它至少拥有一个有效的外部全球IP地址IPG

 

网络地址与端口号转换方法
  

假设A发送C发送封装有运输层UDP的IP数据报 



假设此时主机B碰巧发送了源端口号与A相同的数据报


主机c收到专用网中的主机A发来的IP数据报后,给主机A发回一个IP数据报

NAT与NAPT两种网络地址转换的总结 

相关文章:

计算机网络——网络层(路由选择协议、路由器工作原理、IP多播、虚拟专用网和网络地址转换)

目录 路由选择协议 因特网的路由选择协议特点 路由信息协议RIP RIP衡量目的网络距离 RIP选择路由器的方式 RIP具有以下三个重要特点 RIP的基本工作流程 RIP的距离向量算法 ​编辑 ​编辑 RIP存在的问题——“坏消息传播得慢” RIP的封装 开放最短路径优先协议OSPF…...

对接企业微信API自建应用配置企业可信IP

前言 为了实现系统调用团队会议功能,组织发起企业微信会议,于是需要和企业微信做API对接。对接过程很难受,文档不清晰、没有SDK、没有技术支持甚至文档报文和实际接口报文都不匹配,只能说企业微信的API是从业以来见过的最难用的AP…...

Windows右键新建Markdown文件类型配置 | Typora | VSCode

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 今天毛毛张分享的是如何在右键的新建菜单中添加新建MarkdownFile文件,这是毛毛张分享的关于Typora软件的相关知识的第三期 文章目录 1.前言🏝…...

PyTorch构建一个肺部CT图像分类模型来分辨肺癌

当你有5万个标注的肺部CT DICOM图像数据,并且希望使用PyTorch构建一个肺部CT图像分类模型来分辨肺癌,以下是详细的步骤和示例代码: 数据准备 首先,确保你的数据集被正确分为训练集、验证集和测试集,并且每个图像都有相…...

MySQL简介及数据库

mysql简介 mysql是一个轻量级关系型数据库管理系统,具有体积小,速度快,开源的优点 sql是一种结构化查询语言(Structured Query Language),专门用来管理和处理关系型数据库的标准化编程语言,mysql实现了SQL标准&#xf…...

服务器基础1

服务器基础复习01 1.环境部署 系统:华为欧拉系统 网络简单配置nmtui 因为华为欧拉系统密码需要复杂度 所以我们可以进入后更改密码 echo 123 | passwd --stdin root也可以 echo "root:123" | chpasswd2.关闭防火墙,禁用SElinux 首先先关…...

<数据集>光伏板缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2400张 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注类别数:4 标注类别名称:[Crack,Grid,Spot] 序号类别名称图片数框数1Crack8688922Grid8248843S…...

leetcode 513. 找树左下角的值

给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7提示: 二叉树的节点个数的范围是 [1,104]-231 < Node.val &…...

C++并发编程实战学习笔记

一、C的并发&#xff1a; 多进程并发&#xff1a; 将应用程序分为多个独立的进程&#xff0c;它们在同一时刻运行&#xff0c;就像同 时进行网页浏览和文字处理一样。独立的进程可以通过进程间常规的通信渠道传递讯息(信号、套接字、文件、管道等等)。不过&#xff0c;这种进程…...

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【25】【分布式事务】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【25】【分布式事务】 本地事务事务的基本性质事务的隔离级别&#xff08;下面四个越往下&#xff0c;隔离级 别越高&#xff0c;并发能力越差&#xff09;事务的传播行为&#xff08;是否…...

HC05主从一体蓝牙模块的裸机使用——单片机<-->蓝牙模块

HC-05是一种常用的蓝牙模块&#xff0c;具有低功耗、低成本、易于使用的特点。它可以实现与其他蓝牙设备&#xff08;如手机、电脑等&#xff09;进行无线通信。HC-05蓝牙模块具有串口通信接口&#xff0c;可以通过串口与主控制器&#xff08;如Arduino、Raspberry Pi等&#x…...

“点点通“餐饮点餐小程序-计算机毕业设计源码11264

"点点通"餐饮点餐小程序 XXX专业XX级XX班&#xff1a;XXX 指导教师&#xff1a;XXX 摘要 随着中国经济的飞速增长&#xff0c;消费者的智能化水平不断提高&#xff0c;许多智能手机和相关的软件正在得到更多的关注和支持。其中&#xff0c;微信的餐饮点餐小程序更…...

C#知识|账号管理系统-账号信息管理界面[1]:账号分类选择框、Panel面板设置

哈喽,你好啊,我是雷工! 前一节实现了多条件查询后端代码的编写, 接下来继续学习账号信息管理界面的功能编写,本节主要记录账号分类选择框和Panel的设置, 以下为学习笔记。 01 功能说明 本节实现以下功能: ①:账号分类选择框只能选择,无法自由输入; ②:账号分类框默认…...

Meta即将推出4000亿的Llama 3 超级AI模型,或将改写大语言模型竞争格局!|TodayAI

2024年4月&#xff0c;科技巨头Meta发布了其最新的AI大型语言模型——Llama 3&#xff0c;该模型基于一个至少比前代产品Llama 2大七倍的数据集&#xff0c;展现出前所未有的性能。在最初发布时&#xff0c;Llama 3提供了8B和70B两种参数规模的版本&#xff0c;并迅速超越了Goo…...

数据挖掘新技能:Python爬虫编程指南

Python爬虫的优势 Python之所以成为数据爬取的首选语言&#xff0c;主要得益于其丰富的库和框架支持。以下是一些常用的库&#xff1a; Requests&#xff1a;用于发送HTTP请求&#xff0c;简单易用&#xff0c;是Python爬虫的基础库。BeautifulSoup&#xff1a;用于解析HTML文…...

object-C 解答算法:移动零(leetCode-283)

移动零(leetCode-283) 题目如下图:(也可以到leetCode上看完整题目,题号283) 解题思路: 本质就是把非0的元素往前移动,接下来要考虑的是怎么移动,每次移动多少? 这里需要用到双指针,i 记录每次遍历的元素值, j 记录“非0元素值”需要移动到的位置; 当所有“非0元素值”都移…...

靖江美食元宇宙

关于“靖江美食元宇宙”的具体信息&#xff0c;搜索结果中并未提供直接相关的详细描述。不过&#xff0c;搜索结果显示了有关元宇宙在食品领域的应用和探索&#xff0c;例如食品元宇宙的概念、不同品牌尝试进入元宇宙市场的例子等。这些信息表明&#xff0c;元宇宙技术正在被用…...

模板方法设计模式

模板方法设计模式: 模板方法设计模式&#xff1a;解决方法中存在重复代码的问题。 模板方法设计模式的写法&#xff1a; 1、定义一个抽象类 2、在里面定义2个方法 ​ 一个是模板方法&#xff1a;把相同代码放里面去 ​ 一个是抽象方法&#xff1a;具体实现交给子类完成 建议使用…...

对象存储解决方案:高性能分布式对象存储系统MinIO

文章目录 引言I 自动化数据管理界面1.1 图形用户界面:GUI1.2 命令行界面:MinIO CLI1.3 应用程序编程接口:MinIO APIII 部署集成2.1 建议使用RPM或DEB安装方式2.2 创建环境变量文件2.3 启动MinIO服务2.4 将NGINX用作反向代理,配置负载。III 基础概念3.1 为什么是对象存储?3…...

2024 年需要考虑的 16 个知识库趋势和统计数据

自2017年以来&#xff0c;千禧一代已成为全球人口最多的一代。如果您的企业还没有准备好应对这一变化带来的挑战&#xff0c;那么是时候加快这一进程了。 毫不奇怪&#xff0c;千禧一代痴迷于智能手机和技术。他们具有流动性&#xff0c;期望与他们互动的品牌能够即时高效。 …...

微信小程序-实现跳转链接并拼接参数(URL拼接路径参数)

第一种常用拼接方法&#xff1a;普通传值的拼接 //普通传值的拼接checkRouteBinttap: function (e) {wx.navigateTo({url: ../checkRoute/checkRoute?classId this.data.classInfo.classId "&taskId" this.data.classInfo.taskId,})}第二种&#xff1a;拼接…...

【代码随想录|第十一章 图论part01 | 797.所有可能的路径 】

代码随想录|第十一章 图论part01 | 图论理论基础&#xff0c;797.所有可能的路径&#xff0c;广搜理论基础 一、图论理论基础1.图的基本概念2.图的构造1&#xff09;邻接矩阵2&#xff09;邻接表 3.图的遍历方式4.深度优先搜索理论基础 二、797.所有可能的路径1.核心代码2.问题…...

尚硅谷大数据技术-数据湖Hudi视频教程-笔记03【Hudi集成Spark】

大数据新风口&#xff1a;Hudi数据湖&#xff08;尚硅谷&Apache Hudi联合出品&#xff09; B站直达&#xff1a;https://www.bilibili.com/video/BV1ue4y1i7na 尚硅谷数据湖Hudi视频教程百度网盘&#xff1a;https://pan.baidu.com/s/1NkPku5Pp-l0gfgoo63hR-Q?pwdyyds阿里…...

【python】Pandas中IndexError: single positional indexer is out of bounds的报错分析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

ubuntu上通过修改grub启动参数,将串口重定向到sol

要修改 GRUB 启动参数以实现串口重定向到 Serial Over LAN (SOL)&#xff0c;你需要编辑 /etc/default/grub 文件&#xff0c;并更新 GRUB 配置。这里是详细步骤&#xff1a; 1. 编辑 /etc/default/grub 打开终端并使用文本编辑器&#xff08;如 nano 或 vim&#xff09;编辑…...

【Git】(基础篇四)—— GitHub使用

GitHub使用 经过上一篇的文章&#xff0c;相信大家已经对git的基本操作熟悉了&#xff0c;但哪些使用git的方法只是在本地仓库进行&#xff0c;本文介绍如何使用git和远程仓库进行连接使用。 Github和Gitee 主要用到的两个远程仓库在线平台是github和gitee GitHub GitHub …...

【Qt+opencv】基础的图像绘制

文章目录 前言line函数ellipse函数rectangle函数circle函数fillPoly函数putText函数总结 前言 在计算机视觉和图像处理领域&#xff0c;OpenCV是一个强大的库&#xff0c;提供了丰富的功能和算法。而Qt是一个跨平台的C图形用户界面应用程序开发框架&#xff0c;它为开发者提供…...

使用Nginx OpenResty与Redis实现高效IP黑白名单管理

1、引言 在当今数字化时代&#xff0c;网络安全已成为企业和个人用户关注的焦点。IP黑白名单作为一种有效的网络安全策略&#xff0c;允许我们精确控制对Web资源的访问权限。通过白名单&#xff0c;我们可以确保只有可信的IP地址能够访问敏感资源&#xff1b;而黑名单则可以阻…...

EasyExcel导入导出数据类型转换

前言&#xff1a; 1、基本数据类型转换&#xff1a;当前原始的数据类型是interger类型&#xff0c;需要在导出时将其映射为对应的字符串&#xff0c;并且导入时可以将字符串重新映射为interger类型。 2、时间格式转换&#xff1a;数据从数据库中获取的类型为LocalDate类型&…...

stm32入门-----EXTI外部中断(下——实践篇)

目录 前言 一、硬件介绍 1.对射红外线传感器 2.旋转编码器 二、EXTI外部中断C编程 1.开启RCC时钟 2.配置GPIOK口初始化 3.配置AFIO 4.配置EXIT 5.配置NVIC 三、EXIT外部中断项目实操 1.对射红外传感器计数 2.选择编码器计数 前言 本期接着上一期的内容继续学习stm3…...

做电商有哪些网站有哪些/网上哪里接app推广单

[20161002]impdp导入很慢.txt--如果在导入前表以及对应索引已经存在,impdp导入(使用参数TABLE_EXISTS_ACTIONappend)要维护索引,这样在导入时产生大量日志,比--没有表存在的情况下慢很多,通过例子来说明.1.环境:SCOTTtest01p> ver1PORT_STRING VERSION …...

直播推广渠道/seo数据是什么意思

maven下载jar包的默认仓库是http://my.repository.com/repo/path速度较慢&#xff0c;通过配置国内镜像提高下载速度 1.打开eclipse--->Window--->Preferences--->选择Maven下的User Settings 如图找到User Settings路径中的settings.xml文件 2、修改配置文件 OSC的…...

好享管家安卓下载/广州seo代理

欢迎关注专栏&#xff1a;Java架构技术进阶。里面有大量batj面试题集锦&#xff0c;还有各种技术分享&#xff0c;如有好文章也欢迎投稿哦。 微信公众号&#xff1a;慕容千语的架构笔记。欢迎关注一起进步。 Spring Cloud微服务架构介绍 Spring Cloud的目标是为Spring开发人员提…...

宾果 wordpress/南宁百度推广seo

&#xff08;压根就没做几道题&#xff0c;无地自容QAQ&#xff09; gym101138 J 直接上树链剖分线段树&#xff0c;注意处理好端点问题&#xff08;其实有&#xff08;QN&#xff09;logN的做法&#xff09; 1 #include<bits/stdc.h>2 3 using namespace std;4 typedef …...

网站数据库转移/如何在百度上发自己的广告?

在redhat7.2下面安装iftop&#xff0c;监控系统网卡的实时流量日期&#xff1a;2004/07/30 作者&#xff1a;zcatlinux 来源&#xff1a;zclinux 在CU上面发现一篇可以监控网卡的文章&#xff0c;当时很激动&#xff0c;随手找到安装包iftop-0.16&#xff0c;在redhat9.0下面…...

学院网站建设/cnzz数据统计

V831在jupyter 显示拍摄图像使用方法遇到的问题及解决方法折腾了好久终于成功了。不废话看效果 使用方法 怎么做到的呢&#xff1f;一起来吧&#xff0c;先复习一下jupyter怎么用。 本机CMD 输入jupyter notebook 启动jupyter V831启动服务 maixpy3_rpycs 在jupyter建一个网…...