当前位置:首页 » 操作系统 » 逆向转发算法

逆向转发算法

发布时间: 2023-06-16 00:13:46

⑴ 逆向搜索法和爬山法的例子有哪些

逆向搜索
计算机科学术语
科普中国 | 本词条由“科普中国”科学网络词条编写与应用工作项目审核
审阅专家 姚远
逆向搜索就是从目标状态出发进行的搜索,通常是与正向搜索同时进行(双向搜索),如果正向搜索时新扩展的状态是逆向搜索中出现过的,将两段搜索路径连接起来就是找到了一个解(通常是一种搜索步数最少的解)。如果反向搜索时新扩展的状态是正向搜索中出现过的,则与上述一样,也是一种最优解。逆向搜索既是一种技术,又是一种思维,广泛应用于计算机软件、互联网技术、电信技术、工业通用技术及贸易经济等领域。
中文名
逆向搜索
外文名
backward search
相对
正向搜索
学科
计算机技术
本质
逆向思维
人工智能举例互联网应用举例铁路运输举例网络贸易举例计算机软件举例TA说参考资料
人工智能举例
在人工智能中,双向产生式系统是一种同时应用正向和逆向搜索方式的产生式系统。在该系统中,把状态描述和目标描述合并为一数据库,其中状态描述应用F规则,目标描述应用B规则。[1]比如,智能机器人为了制定行动规划,具有自动求解问题的能力,它可用一套特殊的产生式规则在状态空间中搜索求解。为了得到操作序列,可以从当前的状态集出发,进行正向搜索,也可以从目标状态集出发进行逆向搜索,也可根据目标状态和当前状态的差选择合适的操作(手段-目的分析法)等。[2]
互联网应用举例
搜索引擎优化(SEO)的主要工作是通过了解各类搜索引擎如何抓取互联网页面、如何进行索引以及如何确定其对某一特定关键词的搜索结果排名等技术,来对SEO网页进行相关的优化,更改自己的网站,向排列在搜索结果前列的网站学习网站的组织方式和网页的编写方式,使其提高搜索引擎排名,从而提高网站访问量,最终提升网站的销售能力或宣传能力的技术,达到SEO目的。没银这个揣摩搜索引擎的过程是种逆向搜索的过程。
铁路运输举例
逆向进路搜索算法是铁路运输系统中的一种重要算法。这种算法利用站场图和二叉树的相似性,通过站场信息建立二叉树模型,但该算法搜索二叉树的过程与传统的二叉树搜索算法的搜索方向相反,它是由目标孩子向根节点搜索,这种逆向滑大搜索不需要进行遍历搜索,就可以快速有效地完成所有进路的搜索。即在站场图中完成任意一对车站按钮之间的基本进路和变更进路的搜索。为了满足一些特殊的要求(解决车次跟踪的问题),该搜索也能完成任意一对车站设备之间的基本进路和变更进路的搜索。
网络贸易举例
网络目标市场逆向搜索模型的建立思路是首先从分析一个具体产品的原理、功能和用途入手,并考虑它的主要技术规范、价格等其他因素,确定此商品的样本特征;由以上对产品样本特征的分析,推测出有效市场;制定出一套搜索步骤,检索出需要此产品的商务网站,从而找到需此产品的企业、公司等顾客。
计算机软件举例
逆向搜索系统,用于从输入的子字串中检验来自给定列表的一个或几个字的存在的一种系统。字的列表存储在一存储器阵列,其对于存储一个子字的每一存储器单元包括一个比较器。串被分子串。每一子串被加载几次到比较寄存器,每次滚动移动一个子字。在每一存储器单元,同时与输入子串进行比较。对于每一存储器枯让宴单元一个逻辑电路检测串的子字与列表字的子字的相继匹配。只要对于列表的完整字出现匹配,则对这一字设置一信号。设置一列表匹配信号,优先权编码器可用来输出匹配字之一的地址(位置)。[3]一、爬山法简介
爬山法(climbing method)是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。 假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者减少一个单位。例如某个问题的解需要使用3个整数类型的参数x1、x2、x3,开始时将这三个参数设值为(2,2,-2),将x1增加/减少1,得到两个解(1,2,-2), (3, 2,-2);将x2增加/减少1,得到两个解(2,3, -2),(2,1, -2);将x3增加/减少1,得到两个解(2,2,-1),(2,2,-3),这样就得到了一个解集:
(2,2,-2), (1, 2,-2), (3, 2,-2), (2,3,-2), (2,1,-2), (2,2,-1), (2,2,-3)
从上面的解集中找到最优解,然后将这个最优解依据上面的方法再构造一个解集,再求最优解,就这样,直到前一次的最优解和后一次的最优解相同才结束“爬山”。
二、Python实例
设方程 y = x1+x2-x3,x1是区间[-2, 5]中的整数,x2是区间[2, 6]中的整数,x3是区间[-5, 2]中的整数。使用爬山法,找到使得y取值最小的解。
代码如下:
import random
def evaluate(x1, x2, x3):
return x1+x2-x3
if__name__== '__main__':
x_range = [ [-2, 5], [2, 6], [-5, 2] ]
best_sol = [random.randint(x_range[0][0], x_range[0][1]),
random.randint(x_range[1][0], x_range[1][1]),
random.randint(x_range[2][0], x_range[2][1])]
while True:
best_evaluate = evaluate(best_sol[0], best_sol[1], best_sol[2])
current_best_value = best_evaluate
sols = [best_sol]
for i in xrange(len(best_sol)):
if best_sol[i] > x_range[i][0]:
sols.append(best_sol[0:i] + [best_sol[i]-1] + best_sol[i+1:])
if best_sol[i] < x_range[i][1]:
sols.append(best_sol[0:i] + [best_sol[i]+1] + best_sol[i+1:])
print sols
for s in sols:
el = evaluate(s[0], s[1], s[2])
if el < best_evaluate:
best_sol = s
best_evaluate = el
if best_evaluate == current_best_value:
break
print 'best sol:', current_best_value, best_sol
某次运行结果如下:
[[0, 5, 1], [-1, 5, 1], [1, 5, 1], [0, 4, 1], [0, 6, 1], [0, 5, 0], [0, 5, 2]]
[[-1, 5, 1], [-2, 5, 1], [0, 5, 1], [-1, 4, 1], [-1, 6, 1], [-1, 5, 0], [-1, 5, 2]]
[[-2, 5, 1], [-1, 5, 1], [-2, 4, 1], [-2, 6, 1], [-2, 5, 0], [-2, 5, 2]]
[[-2, 4, 1], [-1, 4, 1], [-2, 3, 1], [-2, 5, 1], [-2, 4, 0], [-2, 4, 2]]
[[-2, 3, 1], [-1, 3, 1], [-2, 2, 1], [-2, 4, 1], [-2, 3, 0], [-2, 3, 2]]
[[-2, 2, 1], [-1, 2, 1], [-2, 3, 1], [-2, 2, 0], [-2, 2, 2]]
[[-2, 2, 2], [-1, 2, 2], [-2, 3, 2], [-2, 2, 1]]
best sol: -2 [-2, 2, 2]
可以看到,最优解是-2,对应的x1、x2、x3分别取值-2、2、2。
三、如何找到全局最优
爬山法获取的最优解的可能是局部最优,如果要获得更好的解,多次使用爬山算法(需要从不同的初始解开始爬山),从多个局部最优解中找出最优解,而这个最优解也有可能是全局最优解。
另外,模拟退火算法也是一个试图找到全局最优解的算法。
Python实现的Kmeans++算法实例
1、从Kmeans说起Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kmeans算法。创建7个二维的
Python中的map、rece和filter浅析
1、先看看什么是iterable对象以内置的max函数为例子,查看其doc:printmax.__doc__max(iterable[,key=func])-valuemax(a,b,c,...[,key=func])-,returnitsla
Python中的Numpy入门教程
1、Numpy是什么很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的

