一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

传输报文、配置映射表的方法和装置与流程

2022-02-24 17:47:56 来源:中国专利 TAG:


1.本技术涉及通信技术领域,特别涉及一种传输报文、配置映射表的方法和装置。


背景技术:

2.域名系统(domain name system,dns)是互联网的一项核心服务,可以认为是将域名和网络互连协议(internet protocol,ip)地址相互映射的一种分布式数据库。
3.在终端设备获取服务之前,终端设备需要首先向dns服务器发送携带有域名的地址查询报文,dns服务器接收到地址查询报文之后,根据地址查询报文中携带的域名查询对应的ip地址,并将查询到的ip地址发送给终端设备。终端设备根据返回的ip地址重新封装报文,并向ip地址所在的目的服务器发送报文。
4.由于用户终端在与目的服务器通信之前,就已经消耗了时间用于查询目的服务器的ip地址,所以无疑增加了终端设备获取到服务的延时。


技术实现要素:

5.本技术实施例提供了传输报文、配置映射表的方法和装置,通过采用本技术实施例提供的技术方案,可以有效的降低终端设备获取服务的延时,所述传输报文、配置映射表的方法和装置如下所述:
6.第一方面,提供了一种传输报文的方法,所述方法包括:接收第一报文,所述第一报文中携带有目标域名标识。在映射表中查询与所述目标域名标识匹配的目标布隆向量对应的目标地址,所述目标布隆向量包括一个或多个域名标识的信息,所述一个或多个域名标识包括所述目标域名标识,所述映射表为布隆向量和地址的映射表。基于所述第一报文和所述目标地址,生成目的地址为所述目标地址的第二报文。发送所述第二报文。
7.其中,目标域名标识可以是对目标域名做哈希处理后得到的哈希值,也可以就是目标域名,还可以是任何可以表征目标域名的标识,本技术对目标域名标识的具体类型不做限定。
8.映射表为布隆向量和地址的映射表,布隆向量中包括一个多个域名标识的信息,该一个或多个域名标识对应同一地址。映射表中的地址可以为网络互连协议(internet protocol,ip)地址。在映射表中,可以是一个布隆向量对应一个地址,也可以是多个布隆向量对应一个地址。
9.目标域名标识匹配的目标布隆向量是指包括目标域名标识的信息的布隆向量。
10.布隆向量中包括一个或多个域名标识的信息,可以理解为该一个或多个域名标识插入到了该布隆向量中,或,该布隆向量是基于初始布隆向量和该一个或多个域名标识生成的。
11.初始布隆向量和布隆向量均为布隆过滤器中的二进制向量,在布隆过滤器中包括一系列的哈希函数和一个二进制向量。初始布隆向量中的所有比特位的值均为0,布隆向量中有的比特位的值被置位为1。下面对布隆向量的生成过程进行介绍:
12.在基于初始布隆向量和一个或多个域名标识生成布隆向量时,首先,对一个或多个域名标识分别进行哈希处理,得到多个比特位。然后,将初始布隆向量中的该多个比特位的0置为1,则得到布隆向量。需要说明的是,上述进行哈希处理时使用的哈希函数可以为单个哈希函数,也可以为一系列哈希函数,本技术对此不做限定。还需要说明的是,域名标识可以就是经过哈希处理后得到的比特位,则在这种情况下,可以直接将初始布隆向量中,域名标识指示的比特位的0置为1,无需再对域名标识进行哈希处理。
13.另外,在查询布隆向量中是否包括有域名标识的信息时,需要对域名标识使用同样的哈希函数做哈希处理,确定多个比特位。然后,查询布隆向量中在上述多个比特位的值是否为1,如果均为1,则说明布隆向量中包括该域名标识的信息,如果不均为1,则说明布隆向量中不包括该域名标识的信息。需要说明的是,如果域名标识就是经过哈希处理后得到的比特位,则直接查询布隆向量中域名标识指示的比特位是否为1,无需再对域名标识进行哈希处理。
14.本技术实施例提供的传输报文的方法可以由用户网关执行,第一报文可以为终端设备发送的报文,第二报文可以向服务网关发送。
15.本技术实施例所示的方案,先接收第一报文。在接收到的第一报文之后,解析出其中携带的目标域名标识。然后,对该目标域名标识做哈希处理得到多个比特位。在映射表中查找该多个比特位均为1的布隆向量,则该布隆向量即为与目标域名标识匹配的目标布隆向量,目标布隆向量对应的地址即为要查找的目标地址。
16.然后,根据目标地址和第一报文生成目的地址为目标地址的第二报文,并向着目标地址发送该第二报文。
17.通过采用本技术实施例提供的传输报文的方法,终端设备不再需要向域名系统(domain name system,dns)查询目标地址,从而,降低了终端设备获取到服务的延时。
18.并且,映射表中存储的是布隆向量(在布隆向量中包括一个或多个域名标识的信息)和地址的对应关系,而不是域名标识和地址的对应关系,也降低了映射表中存储的路由条目的数量。
19.在一种可能的实现方式中,所述方法还包括:接收通告报文,所述通告报文中携带有布隆向量和所述布隆向量对应的地址,所述布隆向量包括一个或多个域名标识的信息。将所述布隆向量和所述布隆向量对应的地址,添加到所述映射表中。
20.其中,一个或多个域名标识对应的地址相同,布隆向量对应的地址也即一个或多个域名标识对应的地址,该地址可以为通告报文中的源地址。
21.通告报文可以是由服务系统中的服务网关发送的。
22.本技术实施例所示的方案,布隆向量可以是由服务系统中的服务网关或者服务器生成的,则用户网关可以接收携带有布隆向量和对应的地址的通告报文,然后,将该布隆向量和对应的地址添加到映射表中。
23.在一种可能的实现方式中,所述方法还包括:接收通告报文,所述通告报文中携带有一个或多个域名标识和所述一个或多个域名标识对应的地址。基于初始布隆向量和所述一个或多个域名标识,生成布隆向量。将所述布隆向量和所述布隆向量对应的地址,添加到所述映射表中。
24.其中,通告报文中携带的一个或多个域名标识对应同一地址,布隆向量对应的地
址是指一个或多个域名标识对应的地址,该地址可以为通告报文的源地址。
25.通告报文可以是由服务系统中的服务网关发送的。
26.本技术实施例所示的方案,布隆向量还可以是由用户网关生成的,则用户网关可以接收携带有域名标识和对应的地址的通告报文。然后,根据初始布隆向量和域名标识生成布隆向量。最后,将布隆向量和对应的地址添加到映射表中。
27.在一种可能的实现方式中,所述基于所述第一报文和所述目标地址,生成目的地址为所述目标地址的第二报文,包括:将所述第一报文中的目的地址修改为所述目标地址得到所述第二报文。
28.本技术实施例所示的方案,在生成第二报文时,可以直接将第一报文中的原目的地址修改为查询到的目标地址,从而,得到第二报文。
29.第二方面,提供了一种配置映射表的方法,所述方法包括:基于初始布隆向量和一个或多个域名标识,生成布隆向量。生成携带有所述布隆向量和本地地址的通告报文,向用户网关发送所述通告报文。
30.其中,该配置映射表的方法可以由服务网关执行。
31.一个或多个域名标识可以是由服务网关对域名做哈希处理得到的,也可以是由服务器对域名做哈希处理后,发送给服务网关的。
32.本技术实施例所示的方案,服务网关对一个或多个域名标识分别做哈希处理,得到多个比特位。然后,将初始布隆向量中的该多个比特位均置位1,得到布隆向量。再然后,生成携带有布隆向量和本地地址的通告报文,并向用户网关发送该通告报文。
33.用户网关在接收到通告报文后,获得通告报文中携带的布隆向量和对应的地址,然后,将布隆向量和地址添加到映射表中。
34.第三方面,提供了又一种配置映射表的方法,所述方法包括:基于初始布隆向量和一个或多个域名标识,生成布隆向量。向服务网关发送所述布隆向量,以使所述服务网关生成携带有所述布隆向量和所述服务网关的地址的通告报文,并向用户网关发送所述通告报文。
35.其中,该配置映射表的方法可以由服务器执行,该服务器可以为服务系统中的管理服务器。
36.本技术实施例所示的方案,服务器对一个或多个域名标识分别做哈希处理,得到多个比特位。然后,将初始布隆向量中的该多个比特位均置为1,得到布隆向量。将布隆向量发送给服务网关。
37.服务网关根据接收到的布隆向量和本地地址,生成携带有布隆向量和本地地址的通告报文,并向用户网关发送通告报文。
38.用户网关在接收到通告报文后,获得通告报文中携带的布隆向量和对应的地址,然后,将布隆向量和地址添加到映射表中。
39.第四方面,提供了一种传输报文的装置,所述装置包括:
40.接收模块,用于接收第一报文,所述第一报文中携带有目标域名标识;
41.查询模块,用于在映射表中查询与所述目标域名标识匹配的目标布隆向量对应的目标地址,其中,所述目标布隆向量包括一个或多个域名标识的信息,所述一个或多个域名标识包括所述目标域名标识,所述映射表为布隆向量和地址的映射表;
42.生成模块,用于基于所述第一报文和所述目标地址,生成目的地址为所述目标地址的第二报文;
43.发送模块,用于发送所述第二报文。
44.在一种可能的实现方式中,所述接收模块,还用于接收通告报文,所述通告报文中携带有布隆向量和所述布隆向量对应的地址,所述布隆向量包括一个或多个域名标识的信息;
45.所述装置还包括添加模块,所述添加模块用于将所述布隆向量和所述布隆向量对应的地址,添加到所述映射表中。
46.在一种可能的实现方式中,所述接收模块,还用于接收通告报文,所述通告报文中携带有一个或多个域名标识和所述一个或多个域名标识对应的地址;
47.所述生成模块,还用于基于初始布隆向量和所述一个或多个域名标识,生成布隆向量;
48.所述装置还包括添加模块,所述添加模块用于将所述布隆向量和所述布隆向量对应的地址,添加到所述映射表中。
49.在一种可能的实现方式中,在生成第二报文时,所述生成模块用于:
50.将所述第一报文中的目的地址修改为所述目标地址得到所述第二报文。
51.第五方面,提供了一种配置映射表的装置,所述装置包括:
52.生成模块,用于基于初始布隆向量和一个或多个域名标识,生成布隆向量;
53.所述生成模块,还用于生成携带有所述布隆向量和本地地址的通告报文;
54.发送模块,用于向用户网关发送所述通告报文。
55.第六方面,提供了一种配置映射表的装置,所述装置包括:
56.生成模块,用于基于初始布隆向量和一个或多个域名标识,生成布隆向量;
57.发送模块,用于向服务网关发送所述布隆向量,以使所述服务网关生成携带有所述布隆向量和所述服务网关的地址的通告报文,并向用户网关发送所述通告报文。
58.第七方面,提供了一种网络设备,所述网络设备包括处理器和存储器;
59.所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述处理器执行,用于实现如第一方面、第二方面或第三方面任一项所述的方法。
60.第八方面,提供了一种服务系统,所述服务系统包括用户网关和服务网关,所述用户网关包括如第四方面任一项所述的传输报文的装置;
61.所述服务网关用于向所述用户网关发送通告报文,所述通告报文用于生成所述用户网关中存储的映射表。
62.在一种可能的实现方式中,所述服务系统还包括与所述服务网关关联的一个或多个服务器。
63.第九方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括指令,当所述计算机可读存储介质在网络设备上运行时,使得所述网络设备执行如第一方面、第二方面或第三方面所述的方法。
64.第十方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在网络设备上运行时,所述网络设备执行如第一方面、第二方面或第三方面所述的方法。
65.第十一方面,提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当
所述芯片运行时用于实现上述第一方面、第二方面或第三方面所述的方法。
66.本技术实施例提供的技术方案带来的有益效果是:
67.本技术实施例提供了一种传输报文的方法,该方法可以由用户网关执行,在该用户网关中存储有布隆向量和地址映射表,从而,当接收到第一报文时,可以根据第一报文中携带的目标域名标识,在映射表中查询与目标域名标识匹配的目标布隆向量对应的目标地址。然后,根据目标地址和第一报文生成目的地址为目标地址的第二报文。最后,发送第二报文。通过采用本技术实施例提供的传输报文的方法,无需消耗时间向dns服务器查询目的服务器的地址,从而减少了终端设备获取到服务的延时。
附图说明
68.图1是本技术实施例提供的一种服务系统的示意图;
69.图2是本技术实施例提供的一种传输报文的方法的流程图;
70.图3是本技术实施例提供的一种服务系统的示意图;
71.图4是本技术实施例提供的一种配置映射表的方法的流程图;
72.图5是本技术实施例提供的一种配置映射表的方法的流程图;
73.图6是本技术实施例提供的一种传输报文的装置的结构示意图;
74.图7是本技术实施例提供的一种配置映射表的装置的结构示意图;
75.图8是本技术实施例提供的一种配置映射表的装置的结构示意图;
76.图9是本技术实施例提供的一种网络设备的结构示意图;
77.图10是本技术实施例提供的另一种网络设备的结构示意图;
78.图11是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
79.为了便于对本技术实施例提供的传输报文和配置映射表的方法进行详细说明,下面对本技术实施例提供的技术方案的应用场景进行介绍:
80.本技术实施例提供的传输报文的方法和配置映射表的方法可以应用在服务系统中,如图1所示,该服务系统中包括用户网关、服务网关以及服务网关所连接的服务器。其中,本技术实施例提供的传输报文的方法可以由服务系统中的用户网关执行,本技术实施例提供的配置映射表的方法可以由服务网关执行,也可以由服务网关所连接的服务器执行,该服务器可以为服务网关所连接的多个服务器中的管理服务器。
81.示例性的,该服务系统可以为内容分发网络(content delivery network,cdn)服务系统。cdn内承载多种服务,如网页,视频等。在这种情况下,服务网关还可以称为cdn网关。一个cdn网关可以连接有多个服务器,且该多个服务器可以提供不同的服务,存在不同的域名。
82.下面将结合具体实施方式,对图2所示的传输报文的方法的处理流程进行详细说明,该方法可以由服务器系统中的用户网关实现,内容可以如下:
83.步骤201,接收第一报文,第一报文中携带有目标域名标识。
84.其中,目标域名标识可以是对目标域名做哈希处理后得到的哈希值,也可以就是目标域名,还可以是任何可以表征目标域名的标识,本技术对目标域名标识的具体类型不
做限定。
85.对于目标域名标识为哈希值的情况,其带来的有益效果为:将变长或过长的域名转化为定长的哈希值。
86.终端设备在获取服务时,首先确定服务对应的目标域名,然后,可以对目标域名做哈希处理,得到目标域名标识。再然后,生成携带有该目标域名标识的第一报文,并向用户网关发送第一报文。
87.第一报文可以如图3中的报文

示出的形式,源地址为用户终端的ip地址,目的地址为用户网关的ip地址,第一报文中携带有目标域名标识。该第一报文可以是终端设备发送的首包。
88.步骤202,在映射表中查询与目标域名标识匹配的目标布隆向量对应的目标地址。
89.其中,目标布隆向量包括一个或多个域名标识的信息,一个或多个域名标识包括目标域名标识,映射表为布隆向量(bloomfilter)和地址的映射表,映射表的形式可以如表1所示。在映射表中,可以是每个布隆向量对应不同的地址,也可以存在多个不同的布隆向量对应同一地址,本技术对此不做限定。
90.表1
[0091][0092]
布隆向量中包括一个或多个域名标识的信息,该一个或多个域名标识对应同一地址。映射表中的地址可以为网络互连协议(internet protocol,ip)地址。
[0093]
目标域名标识匹配的目标布隆向量是指包括目标域名标识的信息的布隆向量。
[0094]
布隆向量中包括一个或多个域名标识的信息,可以理解为该一个或多个域名标识插入到了该布隆向量中,或,该布隆向量是基于初始布隆向量和该一个或多个域名标识生成的。
[0095]
初始布隆向量和布隆向量均为布隆过滤器中的二进制向量,在布隆过滤器中包括一系列的哈希函数和一个二进制向量。初始布隆向量中的所有比特位的值均为0,布隆向量中有的比特位的值被置位为1。下面对布隆向量的生成过程进行介绍:
[0096]
对一个或多个域名标识分别进行哈希处理,得到多个比特位。然后,将初始布隆向量中的该多个比特位的0置为1,则得到布隆向量。需要说明的是,上述进行哈希处理时使用的哈希函数可以为单个哈希函数,也可以为一系列哈希函数,本技术对此不做限定。还需要说明的是,域名标识可以就是经过哈希处理后得到的比特位,则在这种情况下,可以直接将初始布隆向量中,域名标识指示的比特位的0置为1,无需再对域名标识进行哈希处理。
[0097]
另外,在查询布隆向量中是否包括有域名标识的信息时,需要对域名标识使用同样的哈希函数做哈希处理,确定多个比特位。然后,查询布隆向量中在上述多个比特位的值是否为1,如果均为1,则说明布隆向量中包括该域名标识的信息,如果不均为1,则说明布隆向量中不包括该域名标识的信息。需要说明的是,如果域名标识就是经过哈希处理后得到的比特位,则直接查询布隆向量中,域名标识指示的比特位是否为1,无需再对域名标识进
行哈希处理。
[0098]
本技术实施例所示的方案,在查询映射表时,用户网关对目标域名标识做哈希处理得到多个比特位。在映射表中查找该多个比特位均为1的布隆向量,则该布隆向量即为与目标域名标识匹配的目标布隆向量,目标布隆向量对应的地址即为要查找的目标地址。
[0099]
映射表是由用户网关生成的,用户网关可以通过以下方法生成映射表:
[0100]
(1)接收通告报文,通告报文中携带有布隆向量和布隆向量对应的地址,布隆向量包括一个或多个域名标识的信息。将布隆向量和布隆向量对应的地址,添加到映射表中。
[0101]
其中,该通告报文的形式可以如表2所示,通告报文是由服务网关向用户网关发送的,通告报文中携带有布隆向量和对应的地址。该通告报文可以为bgp协议报文,也可以为自定义的私有协议报文。
[0102]
表2
[0103]
ip包头地址 布隆向量
[0104]
用户网关在接收到通告报文之后,将通告报文中携带的布隆向量和对应的地址添加到映射表中。
[0105]
(2)接收通告报文,通告报文中携带有一个或多个域名标识和该一个或多个域名标识对应的地址。基于初始布隆向量和该一个或多个域名标识,生成布隆向量。将布隆向量和布隆向量对应的地址,添加到映射表中。
[0106]
其中,该通告报文的形式可以如表3所示,通告报文中携带有域名标识和对应的地址。
[0107]
表3
[0108]
ip包头地址 域名标识
[0109]
用户网关接收到携带有域名标识和对应的地址的通告报文后,先根据初始布隆向量和域名标识生成布隆向量,然后,将布隆向量和对应的地址添加到映射表中。
[0110]
需要说明的是,在一种可能的实现方式中,对应同一地址的多个域名标识,可以插入到同一初始布隆向量中,得到一个布隆向量。在另一种可能的实现方式中,为了避免布隆向量包括的域名标识的信息的数量过大,对于对应同一地址的多个域名标识,可以插入到多个初始布隆向量中,得到多个布隆向量。在这种情况下,生成的映射表中,多个布隆向量可以对应同一地址。
[0111]
步骤403,基于第一报文和目标地址,生成目的地址为目标地址的第二报文。
[0112]
在生成第二报文时,可以是将第一报文中的目的地址修改为目标地址得到第二报文。如图3所示,第二报文可以为报文

