桥接装置和控制该桥接装置的方法

文档序号:7974565阅读:207来源:国知局
专利名称:桥接装置和控制该桥接装置的方法
技术领域
本发明涉及一种桥接装置和控制该桥接装置的方法,具体地,其涉及一种用于中继从路由器向通信终端发出的数据的桥接装置,以及控制该桥接装置的方法。
背景技术
近年来,作为经由网络终端之间进行通信的协议,互联网协议第6版(IPv6)已经得到广泛使用。
在IPv6通信网络中,网络上的路由器向网络上的终端发送包含路由器识别信息和网络前缀的路由器广播(RA)分组。已经接收到所述RA分组的通信终端利用包含在所接收的RA分组中的网络前缀生成其自身的全球单播地址。通信终端利用所生成的全球单播地址经由发送了所述RA分组的路由器与另一网络上的通信终端进行通信(例如,参见Narten,T.E.Nordmark,and W.A.Simpson,“Neighbor Discovery for IP version 6(IPv6),RFC2461,December,1998”)。
除了上述路由器识别信息和网络前缀之外,从路由器发送出来的RA分组还包括有关用于确保所述信息的有效性的有效期(生命期(lifetime))的信息,以。路由器以有规律的时间间隔发送RA分组以更新生命期。然而,除非用新的路由器替换所述路由器或者将所述网络前缀改变为不同的值,否则,包含在RA分组中的路由器识别信息和网络前缀不发生变化。于是,在很少替换路由器或改变网络前缀的网络中,通信终端不断接收RA分组,只为了以规律的时间间隔更新所述生命期。
不希望通信终端仅为了以规律的时间间隔更新所述路由器识别信息和网络前缀的生命期就连续接收RA分组,因为,这增加了通信终端上的分组处理的负荷。对于处理能力较低的低成本通信装置而言,尤其不希望由于连续接收RA分组而引起的负荷增加,因为,这将导致传感器节点的数据处理能力降低。
此外,当网络上存在多个路由器时,所述通信终端必须接收有规律地从所述路由器发出的RA分组。这会导致通信终端的吞吐量的显著降低。
如果频繁地从路由器向网络上的通信终端发送RA分组,将会降低网络的传输效率。
因为相关技术的IPv6通信以规律的时间间隔从路由器接收RA分组,其存在增加通信终端上的负荷的问题。

发明内容
根据本发明一个方面,提供了一种桥接装置,其选择性地将从路由器发送的RA分组中继给通信终端,从而减少了所述通信终端的RA分组处理负荷。
根据本发明另一个方面,提供了一种控制所述桥接装置的方法。
根据本发明的一种实施例,提供了一种新的桥接装置,其包括存储单元,其被配置成存储与各自的生命期相关联的路由器识别信息和网络前缀信息;第一接收单元,其被配置成接收包含了所述路由器识别信息和所述网络前缀信息以及所述各自的生命期的第一路由器广播分组;更新单元,其被配置成,通过利用包含在由所述第一接收单元接收的所述第一路由器广播分组中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期,来更新存储在所述存储单元中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期;确定单元,其被配置成,关于存储在所述存储单元中的所述生命期,确定存储在所述存储单元中的所述路由器识别信息和所述网络前缀信息是否有效;生成单元,其被配置成,当所述确定单元确定,在存储在所述存储单元中的所述路由器识别信息之中,具有最高通信优先级的路由器的识别信息无效时,或者当所述确定单元确定存储在所述存储单元中的任何所述网络前缀信息无效时,生成第二路由器广播分组,所述第二路由器广播分组包含了生命期被设置为无限长的存储在所述存储单元中的有效路由器识别信息中的具有最高优先级的路由器的识别信息以及存储在所述存储单元中的有效网络前缀信息;以及发送单元,其被配置成向通信终端发送所述第二路由器广播分组。
根据本发明的另一个方面,提供了一种控制桥接装置的方法,其中所述桥接装置具有存储单元,其被配置成存储与各自的生命期相关联的路由器识别信息和网络前缀信息,以及确定单元,其被配置成,利用存储在所述存储单元中的所述生命期,来确定存储在所述存储单元中的所述路由器识别信息和所述网络前缀信息是否有效,所述方法包括接收包含了所述路由器识别信息和所述网络前缀信息以及所述各自的生命期的第一路由器广播分组;通过利用包含在所述接收的第一路由器广播分组中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期,更新存储在所述存储单元中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期;当所述确定单元确定,在存储在所述存储单元中的所述路由器识别信息中,具有最高通信优先级的路由器的识别信息无效时,或者当所述确定单元确定存储在所述存储单元中的任何所述网络前缀信息无效时,生成第二路由器广播分组,所述第二路由器广播分组包含了生命期被设置为无限长的存储在所述存储单元中的有效路由器识别信息和存储在所述存储单元中的有效网络前缀信息的具有最高优先级的路由器的识别信息;以及向通信终端发送所述生成的第二路由器广播分组。


