CN103500178B - 一种fs算法最差情况下的快速多模式匹配方法 - Google Patents

一种fs算法最差情况下的快速多模式匹配方法 Download PDF

Info

Publication number
CN103500178B
CN103500178B CN201310406833.3A CN201310406833A CN103500178B CN 103500178 B CN103500178 B CN 103500178B CN 201310406833 A CN201310406833 A CN 201310406833A CN 103500178 B CN103500178 B CN 103500178B
Authority
CN
China
Prior art keywords
state
dict
dictionary
depth
skip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310406833.3A
Other languages
English (en)
Other versions
CN103500178A (zh
Inventor
胡新静
许家铭
李晓东
金键
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Internet Network Information Center
Original Assignee
Computer Network Information Center of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Computer Network Information Center of CAS filed Critical Computer Network Information Center of CAS
Priority to CN201310406833.3A priority Critical patent/CN103500178B/zh
Publication of CN103500178A publication Critical patent/CN103500178A/zh
Application granted granted Critical
Publication of CN103500178B publication Critical patent/CN103500178B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种FS算法最差情况下的快速多模式匹配方法。本方法为:1)将模式串集合转换成反向有限自动机,计算坏字符转移函数skip1和好后缀转移函数skip2;2)构建自动机中状态s在遇到字符c时发生失配所用词典,包括:匹配串u在其他模式串中的所有深度大于u的出现位置,后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置;3)设置一倒计时值cdown;将待匹配文件与模式串集合进行匹配,当skip2跳转时,记录当前失配状态对应的词典,跳转后每匹配一个字符cdown减1;若发生skip1跳转,则cdown增加skip1的跳转值;4)当cdown为0且记录的词典不为空时,利用当前记录的词典搜索对应的子串终止状态,找到相应的跳转位置,继续匹配。

Description

