CN104301221B - 一种路由消息的方法及装置 - Google Patents
一种路由消息的方法及装置 Download PDFInfo
- Publication number
- CN104301221B CN104301221B CN201410535818.3A CN201410535818A CN104301221B CN 104301221 B CN104301221 B CN 104301221B CN 201410535818 A CN201410535818 A CN 201410535818A CN 104301221 B CN104301221 B CN 104301221B
- Authority
- CN
- China
- Prior art keywords
- request message
- routing
- mark
- errored response
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种路由消息的方法及装置,属于通信领域领域。所述方法包括:接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识;根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;发送所述第一请求消息给所述下一跳设备。所述装置包括:接收模块、选择模块和发送模块。本发明能够避免在网络中产生大量的信令以及产生信令风暴。
Description
技术领域
本发明涉及通信领域,特别涉及一种路由消息的方法及装置。
背景技术
在Diameter(直径)网络中,当客户端需要发送请求消息给位于网络中的网元时,客户端先将该请求消息发送给位于该客户端与该网元之间的路径上的路由节点,路由节点找出下一跳并将该请求消息路由给该下一跳。如果该下一跳也是个路由节点,该路由节点按上述方法将该请求消息路由给下一跳,直到该请求消息被路由至该网元。
其中,在将客户端的请求消息发送给网元的过程中,如果该路径上的某个路由节点发现无法将该请求消息送达到该网元,此时该路由节点沿该路径往回返回错误响应,该路径上的路由节点当接收到该错误响应后可以为该请求消息路由重选,并通过重选的路由将该请求消息发送给该网元。然而,目前的路由重选技术,使得很多路由设备重复地为该请求消息进行路由重选,导致在网络中产生大量的信令,甚至造成信令风暴。
发明内容
为了避免在网络中产生大量的信令以及产生信令风暴,本发明提供了路由消息的方法及装置。所述技术方案如下:
第一方面,一种路由消息的方法,所述方法包括:
接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识;
根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
发送所述第一请求消息给所述下一跳设备。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一错误响应对应的第一请求消息选择所述第一请求消息未经过的下一跳设备,包括:
从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
结合第一方面,在第一方面的第三种可能的实现方式中,所述发送所述第一请求消息给所述下一跳设备,包括:
将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
结合第一方面或第一方面的第一至第三中任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
第二方面、一种路由消息的方法,所述方法包括:
接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
结合第二方面,在第二方面的第一种可能的实现方式中,所述方法还包括:
接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
如果不能,将所述第二错误响应转发给上游设备。
第三方面、一种路由消息的装置,所述装置包括:
接收模块,用于接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识;
选择模块,用于根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
发送模块,用于发送所述第一请求消息给所述下一跳设备。
结合第三方面,在第三方面的第一种可能的实现方式中,所述选择模块包括:
第一获取单元,用于从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
第二获取单元,用于根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
去除单元,用于从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
选择单元,用于如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述装置还包括:
添加模块,用于如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
结合第三方面,在第三方面的第三种可能的实现方式中,
所述发送模块,用于将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
结合第三方面或第三方面的第一至第三中任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述装置还包括:
设置模块,用于接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
第四方面、一种路由消息的装置,所述装置包括:
接收模块,用于接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断模块,用于判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
生成模块,用于如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送模块,用于发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括:
接收模块,用于接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
确定模块,用于根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
转发模块,用于如果不能,将所述第二错误响应转发给上游设备。
在本发明实施例中,由于第一错误响应携带其经过的路由设备的标识,如此路由设备可以根据第一错误响应经过的路由设备的标识和本地存储的第一错误响应对应的第一请求消息经过的路由设备的标识,为第一请求消息选择第一请求消息未经过的下一跳设备,从而避免路由设备重复地为第一请求消息进行路由重选,避免在网络中产生大量的信令以及避免产生信令风暴。
附图说明
图1-1是本发明实施例应用的网络架构示意图;
图1-2是本发明实施例1提供的一种路由消息的方法流程图;
图2是本发明实施例2提供的一种路由消息的方法流程图;
图3是本发明实施例3提供的一种路由消息的方法流程图;
图4是本发明实施例4提供的一种路由消息的方法流程图;
图5是本发明实施例5提供的一种路由消息的装置结构示意图;
图6是本发明实施例6提供的一种路由消息的装置结构示意图;
图7是本发明实施例7提供的一种路由消息的装置结构示意图;
图8是本发明实施例8提供的一种路由消息的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图1-1,本发明实施例应用于Diameter网络中,Diameter网络由多个路由设备组成。位于Diameter网络中的每个路由设备中包含路由表,路由表用于存储至少一个目的设备的路由信息和至少一个目的设备中的每个目的设备对应的至少一个下一跳设备的标识,下一跳设备的标识可以为下一跳设备的IP(Internet Protocol,网络之间互连的协议)地址或下一跳设备的主机名域名等,目的设备的路由信息可以为目的设备的地址或目的设备对应的用户的用户标识。
客户端和服务器等设备连接到Diameter网络,当客户端需要目的设备发送请求消息时,该请求消息中包含目的设备的路由信息,目的设备可以为服务器等设备,客户端先向与其直接相连的路由设备发送该请求消息。该路由设备接收该请求消息,根据该请求消息包含的路由信息,从路由表中找出对应的下一跳设备的标识,从找出的每个下一跳设备的标识对应的设备中选择一个下一跳设备,优选的,从找出的每个下一跳设备的标识对应的下一跳设备中选择能最近到达目的设备的下一跳设备,向选择的下一跳设备发送该请求消息。如果选择的下一跳设备不是目的设备而是一个路由设备,选择的下一跳设备按上述方法将该请求消息转发给其下一跳设备,直到将该请求消息转发给目的设备时为止。
参见图1-1所示的Diameter网络,该Diameter网络包括路由设备1、2、3和4,当客户端需要将请求消息发送给服务器时,客户端可以先向路由设备1发送该请求消息,该请求消息中包含目的设备的路由信息IPserver,路由信息IPserver为该服务器的地址。路由设备1接收该请求消息,根据该请求消息包含的路由信息IPserver,从自身存储的路由表找出对应的下一跳设备的标识,找出的下一跳设备的标识包括路由设备2的地址IP2和路由设备3的地址IP3,从找出的路由设备2的地址IP2对应的路由设备2和路由设备3的地址IP3对应的路由设备3中选择到达目的设备最近的下一跳设备,假设选择路由设备3,向路由设备3发送该请求消息。
路由设备3接收该请求消息,根据该请求消息包含的路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识,找出的下一跳设备的标识包括该服务器的地址IPserver和路由设备4的地址IP4,从找出的该服务器的地址IPserver对应的服务器和路由设备4的地址IP4对应的路由设备4中选择达到目的设备最近的下一跳设备,选择的下一跳设备为该服务器,向该服务器发送该请求消息。
其中,需要说明中,路由设备在接收上游设备发送的请求消息后,如果发现无法将该请求消息送达到目的设备,则生成错误响应,将该错误响应返回给上游设备。该上游设备可以通过如下实施例提供的路由消息的方法来路由该错误响应对应的请求消息。
实施例1
参见图1-2,本发明实施例提供了一种路由消息的方法,包括:
步骤101:接收下游设备发送的第一错误响应,第一错误响应至少携带第一错误响应经过的路由设备的标识。
步骤102:根据第一错误响应经过的路由设备的标识和本地存储的第一错误响应对应的第一请求消息经过的路由设备的标识,为第一请求消息选择第一请求消息未经过的下一跳设备。
步骤103:发送第一请求消息给选择的下一跳设备。
在本发明实施例中,由于第一错误响应携带其经过的路由设备的标识,如此路由设备可以根据第一错误响应经过的路由设备的标识和本地存储的第一错误响应对应的第一请求消息经过的路由设备的标识,为第一请求消息选择第一请求消息未经过的下一跳设备,从而避免路由设备重复地为第一请求消息进行路由重选,避免在网络中产生大量的信令以及避免产生信令风暴。
实施例2
参见图2,本发明实施例提供了一种路由消息的方法,包括:
步骤201:第一路由设备接收客户端发送的请求消息,第一路由设备为与客户端直接相连的路由设备,该请求消息包含目的设备的路由信息。
当客户端需要发送请求消息给目的设备时,客户端从与其直接相连的路由设备中选择一个路由设备。优选的,选择到达目的设备的路径最近的路由设备,为了便于说明将选择的路由设备称为第一路由设备。然后客户端再向第一路由设备发送该请求消息。
例如,参见图1-1,当客户端需要发送请求消息给服务器时,客户端从与其直接相连的路由设备1和2中选择路由设备1,向与其直接相连的路由设备1发送请求消息,该请求消息包含目的设备的路由信息,该路由信息为该服务器的地址IPserver。
步骤202:第一路由设备根据该请求消息包含的路由信息获取下一跳设备,向该下一跳设备转发该请求消息。
具体地,第一路由设备根据该请求消息包含的路由信息,从自身存储的路由表中找出对应的下一跳设备的标识,将找出的每个下一跳设备的标识对应的下一跳设备组成第一设备集合,从剩下的路由设备中选择一下一跳设备,优选的,选择最近到达目的设备的下一跳设备,将自身的标识添加到该请求消息,向选择的下一跳设备转发该请求消息。
进一步地,第一路由设备将自身的标识添加到该请求消息后,还可以存储该请求消息。
例如,路由设备1接收客户端发送的请求消息,根据该请求消息包含的路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识包括路由设备2的地址IP2和路由设备3的地址IP3。将找出的路由设备2的地址IP2对应的路由设备2和路由设备3的地址IP3对应的路由设备3组成第一设备集合,从第一设备集合中选择一下一跳设备,假设选择的下一跳设备为路由设备3,将自身的标识IP1添加到该请求消息中,存储该请求消息以及向路由设备3转发该请求消息。
其中,如果第一路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第一路由设备从第一设备集合中去除选择的下一跳设备得到第二设备集合。如果第二设备集合不为空,则从第二设备集合中重新选择一下一跳设备,向选择的下一跳设备转发该请求消息。如果第二设备集合为空,则生成错误响应,将自身的标识添加到该错误响应,向客户端发送该错误响应。客户端根据该错误响应携带的第一路由设备的标识,从与其自身相连的路由设备中去除第一路由设备,如果还存在剩下的路由设备,则从剩下的路由设备中选择一路由设备,将该请求消息发送给选择的路由设备。
第一路由设备选择的下一跳设备可能为目的设备或者为路由设备。当选择的下一跳设备为目的设备,则第一路由器将该请求消息转发给目的设备;如果目的设备成功接收到该请求消息,则结束操作。当选择的下一跳设备为路由设备且该路由设备成功接收到该请求消息,则该路由设备执行后续步骤。
其中,如果目的设备没有成功接收到该请求消息,第一路由设备从第一设备集合重新选择一个下一跳设备,该下一跳设备为一个路由设备,且该路由设备执行后续步骤。
步骤203:第二路由设备接收其上游路由设备发送的该请求消息,根据该请求消息携带的路由信息获取第一设备集合,第一设备集合包括至少一个下一跳设备。
第二路由设备可以为第一路由设备选择的下一跳路由设备或者为Diameter网络中的其他路由设备。
本步骤可以为:第二路由设备接收其上游路由设备发送的该请求消息,根据该请求消息包含的路由信息,从自身存储的路由表中找出对应的下一跳设备的标识,将找出的每个下一跳设备的标识对应的下一跳设备组成第一设备集合。
例如,路由设备3接收路由设备1发送的请求消息,根据该请求消息包含的路由信息IPserver,根据路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识包括路由设备4的地址IP4和服务器的地址IPserver。将找出的路由设备4的地址IP4对应的路由设备4和服务器的地址IPserver对应的服务器组成第一设备集合。
步骤204:第二路由设备从第一设备集合去除该请求消息经过的路由设备得到第二设备集合,从第二设备集合中选择一下一跳设备,向选择的下一跳设备转发该请求消息。
具体地,第二路由设备从该请求消息中提取该请求消息携带的路由设备的标识,该提取的路由设备的标识即为该请求消息经过的路由设备的标识,从第一设备集合中去除该请求消息经过的路由设备的标识对应的路由设备得到第二设备集合,从第二设备集合中选择最近到达目的设备的下一跳设备,将自身的标识添加到该请求消息中,存储该请求消息,并向选择的下一跳设备转发该请求消息。
例如,路由设备3从该请求消息提取该请求消息经过的路由设备的标识为IP1,从第一设备集合中去除该请求消息经过的路由设备的标识IP1对应的路由设备1得到第二设备集合,第二设备集合包括路由设备4和服务器,从第二设备集合包括的路由设备4和服务器中选择一下一跳设备,且选择的下一跳设备为服务器,将自身的标识IP3添加到该请求消息中,存储该请求消息,并向服务器转发该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作。如果目的设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备执行如下步骤205。
当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在成功接收到该请求消息后,同第二路由设备一样执行上述步骤203和204的操作。
如果该下一跳设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备需要执行如下步骤205的操作。
步骤205:如果没有成功地将该请求消息送达到该下一跳设备,则第二路由设备从第二设备集合中去除选择的下一跳设备得到第三设备集合。
例如,假设服务器没有成功接收路由设备3转发的该请求消息,路由设备3从第二设备集合包括的路由设备4和服务器中去除服务器,得到的第三设备集合中包括路由设备4。
步骤206:如果第三设备集合不为空,则第二路由设备从第三设备集合中重新选择一下一跳设备,向选择的下一跳设备转发该请求消息。
例如,第三设备集合中包括路由设备4,所以第三设备集合不为空,路由设备3从第三设备集合中选择路由设备4,向路由设备4转发该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作,如果目的设备没有成功接收到该请求消息,则从第三设备集合中去除选择下一跳设备,然后重新执行本步骤。
当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在该下一跳设备成功接收到该请求消息后,同第二路由设备一样执行上述步骤203和204的操作。
如果该下一跳设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备从第三设备集合中去除选择的下一跳设备,然后重新执行本步骤。
例如,路由设备4接收路由设备3转发的请求消息,根据该请求消息携带的路由信息IPserver,从自身存储的路由表中找出下一跳设备的标识为IPserver,将下一跳设备的标识IPserver对应的服务器组成第一设备集合;从该请求消息中提取该请求消息经过的路由设备的标识IP1和IP3,从第一设备集合中去除该请求消息经过的路由设备的标识IP1对应的路由设备1和IP3对应的路由设备3,得到第二设备集合,第二设备集合包括该服务器,从第二设备集合中选择下一跳设备为该服务器,将自身的标识IP4添加到该请求消息中,存储该请求消息并向该服务器转发该请求消息。
步骤207:如果第三设备集合为空,则第二路由设备生成错误响应,将自身的标识添加到该错误响应,向其上游路由设备发送该错误响应。
其中,生成的错误响应还携带该请求消息的标识。
例如,假设路由设备4没有将该请求消息送达到服务器,然后路由设备4从第二设备集合中去除选择的下一跳设备,即去除选择的服务器,得到第三设备集合,且第三设备集合为空。如此,路由设备4生成错误响应,将自身的标识IP4添加到该错误响应中,路由设备4的上游设备为路由设备3,向路由设备3发送该错误响应。
步骤208:第三路由设备接收其下游设备发送的错误响应,从本地存储的该错误响应对应的请求消息中获取该路由信息。
其中,第三路由设备为第二路由设备的上游设备或者为Diameter网络中的其他路由设备。
本步骤可以为:第三路由设备接收其下游设备发送的错误响应,从该错误响应中提取该错误响应对应的请求消息的标识,根据该请求消息的标识,从本地存储的请求消息中获取对应的请求消息,从该请求消息中提取该路由信息。
例如,路由设备3接收路由设备4发送的错误响应,从该错误响应对应的请求消息中提取路由信息为IPserver。
步骤209:第三路由设备根据该路由信息获取第一设备集合,第一设备集合包括至少一个下一跳设备。
具体地,第三路由设备根据该路由信息,从自身存储的路由表中获取对应的下一跳设备的标识,将获取的下一跳设备的标识对应的下一跳设备组成第一设备集合。
例如,路由设备3根据路由信息IPserver,从自身存储的路由表中获取对应的下一跳设备的标识为路由设备4的地址IP4和服务器的地址IPserver,将路由设备4的地址IP4对应的路由设备4和服务器的地址IPserver对应的服务器组成第一设备集合。
步骤210:第三路由设备从第一设备集合中去除该错误响应携带的设备的标识对应的设备和该请求消息经过的路由设备的标识对应的设备,得到第二设备集合。
具体地,第三路由设备从该请求消息中提取该请求消息携带的路由设备的标识,提取的路由设备的标识即为该请求消息经过的路由设备的标识,从第一设备集合中去除该错误响应携带的设备的标识对应的设备和该请求消息经过的路由设备的标识对应的设备,得到第二设备集合。
例如,路由设备3从第一设备集合中去除该错误响应携带的路由设备4的IP4对应的路由设备4和为该请求消息选择的服务器,得到第二设备集合,第二设备集合为空。
步骤211:如果第二设备集合为空,则第三路由设备将自身的标识添加到该错误响应,向其上游设备转发该错误响应。
其中,该上游设备接收该错误响应后,如果该上游设备不是客户端,则该上游设备同第三路由设备一样,执行上述步骤208至212的步骤,直到将该错误响应转发给客户端。
步骤212:如果第二设备集合不为空,则第三路由设备从第二设备集合中选择一下一跳设备,将该错误响应携带的设备标识添加到该请求消息,向选择的下一跳设备发送该请求消息。
选择的下一跳设备可能为目的设备或者为路由设备。当选择的下一跳设备为目的设备,则第三路由设备将该请求消息转发给目的设备;如果目的设备成功接收到该请求消息,则结束操作,如果目的设备没有成功接收到该请求消息,即第三路由设备没有成功地将该请求消息送达到目的设备,则第三路由设备从第二设备集合中去除选择的下一跳设备,然后执行步骤211和212。
当选择的下一跳设备为路由设备,如果该下一跳设备没有成功接收到该请求消息,则第三路由设备从第二设备集合中去除选择的下一跳设备,然后执行步骤211和212,如果该下一步设备接收到该请求消息,则执行如下步骤213。
例如,路由设备3判断出第二设备集合为空,将自身的标识IP3添加到该错误响应,路由设备3的上游设备为路由设备1,向其路由设备1发送该错误响应,该错误响应携带路由设备3的IP3和路由设备4的标识IP4。
路由设备1接收该错误响应,从该错误响应对应的请求消息中提取路由信息IPserver,根据该路由信息IPserver,从自身存储的路由表中获取对应的下一跳设备的标识,包括路由设备3的标识IP3和路由设备2的标识IP2,将路由设备3的标识IP3对应的路由设备3和路由设备2的标识IP2对应的路由设备2组成第一设备集合,从本地获取该错误响应对应的请求消息,从该请求消息中提取该请求消息经过的路由设备的标识为IP1,从第一设备集合中去除该错误响应携带的设备标识IP3对应的路由设备3和该请求消息经过的路由设备的标识为IP1对应的路由设备1,得到第二设备集合包括路由设备2,从第二设备集合中选择路由设备2,向该请求消息添加该错误响应携带的路由设备3的标识IP3和路由设备4的标识IP4,存储该请求消息并将该请求消息转发给路由设备2。
步骤213:第四路由设备接收其上游路由设备发送的该请求消息,根据该请求消息携带的路由信息获取第一设备集合,第一设备集合包括至少一个下一跳设备。
第四路由设备可以为第三路由设备选择的下一跳路由设备或者为Diameter网络中的其他路由设备。
本步骤可以为:第四路由设备接收其上游路由设备发送的该请求消息,根据该请求消息包含的路由信息,从自身存储的路由表中找出对应的下一跳设备的标识,将找出的每个下一跳设备的标识对应的下一跳设备组成第一设备集合。
例如,路由设备2接收路由设备1发送的请求消息,根据该请求消息包含的路由信息IPserver,根据路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识包括路由设备4的地址IP4。将找出的路由设备4的地址IP4对应的路由设备4组成第一设备集合。
步骤214:第四路由设备从第一设备集合中去除该请求消息携带的设备标识对应的设备得到第二设备集合。
例如,路由设备2从第一设备集合中去除该请求消息携带的设备标识IP4对应的路由设备4,得到的第二设备集合为空。
步骤215:如果第二设备集合不为空,则第四路由设备从第二设备集合中选择一下一跳设备,向选择的下一跳设备转发该请求消息。
具体地,第四路由设备从第二设备集合中选择最近到达目的设备的下一跳设备,将自身的标识添加到该请求消息中,存储该请求消息,并向选择的下一跳设备转发该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作,如果目的设备没有成功接收到该请求消息,则第四路由设备从第二设备集合中去除选择的下一跳设备,然后执行本步骤。当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在该下一跳设备成功接收到该请求消息后,同第四路由设备一样执行213至215的操作。
如果该下一跳设备没有成功接收到该请求消息,即第四路由设备没有成功地将该请求消息送达到选择的下一跳设备,第四路由设备从第二设备集合中去除选择的下一跳设备,然后执行本步骤。
步骤216:如果第二设备集合为空,则第四路由设备生成错误响应,将自身的标识和该请求消息携带的设备标识添加到该错误响应,向其上游设备发送该错误响应。
例如,路由设备2判断第二设备集合为空,生成错误响应,将自身的标识IP2,该请求消息携带的标识IP3和IP4添加到该错误响应,路由设备2的上游设备为路由设备1,向路由设备1发送该错误响应。
步骤217:第一路由设备接收其下游设备发送的错误响应,从本地存储的该错误响应对应的请求消息中获取该路由信息。
本步骤可以为:第一路由设备接收其下游设备发送的错误响应,从该错误响应中提取该错误响应对应的请求消息的标识,根据该请求消息的标识从本地存储的请求消息中获取对应的请求消息,从该请求消息中提取该路由信息。
例如,路由设备1接收路由设备2发送的错误响应,从该错误响应对应的请求消息中提取路由信息为IPserver。
步骤218:第一路由设备根据该路由信息获取第一设备集合,第一设备集合包括至少一个下一跳设备。
具体地,第一路由设备根据该路由信息,从自身存储的路由表中获取对应的下一跳设备的标识,将获取的下一跳设备的标识对应的下一跳设备组成第一设备集合。
例如,路由设备1根据路由信息IPserver,从自身存储的路由表中获取对应的下一跳设备的标识为路由设备2的地址IP2和路由设备3的地址IP3r,将路由设备2的地址IP2对应的路由设备2和路由设备3的地址IP3对应的路由设备3组成第一设备集合。
步骤219:第一路由设备从第一设备集合中去除该错误响应携带的设备的标识对应的设备得到第二设备集合。
例如,路由设备1从第一设备集合中去除该错误响应携带的路由设备2的IP2对应的路由设备2和路由设备3的IP3对应的路由设备3,得到第二设备集合,第二设备集合为空。
步骤220:如果第二设备集合不为空,则第一路由设备从第二设备集合中选择一下一跳设备,将该错误响应携带的设备标识添加到该请求消息,向选择的下一跳设备发送该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作,如果目的设备没有成功接收到该请求消息,则第一路由设备从第二设备集合中去除选择的下一跳设备,然后执行本步骤。当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在该下一跳设备成功接收到该请求消息后,同第二路由设备一样从步骤203开始执行。
如果该下一跳设备没有成功接收到该请求消息,即第一路由设备没有成功地将该请求消息送达到选择的下一跳设备,第一路由设备从第二设备集合中去除选择的下一跳设备,然后执行本步骤。
步骤221:如果第二设备集合为空,则第一路由设备将自身的标识添加到该错误响应,向客户端转发该错误响应。
例如,路由设备1判断出第二设备集合为空,将自身的标识IP1添加到该错误响应,向客户端发送该错误响应,该错误响应携带路由设备1的IP1、路由设备2的IP2、路由设备3的IP3和路由设备4的标识IP4。
客户端接收该错误响应,根据该路由信息IPserver,获取与其直接相连的路由设备,将获取的路由设备组成第一设备集合,从第一设备集合中去除该错误响应携带的设备标识对应的路由设备,得到第二设备集合,如果第二设备集合为空,则结束操作,如果第二设备集合不为空,则从第二设备集合中选择一路由设备,将该请求消息发送给该路由设备。
例如,客户端接收路由设备1发送的错误响应,获取与其直接相连的路由设备1和路由设备2并组成第一设备集合,从第一设备集合中去除该错误响应携带的标识IP1对应的路由设备1和标识IP2对应的路由设备2得到第二设备集合,第二设备集合为空,结束操作。
在本发明实施例中,由于错误响应携带其经过的路由设备的标识,如此路由设备可以根据错误响应经过的路由设备的标识和本地存储的错误响应对应的请求消息经过的路由设备的标识,为请求消息选择请求消息未经过的下一跳设备,从而避免路由设备重复地为请求消息进行路由重选,避免在网络中产生大量的信令以及避免产生信令风暴。
实施例3
本发明实施例提供了一种路由消息的方法。本发明实施例应用于如1-1所示的双平面结构的网络架构,在该网络架构中每个路由设备只有两个下一路由设备。参见图3,该方法包括:
步骤301:接收上游设备发送的第一请求消息,第一请求消息中包含目的设备的路由信息。
步骤302:判断是否能够将第一请求消息送达到该路由信息对应的目的设备。
步骤303:如果不能送达到该路由信息对应的目的设备,则生成包含第一错误码的第一错误响应,第一错误码用于说明无法将第一请求消息送达到目的设备。
步骤304:发送第一错误响应给上游设备,使上游设备根据第一错误码的指示不进行路由重选。
在本发明实施例中,当判断出将第一请求消息送达到该路由信息对应的目的设备时,在第一错误响应中携带第一错误码,使得上游设备根据第一错误码的指示不进行路由重选,如此减少不必要的路由重选在网络中产生大量的信令,避免产生信令风暴。
实施例4
本发明实施例提供了一种路由消息的方法。本发明实施例应用于如1-1所示的双平面结构的网络架构,在该网络架构中每个路由设备只有两个下一路由设备。参见图4,该方法包括:
步骤401:第一路由设备接收客户端发送的请求消息,第一路由设备为与客户端直接相连的路由设备,该请求消息包含目的设备的路由信息。
当客户端需要发送请求消息给目的设备时,客户端从与其直接相连的路由设备中选择一个路由设备,优先地,选择到达目的设备的路径最近的路由设备,为了便于说明将选择的路由设备称为第一路由设备。然后客户端再向第一路由设备发送该请求消息。
例如,参见图1-1,当客户端需要发送请求消息给服务器时,客户端从与其直接相连的路由设备1和2中选择路由设备1,向与其直接相连的路由设备1发送请求消息,该请求消息包含目的设备的路由信息,该路由信息为该服务器的地址IPserver。
步骤402:第一路由设备根据该请求消息包含的路由信息获取下一跳设备,向该下一跳设备转发该请求消息。
其中,第一路由设备向下一跳设备转发该请求消息之前,第一路由设备将自身的标识添加到该请求消息中,并将该请求消息存储到第一路由设备中。
具体地,第一路由设备根据该请求消息包含的路由信息,从自身存储的路由表中找出对应的下一跳设备的标识,将找出的每个下一跳设备的标识对应的下一跳设备组成第一设备集合,从第一设备集合中去除该请求消息经过的路由设备的标识对应的路由设备,从剩下的路由设备中选择一下一跳设备,优选的,选择最近到达目的设备的下一跳设备,将自身的标识添加到该请求消息,存储该请求消息并向选择的下一跳设备转发该请求消息。
例如,路由设备1接收客户端发送的请求消息,根据该请求消息包含的路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识包括路由设备2的地址IP2和路由设备3的地址IP3。将找出的路由设备2的地址IP2对应的路由设备2和路由设备3的地址IP3对应的路由设备3组成第一设备集合,从第一设备集合中选择一下一跳设备,假设选择的下一跳设备为路由设备3,将自身的标识IP1添加到该请求消息,存储该请求消息并向路由设备3转发该请求消息。
其中,如果第一路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第一路由设备从第一设备集合中去除选择的下一跳设备得到第二设备集合。如果第二设备集合不为空,则从第二设备集合中重新选择一下一跳设备,向选择的下一跳设备转发该请求消息。如果第二设备集合为空,则生成错误响应,将自身的标识添加到该错误响应,向客户端发送该错误响应。客户端根据该错误响应携带的第一路由设备的标识,从与其自身相连的路由设备中去除第一路由设备,如果还存在剩下的路由设备,则从剩下的路由设备中选择一路由设备,将该请求消息发送给选择的路由设备。
第一路由设备选择的下一跳设备可能为目的设备或者为路由设备。当选择的下一跳设备为目的设备,则第一路由器将该请求消息转发给目的设备;如果目的设备成功接收到该请求消息,则结束操作。当选择的下一跳设备为路由设备且该路由设备成功接收到该请求消息,则该路由设备执行后续步骤。
其中,如果目的设备没有成功接收到该请求消息,第一路由设备从第一设备集合重新选择一个下一跳设备,该下一跳设备为一个路由设备,且该路由设备执行后续步骤。
步骤403:第二路由设备接收其上游路由设备发送的该请求消息,根据该请求消息携带的路由信息获取第一设备集合,第一设备集合包括至少一个下一跳设备。
第二路由设备可以为第一路由设备选择的下一跳路由设备或者为Diameter网络中的其他路由设备。
本步骤可以为:第二路由设备接收其上游路由设备发送的该请求消息,根据该请求消息包含的路由信息,从自身存储的路由表中找出对应的下一跳设备的标识,将找出的每个下一跳设备的标识对应的下一跳设备组成第一设备集合。
例如,路由设备3接收路由设备1发送的请求消息,根据该请求消息包含的路由信息IPserver,根据路由信息IPserver,从自身存储的路由表中找出对应的下一跳设备的标识包括路由设备4的地址IP4和服务器的地址IPserver。将找出的路由设备4的地址IP4对应的路由设备4和服务器的地址IPserver对应的服务器组成第一设备集合。
步骤404:第二路由设备从第一设备集合中去除该请求消息经过的路由设备得到第二设备集合,从第二设备集合中选择一下一跳设备,向选择的下一跳设备转发该请求消息。
其中,第二路由设备向该下一跳设备转发该请求消息之前,第二路由设备将自身的标识添加到该请求消息中,并将该请求消息存储到第二路由设备中。
具体地,第二路由设备从该请求消息中提取该请求消息经过的路由设备的标识,从第一设备集合中去除该请求消息经过的路由设备的标识对应的路由设备得到第二设备集合,从第二设备集合中选择最近到达目的设备的下一跳设备,向选择的下一跳设备转发该请求消息。
例如,路由设备3从该请求消息中提取该请求消息经过的路由设备的标识为IP1,从第一设备集合中去除该请求消息经过的路由设备的标识为IP1的路由设备1得到第二设备集合,第二设备集合包括的路由设备4和服务器,从第二设备集合中选择一下一跳设备,且选择的下一跳设备为服务器,向服务器转发该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作。如果目的设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备执行如下步骤405。
当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在成功接收到该请求消息后,同第二路由设备一样执行上述步骤403和404的操作。
如果该下一跳设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备需要执行如下步骤405的操作。
步骤405:如果没有成功地将该请求消息送达到该下一跳设备,则第二路由设备从第二设备集合中去除选择的下一跳设备得到第三设备集合。
例如,假设服务器没有成功接收路由设备3转发的该请求消息,路由设备3从第二设备集合包括的路由设备4和服务器中去除服务器,得到的第三设备集合中包括路由设备4。
步骤406:如果第三设备集合不为空,则第二路由设备从第三设备集合中重新选择一下一跳设备,向选择的下一跳设备转发该请求消息。
例如,第三设备集合中包括路由设备4,所以第三设备集合不为空,路由设备3从第三设备集合中选择路由设备4,将自身的标识IP3添加到该请求消息,存储该请求消息,向路由设备4转发该请求消息。
当该下一跳设备为目的设备时,如果目的设备成功接收到该请求消息,结束操作,如果目的设备没有成功接收到该请求消息,则从第三设备集合中去除选择下一跳设备,然后重新执行本步骤。
当下一跳设备不是目的设备而是Diameter网络中的一个路由设备,则该下一跳设备在该下一跳设备成功接收到该请求消息后,同第二路由设备一样执行上述步骤403和404的操作。
如果该下一跳设备没有成功接收到该请求消息,即第二路由设备没有成功地将该请求消息送达到选择的下一跳设备,则第二路由设备从第三设备集合中去除选择的下一跳设备,然后重新执行本步骤。
例如,路由设备4接收路由设备3转发的请求消息,根据该请求消息携带的路由信息IPserver,从自身存储的路由表中找出下一跳设备的标识为IPserver,将下一跳设备的标识IPserver对应的服务器组成第一设备集合;从该请求消息中提取该请求消息经过的路由设备的标识为IP1和IP3,从第一设备集合中去除该请求消息经过的路由设备的标识为IP1对应的路由设备1和IP3对应的路由设备3得到第二设备集合,从第二设备集合中选择下一跳设备为该服务器,将自身的标识IP4添加到该请求消息,存储该请求消息,向该服务器转发该请求消息。
步骤407:如果第三设备集合为空,则第二路由设备确定无法将该请求消息送达到目的设备,生成错误响应,该错误响应包含错误码,该错误码用于指示无法将该请求消息送达到目的设备,向其上游路由设备发送该错误响应。
其中,由于本发明实施例应用于双平面结构的网络架构中,当与目的设备相连的只有两个路由设备,所以如果第三设备集合为空,则第二路由设备已试探出所有到达目的设备的路径,且每条路径都不通,因此能确定无法将该请求消息送达到目的设备。
其中,生成的错误响应还携带该请求消息的标识。
例如,假设路由设备4没有将该请求消息送达到服务器,然后路由设备4从第二设备集合中去除选择的下一跳设备,即去除选择的服务器,得到第三设备集合,且第三设备集合为空。如此,路由设备4确定出无法将该请求消息送达到目的设备Server,生成错误响应,该错误响应携带错误码,向其上游设备,即向路由设备3发送该错误响应。
步骤408:第三路由设备接收其下游设备发送的错误响应,根据该错误响应携带错误码,确定无法将该请求消息发送给目的设备,向其上游设备发送该错误响应。
其中,第三路由设备为第二路由设备的上游设备或者为Diameter网络中的其他路由设备。
例如,路由设备3接收路由设备4发送的错误响应,根据该错误响应携带的错误码,确定出无法将该请求消息送达到目的设备,然后其上游设备,即向路由设备1发送该错误响应。
步骤409:第一路由设备接收其下游设备发送的错误响应,根据该错误响应携带错误码,确定无法将该请求消息发送给目的设备,向客户端发送该错误响应。
例如,路由设备1接收路由设备2发送的错误响应,根据该错误响应携带的错误码,确定出无法将该请求消息送达到目的设备,然后向客户端发送该错误响应。
客户端接收该错误响应,该错误响应携带的错误码,确定出无法将该请求消息送达到目的设备,然后结束操作。
在本发明实施例中,当判断出将第一请求消息送达到该路由信息对应的目的设备时,在第一错误响应中携带第一错误码,使得上游设备根据第一错误码的指示不进行路由重选,如此减少不必要的路由重选在网络中产生大量的信令,避免产生信令风暴。
实施例5
参见图5,本发明实施例提供了一种路由消息的装置,包括:
接收模块501,用于接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识;
选择模块502,用于根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
发送模块503,用于发送所述第一请求消息给所述下一跳设备。
优选的,所述选择模块502包括:
第一获取单元,用于从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
第二获取单元,用于根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
去除单元,用于从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
选择单元,用于如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
进一步地,所述装置还包括:
添加模块,用于如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
优选的,所述发送模块503,用于将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
进一步地,所述装置还包括:
设置模块,用于接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
在本发明实施例中,由于第一错误响应携带其经过的路由设备的标识,如此路由设备可以根据第一错误响应经过的路由设备的标识和本地存储的第一错误响应对应的第一请求消息经过的路由设备的标识,为第一请求消息选择第一请求消息未经过的下一跳设备,从而避免路由设备重复地为第一请求消息进行路由重选,避免在网络中产生大量的信令以及避免产生信令风暴。
实施例6
参见图6,本发明实施例提供了一种路由消息的装置,包括:
接收模块601,用于接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断模块602,用于判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
生成模块603,用于如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送模块604,用于发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
进一步地,所述装置还包括:
接收模块,用于接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
确定模块,用于根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
转发模块,用于如果不能,将所述第二错误响应转发给上游设备。
在本发明实施例中,当判断出将第一请求消息送达到该路由信息对应的目的设备时,在第一错误响应中携带第一错误码,使得上游设备根据第一错误码的指示不进行路由重选,如此减少不必要的路由重选在网络中产生大量的信令,避免产生信令风暴。
实施例7
参见图7,本发明实施例提供了一种路由消息的装置,包括:
第一处理器701和第一存储器702用于执行下操作指令:
接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识;
根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
发送所述第一请求消息给所述下一跳设备。
优选的,所述根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一错误响应对应的第一请求消息选择所述第一请求消息未经过的下一跳设备,包括:
从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
进一步地,还包括:
如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
优选的,所述发送所述第一请求消息给所述下一跳设备,包括:
将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
进一步地,还包括:
接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
在本发明实施例中,由于第一错误响应携带其经过的路由设备的标识,如此路由设备可以根据第一错误响应经过的路由设备的标识和本地存储的第一错误响应对应的第一请求消息经过的路由设备的标识,为第一请求消息选择第一请求消息未经过的下一跳设备,从而避免路由设备重复地为第一请求消息进行路由重选,避免在网络中产生大量的信令以及避免产生信令风暴。
实施例8
参见图8,本发明实施例提供了一种路由消息的装置,包括:
第二处理器801和第二存储器802用于执行下操作指令:
接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
进一步地,还包括:
接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
如果不能,将所述第二错误响应转发给上游设备。
在本发明实施例中,当判断出将第一请求消息送达到该路由信息对应的目的设备时,在第一错误响应中携带第一错误码,使得上游设备根据第一错误码的指示不进行路由重选,如此减少不必要的路由重选在网络中产生大量的信令,避免产生信令风暴。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种路由消息的方法,其特征在于,所述方法包括:
接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识和所述第一错误响应对应的第一请求消息的标识;
根据所述标识从本地存储的请求消息中获取对应的第一请求消息,根据所述第一错误响应经过的路由设备的标识和所述第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
将自身的标识添加到所述第一请求消息,发送所述第一请求消息给所述下一跳设备。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一错误响应经过的路由设备的标识和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识,为所述第一错误响应对应的第一请求消息选择所述第一请求消息未经过的下一跳设备,包括:
从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
4.如权利要求1所述的方法,其特征在于,所述发送所述第一请求消息给所述下一跳设备,包括:
将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
5.如权利要求1至4任一项权利要求所述的方法,其特征在于,所述方法还包括:
接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
6.一种路由消息的方法,其特征在于,所述方法包括:
接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码和所述第一请求消息的标识的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
如果不能,将所述第二错误响应转发给上游设备。
8.一种路由消息的装置,其特征在于,所述装置包括:
接收模块,用于接收下游设备发送的第一错误响应,所述第一错误响应至少携带所述第一错误响应经过的路由设备的标识和所述第一错误响应对应的第一请求消息的标识;
选择模块,用于根据所述标识从本地存储的请求消息中获取对应的第一请求消息,根据所述第一错误响应经过的路由设备的标识和所述第一请求消息经过的路由设备的标识,为所述第一请求消息选择所述第一请求消息未经过的下一跳设备;
发送模块,用于将自身的标识添加到所述第一请求消息,发送所述第一请求消息给所述下一跳设备。
9.如权利要求8所述的装置,其特征在于,所述选择模块包括:
第一获取单元,用于从所述第一错误响应对应的第一请求消息中获取目的设备的路由信息;
第二获取单元,用于根据所述路由信息,从路由表中获取对应的下一跳设备的标识,将获取的每个下一跳设备的标识对应的下一跳设备组成第一设备集合;
去除单元,用于从所述第一设备集合中去除所述错误响应经过的路由设备的标识对应的路由设备和本地存储的所述第一错误响应对应的第一请求消息经过的路由设备的标识对应的路由设备,得到第二设备集合;
选择单元,用于如果所述第二设备集合不为空,则从所述第二设备集合中选择一个下一跳设备。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
添加模块,用于如果所述第二设备集合为空,则将自身的标识添加到所述第一错误响应,发送所述第一错误响应给上游设备。
11.如权利要求8所述的装置,其特征在于,
所述发送模块,用于将所述第一错误响应经过的路由设备的标识添加到所述第一请求消息中,发送所述第一请求消息给所述下一跳设备。
12.如权利要求8至11任一项权利要求所述的装置,其特征在于,所述装置还包括:
设置模块,用于接收第二请求消息,所述第二请求消息携带目的设备的路由信息,如果无法将所述第二请求消息送达到所述路由信息对应的目的设备,则设置第二错误响应,所述第二错误响应携带自身的标识,发送所述第二错误响应给上游设备。
13.一种路由消息的装置,其特征在于,所述装置包括:
接收模块,用于接收上游设备发送的第一请求消息,所述第一请求消息中包含目的设备的路由信息;
判断模块,用于判断是否能够将所述第一请求消息送达到所述路由信息对应的目的设备;
生成模块,用于如果不能送达到所述路由信息对应的目的设备,则生成包含第一错误码和所述第一请求消息的标识的第一错误响应,所述第一错误码用于说明无法将所述第一请求消息送达到所述目的设备;
发送模块,用于发送所述第一错误响应给所述上游设备,使所述上游设备根据所述第一错误码的指示不进行路由重选。
14.如权利要求13所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收下游设备发送的第二错误响应,所述第二错误响应至少携带第二错误码;
确定模块,用于根据所述第二错误码,确定是否能将所述第二错误码对应的第二请求消息送达到目的设备;
转发模块,用于如果不能,将所述第二错误响应转发给上游设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410535818.3A CN104301221B (zh) | 2014-10-11 | 2014-10-11 | 一种路由消息的方法及装置 |
PCT/CN2015/090063 WO2016054966A1 (zh) | 2014-10-11 | 2015-09-19 | 一种路由消息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410535818.3A CN104301221B (zh) | 2014-10-11 | 2014-10-11 | 一种路由消息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104301221A CN104301221A (zh) | 2015-01-21 |
CN104301221B true CN104301221B (zh) | 2018-05-18 |
Family
ID=52320794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410535818.3A Active CN104301221B (zh) | 2014-10-11 | 2014-10-11 | 一种路由消息的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104301221B (zh) |
WO (1) | WO2016054966A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301221B (zh) * | 2014-10-11 | 2018-05-18 | 华为技术有限公司 | 一种路由消息的方法及装置 |
CN107612823B (zh) * | 2016-07-11 | 2021-04-02 | 中兴通讯股份有限公司 | 路由重选方法及系统 |
CN110324246B (zh) * | 2018-03-31 | 2021-12-24 | 华为技术有限公司 | 一种通信方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101646193A (zh) * | 2008-08-08 | 2010-02-10 | 华为技术有限公司 | 一种状态信息的处理方法、装置、系统及客户端 |
US7890637B1 (en) * | 2008-02-25 | 2011-02-15 | Juniper Networks, Inc. | Secure communications in a system having multi-homed devices |
CN103650543A (zh) * | 2013-06-28 | 2014-03-19 | 华为技术有限公司 | 一种路由消息传输方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212420B (zh) * | 2006-12-27 | 2010-09-29 | 华为技术有限公司 | 重定向器、中继、路由信息配置系统及更新方法 |
CN101355490B (zh) * | 2007-07-25 | 2012-05-23 | 华为技术有限公司 | 消息路由方法、系统和节点设备 |
CN101478484A (zh) * | 2009-01-23 | 2009-07-08 | 华为技术有限公司 | 路由选择的方法、设备及通信系统 |
CN104079482B (zh) * | 2013-03-26 | 2017-06-27 | 华为技术有限公司 | 一种选择路由路径的方法及装置 |
CN104301221B (zh) * | 2014-10-11 | 2018-05-18 | 华为技术有限公司 | 一种路由消息的方法及装置 |
-
2014
- 2014-10-11 CN CN201410535818.3A patent/CN104301221B/zh active Active
-
2015
- 2015-09-19 WO PCT/CN2015/090063 patent/WO2016054966A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890637B1 (en) * | 2008-02-25 | 2011-02-15 | Juniper Networks, Inc. | Secure communications in a system having multi-homed devices |
CN101646193A (zh) * | 2008-08-08 | 2010-02-10 | 华为技术有限公司 | 一种状态信息的处理方法、装置、系统及客户端 |
CN103650543A (zh) * | 2013-06-28 | 2014-03-19 | 华为技术有限公司 | 一种路由消息传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016054966A1 (zh) | 2016-04-14 |
CN104301221A (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101953124B (zh) | 在数据通信网络中构造绕过多条不可用链路的修复路径 | |
EP2807798B1 (en) | Troubleshooting routing topology based on a reference topology | |
CN103401726B (zh) | 网络路径探测方法及装置、系统 | |
EP1779568B1 (en) | Graceful shutdown of ldp on specific interfaces between label switched routers | |
CN102123088B (zh) | 建立te隧道的方法及设备 | |
CN106131031B (zh) | 一种DDoS流量清洗处理的方法及装置 | |
EP3496346B1 (en) | Data message forwarding method and apparatus | |
US9143431B2 (en) | Hiding a service node in a network from a network routing topology | |
CN101237399A (zh) | 获取标签交换路径的方法、系统和设备 | |
CN101911600A (zh) | 经由任播的无地图全局流量负载均衡 | |
CN104767680B (zh) | 路由快速切换的方法和装置 | |
CN101771604B (zh) | 路由探测方法、系统以及中间路由装置 | |
Le et al. | Shedding light on the glue logic of the internet routing architecture | |
CN105515980B (zh) | 一种内容中心网络按需距离矢量路由方法 | |
CN108768796A (zh) | 链路故障检测方法及装置 | |
CN104301221B (zh) | 一种路由消息的方法及装置 | |
CN105207909B (zh) | 一种发送信息的方法和网络装置 | |
US20100027555A1 (en) | Method for processing link state advertisement and routing device | |
CN108924011A (zh) | 用于ospf+路由协议的监测系统、相关设备、方法及介质 | |
WO2011124178A2 (zh) | 故障检测方法、路由节点及系统 | |
CN103746828A (zh) | 一种管理网络节点的方法及装置 | |
JP2006270781A (ja) | リソース管理装置、システムおよび方法 | |
CN106255161B (zh) | 分组数据网pdn连接建立的方法、控制面cp及用户设备ue | |
CN105337939B (zh) | 一种bgp逻辑拓扑生成的方法及装置 | |
JP2005159846A (ja) | マルチキャスト転送経路設定方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |