一种分配并映射公网地址的方法、装置及网络系统转让专利

申请号 : CN201610192807.9

文献号 : CN106982270B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张展樊辉厉益舟

申请人 : 华为技术有限公司

摘要 :

本申请公开了一种分配并映射公网地址的方法、装置及网络系统,涉及通信技术领域,能够解决在多出口链路场景中,现有PCP服务器无法为PCP客户端分配公有网络地址信息的问题。该方法包括:端口控制协议PCP服务器接收PCP客户端发送的第一PCP请求消息,第一PCP请求消息的源地址信息为PCP客户端的私有网络地址信息;PCP服务器根据第一PCP请求消息为PCP客户端分配M个公有网络地址信息,N≥M≥2,N为PCP服务器包含的网络出口的数量,M个公有网络地址信息与PCP服务器的M个网络出口一一对应;PCP服务器记录私有网络地址信息和M个公有网络地址信息的对应关系。

权利要求 :

1.一种分配并映射公网地址的方法,其特征在于,包括:

端口控制协议PCP服务器接收PCP客户端发送的第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息;

所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配M个公有网络地址信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应;

所述PCP服务器记录所述私有网络地址信息和所述M个公有网络地址信息的对应关系。

2.根据权利要求1所述的方法,其特征在于,对于所述M个公有网络地址信息中的第一公有网络地址信息,所述PCP服务器为所述PCP客户端分配第一公有网络地址信息,并记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系,包括:所述PCP服务器接收PCP客户端发送的第二PCP请求消息,所述第二PCP请求消息携带第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述私有网络地址信息,所述第一网络出口为所述M个网络出口中与所述第一公有网络地址信息相对应的网络出口,且所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;

所述PCP服务器根据所述第一网络出口的指示信息,选取与所述第一网络出口对应的公网地址池;

所述PCP服务器从选取的所述公网地址池中为所述PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息;

所述PCP服务器记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。

3.根据权利要求2所述的方法,其特征在于,所述PCP服务器接收PCP客户端发送的第二PCP请求消息之前,所述方法还包括:所述PCP服务器接收所述PCP客户端发送的第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;

所述PCP服务器根据所述第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与所述第一顺序标识对应的第一网络出口的指示信息;

所述PCP服务器向所述PCP客户端发送所述第一网络出口的指示信息。

4.根据权利要求3所述的方法,其特征在于,所述PCP服务器接收所述PCP客户端发送的第三PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。

5.根据权利要求2所述的方法,其特征在于,所述PCP服务器记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系之后,所述方法还包括:所述PCP服务器向所述PCP客户端发送确认消息,所述确认消息携带所述第一对应关系和所述第一网络出口的指示信息。

6.根据权利要求1所述的方法,其特征在于,所述PCP服务器为所述PCP客户端分配M个公有网络地址信息,包括:所述PCP服务器根据第一预设规则,从N个网络出口中选取所述M个网络出口;

对于所述M个网络出口中的每个网络出口,所述PCP服务器获取与所述网络出口对应的公网地址池,并从获取的公网地址池中为所述PCP客户端分配一个公有网络地址信息。

7.根据权利要求2所述的方法,其特征在于,所述PCP服务器接收PCP客户端发送的第二PCP请求消息之前,所述方法还包括:所述PCP服务器接收所述PCP客户端在获知所述PCP服务器包含的网络接口不唯一时发送的第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述PCP服务器根据所述第二标识和第二预设规则,获取所述M个网络出口中每个网络出口的指示信息;

所述PCP服务器向所述PCP客户端发送应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息。

8.根据权利要求7所述的方法,其特征在于,所述PCP服务器接收所述PCP客户端发送的第四PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识。

9.根据权利要求7所述的方法,其特征在于,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述PCP服务器接收所述PCP客户端发送的第四PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。

10.一种分配并映射公网地址的方法,其特征在于,包括:

端口控制协议PCP客户端向PCP服务器发送第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,所述第一PCP请求消息用于请求所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配公有网络地址信息;

所述PCP客户端接收所述PCP服务器发送的M条确认消息,所述M条确认消息中的每条确认消息携带所述私有网络地址信息、所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述PCP服务器为所述PCP客户端分配的M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。

11.根据权利要求10所述的方法,其特征在于,对于所述M个网络出口中的第一网络出口,所述PCP客户端向PCP服务器发送第一PCP请求消息之后,且所述PCP客户端接收所述PCP服务器发送的所述M条确认消息中的第一确认消息之前,所述第一确认消息为携带有所述第一网络出口的指示信息的确认消息,所述方法还包括:所述PCP客户端获得所述第一网络出口的指示信息,所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;

所述PCP客户端向所述PCP服务器发送第二PCP请求消息,所述第二PCP请求消息携带所述第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述PCP客户端的私有网络地址信息,所述第二PCP请求消息用于请求所述PCP服务器在所述第一网络出口对应的公网地址池中为所述PCP客户端分配公有网络地址信息。

12.根据权利要求11所述的方法,其特征在于,所述PCP客户端获得所述第一网络出口的指示信息,具体包括:所述PCP客户端获得N;

所述PCP客户端向所述PCP服务器发送第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;

所述PCP客户端接收所述PCP服务器发送的与所述第一顺序标识相对应的第一网络出口的指示信息。

13.根据权利要求12所述的方法,其特征在于,所述PCP客户端获得N,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N;

所述PCP客户端从所述第一响应消息中获得N。

14.根据权利要求11所述的方法,其特征在于,所述PCP客户端获得所述第一网络出口的指示信息,具体包括:所述PCP客户端获得第一标识,所述第一标识用于指示所述PCP服务器包含的网络出口不唯一;

所述PCP客户端根据所述第一标识,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述PCP客户端接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息;

所述PCP客户端从所述应答消息中获得所述第一网络出口的指示信息。

15.根据权利要求14所述的方法,其特征在于,所述PCP客户端获得第一标识,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带所述第一标识;

所述PCP客户端从所述第二响应消息中获得所述第一标识。

16.根据权利要求11所述的方法,其特征在于,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述PCP客户端获得所述第一网络出口的指示信息,具体包括:

所述PCP客户端获得所述第二网络出口的指示信息;

所述PCP客户端根据所述第二网络出口的指示信息,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述PCP客户端接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息;

所述PCP客户端从所述应答消息中获得所述第一网络出口的指示信息。

17.根据权利要求16所述的方法,其特征在于,所述PCP客户端获得所述第二网络出口的指示信息,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应;

所述PCP客户端从所述第三响应消息中获得所述第二网络出口的指示信息。

18.一种端口控制协议PCP服务器,其特征在于,包括:

接收单元,用于接收PCP客户端发送的第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息;

处理单元,用于根据所述接收单元接收到的所述第一PCP请求消息为所述PCP客户端分配M个公有网络地址信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应;

存储单元,用于记录所述接收单元接收到的所述私有网络地址信息和所述处理单元分配的所述M个公有网络地址信息的对应关系。

19.根据权利要求18所述的PCP服务器,其特征在于,对于所述M个公有网络地址信息中的第一公有网络地址信息,所述接收单元,还用于接收PCP客户端发送的第二PCP请求消息,所述第二PCP请求消息携带第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述私有网络地址信息,所述第一网络出口为所述M个网络出口中与所述第一公有网络地址信息相对应的网络出口,且所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;

所述处理单元,还用于根据所述接收单元接收到的所述第一网络出口的指示信息,选取与所述第一网络出口对应的公网地址池,以及从选取的所述公网地址池中为所述PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息;

所述存储单元,具体用于记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。

20.根据权利要求19所述的PCP服务器,其特征在于,

所述接收单元,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端发送的第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;

所述处理单元,还用于根据所述接收单元接收到的所述第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与所述第一顺序标识对应的第一网络出口的指示信息;

所述PCP服务器还包括发送单元,

所述发送单元,用于向所述PCP客户端发送所述处理单元获取到的所述第一网络出口的指示信息。

21.根据权利要求20所述的PCP服务器,其特征在于,

所述发送单元,还用于向所述PCP客户端发送对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。

22.根据权利要求19所述的PCP服务器,其特征在于,所述PCP服务器还包括发送单元,所述发送单元,用于在所述存储单元记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系之后,向所述PCP客户端发送确认消息,所述确认消息携带所述第一对应关系和所述第一网络出口的指示信息。

23.根据权利要求18所述的PCP服务器,其特征在于,所述处理单元,具体用于:根据第一预设规则,从N个网络出口中选取所述M个网络出口;

对于所述M个网络出口中的每个网络出口,获取与所述网络出口对应的公网地址池,并从获取的公网地址池中为所述PCP客户端分配一个公有网络地址信息。

24.根据权利要求19所述的PCP服务器,其特征在于,

所述接收单元,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端在获知所述PCP服务器包含的网络接口不唯一时发送的第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述处理单元,还用于根据所述接收单元接收到的所述第四PCP请求消息中的所述第二标识和第二预设规则,获取所述M个网络出口中每个网络出口的指示信息;

所述PCP服务器还包括发送单元,

所述发送单元,用于向所述PCP客户端发送应答消息,所述应答消息携带所述处理单元获取到的所述M个网络出口中每个网络出口的指示信息。

25.根据权利要求24所述的PCP服务器,其特征在于,

所述发送单元,还用于在所述接收单元接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识。

26.根据权利要求24所述的PCP服务器,其特征在于,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述发送单元,还用于在所述接收单元接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。

27.一种端口控制协议PCP客户端,其特征在于,包括:

发送单元,用于向PCP服务器发送第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,所述第一PCP请求消息用于请求所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配公有网络地址信息;

接收单元,用于接收所述PCP服务器发送的M条确认消息,所述M条确认消息中的每条确认消息携带所述私有网络地址信息、所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述PCP服务器为所述PCP客户端分配的M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。

28.根据权利要求27所述的PCP客户端,其特征在于,所述PCP客户端还包括处理单元,所述处理单元,用于对于所述M个网络出口中的第一网络出口,在所述发送单元向PCP服务器发送第一PCP请求消息之后,且所述接收单元接收所述PCP服务器发送的所述M条确认消息中的第一确认消息之前,所述第一确认消息为携带有所述第一网络出口的指示信息的确认消息,获得所述第一网络出口的指示信息,所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;

所述发送单元,还用于向所述PCP服务器发送第二PCP请求消息,所述第二PCP请求消息携带所述处理单元获得的所述第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述PCP客户端的私有网络地址信息,所述第二PCP请求消息用于请求所述PCP服务器在所述第一网络出口对应的公网地址池中为所述PCP客户端分配公有网络地址信息。

29.根据权利要求28所述的PCP客户端,其特征在于,

所述处理单元,还用于获得N;

所述发送单元,还用于向所述PCP服务器发送第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;

所述接收单元,还用于接收所述服务器发送的与所述第一顺序标识相对应的第一网络出口的指示信息,并将所述第一网络出口的指示信息通知所述处理单元。

30.根据权利要求29所述的PCP客户端,其特征在于,

所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N;

所述处理单元,具体用于从所述接收单元接收到的所述第一响应消息中获得N。

31.根据权利要求28所述的PCP客户端,其特征在于,

所述处理单元,还用于获得第一标识,所述第一标识用于指示所述PCP服务器包含的网络出口不唯一;

所述发送单元,还用于根据所述处理单元获得的所述第一标识,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述接收单元,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息;

所述处理单元,还用于从所述接收单元接收到的所述应答消息中获得所述第一网络出口的指示信息。

32.根据权利要求31所述的PCP客户端,其特征在于,

所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带所述第一标识;

所述处理单元,还用于从所述接收单元接收到的所述第二响应消息中获得所述第一标识。

33.根据权利要求28所述的PCP客户端,其特征在于,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述处理单元,还用于获得所述第二网络出口的指示信息;

所述发送单元,还用于根据所述第二网络出口的指示信息,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识;

所述接收单元,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息;

所述处理单元,还用于从所述接收单元接收到的所述应答消息中获得所述第一网络出口的指示信息。

34.根据权利要求33所述的PCP客户端,其特征在于,

所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应;

所述处理单元,还用于从所述接收单元接收到的所述第三响应消息中获得所述第二网络出口的指示信息。

35.一种网络系统,其特征在于,包括如权利要求18-26中任意一项所述的PCP服务器以及如权利要求27-34中任意一项所述的PCP客户端,所述PCP服务器与所述PCP客户端之间通过网络连接。

说明书 :

一种分配并映射公网地址的方法、装置及网络系统

[0001] 本申请要求于2016年01月19日提交中国专利局、申请号为201610034261.4、发明名称为“一种分配并映射公网地址的方法、装置及网络系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002] 本申请涉及通信技术领域,尤其涉及一种分配并映射公网地址的方法、装置及网络系统。

背景技术