⑵ 有没有做算法的人最短路径树SPT有哪些算法

IP 组播技术实现了 IP 网络中点到多点的高效数据传送。因为组播能够有效地节约网络带宽、降低网络负载,所以在实时数据传送、多媒体会议、数据拷贝、游戏和仿真等诸多方面都有广泛的应用。本文介绍了组播的基本概念和目前通用的组播协议,以及组播组网的基本方案;并针对组播业务需求和运营过程中面临的问题,提出了电信级的可运营、可管理的“受控组播”解决方案,包括信源管理、用户管理和组播安全控制等方面的内容。

关键词
组播 运营管理 受控组播 IGMP DVMRP PIM-SM PIM-DM MBGP MSDP

1 组播概述
1.1组播技术的产生原因
传统的IP通信有两种方式:第一种是在一台源 IP 主机和一台目的 IP 主机之间进行,即单播(unicast);第二种是在一台源 IP 主机和网络中所有其它的 IP 主机之间进行,即广播(broadcast)。如果要将信息发送给网络中的多个主机而非所有主机,则要么采用广播方式,要么由源主机分别向网络中的多台目标主机以单播方式发送 IP 包。采用广播方式实现时,不仅会将信息发送给不需要的主机而浪费带宽,也可能由于路由回环引起严重的广播风暴;采用单播方式实现时,由于 IP 包的重复发送会白白浪费掉大量带宽,也增加了服务器的负载。所以,传统的单播和广播通信方式不能有效地解决单点发送多点接收的问题。

