背景技术
VPN(Virtual Private Network,虚拟专用网络)被定义为通过公用网络(通常是因特网)建立临时的、安全的连接,是一条穿过公用网络的安全、稳定隧道。VPN可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
SSL(Secure Sockets Layer,安全套接层)是一套Internet数据安全协议,被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,通过加密方式保护在Internet上传输的数据安全性。
SSL VPN是一种采用SSL加密连接实现远程访问的VPN技术。SSL VPN的功能如图1所示。其中,远程主机与SSL VPN网关之间建立SSL连接,以加密方式在Internet上传送报文(SSL数据);而SSL VPN网关终结了SSL连接,SSL VPN网关通过与内网的服务器(Server1,Server2)建立TCP(Transmission Control Protocol,传输控制协议)连接(TCP/WEB接入方式)或者通过直接IP转发(IP接入方式),以明文方式传送远程主机发来的请求,并将服务器(Server1,Server2)的应答通过SSL连接发给远程主机。
SSL VPN网关通常采用集群技术。SSL VPN网关集群也即同时有多个SSLVPN网关提供接入服务,这多个SSL VPN网关以某种负载分担方式各承担部分SSL VPN用户的接入处理,并且当任何一个SSL VPN出现故障被去掉或者新加入一个SSL VPN网关时,使终端用户使用SSL VPN不受影响。
实现SSL VPN网关集群的方案,一般是通过负载均衡器(LB)来配合实现,典型的实现方案如图2所示,其中,所有的SSL数据通过负载均衡器(图中的LB_1)根据某种负载均衡算法分发给相应SSL VPN网关,反之,服务器(Server1或Server2)返回的响应数据则通过LB_2分发给请求数据所经过的SSL VPN网关。其中,LB_1主要负责请求报文的分发,LB_2则实现响应报文的分发。对于只有2个SSL VPN网关的组网,还可以通过双机热备的A/A模式实现集群功能。
发明人在实现本发明的过程中,发现现有SSL VPN网关集群技术至少存在以下问题:
SSL VPN网关集群方案需要增加负载均衡器(LB),这样带来的主要问题有:
(1)成本提高:SSL VPN网关负载均衡的组网方案需要使用三明治组网,也即最少需要部署2套负载均衡器来实现。
(2)性能会有瓶颈:实现SSL VPN集群的目的除了增强网络可靠性,还有一个重要目的就是提高SSL VPN网关的处理能力。而通过增加负载均衡器的方案来实现,则该组网中可能出现因负载均衡器性能不足而出现新的性能瓶颈,导致整个SSL VPN集群性能不能充分发挥出来。
另外,对于只有2个SSL VPN网关的组网,如果通过双机热备的A/A模式实现集群功能,则2个SSL VPN网关需要互相备份会话信息,这样也加重了SSL VPN网关处理性能,导致最大并发连接等关键性能指标很低。
由此可见,现有SSL VPN网关集群技术需要额外使用负载均衡器,并且系统性能有待提高。
发明内容
本发明提供了一种基于SSL VPN网关集群的用户接入方法及其装置,用以解决现有技术中因在SSL VPN网关集群中使用负载均衡器导致的系统性能低的问题。
本发明提供的基于SSL VPN网关集群的用户接入方法,其中,所述SSLVPN网关集群中的各网关启用了VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的集群优先级、当前状态和当前用户连接数,该方法包括:
SSL VPN网关集群中的网关通过周期执行的基于集群优先级的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的当前状态和当前用户连接数;
当SSL VPN网关集群中的主网关接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求,并判断当前还没有网关处理源IP地址为该SSL接入请求的源IP地址的接入请求的情况下,根据集群邻居表项中各网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;
如果选择出的网关为主网关自己,则主网关处理所述SSL接入请求;如果选择出的网关为邻居网关,则主网关将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。
本发明提供的网关设备,应用于SSL VPN网关集群,该网关设备启用了VRRP,并配置有集群邻居表项,所述集群邻居表项中包含有各邻居网关的集群优先级、当前状态和当前用户连接数,该网关设备包括:
表项处理模块,用于通过周期执行的基于集群优先级的集群邻居探测过程,维护集群邻居表项中各邻居网关的当前状态和当前用户连接数;
判断模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,在接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求后,判断当前是否有网关处理源IP地址为所述SSL接入请求的源IP地址的接入请求;
负载均衡模块,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,并且在所述判断模块判断为否时,根据集群邻居表项中各网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;
数据处理模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为主网关自己时,处理所述SSL接入请求;
第一重定向模块,用于在本设备为主网关并且所述负载均衡模块选择出的网关为邻居网关时,将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理。
本发明的有益技术效果:
本发明通过在SSL VPN网关集群中的各网关上启用VRRP协议,并配置和维护集群邻居表项,以记录各邻居网关的实际负载情况,当集群内的主网关接收到发往VRRP虚地址的SSL接入请求后,可根据集群邻居表项选择负载轻的网关处理该接入请求,从而无需在SSL VPN网关集群中引入负载均衡器就能够在集群内实现负载均衡,进而与现有技术相比节省了成本、避免了因负载均衡器导致的系统性能瓶颈。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
参见图3,为本发明实施例中的SSL VPN网关集群方案组网示意图。图中的2个SSL VPN网关采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)组成网关集群。图3中仅示出了2个SSL VPN网关,但本发明实施例的SSLVPN网关集群方案组网中的SSLVPN网关数量并不仅限于2个。
SSL VPN网关集群中的每个SSL VPN网关都进行如下配置:
(1)每个SSL VPN网关都对外、对内提供不同的IP地址;即,每个网关对内部网络(服务器侧)使用私网IP地址,对外部网络(用户侧)使用公网IP地址;
(2)每个SSL VPN网关配置相同的VRRP虚地址;
(3)每个SSL VPN网关配置不同的集群优先级(也即VRRP优先级),优先级取值范围0~255,值越大则优先级越高;
(4)每个SSL VPN网关配置响应的探测周期时长及重试次数,用于对邻居网关进行定期探测;
(5)每个SSL VPN网关上配置所有邻居网关,也即集群中的其他SSLVPN网关的相关信息。邻居网关的相关信息中主要包括:邻居网关的标识信息(如IP地址和端口号)、状态信息(如可达状态和不可达状态),以及负载信息(如所支持的最大用户连接数和当前的用户连接数)等。其中,部分信息可通过静态方式配置,其配置信息在初始配置完成后基本不会改变,部分信息可在系统运行过程中动态配置或/和更新。邻居网关的相关信息可采用集群邻居表项的方式存储,其中每个邻居网关的主要配置项可如表1所示。
表1、SSL VPN网关集群邻居属性表
其中的静态配置项可通过手工配置等静态方式配置到该表中,动态配置项可在系统运行过程中完成配置或/和更新。
由于编号为1~3(“邻居网关IP地址”、“邻居网关端口号”和“邻居网关集群优先级”)的表项通常无法通过报文探测得到,因此这些配置项可采用静态配置方式。其中,对于编号为3(“邻居网关集群优先级”)的表项,也可采用动态配置方式,例如可通过一轮次的协商过程完成该表项的配置,具体的,一网关向集群中的所有其他网关发送组播报文,其中携带自己的集群优先级,以使接收到该组播报文的网关配置集群邻居表项中该组播报文发送方网关的集群优先级,并返回响应报文,其中携带响应报文发送方网关的集群优先级,该组播报文发送方网关根据各网关返回的响应报文中携带的邻居网关集群优先级,配置集群邻居表项中该邻居网关的集群优先级。对于表1中编号为4(“邻居节点探测周期时间”)、5(“邻居节点重试次数”)或8(“最大连接数”)的表项,可用静态配置方式配置,如当集群中采用同一类型和型号的网关设备时,其设备参数相同,因此可统一采用静态方式配置,这样可以节省探测报文所携带的数据量,从而节省网络资源。当然,这些表项也可以采用动态配置方式,这样可以提高系统灵活性。由于编号为6(“状态”)和7(“当前用户连接数”)的配置项,有可能根据系统运行情况实时变化,因此需要在系统运行过程中完成配置或/和更新。
本发明实施例中,SSL VPN网关集群中的每个网关上启用VRRP协议并配置相同的VRRP虚地址,根据VRRP协议,SSL VPN网关集群中的各网关可通过选举策略选举出Master(主)网关,其他网关则作为Backup(备份)网关。SSL VPN网关集群中当前仅有一个Master网关,负责对集群的控制和管理,本发明实施例中,该Master网关还负责负载均衡处理。
SSL VPN网关集群中的网关配置好集群邻居表项中的静态配置项后,立即向集群优先级比自己低的邻居网关发送探测报文,该探测报文可以是UDP(User Datagram Protocol,用户数据包协议)报文,报文中包含了发送方网关的相关信息;邻居网关收到该探测报文后,根据该探测报文中携带的网关信息配置或更新其相应的集群邻居表项(其中“状态”配置项可在收到探测报文后设置为可达“active”),并回应响应报文;接收到该响应报文的网关根据该响应报文中携带的网关信息配置或更新其相应的集群邻居表项(其中“状态”配置项可在收到响应报文后设置为可达“active”)。探测报文与响应报文可以是单播报文,报文中携带的发送方网关的相关信息即为需要邻居网关动态配置的配置项,其中至少包括“当前用户连接数”信息。在动态生成项还包括其它表项的情况下,探测报文和响应报文中还需要携带发送方网关的相应配置项的配置信息,例如,动态生成项还包括“邻居网关重试次数”,则探测报文和响应报文中还需要携带发送方网关的“邻居网关重试次数”信息。
图4示出了一种SSL VPN网关集群邻居探测示意图,该网络架构是由3个SSL VPN网关组成的集群网络。其中,地址为10.154.0.10的网关主动向优先级更低的邻居网关发探测报文(图中箭头a1、a2所示),收到探测报文的网关返回相应的响应报文(图中箭头b1、b2所示)。通过一轮次的探测,集群邻居表项就全部建立起来了,后续会根据所配置的探测周期定期再发送这类探测报文,从而实现集群邻居表项的更新。
在集群邻居探测过程中,如果高优先级的网关向低优先级的网关发送探测报文后,在连续数个探测周期(即该高优先级的探测报文发送方网关的“发送周期”ד重试次数”个探测周期)均未收到低优先级的网关返回的响应报文,则将其集群邻居表项中该低优先级的网关的状态配置项设置为不可达(Inactive),并可进一步将清除其它动态配置项(如“当前用户连接数”配置项)中的内容。同理,低优先级的网关会等待高优先级的网关发送的探测报文,如果该低优先级的网关在连续数个探测周期(即集群邻居表项中该高优先级网关的“发送周期”ד重试次数”个探测周期)均未收到高优先级的网关发送的探测报文,则将其集群邻居表项中该高优先级的网关的状态配置项设置为不可达(Inactive),并可进一步将清除其它动态配置项(如“当前用户连接数”配置项)中的内容。
如果SSL VPN网关集群中有网关退出,则会触发每个SSL VPN网关重新刷新集群邻居表项。具体的,根据上述集群邻居探测过程,当集群中有网关出现故障后,一方面,比故障网关优先级高的网关会定期给包括该故障网关在内的低优先级网关发送探测报文,且会等待低优先级网关的响应报文,若优先级比故障网关高的网关在连接数个探测周期收不到该故障网关的回应报文(故障网关不会回应探测报文),则将其集群邻居表项中该故障网关的状态更新为不可达(Inactive),并可进一步将清除其它动态配置项内容;另一方面,比故障网关优先级低的网关会等待包括故障网关在内的高优先级邻居网关发送探测报文,若比故障网关优先级低的网关在连续数个探测周期依然收不到故障网关发送的探测报文(故障网关不会发送探测报文),则将其集群邻居表项中该故障网关的状态更新为不可达(Inactive),并可进一步将清除其它动态配置项内容。
如果SSL VPN网关集群中有网关加入,也会触发每个SSL VPN网关刷新邻居表项。具体的,可先在集群中各网关的集群邻居表项中配置需要新加入的网关的静态配置项(如果是原故障网关恢复后加入,则不用执行该配置过程,因为该网关的相关静态配置项已经存在于各网关的集群邻居表项中),当新网关加入或者集群中原故障网关修复后重新加入集群时,新加入的网关会主动向集群内所有网关以组播形式发送声明报文,以声明加入集群,该声明报文的内容可包括本网关的相关信息;每个收到该声明报文的网关根据接收到的声明报文配置其集群邻居表项中该新加入邻居网关的相应集群邻居表项(其中“状态”配置项可在收到声明报文后设置为可达“active”),并以单播方式回应响应报文,响应报文的内容可包括发送方网关的相关信息;该新加入的网关根据接收到的响应报文中携带的发送方网关的相关信息,配置本网关集群邻居表项中相应邻居网关的相应集群邻居表项(其中“状态”配置项可在收到响应报文后设置为可达“active”)。声明报文与响应报文中携带的发送方网关的相关信息即为需要邻居网关动态配置的配置项,其中至少包括“当前用户连接数”信息。在动态生成项还包括其它表项的情况下,声明报文和响应报文中还需要携带发送方网关的相应配置信息。
基于SSL VPN集群中各网关上配置和维护的集群邻居表项,本发明实施例提供的用户接入流程可如图5所示。如图所示,该流程可包括:
步骤501,用户终端(远程主机)向SSL VPN网关集群虚地址发送SSL接入请求。
步骤502,SSL VPN网关集群中的Master网关接收到该SSL接入请求后,判断该源IP地址的请求是否已经由集群内的网关处理,如果是,则转入步骤503;否则,转入步骤504。
其中,Master网关在基于集群邻居表项进行负载分担后,会记录SSL数据报文的源IP地址与实际处理该报文的网关地址的对应关系,这样,Master网关在收到用户终端向SSL VPN网关集群虚地址发送的SSL接入请求之后,就可以根据记录的对应关系获知该报文的源IP地址是否已经对应有网关地址,若有,则表明该SSL接入请求是通过已建立的某个SSL连接发来的报文,需要由处理该连接的网关进行处理。
步骤503,Master网关将该用户终端重定向到处理该源IP地址报文的网关进行处理,其中,如果处理该源IP地址报文的网关是Master网关自己,则Master网关无需重定向用户终端,而是自己处理该报文。
该步骤中的重定向过程包括:Master网关将目标网关(即处理该源IP地址报文的网关)的地址信息发送给用户终端,以使用户终端向该目标网关地址发起SSL接入请求,这样目标网关就可以处理该SSL接入请求了。相应网关在处理SSL接入请求时,解密SSL数据,并将解密后的数据转发到内网服务器。
步骤504,Master网关根据集群邻居表项查找当前负载较轻且可达的网关,并将用户终端重定向到该网关进行接入处理。其中,如果选择出的网关为Master网关自己,则Master网关无需重定向用户终端,而是自己处理该报文。
其中,网关的负载程度可由该网关当前的用户连接数除以该网关的最大用户连接数表示,其值越大表明负载越大,反之,则表明负载越小。当然,在集群内的各网关的最大用户连接数相同的情况下,网关的负载程度可直接由当前用户连接数表示,其值越大表明负载越大,反之,则表明负载越小。
该步骤中的重定向过程包括:Master网关将目标网关(即选择出负载轻的网关)的地址信息发送给用户终端,以使用户终端向该目标网关地址发起SSL接入请求,这样目标网关就可以处理该SSL接入请求了。相应网关在处理SSL接入请求时,解密SSL数据,并将解密后的数据转发到内网服务器。
进一步的,还可以包括以下步骤:
步骤505,内网服务器进行相应处理后返回该SSL接入请求的响应。
该步骤中,内网服务器可根据现有机制,如NAT(Network AddressTranslation),网络地址转换)机制,确保响应报文能分发到之前请求报文所经过的SSL VPN网关。SSL VPN网关接收到该响应报文后,将响应报文加密后通过Internet转发给用户终端。
为了支持SSL VPN中的IP接入,需要在每个SSL VPN网关的内网接口上启用NAT功能,使发送到服务器上的地址为网关内网地址,服务器回应报文时,就能返回到相应的网关上。
为了更清楚地描述本发明实施例中的用户接入过程,下面结合一具体实例说明。
如图6所示,当前网络中有2个SSL VPN网关组成集群,网关公网IP地址分别为10.154.0.10、10.154.0.11,VRRP虚地址为10.154.0.1。此时,IP地址为10.154.0.10的网关为Master网关,IP地址为10.154.0.11的网关为Backup网关,并且Backup网关当前SSL连接比Master网关要少。此时一个新用户通过10.154.0.1接入,主要业务流程如下:
步骤601,用户终端向SSL VPN集群虚地址10.154.0.1发起SSL接入请求;
步骤602,IP地址为10.154.0.10的Master网关收到SSL接入请求后,通过集群邻居表项比较,发现地址10.154.0.11的网关连接数最少,故给该用户终端回应HTTP(HyperText Transfer Protocol,超文本传输协议)重定向报文,指示该用户终端重新向地址为10.154.0.11的网关发起SSL接入请求;
步骤603,用户终端重新向地址为10.154.0.11的网关发起SSL接入请求;
步骤604,地址为10.154.0.11的网关接收到该SSL接入请求后完成用户接入处理,并将用户的相应资源请求发给内网服务器。其中,地址为10.154.0.11的网关在处理完成该请求后,其当前用户连接数加一。
通过以上描述可以看出,本发明通过在SSL VPN网关集群中的各网关上启用VRRP协议,并配置和维护集群邻居表项,以记录各邻居网关的实际负载情况,当集群内的主网关接收到发往VRRP虚地址的SSL接入请求后,可根据集群邻居表项选择负载轻的网关处理该接入请求,从而无需在SSL VPN网关集群中引入负载均衡器就能够在集群内实现负载均衡,进而与现有技术相比节省了成本、避免了因负载均衡器导致的系统性能瓶颈。
基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的网关设备。
参见图7,为本发明实施例提供的网关设备的结构示意图,该网关设备应用于SSL VPN网关集群,并启用了VRRP协议,并配置有集群邻居表项,所述集群邻居表项的内容可如前所述,可包含有各邻居网关的当前状态和当前用户连接数。具体的,该网关设备可包括:
表项处理模块701,用于通过周期执行的集群邻居探测过程,维护集群邻居表项,如维护其中的各邻居网关的当前状态和当前用户连接数;具体的,表项处理模块701可通过周期执行的基于集群优先级的集群邻居探测过程,维护集群邻居表项,如维护其中的各邻居网关的当前状态和当前用户连接数;
判断模块702,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,在接收到用户终端发往SSL VPN网关集群VRRP备份组虚地址的SSL接入请求后,判断当前是否有网关处理源IP地址为所述SSL接入请求的源IP地址的接入请求;
负载均衡模块703,用于在本设备为SSL VPN网关集群中的主网关设备的情况下,并且在判断模块702判断为否时,根据集群邻居表项中各网关的当前状态和当前用户连接数,以及主网关自己的当前用户连接数,选择出负载最小且可达的网关;
数据处理模块704,用于在本设备为主网关并且负载均衡模块703选择出的网关为主网关自己时,处理所述SSL接入请求;
第一重定向模块704,用于在本设备为主网关并且负载均衡模块703选择出的网关为邻居网关时,将发起所述SSL接入请求的用户终端重定向到该邻居网关进行接入处理(具体重定向过程同前所述)。
上述网关设备中还可包括第二重定向模块705。该第二重定向模块705可用于:在本设备为SSL VPN网关集群中的主网关设备的情况下,在判断模块702判断当前已经有网关处理源IP地址为该SSL接入请求的源IP地址的接入请求且该网关不是本设备时,将发起所述SSL接入请求的用户终端重定向到该SSL接入请求的源IP地址对应的网关进行处理(具体重定向过程同前所述)。数据处理模块704还可用于:在本设备为SSL VPN网关集群中的主网关设备的情况下,在判断模块702判断当前处理该源IP地址的接入请求的网关是本设备时,处理所述SSL接入请求。
上述网关设备中,集群邻居表项中还配置有各邻居网关的最大用户连接数。相应的,负载均衡模块703可根据集群邻居表项中各邻居网关的最大用户连接数和当前的用户连接数,以及本设备的最大用户连接数和当前的用户连接数,分别计算各网关的负载,并选择其中负载最小且状态为可达的网关(具体负载计算方式同前所述)。
上述网关设备中,SSL VPN网关集群中的各网关分别有各自的集群优先级,所述集群邻居表项中还包含有各邻居网关的集群优先级。表项处理模块701可按照本设备的探测周期,根据集群邻居表项向优先级低于本设备且当前状态为可达的网关发送探测报文,其中携带有本设备当前的用户连接数,并在接收到优先级低于本设备的邻居网关设备返回的响应报文后,根据该响应报文中携带的该邻居网关设备当前的用户连接数,更新集群邻居表项中相应网关设备的当前用户连接数,并保持该相应网关设备的状态为可达;以及,在接收到优先级比本设备高的邻居网关设备发送的探测报文之后,根据该探测报文中携带的该邻居网关设备的当前用户连接数,更新集群邻居表项中相应网关设备的当前用户连接数,并保持该相应网关设备的状态为可达。
上述网关设备中,表项处理模块701还可在向优先级低于本设备的邻居网关设备发送探测报文后,未在设定时长内接收到该邻居网关设备返回的响应报文,则将集群邻居表项中该邻居网关设备的状态设置为不可达,且清除该网关当前的用户连接数;其中,设定时长为本设备的探测周期时长与重试次数的乘积;以及,未在设定时长内接收到优先级高于本设备的邻居网关设备发送的探测报文,则将集群邻居表项中该邻居网关设备的状态设置为不可达,且清除该邻居网关设备当前的用户连接数;其中,设定时长为集群邻居表项中该邻居网关设备的探测周期时长与重试次数的乘积。
上述网关设备中,表项处理模块702还可在本设备加入SSL VPN网关集群时,向SSL VPN网关集群内的所有邻居网关设备发送声明加入SSL VPN网关集群的组播报文,并接收到邻居网关返回的响应报文,根据响应报文中携带的该邻居网关设备的当前用户连接数更新本设备的集群邻居表项中该邻居网关设备的当前用户连接数,并将该邻居网关设备的状态设置为可达;以及,在接收到邻居网关设备发送的声明加入SSL VPN网关集群的报文后,将集群邻居表项中该邻居网关设备的状态设置为可达。
上述网关设备中,集群邻居表项中还包括探测报文的发送周期时长、探测报文的重试次数、最大连接数。相应的,表项处理模块701可通过周期执行的基于集群优先级的集群邻居探测过程,维护各自集群邻居表项中各邻居网关的探测报文的发送周期时长、探测报文的重试次数、最大连接数;也可通过静态配置方式配置各自集群邻居表项中各邻居网关的探测报文的发送周期时长、探测报文的重试次数、最大连接数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。