一种FS算法最差情况下的快速多模式匹配方法
技术领域
本发明涉及一种多模式匹配方法,尤其涉及一种FS算法最差情况下的快速多模式匹配方法。
背景技术
模式匹配算法是计算机科学领域的一类基础算法,在诸多领域都有重要的应用,例如:拼写检查、搜索引擎、计算机病毒特征码匹配、入侵检测、数据压缩以及DNA序列匹配等都离不开模式匹配算法。对入侵检测等应用而言,模式匹配算法不仅要在平均情况下有较快的检测速度,在最差情况下也要快速检测,防止被攻击者利用算法的最差性能发起对入侵检测系统的DDoS(Distributed Denial of Service)攻击。例如在入侵检测系统进行域名匹配过程中,当模式集中同时存在形如abcd.com和abcd.com.cn的域名记录时,如果攻击者构造形如abcd.com.cn.abcd.com.cn的域名查询,就会造成Fan-Su(FS)或AC-BM算法性能急剧下降。
Fan-Su(FS)算法在预处理时反向构建DFSA,并采用改进的BM算法思想增加跳跃距离,平均情况下效率比经典的Aho-Corasick(AC)算法和ACBM算法高。但是由于FS基于反向自动机从右向左匹配,因此在整个匹配过程中,会使得某些字符被多次扫描,导致最差情况下的时间复杂度为O(n*maxlen)。
发明内容
本发明的目的是为了提高FS算法在最差情况下的性能,减少FS算法的重复匹配次数,使其可以更安全地用于实时的域名匹配。
本发明的技术方案为:
一种FS算法最差情况下的快速多模式匹配方法,其步骤为:
1)将所选的模式串集合转换成反向有限自动机,同时根据模式串中的字符分布计算坏字符转移函数skip1和好后缀转移函数skip2
2)构建该反向有限自动机中的状态s在遇到字符c时发生失配所用的词典dict(s,c),该词典dict(s,c)包括:已匹配串u在所述模式串集合其他模式串中的所有深度大于u的出现位置,以及已匹配串u的后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置;其中,c∈Σ,Σ是所述模式串集中的所有字符的集合;
3)设置一个倒计时值cdown=skip2(s,c)-depth(s);将输入的待匹配文件与所述模式串集合进行匹配,当发生失配使用skip2跳转时,记录当前失配状态对应的词典dict,跳转后每匹配一个字符cdown减1;若发生skip1跳转,则cdown增加skip1的跳转值;其中,skip2(s,c)表示在状态s处遇到失配字符c后,利用skip2函数计算得到的跳转长度,depth(s)表示s在反向有限自动机中的深度;
4)当cdown为0且记录的词典不为空时,利用当前记录的词典dict来搜索到对应的子串终止状态,找到相应的跳转位置,然后匹配跳转到该位置,继续匹配。
进一步的,利用结构体Dict_Node记录所述词典dict(s,c)中每一元素的信息,包括:记忆子串的起始状态srcstate、记忆子串的终止状态deststate、记忆子串的宽度length,以及记忆子串中的输出信息missed_output。
进一步的,利用状态s的失效转移函数f(x)计算u在所述模式串集合其他模式串中的所有深度大于u的出现位置:对于所述反向有限自动机中的任一状态x,如果f(x)=s,则将状态x对应的串的位置加入到词典dict(s,c)中。
进一步的,当转向函数goto(s,c)=0时,构建所述词典dict(s,c);如果满足goto(x,c)≠0并且depth(x)=skip2(s,c)-depth(s),则创建的结构体Dict_Node满足公式 length = depth ( s ) + 1 deststate = goto ( x , c ) srcstate = getAncestor ( x , depth ( s ) ) ; 否则,创建的结构体Dict_Node满足公式 length = depth ( s ) deststate = x srcstate = getAncestor ( x , depth ( s ) ) ; 其中,depth(x)表示x在反向有限自动机中的深度;getAncestor(x,depth(s))为在状态x处沿着反向有限自动机向上找到第depth(s)个祖先状态,并且在寻找过程中记录经过的有输出的状态。
进一步的,对于词典dict(s,c)归并,得到已匹配串u的后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置:对反向有限自动机进行宽度优先遍历,对于状态s及其父节点状态p,如果dict(s,c)=dict(s,c)∪dict(p),则归并时,如果出现两词典的相应结构体Dict_Node的srcstate相同,则取length较大者结构体Dict_Node作为归并后节点的Dict_Node;其中,dict(p)为不考虑失配字符构造的词典。
进一步的,设置一深度阈值depthT,如果状态s的状态深度小于该深度阈值,则对该状态s不予构造词典。
在单模匹配算法Turbo-BM对BM算法的最差时间复杂度改进中利用了跳过记忆子串的策略,本发明就是在FS算法中也借用了这一思想,针对每一个自动机的状态都建立一个词典,借助词典完成记忆子串的跳跃,减少FS算法中重复匹配次数,改进后的算法称为S_FS算法,算法流程如图1所示。
1、FS算法基础
FS算法将模式串集合转换成反向有限自动机,得到转向函数goto和输出函数output函数,同时根据模式串中的字符分布来计算skip1函数(坏字符转移函数)和skip2函数(好后缀转移函数)。当匹配第一个字符时发生失配,此时移动距离值利用skip1进行计算;当失配时已匹配字符数不为0时,则利用skip2计算。FS使用的是改进后的好后缀和坏字符规则:计算skip2函数值时将文本中导致失配的字符也考虑在内,坏字符仅指在窗口内第一次比较就发生失配时文本中的字符。
2、S_FS算法改进思想
文中所指的记忆子串也包括导致失配的字符。
当待匹配文本和模式集合匹配过程中发生失配采用skip2跳转(即已经存在部分匹配的好后缀)时,记已经匹配的串为u,此时有限自动机的状态对应的词典记录u记忆子串位置的集合,词典中的位置信息包括两部分,一部分是u在其他模式串中的所有深度大于u的出现位置,另一部分是u的后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置;当然还包括子串的长度信息length。因此当u在模式集合中存在相同子串u′时,可以利用词典中的元素跳过u′的比较,当u不存在完全相同的子串时,也可以利用词典中的元素来避免u后缀的重复比较。
在多模匹配过程中,发生失配采用skip2进行跳转时,使用记忆词典来存储失配状态的位置信息,使得在后续的比较中利用该词典尽可能多地跳过重复的比较。记忆词典中存储了所有元素串的位置信息,包括起始状态、终止状态和子串长度,为了避免在状态的多步跳转中遗漏输出,还需要记录串跳过的所有输出节点。由于导致失配的字符c也参与FS算法的失配跳转计算,因此,导致失配的字符也可以加入到记忆子串中,从而避免该字符的重复比较。
3、S_FS算法预处理
S_FS算法首先构造反向有限自动机并沿用了原有的skip1和skip2函数的计算,添加了记忆词典的构造预处理。定义结构体Dict_Node,该结构体对应词典中的每一个元素。记反向有限自动机中的状态s在遇到字符c,c∈Σ(Σ是模式集中的所有字符的集合)时发生失配所用的词典为dict(s,c)。Dict_Node定义包括srcstate,deststate和length,以及missed_output(srcstate和deststate分别指记忆子串的起始状态和终止状态,length是记忆子串的宽度,missed_output数组保存记忆子串中的输出信息)。
对状态s构造记忆词典dict(s,c)的过程分为两步。首先计算词典dict(s,c)的第一部分。由于skip2的计算过程中已经得到了所有状态的失效转移函数f,因此可以利用f函数来计算。对状态s,若(s,x均是状态),则可将状态x对应的串的位置加入到dict(s,c)中。对于满足goto(s,c)≠0的情况,由于状态s在遇到字符c时不会触发记录词典的操作,因此可以不计算。仅考虑goto(s,c)=0,此时分为2种情况:
A)满足goto(x,c)≠0 and depth(x)=skip2(s,c)-depth(s),则记忆子串包括字符c,此时创建的Dict_Node满足以下公式,并加入状态s的词典中。
length = depth ( s ) + 1 deststate = goto ( x , c ) srcstate = getAncestor ( x , depth ( s ) ) - - - ( 5 )
B)否则,此时创建的Dict_Node满足以下公式,并加入状态s的词典中。
length = depth ( s ) deststate = x srcstate = getAncestor ( x , depth ( s ) ) - - - ( 6 )
注:
1.depth(x)表示x在自动机中的深度。
2.skip2(s,c)表示在状态s处遇到失配字符c后,利用skip2函数计算得到的跳转长度。
3.getAncestor(state s,size_t d)函数功能:在状态s处沿着自动机向上找到第d个祖先状态,并且在寻找过程中记录经过的有输出的状态。
对满足的情况计算完毕后,然后进行词典归并操作。归并操作将已匹配串后缀的所有记忆子串都加入到词典中。
归并时,对反向有限自动机进行宽度优先遍历,对于状态s和其父节点状态p,dict(s,c)=dict(s,c)∪dict(p),定义dict(p)为不考虑失配字符构造的词典。则归并时,如果遇到srcstate相同的两个Dict_Node,取length较大者作为最终归并后节点的Dict_Node。归并操作完成了词典dict(s,c)的第二部分的计算。
这样就完成了词典的构造过程。算法可以借助词典完成多步跳转,但并非所有情况下使用词典都能达到加速匹配的效果,当使用记忆词典的代价大于重复比较的代价时,对该状态不预计算词典。因此定义状态的深度阈值depthT,在构造词典时,对于深度(状态的深度本身在建立后缀树的时候就是存储在每个状态节点里面,是后缀树里面的每个状态节点到根节点的深度)小于阈值的状态不予构造词典,从而使得程序的性能能够得到最大程度的提升。
4、S_FS匹配过程
改进的算法是在FS匹配基础上增加了记录词典、搜索词典、利用词典进行状态转移这三个部分。
在匹配过程中,当发生失配使用skip2跳转时,记录当前失配状态s对应的词典dict(记录词典的入口位置,即记录词典),并设置一个倒计时值cdown,其中cdown=skip2(s,c)-depth(s),跳转后每匹配一个字符cdown减1,若发生skip1跳转,则cdown增加skip1的跳转值。当cdown为0且记录的词典不为空时,意味着匹配到达记忆子串的开始状态位置,此时就可以利用当前记录的词典dict来搜索到对应的子串终止状态(即搜索词典的部分),找到相应的跳转值(即Dict_Node中存储的length)然后实现状态的多步转移,继续匹配,从而达到跳过记忆子串的目的。如果跳转后的位置正好是某个模式串的末尾,那就是发生了匹配,然后就会输出匹配的串。
与现有技术相比,本发明的优点:
图2为一般情况下算法查找时间对比图,通过实验数据的分析,对比于现有的FS算法,本发明的方案拥有的优势是:充分利用了上一次匹配过程的匹配信息,减少了下一轮匹配过程中的字符串比较次数,尤其是在FS算法的最差情况下,能够提高算法的运行效率,算法效率接近AC算法性能,平均情况下S_FS算法性能也优于ACBM和AC算法。
附图说明
图1为本发明的匹配方法流程图;
图2为一般情况下算法查找时间对比图;其中,待匹配文本:Reuters-21578新闻文本,大小约27328KB,模式串集合:文本中长度在6以上的的高频词,模式串数目从10开始到150以20为单位递增,S_FS算法的深度阈值depthT取值为3;
图3为goto函数转移图。
具体实施方式
S_FS算法运行举例说明:假设待匹配的文本T是abcd.com.cn.abcd.com.cn.abcd.com.cn.,模式串集合P={abcd.com.cn.,abcd.com.},minlen=8。转移函数如图3所示。
若使用FS算法进行比较,则比较结果见下表1,竖线表示匹配窗口开始位置,下划线部分表示重复比较部分,加粗表示导致失配的字符。
表1、FS算法匹配过程
至此FS匹配过程中总比较次数64次,文本总长度为36。重复比较次数共28次,其中好后缀的重复比较24次,失配比较4次。
若使用S_FS算法,则首先预处理将得到记忆词典,构造时设定depthT=4。在阈值depthT作用下构造的词典结果见表2。
表2词典内容
state char dict(state,char)
1~14 Σ NULL
15 Σ-{.} {node1}
15 {.} NULL
16 Σ-{d} {node2}
16 {d} NULL
17 Σ-{c} {node3}
17 {c} NULL
18 Σ-{b} {node4}
18 {b} NULL
19 Σ-{a} {node5}
19 {a} NULL
20 Σ {node6}
其中node1,node2的内容见表3:
表3词典DICT_NODE内容
srcstate deststate length missed_output
node1 4 7 3 /
node2 4 8 4
node3 4 9 5
node4 4 10 6
node5 4 11 7
node6 4 12 8 state12
S_FS算法的匹配过程见表4(注:Start of File简称为SoF,待匹配文本串的开始处;标下划线的表示使用词典跳过的子串,加粗字符表示失配字符):
表4、S_FS1算法匹配过程
在上述匹配过程中,总的比较次数是40次,其中失配字符重复比较次数为4次,与FS算法相比,省去了24次的重复比较。
最差情况下S_FS性能对比如表5,待匹配文本为(abc)n,文本大小为3328KB,模式集合为{abcabcabc,cabcabcabcab,abcabcabcabcabc}。
表5、各算法运行结果对比
算法 查找时间 平均比较数 词典平均跳过步数
AC 66 1 /
ACBM 237 9.189 /
FS 308 8.8894 /
S_FS1 164 1.9915 11.5
S_FS2 186 2.2914 11

Claims (3)

1.一种FS算法最差情况下的快速多模式匹配方法,其步骤为:
1)将所选的模式串集合转换成反向有限自动机,同时根据模式串中的字符分布计算坏字符转移函数skip1和好后缀转移函数skip2
2)构建该反向有限自动机中的状态s在遇到字符c时发生失配所用的词典dict(s,c),该词典dict(s,c)包括:已匹配串u在所述模式串集合其他模式串中的所有深度大于u的出现位置,以及已匹配串u的后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置;其中,c∈Σ,Σ是所述模式串集中的所有字符的集合;
3)设置一个倒计时值cdown=skip2(s,c)-depth(s);将输入的待匹配文件与所述模式串集合进行匹配,当发生失配使用skip2跳转时,记录当前失配状态对应的词典dict,跳转后每匹配一个字符cdown减1;若发生skip1跳转,则cdown增加skip1的跳转值;其中,skip2(s,c)表示在状态s处遇到失配字符c后,利用skip2函数计算得到的跳转长度,depth(s)表示s在反向有限自动机中的深度;
4)当cdown为0且记录的词典不为空时,利用当前记录的词典dict来搜索到对应的子串终止状态,找到相应的跳转位置,然后匹配跳转到该位置,继续匹配;
其中:利用结构体Dict_Node记录所述词典dict(s,c)中每一元素的信息,包括:记忆子串的起始状态srcstate、记忆子串的终止状态deststate、记忆子串的宽度length,以及记忆子串中的输出信息missed_output;
利用状态s的失效转移函数f(x)计算u在所述模式串集合其他模式串中的所有深度大于u的出现位置:对于所述反向有限自动机中的任一状态x,如果f(x)=s,则将状态x对应的串的位置加入到词典dict(s,c)中;
当转向函数goto(s,c)=0时,构建所述词典dict(s,c);如果满足goto(x,c)≠0并且depth(x)=skip2(s,c)-depth(s),则创建的结构体Dict_Node满足公式否则,创建的结构体Dict_Node满足公式其中,depth(x)表示x在反向有限自动机中的深度;getAncestor(x,depth(s))为在状态x处沿着反向有限自动机向上找到第depth(s)个祖先状态,并且在寻找过程中记录经过的有输出的状态。
2.如权利要求1所述的方法,其特征在于对于词典dict(s,c)归并,得到已匹配串u的后缀suffix(u)在其他模式串中的所有深度大于suffix(u)的出现位置:对反向有限自动机进行宽度优先遍历,对于状态s及其父节点状态p,如果dict(s,c)=dict(s,c)∪dict(p),则归并时,如果出现两词典的相应结构体Dict_Node的srcstate相同,则取length较大者结构体Dict_Node作为归并后节点的Dict_Node;其中,dict(p)为不考虑失配字符构造的词典。
3.如权利要求1所述的方法,其特征在于设置一深度阈值depthT,如果状态s的状态深度小于该深度阈值,则对该状态s不予构造词典。
CN201310406833.3A 2013-09-09 2013-09-09 一种fs算法最差情况下的快速多模式匹配方法 Active CN103500178B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310406833.3A CN103500178B (zh) 2013-09-09 2013-09-09 一种fs算法最差情况下的快速多模式匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310406833.3A CN103500178B (zh) 2013-09-09 2013-09-09 一种fs算法最差情况下的快速多模式匹配方法