IP 组播是指在 IP 网络中将数据包以尽力传送(best-effort)的形式发送到网络中的某个确定节点子集,这个子集称为组播组(multicast group)。IP 组播的基本思想是,源主机只发送一份数据,这份数据中的目的地址为组播组地址;组播组中的所有接收者都可接收到同样的数据拷贝,并且只有组播组内的主机(目标主机)可以接收该数据,网络中其它主机不能收到。组播组用 D 类 IP 地址(224.0.0.0 ~ 239.255.255.255)来标识。

1.2组播技术的市场前景
IP 组播技术有效地解决了单点发送多点接收的问题,实现了 IP 网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。作为一种与单播和广播并列的通信方式,组播的意义不仅在于此。更重要的是,可以利用网络的组播特性方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务领域。

组播从 1988 年提出到现在已经经历了十几年的发展,许多国际组织对组播的技术研究和业务开展进行了大量的工作。随着互联网建设的迅猛发展和新业务的不断推出,组播也必将走向成熟。尽管目前端到端的全球组播业务还未大规模开展起来,但是具备组播能力的网络数目在增加。一些主要的 ISP 已运行域间组播路由协议进行组播路由的交换,形成组播对等体。在 IP 网络中多媒体业务日渐增多的情况下,组播有着巨大的市场潜力,组播业务也将逐渐得到推广和普及。

2 组播技术的基本原理
组播技术涵盖的内容相当丰富,从地址分配、组成员管理,到组播报文转发、路由建立、可靠性等诸多方面。下面首先介绍组播协议体系的整体结构,之后从组播地址、组播成员管理、组播报文转发、域内组播路由和域间组播路由等几个方面介绍有代表性的协议和机制。

2.1组播协议体系结构
根据协议的作用范围,组播协议分为主机-路由器之间的协议,即组播成员管理协议,以及路由器-路由器之间协议,主要是各种路由协议。组成员关系协议包括 IGMP(互连网组管理协议);组播路由协议又分为域内组播路由协议及域间组播路由协议两类。域内组播路由协议包括 PIM-SM、PIM-DM、DVMRP 等协议,域间组播路由协议包括 MBGP、MSDP 等协议。同时为了有效抑制组播数据在二层网络中的扩散,引入了 IGMP Snooping 等二层组播协议。

通过 IGMP 和二层组播协议,在路由器和交换机中建立起直联网段内的组成员关系信息,具体地说,就是哪个接口下有哪个组播组的成员。域内组播路由协议根据 IGMP 维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树,在路由器中建立组播路由状态,路由器根据这些状态进行组播数据包转发。域间组播路由协议根据网络中配置的域间组播路由策略,在各自治系统(AS,Autonomous System)间发布具有组播能力的路由信息以及组播源信息,使组播数据能在域间进行转发。

2.2组播地址机制
2.2.1组播IP地址
IP组播地址用于标识一个 IP 组播组。IANA 把 D 类地址空间分配给组播使用,范围从 224.0.0.0 到 239.255.255.255。如下图所示(二进制表示),IP 组播地址前四位均为“1110”。

