一种基于netconf协议的hello报文交互的方法、设备和系统的制作方法_3

文档序号:9527412阅读:来源:国知局
客户端与服务端曾经建立过链接,那么客户端会保存之前与服务端建立链接时,由服务端发送的第二标识信息;同样也会保存之前与所述服务端建立链接时,由所述服务端发送的业务模块信息;那么,客户端可以将第一 HELL0报文中的第二标识信息与自身保存的第二标识信息进行比较,从而得知服务端的业务模块信息是否发生了改变。可以理解的,当服务端的业务模块信息发生改变时,客户端需要重新获取服务端的业务模块信息;当服务端的业务模块信息未发生改变时,客户端不需要重新获取服务端的业务模块信息。
[0131]还需要说明的是,如果客户端从未与服务端建立过链接,那么客户端不会保存服务端的第二标识信息;所以此时客户端需要获取服务端的业务模块信息。
[0132]示例性地,结合上述的说明,参见图5,S320具体可以包括S3201至S3203:
[0133]S3201:当所述客户端首次与所述服务端建立链接时,所述客户端确定向所述服务端发送获取请求;
[0134]S3202:当所述客户端与所述服务端建立过链接,且所述客户端自身保存的第二标识信息与所述第一 HELLO报文中的第二标识信息不同时,所述客户端确定向所述服务端发送获取请求;
[0135]S3203:当所述客户端与所述服务端建立过链接,且所述客户端自身保存的第二标识信息与所述第一 HELLO报文中的第二标识信息相同时,所述客户端确定不向所述服务端发送获取请求。
[0136]示例性地,参见图4,在步骤S300之后,且在步骤S320之前,所述方法还可以包括S311 和 S312:
[0137]S311:客户端向服务端发送第二 HELLO报文;
[0138]其中,所述第二 HELLO报文包括所述客户端的能力信息,并且所述第二 HELLO报文用于服务端确认建立链接完成。
[0139]S312:客户端将第一 HELL0报文中携带的所述服务端能力信息与自身支持的能力信息进行协商,获取客户端与服务端共同的能力信息,并确定与服务端建立链接完成。
[0140]具体地,客户端在获取到自身与服务端共同的能力信息后,可以确定与服务端建立链接完成,并且将第一 HELL0报文中的第一标识信息作为所述客户端与所述服务端建立的链接标识。
[0141]S330:当客户端确定向服务端发送获取请求时,客户端向服务端发送获取请求;
[0142]示例性地,所述获取请求用于获取所述服务端的业务模块信息;而所述服务端的业务模块信息可以包括所述服务端的业务模块标识和所述服务端业务模块特征信息,在本实施例中,所述服务端业务模块标识可以是所述服务端业务模块的名称;所述服务端业务模块特征信息可以包括所述服务端业务模块的feature信息和deviat1n信息,而feature信息和deviat1n信息为本领域技术人员的公知常识,在此不再赘述;
[0143]进一步需要说明的是,若所述客户端确定向所述服务端发送获取请求,那么,所述客户端向所述服务端发送的获取请求可以包括:所述客户端自身获取服务端业务模块信息的能力标识;或者,所述客户端自身获取服务端业务模块信息的能力标识和所述客户端需要获取的业务模块标识。
[0144]S340:客户端接收所述服务端发送的所述服务端的业务模块信息;
[0145]示例性地,根据获取请求中包括内容的不同,相应地,步骤S340中,客户端接收的业务模块信息也有区别,具体地,
[0146]当所述获取请求包括所述客户端自身获取服务端业务模块信息的能力标识时,所述客户端接收所述服务端发送的所述服务端所有的业务模块信息;
[0147]当所述获取请求包括所述客户端自身获取服务端业务模块信息的能力标识和所述客户端需要获取的业务模块标识时,所述客户端接收所述服务端发送的所述客户端需要获取的业务模块信息。
[0148]本发明实施例提供的报文交互的方法,通过在第一次交互中,客户端接收的HELL0报文不包括服务端自身的业务模块信息,而是在第二次交互中接收将服务端的业务模块信息,从而避免服务端的HELL0报文发送失败,进而提高客户端与服务端之间通过NETCONF协议建立链接的成功率。
[0149]参见图6、其示出了本发明实施例提供的一种基于NETCONF协议的HELLO报文交互的方法详细流程,该方法可以包括:
[0150]S601:客户端向服务端发送建立链接请求和第二 HELLO报文;
[0151]需要说明的是,客户端发送建立链接请求和第二 HELLO报文之间没有明显的时间上的先后顺序,两者可以是在同一时刻发送的,也可以是不同时刻发送的,本实施例对此不作具体限定。
[0152]示例性地,所述第二 HELLO报文包括所述客户端能力信息,服务端可以根据所述第二 HELL0报文中所述客户端能力信息确定所述服务端与所述客户端共同能力信息。
[0153]S602:服务端在接收到客户端发送的建立链接请求后,向所述客户端发送第一HELL0报文;
[0154]示例性的,所述第一 HELL0报文由所述服务端自身的能力信息、所述服务端为所述建立链接请求分配的第一标识信息和所述服务端的业务模块信息对应的第二标识信息组成;
[0155]具体地,在本实施例中,参见图7,其示出了本发明实施例提供的一种第一 HELL0报文的内容,在图7所示的报文中,capabilities子节点的内容就是所述服务端自身的能力信息;sess1n_id子节点的内容为所述第一标识信息;module-1nfo_seqno子节点的内容为所述第二标识信息。可以发现,第一 HELL0报文中没有包括所述服务端的业务模块信息,因此,第一 HELL0报文的长度要短于现有技术中的HELL0报文长度。
[0156]需要说明的是,客户端发送第二 HELL0报文和服务端发送第一 HELL0报文之间也没有明显的时间上的先后顺序。
[0157]S603:服务端通过将所述第一 HELL0报文与所述第二 HELL0报文进行比较,获取所述服务端与所述客户端共同的能力信息,并确定与所述客户端建立链接完成;
[0158]示例性地,所述服务端在获取到自身与所述客户端共同具备的能力信息后,可以确定与所述客户端建立链接完成,并可以将图7所述的第一 HELL0报文中sess1n-1d子节点的内容作为所述服务端与所述客户端建立的链接标识。
[0159]S604:所述客户端通过将所述第一 HELL0报文与所述第二 HELL0报文进行比较,获取所述客户端与所述服务端共同的能力信息,并确定与所述服务端建立链接完成;
[0160]示例性地,所述客户端在获取到自身与所述服务端共同的能力信息后,可以确定与所述服务端建立链接完成,并且并可以将图7所述的第一 HELL0报文中sess1n-1d子节点的内容作为所述客户端与所述服务端建立的链接标识。
[0161]需要说明的是,S603和S604之间也没有时间上的先后顺序,两者可以同时进行,也可以在不同时刻进行。
[0162]当客户端与服务端建立链接完成后,客户端还需要获取服务端的业务模块信息才能实现具体的业务,因此,还可以包括:
[0163]S605:客户端根据所述第二标识信息确定向所述服务端发送获取请求;
[0164]示例性地,所述获取请求用于获取所述服务端的业务模块信息;
[0165]需要说明的是,如果所述客户端与所述服务端建立过链接,那么所述客户端会保存之前与所述服务端建立链接时,由所述服务端发送的第二标识信息;同样也会保存之前与所述服务端建立链接时,由所述服务端发送的业务模块信息;
[0166]如果所述客户端从未与所述服务端建立过链接,那么所述客户端不会保存所述服务端的第二标识信息;
[0167]由于服务端的业务模块并不会很频繁的变化,因此,第二标识信息也通常不会有频繁的变化,所以步骤S605可以包括:
[0168]当所述客户端首次与所述服务端建立链接时,所述客户端确定向所述服务端发送获取请求;
[0169]当所述客户端与所述服务端建立过链接,且所述客户端自身保存的第二标识信息与所述第二 HELLO报文中的第二标识信息不同时,所述客户端确定向所述服务端发送获取请求;
[0170]当所述客户端与所述服务端建立过链接,且所述客户端自身保存的第二标识信息与所述第二 HELLO报文中的第二标识信息相同时,所述客户端确定不向所述服务端发送获取请求。
[0171]进一步需要说明的是,若所述客户端确定向所述服务端发送获取请求,那么,所述客户端向所述服务端发送的获取请求可以包括:
[0172]所述客户端自身获取服务端业务模块信息的能力标识,该能力标识表示所述客户端具有获取所述服务端业务模块信息的能力,通常可以用所述客户端获取服务端业务模块信息的操作指令来表示,用于触发所述服务端将自身的业务模块信息发送至所述客户端;比如,参见图8,其示出了本发明实施例提供的一种获取请求报文内容,其中,get-module-1nfo为所述客户端获取服务端业务模块信息的操作指令;
[0173]或者,所述客户端自身获取服务端业务模块信息的能力标识和所述客户端需要获取的业务模块标识;其中,所述客户端需要获取的业务模块标识可以用于所述服务端仅将所述客户端需要获取的业务模块标识对应的业务模块信息发送至所述客户端,从而无需将所述服务端自身所有的业务模块信息发送至所述客户端,可以减少在发送业务模块信息时的网络资源消耗;比如可以在图8所示的获取请求报文中,通过增加所述客户端需要获取的业务模块标识的节点内容来实现,具体的实现方式为本领域技术人员的常用技术手段,在此不再赘述。
[0174]S606:所述服务端根据所述获取请求将自身的业务模块信息发送至所述客户端;
[0175]示例性地,由于S605中的获取请求可以包括两种情况,所以步骤S606也可以包括:
[0176]当所述获取请求包括所述客户端获取所述服务端业务模块信息的能力标识时,所述服务端将自身所有业务模块信息发送至所述客户端;
[0177]当所述获取请求包括所述客户端获取所述服务端业务模块信息的能力标识和所述客户端需要获取的业务模块标识时,所述服务端将所述客户端需要获取的业务模块标识对应的业务模块信息发送至所述客户端。
[0178]具体地,如图9所示,其示出了本发明实施例提供的一种服务端发送至客户端的业务模块信息的报文格式,其中,一个module子节点表7K服务端的一个业务模块;在module子节点中,Name子节点表示业务模块的标志、Revis1n子节点表示业务模块的版本信息、另外module子节点中还包括Feature信息和Deviat1n信息。所述客户端可以根据图9所示的报文获取到服务器的业务模块信息。
[0179]本发明实施例提供的报文交互的方法详细流程,通过在第一次交互中,服务端发送的HELLO报文不包括服务端自身业务模块的相关信息,而是将服务端业务模块的相关信息根据客户端的具体请求放在第二次交互中来进行发送,从而避免服务端的HELLO报文发送失败,进而提高客户端与服务端之间通过NETCONF协议建立链接的成功率。
[0180]参见图10,其示出了本发明实施例提供的一种服务端设备100的结构,该设备可以包括:报文生成单元1001、第一发送单元1002、第一接收单元1003,其中,
[0181]所述报文生成单元1001,用于将所述服务端设备自身的能力信息、为与客户端建立的链接所分配的第一标识信息以及用于表征所述服务端设备的业务模块信息变化状态的第二标识信息承载于第一 HELLO报文中;
[0182]所述第一发送单元1002,用于向所述客户端发送所述第一 HELLO报文;
[0183]所述第一接收单元1003,用于接收客户端发送的的获取请求,所述获取请求由所述客户端根据所述第二标识信息确定发送;
[0184]所述第一发送单元1002,还用于根据所述获取请求将自身的业务模块信息发送至所述客户端。
[0185]示例性的,
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1