Publications (2)

Publication Number Publication Date
CN103500178A CN103500178A (zh) 2014-01-08
CN103500178B true CN103500178B (zh) 2017-01-11

Family

ID=49865389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310406833.3A Active CN103500178B (zh) 2013-09-09 2013-09-09 一种fs算法最差情况下的快速多模式匹配方法

Country Status (1)

Country Link
CN (1) CN103500178B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824927B (zh) * 2016-03-16 2019-06-14 中国互联网络信息中心 一种基于树状自动机的域名匹配方法
CN108153813B (zh) * 2017-11-28 2021-09-17 北京亿赛通科技发展有限责任公司 一种数据匹配方法及系统
CN111178052A (zh) * 2019-12-20 2020-05-19 中国建设银行股份有限公司 构建机器人流程自动化应用的方法和装置
CN111814009B (zh) * 2020-06-28 2022-03-01 四川长虹电器股份有限公司 一种基于搜索引擎检索信息的模式匹配方法
CN113010882B (zh) * 2021-03-18 2022-08-30 哈尔滨工业大学 一种适用于缓存丢失攻击的自定义位置顺序模式匹配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551803A (zh) * 2008-03-31 2009-10-07 华为技术有限公司 一种建立模式匹配状态机、模式识别的方法和装置
CN102646123A (zh) * 2012-02-23 2012-08-22 北京星网锐捷网络技术有限公司 多模式匹配方法、装置和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551803A (zh) * 2008-03-31 2009-10-07 华为技术有限公司 一种建立模式匹配状态机、模式识别的方法和装置
CN102646123A (zh) * 2012-02-23 2012-08-22 北京星网锐捷网络技术有限公司 多模式匹配方法、装置和设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种基于反向有限自动机的匹配算法;许一震 等;《高技术通讯》;20010228;30-33 *
一种基于反向有限自动机的多模式匹配算法;关超 等;《计算机工程》;20100131;第36卷(第1期);208-210 *
改进的多模式匹配算法;王永成 等;《计算机研究与发展》;20020131;第39卷(第1期);55-60 *