2.2.2组播地址的划分
整个 IP 组播地址的空间划分如下图所示。

其中:

224.0.0.0 到 224.0.0.255 地址范围被 IANA 预留,地址 224.0.0.0 保留不做分配,其它地址供路由协议及拓扑查找和维护协议使用。该范围内的地址属于局部范畴,不论生存时间字段(TTL)值是多少,都不会被路由器转发;

224.0.1.0 到 238.255.255.255 地址范围作为用户组播地址,在全网范围内有效。其中233/8 为 GLOP 地址。GLOP 是一种自治系统之间的组播地址分配机制,将 AS 号直接填入组播地址的中间两个字节中,每个自治系统都可以得到 255 个组播地址;

239.0.0.0 到 239.255.255.255 地址范围为本地管理组播地址(***istratively scoped addresses),仅在特定的本地范围内有效。

当 IP 层收到组播数据报文时,根据组播目的地址查找组播转发表,对报文进行转发。

2.2.3IP 组播地址到 MAC 地址的映射
IANA 将 MAC 地址范围 01:00:5E:00:00:00 ~ 01:00:5E:7F:FF:FF 分配给组播使用,这就要求将28位的 IP 组播地址空间映射到 23 位的 MAC 地址空间中,具体的映射方法是将组播地址中的低 23 位放入 MAC 地址的低 23 位,如下图所示。

由于 IP 组播地址的后 28 位中只有 23 位被映射到 MAC 地址,这样会有 32 个 IP 组播地址映射到同一 MAC 地址上。

2.3组播成员管理
2.3.1IGMP ( Internet Group Management Protocol )
IGMP 协议运行于主机和与主机直接相连的组播路由器之间,IGMP 实现的功能是双向的:一方面,通过 IGMP 协议,主机通知本地路由器希望加入并接收某个特定组播组的信息;另一方面,路由器通过 IGMP 协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。通过 IGMP,在路由器中记录的信息是某个组播组是否在本地有组成员,而不是组播组与主机之间的对应关系。

到目前为止,IGMP 有三个版本。IGMPv1(RFC1112)中定义了基本的组成员查询和报告过程;目前通用的是 IGMPv2,由 RFC2236 定义,在 IGMPv1 的基础上添加了组成员快速离开的机制;IGMPv3 中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。以下着重介绍 IGMPv2 协议的原理。

IGMPv2 的原理如下图所示:

当同一个网段内有多个组播路由器时,IGMPv2 通过查询器选举机制从中选举出唯一的查询器。查询器周期性地发送通用组查询消息进行成员关系查询;主机发送报告消息来响应查询。主机发送报告消息的时间有随机性,当检测到同一网段内有其它成员发送同样的消息时,则抑制自己的响应报文。如果有新的主机要加入组播组,不必等待查询器的查询消息,而是主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。对于作为组成员的路由器而言,其行为和普通的主机一样,响应其它路由器的查询。

通过上述机制,在组播路由器里建立起一张表,其中记录了路由器的各个接口所对应的子网上都有哪些组的成员。当路由器接收到某个组 G 的数据报文后,只向那些有 G 的成员的接口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,不是 IGMP 协议的功能。

2.3.2二层环境中组成员管理的实现
IGMP 组播成员管理机制是针对第三层设计的,在第三层,路由器可以对组播报文的转发进行控制,只要进行适当的接口配置和对 TTL 值的检测就可以了。但是在很多情况下,组播报文要不可避免地经过一些二层交换设备,尤其是在局域网环境里。如果不对二层设备进行相应的配置,则组播报文就会转发给二层交换设备的所有接口,这显然会浪费大量的系统资源。IGMP 监听(IGMP Snooping)可以解决这个问题。

IGMP 监听的工作原理如下:

主机发出 IGMP 成员报告消息,这个消息是给路由器的;在 IGMP 成员报告经过交换机时,交换机对这个消息进行监听并记录下来,形成组成员和接口的对应关系;

交换机在收到组播数据报文时,根据组成员和接口的对应关系,仅向具有组成员的接口转发组播报文。

IGMP 监听可以解决二层环境中的组播报文泛滥问题,但要求交换机具有提取第三层信息的功能;其次,要求交换机对所有的组播报文进行监听和解读,这会产生很多的无效工作;此外,组播报文监听和解读工作也会占用大量的 CPU 处理时间。