图1是根据本发明实施例的桥接装置的框图;图2是根据本发明实施例的路由器识别信息数据库的例子的说明;图3是根据本发明实施例的网络前缀数据库的例子的说明;图4是系统图,其示出了包括根据本发明实施例的桥接装置的网络的结构的例子;
图5是根据本发明实施例的桥接装置的操作的流程图;图6是根据本发明实施例的桥接装置的操作的流程图;图7是根据本发明实施例的桥接装置的操作的流程图;图8是根据本发明实施例的桥接装置的操作的流程图;图9是系统图,其示出了包括根据本发明实施例的桥接装置的网络的结构的例子。
具体实施例方式
现在参考附图,对于全部这几幅视图,特别是对于图1而言,相似的参考数字指示相同或对应的部分,其中图1是根据本发明实施例的桥接装置100的框图。
桥接装置100包括通信部分101,用于经由网络在路由器和通信终端之间发送和接收诸如路由器广播(RA)分组或路由器请求(RS)分组的数据,数据库102,用于存储路由器识别信息(例如,路由器的IP地址,此后称为路由器识别信息)以及网络前缀,数据库更新部分103,其利用在由通信部分101接收的RA分组中包含的路由器识别信息来更新数据库102,有效性管理部分104,其管理在数据库102中存储的路由器识别信息和网络前缀的有效性,以及RA分组生成部分105,其利用在数据库102中存储的路由器识别信息来生成RA分组。
数据库102包括路由器识别信息数据库102a,其存储与其生命期相关的路由器识别信息,以及网络前缀数据库102b,其存储与其生命期相关的网络前缀。
图2示出了用于存储与其生命期相关的三条路由器识别信息的路由器识别信息数据库102a的例子。图3示出了用于存储与其生命期相关的四个网络前缀的网络前缀数据库102b的例子。在图2所示的路由器识别信息数据库102a中,路由器识别信息中的一个被选择作为用于识别具有最高通信优先级的路由器(此后,称为默认路由器)的信息(图2中的R1)。当所述默认路由器识别信息变得无效时,从有效的路由器识别信息中选出新的路由器识别信息。将选中的路由器识别信息设置为默认路由器。
由有效性管理部分104管理路由器识别信息和网络前缀的有效性。有效性管理部分104通过参考在路由器识别信息数据库102a或网络前缀数据库102b中存储的生命期来确定路由器识别信息或网络前缀是否有效,从而管理所述有效性。
更具体地,有效性管理部分104利用计时器等来减少在数据库102中存储的路由器识别信息或网络前缀的生命期,并且当生命期达到零时,其确定路由器识别信息或网络前缀已经变得无效。
可选地,当更新数据库102中的路由器识别信息或网络前缀的生命期时,有效性管理部分104存储通过在更新生命期时将生命期加入所述时刻而得到的时刻。当已经经过所存储的时刻时,有效性管理部分104能够确定路由器识别信息或网络前缀已经变得无效。
图4是系统图,其示出了包括根据本发明实施例的桥接装置100的网络的结构的例子。在图4所示的网络中,桥接装置100、路由器200、服务器300以及PC400被经由LAN相连接。作为IPv6设备的便携式计算机终端500被经由无线LAN连接到桥接装置100。
首先参考图1和5,描述在连接有便携式计算机终端500的情况下根据所述实施例的桥接装置100的操作。图5是这种情况下的桥接装置100的操作的流程图。
当便携式计算机终端500被连接到桥接装置100时,便携式计算机终端500经由无线LAN向桥接装置100发送RS分组。桥接装置100的通信部分101接收从便携式计算机终端500发送的RS分组(步骤S101)。
当桥接装置100接收RS分组时,RA分组生成部分105从路由器识别信息数据库102a读取默认路由器识别信息(图4中的R1)(步骤S102)。RA分组生成部分105进一步从网络前缀数据库102b读取所有有效的网络前缀(步骤S103)。
接下来,RA分组生成部分105生成包含所读出的路由器识别信息和网络前缀的生命期被设置为无限长的RA分组(步骤S104)。当生命期的范围受限时,则希望将所述生命期设置为最大。
将由RA分组生成部分105生成的RA分组发送到通信部分101,从该部分再将其发送到便携式计算机终端500(步骤S105)。
因而,在接收到RS分组之后,桥接装置100向便携式计算机终端500发送包含了生命期被设置为无限长的路由器识别信息和网络前缀的RA分组。因此,即使不接收从路由器有规律地发送的RA分组,利用发送的路由器识别信息和网络前缀,便携式计算机终端500也能够经由默认路由器继续与另一通信终端进行通信。
然后参考图1和6,描述在便携式计算机终端500被连接到桥接装置100之后,在桥接装置100从路由器200接收RA分组的情况下的桥接装置100的操作。图6是这种情况下的桥接装置100的操作的流程图。
桥接装置100经由通信部分101来接收从路由器200发送的RA分组(步骤S201)。
数据库更新部分103从所接收的RA分组获取路由器识别信息、网络前缀以及它们的生命期(步骤S202)。然后,数据库更新部分103更新路由器识别信息数据库102a和网络前缀数据库102b(步骤S203)。
具体地,数据库更新部分103首先分别从路由器识别信息数据库102a和网络前缀数据库102b中找到所述接收的RA分组中的路由器识别信息和网络前缀。然后,数据库更新部分103根据在所接收的RA分组中包含的生命期来更新它们的生命期。
如果没有从路由器识别信息数据库102a或网络前缀数据库102b中检测到包含在所接收的RA分组中的路由器识别信息和网络前缀中的一个或者二者,数据库更新部分103分别将所述未检测到的路由器识别信息或网络前缀与其生命期一起,加入和存储到路由器识别信息数据库102a或网络前缀数据库102b。
当将新的网络前缀加入网络前缀数据库102b时(步骤S204),RA分组生成部分105为便携式计算机终端500生成RA分组。
即使将新的路由器识别信息加入路由器识别信息数据库102a,RA分组生成部分105也不需要将该新的路由器识别信息通知给便携式计算机终端。这是因为,如果具有默认路由器识别信息,便携式计算机终端500能够利用所述默认路由器识别信息,确保经由默认路由器与另一通信终端进行通信。
另一方面,对于网络前缀,可能出现仅利用特定的网络前缀与特定网络上的通信终端进行通信的情况。于是,如果将新的网络前缀加入网络前缀数据库102b,则期望RA分组生成部分105向便携式计算机终端500发送网络前缀。
现在将描述当将新的网络前缀加入网络前缀数据库102b时RA分组生成部分105的操作。
首先,RA分组生成部分105读出在路由器识别信息数据库102a中存储的默认路由器识别信息(步骤S205)。然后,RA分组生成部分105读出在网络前缀数据库102b中存储的所有有效的网络前缀(步骤S206)。
RA分组生成部分105然后生成包含了生命期被设置为无限长的所读出的路由器识别信息和网络前缀的RA分组(步骤S207)。RA分组生成部分105经由通信部分101向便携式计算机终端500发送所述RA分组(步骤S208)。
因而,当由桥接装置100接收的RA分组包含没有被存储在网络前缀数据库102b中的新的网络前缀时,所述网络前缀被发送到便携式计算机终端500。因而,便携式计算机终端500能够利用新的网络前缀进行通信。将路由器识别信息和网络前缀的生命期设置为无限长,使得与前述情况一样,即使不接收从路由器有规律地发送的RA分组,便携式计算机终端500能够利用发送的路由器识别信息和网络前缀,经由默认路由器继续与另一通信终端进行通信。
在步骤S204,如果没有新的网络前缀被加入到网络前缀数据库102b中,并且仅通过数据库更新部分103更新路由器识别信息和网络前缀的生命期,桥接装置100不向便携式计算机终端500发送RA分组(步骤S204)。这是因为便携式计算机终端500已经接收了生命期被设置为无限长的路由器识别信息和网络前缀,从而,不需要向便携式计算机终端500通知生命期的更新。
因而,如果桥接装置100已经接收的RA分组仅更新分别存储在路由器识别信息数据库102a和网络前缀数据库102b中的路由器识别信息和网络前缀的生命期,则不需要向便携式计算机终端500发送所述RA分组。这削减了将被由便携式计算机终端500接收的RA分组的数目,从而减少了便携式计算机终端500的处理负荷。
接下来参考图1、7和8,将描述当包含在桥接装置100的路由器识别信息数据库102a中的路由器识别信息或包含在桥接装置100的网络前缀数据库102b中的网络前缀已经变得无效时的桥接装置100的操作。图7和8是这种情况下桥接装置100的操作的流程图。
如上所述,由有效性管理部分104管理包含在数据库102a和102b中的路由器识别信息和网络前缀的有效性。于是,当路由器识别信息或网络前缀已经变得无效时,RA分组生成部分105根据来自有效性管理部分104的通知生成RA分组。
下面将描述路由器识别信息数据库102a中的默认路由器识别信息无效的情况。
当路由器识别信息数据库102a中的默认路由器识别信息已经变得无效时,从有效性管理部分104向RA分组生成部分105发送通知(步骤S301)。
在接收到所述通知之后,RA分组生成部分105从路由器识别信息数据库102a读取所述无效的默认路由器的识别信息(步骤S302)。RA分组生成部分105进一步读取在网络前缀数据库102b中存储的所有有效的网络前缀(步骤S303)。
然后,RA分组生成部分105生成RA分组,在其中将所读取的默认路由器识别信息的生命期设置为零,且将所读取的网络前缀的生命期设置为无限长(步骤S304)。然后,RA分组生成部分105经由通信部分101向便携式计算机终端500发送所述生成的RA分组(步骤S305)。
因而,便携式计算机终端500能够被通知在通信中使用的默认路由器已经变得不可用的事实。
然后,RA分组生成部分105从路由器识别信息数据库102a读取新的默认路由器的识别信息(步骤S306)。从识别信息被存储在路由器识别信息数据库102a中的有效的路由器中选出所述新的默认路由器。
RA分组生成部分105读出在网络前缀数据库102b中存储的所有有效的网络前缀(步骤S307)。
RA分组生成部分105生成RA分组,在其中将所读取的路由器识别信息和网络前缀的生命期设置为无限长(步骤S308),并经由通信部分101将其发送给便携式计算机终端500(步骤S309)。
因而,利用所发送的路由器识别信息和网络前缀,便携式计算机终端500能够确保经由新的默认路由器与另一通信终端进行通信。与上述情况一样,由于将包含在所发送的RA分组中的路由器识别信息和网络前缀的生命期设置为无限长,便携式计算机终端500不需要接收从路由器有规律地发送的RA分组。
在前述实施例中,当默认路由器识别信息已经变得无效时,读出网络前缀数据库102b中的所有网络前缀,并将其发送给便携式计算机终端500。可选地,可以仅发送一个有效的网络前缀。
接下来参考图8,描述网络前缀数据库102b中的任何网络前缀的生命期届满的情况。
当网络前缀数据库102b中的任何网络前缀已经变得无效时,从有效性管理部分104向RA分组生成部分105发送通知(步骤S401)。
在接收到所述通知之后,RA分组生成部分105从路由器识别信息数据库102a读取默认路由器识别信息(步骤S402)。RA分组生成部分105进一步读取在网络前缀数据库102b中存储的所有网络前缀(步骤S403)。
然后,RA分组生成部分105生成RA分组,在其中将所读取的默认路由器识别信息和有效的网络前缀的生命期设置为无限长并且将无效的网络前缀的生命期设置为零(步骤S404)。然后,RA分组生成部分105经由通信部分101向便携式计算机终端500发送所述生成的RA分组(步骤S405)。
因而,便携式计算机终端500能够被通知所述网络前缀已经变得不可用。
当默认路由器识别信息和网络前缀同时无效时,在步骤S304中,RA分组生成部分105可以生成这样的RA分组,在其中将已经变得无效的默认路由器识别信息和网络前缀的生命期设置为零,并在步骤S305中向便携式计算机终端500发送该RA分组。
这样,根据所述实施例的桥接装置100接收从路由器200发送的RA分组,并将包含在所接收的RA分组中的路由器识别信息和网络前缀分别存储在路由器识别信息数据库102a和网络前缀数据库102b中。当路由器识别信息或网络前缀已经变得无效时,所述实施例的桥接装置100生成并发送包含了生命期设置为无限长的有效的路由器识别信息和网络前缀信息的RA分组。这种设计使得便携式计算机终端500必须处理的RA分组的数目降低,因而减少了便携式计算机终端500的处理负荷。
如图4所示,已经为在其中桥接装置100从网络上的一个路由器200接收RA分组的情况描述了实施例。此外,如图9所示,在网络上有多个路由器(路由器200和路由器600),且每个路由器有规律地发送RA分组的情况下,能够减少发送到便携式计算机终端500的RA分组的数目。
具体地,桥接装置100首先将包含在从路由器200和600发送的RA分组中的路由器识别信息和网络前缀分别存储在路由器识别信息数据库102a和网络前缀数据库102b中。在接收到新的RA分组之后,桥接装置100的数据库更新部分103利用在RA分组中包含的路由器识别信息、网络前缀以及它们的生命期来更新数据库102a和102b。
例如,当网络前缀数据库102b中的网络前缀已经变得无效时,RA分组生成部分105从数据库102读取默认路由器识别信息和有效的网络前缀。RA分组生成部分105生成RA分组,在其中将所述生命期设置为无限长,且将无效的网络前缀的生命期设置为零,并经由通信部分101向便携式计算机终端500发送该RA分组。
因而,即使不接收从路由器200和600有规律地发送的RA分组,利用默认路由器和有效的网络前缀,便携式计算机终端500也能够继续与另一通信终端进行通信。
例如,可以通过使用作为基本硬件的通用计算机实现桥接装置100。换言之,可以通过由集成在计算机中的处理器执行在计算机可读介质中存储的计算机程序来实现数据库更新部分103、有效性管理部分104以及RA分组生成部分105。在这种情况下,可以利用在计算机中集成的计算机可读介质来实现桥接装置100,其中所述计算机程序被预先存储,或者被经由网络发布并安装在计算机中,或者被存储在诸如CD-ROM等的便携式计算机可读介质中。路由器识别信息数据库102a和网络前缀数据库102b可以是计算机内部或外部的存储器,诸如硬盘,或者CD-R、CD-RW、DVD-RAM以及DVD-R等的存储介质。
本发明不限于上述不变的实施例,可以通过在所附权利要求的范围以内修改组成部分进行实现。另外,可以适当地组合在所述实施例中公开的多个组成部分,以形成各种发明。例如,可以从实施例所示的全部组成部分中省略一些组成部分。此外,可以适当的组合在不同实施例中所示的组成部分。
于是,按照以上内容,可以得到本发明的多种修改和变型。因此,可以理解,在所附权利要求的范围以内,可以以在此具体描述的实施例以外的其它方式实施本发明。
权利要求
1.一种桥接装置,包括存储单元,其被配置成存储与各自的生命期相关联的路由器识别信息和网络前缀信息;第一接收单元,其被配置成接收包含了所述路由器识别信息和所述网络前缀信息以及所述各自的生命期的第一路由器广播分组;更新单元,其被配置成,通过利用包含在由所述第一接收单元接收的所述第一路由器广播分组中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期,来更新存储在所述存储单元中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期;确定单元,其被配置成,关于存储在所述存储单元中的所述生命期,确定存储在所述存储单元中的所述路由器识别信息和所述网络前缀信息是否有效;生成单元,其被配置成,当所述确定单元确定,在存储在所述存储单元中的所述路由器识别信息之中,具有最高通信优先级的路由器的识别信息无效时,或者当所述确定单元确定存储在所述存储单元中的任何所述网络前缀信息无效时,生成第二路由器广播分组,所述第二路由器广播分组包含了生命期被设置为无限长的存储在所述存储单元中的有效路由器识别信息中的具有最高优先级的路由器的识别信息和存储在所述存储单元中的有效网络前缀信息;以及发送单元,其被配置成向通信终端发送所述第二路由器广播分组。
2.根据权利要求1所述的桥接装置,其中当所述确定单元确定具有最高通信优先级的路由器的识别信息无效时,所述生成单元进一步被配置为生成第三路由器广播分组,在其中所述路由器识别信息的生命期被设置为零,以及所述发送单元进一步被配置为向所述通信终端发送所述第三路由器广播分组。
3.根据权利要求1所述的桥接装置,其中当所述确定单元确定在所述存储单元中存储的任何所述网络前缀信息无效时,所述生成单元进一步被配置为生成所述第二路由器广播分组,在其中所述网络前缀信息的生命期被设置为零。
4.根据权利要求1所述的桥接装置,其中当所述第一路由器广播分组包含了未被存储在所述存储单元中的新的网络前缀信息时,所述更新单元被配置为将所述新的网络前缀信息及其生命期加入所述存储单元,当通过所述更新单元将所述新的网络前缀信息加入到所述存储单元时,所述生成单元被配置为生成所述第二路由器广播分组,以及所述发送单元被配置为向所述通信终端发送所述第二路由器广播分组。
5.根据权利要求1所述的桥接装置,进一步包括第二接收单元,其被配置成接收从通信终端发送的路由器请求分组,其中,所述生成单元在接收到所述路由器请求分组之后,生成所述第二路由器广播分组,以及所述发送单元向发送了所述路由器请求分组的所述通信终端发送所述第二路由器广播分组。
6.根据权利要求1所述的桥接装置,其中所述生成单元被配置成,在所述生命期的范围受限的情况下,将在所述第二路由器广播分组中包含的所述路由器识别信息和所述网络前缀信息的生命期设置为最大生命期。
7.一种控制桥接装置的方法,其中所述桥接装置具有存储单元,其被配置成存储与各自的生命期相关联的路由器识别信息和网络前缀信息,以及确定单元,其被配置成,利用存储在所述存储单元中的所述生命期,来确定存储在所述存储单元中的所述路由器识别信息和所述网络前缀信息是否有效,所述方法包括接收包含了所述路由器识别信息和所述网络前缀信息以及所述各自的生命期的第一路由器广播分组;通过利用包含在所述接收的第一路由器广播分组中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期,更新存储在所述存储单元中的所述路由器识别信息、所述网络前缀信息以及所述各自的生命期;当所述确定单元确定,在存储在所述存储单元中的所述路由器识别信息中,具有最高通信优先级的路由器的识别信息无效时,或者当所述确定单元确定存储在所述存储单元中的任何所述网络前缀信息无效时,生成第二路由器广播分组,所述第二路由器广播分组包含了生命期被设置为无限长的存储在所述存储单元中的有效路由器识别信息中的具有最高优先级的路由器的识别信息和存储在所述存储单元中的有效网络前缀信息;以及向通信终端发送所述生成的第二路由器广播分组。
8.根据权利要求7所述的控制桥接装置的方法,所述方法进一步包括生成第三路由器广播分组,在其中当所述确定单元确定具有最高通信优先级的路由器的识别信息无效时,将所述路由器识别信息的生命期设置为零;以及向所述通信终端发送所述第三路由器广播分组。
全文摘要
桥接装置存储包含在从路由器有规律地发送的路由器广播(RA)中的路由器识别信息和网络前缀信息。当所述存储的路由器识别信息和网络前缀信息变得无效时,所述桥接装置生成包含了生命期被设置为无限长的新的有效的路由器识别信息和网络前缀信息的RA分组,并向通信终端发送该RA分组。这种设计能够减少从路由器向通信终端发送RA分组的频率,从而降低通信终端的RA分组处理负荷。
文档编号H04L12/46GK1984081SQ20061016568
公开日2007年6月20日 申请日期2006年12月12日 优先权日2005年12月12日
发明者土野春菜, 米山清二郎 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1