[0003] 典型的网络地址转换(NAT,Network Address Translation)场景中,在私有网络和公有网络之间部署NAT网关设备,示例性地,NAT网关设备具体可以是具有NAT功能的路由器,私有网络可以是公司的局域网,公有网络可以是互联网。在私有网络的主机需要与公有网络中的主机通信时,NAT网关设备为私有网络的主机分配一个公有网络地址,并建立该私有网络的主机的私有网络地址和公有网络地址的映射关系,后续对该私有网络的主机所传输的报文进行地址转换。
[0004] 请求注解(RFC,Request For Comments)是由互联网工程任务组(IETF,Internet Engineering Task Force)发布的一系列备忘录。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件,以编号排定。RFC6887描述的端口控制协议(PCP,Port Control Protocol)为网络地址转换(NAT,Network Address Translation)网关设备提供了一种与传统的NAT有所区别的NAT机制。
[0005] 在传统的NAT过程中,NAT网关设备以及执行NAT的全过程对于私有网络的客户端而言是不可见、不可控的。基于PCP,私有网络中的主机作为PCP客户端可以与具有PCP服务器功能的NAT网关设备进行PCP消息协商,通过PCP消息协商这一机制创建PCP客户端的私有网络地址和公有网络地址的映射关系。基于上述映射关系就可以实现PCP客户端到公有网络中的其他主机或公有网络的其他主机到PCP客户端的业务交互。
[0006] RFC6887定义了匹配(MAP)操作码的协商模式,主要适用于私有网络中的主机作为服务器为公有网络中的主机提供服务的应用场景。在MAP操作码的协商模式中,作为PCP客户端的私有网络中的主机向具有PCP服务器功能的NAT网关设备发送的协商请求报文不包含目的地址信息。
[0007] 为了适应私有网络中的主机作为服务器为公有网络中的主机提供服务这一应用场景下,作为PCP客户端的主机提供服务时的更精细化的需求,例如PCP客户端的主机希望通过不同的端口分别为不同互联网服务提供商(ISP,Internet Service Provider)提供服务,多出口组网结构应运而生。多出口组网结构是指在私有网络与公有网络之间部署多出口链路,即具有PCP服务器功能的NAT网关设备通过至少两个网络出口与公有网络连接。在这种场景中,由于在MAP操作码的协商模式中协商请求报文不包含目的地址信息,因此NAT网关设备无法获取到业务的目的地址信息,也就无法为PCP客户端分配公有网络地址信息以满足上述精细化的需求。
[0008] 综上所述,在多出口链路的场景中,基于现有的PCP,PCP服务器无法为PCP客户端分配公有网络地址信息,进而无法实现PCP客户端与公有网络中的主机之间的通信。

发明内容

[0009] 本申请的实施例提供一种分配并映射公网地址的方法、装置及网络系统,能够解决在多出口链路场景中,现有PCP服务器无法为PCP客户端分配公有网络地址信息的问题。
[0010] 为达到上述目的,本申请的实施例采用如下技术方案:
[0011] 第一方面,本申请实施例提供一种分配并映射公网地址的方法,端口控制协议PCP服务器在接收到PCP客户端发送的第一PCP请求消息后,根据所述第一PCP请求消息为所述PCP客户端分配M个公有网络地址信息,其中,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,然后,所述PCP服务器记录所述私有网络地址信息和所述M个公有网络地址信息的对应关系。
[0012] 本申请实施例中的PCP服务器包含的网络出口数量为N,N≥2,PCP服务器在接收到PCP客户端发送的第一PCP请求消息后,根据该第一PCP请求消息能够为该PCP客户端分配M个公有网络地址信息,并记录私有网络地址信息和M个公有网络地址信息的对应关系,N≥M≥2,且M个公有网络地址信息与PCP服务器的M个网络出口一一对应,这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0013] 可选地,对于所述M个公有网络地址信息中的第一公有网络地址信息,所述PCP服务器为所述PCP客户端分配第一公有网络地址信息,并记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。具体过程为:所述PCP服务器接收PCP客户端发送的携带第一网络出口的指示信息的第二PCP请求消息,所述第二PCP请求消息的源地址为所述私有网络地址信息,所述第一网络出口为所述M个网络出口中与所述第一公有网络地址信息相对应的网络出口,且所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;所述PCP服务器根据所述第一网络出口的指示信息,选取与所述第一网络出口对应的公网地址池;所述PCP服务器从选取的所述公网地址池中为所述PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息;所述PCP服务器记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。
[0014] PCP服务器根据其接收到的第一网络出口的指示信息能够获知选取哪一个公网地址池进行公网地址的分配,根据第一PCP请求消息的源地址信息能够获知为哪一个PCP客户端分配公有网络地址信息,因此,本申请实施例中的PCP服务器在接收到源地址信息为PCP客户端的私有网络地址信息,携带有第一网络出口的指示信息的第二PCP请求消息后,能够获知利用哪一个公网地址池为PCP客户端分配公有网络地址信息,这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0015] 可选地,所述PCP服务器接收PCP客户端发送的第二PCP请求消息之前,所述方法还包括:所述PCP服务器接收所述PCP客户端发送的携带第一顺序标识的第三PCP请求消息,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;然后,所述PCP服务器根据所述第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与所述第一顺序标识对应的第一网络出口的指示信息;最后,所述PCP服务器向所述PCP客户端发送所述第一网络出口的指示信息。
[0016] 可选地,所述PCP服务器接收所述PCP客户端发送的第三PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。
[0017] 容易理解的是,PCP客户端并不知道PCP服务器包含有多少个网络出口,因此,在PCP客户端请求PCP服务器为其分配公有网络地址信息时,PCP服务器需要将指示所述PCP服务器包含的网络出口不唯一的第一标识和PCP服务器包含的网络出口的数量N发送给PCP客户端,以使得PCP客户端根据接收到的第一标识获知PCP服务器包含的网络出口不唯一,从而发送第三PCP请求消息,以获取各个网络出口的指示信息,进而便于PCP客户端请求PCP服务器在各个网络出口为其分配公有网络地址信息。
[0018] 可选地,在所述PCP服务器记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系之后,所述PCP服务器还向所述PCP客户端发送确认消息,所述确认消息携带所述第一对应关系和所述第一网络出口的指示信息。
[0019] 可选地,所述PCP服务器为所述PCP客户端分配M个公有网络地址信息的过程为:所述PCP服务器根据预设规则,从N个网络出口中选取所述M个网络出口;对于所述M个网络出口中的每个网络出口,所述PCP服务器获取与所述网络出口对应的公网地址池,并从获取的公网地址池中为所述PCP客户端分配一个公有网络地址信息。
[0020] 可选地,所述PCP服务器接收PCP客户端发送的第二PCP请求消息之前,所述方法还包括:所述PCP服务器接收所述PCP客户端发送的携带有第二标识的第四PCP请求消息,第二标识用于指示获取PCP服务器包含的网络出口的指示信息;然后,所述PCP服务器根据所述第二标识和第二预设规则,获取所述M个网络出口中每个网络出口的指示信息;最后,所述PCP服务器向所述PCP客户端发送携带所述M个网络出口中每个网络出口的指示信息的应答消息。
[0021] 可选地,所述PCP服务器接收所述PCP客户端发送的第四PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识。
[0022] 容易理解的是,PCP客户端并不知道PCP服务器包含有多少个网络出口,因此,在PCP客户端请求PCP服务器为其分配公有网络地址信息时,PCP服务器需要将指示所述PCP服务器包含的网络出口不唯一的第一标识发送给PCP客户端,以使得PCP客户端根据接收到的第一标识获知PCP服务器包含的网络出口不唯一,从而发送携带第二标识的第四PCP请求消息,以获取网络出口的指示信息,进而便于PCP客户端请求PCP服务器在其获取到指示信息的网络出口为其分配公有网络地址信息。
[0023] 可选地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i,则所述PCP服务器接收所述PCP客户端发送的第四PCP请求消息之前,所述方法还包括:所述PCP服务器向所述PCP客户端发送对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0024] 容易理解的是,PCP客户端并不知道PCP服务器包含有多少个网络出口,在PCP客户端请求PCP服务器为其分配公有网络地址信息时,PCP服务器可以先选取与第二网络出口对应的公网地址池,并从选取的公网地址池中为PCP客户端分配一个公网地址信息作为第二公有网络地址信息,然后,PCP服务器记录私有网络地址信息和第二公有网络地址信息的第二对应关系,最后,PCP服务器将第二对应关系和第二网络出口的指示信息发送给PCP客户端,以使得PCP客户端根据接收到的第二网络出口的指示信息获知PCP服务器包含的网络出口不唯一,从而发送携带第二标识的第四PCP请求消息,以获取网络出口的指示信息,进而便于PCP客户端请求PCP服务器在其获取到指示信息的网络出口为其分配公有网络地址信息。
[0025] 第二方面,本申请另一实施例提供一种分配并映射公网地址的方法,PCP客户端向PCP服务器发送第一PCP请求消息,用于请求所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配公有网络地址信息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,然后,所述PCP客户端接收所述PCP服务器发送的M条确认消息,所述M条确认消息中的每条确认消息携带所述私有网络地址信息、所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述PCP服务器为所述PCP客户端分配的M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。
[0026] 本申请实施例中,在PCP客户端向PCP服务器发送第一PCP请求消息,用于请求PCP服务器根据第一PCP请求消息为PCP客户端分配公有网络地址信息后,PCP客户端接收PCP服务器发送的M条确认消息,且M条确认消息中的每条确认消息携带PCP客户端的私有网络地址信息所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,PCP服务器为PCP客户端分配的M个公有网络地址信息与PCP服务器的M个网络出口一一对应,且M≥2,可以看出,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0027] 可选地,对于所述M个网络出口中的第一网络出口,所述PCP客户端向PCP服务器发送第一PCP请求消息之后,且所述PCP客户端接收所述PCP服务器发送的所述M条确认消息中的第一确认消息之前,所述第一确认消息为携带有所述第一网络出口的指示信息的确认消息,所述方法还包括:
[0028] 所述PCP客户端获得所述第一网络出口的指示信息,所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;所述PCP客户端向所述PCP服务器发送第二PCP请求消息,所述第二PCP请求消息携带所述第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述PCP客户端的私有网络地址信息,所述第二PCP请求消息用于请求所述PCP服务器在所述第一网络出口对应的公网地址池中为所述PCP客户端分配公有网络地址信息。
[0029] PCP客户端请求PCP服务器为其分配公有网络地址时,是直接请求PCP服务器在第一网络出口为PCP客户端分配公有网络地址信息,使得PCP服务器能够获知根据哪个公网地址池为PCP客户端分配公有网络地址信息,这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址,进而实现PCP客户端与公有网络中的主机之间的通信。
[0030] 可选地,所述PCP客户端获得所述第一网络出口的指示信息,具体包括:所述PCP客户端获得N,并向所述PCP服务器发送携带第一顺序标识的第三PCP请求消息,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个;所述PCP客户端接收所述服务器发送的与所述第一顺序标识相对应的第一网络出口的指示信息。
[0031] 与上一实施例相对应,PCP客户端在请求PCP服务器在第一网络出口为其分配公有网络地址信息时,PCP客户端需要先获取到第一网络出口的指示信息,以便于PCP服务器获知在哪一个网络出口为PCP客户端分配公有网络地址信息。
[0032] 可选地,所述PCP客户端获得N,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N;所述PCP客户端从所述响应消息中获得N。
[0033] 可选地,所述PCP客户端获得所述第一网络出口的指示信息,具体包括:首先,PCP客户端获得用于指示所述PCP服务器包含的网络出口不唯一的第一标识,并根据所述第一标识,向所述PCP服务器发送携带第二标识的第四PCP请求消息,第二标识用于请求获取所述PCP服务器包含的网络出口的指示信息;然后,所述PCP客户端接收所述PCP服务器发送的携带所述M个网络出口中每个网络出口的指示信息的应答消息;最后,所述PCP客户端从所述应答消息中获得所述第一网络出口的指示信息。
[0034] 容易理解的是,PCP客户端在请求PCP服务器在第一网络出口为其分配公有网络地址信息时,PCP客户端需要先获取到第一网络出口的指示信息,以便于PCP服务器获知在哪一个网络出口为PCP客户端分配公有网络地址信息。若PCP客户端获知PCP服务器包含有至少两个网络出口,PCP客户端可以直接向PCP服务器发送携带用于指示获取网络出口的指示信息第二标识的第四PCP请求消息,PCP服务器根据该第四PCP请求消息中的第二标识向PCP客户端发送M个网络出口中每个网络出口的指示信息,这样,PCP客户端即可获取到第一网络出口的指示信息。
[0035] 可选地,所述PCP客户端获得第一标识的方法,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带所述第一标识;所述PCP客户端从所述第二响应消息中获得所述第一标识。
[0036] 可选地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述PCP客户端获得所述第一网络出口的指示信息,具体包括:在所述PCP客户端获得所述第二网络出口的指示信息时,所述PCP客户端根据所述第二网络出口的指示信息,向所述PCP服务器发送第四PCP请求消息,用于请求获取所述PCP服务器包含的网络出口的指示信息;然后,所述PCP客户端接收所述PCP服务器发送的携带所述M个网络出口中每个网络出口的指示信息的应答消息;最后,所述PCP客户端从所述应答消息中获得所述第一网络出口的指示信息。
[0037] 可选地,所述PCP客户端获得所述第二网络出口的指示信息,具体包括:所述PCP客户端接收所述PCP服务器发送的对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,然后,所述PCP客户端从所述第三响应消息中获得所述第二网络出口的指示信息。其中,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0038] 可以看出,PCP客户端在向PCP服务器发送给第一PCP请求消息后,PCP客户端会接收到PCP服务器发送的第二网络出口的指示信息和第二对应关系。现有技术中,若PCP服务器仅仅包含一个网络出口,若该网络出口为第二网络出口,则PCP客户端在向PCP服务器发送PCP请求消息后,PCP客户端会只接收到PCP服务器发送的私有网络地址信息和第二公有网络地址信息的对应关系。与现有技术相比,在PCP服务器包含有至少两个网络出口的场景中,本申请实施例的PCP客户端还会接收到第二网络出口的指示信息,PCP客户端通过该第二网络出口的指示信息可以获知PCP服务器包含有至少两个网络出口,这样,PCP客户端可以直接向PCP服务器发送携带第二标识的第四PCP请求消息,以请求获取网络出口的指示信息,PCP服务器根据该第四PCP请求消息中的第二标识向PCP客户端发送M个网络出口中每个网络出口的指示信息,这样,PCP客户端即可获取到第一网络出口的指示信息。
[0039] 第三方面,本申请实施例提供一种端口控制协议PCP服务器,包括:接收单元、处理单元和存储单元。
[0040] 具体的,本申请实施例提供的各个单元模块所实现的功能具体如下:
[0041] 接收单元,用于接收PCP客户端发送的第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息。
[0042] 处理单元,用于根据所述接收单元接收到的所述第一PCP请求消息为所述PCP客户端分配M个公有网络地址信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。
[0043] 存储单元,用于记录所述接收单元接收到的所述私有网络地址信息和所述处理单元分配的所述M个公有网络地址信息的对应关系。
[0044] 本申请实施例提供的PCP服务器的技术效果可以参见上述实施例中PCP服务器执行的分配并映射公网地址的方法中描述的PCP服务器的技术效果,此处不再赘述。
[0045] 可选地,对于所述M个公有网络地址信息中的第一公有网络地址信息而言,[0046] 所述接收单元,还用于接收PCP客户端发送的第二PCP请求消息,所述第二PCP请求消息携带第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述私有网络地址信息,所述第一网络出口为所述M个网络出口中与所述第一公有网络地址信息相对应的网络出口,且所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N。
[0047] 所述处理单元,还用于根据所述接收单元接收到的所述第一网络出口的指示信息,选取与所述第一网络出口对应的公网地址池,以及从选取的所述公网地址池中为所述PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息。
[0048] 可选地,所述存储单元,具体用于记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。
[0049] 可选地,所述接收单元,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端发送的第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个。
[0050] 可选地,所述处理单元,还用于根据所述接收单元接收到的所述第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与所述第一顺序标识对应的第一网络出口的指示信息。
[0051] 可选地,所述PCP服务器还包括发送单元,
[0052] 所述发送单元,用于向所述PCP客户端发送所述处理单元获取到的所述第一网络出口的指示信息。
[0053] 可选地,所述发送单元,还用于向所述PCP客户端发送对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。
[0054] 可选地,所述发送单元,用于在所述存储单元记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系之后,向所述PCP客户端发送确认消息,所述确认消息携带所述第一对应关系和所述第一网络出口的指示信息。
[0055] 可选地,所述处理单元,具体用于:
[0056] 根据第一预设规则,从N个网络出口中选取所述M个网络出口;
[0057] 对于所述M个网络出口中的每个网络出口,获取与所述网络出口对应的公网地址池,并从获取的公网地址池中为所述PCP客户端分配一个公有网络地址信息。
[0058] 可选地,所述接收单元,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端发送的第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0059] 可选地,所述处理单元,还用于根据所述接收单元接收到的所述第四PCP请求消息中的所述第二标识和第二预设规则,获取所述M个网络出口中每个网络出口的指示信息。
[0060] 可选地,所述PCP服务器还包括发送单元,
[0061] 所述发送单元,用于向所述PCP客户端发送应答消息,所述应答消息携带所述处理单元获取到的所述M个网络出口中每个网络出口的指示信息。
[0062] 可选地,所述发送单元,还用于在所述接收单元接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识。
[0063] 可选地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则[0064] 所述发送单元,还用于在所述接收单元接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0065] 第四方面,本申请另一实施例提供一种端口控制协议PCP客户端,包括发送单元和接收单元。
[0066] 具体的,本申请实施例提供的各个单元模块所实现的功能具体如下:
[0067] 发送单元,用于向PCP服务器发送第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,所述第一PCP请求消息用于请求所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配公有网络地址信息。
[0068] 接收单元,用于接收所述PCP服务器发送的M条确认消息,所述M条确认消息中的每条确认消息携带所述私有网络地址信息、所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述PCP服务器为所述PCP客户端分配的M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。
[0069] 本申请实施例提供的PCP客户端的技术效果可以参见上述实施例中PCP客户端执行的分配并映射公网地址的方法中描述的PCP客户端的技术效果,此处不再赘述。
[0070] 可选地,所述PCP客户端还包括处理单元,
[0071] 所述处理单元,用于对于所述M个网络出口中的第一网络出口,在所述发送单元向PCP服务器发送第一PCP请求消息之后,且所述接收单元接收所述PCP服务器发送的所述M条确认消息中的第一确认消息之前,所述第一确认消息为携带有所述第一网络出口的指示信息的确认消息,获得所述第一网络出口的指示信息,所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N。
[0072] 可选地,所述发送单元,还用于向所述PCP服务器发送第二PCP请求消息,所述第二PCP请求消息携带所述处理单元获得的所述第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述PCP客户端的私有网络地址信息,所述第二PCP请求消息用于请求所述PCP服务器在所述第一网络出口对应的公网地址池中为所述PCP客户端分配公有网络地址信息。
[0073] 可选地,所述处理单元,用于获得N;
[0074] 所述发送单元,还用于向所述PCP服务器发送第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个。
[0075] 可选地,所述接收单元,还用于接收所述服务器发送的与所述第一顺序标识相对应的第一网络出口的指示信息,并将所述第一网络出口的指示信息通知所述处理单元。
[0076] 可选地,所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。
[0077] 可选地,所述处理单元,具体用于从所述接收单元接收到的所述第一响应消息中获得N。
[0078] 可选地,所述处理单元,还用于获得第一标识,所述第一标识用于指示所述PCP服务器包含的网络出口不唯一。
[0079] 可选地,所述发送单元,还用于根据所述处理单元获得的所述第一标识,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0080] 可选地,所述接收单元,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息。
[0081] 可选地,所述处理单元,还用于从所述接收单元接收到的所述应答消息中获得所述第一网络出口的指示信息。
[0082] 可选地,所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带所述第一标识。
[0083] 可选地,所述处理单元,还用于从所述接收单元接收到的所述第二响应消息中获得所述第一标识。
[0084] 可选地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i,则所述处理单元,还用于获得所述第二网络出口的指示信息。
[0085] 可选地,所述发送单元,还用于根据所述第二网络出口的指示信息,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0086] 可选地,所述接收单元,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息。
[0087] 可选地,所述处理单元,还用于从所述接收单元接收到的所述应答消息中获得所述第一网络出口的指示信息。
[0088] 可选地,所述接收单元,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0089] 可选地,所述处理单元,还用于从所述接收单元接收到的所述第三响应消息中获得所述第二网络出口的指示信息。
[0090] 第五方面,本申请另一实施例提供一种网络系统,包括如上述实施例中任意一项所述的PCP服务器以及如上述实施例中任意一项所述的PCP客户端,所述PCP服务器与所述PCP客户端之间通过网络连接。
[0091] 可选地,在上述各个方面以及各个方面的可选实施方式中,私有网络地址信息包括私有网络互联网协议(IP,Internet Protocol)地址信息。进一步地,私有网络地址信息还包括与私有网络IP地址信息对应的端口信息,其中,端口信息可以为端口号。公有网络地址信息也包括公有网络IP地址信息。进一步地,公有网络地址信息还包括与公有网络IP地址对应的端口信息。
[0092] 本申请实施例提供的网络系统的技术效果可以参见上述实施例中PCP服务器执行的分配并映射公网地址的方法中描述的PCP服务器的技术效果和上述实施例中PCP客户端执行的分配并映射公网地址的方法中描述的PCP客户端的技术效果,此处不再赘述。