2.4组播报文转发
与单播报文的转发相比,组播报文的转发相对复杂。一方面,组播路由类型与单播路由不同,是点到多点的一棵路由树;另一方面组播报文转发的处理过程也有所不同。

2.4.1组播路由的分类
组播路由可以分为两大类:信源树(Source Tree)和共享树(Shared Tree)。信源树是指以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。由于信源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(shor*** path tree,SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。 共享树以某个路由器作为路由树的树根,该路由器称为汇集点(Rendezvous Point,RP),将 RP 到所有接收者的最短路结合起来构成转发树。使用共享树时,对应某个组,网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。

信源树的优点是能构造组播源和接收者之间的最短路径,使端到端的延迟达到最小;但是付出的代价是,在路由器中必须为每个组播源保存路由信息,这样会占用大量的系统资源,路由表的规模也比较大。共享树的最大优点是路由器中保留的状态数可以很少,缺点是组播源发出的报文要先经过 RP,再到达接收者,经由的路径通常并非最短,而且对 RP 的可靠性和处理能力要求很高。

2.4.2组播报文转发过程
单播报文的转发过程中,路由器并不关心组播源地址,只关心报文中的目的地址,通过目的地址决定向哪个接口转发。在组播中,报文是发送给一组接收者的,这些接收者用一个逻辑地址标识。路由器在接收到报文后,必须根据源和目的地址确定出上游(指向组播源)和下游方向,把报文沿着远离组播源的方向进行转发。这个过程称作 RPF(Reverse Path Forwarding,逆向路径转发)。

RPF 执行过程中会用到原有的单播路由表以确定上游和下游的邻接结点。只有当报文是从上游邻接结点对应的接口(称作 RPF 接口)到达时,才向下游转发。RPF 的作用除了可以正确地按照组播路由的配置转发报文外,还能避免由于各种原因造成的环路,环路避免在组播路由中是一个非常重要的问题。RPF 的主体是 RPF 检查,路由器收到组播报文后,先对报文进行 RPF 检查,只有检查通过才转发,否则丢弃。RPF 检查过程如下:

1)路由器在单播路由表中查找组播源或 RP 对应的 RPF 接口(当使用信源树时,查找组播源对应的 RPF 接口,使用共享树时查找 RP 对应的 RPF 接口),某个地址对应的 RPF 接口是指从路由器向该地址发送报文时的出接口;

2)如果组播报文是从 RPF 接口接收下来的,则 RPF 检查通过,报文向下游接口转发;

3)否则,丢弃该报文。

2.5域内组播路由协议
与单播路由一样,组播路由也分为域内和域间两大类。域内组播路由目前已经讨论的相当成熟,在众多的域内路由协议中,DVMRP(距离矢量组播路由协议)、PIM-DM(密集模式协议无关组播)和PIM-SM(稀疏模式协议无关组播)是目前应用最多的协议。

2.5.1DVMRP(Distance Vector Multicast Routing Protocol)
DVMRP 是第一个在 MBONE 上得到普遍使用的组播路由协议,它在 RIP 协议的基础上扩充了支持组播的功能。DVMRP 协议首先通过发送探测消息来进行邻居发现,之后通过路由交换来进行单播寻径和确定上下游依赖关系。

DVMRP 采用逆向路径组播(RPM)算法进行组播转发。当组播源第一次发送组播报文时,使用截断逆向路径组播(truncated RPM)算法沿着源的组播分发树向下转发组播报文。当叶子路由器不再需要组播数据包时,它朝着组播源发送剪枝消息,对组播分发树进行剪枝,借此除不必要的通信量。上游路由器收到剪枝消息后将收到此消息的接口置为剪枝状态,停止转发数据。剪枝状态关联着超时定时器,当定时器超时时,剪枝状态又重新变为转发状态,组播数据再次沿着这些分支流下。另外,当剪枝区域内出现了组播组成员时,为了减少反应时间,下游不必等待上游剪枝状态超时,而是主动向上游发送嫁接报文,以使剪枝状态变为转发状态。可见,DVMRP 是由数据触发驱动,建立组播路由表,而路由树的建立过程可以概括为“扩散与剪枝”(Broadcast and Prune)。转发特点可以概括为“被动接受,主动退出”。

