任播服务注册、实现方法及装置、交换设备和系统
技术领域
本发明涉及通信领域,特别涉及一种任播服务注册、实现方法及装置、交换设备和系统。
背景技术
任播(Anycast)技术,又称选播或泛播技术,是网际互联协议(InternetProtocol,简称IP)网络提供的一种网络服务。在IP网络中,Anycast技术采用一个Anycast地址指明一组提供特定服务(比如域名系统(Domain Name System,简称DNS)或者镜像服务)的主机。用户请求该特定服务时并不关心提供该特定服务的是这一组主机中的哪一台,该特定服务的请求会被IP网络路由到这组主机中可能的任何一台。
现有一种在网络层实现任播服务的方法,在该方法中,一个任播地址被配置给一个或多个路由器,提供相同的特定服务的多个主机连在配置了相同的任播地址的路由器上,配置该任播地址的路由器与一或多个维护任播地址的路由器互连。具体地,该实现任播服务的方法包括:首先,用户发送任播请求报文,该任播请求报文的目的IP地址必须为任播地址;其次,维护任播地址的路由器接收到该任播请求报文后,根据其上保存的该任播地址对应的路由器的路由信息,计算距离该用户最近的配置了该任播地址的路由器,然后将该报文发送至这个距离用户最近的路由器;最后,这个距离用户最近的路由器将该报文转发至该路由器子网内的主机,由该主机为该用户提供特定服务。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于现有技术要求任播组内的成员(具有相同任播地址的路由器)必须有能力向最近的维护任播地址的路由器通告自己的状态,以便于维护任播地址的路由器更新指配了任播地址的路由器的路由信息,因此,任播地址只能分配给路由器或具有路由功能的主机。在这种情形下,任播服务的实现受限于节点(路由器或主机)能力的硬性要求,只有少数服务类型有机会采用任播技术被部署在网络中,提高了任播技术的应用代价。
发明内容
为了降低任播技术的应用代价,本发明实施例提供了一种任播服务注册、实现方法及装置、交换设备和系统。所述技术方案如下:
第一方面,本发明实施例提供了一种任播服务注册方法,所述方法包括:
接收服务注册请求,所述服务注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
确定与所述服务提供端提供的服务对应的网络切片,所述网络切片包括,当前网络中各个交换机到所述服务提供端的单播地址的路径中,满足所述网络访问需求的路径;
确定所述服务的任播域名及任播地址,以在控制器上建立所述任播地址与所述网络切片之间的对应关系,完成服务注册。
可选地,所述确定所述服务的任播域名及任播地址,以在控制器上建立所述任播地址与所述网络切片之间的对应关系,包括:
根据所述服务名称,判断所述服务是否已注册;
当所述服务为未注册服务时,所述控制器为所述服务分配所述任播域名及任播地址,并建立所述任播地址与所述网络切片之间的对应关系;
当所述服务为已注册服务时,所述控制器确定所述服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取所述已注册的任播地址对应的网络切片,并将与所述服务提供端提供的服务对应的网络切片更新到所述已注册的任播地址对应的网络切片中。
可选地,所述网络访问需求包括服务状态,所述服务状态包括有状态和无状态,所述方法还包括:
建立所述任播地址与所述网络访问需求之间的对应关系。
可选地,所述方法还包括:
将所述任播域名及任播地址发送给解析器。
第二方面,本发明实施例提供了一种任播服务实现方法,所述方法包括:
接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
在任播地址与网络切片之间的对应关系中,获取所述目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
根据所述最优服务提供端的单播地址生成第一报文转发规则,并将所述第一报文转发规则下发给交换机,所述第一报文转发规则用于指示所述交换机将所述服务请求报文的目的任播地址更改为所述最优服务提供端的单播地址,以使所述交换机将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端。
可选地,所述根据获取的对应的网络切片,确定最优服务提供端的单播地址,包括:
在任播地址与网络访问需求之间的对应关系中,获取所述服务请求端请求的服务的服务状态;所述网络访问需求包括服务状态,所述服务状态包括有状态和无状态;
当所述服务请求请求的服务的服务状态为无状态时,根据获取的对应的网络切片,确定至少一个最优服务提供端的单播地址;
当所述服务请求请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址。
可选地,所述方法还包括:
根据所述服务请求请求的服务的服务状态,为所述最优服务提供端的单播地址设置生存时间。
可选地,所述在建立的任播地址与网络切片之间的对应关系中,获取所述目的任播地址对应的网络切片之前,还包括:
检测是否存在未超过所述生存时间的最优服务提供端的单播地址,所述未超过所述生存时间的最优服务提供端的单播地址与所述目的任播地址相对应;
若不存在所述未超过所述生存时间的最优服务提供端的单播地址,则在建立的任播地址与网络切片的对应关系中,获取所述目的任播地址对应的网络切片。
可选地,所述方法还包括:
若存在所述未超过所述生存时间的最优服务提供端的单播地址,则获取所述服务请求端请求的服务状态;
当所述服务请求请求的服务状态为有状态时,根据所述未超过所述生存时间的所述最优服务提供端的单播地址生成所述第一报文转发规则,并将所述第一报文转发规则下发给所述交换机;
当所述服务请求请求的服务状态为无状态时,以所述生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间不大于所述生存时间。
可选地,所述方法还包括:
当所述服务请求请求的服务状态为无状态时,以所述第一预设时间的结束时刻为起始时间,在第二预设时间内,根据当前网络状况,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间和所述第二预设时间之和不大于所述生存时间。
可选地,所述方法还包括:
当所述服务请求请求的服务状态为无状态时,以所述第二预设时间的结束时刻为起始时间,在第三预设时间内,根据所述网络状况和所述目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间、所述第二预设时间和所述第三预设时间之和不大于所述生存时间。
可选地,在所述接收服务请求报文之前,还包括:
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
根据任播域名与任播地址的对应关系,获取所述请求解析的任播域名对应的任播地址,将所述对应的任播地址下发至所述服务请求端。
第三方面,本发明实施例提供了一种任播服务实现方法,所述方法包括:
接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
将所述服务请求报文上传给控制器;
在第一报文转发规则的指示下,将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,并将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端,所述最优服务提供端的单播地址是根据所述目的任播地址对应的网络切片确定的,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求。
可选地,所述方法还包括:
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
将所述域名解析请求上传给解析器;
接收所述解析器发送的与所述请求解析的任播域名对应的任播地址,并将与所述请求解析的任播域名对应的任播地址发送给所述服务请求端。
第四方面,本发明实施例一种任播服务注册装置,所述装置包括:
第一接收模块,用于接收服务注册请求,所述服务注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
第一确定模块,用于确定与所述服务提供端提供的服务对应的网络切片,所述网络切片包括,当前网络中各个交换机到所述服务提供端的单播地址的路径中,满足所述网络访问需求的路径;
第二确定模块,用于确定所述服务的任播域名及任播地址,以在控制器上建立所述任播地址与所述网络切片之间的对应关系,完成服务注册。
可选地,所述第二确定模块包括:
判断单元,用于根据所述服务名称,判断所述服务是否已注册;
分配单元,用于当所述服务为未注册服务时,所述控制器为所述服务分配所述任播域名及任播地址,并建立所述任播地址与所述网络切片之间的对应关系;
更新单元,用于当所述服务为已注册服务时,所述控制器确定所述服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取所述已注册的任播地址对应的网络切片,并将与所述服务提供端提供的服务对应的网络切片更新到所述已注册的任播地址对应的网络切片中。
可选地,所述网络访问需求包括服务状态,所述服务状态包括有状态和无状态,所述第二确定模块还用于,
建立所述任播地址与所述网络访问需求之间的对应关系。
可选地,所述装置还包括:
第一发送模块,用于将所述任播域名及任播地址发送给解析器。
第五方面,本发明实施例提供了一种任播服务注册装置,所述装置包括第一处理器、第二处理器和至少一个网络接口,所述第一处理器和所述第二处理器用于实现,
接收服务注册请求,所述服务注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
确定与所述服务提供端提供的服务对应的网络切片,所述网络切片包括,当前网络中各个交换机到所述服务提供端的单播地址的路径中,满足所述网络访问需求的路径;
确定所述服务的任播域名及任播地址,以在控制器上建立所述任播地址与所述网络切片之间的对应关系,完成服务注册。
可选地,所述第一处理器和所述第二处理器用于实现,
根据所述服务名称,判断所述服务是否已注册;
当所述服务为未注册服务时,所述控制器为所述服务分配所述任播域名及任播地址,并建立所述任播地址与所述网络切片之间的对应关系;
当所述服务为已注册服务时,所述控制器确定所述服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取所述已注册的任播地址对应的网络切片,并将与所述服务提供端提供的服务对应的网络切片更新到所述已注册的任播地址对应的网络切片中。
可选地,所述第一处理器和所述第二处理器用于实现,
建立所述任播地址与所述网络访问需求之间的对应关系。
可选地,所述第一处理器和所述第二处理器用于实现,
将所述任播域名及任播地址发送给解析器。
第六方面,本发明实施例提供了一种任播服务实现装置,所述装置包括:
第二接收模块,用于接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
获取模块,用于在任播地址与网络切片之间的对应关系中,获取所述目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
第二发送模块,用于根据所述最优服务提供端的单播地址生成第一报文转发规则,并将所述第一报文转发规则下发给交换机,所述第一报文转发规则用于指示所述交换机将所述服务请求报文的目的任播地址更改为所述最优服务提供端的单播地址,以使所述交换机将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端。
可选地,所述获取模块包括:
第一获取单元,用于在任播地址与网络切片之间的对应关系中,获取所述目的任播地址对应的网络切片,
第二获取单元,用于在任播地址与网络访问需求之间的对应关系中,获取所述服务请求端请求的服务的服务状态;所述网络访问需求包括服务状态,所述服务状态包括有状态和无状态;
第一确定单元,用于当所述服务请求请求的服务的服务状态为无状态时,根据获取的对应的网络切片,确定至少一个最优服务提供端的单播地址;
第二确定单元,用于当所述服务请求请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址。
可选地,所述装置还包括:
设置模块,用于根据所述服务请求请求的服务的服务状态,为所述最优服务提供端的单播地址设置生存时间。
可选地,所述获取模块还用于,
检测是否存在未超过所述生存时间的最优服务提供端的单播地址,所述未超过所述生存时间的最优服务提供端的单播地址与所述目的任播地址相对应;
若不存在所述未超过所述生存时间的最优服务提供端的单播地址,则在建立的任播地址与网络切片的对应关系中,获取所述目的任播地址对应的网络切片。
可选地,所述获取模块还用于,
若存在所述未超过所述生存时间的最优服务提供端的单播地址,则获取所述服务请求端请求的服务状态;
所述第二发送模块还用于,
当所述服务请求请求的服务状态为有状态时,根据所述未超过所述生存时间的所述最优服务提供端的单播地址生成所述第一报文转发规则,并将所述第一报文转发规则下发给所述交换机;
当所述服务请求请求的服务状态为无状态时,以所述生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间不大于所述生存时间。
可选地,所述第二发送模块还用于,
当所述服务请求请求的服务状态为无状态时,以所述第一预设时间的结束时刻为起始时间,在第二预设时间内,根据当前网络状况,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间和所述第二预设时间之和不大于所述生存时间。
可选地,所述第二发送模块还用于,
当所述服务请求请求的服务状态为无状态时,以所述第二预设时间的结束时刻为起始时间,在第三预设时间内,根据所述网络状况和所述目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间、所述第二预设时间和所述第三预设时间之和不大于所述生存时间。
可选地,所述第二接收模块还用于,
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
根据任播域名与任播地址的对应关系,获取所述请求解析的任播域名对应的任播地址,将所述对应的任播地址下发至所述服务请求端。
第七方面,本发明实施例提供了一种任播服务实现装置,所述装置包括第一处理器、第二处理器和至少一个网络接口,所述第一处理器和所述第二处理器用于实现,
接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
在任播地址与网络切片之间的对应关系中,获取所述目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;
根据所述最优服务提供端的单播地址生成第一报文转发规则,并将所述第一报文转发规则下发给交换机,所述第一报文转发规则用于指示所述交换机将所述服务请求报文的目的任播地址更改为所述最优服务提供端的单播地址,以使所述交换机将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端。
可选地,所述第一处理器和所述第二处理器用于实现,
在任播地址与网络访问需求之间的对应关系中,获取所述服务请求端请求的服务的服务状态;所述网络访问需求包括服务状态,所述服务状态包括有状态和无状态;
当所述服务请求请求的服务的服务状态为无状态时,根据获取的对应的网络切片,确定至少一个最优服务提供端的单播地址;
当所述服务请求请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址。
可选地,所述第一处理器和所述第二处理器用于实现,
根据所述服务请求请求的服务的服务状态,为所述最优服务提供端的单播地址设置生存时间。
可选地,所述第一处理器和所述第二处理器用于实现,
检测是否存在未超过所述生存时间的最优服务提供端的单播地址,所述未超过所述生存时间的最优服务提供端的单播地址与所述目的任播地址相对应;
若不存在所述未超过所述生存时间的最优服务提供端的单播地址,则在建立的任播地址与网络切片的对应关系中,获取所述目的任播地址对应的网络切片。
可选地,所述第一处理器和所述第二处理器用于实现,
若存在所述未超过所述生存时间的最优服务提供端的单播地址,则获取所述服务请求端请求的服务状态;
当所述服务请求请求的服务状态为有状态时,根据所述未超过所述生存时间的所述最优服务提供端的单播地址生成所述第一报文转发规则,并将所述第一报文转发规则下发给所述交换机;
当所述服务请求请求的服务状态为无状态时,以所述生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间不大于所述生存时间。
可选地,所述第一处理器和所述第二处理器用于实现,
当所述服务请求请求的服务状态为无状态时,以所述第一预设时间的结束时刻为起始时间,在第二预设时间内,根据当前网络状况,从至少一个所述未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间和所述第二预设时间之和不大于所述生存时间。
可选地,所述第一处理器和所述第二处理器用于实现,
当所述服务请求请求的服务状态为无状态时,以所述第二预设时间的结束时刻为起始时间,在第三预设时间内,根据所述网络状况和所述目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成所述第一报文转发规则并下发给所述交换机;所述第一预设时间、所述第二预设时间和所述第三预设时间之和不大于所述生存时间。
可选地,所述第一处理器和所述第二处理器用于实现,
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
根据任播域名与任播地址的对应关系,获取所述请求解析的任播域名对应的任播地址,将所述对应的任播地址下发至所述服务请求端。
第八方面,本发明实施例提供了一种交换设备,所述设备包括:
第三接收模块,用于接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
第三发送模块,用于将所述服务请求报文上传给控制器;
转发模块,用于在第一报文转发规则的指示下,将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,并将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端,所述最优服务提供端的单播地址是根据所述目的任播地址对应的网络切片确定的,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求。
可选地,所述第三接收模块还用于,
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
将所述域名解析请求上传给解析器;
接收所述解析器发送的与所述请求解析的任播域名对应的任播地址,并将与所述请求解析的任播域名对应的任播地址发送给所述服务请求端。
第九方面,本发明实施例提供了一种交换设备,所述设备包括处理器和网络接口,所述处理器用于实现,
接收服务请求报文,所述服务请求报文包括服务请求端的单播地址和目的任播地址;
将所述服务请求报文上传给控制器;
在第一报文转发规则的指示下,将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,并将所述服务请求报文转发至所述最优服务提供端单播地址指示的服务提供端,所述最优服务提供端的单播地址是根据所述目的任播地址对应的网络切片确定的,所述对应的网络切片包括,当前网络中各个交换机到所述目的任播地址对应的服务的服务提供端的单播地址的路径中,满足网络访问需求的路径,所述网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求。
可选地,所述处理器用于实现,
接收域名解析请求,所述域名解析请求包括服务请求端请求解析的任播域名;
将所述域名解析请求上传给解析器;
接收所述解析器发送的与所述请求解析的任播域名对应的任播地址,并将与所述请求解析的任播域名对应的任播地址发送给所述服务请求端。
第十方面,本发明实施例提供了一种任播服务注册和实现系统,所述系统包括前述的任播服务注册装置、前述任播服务实现装置、以及前述交换设备。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的开放流的应用场景示意图;
图2-图5是本发明实施例提供的一种任播服务注册方法的流程图;
图6-图9是本发明实施例提供的一种任播服务实现方法的流程图;
图10-图13是本发明实施例提供的一种任播服务注册装置的结构示意图;
图14-图16是本发明实施例提供的一种任播服务实现装置的结构示意图;
图17-图18是本发明实施例提供的一种交换设备的结构示意图;
图19是本发明实施例提供的一种任播服务注册和实现系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例适用于控制面和转发面相分离的网络架构,尤其适用于开放流(OpenFlow)网络架构。其中,控制面可以集中部署,转发面可以根据实际需求分布式部署在多个物理设备上,控制面通过对转发面进行控制,从而可以实现各种各样的网络功能,例如路由、和交换等等。
为了便于理解本发明实施例提供的技术方案,下面以OpenFlow网络架构为例,介绍一下本发明实施例的典型应用场景,但并不以此为限。在OpenFlow网络架构中,控制面网元被称为OpenFlow控制器(下文简称控制器),转发面网元被称为OpenFlow交换机(下文简称交换机),参见图1,在OpenFlow应用场景下,控制器(Controller)1与若干交换机(Switch)2连接。用户终端设备3和服务器4分别连在不同的交换机2上。交换机2中设置了一个或多个流表(FlowTable),这些流表可以在控制器1的指示下安装,也可以人工配置在交换机2上。
具体地,控制器1通过流表集中式控制每个交换机2。流表是交换机2的重要组成部分。每个流表包括一个或多个表项。每个表项指明一个报文转发规则。参见表1,一个表项包括头域、计数器和操作。头域是一类具有相同特征的报文的标识(Identity,简称ID),例如交换机2接收报文的端口ID、报文的源媒体介入控制层(Media Access Control,简称MAC)地址、目的MAC地址、以太网类型、虚拟局域网(Virtual Local Area Network,简称VLAN)ID、源IP地址、目的IP地址、IP端口、源传输控制协议(Transmission Control Protocol,简称TCP)端口、以及目的TCP端口。头域通过规定报文特征来匹配报文。计数器用来记录报文匹配和转发的统计信息。操作则指明了与该表项的头域匹配成功的报文应被执行的操作,包括转发报文到指定端口、转发报文到控制器1、以及丢弃该报文。
表1
交换机2通过查询流表表项来获得报文的转发方式。具体地,交换机2接收到报文后,首先在本机流表内查找转发规则,如果没有匹配该报文的规则,交换机2可以将报文转发给控制器1,由控制器1决定其转发处理规则,随后的过程中可能包括控制器1向交换机2中添加匹配该报文的流表表项。
需要说明的是,控制器1可以通过承载网络虚拟化层(FlowVisor)的交换控制设备5与若干交换机2连接。交换控制设备5相当于控制隔离器,能够将一张物理网络(包括多个交换机2及该多个交换机2构成的链路)划分为多个独立的子网络(虚拟网络),每个子网络交由1个对应的控制器1控制。也就是说,交换控制设备5维护了整个物理网络的路由信息(每个交换机2到其他任何一个交换机2的路径),包括每个控制器1控制的子网络的路由信息。而每个控制器1维护的是其控制的子网络的路由信息。当交换机2上传报文至交换控制设备5时,交换控制设备5会识别该报文是属于哪个控制器1控制的,并将该报文转发至识别出的控制器1。
以上,控制器1与交换控制设备5间、和交换控制设备5与交换机2间均采用OpenFlow协议进行通信。此外,控制器1、交换控制设备5和交换机2三者之间的通信是通过专门的安全通道,该安全通道与交换机2和用户终端设备3之间(或者交换机2和服务器4之间)的数据转发通道相互独立。也就是说,安全通道的通信不会影响数据转发通道的通信。
在本发明实施例中,交换机2包括光交换机(O-Switch)和IP交换机。交换控制设备5可以是交换机,也可以是单独的交换设备。
此外,在本发明实施例中,服务器4可以是承载数据中心的服务器,由于数据中心可能由数台实体机组网互联,也可能一台服务器被分隔成数台虚拟主机并虚拟组网,因此,承载数据中心的服务器4可以是单独的实体机,也可以是一个实体机上的一个虚拟主机。
实施例一
本发明实施例提供了一种任播服务注册方法,适用于图1所示的OpenFlow应用场景。参见图2,该方法流程包括:
步骤101:接收服务注册请求。
其中,服务注册请求包括但不限于服务名称、网络访问需求、以及服务提供端的单播地址。具体地,服务名称用于描述服务提供端提供的服务。网络访问需求用于描述服务提供端提供的服务对网络及数据传输方面的要求,例如最小带宽需求、和抖动需求等等。
该服务注册信息可以是交换机2发送的,也可以是交换机2发送给交换控制设备5后,由交换控制设备5发送的。
步骤102:确定与服务提供端提供的服务对应的网络切片。
其中,网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径。
本步骤可以是图1中交换控制设备5执行的,也可以是图1中控制器1执行的。
步骤103:确定该服务的任播域名及任播地址,以在控制器上建立任播地址与网络切片之间的对应关系,完成服务注册。
当该服务为已注册服务时,确定该服务的任播域名及任播地址,包括:控制器确定该服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取已注册的任播地址对应的网络切片,并将与服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
当该服务为未注册服务时,确定该服务的任播域名及任播地址,包括:控制器为该服务分配任播域名及任播地址,并建立任播地址与网络切片之间的对应关系。
本步骤103可以是图1中控制器1执行。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例二
本发明实施例提供了一种任播服务注册方法,参见图3,该方法流程包括:
步骤201:服务提供端向交换机发送服务注册请求,该服务器注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址。
该服务提供端可以为图1所示场景中的服务器4。当服务提供端新接入网络时,该服务器提供端需向控制器1发送服务注册请求,请求加入提供相同服务的服务提供端构成的任播组。
其中,服务名称用于描述服务提供端提供的服务。网络访问需求用于描述该服务提供端提供的服务对网络及数据传输方面的要求。例如,网络访问需求可以包括最小带宽需求、和抖动需求。网络访问需求包括服务状态,该服务状态包括有状态和无状态(参见本发明实施例六中步骤611)。进一步地,该网络访问需求还可以包括是否支持分片、分片大小以及服务器运行状态。服务提供端的单播地址用于指示该服务提供端在网络中的位置。例如,服务提供端的单播地址包括服务提供端的IP地址。进一步地,服务提供端的单播地址还可以包括该服务提供端的上游交换机的ID、以及与该上游交换机连接的端口ID。
需要说明的是,该服务注册请求还可以包括访问方式列表。访问方式列表可以包括服务提供商提供的访问该服务提供端的方式,例如在超文本传输协议(HTTP-Hypertext Transfer Protocol,简称HTTP)、超文本传输安全协议(Hypertext Transfer Protocol Secure,简称HTTPS)和文件传输协议(FileTransferProtocol,简称FTP)下访问该服务提供端的网页地址。
具体地,服务提供端以特定协议发送服务注册请求。该特定协议可以是服务提供商与网络运营商约定好的内部协议,也可以是现有协议,例如HTTP。
步骤202:交换机根据第二报文转发规则,将该服务注册请求转发给交换控制设备。
其中,第二报文转发规则用于指示交换机将服务注册请求转发给交换控制设备。
具体地,第二报文转发规则由控制器预先通过表项的形式下发给交换机。第二报文转发规则包括两种情形。第一种情形为,承载服务注册请求的报文中的某个字段含有服务提供商与网络运营商约定好的用于识别服务注册请求的标识。第二报文转发规则用于指示交换机将报文中含有该用于识别服务注册请求的标识的报文转发给交换控制设备。第二种情形为,第二报文转发规则用于指示交换机将匹配失败的报文转发给交换控制设备。当交换机无法识别承载服务注册请求的报文时,将该报文转发给交换控制设备。
步骤203:交换控制设备获取与该服务提供端提供的服务对应的网络切片。
其中,与该服务提供端提供的服务对应的网络切片包括,当前网络中各交换机到该服务提供端的单播地址的路径中,满足该网络访问需求的路径。通常,可以由前述场景中的交换控制设备来维护这些路径。
如前所述,交换控制设备维护了整个物理网络的网络拓扑(即前述路由信息)。网络拓扑由网络中所有节点(包括每个交换机、连在每个交换机上的终端设备和服务器)和所有节点构成的链路组成。也就是说,交换控制设备了解物理网络中,每个交换机到其他任何一个交换机的路径。在已知服务提供端的单播地址的前提下,交换控制设备能够在原有物理网络的网络拓扑的基础上剔除不符合网络访问需求的链路和节点而形成与该服务提供端提供的服务对应的网络切片。
步骤204:交换控制设备根据服务名称,判断该服务提供端提供的服务是否已注册。
当该服务未注册时,执行步骤205;当该服务已注册时,执行步骤208。
具体地,交换控制设备根据服务名称,判断该服务是否已注册,包括:交换控制设备在缓存中存储的服务名称-任播地址的对应关系中,查询是否存在当前服务注册请求中的服务名称,若已存储的服务名称中存在当前服务注册请求中的服务名称,则判定该服务已注册,若已存储的服务名称中不存在当前服务注册请求中的服务名称,则判定该服务未注册。
需要说明的是,若服务注册请求中还携带了访问方式列表(参见步骤201),则交换控制设备可以根据服务名称和访问方式列表两者来判定该服务是否已注册。相应地,交换控制设备缓存中存储了已注册的服务名称及该服务名称对应的访问方式列表。这样,交换控制设备能够准确判定一个服务是否已注册。
步骤205:交换控制设备将该服务注册请求、和与该服务提供端提供的服务对应的网络切片上报给控制器。
当该服务未注册时,交换控制设备获取与该服务提供端提供的服务对应的网络切片后,将该服务注册请求和该服务提供端对应的网络切片上报给控制器。
步骤206:控制器根据该服务名称,为服务分配任播域名及任播地址,建立任播地址与该网络切片之间的对应关系,并将任播域名及任播地址发送给交换控制设备。
其中,任播域名与任播地址相对应。
可选地,控制器建立任播地址与网络访问需求之间的对应关系。
具体地,任播域名可以是服务提供商和网络运营商根据服务名称事先约定的域名(例如www.huawei.com)。多个服务名称可以共享一个任播域名。控制器中存储了服务名称-任播域名的对应关系。
具体地,任播地址可以是控制器根据标准协议配置的IP地址。一个任播地址可以对应一个任播域名,也可以对应多个不同的任播域名。需要说明的是,在本实施例中,不指定配置任播域名和任播地址的方式,只需要保证控制器控制的子网络内一个任播域名对应唯一一个任播地址。
需要说明的是,控制器建立任播地址与该网络切片之间的对应关系之后,控制器可以主动下发第三报文转发规则给交换机。该第三报文转发规则用于指示交换机将域名解析请求转发给交换控制设备。第三报文转发规则的描述具体参见本发明实施例六中步骤602。
步骤207:交换控制设备指示交换机将分配的任播域名及任播地址反馈给服务提供端。
具体地,交换控制设备通过流表表项的形式指示交换机将分配的任播域名及任播地址反馈给服务提供端。
步骤208:交换控制设备将该服务提供端提供的服务已注册的任播地址、和当前与该服务提供端提供的服务对应的网络切片上报给控制器,并指示交换机告知服务提供端该服务已注册。
当该服务已注册时,交换控制设备将与该服务提供端提供的服务对应的网络切片上报给控制器,并指示交换机告知服务提供端该服务已注册。
步骤209:控制器确定该服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取该已注册的任播地址对应的网络切片,并将与与该服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
具体地,若控制器获取的该服务提供端提供的服务已注册的任播地址对应的网络切片中,不存在该服务提供端提供的服务对应的网络切片,则将当前与该服务提供端提供的服务对应的网络切片增加到对应的网络切片中。若控制器获取的该服务提供端提供的服务已注册的任播地址对应的网络切片中,存在该服务提供端提供的服务对应的网络切片,则采用当前与该服务提供端提供的服务对应的网络切片替换已存在的该服务提供端提供的服务对应的网络切片。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例三
本发明实施例提供了一种任播服务注册方法,参见图4,该方法流程包括:
步骤301:服务提供端向交换机发送服务注册请求,该服务器注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址。
具体地,本步骤301与本发明实施例二中步骤201相同,在此省略描述。
步骤302:交换机将该服务注册请求转发给控制器。
具体地,交换机可以通过交换控制设备将服务注册请求转发给控制器。
具体地,交换机可以根据第二报文转发规则将该服务注册请求转发给控制器。第二报文转发规则用于指示交换机将服务注册请求转发给控制器。
具体地,第二报文转发规则的描述参见本发明实施例二中步骤202。
步骤303:控制器获取当前与该服务提供端提供的服务对应的网络切片。
其中,当前与该服务提供端提供的服务对应的网络切片包括,当前网络中各交换机到该服务提供端的单播地址的路径中,满足该网络访问需求的路径。
具体地,控制器可以指示交换控制设备获取当前与该服务提供端提供的服务对应的网络切片。交换控制设备获取当前与该服务提供端提供的服务对应的网络切片的方式,参见本发明实施例二中步骤203。
步骤304:控制器根据服务名称,判断该服务提供端提供的服务是否已注册。
当该服务未注册时,执行步骤305;当该服务已注册时,执行步骤307。
具体地,控制器根据服务名称,判断该服务是否已注册的过程,与本发明实施例二中步骤204中交换控制设备根据服务名称,判断该服务是否已注册的过程相同,在此省略描述。
步骤305:控制器根据该服务名称,为服务提供端提供的服务分配任播域名及任播地址,并建立任播地址与该网络切片之间的对应关系。
其中,任播域名与任播地址相对应。
可选地,控制器建立任播地址与网络访问需求之间的对应关系。
具体地,本步骤305同本发明实施例二中步骤206,在此省略描述。
步骤306:控制器指示交换机将分配的任播域名及任播地址反馈给服务提供端。
具体地,控制器通过流表表项的形式指示交换机将分配的任播域名及任播地址反馈给服务提供端。
步骤307:控制器指示交换机告知服务提供端该服务已注册;确定该服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取该已注册的任播地址对应的网络切片,并将与该服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
具体地,本步骤307同本发明实施例二中步骤209,在此省略描述。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例四
本发明实施例提供了一种任播服务注册方法,参见图5,该方法流程包括:
步骤401:服务提供端向交换机发送服务注册请求,该服务器注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址。
具体地,本步骤401与本发明实施例三中步骤301相同,在此省略描述。
步骤402:交换机将该服务注册请求转发给控制器。
具体地,本步骤402与本发明实施例三中步骤302相同,在此省略描述。。
步骤403:控制器获取当前与该服务提供端提供的服务对应的网络切片。
其中,与该服务提供端提供的服务对应的网络切片包括,当前网络中各交换机到该服务提供端的单播地址的路径中,满足该网络访问需求的路径。
具体地,本步骤403与本发明实施例三中步骤303相同,在此省略描述。
步骤404:控制器根据服务名称,判断该服务提供端提供的服务是否已注册。
当该服务未注册时,执行步骤405;当该服务已注册时,执行步骤408。
具体地,本步骤404与本发明实施例三中步骤304相同,在此省略描述。
步骤405:控制器根据该服务名称,为服务提供端提供的服务分配任播域名及任播地址,并建立任播地址与该网络切片之间的对应关系。
其中,任播域名与任播地址相对应。
可选地,控制器建立任播地址与网络访问需求之间的对应关系。
具体地,本步骤405同本发明实施例三中步骤305,在此省略描述。
步骤406:控制器指示交换机分别将分配的任播域名及任播地址发送给解析器和服务提供端。
具体地,控制器中存储了解析器的单播地址。具体地,控制器根据解析器的单播地址,能够下发流表表项给交换机,指示交换机将分配的任播域名及任播地址发送到解析器的单播地址。
具体地,控制器通过流表表项的形式指示交换机将分配的任播域名及任播地址反馈给服务提供端。
步骤407:解析器存储该任播域名及任播地址。
步骤408:控制器指示交换机告知服务提供端该服务已注册;确定该服务已注册的任播地址,根据任播地址与网络切片的对应关系,获取该已注册的任播地址对应的网络切片,并将与该服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
具体地,本步骤408同本发明实施例三中步骤307,在此省略描述。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例五
本发明实施例提供了一种任播服务实现方法,适用于图1所示的OpenFlow应用场景。参见图6,该方法流程包括:
步骤501:接收服务请求报文。
其中,服务请求报文包括服务请求端的单播地址和目的任播地址。
该服务请求报文可以是图1中用户终端设备3发送给交换机2的,也可以是交换机2发送给交换控制设备5后,由交换控制设备5发送的。
步骤502:在建立的任播地址与网络切片之间的对应关系中,获取目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址。
本步骤502可以由图1中控制器1执行。
步骤503:根据最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机。
其中,第一报文转发规则用于指示交换机将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,以使交换机将服务请求报文转发至最优服务提供端的单播地址指示的服务提供端。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例六
下面先简单介绍一下本发明实施例的具体应用场景,但并不以此为限,本发明实施例适用于任何OpenFlow场景。
本发明实施例的应用场景与本发明实施例二衔接。在本发明实施例二中,服务提供端完成了服务注册,已分配了任播地址。在本发明实施例中,假设某个服务请求端(包括用户终端设备)打算请求服务提供端提供的某项任播服务。在该服务请求端首次请求该任播服务时,服务请求端只知道提供该任播服务的服务提供端的任播域名,而不知道该服务提供端的任播地址。由于服务请求端请求任播服务时,需要任播地址用于IP报文包头的打包,因此,服务请求端需发送任播域名解析请求,以获取该任播域名对应的任播地址。
在此场景下,本发明实施例提供了一种任播服务实现方法,参见图7,该方法流程包括:
步骤601:服务请求端发送域名解析请求给交换机,该域名解析请求包括服务请求端请求解析的任播域名。
进一步地,该域名解析请求还包括服务请求端的单播地址。具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
步骤602:交换机根据第三报文转发规则,将域名解析请求转发给交换控制设备。
其中,第三报文转发规则用于指示交换机将域名解析请求转发给交换控制设备。具体地,与本发明实施例二中步骤202介绍的第二报文转发规则类似,第三报文转发规则由控制器预先通过表项的形式下发给交换机。
步骤603:交换控制设备将该域名解析请求转发给控制器。
步骤604:控制器将该服务请求端请求解析的任播域名相对应的任播地址返回给交换控制设备。
具体地,控制器在存储的任播域名与任播地址的对应关系中,获取该待解析的任播域名对应的任播地址,并将该对应的任播地址返回给交换控制设备。
步骤605:交换控制设备指示交换机下发任播地址给该服务请求端的单播地址指示的服务请求端。
需要说明的是,在交换控制设备指示交换机下发任播地址给该服务请求端的单播地址指示的服务请求端之后,控制器可以主动下发第一报文转发规则给交换机,该第一报文转发规则用于指示交换机将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,以使交换机将服务请求报文转发至最优服务提供端的单播地址指示的服务提供端。第一报文转发规则的描述具体参见本实施例中步骤607。
步骤606:服务请求端发送服务请求报文,该服务请求报文包括服务请求端的单播地址和目的任播地址。
具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
步骤607:交换机判断是否存在第一报文转发规则。
若不存在第一报文转发规则,则执行步骤608;若存在第一报文转发规则,则执行步骤613。
具体地,第一报文转发规则用于指示交换机将服务请求报文转发给交换控制设备。具体地,与本发明实施例中步骤601介绍的第三报文转发规则类似,第一报文转发规则由控制器预先通过表项的形式下发给交换机。
步骤608:交换机将服务请求报文上报给交换控制设备。
步骤609:交换控制设备检查是否存在未超过生存时间的最优服务提供端的单播地址。
若不存在未超过生存时间的最优服务提供端的单播地址,执行步骤610,若存在未超过生存时间的最优服务提供端的单播地址,执行步骤613。
其中,该最优服务提供端的单播地址与目的任播地址相对应。
具体地,该最优服务提供端的单播地址由控制器下发给交换控制设备,具体参见本实施例中步骤611-612。
具体地,控制器为最优服务提供端的单播地址设定了一个生存时间,当超过这个生存时间时,意味着最优服务提供端的单播地址超时;反之,当未超过这个生存时间,意味着最优服务提供端的单播地址未超时。设置生存时间,一方面是考虑到有状态的服务(具体参见本实施例步骤611),有状态的服务要求一段时间内连续两次或两次以上的服务请求必须由同一个服务提供端响应。因此,针对有状态的服务的最优服务端方案的生存时间,可以与有状态的服务要求的时间相同。另一方面是考虑到无状态的服务(具体参见本实施例步骤611),针对无状态的服务,控制器可以授权交换控制设备在预定时间段内有决策最优服务端方案的能力。因此,针对无状态的服务的最优服务端方案的生存时间,可以与该预定时间段相同。此外,设置生成时间还考虑到网络情况的不稳定,网络情况的不稳定将导致与目的任播地址相对应的最优服务提供端的单播地址是动态变化的,这样可以实时更新最优服务端方案。
步骤610:交换控制设备将该服务请求报文上传给控制器。
具体地,当最优服务提供端的单播地址超过生存时间时,需由控制器来决策新的最优服务提供端的单播地址。
步骤611:控制器在任播地址与网络切片之间的对应关系中,获取该目的任播地址对应的网络切片,根据获取的目的任播地址对应的网络切片,确定最优服务提供端的单播地址。
其中,网络访问需求包括服务状态,服务状态包括有状态和无状态。
进一步地,控制器在下发最优服务提供端的单播地址之前,可以为最优服务提供端的单播地址设置生存时间。
优选地,本步骤611包括:首先,控制器在建立的任播地址-网络切片的对应关系中,获取服务请求请求的服务的服务状态;当该请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址;当该请求的服务的服务状态为无状态时,根据获取的目的任播地址对应的网络切片,确定至少一个最优服务提供端的单播地址。
如前所述,网络访问需求用于描述该服务提供端提供的服务对网络及数据传输方面的要求(参见本发明实施例二中步骤201)。该网络访问需求中还包括了服务提供端提供的服务的状态。在本发明实施例中,有状态服务包括对服务质量(Quality of Service,简称QoS)要求较高的服务,例如,基于TCP实现的服务,或者一段时间内连续两次或两次以上的服务请求间存在关联关系的服务。无状态服务包括对QoS要求较低的服务,服务请求端不要求每次服务请求由同一个服务提供端响应,例如,基于用户数据报协议(User Datagram Protocol,简称UDP)实现的服务。
当服务为有状态服务时,控制器将提供唯一一个最优服务提供端的单播地址。当服务为无状态服务时,控制器将提供至少一个最优服务提供端的单播地址。
具体地,控制器根据获取的目的任播地址对应的网络切片,确定最优服务提供端的单播地址,包括:控制器计算服务请求端的单播地址到目的任播地址对应的所有服务提供端的单播地址的距离,将距离最近的一个服务提供端的单播地址作为最优服务端方案。
步骤612:交换控制设备接收并缓存控制器下发的最优服务提供端的单播地址,并根据最优服务提供端的单播地址,向交换机下发第一报文转发规则。执行步骤614。
步骤613:交换控制设备根据未超过生存时间的最优服务提供端的单播地址,向交换机下发第一报文转发规则。
其中,该未超过生存时间的最优服务提供端的单播地址与目的任播地址相对应。
优选地,本步骤613包括:交换控制设备在任播地址与网络访问需求的对应关系中,获取服务请求端请求的服务的服务状态,网络访问需求包括服务状态,该服务状态包括有状态和无状态。当该服务请求请求的服务为有状态服务时,根据未超过生存时间的最优服务提供端的单播地址生成第一报文转发规则,向交换机下发第一报文转发规则。
当该服务请求请求的服务为无状态服务时,交换控制设备以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机,第一预设时间不大于该生存时间。或,当该服务请求请求的服务为无状态服务时,交换控制设备以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;以第一预设时间的结束时刻为起始时间,在第二预设时间内,交换控制设备可以根据当前网络状况,从至少一个最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机,第一预设时间和第二预设时间之和不大于生存时间。或,以第二预设时间的结束时刻为起始时间,在第三预设时间内,交换控制设备根据(交换控制设备维护的)网络状况和该目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成第一报文转发规则并下发给交换机;第一预设时间、第二预设时间和第三预设时间之和不大于生存时间。
步骤614:交换机在第一报文转发规则的指示下,将服务请求报文的目的任播地址修改为最优服务端的单播地址,并按照修改后的服务请求报文,转发该服务请求报文至最优服务端的的单播地址指示的服务提供端。
步骤615:服务提供端返回响应给交换机。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例七
下面先简单介绍一下本发明实施例的具体应用场景,但并不以此为限,本发明实施例适用于任何OpenFlow场景。
本发明实施例的应用场景与本发明实施例三衔接。在本发明实施例三中,服务提供端完成了服务注册,已分配了任播地址。在本发明实施例中,假设某个服务请求端(包括用户终端设备)打算请求服务提供端提供的某项任播服务。在该服务请求端首次请求该任播服务时,服务请求端只知道提供该任播服务的服务提供端的任播域名,而不知道该服务提供端的任播地址。由于服务请求端请求任播服务时,需要任播地址用于IP报文包头的打包,因此,服务请求端需发送任播域名解析请求,以获取该任播域名对应的任播地址。
在此场景下,本发明实施例提供了一种任播服务实现方法,参见图8,该方法流程包括:
步骤701:服务请求端发送域名解析请求给交换机,该域名解析请求包括服务请求端请求解析的任播域名和服务请求端的单播地址。
具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
步骤702:交换机将域名解析请求转发给控制器。
具体地,交换机通过交换控制设备将域名解析请求转发给控制器。
具体地,本步骤702包括本发明实施例六中步骤602-603,在此省略描述。
步骤703:控制器将该服务请求端请求解析的任播域名对应的任播地址返回给交换机,并指示交换机下发任播地址给该服务请求端的单播地址指示的服务请求端。
具体地,控制器可以通过交换控制设备将该待解析的任播域名对应的任播地址转发给交换机。
具体地,本步骤703包括本发明实施例六中步骤604-605,在此省略描述。
步骤704:服务请求端发送服务请求报文,该服务请求报文包括服务请求端的单播地址和目的任播地址。
具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
步骤705:交换机判断是否存在第一报文转发规则,若不存在第一报文转发规则,则执行步骤706;若存在第一报文转发规则,则执行步骤708。
具体地,本步骤705同本发明实施例六中步骤607,在此省略描述。
步骤706:交换机将服务请求报文上报给控制器。
步骤707:控制器检查是否存在未超过生存时间的最优服务提供端的单播地址。
若不存在未超过生存时间的最优服务提供端的单播地址,执行步骤708,若存在未超过生存时间的最优服务提供端的单播地址,执行步骤709。
其中,该最优服务提供端的单播地址与目的任播地址相对应。
具体地,本步骤707与本发明实施例六中步骤609相似,在此省略描述。
步骤708:控制器在任播地址与网络切片之间的对应关系中,获取该目的任播地址对应的网络切片,根据获取的目的任播地址对应的网络切片,确定最优服务提供端的单播地址,根据最优服务提供端的单播地址,生成第一报文转发规则,并向交换机下发该第一报文转发规则。执行步骤710。
具体地,本步骤708包括本发明实施例六中步骤611-612,在此省略描述。
步骤709:控制器根据未超过生存时间的最优服务提供端的单播地址,向交换机下发第一报文转发规则。
其中,该未超过生存时间的最优服务提供端的单播地址与目的任播地址相对应。
优选地,本步骤709包括:控制器在任播地址与网络访问需求的对应关系中,获取服务请求端请求的服务的服务状态,网络访问需求包括服务状态,该服务状态包括有状态和无状态。当该服务请求请求的服务为有状态服务时,根据未超过生存时间的最优服务提供端的单播地址生成第一报文转发规则,向交换机下发第一报文转发规则。
当该服务请求请求的服务为无状态服务时,控制器以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机,第一预设时间不大于该生存时间。或,当该服务请求请求的服务为无状态服务时,控制器以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;以第一预设时间的结束时刻为起始时间,在第二预设时间内,控制器可以根据当前网络状况,从至少一个最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机,第一预设时间和第二预设时间之和不大于生存时间。或,以第二预设时间的结束时刻为起始时间,在第三预设时间内,控制器根据(交换控制设备维护的)网络状况和该目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成第一报文转发规则并下发给交换机;第一预设时间、第二预设时间和第三预设时间之和不大于生存时间。
步骤710:交换机在第一报文转发规则的指示下,将服务请求报文的目的任播地址修改为最优服务端的的单播地址,并按照修改后的服务请求报文,转发该服务请求报文至最优服务端的的单播地址指示的服务提供端。
具体地,本步骤710同本发明实施例六中步骤614,在此省略描述。
步骤711:服务提供端返回响应给交换机。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例八
下面先简单介绍一下本发明实施例的具体应用场景,但并不以此为限,本发明实施例适用于任何OpenFlow场景。
本发明实施例的应用场景与本发明实施例四衔接。在本发明实施例四中,服务提供端完成了服务注册,已分配了任播地址。在本发明实施例中,假设某个服务请求端(包括用户终端设备)打算请求服务提供端提供的某项任播服务。在该服务请求端首次请求该任播服务时,服务请求端只知道提供该任播服务的服务提供端的任播域名,而不知道该服务提供端的任播地址。由于服务请求端请求任播服务时,需要任播地址用于IP报文包头的打包,因此,服务请求端需发送任播域名解析请求,以获取该任播域名对应的任播地址。
在此场景下,本发明实施例提供了一种任播服务实现方法,参见图9,该方法流程包括:
步骤801:服务请求端发送域名解析请求给交换机,该域名解析请求包括服务请求端请求解析的任播域名和服务请求端的单播地址。
具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
步骤802:交换机判断是否存在第四报文转发规则。
若不存在第四报文转发规则,则执行步骤803,若存在第四报文转发规则,则执行步骤805。
其中,第四报文转发规则用于指示交换机将域名解析请求转发给解析器。
步骤803:交换机将域名解析请求发送给控制器。
具体地,交换机可以通过交换控制设备将域名解析请求发送给控制器。
步骤804:控制器下发第四报文转发规则给交换机。
具体地,控制器可以通过交换控制设备下发第四报文转发规则给交换机。
步骤805:交换机根据第四报文转发规则,将该任播域名解析请求转发给解析器。
步骤806:解析器返回与服务请求端请求解析的任播域名对应的任播地址,通过交换机转发给服务请求端。
步骤807:服务请求端发送服务请求报文,该服务请求报文包括服务请求端的单播地址和目的任播地址。
具体地,服务请求端的单播地址包括服务请求端的IP地址、服务请求端的上游交换机的ID及端口ID。
具体地,本步骤807同本发明实施例七中步骤704,在此省略描述。
步骤808:交换机判断是否存在第一报文转发规则,若不存在第一报文转发规则,则执行步骤809;若存在第一报文转发规则,则执行步骤811。
具体地,本步骤808同本发明实施例七中步骤705,在此省略描述。
步骤809:交换机将服务请求报文上报给控制器。
具体地,本步骤809同本发明实施例七中步骤706,在此省略描述。
步骤810:控制器在任播地址与网络切片之间的对应关系中,获取该目的任播地址对应的网络切片,根据获取的目的任播地址对应的网络切片,确定最优服务提供端的单播地址,根据最优服务提供端的单播地址,生成第一报文转发规则,并向交换机下发第一报文转发规则。
具体地,本步骤810同本发明实施例七中步骤708,在此省略描述。
步骤811:交换机在第一报文转发规则的指示下,将服务请求报文的目的任播地址修改为最优服务提供端的单播地址,并按照修改后的服务请求报文,转发该服务请求报文至最优服务提供端的的单播地址指示的服务提供端。
具体地,本步骤811同本发明实施例七中步骤710,在此省略描述。
步骤812:服务提供端返回响应给交换机。
具体地,本步骤812同本发明实施例七中步骤711,在此省略描述。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例九
本发明实施例提供了一种任播服务注册装置,适用于实施例一中描述的任播服务注册方法。参见图10,该装置包括:
第一接收模块901,用于接收服务注册请求。
其中,服务注册请求包括但不限于服务名称、网络访问需求、以及服务提供端的单播地址。具体地,服务名称用于描述服务提供端提供的服务。网络访问需求用于描述服务提供端提供的服务对网络及数据传输方面的要求,例如最小带宽需求、和抖动需求等等。
可选地,在第一种实施方式中,第一接收模块901可以集成在图1所示的控制器1上,在第二种实施方式中,第一接收模块901可以集成在图1所示的交换控制设备5上。
第一确定模块902,用于确定与服务提供端提供的服务对应的网络切片。
其中,网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径。
可选地,在第一种实施方式中,第一确定模块902可以集成在图1所示的控制器1上,在第二种实施方式中,第一确定模块902可以集成在图1所示的交换控制设备5上。
第二确定模块903,用于确定该服务的任播域名及任播地址,以在控制器上建立任播地址与网络切片之间的对应关系,完成服务注册。
当该服务为已注册服务时,确定该服务的任播域名及任播地址,包括:控制器确定该服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取已注册的任播地址对应的网络切片,并将与服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
当该服务为未注册服务时,确定该服务的任播域名及任播地址,包括:控制器为该服务分配任播域名及任播地址,并建立任播地址与网络切片之间的对应关系。
可选地,第二确定模块903可以集成在图1所示的控制器1上。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十
本发明实施例提供了一种任播服务注册装置,适用于实施例一、二、和三中描述的任播服务注册方法。参见图11,该装置包括:
第一接收模块1001,用于接收服务注册请求。
其中,服务注册请求包括但不限于服务名称、网络访问需求、以及服务提供端的单播地址。具体地,服务名称用于描述服务提供端提供的服务。网络访问需求用于描述服务提供端提供的服务对网络及数据传输方面的要求,例如最小带宽需求、和抖动需求等等。
可选地,在第一种实施方式中,第一接收模块1001可以集成在图1所示的控制器1上,在第二种实施方式中,第一接收模块1001可以集成在图1所示的交换控制设备5上。
第一确定模块1002,用于确定与服务提供端提供的服务对应的网络切片。
其中,网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径。
可选地,在第一种实施方式中,第一确定模块1002可以集成在图1所示的控制器1上,在第二种实施方式中,第一确定模块1002可以集成在图1所示的交换控制设备5上。
第二确定模块1003,用于确定该服务的任播域名及任播地址,以在控制器上建立任播地址与网络切片之间的对应关系,完成服务注册。
可选地,第二确定模块1003包括:
判断单元1003a,用于根据服务名称,判断服务是否已注册。
分配单元1003b,用于当服务为未注册服务时,控制器为服务分配任播域名及任播地址,并建立任播地址与网络切片之间的对应关系。
更新单元1003c,用于当服务为已注册服务时,控制器确定服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取已注册的任播地址对应的网络切片,并将与服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
可选地,在第一种实施方式中,第二确定模块1003可以集成在图1所示的控制器1上。在第二种实施方式中,判断单元1003a可以集成在图1所示的交换控制设备5上,分配单元1003b和更新单元1003c可以集成在图1所示的控制器1上。
可选地,网络访问需求包括服务状态,服务状态包括有状态和无状态,第二确定模块1003还用于,建立任播地址与网络访问需求之间的对应关系。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十一
本发明实施例提供了一种任播服务注册装置,适用于实施例四中描述的任播服务注册方法。参见图12,该装置包括第一接收模块1101、第一确定模块1102和第二确定模块1103。第一接收模块1101、第一确定模块1102和第二确定模块1103与本发明实施例十中描述的第一接收模块1001、第一确定模块1002和第二确定模块1003的结构相同,不同之处在于,该装置还包括:
第一发送模块1104,用于将任播域名及任播地址发送给解析器。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十二
本发明实施例提供了一种任播服务注册装置,适用于本发明实施例一到四提供的任播服务注册方法。参见图13,其一般包括至少一个第一处理器121(例如CPU)、第二处理器122、至少一个网络接口123或者其他通信接口、存储器124和至少一个通信总线125。本领域技术人员可以理解,图13中示出的结构并不构成对该装置的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图13对该装置的各个构成部件进行具体的介绍:
通信总线125用于实现第一处理器121、第二处理器122、存储器124及网络接口123之间的连接通信。
至少一个网络接口123(可以是有线或者无线)实现该装置与至少一个交换机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
存储器124可用于存储软件程序以及应用模块,第一处理器121和第二处理器122通过运行存储在存储器124的软件程序以及应用模块,从而执行控制器的各种功能应用以及数据处理。存储器124可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能(例如下发表项)所需的应用程序等;存储数据区可存储根据该装置的使用所创建的数据(例如存储的报文)等。此外,存储器124可以包括高速RAM(Random Access Memory,随机存取存储器),还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
第一处理器121和第二处理器122是该装置的控制中心,利用各种接口和线路连接整个装置的各个部分,通过运行或执行存储在存储器124内的软件程序和/或应用模块,以及调用存储在存储器124内的数据,执行该装置的各种功能和处理数据,从而对该装置进行整体监控。
在第一种实施方式中,第一处理器121可以设置在OpenFlow网络架构中的控制器(例如图1所示的控制器1)上,第二处理器122可以设置在OpenFlow网络架构中的交换控制设备(例如图1所示的交换控制设备5)上。
在第二种实施方式中,第一处理器121和第二处理器122分别设置在OpenFlow网络架构中的控制器(例如图1所示的控制器1)上。
具体地,通过运行或执行存储在存储124内的软件程序和/或应用模块,以及调用存储在存储器124内的数据,第一处理器121和第二处理器122可以实现,接收服务注册请求,服务注册请求包括服务名称、网络访问需求、以及服务提供端的单播地址,网络访问需求用于描述所述服务提供端提供的服务对网络及数据传输方面的要求;确定与服务提供端提供的服务对应的网络切片,网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;确定服务的任播域名及任播地址,以在控制器上建立任播地址与网络切片之间的对应关系,完成服务注册。
可选地,第一处理器121和第二处理器122用于实现,根据服务名称,判断服务是否已注册;当服务为未注册服务时,控制器为服务分配任播域名及任播地址,并建立任播地址与网络切片之间的对应关系;当服务为已注册服务时,控制器确定服务已注册的任播地址,根据任播地址与网络切片之间的对应关系,获取已注册的任播地址对应的网络切片,并将与服务提供端提供的服务对应的网络切片更新到已注册的任播地址对应的网络切片中。
可选地,第一处理器121和第二处理器122用于实现,建立任播地址与网络访问需求之间的对应关系。
可选地,第一处理器121和第二处理器122用于实现,将任播域名及任播地址发送给解析器。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十三
本发明实施例提供了一种任播服务实现装置,适用于实施例五中描述的任播服务实现方法。参见图14,该装置包括:
第二接收模块1301,用于接收服务请求报文。
其中,服务请求报文包括服务请求端的单播地址和目的任播地址。
可选地,在第一种实施方式中,第二接收模块1301可以集成在图1所示的控制器1上,在第二种实施方式中,第二接收模块1301可以集成在图1所示的交换控制设备5上。
获取模块1302,用于在建立的任播地址与网络切片之间的对应关系中,获取目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址。
可选地,获取模块1302可以集成在图1所示的控制器1上。
第二发送模块1303,用于根据最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机。
其中,第一报文转发规则用于指示交换机将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,以使交换机将服务请求报文转发至最优服务提供端的单播地址指示的服务提供端。
可选地,在第一种实施方式中,第二发送模块1303可以集成在图1所示的控制器1上,在第二种实施方式中,第二发送模块1303可以集成在图1所示的交换控制设备5上。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十四
本发明实施例提供了一种任播服务实现装置,适用于实施例五-八中描述的任播服务实现方法。参见图15,该装置包括:
第二接收模块1401,用于接收服务请求报文。
其中,服务请求报文包括服务请求端的单播地址和目的任播地址。
可选地,在第一种实施方式中,第二接收模块1401可以集成在图1所示的控制器1上,在第二种实施方式中,第二接收模块1401可以集成在图1所示的交换控制设备5上。
可选地,第二接收模块1401还用于,接收域名解析请求,域名解析请求包括服务请求端请求解析的任播域名;根据任播域名与任播地址的对应关系,获取请求解析的任播域名对应的任播地址,将对应的任播地址下发至服务请求端。
获取模块1402,用于在建立的任播地址与网络切片之间的对应关系中,获取目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址。
可选地,获取模块1402可以集成在图1所示的控制器1上。
可选地,获取模块1402包括:
第一获取单元1402a,用于在任播地址与网络切片之间的对应关系中,获取目的任播地址对应的网络切片。
第二获取单元1402b,用于在任播地址与网络访问需求之间的对应关系中,获取服务请求端请求的服务的服务状态;网络访问需求包括服务状态,服务状态包括有状态和无状态。
第一确定单元1402c,用于当服务请求请求的服务的服务状态为无状态时,根据获取的对应的网络切片,确定至少一个最优服务提供端的单播地址。
第二确定单元1402d,用于当服务请求请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址。
第二发送模块1403,用于根据最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机。
其中,第一报文转发规则用于指示交换机将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,以使交换机将服务请求报文转发至最优服务提供端的单播地址指示的服务提供端。
可选地,在第一种实施方式中,第二发送模块1403可以集成在图1所示的控制器1上,在第二种实施方式中,第二发送模块1403可以集成在图1所示的交换控制设备5上。
可选地,该装置还包括:
设置模块1404,用于根据服务请求请求的服务的服务状态,为最优服务提供端的单播地址设置生存时间。
可选地,获取模块1402还用于,检测是否存在未超过生存时间的最优服务提供端的单播地址,未超过生存时间的最优服务提供端的单播地址与目的任播地址相对应;若不存在未超过生存时间的最优服务提供端的单播地址,则在建立的任播地址与网络切片的对应关系中,获取目的任播地址对应的网络切片。
可选地,获取模块1402还用于,若存在未超过生存时间的最优服务提供端的单播地址,则获取服务请求端请求的服务状态。
第二发送模块1403还用于,当服务请求请求的服务状态为有状态时,根据未超过生存时间的最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机;当服务请求请求的服务状态为无状态时,以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;第一预设时间不大于生存时间。
可选地,第二发送模块1403还用于,当服务请求请求的服务状态为无状态时,以第一预设时间的结束时刻为起始时间,在第二预设时间内,根据当前网络状况,从至少一个未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;第一预设时间和第二预设时间之和不大于生存时间。
可选地,第二发送模块1403还用于,当服务请求请求的服务状态为无状态时,以第二预设时间的结束时刻为起始时间,在第三预设时间内,根据网络状况和目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成第一报文转发规则并下发给交换机;第一预设时间、第二预设时间和第三预设时间之和不大于生存时间。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十五
本发明实施例提供了一种任播服务实现装置,适用于本发明实施例五到八提供的任播服务实现方法。参见图16,其一般包括至少一个第一处理器151(例如CPU)、第二处理器152、至少一个网络接口153或者其他通信接口、存储器154和至少一个通信总线155。本领域技术人员可以理解,图16中示出的结构并不构成对该装置的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图16对该装置的各个构成部件进行具体的介绍:
通信总线155用于实现第一处理器151、第二处理器152、存储器154及网络接口153之间的连接通信。
至少一个网络接口153(可以是有线或者无线)实现该装置与至少一个交换机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
存储器154可用于存储软件程序以及应用模块,第一处理器151和第二处理器152通过运行存储在存储器154的软件程序以及应用模块,从而执行该装置的各种功能应用以及数据处理。存储器154可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能(例如下发表项)所需的应用程序等;存储数据区可存储根据该装置的使用所创建的数据(例如存储的报文)等。此外,存储器154可以包括高速RAM(Random Access Memory,随机存取存储器),还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
第一处理器151和第二处理器152是该装置的控制中心,利用各种接口和线路连接整个装置的各个部分,通过运行或执行存储在存储器154内的软件程序和/或应用模块,以及调用存储在存储器154内的数据,执行装置的各种功能和处理数据,从而对装置进行整体监控。
在第一种实施方式中,第一处理器151可以设置在OpenFlow网络架构中的控制器(例如图1所示的控制器1)上,第二处理器152可以设置在OpenFlow网络架构中的交换控制设备(例如图1所示的交换控制设备5)上。
在第二种实施方式中,第一处理器151和第二处理器152分别设置在OpenFlow网络架构中的控制器(例如图1所示的控制器1)上。
具体地,通过运行或执行存储在存储154内的软件程序和/或应用模块,以及调用存储在存储器154内的数据,第一处理器151和第二处理器152可以实现,接收服务请求报文,服务请求报文包括服务请求端的单播地址和目的任播地址;在任播地址与网络切片之间的对应关系中,获取目的任播地址对应的网络切片,根据获取的对应的网络切片,确定最优服务提供端的单播地址;根据最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机,第一报文转发规则用于指示交换机将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,以使交换机将服务请求报文转发至最优服务提供端单播地址指示的服务提供端。
可选地,第一处理器151和第二处理器152可以实现,在任播地址与网络访问需求之间的对应关系中,获取服务请求端请求的服务的服务状态;网络访问需求包括服务状态,服务状态包括有状态和无状态;当服务请求请求的服务的服务状态为无状态时,根据获取的对应的网络切片,确定至少一个最优服务提供端的单播地址;当服务请求请求的服务的服务状态为有状态时,根据获取的对应的网络切片,确定一个最优服务提供端的单播地址。
可选地,第一处理器151和第二处理器152可以实现,根据服务请求请求的服务的服务状态,为最优服务提供端的单播地址设置生存时间。
可选地,第一处理器151和第二处理器152可以实现,检测是否存在未超过生存时间的最优服务提供端的单播地址,未超过所述生存时间的最优服务提供端的单播地址与目的任播地址相对应;若不存在未超过所述生存时间的最优服务提供端的单播地址,则在建立的任播地址与网络切片的对应关系中,获取目的任播地址对应的网络切片。
可选地,第一处理器151和第二处理器152可以实现,若存在未超过生存时间的最优服务提供端的单播地址,则获取服务请求端请求的服务状态;当服务请求请求的服务状态为有状态时,根据未超过所述生存时间的最优服务提供端的单播地址生成第一报文转发规则,并将第一报文转发规则下发给交换机;当服务请求请求的服务状态为无状态时,以生存时间的开始时刻作为起始时间,在第一预设时间内,从至少一个未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;第一预设时间不大于生存时间。
可选地,第一处理器151和第二处理器152可以实现,当服务请求请求的服务状态为无状态时,以第一预设时间的结束时刻为起始时间,在第二预设时间内,根据当前网络状况,从至少一个未超过所述生存时间的最优服务提供端的单播地址中选择一个单播地址生成第一报文转发规则并下发给交换机;第一预设时间和第二预设时间之和不大于生存时间。
可选地,第一处理器151和第二处理器152可以实现,当服务请求请求的服务状态为无状态时,以第二预设时间的结束时刻为起始时间,在第三预设时间内,根据网络状况和目的任播地址对应的网络切片,确定一个最优服务提供端的单播地址,生成第一报文转发规则并下发给交换机;第一预设时间、第二预设时间和第三预设时间之和不大于生存时间。
可选地,第一处理器151和第二处理器152可以实现,接收域名解析请求,域名解析请求包括服务请求端请求解析的任播域名;根据任播域名与任播地址的对应关系,获取请求解析的任播域名对应的任播地址,将对应的任播地址下发至服务请求端。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十六
本发明实施例提供了一种交换设备,适用于实施例五-七中描述的任播服务实现方法。参见图17,该设备包括:
第三接收模块1601,用于接收服务请求报文,该服务请求报文包括服务请求端的单播地址和目的任播地址。
第三发送模块1602,用于将服务请求包括上传给控制器。
转发模块1603,用于在第一报文转发规则的指示下,将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,并将服务请求报文转发至最优服务提供端单播地址指示的服务提供端。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十七
本发明实施例提供了一种交换设备,适用于实施例八中描述的任播服务实现方法。该设备包括第三接收模块、第三发送模块和转发模块。第三接收模块、第三发送模块和转发模块的结构同本发明实施例十六中第三接收模块1601、第三发送模块1602和转发模块1603的结构,在此省略描述。本实施例与实施例十六的不同之处在于,
第三接收模块还用于,接收域名解析请求,该域名解析请求包括服务请求端请求解析的任播域名;将域名解析请求上传给解析器;接收解析器发送的与请求解析的任播域名对应的任播地址,并将与请求解析的任播域名对应的任播地址发送给服务请求端。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十八
本发明实施例提供了一种交换设备,适用于本发明实施例五到八提供的任播服务实现方法。参见图18,其一般包括至少一个处理器181(例如CPU)、至少一个网络接口182或者其他通信接口、存储器183和至少一个通信总线184。本领域技术人员可以理解,图18中示出的结构并不构成对该设备的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图18对该设备的各个构成部件进行具体的介绍:
通信总线184用于实现处理器181、存储器183及网络接口182之间的连接通信。
至少一个网络接口182(可以是有线或者无线)实现该设备与至少一个交换机之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
存储器183可用于存储软件程序以及应用模块,处理器181通过运行存储在存储器183的软件程序以及应用模块,从而执行该设备的各种功能应用以及数据处理。存储器183可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能(例如转发报文)所需的应用程序等;存储数据区可存储根据该设备的使用所创建的数据(例如存储的报文)等。此外,存储器183可以包括高速RAM(Random Access Memory,随机存取存储器),还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器181是该设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器183内的软件程序和/或应用模块,以及调用存储在存储器183内的数据,执行设备的各种功能和处理数据,从而对设备进行整体监控。
具体地,通过运行或执行存储在存储器183内的软件程序和/或应用模块,以及调用存储在存储器183内的数据,处理器181可以实现,接收服务请求报文,服务请求报文包括服务请求端的单播地址和目的任播地址;将服务请求包括上传给控制器;在第一报文转发规则的指示下,将服务请求报文的目的任播地址更改为最优服务提供端的单播地址,并将服务请求报文转发至最优服务提供端单播地址指示的服务提供端。
可选地,处理器181用于实现,接收域名解析请求,域名解析请求包括服务请求端请求解析的任播域名;将域名解析请求上传给解析器;接收解析器发送的与请求解析的任播域名对应的任播地址,并将与请求解析的任播域名对应的任播地址发送给服务请求端。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
实施例十九
本发明实施例提供了一种任播服务注册和实现系统,参见图19,该系统包括:任播服务注册装置1901、任播服务实现装置1902、以及交换设备1903。
具体地,任播服务注册装置1901为本发明实施例九-十二中描述的注册装置;任播服务实现装置1902为本发明实施例十三-十五中描述的实现装置;交换设备1903为本发明实施例十六-十八中描述的交换设备,在此省略描述。
本发明实施例通过为服务提供端提供的服务确定任播域名及任播地址,并且,确定与服务提供端提供的服务对应的网络切片,该网络切片包括,当前网络中各个交换机到服务提供端的单播地址的路径中,满足网络访问需求的路径;能够分配任播地址给服务提供端,并且能够主动获取服务提供端的路由信息,即便没有路由功能的服务提供端也能分配任播地址,降低了任播服务对节点能力的要求,同时降低了任播技术的应用代价,使得大量的任播服务可以被部署到网络中。
需要说明的是:上述实施例提供的任播服务实现方法在实现任播服务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的任播服务实现装置与任播服务实现方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。