附图说明

[0093] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
[0094] 图1为本申请实施例提供的网络系统的结构示意图;
[0095] 图2为本申请实施例提供的网络系统的组成示意图;
[0096] 图3为本申请实施例提供的分配并映射公网地址的方法的流程示意图一;
[0097] 图4为本申请实施例提供的分配并映射公网地址的方法的流程示意图二;
[0098] 图5为本申请实施例提供的分配并映射公网地址的方法的流程示意图三;
[0099] 图6为本申请实施例提供的分配并映射公网地址的方法的流程示意图四;
[0100] 图7为本申请实施例提供的PCP服务器的结构示意图一;
[0101] 图8为本申请实施例提供的PCP服务器的结构示意图二;
[0102] 图9为本申请实施例提供的PCP服务器的结构示意图三;
[0103] 图10为本申请实施例提供的PCP客户端的结构示意图一;
[0104] 图11为本申请实施例提供的PCP客户端的结构示意图二;
[0105] 图12为本申请实施例提供的PCP客户端的结构示意图三。

具体实施方式

[0106] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述。
[0107] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于限定特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0108] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0109] 另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0110] 针对在多出口链路的场景中,PCP服务器与PCP客户端利用现有PCP定义的MAP操作码的协商模式进行协商时,PCP服务器由于无法预知实际流量访问的目的地址,即哪个ISP中的主机要使用私有网络中的主机提供的服务,进而无法为PCP客户端分配公有网络地址的问题,本申请实施例提出了在多出口链路的场景中,基于改进后的PCP为PCP客户端分配并映射公有网络地址信息的方法。
[0111] 图1是本申请实施例提供的网络系统的结构示意图。参见图1,该网络系统包括PCP服务器10、一个或多个与PCP服务器10连接的PCP客户端11,PCP服务器10通过N(N≥2)个网络出口与N个互联网服务提供商(ISP,Internet Service Provider)设备12连接。PCP客户端11归属于私有网络1,N个ISP设备12归属于公有网络2,PCP服务器10位于私有网络1与公有网络2的接口处。
[0112] 其中,本申请实施例中的PCP服务器10是指能够支持PCP的服务端设备,PCP客户端11是指能够支持PCP的客户端设备。
[0113] 可选的,本申请实施例中的PCP服务器10为运营商级网络地址转换(CGN,Carrier-Grade NAT)设备。
[0114] 其中,CGN又称大规模网络地址转换(LSN,Large Scale NAT),指采用NAT技术进行局域网与因特网(Internet)之间的网络地址转换。
[0115] CGN设备通常部署于局域网与Internet的接口处,CGN设备可以作为PCP服务器,根据PCP为部署于局域网中的PCP客户端(例如用户终端设备(CPE,Customer Premises Equipment))分配公有网络地址,生成PCP客户端的私有网络地址信息与公有网络地址信息之间的映射关系,并对分配给PCP客户端的公有网络地址信息进行管理,从而使CGN设备能够根据生成的映射关系对从Internet访问局域网中的PCP客户端的报文进行转发、过滤及地址转换等操作。
[0116] 可选的,本申请实施例中的PCP客户端11可以为个人计算机,移动终端等用户终端,也可以为家庭网关。
[0117] 图2是本申请实施例提供的网络系统的组成示意图。PCP客户端11归属于私有网络,ISP设备12归属于公有网络,PCP服务器10位于私有网络与公有网络的接口处。
[0118] 参见图2,网络系统中的PCP服务器10包括地址信息数据库20,该地址信息数据库20用于保存每个PCP客户端的私有网络地址信息与在各个网络出口为该PCP客户端分配的公有网络地址信息之间的地址映射关系。
[0119] 该PCP服务器10还包括接口电路100、处理器101以及存储器102。
[0120] 接口电路100用于和与该PCP服务器10相连接的PCP客户端11进行通信,以及和与该PCP服务器10相连接的ISP设备12进行通信。处理器101用于选取公网地址池为PCP客户端11分配公有网络地址信息,并利用地址信息数据库20中的映射关系对每个PCP客户端的私有网络地址信息进行转换。存储器102用于存储地址信息数据库20,以及用于存储包含有至少两个网络出口的指示信息和每个网络出口的顺序标识的预设的映射关系,其中,网络出口的指示信息与网络出口的顺序标识之间一一对应。
[0121] 该系统中的PCP客户端11包括网络出口信息数据库21,该网络出口信息数据库21用于保存PCP客户端11获取到的网络出口的指示信息。
[0122] PCP客户端11还包括接口电路110、处理器111以及存储器112。接口电路110用于和与该PCP客户端11相连接的PCP服务器10进行通信。存储器112用于存储网络出口信息数据库21。
[0123] 实施例一
[0124] 图3为本申请实施例提供的一种分配并映射公网地址的方法的流程示意图,该方法可以应用在图1或图2所示的应用场景中。
[0125] 参见图3,该方法包括:
[0126] S100、PCP客户端向PCP服务器发送第一PCP请求消息,该第一PCP请求消息的源地址信息为PCP客户端的私有网络地址信息。
[0127] S101、PCP服务器接收到第一PCP请求消息后,为PCP客户端分配M个公有网络地址信息,N≥M≥2。
[0128] 其中,N为PCP服务器包含的网络出口的数量,M个公有网络地址信息与PCP服务器的M个网络出口一一对应。
[0129] S102、PCP服务器记录私有网络地址信息和M个公有网络地址信息的对应关系。
[0130] 本申请实施例中PCP客户端通过向PCP服务器发送第一PCP请求消息来请求PCP服务器为该PCP客户端分配公有网络地址信息,即PCP客户端执行S100。
[0131] 第一PCP请求消息用于请求PCP服务器根据第一PCP请求消息为PCP客户端分配公有网络地址信息。
[0132] 具体的,本申请实施例中的第一PCP请求消息携带MAP操作码,还携带现有PCP标准规定的PCP请求消息所包含的字段,此处对此不再进行详细赘述。
[0133] 可选的,本申请实施例中的私有网络地址信息包括私有网络IP地址信息。
[0134] 进一步地,私有网络地址信息还包括与私有网络IP地址信息对应的端口信息,其中,端口信息可以为端口号。
[0135] 示例性的,网络地址信息为1.2.9.1:1000,1.2.9.1为私有网络IP地址信息,1000为端口号。
[0136] 与私有网络地址信息类似,本申请实施例中的公有网络地址信息也包括公有网络IP地址信息。
[0137] 进一步地,公有网络地址信息还包括与公有网络IP地址对应的端口信息。
[0138] 无论是私有网络,还是公有网络,一个IP地址信息可以对应多个端口号。
[0139] 具体的,在PCP客户端向PCP服务器发送第一PCP请求消息之后,PCP服务器根据该第一PCP请求消息为PCP客户端分配M个公有网络地址信息,即执行S101。
[0140] 本申请实施例中PCP服务器在接收到PCP客户端发送的第一PCP请求消息之后,PCP服务器为PCP客户端分配M个公有网络地址信息的方法可以为以下方法中的任意一种:
[0141] 方法一、PCP服务器首先根据第一预设规则,从N个网络出口中选取M个网络出口,然后,对于M个网络出口中的每个网络出口,PCP服务器获取与网络出口对应的公网地址池,并从获取的公网地址池中为PCP客户端分配一个公有网络地址信息。
[0142] 其中,第一预设规则可以为选取负载利用率小于预设阈值的网络出口,也可以为选取预先设定的网络出口,本申请实施例对此不作具体限定。
[0143] 方法二、PCP服务器从PCP客户端获取M个网络出口的指示信息,然后,PCP服务器获取与每个网络出口的指示信息相对应的公网地址池,PCP服务器从获取的每个公网地址池中为PCP服务器分配一个公有网络地址信息。
[0144] 在上述PCP服务器为PCP客户端分配M个公有网络地址信息的第二种方法中,对于M个公有网络地址信息中的第一公有网络地址信息,PCP服务器为PCP客户端分配第一公有网络地址信息的方法包括:
[0145] PCP客户端向PCP服务器发送携带有第一网络出口的指示信息的第二PCP请求消息,第二PCP请求消息的源地址为私有网络地址信息,第一网络出口为M个网络出口中与第一公有网络地址信息相对应的网络出口,且第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N;PCP服务器根据第一网络出口的指示信息,选取与第一网络出口对应的公网地址池;PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息,并记录私有网络地址信息和第一公有网络地址信息的对应关系。
[0146] 可选的,本申请实施例中第一网络出口的指示信息可以为第一网络出口的身份标识号码(ID,Identity),也可以为第一网络出口的编号,还可以为其他能够指示第一网络出口的其他信息,本申请实施例对此不作具体限定。
[0147] 具体的,在PCP客户端向PCP服务器发送携带有第一网络出口的指示信息的第二PCP请求消息之前,PCP客户端需要先获知第一网络出口的指示信息。
[0148] 可选的,PCP客户端获取第一网络出口的指示信息的方法可以为:PCP客户端首先获知PCP服务器包含有N个网络出口,然后,向PCP服务器发送携带有第一顺序标识的第三PCP请求消息,用于请求获取与第一顺序标识相对应的网络出口的指示信息,第一顺序标识用于表示N个网络出口中的第i个,最后,PCP客户端接收PCP服务器发送的与第一顺序标识相对应的第一网络出口的指示信息。
[0149] 其中,本申请实施例中的PCP服务器根据某一规则对其包含的N个网络出口进行排序,且该PCP服务器存储有预设的顺序标识和网络出口的指示信息之间的映射关系,该预设的映射关系保存有第一顺序标识与第一网络出口的指示信息,其中,第一顺序标识与第一网络出口的指示信息一一对应。
[0150] 因此,PCP服务器在接收到第三PCP请求消息后,根据第一顺序标识从预设的映射关系中可以获取到与第一顺序标识相对应的第一网络出口的指示信息。
[0151] 示例性的,网络出口的指示信息为网络出口的名称,网络出口的名称可以是作为PCP服务器的实体设备,如CGN设备和NAT网关设备在出厂时设置的。PCP服务器存在7个网络出口,这7个网络设备的名称分别为A、B、C、D、E、F、G,PCP服务器存储的预设映射关系如表1所示。
[0152] PCP客户端在获知PCP服务器包含有7个网络出口时,向PCP服务器发送第三PCP请求消息,用于请求获取第二个网络出口的指示信息。PCP服务器在接收到该PCP请求后,获取与第二个网络出口相对应的网络出口的指示信息B,并向PCP客户端发送第二个网络出口的指示信息B,这样,PCP客户端便获知第二个网络出口的指示信息为B。
[0153] 表1
[0154]顺序号 网络出口的名称
1 A
2 B
3 C
4 D
5 E
6 F
7 G
[0155] 具体的,PCP客户端获知PCP服务器包含有N个网络出口的方法为:在PCP客户端向PCP服务器发送第一PCP请求消息之后,PCP客户端接收PCP服务器发送的对应于第一PCP请求消息的第一响应消息,该第一响应消息携带用于指示PCP服务器包含的网络出口不唯一的第一标识和N;PCP客户端从该第一响应消息中获得N。
[0156] 可选的,PCP客户端获取第一网络出口的指示信息的方法还可以为:PCP客户端首先获知PCP服务器包含的网络出口不唯一,然后,向PCP服务器发送携带第二标识的第四PCP请求消息,第二标识用于指示获取PCP服务器包含的网络出口的指示信息,最后,PCP客户端接收PCP服务器发送的携带M个网络出口中每个网络出口的指示信息的应答消息,并从该应答消息中获得第一网络出口的指示信息。
[0157] 具体的,PCP服务器在接收到第四PCP请求消息后,PCP服务器根据该第四PCP请求消息中的第二标识和第二预设规则,获取M个网络出口中每个网络出口的指示信息,然后,PCP服务器将获取到的网络出口的指示信息向PCP客户端发送。
[0158] 其中,第二预设规则可以为选取负载利用率小于预设阈值的网络出口,也可以为选取预先设定的网络出口,本申请实施例对此不作具体限定。
[0159] 可选的,PCP客户端获知PCP服务器包含的网络出口不唯一的方法可以为:PCP客户端获取用于指示PCP服务器包含的网络出口不唯一的第一标识。
[0160] 具体的,PCP客户端获取第一标识的方法为:在PCP客户端向PCP服务器发送第一PCP请求消息之后,PCP客户端接收PCP服务器发送的对应于第一PCP请求消息的第二响应消息,该第一响应消息携带用于指示PCP服务器包含的网络出口不唯一的第一标识;PCP客户端从该第二响应消息中获得第一标识。
[0161] 可选的,若第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i,第一网络出口为M个网络出口中除第二网络出口之外的任意一个网络出口,则PCP客户端获知PCP服务器包含的网络出口不唯一的方法为:在PCP客户端向PCP服务器发送第一PCP请求消息之后,PCP客户端接收PCP服务器发送的对应于第一PCP请求消息的第三响应消息,该第三响应消息携带第二网络出口的指示信息和第二对应关系,这样,PCP客户端根据第二网络出口的指示信息即可获知PCP服务器包含有至少两个网络出口。其中,第二对应关系为私有网络地址信息和第二公有网络地址信息的对应关系,第二公有网络地址信息与第二网络出口相对应。
[0162] 可以看出,本申请实施例中不论PCP客户端是采用哪种方法获取第一网络出口的指示信息,PCP服务器均是先获取与网络出口对应的公网地址池,然后从获取的公网地址池中为PCP客户端分配一个公有网络地址信息。
[0163] 可选的,本申请实施例中PCP服务器从获取的公网地址池中为PCP客户端分配一个公有网络地址信息时可以采用哈希算法,也可以采用轮循算法,还可以采用现有技术中任意一种可以实现分配公有网络地址信息的算法,本申请实施例对此不作具体限定。
[0164] 进一步地,在PCP服务器为PCP客户端分配M个公有网络地址信息后,PCP服务器执行S102。
[0165] 具体的,在PCP服务器为PCP客户端分配M个公有网络地址信息后,PCP服务器将分配的M个公有网络地址信息与私有网络地址信息对应记录,以生成私有网络地址信息和M个公有网络地址信息的对应关系。
[0166] 示例性的,PCP服务器记录的私有网络地址信息和M个公有网络地址信息的对应关系如表2所示。
[0167] 表2
[0168]
[0169] 需要说明的是,表2所示的本申请实施例中的PCP服务器记录的私有网络地址信息和M个公有网络地址信息的对应关系,仅仅为本申请实施例中的一个格式举例。在实际应用中,上述各字段的位置可以根据实际需要灵活设置,此处不再一一列举。
[0170] 可选地,本申请实施例提供的分配并映射公网地址的方法在步骤S102之后,还包括:
[0171] S103、PCP服务器向PCP客户端发送M条确认消息。
[0172] 其中,M条确认消息中的每条确认消息携带私有网络地址信息、PCP服务器为PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为PCP服务器包含的网络出口的数量,PCP服务器为PCP客户端分配的M个公有网络地址信息与PCP服务器的M个网络出口一一对应。
[0173] 可以理解的是,PCP服务器记录私有网络地址信息和M个公有网络地址信息的对应关系后,向PCP客户端发送M条确认消息,每条确认消息携带私有网络地址信息、PCP服务器为PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,以便于PCP客户端获知PCP服务器在哪个网络出口已经生成了私有网络地址信息与公有网络地址信息的对应关系,PCP服务器可以基于该对应关系,进行私有网络地址信息与公有网络地址信息之间的转换,从而实现PCP客户端与公有网络中的主机之间的通信。
[0174] 在这里需要说明的是上述“与公有网络地址信息相对应的网络出口”可以被理解为:如果一个公有网络地址信息属于一个网络出口对应的公网地址池,或者一个公有网络地址信息是从一个网络出口对应的公网地址池中选择出的,则表明该网络出口与该公有网络地址信息所指示的公有网络地址相对应。例如参考后续表5,PCP服务器向PCP客户端发送的其中一个确认消息中携带的公有网络地址信息为192.168.1.3,与该公有网络地址信息相对应的网络出口的指示信息为A。
[0175] 由于S103是可选步骤,因此,在图3中该步骤用虚线表示。
[0176] 通过上述描述可知,本申请实施例中的PCP服务器在接收到PCP客户端发送的第一PCP请求消息时,PCP服务器能够根据该第一PCP请求消息为PCP客户端分配M个公有网络地址信息,并记录PCP客户端的私有网络地址信息和M个公有网络地址信息的对应关系,N≥M≥2,N为PCP服务器包含的网络出口的数量,M个公有网络地址信息与PCP服务器的M个网络出口一一对应。这样,即使PCP服务器包含有N(N≥2)个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0177] 实施例二
[0178] 为了更加详细的说明本申请提供的分配并映射公网地址信息的方法,本申请实施例以PCP服务器为PCP客户端分配并映射上述M个公有网络地址信息中的第一公有网络地址信息为例进行说明。
[0179] 具体的,本申请以PCP客户端在向PCP服务器发送第一PCP请求消息后,获知PCP服务器包含有N个网络出口的应用场景为例进行说明。
[0180] 附图4为本申请实施例提供的分配并映射公网地址的方法在具体实施过程中的各设备之间的交互示意图。交互过程包括:
[0181] S200、PCP客户端向PCP服务器发送第一PCP请求消息,该第一PCP请求消息的源地址信息为PCP客户端的私有网络地址信息。
[0182] 本申请实施例中的S200与上一实施例中的S100相同,此处不再进行详细赘述。
[0183] S201、PCP服务器响应于第一PCP请求消息,向PCP客户端发送携带第一标识和PCP服务器包含的网络出口的数量N的第一响应消息。
[0184] 其中,第一标识用于指示PCP服务器包含的网络出口不唯一,本申请实施例中PCP服务器包含的至少两个网络出口,即N≥2。
[0185] 具体的,本申请实施例中的第一响应消息是在现有PCP标准规定的PCP响应消息包含的内容的基础上,增加了应答结果码(Result Codes)MULTIPLE_ZONES和ZONE_COUNT选项(Option)。
[0186] 其中,MULTIPLE_ZONES用于说明PCP服务器包含的网络出口不唯一,其属于长生命周期错误码,字节长度为8比特。错误码和生命周期的定义可以参考RFC6887。
[0187] 需要说明的是,表示MULTIPLE_ZONES的数值可以为除用于表示现有应答结果码的数值以外的任一数值,本申请实施例对此不作具体限定。
[0188] ZONE_COUNT选项主要包括网络出口的数量信息。
[0189] 实际应用中,PCP服务器发送的ZONE_COUNT选项还可以包括如下字段:
[0190] Option Code(选项代码),用于表示响应消息中的ZONE_COUNT选项的代码;
[0191] Option Length(选项长度),用于表示ZONE_COUNT选项的长度。
[0192] 在此基础上,该ZONE_COUNT选项还可以包括若干的预留(Reserved)字段。
[0193] 可以看出,本申请实施例中的第一标识可以为MULTIPLE_ZONES字段中的值,N可以为ZONE_COUNT字段中的值。
[0194] 需要说明的是,本申请实施例中的MULTIPLE_ZONES仅仅是应答结果码的一种表示形式,关于应答结果码的具体表示形式,本申请实施例对此不作具体限定。
[0195] 同理,本申请实施例中的ZONE_COUNT也仅仅是用于表示PCP服务器包含的网络出口的数量的选项的一种表示方式,本申请实施例对该选项的具体表示形式并不限定。
[0196] 示例性的,表3示出了本申请实施例中的ZONE_COUNT选项的一个具体格式。如表3所示,ZONE_COUNT选项包括了上述的所有字段以及若干的Reserved字段。
[0197] 表3
[0198]
[0199] 表3中Option Code的数值为21,Option Length的数值为16,ZONE COUNT字段的字符长度为8比特(bit)。
[0200] 需要说明的是,表3所示的本申请实施例中的ZONE_COUNT选项的格式,仅仅为本申请实施例中的一个格式举例。在实际应用中,上述字段的长度以及各字段的位置可以根据协议实现需要灵活设置,此处不再一一列举。
[0201] 具体的,本申请实施例中的PCP客户端在接收到PCP服务器发送的第一响应消息后,根据第一标识可以获知PCP服务器包含的网络出口不唯一,根据N可以获知PCP服务器包含的网络出口的数量。在PCP客户端获知PCP服务器包含的网络出口的数量N后,PCP客户端依次向PCP服务器发送第三PCP请求消息,以便于获取N个网络出口的指示信息。
[0202] 由于PCP客户端获取每个网络出口的指示信息的过程均相同,因此,本申请实施例以PCP客户端获取任意一个网络出口(第一网络出口)的指示信息的过程为例进行说明。
[0203] S202、PCP客户端向PCP服务器发送携带第一顺序标识的第三PCP请求消息。
[0204] 其中,第三PCP请求消息用于请求获取与第一顺序标识相对应的网络出口的指示信息,第一顺序标识用于表示N个网络出口中的第i个,1≤i≤N。
[0205] 现有PCP标准中规定的操作码只有MAP和PEER,这两种操作码仅仅是用于匹配和交换,本申请实施例中的第三PCP请求消息是用于请求获取第一网络出口的指示信息。因此,本申请实施例中的第三PCP请求消息在现有PCP标准规定的PCP请求消息包含的内容基础上,还增加了操作码GET_ZONE。
[0206] 具体的,携带有操作码GET_ZONE的第三PCP请求消息,还可以携带ZONE_DETAIL选项,用于获取网络出口的指示信息。
[0207] 具体的,本申请实施例中的第三PCP请求消息是在现有PCP规定的PCP请求消息包含的内容基础上,增加了ZONE_DETAIL选项。
[0208] 可选的,ZONE_DETAIL选项主要包括Zone Num字段和Zone Index字段。其中,Zone Num字段用于说明网络出口的顺序,Zone Index字段用于说明网络出口的指示信息。
[0209] 实际应用中,PCP客户端发送的ZONE_DETAIL选项还可以包括如下字段:
[0210] Option Code,用于表示第三PCP请求消息中的ZONE_DETAIL选项的代码;
[0211] Option Length,用于表示ZONE_DETAIL选项的长度。
[0212] 在此基础上,该ZONE_DETAIL选项还可以包括若干的Reserved字段。
[0213] 可以看出,本申请实施例中的第一顺序标识可以用Zone Num字段的内容表示。
[0214] 示例性的,表4示出了本申请实施例中的ZONE_DETAIL选项的一个具体格式。如表4所示,ZONE_DETAIL选项包括上述的所有字段以及若干的Reserved字段。
[0215] 表4
[0216]
[0217] 表4中Option Code的数值为22,Option Length的数值为16,Zone Num字段的字符长度为8比特,Zone Index字段的字符长度为8比特。
[0218] 需要说明的是,表4所示的本申请实施例中的ZONE_DETAIL选项的格式,仅仅为本申请实施例中的一个格式举例。在实际应用中,上述字段的长度以及各字段的位置可以根据协议实现需要灵活设置,此处不再一一列举。
[0219] 可选的,PCP客户端发送的第三PCP请求消息携带有操作码GET_ZONE、Zone Num字段和Zone Index字段,其中,Zone Num字段的内容为第一顺序标识,Zone Index字段为空。
[0220] S203、PCP服务器根据第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与第一顺序标识对应的第一网络出口的指示信息。
[0221] 具体的,本申请实施例中的PCP服务器根据某一规则对其包含的N个网络出口进行排序,并将每个网络出口的顺序标识与该网络出口指示信息对应记录,生成预设的映射关系。
[0222] PCP服务器在接收到包含有第一顺序标识的第三PCP请求消息后,根据第一顺序标识可以直接从预设的顺序标识和网络出口的指示信息之间的映射关系中获取到与第一顺序标识对应的第一网络出口的指示信息。
[0223] 示例性的,网络出口的指示信息为网络出口的名称,PCP服务器中预设的顺序标识和网络出口的名称之间的映射关系如表1所示,若PCP服务器接收到的第三PCP请求消息中的第一顺序标识的数值为3,则说明PCP客户端用于请求第3个网络出口的指示信息,PCP服务器从表1中查找与第3个网络出口对应的网络出口的指示信息,并获取第3个网络出口的指示信息C。
[0224] S204、PCP服务器向PCP客户端发送第一网络出口的指示信息。
[0225] 具体的,PCP服务器在获取到第一网络出口的指示信息后,可以将第一网络出口的指示信息补充至Zone Index字段中,然后将包含有第一网络出口的指示信息的消息发送至PCP客户端,该消息为PCP服务器响应于第三PCP请求消息的消息。
[0226] S205、PCP客户端向PCP服务器发送携带第一网络出口的指示信息的第二PCP请求消息。
[0227] 该第二PCP请求消息的源地址为PCP客户端的私有网络地址信息。
[0228] PCP客户端在获取到第一网络出口的指示信息之后,PCP客户端向PCP服务器发送携带该第一网络出口的指示信息的第二PCP请求消息。
[0229] 具体的,本申请实施例中第二PCP请求消息携带有MAP操作码、ZONE_DETAIL选项和现有PCP标准规定的PCP请求消息包含的字段,该第二PCP请求消息用于请求PCP服务器在第一网络出口对应的公网地址池中为PCP客户端分配公有网络地址信息。
[0230] 容易理解的是,第一网络出口指示信息置于第二PCP请求消息的ZONE_DETAIL选项中。
[0231] S206、PCP服务器根据第一网络出口的指示信息,选取与第一网络出口相对应的公网地址池。
[0232] 本申请实施例中的PCP服务器包含有N个网络出口,每个网络出口都存在与该网络出口对应的公网地址池,且PCP服务器能够预先获知各个网络出口的指示信息与公网地址池的对应关系。
[0233] 示例性的,PCP服务器包含有3个网络出口,这3个网络出口的名称分别为A、B、C,3个网络出口分别连接至不同ISP设备,每个网络出口的名称与公网地址池的对应关系如表5所示。事实上,公网地址池中还可以包括端口号资源,为了简明起见,在表5中省略。
[0234] 表5
[0235]网络出口的名称 公网地址池
A 192.168.1.2-192.168.1.200
B 192.168.2.1-192.168.2.205
C 192.168.3.5-192.168.3.168
[0236] 需要说明的是,表5所示的本申请实施例中的网络出口的指示信息与公网地址池的对应关系,仅仅为本申请实施例中的一个举例。在实际应用中,该对应关系还可以用其他形式表示。
[0237] 本申请实施例中第一PCP请求消息和第二PCP请求消息携带的操作码均为MAP,第一PCP请求消息中未携带ZONE_DETAIL选项,第二PCP请求消息中携带有ZONE_DETAIL选项。
[0238] 本申请实施例中的PCP服务器在接收到携带有MAP操作码的请求消息时,PCP服务器需判断接收到的PCP请求消息中是否携带有ZONE_DETAIL选项。
[0239] 具体的,若携带有MAP操作码的请求消息中未携带ZONE_DETAIL选项,则PCP服务器响应于第一PCP请求消息,向PCP客户端发送携带第一标识和PCP服务器包含的网络出口的数量N的响应消息。
[0240] 若携带有MAP操作码的请求消息中携带ZONE_DETAIL选项,则PCP服务器根据ZONE_DETAIL选项中的第一网络出口的指示信息,选取与第一网络出口相对应的公网地址池。
[0241] 具体的,PCP服务器接收到的第二PCP请求消息中携带有第一网络出口的指示信息,即第二PCP请求消息中携带ZONE_DETAIL选项中的内容,因此,在PCP服务器获取到第一网络出口的指示信息后,PCP服务器选取与第一网络出口相对应的公网地址池。
[0242] S207、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息。
[0243] 可选的,本申请实施例中PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息的方法可以采用哈希算法,也可以采用轮询算法,还可以为根据公网地址池为PCP客户端分配公网地址信息的其他任意一种算法,本申请实施例对此不作具体限定。
[0244] 也就是说,本申请实施例中PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息的方法可以根据实际设置和需求而定。
[0245] S208、PCP服务器记录私有网络地址信息和第一公有网络地址信息的第一对应关系。
[0246] S209、PCP服务器向PCP客户端发送携带该第一对应关系和第一网络出口的指示信息的确认消息。
[0247] 其中,本申请实施例中的确认消息可以包含有OK字符,也可以包含确认(ACK,Acknowledgement)字符,本申请实施例对此不作具体限定。
[0248] PCP服务器在第一网络出口为PCP客户端分配第一公有网络地址信息,并生成地址映射关系后,发送确认消息至PCP客户端,以便于PCP客户端获知PCP服务器在第一网络出口已经生成地址映射关系,PCP服务器可以基于该映射关系,进行私有网络地址信息与公有网络地址信息之间的转换,从而实现PCP客户端与公有网络中的主机之间的通信。
[0249] 可以理解的是,图4中的S202至S209组成的子流程实现了PCP服务器从与第一网络出口对应的公网地址池中为PCP客户端分配第一公有网络地址信息的目的。
[0250] 由于本申请实施例中的PCP服务器存在多个网络出口,且对于每个网络出口而言,PCP服务器为PCP客户端分配公有网络地址信息的方法都相同,因此本申请实施例中S202至S209组成的子流程可以重复执行多次,以达到PCP服务器为PCP客户端分配多个公网地址信息的目的。
[0251] 具体的,如图4所示,本申请实施例提供的分配并映射公网地址的方法在S201之后,还包括:
[0252] S202′、PCP客户端向PCP服务器发送携带第二顺序标识的第三PCP请求消息。
[0253] 其中,第二顺序标识用于表示N个网络出口中的第j个,1≤j≤N,且i≠j。
[0254] S203′、PCP服务器根据第二顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与第二顺序标识对应的第二网络出口的指示信息。
[0255] 容易理解的是,由于第二顺序标识与第一顺序标识不相同,且PCP服务器中预设的顺序标识和网络出口的指示信息之间是一对一的映射关系,因此,本申请实施例中的第一网络出口与第二网络出口表示的是PCP服务器中不同的网络出口。
[0256] S204′、PCP服务器向PCP客户端发送第二网络出口的指示信息。
[0257] S205′、PCP客户端向PCP服务器发送携带第二网络出口的指示信息的第二PCP请求消息。
[0258] S206′、PCP服务器根据第二网络出口的指示信息,选取与第二网络出口相对应的公网地址池。
[0259] S207′、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第二公有网络地址信息。
[0260] S208′、PCP服务器记录私有网络地址信息和第二公有网络地址信息的第二对应关系。
[0261] S209′、PCP服务器向PCP客户端发送携带该第二对应关系和第二网络出口的指示信息的确认消息。
[0262] 其中,S202′至S209′组成的子流程可以视为S202至S209组成的子流程的重复执行。
[0263] 上述两个子流程的不同之处仅仅为:S202′至S209′组成的子流程是针对第二网络出口,S202至S209组成的子流程是针对第一网络出口。
[0264] 因此,S202′至S209′组成的子流程实现细节可以参考上述S202至S209组成的子流程,此处对此不再进行详细赘述。
[0265] 从前述可知,本申请实施例中第一网络出口和第二网络出口均为PCP服务器中的网络出口,且第一网络出口与第二网络出口为不同的网络出口。
[0266] 需要说明的是,本申请实施例提供的分配并映射公网地址的方法在S201之后,执行S202至S209组成的子流程和S202′至S209′组成的子流程的顺序没有先后依赖关系。例如,可以并发地同时执行S202至S209组成的子流程和S202′至S209′组成的子流程;也可以顺序地执行S202至S209组成的子流程和S202′至S209′组成的子流程,例如先执行S202至S209组成的子流程,后执行S202′至S209′组成的子流程,或者反之先执行S202′至S209′组成的子流程,后执行S202至S209组成的子流程;还可以先执行一个子流程的部分,再执行另一个子流程的部分。本申请实施例对此不作具体限定。
[0267] 图4仅仅示出了S202′至S209′组成的子流程和S202至S209组成的子流程的其中一种执行顺序,并不代表实际执行顺序。
[0268] 其中,本申请实施例中的确认消息携带网络出口的指示信息是为了在上述多个子流程并发执行的过程中,使得PCP客户端能够获知PCP服务器是在哪个网络出口分配的公有网络地址信息,也就是说,使得PCP客户端能够获知分配的公有网络地址信息与网络出口的对应关系。
[0269] 示例性的,若PCP服务器包含有7个网络出口,PCP客户端在获知PCP服务器包含有7个网络出口之后,同时向PCP服务器发送携带第一顺序标识为1的第三PCP请求消息和携带第二顺序标识为3的第三PCP请求消息,即同时执行上述S202′和S202,在执行相应的子流程后,PCP客户端有可能先收到携带有第二网络出口的指示信息的确认消息,也有可能先收到携带有第一网络出口的指示信息的确认消息。由于确认消息中携带有网络出口的指示信息,因此,PCP客户端不会识别错其接收到确认消息,这样避免了数据处理出现错误的情况。
[0270] 可以理解的是,若每条确认消息中没有携带网络出口的指示信息,则PCP客户端将无法获知PCP服务器是在哪个网络出口为其分配的公有网络地址信息。
[0271] 本申请实施例提供了一种分配并映射公网地址的方法,在实施例一的基础上,通过在现有PCP标准的基础上,增加相关选项和操作码,使得PCP服务器根据其接收到的第一网络出口的指示信息能够获知选取哪一个公网地址池进行公网地址的分配,根据第一PCP请求消息的源地址信息能够获知为哪一个PCP客户端分配公有网络地址信息。因此,本申请实施例中的PCP服务器在接收到源地址信息为PCP客户端的私有网络地址信息、且携带有第一网络出口的指示信息的第二PCP请求消息后,能够获知利用哪一个公网地址池为PCP客户端分配公有网络地址信息。这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够根据PCP客户端的需求,在指定的网络出口对应的地址池中为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0272] 实施例三
[0273] 为了更加详细的说明本申请提供的分配并映射公网地址信息的方法,本申请实施例以PCP服务器为PCP客户端分配并映射上述M个公有网络地址信息中的第一公有网络地址信息为例进行说明。
[0274] 具体的,本申请实施例以PCP客户端在向PCP服务器发送第一PCP请求消息后,获取用于表示PCP服务器包含的网络出口不唯一的第一标识的应用场景为例进行说明。
[0275] 附图5为本申请实施例提供的分配并映射公网地址的方法在具体实施过程中的各设备之间的交互示意图。交互过程包括:
[0276] S300、PCP客户端向PCP服务器发送第一PCP请求消息,该第一PCP请求消息的源地址信息为PCP客户端的私有网络地址信息。
[0277] 本申请实施例中的S300与实施例二中的S200相同,此处不再进行详细赘述。
[0278] S301、PCP服务器响应于第一PCP请求消息,向PCP客户端发送携带第一标识的第二响应消息。
[0279] 其中,第一标识用于指示PCP服务器包含的网络出口不唯一,本申请实施例中PCP服务器包含的至少两个网络出口。
[0280] 具体的,本申请实施例中的第二响应消息是在现有PCP标准规定的PCP响应消息包含的内容的基础上,增加了应答结果码(Result Codes)MULTIPLE_ZONES,因此,本申请实施例中的第一标识可以为MULTIPLE_ZONES字段中的值。
[0281] 其中,MULTIPLE_ZONES的定义可以参考上述实施例二,此处对此不再进行详细赘述。
[0282] 需要说明的是,本申请实施例中的MULTIPLE_ZONES仅仅是应答结果码的一种表示形式,关于应答结果码的具体表示形式,本申请实施例对此不作具体限定。
[0283] 具体的,本申请实施例中的PCP客户端在接收到PCP服务器发送的第二响应消息后,根据第一标识可以获知PCP服务器包含的网络出口不唯一。在PCP客户端获知PCP服务器包含的网络出口不唯一后,PCP客户端向PCP服务器发送携带第二标识的第四PCP请求消息,第二标识用于指示获取PCP服务器包含的网络出口的指示信息,以便于获取PCP服务器包含的网络出口的指示信息。
[0284] S302、PCP客户端向PCP服务器发送携带第二标识的第四PCP请求消息。
[0285] 其中,第二标识用于指示获取PCP服务器包含的网络出口的指示信息,这样,第四PCP请求消息用于请求获取PCP服务器包含的网络出口的指示信息。
[0286] 现有PCP标准中规定的操作码只有MAP和PEER,这两种操作码仅仅是用于匹配和交换,本申请实施例中的第二标识是用于指示获取PCP服务器包含的网络出口的指示信息。因此,本申请实施例中的第四PCP请求消息在现有PCP标准规定的PCP请求消息包含的内容基础上,还增加了操作码GET_ZONE。本申请实施例中的第二标识可以为GET_ZONE。
[0287] S303、PCP服务器根据第二标识和第二预设规则,获取M个网络出口中每个网络出口的指示信息。
[0288] 具体的,本申请实施例中的PCP服务器包含有N个网络出口,PCP服务器能够获知N个网络出口中每个网络出口的指示信息。
[0289] 可选的,PCP服务器中存储有指示信息表,该指示信息表包含有N个网络出口中每个网络出口的指示信息。
[0290] PCP服务器在接收到携带有GET_ZONE操作码的第四PCP请求消息时,根据GET_ZONE操作码获知PCP客户端需要获取网络出口的指示信息,因此,PCP服务器根据GET_ZONE操作码和第二预设规则,从指示信息表中获取M个网络出口的指示信息。
[0291] 其中,第二预设规则可以为选取负载利用率小于预设阈值的网络出口,也可以为选取预先设定的网络出口,本申请实施例对此不作具体限定。
[0292] S304、PCP服务器向PCP客户端发送携带M个网络出口中每个网络出口的指示信息的应答消息。
[0293] PCP服务器在获取到M个网络出口中每个网络出口的指示信息后,将获取到的M个网络出口中每个网络出口的指示信息置于应答消息中PCP客户端发送。
[0294] 具体的,本申请实施例中的应答消息是在现有PCP标准规定的PCP响应消息包含的内容的基础上,增加了ZONE_DETAIL选项。
[0295] 可选的,ZONE_DETAIL选项主要包括Zone ID字段。其中,Zone ID字段用于说明网络出口的指示信息。
[0296] 实际应用中,PCP服务器发送的ZONE_DETAIL选项还可以包括如下字段:
[0297] Option Code,用于表示应答消息中的ZONE_DETAIL选项的代码;
[0298] Option Length,用于表示ZONE_DETAIL选项的长度。
[0299] 在此基础上,该ZONE_DETAIL选项还可以包括若干的Reserved字段。
[0300] 示例性的,表6示出了本申请实施例中的ZONE_DETAIL选项的一个具体格式。如表6所示,ZONE_DETAIL选项包括上述的所有字段以及若干的Reserved字段。
[0301] 表6
[0302]
[0303] 表6中Option Code的数值为22,Option Length的数值为16,Zone ID字段的字符长度为8比特。
[0304] 需要说明的是,表6所示的本申请实施例中的ZONE_DETAIL选项的格式,仅仅为本申请实施例中的一个格式举例。在实际应用中,上述字段的长度以及各字段的位置可以根据协议实现需要灵活设置,此处不再一一列举。
[0305] 由于本申请实施例中的应答消息携带有M个网络出口中每个网络出口的指示信息,因此,本申请实施例中的应答消息包含有M个ZONE_DETAIL选项,每个ZONE_DETAIL选项包含有其中一个网络出口的指示信息,且每个ZONE_DETAIL选项包含的网络出口的指示信息不同。
[0306] 可以理解的是,PCP服务器向PCP客户端发送应答消息后,PCP客户端根据该应答消息能够一次性获得M个网络出口中每个网络出口的指示信息。
[0307] S305、PCP客户端从应答消息中获得第一网络出口的指示信息。
[0308] 第一网络出口为M个网络出口中的其中一个,因此,PCP客户端在接收到应答消息后,能够从应答消息中获得第一网络出口的指示信息。
[0309] S306、PCP客户端向PCP服务器发送携带第一网络出口的指示信息的第二PCP请求消息。
[0310] S307、PCP服务器根据第一网络出口的指示信息,选取与第一网络出口相对应的公网地址池。
[0311] S308、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息。
[0312] S309、PCP服务器记录私有网络地址信息和第一公有网络地址信息的第一对应关系。
[0313] S310、PCP服务器向PCP客户端发送携带该第一对应关系和第一网络出口的指示信息的确认消息。
[0314] 其中,本申请实施例中S306~S310与上述实施例二中S205~S209相同,此处不再详细赘述。
[0315] 可以理解的是,图5中的S305至S310组成的子流程实现了PCP服务器从与第一网络出口对应的公网地址池中为PCP客户端分配第一公有网络地址信息的目的。
[0316] 由于本申请实施例中的PCP服务器存在多个网络出口,且对于每个网络出口而言,PCP服务器为PCP客户端分配公有网络地址信息的方法都相同,因此本申请实施例中S305至S310组成的子流程可以重复执行多次,以达到PCP服务器为PCP客户端分配多个公网地址信息的目的。
[0317] 具体的,如图5所示,本申请实施例提供的分配并映射公网地址的方法在步骤S304之后,还包括:
[0318] S305′、PCP客户端从应答消息中获得第二网络出口的指示信息。
[0319] 第二网络出口为M个网络出口中除第一网络出口以外的其中一个,因此,本申请实施例中的第一网络出口与第二网络出口表示的是PCP服务器中不同的网络出口。
[0320] S306′、PCP客户端向PCP服务器发送携带第二网络出口的指示信息的第二PCP请求消息。
[0321] S307′、PCP服务器根据第二网络出口的指示信息,选取与第二网络出口相对应的公网地址池。
[0322] S308′、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第二公有网络地址信息。
[0323] S309′、PCP服务器记录私有网络地址信息和第二公有网络地址信息的第二对应关系。
[0324] S310′、PCP服务器向PCP客户端发送携带该第二对应关系和第二网络出口的指示信息的确认消息。
[0325] 其中,S305′至S310′组成的子流程可以视为S305至S310组成的子流程的重复执行。
[0326] 上述两个子流程的不同之处仅仅为:S305′至S310′组成的子流程是针对第二网络出口,S305至S310组成的子流程是针对第一网络出口。
[0327] 因此,S305′至S310′组成的子流程实现细节可以参考上述S305至S310组成的子流程,此处对此不再进行详细赘述。
[0328] 从前述可知,本申请实施例中第一网络出口和第二网络出口均为PCP服务器中的网络出口,且第一网络出口与第二网络出口为不同的网络出口。
[0329] 需要说明的是,本申请实施例提供的分配并映射公网地址的方法在S304之后,执行S305至S310组成的子流程和S305′至S310′组成的子流程的顺序没有先后依赖关系。例如,可以并发地同时执行S305至S310组成的子流程和S305′至S310′组成的子流程;也可以顺序地执行S305至S310组成的子流程和S305′至S310′组成的子流程,例如先执行S305至S310组成的子流程,后执行S305′至S310′组成的子流程,或者反之先执行S305′至S310′组成的子流程,后执行S305至S310组成的子流程;还可以先执行一个子流程的部分,再执行另一个子流程的部分。本申请实施例对此不作具体限定。
[0330] 图5仅仅示出了S305′至S310′组成的子流程和S305至S310组成的子流程的其中一种执行顺序,并不代表实际执行顺序。
[0331] 其中,本申请实施例中的确认消息携带网络出口的指示信息是为了在上述多个子流程并发执行的过程中,使得PCP客户端能够获知PCP服务器是在哪个网络出口分配的公有网络地址信息,也就是说,使得PCP客户端能够获知分配的公有网络地址信息与网络出口的对应关系。
[0332] 本申请实施例提供了一种分配并映射公网地址的方法,在实施例一的基础上,通过在现有PCP标准的基础上,增加相关选项和操作码,使得PCP服务器根据其接收到的第一网络出口的指示信息能够获知选取哪一个公网地址池进行公网地址的分配,根据第一PCP请求消息的源地址信息能够获知为哪一个PCP客户端分配公有网络地址信息。因此,本申请实施例中的PCP服务器在接收到源地址信息为PCP客户端的私有网络地址信息、且携带有第一网络出口的指示信息的第二PCP请求消息后,能够获知利用哪一个公网地址池为PCP客户端分配公有网络地址信息。这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够根据PCP客户端的需求,在指定的网络出口对应的地址池中为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0333] 实施例四
[0334] 为了更加详细的说明本申请提供的分配并映射公网地址信息的方法,本申请实施例以PCP服务器为PCP客户端分配并映射上述M个公有网络地址信息中的第一公有网络地址信息和第二公有网络地址信息为例进行说明。
[0335] 其中,第一网络出口与第一公有网络地址信息相对应,第二网络出口与第二公有网络地址信息相对应,第二网络出口为上述M个网络出口中的任意一个网络出口,第一网络出口为上述M个网络出口中除第二网络出口之外的任意一个网络出口。第一网络出口为PCP服务器包含的N个网络出口中的第i个网络出口,第二网络出口为N个网络出口中的第j个网络出口,1≤i≤N,1≤j≤N,且j≠i。
[0336] 具体的,本申请实施例以PCP客户端在向PCP服务器发送第一PCP请求消息后,获取第二网络出口的指示信息和第二对应关系的应用场景为例进行说明。
[0337] 附图6为本申请实施例提供的分配并映射公网地址的方法在具体实施过程中的各设备之间的交互示意图。交互过程包括:
[0338] S400、PCP客户端向PCP服务器发送第一PCP请求消息,该第一PCP请求消息的源地址信息为PCP客户端的私有网络地址信息。
[0339] 本申请实施例中的S400与实施例三中的S300相同,此处不再进行详细赘述。
[0340] S401、PCP服务器响应于第一PCP请求消息,向PCP客户端发送携带第二网络出口的指示信息和第二对应关系的第三响应消息。
[0341] 其中,第二对应关系为私有网络地址信息和第二公有网络地址信息的对应关系。
[0342] 具体的,包含有至少两个网络出口的PCP服务器在接收到第一PCP请求消息后,首先根据某一规则选取第二网络出口的指示信息,并根据第二网络出口的指示信息选取与第二网络出口的指示信息相对应的公网地址池,然后,PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第二公有网络地址信息,最后,PCP服务器记录私有网络地址信息和第二公有网络地址信息的第二对应关系,并向PCP客户端发送携带有该第二对应关系和第二网络出口的指示信息的第三响应消息。
[0343] 其中,PCP服务器可以随意选取一个网络出口作为第二网络出口,也可以是选取负载利用率最小的网络出口作为第二网络出口,本申请实施例对此不作具体限定。
[0344] 具体的,本申请实施例中的第三响应消息是在现有PCP标准规定的PCP响应消息包含的内容的基础上,增加了ZONE_DETAIL选项。
[0345] 其中,ZONE_DETAIL选项的定义可以参考上述实施例三,此处对此不再进行详细赘述。
[0346] 容易理解的是,在PCP服务器仅仅包含一个网络出口的应用场景中,PCP客户端在向PCP服务器发送第一PCP请求消息,用于请求获取公有网络地址信息后,PCP客户端会仅仅接收到PCP服务器为该PCP客户端分配的公有网络地址信息。而本申请实施例适用于PCP服务器包含有至少两个网络出口的应用场景,且PCP服务器也会向PCP客户端发送第二网络出口的指示信息,因此,本申请实施例中的PCP客户端在接收到PCP服务器发送的第三响应消息后,根据第二网络出口的指示信息可以获知PCP服务器包含的网络出口不唯一。在PCP客户端获知PCP服务器包含的网络出口不唯一后,PCP客户端向PCP服务器发送第四PCP请求消息,以便于获取PCP服务器包含的网络出口的指示信息。
[0347] S402、PCP客户端向PCP服务器发送携带第二标识的第四PCP请求消息。
[0348] 其中,第二标识用于指示获取PCP服务器包含的网络出口的指示信息,这样,第四PCP请求消息用于请求获取PCP服务器包含的网络出口的指示信息。
[0349] 现有PCP标准中规定的操作码只有MAP和PEER,这两种操作码仅仅是用于匹配和交换,本申请实施例中的第二标识指示获取PCP服务器包含的网络出口的指示信息。因此,本申请实施例中的第四PCP请求消息在现有PCP标准规定的PCP请求消息包含的内容基础上,还增加了操作码GET_ZONE。本申请实施例中的第二标识可以为GET_ZONE。
[0350] S403、PCP服务器根据第二标识和第二预设规则,获取M个网络出口中每个网络出口的指示信息。
[0351] S404、PCP服务器向PCP客户端发送携带M个网络出口中每个网络出口的指示信息的应答消息。
[0352] S405、PCP客户端从应答消息中获得第一网络出口的指示信息。
[0353] S406、PCP客户端向PCP服务器发送携带第一网络出口的指示信息的第二PCP请求消息。
[0354] S407、PCP服务器根据第一网络出口的指示信息,选取与第一网络出口相对应的公网地址池。
[0355] S408、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息。
[0356] S409、PCP服务器记录私有网络地址信息和第一公有网络地址信息的第一对应关系。
[0357] S410、PCP服务器向PCP客户端发送携带该第一对应关系和第一网络出口的指示信息的确认消息。
[0358] 与上述实施例三不同的是,本申请实施例中第一网络出口为M个网络出口中除第二网络出口以外的任意一个网络出口,实施例三中的第一网络出口为M个网络出口中的任意一个网络出口。
[0359] 本申请实施例中S402~S410与上述实施例三中S302~S310相同,此处不再详细赘述。
[0360] 可以理解的是,图6中的S405至S410组成的子流程实现了PCP服务器从与第一网络出口对应的公网地址池中为PCP客户端分配第一公有网络地址信息的目的。
[0361] 由于本申请实施例中的PCP服务器存在多个网络出口,且对于除第二网络出口以外的每个网络出口而言,PCP服务器为PCP客户端分配公有网络地址信息的方法都相同,因此本申请实施例中S405至S410组成的子流程可以重复执行多次,以达到PCP服务器为PCP客户端分配多个公网地址信息的目的。
[0362] 具体的,如图6所示,本申请实施例提供的分配并映射公网地址的方法在步骤S404之后,还包括:
[0363] S405′、PCP客户端从应答消息中获得第三网络出口的指示信息。
[0364] 第三网络出口为M个网络出口中除第一网络出口和第二网络出口以外的其中一个。
[0365] S406′、PCP客户端向PCP服务器发送携带第三网络出口的指示信息的第二PCP请求消息。
[0366] S407′、PCP服务器根据第三网络出口的指示信息,选取与第三网络出口相对应的公网地址池。
[0367] S408′、PCP服务器从选取的公网地址池中为PCP客户端分配一个公有网络地址信息作为第三公有网络地址信息。
[0368] S409′、PCP服务器记录私有网络地址信息和第三公有网络地址信息的第三对应关系。
[0369] S410′、PCP服务器向PCP客户端发送携带该第三对应关系和第三网络出口的指示信息的确认消息。
[0370] 其中,S405′至S410′组成的子流程可以视为S405至S410组成的子流程的重复执行。
[0371] 上述两个子流程的不同之处仅仅为:S405′至S410′组成的子流程是针对第三网络出口,S405至S410组成的子流程是针对第一网络出口。
[0372] 因此,S405′至S410′组成的子流程实现细节可以参考上述S405至S410组成的子流程,此处对此不再进行详细赘述。
[0373] 从前述可知,本申请实施例中第一网络出口和第三网络出口均为PCP服务器中的网络出口,且第一网络出口与第三网络出口为不同的网络出口。
[0374] 需要说明的是,本申请实施例提供的分配并映射公网地址的方法在S404之后,执行S405至S410组成的子流程和S405′至S410′组成的子流程的顺序没有先后依赖关系。例如,可以并发地同时执行S405至S410组成的子流程和S405′至S410′组成的子流程;也可以顺序地执行S405至S410组成的子流程和S405′至S410′组成的子流程,例如先执行S405至S410组成的子流程,后执行S405′至S410′组成的子流程,或者反之先执行S405′至S410′组成的子流程,后执行S405至S410组成的子流程;还可以先执行一个子流程的部分,再执行另一个子流程的部分。本申请实施例对此不作具体限定。
[0375] 图6仅仅示出了S405′至S410′组成的子流程和S405至S410组成的子流程的其中一种执行顺序,并不代表实际执行顺序。
[0376] 其中,本申请实施例中的确认消息携带网络出口的指示信息是为了在上述多个子流程并发执行的过程中,使得PCP客户端能够获知PCP服务器是在哪个网络出口分配的公有网络地址信息,也就是说,使得PCP客户端能够获知分配的公有网络地址信息与网络出口的对应关系。
[0377] 本申请实施例提供了一种分配并映射公网地址的方法,在实施例一的基础上,通过在现有PCP标准的基础上,增加相关选项和操作码,使得PCP服务器根据其接收到的第一网络出口的指示信息能够获知选取哪一个公网地址池进行公网地址的分配,根据第一PCP请求消息的源地址信息能够获知为哪一个PCP客户端分配公有网络地址信息。因此,本申请实施例中的PCP服务器在接收到源地址信息为PCP客户端的私有网络地址信息、且携带有第一网络出口的指示信息的第二PCP请求消息后,能够获知利用哪一个公网地址池为PCP客户端分配公有网络地址信息。这样,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够根据PCP客户端的需求,在指定的网络出口对应的地址池中为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0378] 实施例五
[0379] 本申请实施例提供一种端口控制协议PCP服务器1,所述PCP服务器1用于执行以上方法中的PCP服务器所执行的步骤。所述PCP服务器1可以包括相应步骤所对应的模块。
[0380] 如图7所示,该PCP服务器1包括:
[0381] 接收单元30,用于接收PCP客户端发送的第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息。
[0382] 处理单元31,用于根据所述接收单元30接收到的所述第一PCP请求消息为所述PCP客户端分配M个公有网络地址信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。
[0383] 存储单元32,用于记录所述接收单元30接收到的所述私有网络地址信息和所述处理单元31分配的所述M个公有网络地址信息的对应关系。
[0384] 进一步地,对于所述M个公有网络地址信息中的第一公有网络地址信息,[0385] 所述接收单元30,还用于接收PCP客户端发送的第二PCP请求消息,所述第二PCP请求消息携带第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述私有网络地址信息,所述第一网络出口为所述M个网络出口中与所述第一公有网络地址信息相对应的网络出口,且所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N。
[0386] 所述处理单元31,还用于根据所述接收单元30接收到的所述第一网络出口的指示信息,选取与所述第一网络出口对应的公网地址池,以及从选取的所述公网地址池中为所述PCP客户端分配一个公有网络地址信息作为第一公有网络地址信息。
[0387] 所述存储单元32,具体用于记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系。
[0388] 进一步地,所述接收单元30,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端发送的第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个。
[0389] 进一步地,所述处理单元31,还用于根据所述接收单元30接收到的所述第一顺序标识,从预设的顺序标识和网络出口的指示信息之间的映射关系中获取与所述第一顺序标识对应的第一网络出口的指示信息。
[0390] 进一步地,如图8所示,所述PCP服务器1还包括发送单元33,
[0391] 所述发送单元33,用于向所述PCP客户端发送所述处理单元31获取到的所述第一网络出口的指示信息。
[0392] 进一步地,所述发送单元33,还用于向所述PCP客户端发送对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。
[0393] 进一步地,所述发送单元33,还用于在所述存储单元32记录所述私有网络地址信息和所述第一公有网络地址信息的第一对应关系之后,向所述PCP客户端发送确认消息,所述确认消息携带所述第一对应关系和所述第一网络出口的指示信息。
[0394] 具体的,所述处理单元31,具体用于:
[0395] 根据第一预设规则,从N个网络出口中选取所述M个网络出口;
[0396] 对于所述M个网络出口中的每个网络出口,获取与所述网络出口对应的公网地址池,并从获取的公网地址池中为所述PCP客户端分配一个公有网络地址信息。
[0397] 进一步地,所述接收单元30,还用于在接收PCP客户端发送的第二PCP请求消息之前,接收所述PCP客户端发送的第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0398] 进一步地,所述处理单元31,还用于根据所述接收单元30接收到的所述第四PCP请求消息中的所述第二标识和第二预设规则,获取所述M个网络出口中每个网络出口的指示信息。
[0399] 进一步地,所述发送单元33,用于向所述PCP客户端发送应答消息,所述应答消息携带所述处理单元31获取到的所述M个网络出口中每个网络出口的指示信息。
[0400] 进一步地,所述发送单元33,还用于在所述接收单元30接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识。
[0401] 进一步地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则
[0402] 所述发送单元33,还用于在所述接收单元30接收所述PCP客户端发送的第四PCP请求消息之前,向所述PCP客户端发送对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0403] 可以理解的是,本申请实施例的PCP服务器1仅为根据该PCP服务器1实现的功能进行的逻辑划分。实际应用中,可以进行上述单元的叠加或拆分。
[0404] 本申请实施例提供的PCP服务器1所实现的功能与上述实施例一至实施例四中任一实施例提供的分配并映射公网地址的方法一一对应,对于该PCP服务器1所实现的更为详细的处理流程,在上述方法实施例一至实施例四中已做详细描述,此处不再详细描述。
[0405] 本申请另一实施例提供一种PCP服务器,如图9所示,该PCP服务器包括接口电路100、处理器101、存储器102和系统总线103。
[0406] 其中,所述接口电路100、所述处理器101与所述存储器102之间通过所述系统总线103连接,并完成相互间通信。
[0407] 图9所示的PCP服务器与图2中PCP服务器相同,图2中未示出系统总线103。
[0408] 本领域技术人员可以理解,图7所示的PCP服务器的结构并不是对PCP服务器的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0409] 具体的,当所述PCP服务器运行时,所述PCP服务器执行如图3至图6中任意一个所述的实施例的分配公网地址的方法。具体的分配公网地址的方法可参见上述如图3至图6中任意一个所示的实施例中的相关描述,此处不再赘述。
[0410] 具体的,接口电路100用于实现该PCP服务器分别与PCP客户端和公有网络之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0411] 具体的,所述存储器102可用于存储软件程序以及应用模块,处理器101通过运行存储在存储器102的软件程序以及应用模块,从而执行PCP服务器的各种功能应用以及数据处理。
[0412] 存储器102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,比如发送响应消息功能等;存储数据区可存储PCP服务器创建的数据,比如保存有按照上述方法生成的公有网络地址信息和私有网络地址信息的映射关系的地址信息数据库20,也可以存储预设的映射关系。
[0413] 其中,所述存储器102可以包括易失性存储器,例如高速随机存取存储器(RAM,Random Access Memory),所述存储器102也可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件,本申请实施例对此不作具体限定。
[0414] 具体的,所述处理器101是PCP服务器的控制中心。
[0415] 所述处理器101利用各种接口和线路连接整个PCP服务器的各个部分,通过运行或执行存储在存储器102内的软件程序和/或应用模块,以及调用存储在存储器102内的数据,执行PCP服务器的各种功能和处理数据,从而对PCP服务器进行整体监控。
[0416] 可选的,处理器101可以为中央处理器(CPU,Central Processing Unit)。所述处理器101还可以为其他通用处理器、数字信号处理器(DSP,Digital Signal Processing)或者其他可编程逻辑器件或者晶体管逻辑器件、分立硬件组件等,本申请实施例对此不作具体限定。
[0417] 其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0418] 所述系统总线103可以包括数据总线、电源总线、控制总线和信号状态总线等。
[0419] 本申请实施例中为了清楚说明,在图9中将各种总线都示意为系统总线103。
[0420] 本申请实施例中的PCP服务器是指能够支持PCP的服务端设备。可选的,本申请实施例中的PCP服务器为CGN设备。
[0421] 本申请实施例提供了一种PCP服务器,PCP服务器在接收到PCP客户端发送的第一PCP请求消息时,PCP服务器能够根据该第一PCP请求消息为PCP客户端分配M个公有网络地址信息,并记录PCP客户端的私有网络地址信息和M个公有网络地址信息的对应关系,N≥M≥2,N为PCP服务器包含的网络出口的数量,M个公有网络地址信息与PCP服务器的M个网络出口一一对应。这样,即使PCP服务器包含有N(N≥2)个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0422] 实施例六
[0423] 本申请实施例提供一种端口控制协议PCP客户端1,所述PCP客户端1用于执行以上方法中的PCP客户端所执行的步骤。所述PCP客户端1可以包括相应步骤所对应的模块。
[0424] 如图10所示,该PCP客户端1包括:
[0425] 发送单元40,用于向PCP服务器发送第一PCP请求消息,所述第一PCP请求消息的源地址信息为所述PCP客户端的私有网络地址信息,所述第一PCP请求消息用于请求所述PCP服务器根据所述第一PCP请求消息为所述PCP客户端分配公有网络地址信息。
[0426] 接收单元41,用于接收所述PCP服务器发送的M条确认消息,所述M条确认消息中的每条确认消息携带所述私有网络地址信息、所述PCP服务器为所述PCP客户端分配的其中一个公有网络地址信息以及与该公有网络地址信息相对应的网络出口的指示信息,N≥M≥2,N为所述PCP服务器包含的网络出口的数量,所述PCP服务器为所述PCP客户端分配的M个公有网络地址信息与所述PCP服务器的M个网络出口一一对应。
[0427] 进一步地,如图11所示,所述PCP客户端1还包括处理单元42,
[0428] 所述处理单元42,用于对于所述M个网络出口中的第一网络出口,在所述发送单元40向PCP服务器发送第一PCP请求消息之后,且所述接收单元41接收所述PCP服务器发送的所述M条确认消息中的第一确认消息之前,所述第一确认消息为携带有所述第一网络出口的指示信息的确认消息,获得所述第一网络出口的指示信息,所述第一网络出口为N个网络出口中的第i个网络出口,1≤i≤N。
[0429] 进一步地,所述发送单元40,还用于向所述PCP服务器发送第二PCP请求消息,所述第二PCP请求消息携带所述处理单元42获得的所述第一网络出口的指示信息,所述第二PCP请求消息的源地址为所述PCP客户端的私有网络地址信息,所述第二PCP请求消息用于请求所述PCP服务器在所述第一网络出口对应的公网地址池中为所述PCP客户端分配公有网络地址信息。
[0430] 具体的,所述处理单元42,还用于获得N。
[0431] 进一步地,所述发送单元40,还用于向所述PCP服务器发送第三PCP请求消息,所述第三PCP请求消息携带第一顺序标识,其中,所述第一顺序标识用于表示所述N个网络出口中的第i个。
[0432] 进一步地,所述接收单元41,还用于接收所述服务器发送的与所述第一顺序标识相对应的第一网络出口的指示信息,并将所述第一网络出口的指示信息通知所述处理单元42。
[0433] 进一步地,所述接收单元41,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第一响应消息,所述第一响应消息携带用于指示所述PCP服务器包含的网络出口不唯一的第一标识和N。
[0434] 进一步地,所述处理单元42,具体用于从所述接收单元41接收到的所述第一响应消息中获得N。
[0435] 进一步地,所述处理单元42,还用于获得第一标识,所述第一标识用于指示所述PCP服务器包含的网络出口不唯一。
[0436] 进一步地,所述发送单元40,还用于根据所述处理单元42获得的所述第一标识,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0437] 进一步地,所述接收单元41,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息。
[0438] 进一步地,所述处理单元42,还用于从所述接收单元41接收到的所述应答消息中获得所述第一网络出口的指示信息。
[0439] 进一步地,所述接收单元41,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第二响应消息,所述第二响应消息携带所述第一标识。
[0440] 进一步地,所述处理单元42,还用于从所述接收单元41接收到的所述第二响应消息中获得所述第一标识。
[0441] 进一步地,若所述第一网络出口为所述M个网络出口中除第二网络出口之外的任意一个网络出口,所述第二网络出口为N个网络出口中的第j个网络出口,1≤j≤N,且j≠i;则所述处理单元42,还用于获得所述第二网络出口的指示信息。
[0442] 进一步地,所述发送单元40,还用于根据所述第二网络出口的指示信息,向所述PCP服务器发送第四PCP请求消息,所述第四PCP请求消息携带用于指示获取所述PCP服务器包含的网络出口的指示信息的第二标识。
[0443] 进一步地,所述接收单元41,还用于接收所述PCP服务器发送的应答消息,所述应答消息携带所述M个网络出口中每个网络出口的指示信息。
[0444] 进一步地,所述处理单元42,还用于从所述接收单元41接收到的所述应答消息中获得所述第一网络出口的指示信息。
[0445] 进一步地,所述接收单元41,还用于接收所述PCP服务器发送的对应于所述第一PCP请求消息的第三响应消息,所述第三响应消息携带所述第二网络出口的指示信息和第二对应关系,所述第二对应关系为所述私有网络地址信息和第二公有网络地址信息的对应关系,所述第二公有网络地址信息与所述第二网络出口相对应。
[0446] 进一步地,所述处理单元42,还用于从所述接收单元41接收到的所述第三响应消息中获得所述第二网络出口的指示信息。
[0447] 可以理解的是,本申请实施例的PCP客户端1仅为根据该PCP客户端1实现的功能进行的逻辑划分。实际应用中,可以进行上述单元的叠加或拆分。
[0448] 本申请实施例提供的PCP客户端1所实现的功能与上述实施例一至实施例四中任意一个实施例提供的分配并映射公网地址的方法一一对应,对于该PCP客户端1所实现的更为详细的处理流程,在上述方法实施例一至实施例四中任意一个实施例中已做详细描述,此处不再详细描述。
[0449] 本申请另一实施例提供一种PCP客户端,如图12所示,该PCP客户端包括接口电路110、处理器111、存储器112和系统总线113。
[0450] 其中,所述接口电路110、所述处理器111与所述存储器112之间通过所述系统总线113连接,并完成相互间通信。
[0451] 图12所示的PCP客户端与图2中PCP客户端相同,图2中未示出系统总线113。
[0452] 本领域技术人员可以理解,图12所示的PCP客户端的结构并不是对PCP客户端的限定,其可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0453] 具体的,当所述PCP客户端运行时,所述PCP客户端执行如图3至图6中任意一个所述的实施例的分配公网地址的方法。具体的分配公网地址的方法可参见上述如图3至图6中任意一个所示的实施例中的相关描述,此处不再赘述。
[0454] 具体的,接口电路110用于实现该PCP客户端与PCP服务器之间的通信连接,二者之间的通信可以使用互联网,广域网,本地网,城域网等。
[0455] 具体的,所述存储器112可用于存储软件程序以及应用模块,处理器111通过运行存储在存储器112的软件程序以及应用模块,从而执行PCP客户端的各种功能应用以及数据处理。
[0456] 存储器112可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,比如发送请求消息功能等;存储数据区可存储PCP客户端11获取到的网络出口的指示信息,比如网络出口信息数据库21,存储数据区还可以保存PCP客户端11接收到的公有网络地址信息、私有网络地址信息和网络出口的指示信息三者的映射关系的等。
[0457] 其中,所述存储器112可以包括易失性存储器,例如高速随机存取存储器(RAM,Random Access Memory),所述存储器112也可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件,本申请实施例对此不作具体限定。
[0458] 具体的,所述处理器111是PCP客户端的控制中心。
[0459] 处理器111利用各种接口和线路连接整个PCP客户端的各个部分,通过运行或执行存储在存储器112内的软件程序和/或应用模块,以及调用存储在存储器112内的数据,执行PCP客户端的各种功能和处理数据,从而对PCP客户端进行整体监控。
[0460] 可选的,处理器111可以为中央处理器(CPU,Central Processing Unit)。所述处理器111还可以为其他通用处理器、数字信号处理器(DSP,Digital Signal Processing)或者其他可编程逻辑器件或者晶体管逻辑器件、分立硬件组件等,本申请实施例对此不作具体限定。
[0461] 其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0462] 所述系统总线113可以包括数据总线、电源总线、控制总线和信号状态总线等。
[0463] 本申请实施例中为了清楚说明,在图12中将各种总线都示意为系统总线113。
[0464] 本申请实施例提供了一种PCP客户端,在PCP客户端向PCP服务器发送第一PCP请求消息,用于请求PCP服务器根据第一PCP请求消息为PCP客户端分配公有网络地址信息后,PCP客户端接收PCP服务器发送的M条确认消息,且每条确认消息携带PCP客户端的私有网络地址信息和PCP服务器为该PCP客户端分配的其中一个地址网络地址信息的对应关系,PCP服务器为PCP客户端分配的M个公有网络地址信息与PCP服务器的M个网络出口一一对应,且M≥2,可以看出,即使PCP服务器包含有至少两个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0465] 实施例七
[0466] 本申请实施例提供一种网络系统,该网络系统包括如实施例五所述的PCP服务器以及如实施例六所述的PCP客户端。
[0467] 对于PCP服务器所实现的更为详细的处理流程,在上述实施例五中已做详细描述,此处不再详细描述。
[0468] 同理,对于PCP客户端所实现的更为详细的处理流程,在上述实施例六中已做详细描述,此处不再详细描述。
[0469] 本申请实施例提供了一种网络系统,该网络系统包括PCP服务器和PCP客户端。PCP服务器在接收到PCP客户端发送的第一PCP请求消息时,PCP服务器能够根据该第一PCP请求消息为PCP客户端分配M个公有网络地址信息,并记录PCP客户端的私有网络地址信息和M个公有网络地址信息的对应关系,N≥M≥2,N为PCP服务器包含的网络出口的数量,M个公有网络地址信息与PCP服务器的M个网络出口一一对应。这样,即使PCP服务器包含有N(N≥2)个网络出口,PCP服务器也能够为PCP客户端分配公有网络地址信息,进而实现PCP客户端与公有网络中的主机之间的通信。
[0470] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0471] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。
[0472] 例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0473] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0474] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0475] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0476] 基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0477] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0478] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。