另外,在多路访问网络中,当有两个或多个的组播路由器时,网络上可能会重复转发包。为了防止这种情况出现,在多路访问网络上,DVMRP 为每个源选择了一个唯一的转发器。

2.5.2PIM-DM(Protocol Independent Multicast Dense Mode)
在 PIM-DM 域中,运行 PIM-DM 协议的路由器周期性的发送 Hello 消息,发现邻接的 PIM 路由器,进行叶子网络、叶子路由器的判断,并且负责在多路访问网络中选举指定路由器(DR)。

PIM-DM 协议使用下面的假设:当组播源开始发送组播数据时,域内所有的网络节点都需要接收数据,因此采用“扩散-剪枝”的方式进行组播数据包的转发。组播源开始发送数据时,沿途路由器向除组播源对应的 RPF 接口之外的所有接口转发组播数据包。这样,PIM-DM 域中所有网络节点都会收到这些组播数据包。为了完成组播转发,沿途的路由器需要为组 G 和源 S 创建相应的组播路由项 (S, G)。 (S, G) 路由项包括组播源地址、组播组地址、入接口、出接口列表、定时器和标志等。

如果网络中某区域没有组播组成员,该区域内的路由器会发送剪枝消息,将通往该区域的转发接口剪枝,并且建立剪枝状态。剪枝状态对应着超时定时器。当定时器超时时,剪枝状态又重新变为转发状态,组播数据得以再次沿着这些分支流下。另外,剪枝状态包含组播源和组播组的信息。当剪枝区域内出现了组播组成员时,为了减少反应时间,协议不必等待上游剪枝状态超时,而是主动向上游发送嫁接报文,以使剪枝状态变为转发状态。

2.5.3PIM-SM(Protocol Independent Multicast Sparse Mode)
在 PIM-SM 域中,运行 PIM-SM 协议的路由器周期性的发送 Hello 消息,用以发现邻接的 PIM 路由器,并且负责在多路访问网络中进行 DR 的选举。这里,DR 负责为与其直连的组成员向组播树根节点的方向发送“加入/剪枝”消息,或是将直连组播源的数据发向组播分发树。

PIM-SM 通过建立组播分发树来进行组播数据包的转发。组播分发树分为两种:以组 G 的 RP 为根的共享树和以组播源为根的最短路径树。PIM-SM 通过显式的加入/剪枝机制来完成组播分发树的建立与维护。

PIM-SM 中还涉及到 RP 的选择机制。在 PIM-SM 域内配置了一个或多个候选自举路由器(Candidate-BSR)。使用一定的规则从中选出自举路由器 (BSR) 。PIM-SM 域中还配置有候选 RP 路由器(Candidate-RP),这些候选 RP 将包含了它们地址及可以服务的组播组等信息的报文单播发送给自举路由器,再由 BSR 定期生成包括一系列候选 RP 以及相应的组地址的“自举”消息。“自举”消息在整个域中逐跳发送。路由器接收并保存这些“自举”消息。若 DR 从直连主机收到了 IGMP 加入报文后,如果它没有这个组的路由项,将使用 hash 算法将组地址映射到一个候选 RP。然后朝 RP 方向逐跳组播“加入/剪枝”消息。若 DR 从直连主机收到组播数据包,如果它没有这个组的路由项,也将使用 hash 算法将组地址映射到一个候选 RP,然后将组播数据封装在注册消息中单播发送到 RP。

在多路访问网络中,PIM-SM 还引入了以下机制:使用断言机制选举唯一的转发者,以防向同一网段重复转发组播数据包;使用加入/剪枝抑制机制减少冗余的加入/剪枝消息;使用剪枝否决机制否决不应有的剪枝行为。

2.6域间组播路由协议
域间组播目前仍然处于研究和试验阶段,目前比较成型的解决方案是下面三个协议的组合:

MBGP(组播边界网关协议),用于在自治域之间交换组播路由信息;MSDP(组播信源发现协议),用于在 ISP 之间交换组播信源信息;PIM-SM,用作域内的组播路由协议。

