专利名称:一种互联网环路防控方法
技术领域:
本发明涉及了互联网环路问题,尤其涉及静态路由的环路预防和监控方法,属 于信息技术领域。
背景技术:
随着互联网的高速发展,互联网的交换和路由技术越来越复杂,网络环路问题 也越来越严重。在交换域,采用冗余路径提高网络生存能力的同时,也导致网络可能出 现二层环路。生成树协议(spanning tree protocol)虽然在算法上避免了二层环路的形成, 但当网络出现异常时,比如链路单向连通时,还是可能出现二层环路故障。环路保护技 术(loop guard)就是解决这个问题的一种可行方法。端口环路检测技术致力于发现网络 中存在的环路问题,并采取相应的阻断措施,是一种在线的监测和处理技术。
由于三层路由的地域跨度更大,路由协议更多,在三层上的环路问题就更加严 重。由于IP数据包中包含生存时间标记(Time To Live),而且每经过一个路由器,生存时 间标记就会减小,这样即使网络中有三层环路,IP包在环路中传输多条后将会被丢弃, 这样当进入环路流量较小时,还不会对网络性能产生严重的影响。由于网络测量中通常 会设置较小的生存时间标记,来测量一段网络路径的带宽、延迟等性能,所以并不能由 于出现了生存时间标记耗尽的IP包,就认为有环路出现。这样,三层环路的有效监测就 非常困难。动态路由算法虽然可能出现暂态的三层环路,但当网络稳定下来后,动态路 由算法完全可以避免环路的出现。静态路由的情况就完全不同,当链路断开或设备故障 时,由于缺乏路由信息的传递和处理,会长期处于三层环路状态,为网络正常运行带来 致命缺陷。同时,通过我们对当前网络的监测,也发现了数以千计的三层环路。总之, 互联网环路避免、监测和阻断技术既十分重要,又面临巨大的挑战。发明内容
有鉴于此,本发明致力于提供一种互联网环路的预防和监控。
本发明的上述目的是通过如下的技术方案予以实现的
一种互联网环路防控方法,其用于预防互联网环路的部分包括
al.将路由器多个端口上的可聚合静态路由聚合,在所述路由器中添加聚合后的 聚合路由,将该聚合路由的下一跳地址设置为丢弃接口 ;
a2.在路由器中将各个不可聚合的下行接口分割,并在所述路由器中增加分割后 的路由,将所述分割后的路由的下一跳地址设置为原路由的下一跳地址,并将原路由的 下一跳地址设置为丢弃接口。
此外,所述互联网环路防控方法中用于监控互联网环路的部分包括
bl.当数据包通过网络设备时,所述网络设备监测该数据包是否含有所述网络设 备特有的指纹,若是,则进行网络环路测试,否则根据设定的策略确定是否将所述网络 设备特有的指纹加入所述数据包;所述网络环路测试包括
所述网络设备向所述数据包的目的地址发送设定的测试数据包,如果在设定的 时间内,所述网络设备收到所述测试数据包,则确认所述网络设备存在环路并进行环路 排除操作,比如进行日志记录;在设定的时间内丢弃进入环路的数据包;和通知网络管理人员等。
在上述bl步骤中,所述设定的策略可以是将所述网络设备特有的指纹加入所述 数据包,即默认对于所有经过该网络设备的数据包,只要该数据包不含有该网络设备特 有的指纹,就将该网络设备特有的指纹加入该数据包。
另外,在上述bl步骤中,所述设定的策略可以是最高指纹密度策略,所述最高 指纹密度策略包括若所述数据包没有指纹信息,则将所述网络设备特有的指纹插入所 述数据包,并使所述网络设备的指纹密度大于设定的下限,所述指纹密度表示通过所述 网络设备的数据包中含有所述网络设备特有的指纹信息的数据包的占比。根据这一思 路,上述最高指纹密度策略可按下列方法实施i.初始化时,将所述网络设备的当前信 用值β设置为0,β的值域为hY,Y],Y为正整数;ii.当所述网络设备收到一个数据 包后,调用函数SFO,若函数值小于指纹密度α,贝IJ β力卩1 ;所述SFO是值域为(0, 1)的均勻分布随机函数;iii.检查所述数据包是否包含指纹信息,若否,则将所述网络设 备特有的指纹插入所述数据包,β减1,并发送所述数据包;iv.若是,则判断β是否等 于Y,若β不等于Y,则发送所述数据包;若β等于Y,则用所述网络设备特有的指 纹替换所述数据包中的指纹,β减1,并发送所述数据包。
另外,在上述bl步骤中,所述设定的策略可以是最低指纹密度策略,所述最低 指纹密度策略包括尽可能采用指纹插入方法,力图避免使用指纹替换方法;使所述网 络设备的指纹密度不低于设定的下限,所述指纹密度表示通过所述网络设备的数据包中 含有所述网络设备特有的指纹信息的数据包的占比。根据这一思路,上述最低指纹密度 策略可按下列方法实施i.初始化时,将所述网络设备的当前信用值β设置为0,β的 值域为hY,Y],Y为正整数;ii当所述网络设备收到一个数据包后,调用函数SF0, 若函数值小于指纹密度α,则β加1 ;所述SFO是值域为(0,1)的均勻分布随机函数; iii.检查所述数据包是否包含指纹信息,若否,则判断β是否等于-Y,若β等于-Y, 则直接发送所述数据包;若β不等于-Y,则将所述网络设备特有的指纹插入所述数据 包,β减1,并发送该数据包;若是,则检查β是否等于Y,若β不等于Y,则发送 所述数据包;若β等于Y,则用所述网络设备特有的指纹替换所述数据包中的指纹,β 减1,并发送所述数据包。
上述最高指纹密度策略和最低指纹密度策略分别用于单路由器保护和自治域保 护这两种情形。
本专利技术应用的初期,为了保护已有的设备投资,在保持自治域其它网络设 备不升级替换的情况下,在关键路由器设备上单独实施本专利技术的情况下,关键路由 器设备应当采用最高指纹密度策略。在此环境下,所有关键路由器输出的数据包都包含 指纹信息,这样所有经过关键路由器的环路都会被该关键路由器检测到,而且所有再次 经过关键路由器的环路数据包都会被其丢弃。所以最高指纹密度策略可以单独为关键路 由器提供环路监控。
本专利技术应用的后期,自治域中的大量网络设备都实施本专利技术的情况5下,路由器设备应当采用最低指纹密度策略。在此环境下采用最高指纹密度策略有两个 缺陷,一方面,最高指纹密度策略会由于高频率的指纹插入和指纹替换带来的较高计算 开销;另一方面,最高指纹密度策略会会导致高比例的指纹替换,而高比例的指纹替换 会降低环路发现的概率,增大环路发现的延迟。而采用最低指纹密度策略,通常可以避 免指纹替换的情况,避免最高指纹密度策略的上面两个缺陷。
在本发明的方法中,所述指纹信息中除了包含本设备的私有信息外,还可以包 含根据数据包的源地址和目的地址生成的指纹验证信息,该指纹验证信息可以帮助网络 设备验证指纹信息的真实性。
本发明具有如下技术效果
1、在路由器上采用路由聚合方法,可以避免出现路由环路。当被汇聚的端口出 现链路故障等原因,导致对应的静态路由信息无效时,聚合路由可以丢失受到影响的数 据包,从而避免路由环路的出现。
2、在路由器上采用路由分割方法,可以避免出现路由环路。当被实施路由分割 的端口出现链路故障等原因,导致分割后的更细的静态路由信息无效时,由于被分割的 子网或路由的下一跳为丢弃接口,从而避免路由环路的出现。
3、由于三层路由的地域跨度大,协议复杂,目前仍无完全有效的环路避免方 法。但基于指纹信息的环路监测方法,能有效地在线识别数据包中的环路流,可以同时 监测到二层环路和三层环路。
4、基于指纹信息的环路监控方法可以单点实施。仅在重点保护的网络设备上, 采用最高指纹密度策略,就可以丢弃所有通过该设备的环路流。
5、基于指纹信息的环路监控方法也可以大范围实施,采用最低指纹密度策略, 可以有效避免设备间的指纹污染。
6、基于指纹信息的环路监控方法可以在网络的不同设备上同时实施最低指纹密 度策略和最高指纹密度策略,环路监控功能仍能有效工作。
7、基于指纹信息的环路监控方法可以在指纹中加入指纹验证信息,可以有效地 避免指纹仿冒,具有较高的准确性;同时,还采用进一步的环路测试,杜绝误报信息。
8、基于指纹信息的环路监控方法在环路确认后,进一步采取环路阻断技术,可 以进一步降低环流的影响。
9、基于指纹信息的环路监控方法可以在指纹中加入私有信息,这样就可以 VLAN号等信息加入到私有信息,从而支持更复杂的网络环境。
图1为实施例中路由器的接口路由聚合技术的示意图2为实施例中路由器的中继路由聚合技术的示意图3为实施例中路由器的接口路由分割技术的示意图4为实施例中路由器的中继路由分割技术的示意图5为实施例在IPv6网络环境中的指纹信息格式;
图6为实施例中最高指纹密度策略的示意图7为实施例中最高指纹密度策略的示意图;6
图8为实施例中在线环路监测,测试和阻断的示意图9为实施例中在VLAN单臂路由中应用的示意图10为实施例网络设备中配置的保密信息具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
下列实施例在以IPv6网络环境为基础,来实现网络环路的预防和监控。
采用路由聚合技术避免网络环路
图1上部为一个边缘路由器的网络配置,其两个下行接口的网络地址是相连 的,分别为 2001:0CC0:2049::l/49 和 2001:0CC0:2049:8000::l/49,这种配置在下行接口 链路出现故障时,就很有可能在这个边缘路由器和其上游路由器间形成网络环路。譬如 当下行接口 1的链路断开时,发送到地址2001:0CC0:2049::2的数据包就可能在该边缘路 由器和其上游路由器间形成网络环路。由于该边缘路由器的两个下行接口网络地址相 连,我们可以采用路由汇聚技术,如图1下部所示,通过添加一个汇聚路由“ipvemute 2001:0CC0:2049::0/48Null0",就可以避免环路的产生。譬如当下行接口 1的链路断开 时,发送到地址2001:0CC0:2049::2首先匹配的路由是2001:0CC0:2049::0/48,而不是采 用缺省路由。从而该数据包就会被丢弃,而不是根据缺省路由返回上游路由器,这样就 避免了网络环路。
图2上部为一个中继路由器的网络配置,其两个中继路由是相连的,分别 为 2001:0CC0:2050::0/49 禾口 2001:0CC0:2050:8000::0/49,这种配置在下行接口 链路出 现故障时,就很有可能在这个中继路由器和其上游路由器间形成网络环路。譬如当 下行接口 1的链路断开时,发送到地址2001:0CC0:2050::2的数据包就可能在该中继路 由器和其上游路由器间形成网络环路。由于该中继路由器的两个中继路由是相连, 我们可以采用路由汇聚技术,如图2下部所示,通过添加一个汇聚路由“ipvemute 2001:0CC0:2050::0/48Null0",就可以避免环路的产生。譬如当下行接口 1的链路断开 时,发送到地址2001:0CC0:2050::2首先匹配的路由是2001:0CC0:2050::0/48,而不是采 用缺省路由。从而该数据包就会被丢弃,而不是根据缺省路由返回上游路由器,这样就 避免了网络环路。
采用路由分割技术避免网络环路
图3上部为一个边缘路由器的网络配置,其下行接口 3的网络地址 2001:0CC0:2037::l/48无法与其它接口聚合,当下行接口 3的链路故障时,就可能出现网 络环路。为此,我们采用如图3下部所示的路由分割技术。把原来的下行接口 3分割为 两个子接口下行接口 3.1,网络地址2001:0CC0:2037:0::l/49 ;下行接口 32,网络地址 2001:0CC0:2037:8000::l/49o 再在该边缘路由器上更改路由 “2001:0CC0:2037::0/48” 的 下一跳为NullO,就避免了网络环路的问题。譬如当下行接口 3的链路断开时,发送到地 址2001:0CC0:2037::2首先匹配的路由是2001:0CC0:2037::0/48,而不是采用缺省路由。 从而该数据包就会被丢弃,而不是根据缺省路由返回上游路由器,这样就避免了网络环 路。
图4上部为一个中继路由器的网络配置,其一条中继路由2001:0CC0:2040::l/48无法与其它路由聚合,当下行接口 3的链路故障时,就可能出现网络环路。为 此,我们采用如图4下部所示的路由分割技术。把原来的中继路由为两个子路 由2001:0CC0:2040:0::0/49 和 2001:0CC0:2040:8000::0/49,其下一跳都指向 2001:0CC0:2037::2。 再在该中继路由器上更改路由“2001:0CC0:2040::0/48”的下一 跳为NullO,就避免了网络环路的问题。譬如当下行接口 3的链路断开时,发送到地址 2001:0CC0:2040::2首先匹配的路由是2001:0CC0:2040::0/48,而不是采用缺省路由。从而 该数据包就会被丢弃,而不是根据缺省路由返回上游路由器,这样就避免了网络环路。
协议扩展
为了满足网络环路监测的要求,需要扩展现有IPv6标准,在IP包头中环路监测 信息是通过逐跳扩展头(Hop-by-Hop Options Header)来携带的。
增加一个扩展头,其值暂定为102,对应的关键字为LPDT。如图5所示,该扩 展头的格式如下
第1个八比特组为下一个包头的类型;
第2个八比特组为扩展头长度,指明环路监测扩展头的长度,以8个八比特组的 数量来表示,并且不包括最开始的8个八比特组;其值为3 ;
第3个八比特组为扩展类型,其值为12 ;
第4个八比特组为扩展数据长度,其值为观;
第5个八比特组到第20个八比特组为设备的IPv6地址;
第21个八比特组到第M个八比特组为设备的私有信息,比如存储其VLAN号 等;
第25个八比特组到第观个八比特组为指纹信息的序列号;
第四个八比特组到第32个八比特组为指纹信息的验证信息;
最高指纹密度策略
图6是最高指纹密度策略的示意图。设备的信用额度Y为正整数,设备的当前 信用值β的取值范围为hY,Y],设备的指纹密度α取值范围(0,1),SFO是取值 为(0,1)间的均勻分布随机函数。设备初始化时设定β= 0。当设备收到一个数据包 后,就调用函数SFO,若其值小于指纹密度α,当前信用值β就增加1,并且保证其值 不大于Y。
再检查这个数据包是否包含指纹信息。
若不包含,就插入指纹信息,当前信用值β就减少1,并且保证其值不小 于-Y,并发送该数据包。
若包含指纹信息,就检查β是否等于Y。若β不等于L就发送该数据包。 若β等于Y,就替换数据包P中的指纹信息,当前信用值β就减少1,并且保证其值不 小于-Y,并发送该数据包。
最高指纹密度策略为所有无指纹信息的数据包添加指纹信息,并保证输出数据 包中本设备的指纹密度大于α。
最低指纹密度策略
图7是最低指纹密度策略的示意图。设备的信用额度Y为正整数,设备的当前 信用值β的取值范围为hY,Y],设备的指纹密度α取值范围(0,1),SFQ是取值8为(0,1)间的均勻分布随机函数。设备初始化时设定β= 0。当设备收到一个数据包 后,就调用函数SFO,若其值小于指纹密度α,当前信用值β就增加1,并且保证其值 不大于Y。
再检查这个数据包是否包含指纹信息。
若不包含,再判断β是否等于-Y。若β等于-Y,直接发送该数据包。若 β不等于-Y,就插入指纹信息,当前信用值β就减少1,并且保证其值不小于-Y,并 发送该数据包。
若包含指纹信息,就检查β是否等于Y。若β不等于L就发送该数据包。 若β等于Y,就替换数据包P中的指纹信息,当前信用值β就减少1,并且保证其值不 小于-Y,并发送该数据包。
最低指纹密度策略在避免指纹替换的同时,保证输出数据包中本设备的指纹密 度大于α。
最高指纹密度策略下在线环路监测,测试和阻断
在如图8所示的网络拓扑中,仅在路由器R2上部署最高指纹密度策略,其它路 由器都未部署环路检查功能。当路由器R3到路由器R6的链路失效时,现有的静态路由 可能在路由器R2、路由器R3、路由器R4和路由器R5间形成环路。由于路由器R2部署 了最高指纹密度策略,而经过路由器R2的数据包都不包含其它设备的指纹信息,从而当 这些第一次流经路由器R2的数据包离开时,都带有路由器R2的指纹信息,当这些数据 包通过环路再次进入路由器R2时,路由器R2就发现这些数据包含有其指纹信息,表明 其为可疑环路流,从而会丢弃这些数据包。同时启动环路检查,发现目的地址为路由器 R6的数据流会形成环路,从而通过加载过滤器,过滤丢所有目的地址为路由器R6的数据 包。这样环路流在第一次进入路由器R2时,就丢弃之。同时路由器R2还会将环路信 息通过SNMP陷阱方式,上报管理站,管理人员就可疑排除网络环路。
最低指纹密度策略下在线环路监测,测试和阻断
在如图8所示的网络拓扑中,在路由器R1、路由器R2、路由器R3、路由器 R4、路由器R5和路由器R6上都部署最低指纹密度策略,其指纹密度为a。当路由器 R3到路由器R6的链路失效时,现有的静态路由可能在路由器R2、路由器R3、路由器R4 和路由器R5间形成环路。环路流绕行一圈后含有指纹信息的比例为4* α,这些含有指 纹信息的数据包在下一次绕行中就会被丢弃,所以最终这些环流会被丢弃。更关键的是 路由器R2、路由器R3、路由器R4和路由器R5将发现可疑环流,并启用环路检查,发现 目的地址为路由器R6的数据流会形成环路,从而通过加载过滤器,过滤丢所有目的地址 为路由器R6的数据包。这样环路流在第一次进入路由器R2、路由器R3、路由器R4和 路由器R5时,就丢弃之。同时路由器R2、路由器R3、路由器R4和路由器R5还会将 环路信息通过SNMP陷阱方式,上报管理服务器,管理人员就可疑排除网络环路。
混合策略下在线环路监测,测试和阻断
在如图8所示的网络拓扑中,在路由器R2上部署最高指纹密度策略,在路由器 RU路由器R3、路由器R4、路由器R5和路由器R6上都部署最低指纹密度策略,其指 纹密度为α。当路由器R3到路由器R6的链路失效时,现有的静态路由可能在路由器 R2、路由器R3、路由器R4和路由器R5间形成环路。环路流绕行一圈后大部分含有路9由器R2的指纹信息,在再次进入路由器R2时被丢弃,其它数据包会分别被路由器R3、 路由器R4、路由器R5发现并丢弃。路由器R2、路由器R3、路由器R4和路由器R5将 发现可疑环流,并启用环路检查,发现目的地址为路由器R6的数据流会形成环路,从而 通过加载过滤器,过滤丢所有目的地址为路由器R6的数据包。这样环路流在第一次进入 路由器R2、路由器R3、路由器R4和路由器R5时,就丢弃之。同时路由器R2、路由器 R3、路由器R4和路由器R5还会将环路信息通过SNMP陷阱方式,上报管理站,管理人 员就可疑排除网络环路。
VLAN单臂路由器
如图9所示的单臂路由环境,主机PCl到主机PC2的数据包会先进入交换机的端 口 2,加上VLANlO的标签后,出交换机端口 1到达路由器的接口 1。路由器通过路由计 算后,会出路由器的接口 1,进入交换机的端口 1,作为VLAN20的数据包出端口 3,最 后到达主机PC2。这样数据包会进出交换机两次,但由于指纹信息中包含了 VLAN号, 不会出现误判。当该数据包第二次进入交换机时,虽然交换机会发现指纹信息中的IP地 址为本设备,但指纹信息中的VLAN号为10,第二次进入时的VLAN号为20,从而可以 判定这个数据包不是环路流,从而能避免误判。
指纹验证信息
如图10所示,在网络设备中配置保密信息长度为4字节,然后将数据包的目的 地址、源地址、设备地址、设备私有信息、序列号和保密信息一道作为输入信息,通过 MD4变换,得到16个字节的输出,并将MD 4输出的前四个字节赋值给指纹验证信息。 由于攻击者网络设备无法得到网络设备中配置的保密信息,就无法得到指纹验证信息, 从而网络设备能很方便地鉴别数据包中的指纹信息是否是本设备的。
权利要求
1.一种互联网环路防控方法,包括al.将路由器多个端口上的可聚合静态路由聚合,在所述路由器中添加聚合后的聚合 路由,将该聚合路由的下一跳地址设置为丢弃接口;a2.在路由器中将各个不可聚合的下行接口分割,并在所述路由器中增加分割后的路 由,将所述分割后的路由的下一跳地址设置为原路由的下一跳地址,并将原路由的下一 跳地址设置为丢弃接口。
2.如权利要求1所述的互联网环路防控方法,其特征在于,所述方法还包括当数据包通过网络设备时,所述网络设备监测该数据包是否含有所述网络设备特有的指纹,若是,则进行网络环路测试,否则根据设定的策略确定是否将所述网络设备特 有的指纹加入所述数据包;所述网络环路测试包括所述网络设备向所述数据包的目的地址发送设定的测试数据包,如果在设定的时间 内,所述网络设备收到所述测试数据包,则确认所述网络设备存在环路并进行环路排除 操作。
3.如权利要求2所述的互联网环路防控方法,其特征在于,所述环路排除操作包括 进行日志记录;在设定的时间内丢弃进入环路的数据包;和通知网络管理人员。
4.如权利要求2所述的互联网环路防控方法,其特征在于,所述设定的策略是将所述 网络设备特有的指纹加入所述数据包。
5.如权利要求2所述的互联网环路防控方法,其特征在于,所述网络设备各自独立地 采用不同的指纹加入策略。
6.如权利要求2所述的互联网环路防控方法,其特征在于,所述网络设备独立地采用 最高指纹密度策略,所述最高指纹密度策略包括若所述数据包没有指纹信息,则将所 述网络设备特有的指纹插入所有无指纹信息的数据包,并使所述网络设备的指纹密度大 于设定的下限,所述指纹密度表示通过所述网络设备的数据包中含有所述网络设备特有 的指纹信息的数据包的占比。
7.如权利要求6所述的互联网环路防控方法,其特征在于,所述最高指纹密度策略按 下列方法实施i.初始化时,将所述网络设备的当前信用值β设置为0,β的值域为hY,Y],Y 为正整数;ii当所述网络设备收到一个数据包后,调用函数SF0,若函数值小于指纹密度α, 则β力卩1 ;所述SFO是值域为(0,1)的均勻分布随机函数;iii.检查所述数据包是否包含指纹信息,若否,则将所述网络设备特有的指纹插入所 述数据包,β减1,并发送所述数据包;iv.若是,则判断β是否等于Y,若β不等于Y,则发送所述数据包;若β等于 Y,则用所述网络设备特有的指纹替换所述数据包中的指纹,β减1,并发送所述数据 包。
8.如权利要求2所述的互联网环路防控方法,其特征在于,所述网络设备独立地采用 最低指纹密度策略,所述最低指纹密度策略包括尽可能采用指纹插入方法,力图避免 使用指纹替换方法;使所述网络设备的指纹密度不低于设定的下限,所述指纹密度表示 通过所述网络设备的数据包中含有所述网络设备特有的指纹信息的数据包的占比。
9.如权利要求8所述的互联网环路防控方法,其特征在于,所述最低指纹密度策略按 下列方法实施i.初始化时,将所述网络设备的当前信用值β设置为0,β的值域为hY,Y],Y 为正整数;ii当所述网络设备收到一个数据包后,调用函数SF0,若函数值小于指纹密度α, 则β力卩1 ;所述SFO是值域为(0,1)的均勻分布随机函数;iii.检查所述数据包是否包含指纹信息,若否,则判断β是否等于-Y,若β等 于-Y,则直接发送所述数据包;若β不等于-Y,则将所述网络设备特有的指纹插入所 述数据包,β减1,并发送该数据包;iv.若是,则检查β是否等于Y,若β不等于Y,则发送所述数据包;若β等于 Y,则用所述网络设备特有的指纹替换所述数据包中的指纹,β减1,并发送所述数据 包。
全文摘要
本发明公开了一种互联网环路防控方法,属于信息技术领域。本发明方法包括a1.将路由器多个端口上的可聚合静态路由聚合,在所述路由器中添加聚合后的聚合路由,将该聚合路由的下一跳地址设置为丢弃接口;a2.在路由器中将各个不可聚合的下行接口分割,并在所述路由器中增加分割后的路由,将所述分割后的路由的下一跳地址设置为原路由的下一跳地址,并将原路由的下一跳地址设置为丢弃接口。本发明可用于预防和监控互联网环路。
文档编号H04L12/56GK102025572SQ20111000532
公开日2011年4月20日 申请日期2011年1月10日 优先权日2011年1月10日
发明者吴志美, 方贵明, 石志强 申请人:中国科学院软件研究所