,第二报文的源地址为用户终端的ip地址,目标地址为服务网关1的ip地址,第二报文中还携带有域名标识。
[0113]
步骤404,发送第二报文。
[0114]
在生成第二报文之后,即可以向目的地址发送该第二报文。
[0115]
服务网关接收到第二报文之后,可以将第二报文中的目的地址修改为目标域名标识,得到第三报文。并向目标域名标识对应的服务器发送第三报文。
[0116]
或者,也可以在服务网关和目标域名标识对应的服务器之间建立隧道,用于传输报文。
[0117]
服务器接收到报文后,会向终端设备返回服务器所在的ip地址。终端设备获取到
该ip地址之后,可以将该ip地址作为后续生成的报文的目的地址,从而,终端设备后续发送的报文无需经过上述在用户网关上的查表过程。
[0118]
本技术实施例还提供了配置映射表的方法,该方法可以用于配置上述用户网关中存储的映射表,该方法可以由服务网关或服务器实现,下面,对配置映射表的方法进行说明:
[0119]
本技术实施例提供了一种配置映射表的方法,如图4所示,该方法由服务网关并结合用户网关实现,可以用于配置上述实施例中涉及到的映射表。内容可以如下:
[0120]
步骤401,基于初始布隆向量和一个或多个域名标识,生成布隆向量。
[0121]
本技术实施例所示的方案,在一种可能的实现方式中,对于对应同一地址的多个域名标识,可以插入到一个初始布隆向量中,得到一个布隆向量。
[0122]
在另一种可能的实现方式中,为了避免布隆向量包括的域名标识的信息的数量过大,对于对应同一地址的多个域名标识,可以插入到多个初始布隆向量中,得到多个布隆向量。在这种情况下,用户网关生成的映射表中,多个布隆向量可以对应同一地址。
[0123]
步骤402,生成携带有布隆向量和本地地址的通告报文,向用户网关发送通告报文。
[0124]
其中,布隆向量和本地地址对应。
[0125]
本技术实施例所示的方案,用户网关在接收到通告报文之后,将通告报文中的布隆向量和本地地址添加到映射表中。
[0126]
本技术实施例提供了另一种配置映射表的方法,如图5所示,该方法可以由服务系统中的服务器执行,该服务器可以为管理服务器,内容可以如下:
[0127]
步骤501,基于初始布隆向量和一个或多个域名标识,生成布隆向量。
[0128]
本技术实施例所示的方案,在一种可能的实现方式中,对于对应同一地址的多个域名标识,可以插入到一个初始布隆向量中,得到一个布隆向量。
[0129]
在另一种可能的实现方式中,为了避免布隆向量包括的域名标识的信息的数量过大,对于对应同一地址的多个域名标识,可以插入到多个初始布隆向量中,得到多个布隆向量。在这种情况下,用户网关生成的映射表中,多个布隆向量可以对应同一地址。
[0130]
步骤502,向服务网关发送布隆向量,以使服务网关生成携带有布隆向量和服务网关的地址的通告报文,并向用户网关发送通告报文。
[0131]
本技术实施例所示的方案,服务网关接收到布隆向量之后,根据接收到的布隆向量和本地地址,生成携带有布隆向量和本地地址的通告报文,并向用户网关发送通告报文。
[0132]
用户网关在接收到通告报文后,获得通告报文中携带的布隆向量和对应的地址,然后,将布隆向量和地址添加到映射表中。
[0133]
对于上述任一项携带有布隆向量和对应的地址的通告报文,下面提供一种可能的实现形式:
[0134]
通告报文可以为bgp协议报文中的updata报文,该updata报文中携带有布隆向量。其中,bgp协议报文中的update报文用于通告路由。update报文的path attributes字段用于携带要更新的路由的属性,update报文的path attributes字段采用tlv格式,每一种属性单元包括属性类型(attr.type),属性长度(attr.length),属性值(attr.vaule(variable))三个部分,如表4所示。
[0135]
表4
[0136]
attr.typeattr.lengthattr.vaule(variable)
[0137]
其中,attr.type占2个字节,包括1字节的attr.flags和1字节的attr.type code,如表5所示。
[0138]
表5
[0139]
attr.flagsattr.type code
[0140]
本技术实施例提供的通告报文中定义一种新的attr.type code,用于标识path attributes中携带了布隆向量,并且将布隆向量放入attr.vaule字段。
[0141]
这样,用户网关节点在接收到来update报文之后,可以获取到path attributes字段中携带的布隆向量,用于生成映射表。
[0142]
本技术实施例通过扩展现有的bgp报文携带布隆向量和地址,从而,部署代价小,无需全网设备更新,只需网关设备能够建立布隆向量与ip地址的映射关系,能够以较小的代价实现本技术实施例提供的技术方案。
[0143]
以上介绍了本技术实施例示出的传输报文的方法以及配置映射表的方法,以下介绍本技术实施例的传输报文的装置以及配置映射表的装置,以下介绍的传输报文的装置以及配置映射表的装置可实现上述任一项传输报文的方法或配置映射表的方法中的任意功能。
[0144]
图6是本技术实施例提供的一种传输报文的装置的结构示意图,该传输报文的装置可以位于服务系统中的用户网关中,如图6所示,该传输报文的装置包括:
[0145]
接收模块601,用于接收第一报文,第一报文中携带有目标域名标识;
[0146]
查询模块602,用于在映射表中查询与目标域名标识匹配的目标布隆向量对应的目标地址,其中,目标布隆向量包括一个或多个域名标识的信息,该一个或多个域名标识包括目标域名标识,映射表为布隆向量和地址的映射表;
[0147]
生成模块603,用于基于第一报文和目标地址,生成目的地址为目标地址的第二报文;
[0148]
发送模块604,用于发送第二报文。
[0149]
在一种可能的实现方式中,接收模块601,还用于接收通告报文,通告报文中携带有布隆向量和布隆向量对应的地址,布隆向量包括一个或多个域名标识的信息;
[0150]
该装置还包括添加模块,添加模块用于将布隆向量和布隆向量对应的地址,添加到映射表中。
[0151]
在一种可能的实现方式中,接收模块601,还用于接收通告报文,通告报文中携带有一个或多个域名标识和该一个或多个域名标识对应的地址;
[0152]
生成模块603,还用于基于初始布隆向量和一个或多个域名标识,生成布隆向量;
[0153]
该装置还包括添加模块,添加模块用于将布隆向量和布隆向量对应的地址,添加到映射表中。
[0154]
在一种可能的实现方式中,在生成第二报文时,生成模块603,用于将第一报文中的目的地址修改为目标地址得到第二报文。
[0155]
需要说明的是,上述接收模块601、查询模块602、生成模块603、发送模块604和添加模块可以由处理器实现,或者处理器配合存储器来实现,或者,处理器执行存储器中的程
序指令来实现。
[0156]
传输报文的装置在传输报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将传输报文的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的传输报文的装置与传输报文的方法属于同一构思,其具体实现过程详见对应的方法部分,这里不再赘述。
[0157]
图7是本技术实施例提供的一种配置映射表的装置的结构示意图,该配置映射表的装置可以位于服务系统中的服务网关中,如图7所示,该配置映射表的装置包括:
[0158]
生成模块701,用于基于初始布隆向量和一个或多个域名标识,生成布隆向量;
[0159]
生成模块701,还用于生成携带有布隆向量和本地地址的通告报文;
[0160]
发送模块702,用于向用户网关发送通告报文。
[0161]
需要说明的是,上述生成模块701和发送模块702可以由处理器实现,或者处理器配合存储器来实现,或者,处理器执行存储器中的程序指令来实现。
[0162]
配置映射表的装置在配置映射表时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将配置映射表的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置映射表的装置与图4示出的配置映射表的方法属于同一构思,其具体实现过程详见对应的方法部分,这里不再赘述。
[0163]
图8是本技术实施例提供的一种配置映射表的装置的结构示意图,该配置映射表的装置可以位于服务系统中的服务器中,如图8所示,该配置映射表的装置包括:
[0164]
生成模块801,用于基于初始布隆向量和一个或多个域名标识,生成布隆向量;
[0165]
发送模块802,用于向服务网关发送布隆向量,以使服务网关生成携带有布隆向量和服务网关的地址的通告报文,并向用户网关发送通告报文。
[0166]
需要说明的是,上述生成模块801和发送模块802可以由处理器实现,或者处理器配合存储器来实现,或者,处理器执行存储器中的程序指令来实现。
[0167]
配置映射表的装置在配置映射表时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将配置映射表的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置映射表的装置与图5示出的配置映射表的方法属于同一构思,其具体实现过程详见对应的方法部分,这里不再赘述。
[0168]
与本技术提供的方法实施例以及虚拟装置实施例相对应,本技术实施例还提供了一种网络设备,下面对网络设备的硬件结构进行介绍。
[0169]
下面描述的网络设备900或网络设备1000对应于上述方法实施例中的用户网关或服务网关,网络设备900或网络设备1000中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中的用户网关或服务网关所实施的各种步骤和方法,关于网络设备900或网络设备1000具体实现的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,上文方法的各步骤通过网络设备900或网络设备1000处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块
可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述
[0170]
网络设备900或网络设备1000对应于上述虚拟装置实施例中的传输报文的装置或如图7所示的配置映射表的装置,传输报文的装置或如图7所示的配置映射表的装置中的每个功能模块采用网络设备900或网络设备1000的软件实现。换句话说,传输报文的装置或如图7所示的配置映射表的装置包括的功能模块为网络设备900或网络设备1000的处理器读取存储器中存储的程序代码后生成的。
[0171]
参见图9,图9示出了本技术一个示例性实施例提供的网络设备900的结构示意图,该网络设备900可以配置为用户网关或服务网关。该网络设备900可以由一般性的总线体系结构来实现。
[0172]
网络设备900包括至少一个处理器901、通信总线902、存储器903以及至少一个通信接口904。
[0173]
处理器901可以是一个通用cpu、np、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
[0174]
通信总线902用于在上述组件之间传送信息。通信总线902可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0175]
存储器903可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器903可以是独立存在,并通过通信总线902与处理器901相连接。存储器903也可以和处理器901集成在一起。
[0176]
通信接口904使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口904包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
[0177]
在具体实现中,作为一种实施例,处理器901可以包括一个或多个cpu,如图9中所示的cpu0和cpu1。
[0178]
在具体实现中,作为一种实施例,网络设备900可以包括多个处理器,如图9中所示的处理器901和处理器905。这些处理器中的每一个可以是一个单核处理器(single-cpu),
也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
[0179]
在具体实现中,作为一种实施例,网络设备900还可以包括输出设备906和输入设备907。输出设备906和处理器901通信,可以以多种方式来显示信息。例如,输出设备906可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备907和处理器901通信,可以以多种方式接收用户的输入。例如,输入设备907可以是鼠标、键盘、触摸屏设备或传感设备等。
[0180]
在一些实施例中,存储器903用于存储执行本技术方案的程序代码910,处理器901可以执行存储器903中存储的程序代码910。也即是,网络设备900可以通过处理器901以及存储器903中的程序代码910,来实现方法实施例提供的传输报文的方法或配置映射表的方法。
[0181]
本技术实施例的网络设备900可对应于上述各个方法实施例中的用户网关或服务网关,并且,该网络设备900中的处理器901、通信接口904等可以实现上述各个方法实施例中的用户网关或服务网关所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
[0182]
传输报文的装置中的接收模块601和发送模块604相当于网络设备900中的通信接口904;传输报文的装置中的查询模块602、生成模块603和添加模块可以相当于网络设备900中的处理器901。
[0183]
如图7所示的配置映射表的装置中的发送模块702相当于网络设备900中的通信接口904;生成模块701可以相当于网络设备900中的处理器901。
[0184]
参见图10,图10示出了本技术一个示例性实施例提供的网络设备1000的结构示意图,该网络设备1000可以配置为用户网关或服务网关。网络设备1000包括:主控板1010和接口板1030。
[0185]
主控板1010也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板1010用于对网络设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
[0186]
接口板1030也称为线路接口单元卡(line processing unit,lpu)、线卡(line card)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、pos(packet over sonet/sdh)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,flexe clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(physical interface card,pic)1033。
[0187]
接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
[0188]
网络处理器1032用于实现报文的转发处理。网络处理器1032的形态可以是转发芯片。具体而言,网络处理器1032用于基于转发表项存储器1034保存的转发表转发接收到的报文,如果报文的目的地址为网络设备1000的地址,则将该报文上送至cpu(如中央处理器
1011)处理;如果报文的目的地址不是网络设备1000的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理,转发表查找等等。
[0189]
物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,中央处理器也可执行网络处理器1032的功能,比如基于通用cpu实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
[0190]
可选地,网络设备1000包括多个接口板,例如网络设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
[0191]
可选地,网络设备1000还包括交换网板1020。交换网板1020也可以称为交换网板单元(switch fabric unit,sfu)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间可以通过交换网板1020通信。
[0192]
主控板1010和接口板1030耦合。例如。主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,ipc)通道,主控板1010和接口板1030之间通过ipc通道进行通信。
[0193]
在逻辑上,网络设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1034中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
[0194]
如果网络设备1000被配置为用户网关,物理接口卡1033接收第一报文,发送给网络处理器1032,网络处理器1032根据第一报文中携带的域名标识,在映射表中查询目标地址,并生成目的地址为目标地址的第二报文,根据出接口等信息,在完成链路层封装后,将第二报文从物理接口卡1033发送出去,使得第二报文传输至服务网关。
[0195]
如果网络设备1000被配置为服务网关,网络处理器1032物理接口卡1033接收ipv6报文,发送给网络处理器1032,网络处理器1032从所述ipv6扩展头中,获得所述epg信息;按照所述epg信息对应的组策略,对所述ipv6报文进行处理。
[0196]
传输报文的装置中的接收模块601和发送模块604相当于网络设备1000中的物理接口卡1033;传输报文的装置中的查询模块602、生成模块603和添加模块可以相当于网络处理器1032或中央处理器1011。
[0197]
如图7所示的配置映射表的装置中的发送模块702相当于网络设备1000中的物理接口卡1033;生成模块701可以相当于网络处理器1032或中央处理器1011。
[0198]
本技术实施例中接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。本实施例的网络设备1000可对应于上述各个方法实施例中的用户网关或服务网关,该网络设备1000中的主控板1010、接口板1030和/或1040可以实现上述各个方法实施例中的用户网关或服务网关所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
[0199]
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
[0200]
另外,网络设备还可以为服务器,该服务器可以包括如图8所示的配置映射表的装置,如图11所示,该服务器包括处理器1101和存储器1102,存储器1102存储有一个或多个程序,该一个或多个程序被配置成由处理器1101执行,用于实现如图5所示的配置映射表的方法。
[0201]
在一些可能的实施例中,上述用户网关或服务网关或服务器可以实现为虚拟化设备。
[0202]
例如,虚拟化设备可以是运行有用于传输报文功能或配置映射表功能的程序的虚拟机(英文:virtual machine,vm),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。可以将虚拟机配置为用户网关或服务网关或服务器。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,nfv)技术来实现用户网关或服务网关或服务器。用户网关或服务网关或服务器为虚拟主机、虚拟路由器或虚拟交换机或虚拟服务器。本领域技术人员通过阅读本技术即可结合nfv技术在通用物理服务器上虚拟出具有上述功能的用户网关或服务网关或服务器。此处不再赘述。
[0203]
例如,虚拟化设备可以是容器,容器是一种用于提供隔离的虚拟化环境的实体,例如,容器可以是docker容器。可以将容器配置为用户网关或服务网关或服务器。例如,可以通过对应的镜像来创建出用户网关或服务网关或服务器,例如可以通过proxy-container(提供代理服务的容器)的镜像,为proxy-container创建2个容器实例,分别是容器实例proxy-container1、容器实例proxy-container2,将容器实例proxy-container1提供为用户网关,将容器实例proxy-container2提供为服务网关。采用容器技术实现时,用户网关或服务网关或服务器可以利用物理机的内核运行,多个用户网关或服务网关或服务器可以共享物理机的操作系统。通过容器技术可以将不同的用户网关或服务网关或服务器隔离开来。容器化的用户网关或服务网关或服务器可以在虚拟化的环境中运行,例如可以在虚拟
机中运行,容器化的用户网关或服务网关或服务器可也可以直接在物理机中运行。
[0204]
例如,虚拟化设备可以是pod,pod是kubernetes(kubernetes是谷歌开源的一种容器编排引擎,英文简称为k8s)为部署、管理、编排容器化应用的基本单位。pod可以包括一个或多个容器。同一个pod中的每个容器通常部署在同一主机上,因此同一个pod中的每个容器可以通过该主机进行通信,并且可以共享该主机的存储资源和网络资源。可以将pod配置为用户网关或服务网关或服务器。例如,具体地,可以指令容器即服务(英文全称:container as a service,英文简称:caas,是一种基于容器的paas服务)来创建pod,将pod提供为用户网关或服务网关或服务器。
[0205]
当然,用户网关或服务网关或服务器还可以是其他虚拟化设备,在此不做一一列举。
[0206]
在一些可能的实施例中,上述用户网关或服务网关或服务器也可以由通用处理器来实现。例如,该通用处理器的形态可以是一种芯片。具体地,实现用户网关或服务网关的通用处理器包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口,该处理电路用于通过输入接口执行上述各个方法实施例中的报文、映射表、布隆向量的生成步骤,以及映射表的查询步骤,该处理电路用于通过输入接口执行上述各个方法实施例中的接收步骤,该处理电路用于通过输出接口执行上述各个方法实施例中的发送步骤。可选地,该通用处理器还可以包括存储介质,该处理电路用于通过存储介质执行上述各个方法实施例中的存储步骤。存储介质可以存储处理电路执行的指令,该处理电路用于执行存储介质存储的指令以执行上述各个方法实施例。
[0207]
本技术实施例提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得该网络设备执行上述方法实施例中的任一项所述的方法。
[0208]
上述各种产品形态的网络设备,分别具有上述方法实施例中用户网关或服务网关或服务器的任意功能,此处不再赘述。
[0209]
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0210]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
[0211]
在本技术所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0212]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网
络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
[0213]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0214]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例中方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0215]
以上描述,仅为本技术的可选实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献