PIM-SM 前文已经介绍,这里重点介绍 MBGP 和 MSDP,以及 PIM-SM / MBGP / MSDP 组合方案的工作过程。

2.6.1MBGP(MultiProtocol Border Gateway Protocol)
域间路由的首要问题是路由信息(或者说可达信息)如何在自治系统之间传递,由于不同的 AS 可能属于不同的运营商,因此除了距离信息外,域间路由信息必须包含运营商的策略,这是与域内路由信息的不同之处。

目前使用最多的域间单播路由协议是 BGP-4。为了实现域间组播路由信息的传递,必须对 BGP 进行改动,因为组播的网络拓扑和单播拓扑有可能不同。这里既有物理方面的原因,也有策略方面的原因。网络中的一些路由器可能只支持单播不支持组播,也可能按照策略配置不转发组播报文。为了构造域间组播路由树,除了要知道单播路由信息外,还要知道网络中哪些部分是支持组播的,即组播的网络拓扑情况。简而言之,域间的组播路由信息交换协议应该满足下面的要求:

能对单播和组播拓扑进行区分;

有一套稳定的对等和策略控制方法。

BGP-4 已经满足后一个条件,而且已经被证明是一个有效的、稳定的单播域间路由协议,因此合理的解决方案是对 BGP-4 协议进行增强和扩展,而不是构建一套全新的协议。在 RFC2858 中规定了对 BGP 进行多协议扩展的方法,扩展后的 BGP 协议(MBGP,也写作 BGP-4+)不仅能携带 IPv4 单播路由信息,也能携带其它网络层协议(如组播、IPv6 等)的路由信息,携带组播路由信息只是其中一个扩展功能。

有了 MBGP 之后,单播和组播路由信息可以通过同一个进程交换,但是存放在不同的路由表里。由于 MBGP 是 BGP-4 协议的一个增强版,因此 BGP-4 所支持的常见的策略和配置方法都可以用到组播里。

2.6.2MSDP(Multicast Source Discovery Protocol)
对于 ISP 来说,不希望依靠竞争对手的 RP 转发组播流量,但同时又要求无论信源的 RP 在哪里,都能从信源获取信息发给自己内部的成员。MSDP 就是为了解决这个问题而提出的。在 MSDP 里使用的是域间信源树而不是公共树,而且要求域内组播路由协议必须是 PIM-SM。

在 MSDP 中,某个域内的 RP 使用 TCP 连接与其它域内的 RP 建立 MSDP 对等关系,用这些对等关系交换信源信息。如果本地的接收者要接收其它域的信源发出的报文,则使用与 PIM-SM 中同样的方法构造信源树。

PIM-SM / MBGP / MSDP 组合方案实际上是 PIM-SM 协议在域间环境下的扩展。如果把整个 PIM-SM / MBGP / MSDP 组合方案机制看作 PIM-SM,则所有域的 RP 的集合就是 PIM-SM 协议中的“RP”,而 PIM-SM / MBGP / MSDP 无非是增加了两个过程:

1、信源信息在 RP 集合中的泛滥,以实现信源和成员在“RP”点的会合;

2、域间组播路由信息的传递,目的是保证组播报文在域间的顺利转发。在上述过程中,AS3 中的 RP 和收端向 AS2 中的远端建立逆向路径的过程中都需要用到 MBGP 传递的组播拓扑信息。

⑶ 山东大学的王小云真的研究出了MD5的逆向算法吗

MD5是不可能逆向的。王教授的碰撞法是利用了MD5或者SHA1算法的一个特性,根据MD5和SHA1等Hash算法的特点,因为他们是任意长度的字符串变成固定长度的摘要信息。那么这里就有可能发生一个问题,就是不同的字符串在理论上是有可能产生相同的摘要信息。王教授所谓的碰撞法,碰撞的就是不同的字符串所产生的摘要信息是一样的那些字符串。因此得名碰撞法。 碰撞就是体现在这里。没有什么其它的传神的东西了。根据SHA1和MD5等Hash算法,在设计时候,设计这个算法的人认为不同的字符串要产生相同结果的摘要信息的可能性几乎为零。而王教授则证明了SHA1和MD5等Hash算法产生的摘要信息规则是可以在比较短时间内被破解的。这样一来,原始数据的 Integrity 就被打破了。 所谓的破解,也就是体现在这里。至于破解工具,下面的地址提供一些免费的破解服务,能破解一些简单的密码,其实都是采用字典或暴力破解。 www.cmd5.com www.xmd5.org我有时去破解一些常用的密码,有一定的成功率