Also Published As

Publication number Publication date
CN103500178A (zh) 2014-01-08

Similar Documents

Publication Publication Date Title
CN103500178B (zh) 一种fs算法最差情况下的快速多模式匹配方法
US8510322B2 (en) Enriched search features based in part on discovering people-centric search intent
US7792840B2 (en) Two-level n-gram index structure and methods of index building, query processing and index derivation
CN101398820B (zh) 一种大规模关键词匹配方法
Koppula et al. Learning url patterns for webpage de-duplication
Amir et al. Pattern matching in hypertext
Tomohiro et al. Palindrome pattern matching
Na et al. Suffix tree of alignment: An efficient index for similar data
CN105426412A (zh) 多模式的串匹配方法和装置
Fujisato et al. Right-to-left online construction of parameterized position heaps
Le Dang et al. A new multiple-pattern matching algorithm for the network intrusion detection system
Tanimura et al. A faster algorithm for computing maximal-gapped repeats in a string
Hon et al. Towards an optimal space-and-query-time index for top-k document retrieval
Zhiyuli et al. Modeling large-scale dynamic social networks via node embeddings
Sri et al. String matching algorithms
Khanh et al. Time series discord discovery using WAT algorithm and iSAX representation
Lewenstein et al. Less space: Indexing for queries with wildcards
Nsira et al. On-line string matching in highly similar DNA sequences
CN113065419B (zh) 一种基于流量高频内容的模式匹配算法及系统
Sachan et al. A generalized links and text properties based forum crawler
Equi et al. On the complexity of exact pattern matching in graphs: Binary strings and bounded degree
Gurung et al. An analysis of the intelligent predictive string search algorithm: a probabilistic approach
CN115525801A (zh) 网络安全系统的模式匹配算法
Equi et al. On the complexity of exact pattern matching in graphs: determinism and zig-zag matching
Kimmett et al. Fuzzy joins in mapreduce: Edit and jaccard distance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210208

Address after: 100190 room 506, building 2, courtyard 4, South 4th Street, Zhongguancun, Haidian District, Beijing

Patentee after: CHINA INTERNET NETWORK INFORMATION CENTER

Address before: 100190 No. four, 4 South Street, Haidian District, Beijing, Zhongguancun

Patentee before: Computer Network Information Center, Chinese Academy of Sciences

TR01 Transfer of patent right