⑷ 着名的可逆的加密算法有哪些

1,DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合。

2,3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。

3,RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快。

4,IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性。

5,RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法。

(4)逆向转发算法扩展阅读:

据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。

随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。

使用密码学可以达到以下目的:

保密性:防止用户的标识或数据被读取。

数据完整性:防止数据被更改。

身份验证:确保数据发自特定的一方。

参考资料来源:网络-加密算法

⑸ 透明网桥的逆向学习法

透明网桥采用的算法是逆向学习法(backward learning)。网桥按混杂的方式工作,故它能看见所连接的任一LAN上传送的帧。查看源地址即可知道在哪个LAN上可访问哪台机器,于是在散列表中添上一项。
当计算机和网桥加电、断电或迁移时,网络的拓扑结构会随之改变。为了处理动态拓扑问题,每当增加散列表项时,均在该项中注明帧的到达时间。每当目的地已在表中的帧到达时,将以当前时间更新该项。这样,从表中每项的时间即可知道该机器最后帧到来的时间。网桥中有一个进程定期地扫描散列表,清除时间早于当前时间若干分钟的全部表项。于是,如果从LAN上取下一台计算机,并在别处重新连到LAN上的话,那么在几分钟内,它即可重新开始正常工作而无须人工干预。这个算法同时也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不散发,一直到它自己发送出一帧为止。
到达帧的路由选择过程取决于发送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:
1、如果源LAN和目的LAN相同,则丢弃该帧。
2、如果源LAN和目的LAN不同,则转发该帧。
3、如果目的LAN未知,则进行扩散。
为了提高可靠性,有人在LAN之间设置了并行的两个或多个网桥,但是,这种配置引起了另外一些问题,因为在拓扑结构中产生了回路,可能引发无限循环。

⑹ 逆向工程是怎么实现的能举例吗

逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。在2007年初,我国相关的法律为逆向工程正名,承认了逆向技术用于学习研究的合法性。
在工程技术人员的一般概念中,产品设计过程是一个从设计到产品的过程,即设计人员首先在大脑中构思产品的外形、性能和大致的技术参数等,然后在详细设计阶段完成各类数据模型,最终将这个模型转入到研发流程中,完成产品的整个设计研发周期。这样的产品设计过程我们称为“正向设计”过程。逆向工程产品设计可以认为是一个从产品到设计的过程。简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。从这个意义上说,逆向工程在工业设计中的应用已经很久了。比如早期的船舶工业中常用的船体放样设计就是逆向工程的很好实例。
随着计算机技术在各个领域的广泛应用,特别是软件开发技术的迅猛发展,基于某个软件,以反汇编阅读源码的方式去推断其数据结构、体系结构和程序设计信息成为软件逆向工程技术关注的主要对象。软件逆向技术的目的是用来研究和学习先进的技术,特别是当手里没有合适的文档资料,而你又很需要实现某个软件的功能的时候。也正因为这样,很多软件为了垄断技术,在软件安装之前,要求用户同意不去逆向研究。
逆向工程的实施过程是多领域、多学科的协同过程。

热点内容
存储卡160ms 发布:2025-03-24 14:36:32 浏览:578
ad6怎么编译 发布:2025-03-24 14:31:50 浏览:117
苹果平板游戏密码可以是多少 发布:2025-03-24 14:22:11 浏览:413
正在连接外设服务器是什么意思 发布:2025-03-24 13:40:34 浏览:334
安卓怎么模仿苹果弹窗 发布:2025-03-24 13:33:47 浏览:17
游戏官网源码 发布:2025-03-24 13:14:04 浏览:572
九游原神是什么服务器 发布:2025-03-24 13:12:32 浏览:271
服务器可以用自己的电脑做吗 发布:2025-03-24 13:11:09 浏览:4
python取进程pid 发布:2025-03-24 13:09:36 浏览:244
高质量c编程 发布:2025-03-24 13:07:33 浏览:236