DFA壓縮方法及裝置、正則表達式匹配方法及系統與流程

            文檔序號:11677632閱讀:292來源:國知局
            DFA壓縮方法及裝置、正則表達式匹配方法及系統與流程

            本發明涉及網絡安全技術領域,更具體地,涉及dfa壓縮方法及裝置、正則表達式匹配方法及系統。



            背景技術:

            基于正則表達式的模式匹配,簡稱正則表達式匹配,是下一代防火墻(nextgenerationfirewall,ngfw)、入侵檢測/防御系統(intrusiondetectionsystems/intrusionpreventionsystem,ids/ips)、統一威脅管理(unifiedthreatmanagement,utm)等安全網關系統的關鍵模塊,而高性能的正則表達式匹配是其核心技術。正則表達式匹配通過檢查和處理tcp/ip協議應用層的網包載荷(payload)對網包(packet)進行監控或者過濾。

            正則表達式匹配主要通過確定型有窮自動機(deterministicfiniteautomata,dfa)和非確定型有窮自動機(undeterministicfiniteautomata,nfa)兩種數據結構來實現。其中,nfa內存占用小,但匹配速度極慢,在多核或通用處理器平臺上根本不能滿足實際的網絡處理要求;而dfa匹配速度快,缺點是內存占用過高。復雜的正則表達式集合可能引起dfa的狀態數量膨脹,導致需要巨大的儲存空間。



            技術實現要素:

            為解決正則表達式匹配中dfa內存占用過高的問題,本發明提供了dfa壓縮方法及裝置、正則表達式匹配方法及系統。

            根據本發明的一個方面,提供了一種dfa壓縮方法,包括:

            根據正則表達式集合構造dfa,所述dfa包括:字符、狀態和每個狀態各自對應于每個字符的轉移,對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態;

            根據所述dfa中的相同轉移對狀態和轉移進行標記,其中所述相同轉移為指向同一狀態的轉移;

            根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮。

            具體地,所述根據所述dfa中的相同轉移對狀態和轉移進行標記,包括:

            對于所述dfa中的每個狀態,選取該狀態的相同轉移數目最多的轉移標記為該狀態的第一狀態轉移,并將具有相同第一狀態轉移的狀態分組到一個第一狀態集合中;

            對于每個所述第一狀態集合,將其中滿足預設條件的一個狀態標記為第一狀態,并將所述第一狀態再次分組到一個第二狀態集合中;其中,若判斷第一狀態轉移的數目最多的狀態只有一個,所述預設條件包括:第一狀態轉移的數目最多,若判斷第一狀態轉移的數目最多的狀態有至少兩個,則所述預設條件包括:在第一狀態轉移的數目最多的前提下,深度最小;

            對于所述第一狀態集合中剩余的每個狀態,若判斷該狀態與所述第一狀態對應同一字符有相同轉移的數目大于該狀態的第一狀態轉移的數目,則將該狀態標記為第二狀態;

            將所述第二狀態再次分組到所述第一狀態所在的第二狀態集合中,并將所述第二狀態的指向所述第一狀態的轉移標記為第二狀態轉移;

            將所述第一狀態集合中沒被再次分組的狀態組合成一個新的第一狀態集合,對所述新的第一狀態集合迭代執行再次分組的步驟,直到所述第一狀態集合中的每個狀態都被再次分組到第二狀態集合中。

            具體地,所述根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮,包括:

            對于每個所述第一狀態,保留該第一狀態的一個第一狀態轉移,將該第一狀態的不同于所述第一狀態轉移的轉移標記為第三狀態轉移,并保留所述第三狀態轉移,該第一狀態的其他轉移不保留;

            對于每個所述第二狀態,保留該第二狀態的一個第二狀態轉移,將與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,并保留所述第三狀態轉移,該第二狀態的其他轉移不保留。

            具體地,所述根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮,還包括:

            對于每個狀態的所述第三狀態轉移,若對應于連續的字符存在相同的第三狀態轉移,則對應于該連續的字符僅保留一個第三狀態轉移。

            根據本發明的第二方面,提供了一種基于所述dfa壓縮方法的正則表達式匹配方法,包括:

            讀取壓縮后的所述dfa的當前狀態和當前輸入字符;

            在所述當前狀態的第三狀態轉移中查找對應于所述當前輸入字符的第三狀態轉移;

            若判斷存在對應于所述當前輸入字符的第三狀態轉移,則根據該第三狀態轉移將所述當前狀態轉移到下一個狀態;

            若判斷不存在對應于所述當前輸入字符的第三狀態轉移,則通過判斷當前狀態為第一狀態或第二狀態,根據當前狀態的第一狀態轉移或第二狀態轉移將當前狀態轉移到下一個狀態。

            根據本發明的第三方面,提供了一種dfa壓縮裝置,包括:

            構造單元,用于根據正則表達式集合構造dfa,所述dfa包括:字符、狀態和每個狀態各自對應于每個字符的轉移,對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態;

            標記單元,用于根據所述dfa中的相同轉移對狀態和轉移進行標記,其中所述相同轉移為指向同一狀態的轉移;

            壓縮單元,用于根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮。

            具體地,所述標記單元包括:

            第一標記子單元,用于為所述dfa中的每個狀態選取該狀態的相同轉移數目最多的轉移標記為該狀態的第一狀態轉移,并將具有相同第一狀態轉移的狀態分組到一個第一狀態集合中;

            第二標記子單元,用于將每個所述第一狀態集合中滿足預設條件的一個狀態標記為第一狀態,并將所述第一狀態再次分組到一個第二狀態集合中;其中,若判斷第一狀態轉移的數目最多的狀態只有一個,所述預設條件包括:第一狀態轉移的數目最多,若判斷第一狀態轉移的數目最多的狀態有至少兩個,則所述預設條件包括:在第一狀態轉移的數目最多的前提下,深度最小;

            第三標記子單元,用于判斷所述第一狀態集合中剩余的每個狀態,若該狀態與所述第一狀態對應同一字符有相同轉移的數目大于該狀態的第一狀態轉移的數目,則將該狀態標記為第二狀態;還用于將所述第二狀態再次分組到所述第一狀態所在的第二狀態集合中,并將所述第二狀態的指向所述第一狀態的轉移標記為第二狀態轉移;

            迭代子單元,用于將所述第一狀態集合中沒被再次分組的狀態組合成一個新的第一狀態集合,并將所述新的第一狀態集合發送到所述第一標記子單元和第二標記子單元以迭代執行再次分組的步驟,直到所述第一狀態集合中的每個狀態都被再次分組到第二狀態集合中。

            具體地,所述壓縮單元具體用于:

            對于每個所述第一狀態,保留該第一狀態的一個第一狀態轉移,將該第一狀態的不同于所述第一狀態轉移的轉移標記為第三狀態轉移,并保留所述第三狀態轉移,該第一狀態的其他轉移不保留;

            對于每個所述第二狀態,保留該第二狀態的一個第二狀態轉移,將與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,并保留所述第三狀態轉移,該第二狀態的其他轉移不保留。

            具體地,所述壓縮單元還具體用于:

            對于每個狀態的所述第三狀態轉移,若對應于連續的字符存在相同的第三狀態轉移,則對應于該連續的字符僅保留一個第三狀態轉移。

            根據本發明的第四方面,提供了一種正則表達式匹配系統,包括所述dfa壓縮裝置以及讀取單元、匹配單元,其中:

            讀取單元,用于讀取壓縮后的所述dfa的當前狀態和當前輸入字符;

            匹配單元,用于在所述當前狀態的第三狀態轉移中查找對應于所述當前輸入字符的第三狀態轉移;

            若判斷存在對應于所述當前輸入字符的第三狀態轉移,則根據該第三狀態轉移將所述當前狀態轉移到下一個狀態;

            若判斷不存在對應于所述當前輸入字符的第三狀態轉移,則通過判斷當前狀態為第一狀態或第二狀態,根據當前狀態的第一狀態轉移或第二狀態轉移將當前狀態轉移到下一個狀態。

            本發明提供的技術方案通過對dfa中的狀態和狀態的轉移進行標記,根據狀態的標記和轉移的標記對所述dfa進行壓縮,在不影響查找速率的情況下能達到較高的壓縮率,使dfa占用更少內存。

            附圖說明

            圖1為dfa狀態轉移圖和狀態轉移表;

            圖2為又一dfa狀態轉移圖和狀態轉移表;

            圖3為本發明實施例提供的dfa壓縮方法流程圖;

            圖4為本發明又一實施例提供的dfa壓縮方法流程圖;

            圖5為前端dfa壓縮后的效果圖;

            圖6為后端dfa壓縮后的效果圖;

            圖7為本發明實施例提供的dfa壓縮裝置結構圖;

            圖8為本發明又一實施例提供的dfa壓縮裝置結構圖;

            圖9為本發明實施例提供的正則表達式匹配系統結構圖。

            具體實施方式

            下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。

            dfa由不同類型的片段構造,如全部由正則表達式拆分得到的字符串片段構造的dfa、全部由錨定的字符串片段或只含單個混沌因子的錨定片段構造的dfa等。其中,混沌因子定義為符號組合“.*”、“[^□]*”、“.+”、“[^□]+”、“.{□}”或“[^□]{□}”。

            對于由字符串片段構造的dfa,也稱為前端dfa,片段的語法是串接。如圖1所示,圖1為字符串片段“fil”、“cmd”和“url”對應的dfa狀態轉移圖和狀態轉移表。對于每個串接字符,dfa都會存在對應于所述串接字符的狀態的前向轉移,所述前向轉移從深度低的狀態指向深度高的狀態。除了這些前向轉移之外,其它的轉移基本上都是指向初始狀態或者初始狀態的相鄰狀態的后向轉移,所述后向轉移從深度高的狀態指向深度低的狀態。

            例如,圖1所示的dfa狀態轉移表中,表的上方為字符,表的左側為dfa的狀態及狀態對應的深度,如2/1表示狀態2的深度為1,表中的數字表示每個狀態對應于不同字符的轉移指向的狀態。所有的轉移對應于字符‘f’、‘c’和‘u’都會分別指向狀態1、2或3,狀態1、2和3都是狀態0的相鄰狀態。除了前向轉移和指向狀態0的相鄰狀態的轉移,其他轉移都指向狀態0。因此,dfa狀態轉移表中大部分狀態的轉移都是相同的,所述轉移集中指向狀態0、1、2和3。

            由錨定的字符串片段或者只含單個混沌因子的錨定片段構造的dfa,也稱為后端dfa。后端dfa中片段的語法中不僅包含串接,而且包含錨定以及混沌因子。如圖2所示,圖2為錨定片段集合“^e=[^&]*\.exe”、“^=[^\n]{6}”、“^=[^\n]{3,5}”和“^\.com”對應的dfa狀態轉移圖和狀態轉移表。其中,錨定會使得所有狀態都含有指向死狀態的轉移,而且對于含有對應串接字符的前向轉移的狀態,錨定使該狀態其余的轉移都指向死狀態。此外,混沌因子“[^□]*”會產生一個中間狀態,所述中間狀態及其后續狀態對于字符集合“[^□]”中的字符幾乎都會指向該中間狀態。而對于混沌因子“[^□]{□}”,它能產生一條狀態鏈,鏈中每個狀態含有的對應于“[^□]”中的字符的前向轉移都指向該狀態在鏈中的相鄰狀態。因為混沌因子都會有一個范圍很大的“[^□]”,所以狀態鏈中各個狀態內的轉移對于大部分字符是相同的,而各個狀態間的轉移對于大部分字符是不同的,只要包含在“[^□]”中就不同。所述狀態內的轉移為對于每個狀態,該狀態的轉移。所述狀態間的轉移為狀態間對應于同一字符的轉移。

            例如,圖2中,錨定使得dfa中的所有狀態都含有指向死狀態11的轉移,而且對于狀態10、12、14、17、20、23和28,它們對應于除串接字符以外的其他字符的轉移都指向死狀態11。混沌因子“[^\&]*”產生了中間狀態15,使得狀態15、18、21、24和26對應于除字符‘&’和‘\.’以外的其他字符的非前向轉移都指向中間狀態15。混沌因子“[^\n]{6}”產生了狀態鏈13、16、19、22、25和27,使得這些狀態中與字符‘\n’以外的其他字符所對應的轉移都指向下一個相鄰狀態,即狀態16、19、22、25、27和28。混沌因子“[^\n]{6}”產生的狀態鏈中狀態間的轉移大部分是不同的,如狀態13和16。不同混沌因子“[^\n]{6}”中的狀態和“[^\&]*”的狀態間的轉移大部分也不同,如狀態13和15,而其他情況下狀態間的轉移大部分是相同的,如狀態11和12、狀態15和18。

            綜上,對于前端dfa中的每個狀態,存在該狀態對應于每個字符指向初始狀態的轉移,即狀態內的轉移一致性,以及狀態間對應于同一字符一致指向初始狀態以及初始狀態的相鄰狀態的轉移,即狀態間的轉移一致性。而對于后端dfa,串接的字符會帶來狀態內和狀態間一致指向死狀態的轉移,即狀態內和狀態間的轉移一致性;混沌因子“[^□]*”始終會產生中間狀態,并使得串接的字符帶來狀態內一致指向該中間狀態的轉移,即狀態內的轉移一致性,以及狀態間一致指向該中間狀態、該中間狀態的相鄰狀態和死狀態的轉移,即狀態間的轉移一致性;混沌因子“[^□]{□}”始終會產生狀態鏈,并帶來狀態內一致指向狀態鏈中相鄰狀態的轉移,即狀態內的轉移一致性和狀態間的轉移區分性。

            以上由于正則表達式的拆分特性使得狀態的大量相同轉移都是冗余的,本發明提出了dfa壓縮方法及裝置、正則表達式匹配方法及系統,最大程度地去除這些冗余的轉移,從而壓縮了正則表達式構造的dfa。但本發明不限于用于對以上兩種dfa片段進行壓縮,對于其他dfa片段中由相同轉移帶來的冗余問題,本發明普遍適用。

            下面對dfa進行介紹:

            dfa實際上為自動狀態機,由多個狀態、轉移邊和每個狀態的輸入組成。所述狀態用圓圈中的數字表示,所述轉移邊用箭頭表示,所述狀態的輸入用箭頭上的字符表示。dfa的特點是對于每一個狀態,確定的輸入一定有一個確定的輸出。如圖1所示的狀態0下,輸入f一定會轉移到狀態1。使用dfa進行匹配時,先指定狀態集合中的某一個狀態為起始狀態,分析器從起始狀態開始,每讀入一個字符就修改一次狀態,將當前狀態的下一個狀態重置為當前狀態。分析器在讀完所有字符后,會停留在一個確定的狀態,如果這個狀態與期望的狀態一致,則所述分析器接收了所述字符串,否則所述分析器拒絕了所述字符串。

            圖3為本發明實施例提供的dfa壓縮方法流程圖,如圖3所示,包括:s1,根據正則表達式集合構造dfa,所述dfa包括:字符、狀態和每個狀態各自對應于每個字符的轉移,對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態;s2,根據所述dfa中的相同轉移對狀態和轉移進行標記,其中所述相同轉移為指向同一狀態的轉移;s3,根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮。

            具體地,s1中的所述正則表達式一般包括表述匹配次數的量詞、表述具體位置的錨點和字符串,用于表示字符串集合的規則。在進行正則表達式匹配之前需要將正則表達式轉換成機器能閱讀的有限自動機。dfa的狀態轉移表是一張二維表,如圖1和圖2所示,包括字符、狀態和每個狀態各自對應于每個字符的轉移。對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態。s2中所述相同轉移為指向同一狀態的轉移,根據所述相同轉移對所述dfa中狀態和轉移進行標記,所述標記用于區分狀態和轉移。s3中根據狀態的標記和轉移的標記對不同狀態的不同轉移進行不同壓縮,所述壓縮為去除相同轉移,從而減少dfa中的數據。

            例如,圖1所示的dfa狀態轉移表包括狀態1-9,字符c、d、f、i、l、m、r、u和其他字符,以及狀態0-9各自對應于每個字符的轉移。對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態,如當前狀態為0,對應于字符f,所述轉移從狀態0指向狀態1。圖1所示的dfa狀態轉移表中存在指向狀態0、1、2和3的相同轉移,根據所述相同轉移對所述dfa中狀態和轉移進行標記。

            本實施例根據dfa中的相同轉移對dfa中的狀態和轉移進行標記,根據狀態的標記和轉移的標記對所述dfa進行壓縮,去除了dfa中冗余的轉移,使dfa占用更少內存。需要說明的是,對于其他情況下存在的由相同狀態轉移帶來的冗余問題,本實施例也能解決,不限于本實施例所列舉的情況。

            圖4為本發明又一實施例提供的dfa壓縮方法流程圖,如圖4所示,在上述實施例的基礎上,本實施例中所述根據所述dfa中的相同轉移對狀態和轉移進行標記,包括:s21,對于所述dfa中的每個狀態,選取該狀態的相同轉移數目最多的轉移標記為該狀態的第一狀態轉移,并將具有相同第一狀態轉移的狀態分組到一個第一狀態集合中;s22,對于每個所述第一狀態集合,將其中滿足預設條件的一個狀態標記為第一狀態,并將所述第一狀態再次分組到一個第二狀態集合中;其中,若判斷第一狀態轉移的數目最多的狀態只有一個,所述預設條件包括:第一狀態轉移的數目最多,若判斷第一狀態轉移的數目最多的狀態有至少兩個,則所述預設條件包括:在第一狀態轉移的數目最多的前提下,深度最小;s23,對于所述第一狀態集合中剩余的每個狀態,若判斷該狀態與所述第一狀態對應同一字符有相同轉移的數目大于該狀態的第一狀態轉移的數目,則將該狀態標記為第二狀態;s24,將所述第二狀態再次分組到所述第一狀態所在的第二狀態集合中,并將所述第二狀態的指向所述第一狀態的轉移標記為第二狀態轉移;s25,將所述第一狀態集合中沒被再次分組的狀態組合成一個新的第一狀態集合,對所述新的第一狀態集合迭代執行再次分組的步驟,直到所述第一狀態集合中的每個狀態都被分組到某一個第二狀態集合中。

            具體地,在s21中,所述第一狀態轉移指一個狀態轉移到相同狀態的轉移數目最多的轉移,也可以限定為一個狀態轉移到相同狀態的轉移數目大于預設閾值的轉移。選取狀態的第一狀態轉移后,判斷狀態的第一狀態轉移是否相同,將具有相同第一狀態轉移的狀態分組到一個集合中,所述集合為第一狀態集合。如果一個狀態的第一狀態轉移與其他狀態的第一狀態轉移都不同,則將所述狀態單獨分組到一個第一狀態集合中。

            在s22中,對于每個所述第一狀態集合,其中第一狀態轉移數目最多的狀態可能有一個或多個,若判斷第一狀態轉移的數目最多的狀態只有一個時,將該狀態標記為第一狀態。若判斷第一狀態轉移的數目最多的狀態有至少兩個時,在第一狀態轉移的數目最多的狀態中選擇深度最小的一個狀態標記為第一狀態。所述深度為一個狀態在狀態轉移圖中的層次為該狀態的深度,其中初始狀態的層次為0層。將標記的第一狀態再次單獨分組到一個第二狀態集合中。

            在s23中,從所述第一狀態集合中的剩余狀態中選擇第二狀態并標記,所述第二狀態的選擇標準為與所述第一狀態對應同一字符具有相同轉移的數目大于各自的第一狀態轉移數目。從中可以看出所述第二狀態與所述第一狀態對應同一字符具有的相同轉移中除了第一狀態轉移外,一定還包括其他相同轉移。

            在s24中,將滿足所述選擇標準的第二狀態再次分組到所述第一狀態所在的第二狀態集合中。并將所述第二狀態指向所述第一狀態的轉移標記為第二狀態轉移。

            在s25中,一輪分組后,將所述第一狀態集合中沒被再次分組的狀態重新組合成一個新的第一狀態集合,對所述新的第一狀態集合迭代再次分組的步驟,直到所述第一狀態集合中的每個狀態都被再次分組到某一個第二狀態集合中。第二狀態集合可能為一個第一狀態單獨組成的集合,也可能為第一狀態和第二狀態組成的集合。對每個狀態進行兩次分組是為了對狀態和轉移進行標記。

            例如,圖1中,所有狀態的第一狀態轉移相同,將所有狀態分組到一個第一狀態集合中。狀態0、7、8、9的第一狀態轉移數目最多,為6個,但狀態0的深度最小,為0,所以狀態0被標記為第一狀態。將狀態0再次分組到一個新的集合中,所述新的集合為第二狀態集合。對于除狀態0以外的其他每個狀態,與狀態0對應于同一字符具有相同轉移的數目為8或9大于它們自身的核心轉移數目為5或6。因此,將狀態1-9標記為第二狀態,并分組到狀態0所在的第二狀態集合中,將狀態1-9指向狀態0的轉移標記為第二狀態轉移。經過一輪分組,所有的狀態都被分組。

            圖2中,除狀態15、18、21、24和26組成的第二狀態集合以外。其他的每個第二狀態集合僅僅包含單個狀態。對于由狀態10、11、12、14、17、20、23和28,它們沒有被分組到一個第二狀態集合中,這是因為盡管它們具有相同的第一狀態轉移,即指向狀態11的轉移,但它們與狀態11對應于同一字符具有相同轉移的數目。

            本發明實施例對于所述dfa中的每個狀態進行兩次分組,根據分組結果對每個狀態和每個轉移進行標記,根據標記結果對dfa進行壓縮,去除了dfa中大量的相同轉移,使dfa占用更少的內存。

            在上述實施例的基礎上,本發明實施例中所述根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮,包括:對于每個所述第一狀態,保留該第一狀態的一個第一狀態轉移,將該第一狀態的不同于所述第一狀態轉移的轉移標記為第三狀態轉移,并保留所述第三狀態轉移,該第一狀態的其他轉移不保留;對于每個所述第二狀態,保留該第二狀態的一個第二狀態轉移,將與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,并保留所述第三狀態轉移,該第二狀態的其他轉移不保留。

            具體地,一個第一狀態的第一狀態轉移指向同一狀態,對于每個所述第一狀態,將該第一狀態的不同于所述第一狀態轉移的轉移標記為該第一狀態的第三狀態轉移,保留該第一狀態的一個第一狀態轉移和第三狀態轉移,該第一狀態的其他轉移不保留。一個第二狀態的第二狀態轉移都指向一個第一狀態。對于每個第二狀態,將該第二狀態與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,保留該第二狀態的一個第二狀態轉移和第三狀態轉移,該第二狀態的其他轉移不保留。不保留的轉移被去除掉,減少了所述dfa的數據。所述第一狀態轉移、所述第二狀態轉移和所述第三狀態轉移都有一個標記。其中,所述第三狀態轉移中有一個ascii字符,用于匹配輸入字符進行對應狀態的轉移。所述第一狀態轉移和所述第二狀態轉移有一個區分標記,用于區分所述第一狀態轉移和所述第二狀態轉移。

            圖5為前端dfa壓縮后的效果圖,如圖5所示,第一列中沒有星號的轉移為所述第一狀態轉移,對應的狀態為所述第一狀態。第一列中有星號的轉移為所述第二狀態轉移,對應的狀態為所述第二狀態。其它的轉移為所述第三狀態轉移。箭頭表示所述第二狀態指向所述第一狀態。狀態0為第一狀態,為狀態0保留一個第一狀態轉移,即從狀態0指向狀態0的轉移,以及不同于所述第一狀態轉移的第三狀態轉移,即對應字符c、f、i,從狀態0分別指向狀態2、1和3的轉移。狀態1-9為第二狀態,所述第二狀態的第二狀態轉移指向第一狀態,分別為所述第二狀態保留一個第二狀態轉移,即一個指向狀態0的轉移。并為所述第二狀態分別保留與狀態0對應同一字符的轉移不相同的第三狀態轉移,如對于狀態1,保留對應字符i指向狀態4的轉移。

            圖6為后端dfa壓縮后的效果圖,如圖6所示,狀態15、18、21、24和26組成一個第一狀態集合,其他的狀態各自單獨組成一個第一狀態集合。狀態15為第一狀態,為狀態15保留一個第一狀態轉移,即從狀態15轉移到狀態15,以及不同于所述第一狀態轉移的第三狀態轉移,即對于字符\n、\.,狀態15分別轉移到狀態11和18。狀態18、21、24和26為第二狀態,所述第二狀態的第二狀態轉移指向狀態15,分別為所述第二狀態保留一個第二狀態轉移,即一個指向狀態15的轉移。并為所述第二狀態分別保留與狀態15對應同一字符的轉移不相同的第三狀態轉移,如對于狀態18,保留對應字符e指向狀態21的轉移。對于其他僅由一個第一狀態組成的第一狀態集合,為所述第一狀態保留一個第一狀態轉移,如從狀態10指向狀態11的轉移,以及不同于所述第一狀態轉移的第三狀態轉移,如對應字符e從狀態10指向狀態12的轉移

            對于壓縮后的dfa,每個狀態的轉移大大減少,前端dfa的壓縮率rc為(9×10-19)/(9×10)≈79%,字符數|σ|=9。后端dfa的壓縮率rc為(10×19-37)/(10×19)≈81%,字符數|σ|=10。在實際應用中,字符數|σ|=256,對于dfa的壓縮率可以達到96%以上。與壓縮前的dfa相比,根據公式(nfdfa+nbdfa)*|σ|*(1-rc)*(log2(nfdfa+nbdfa)+8)計算壓縮前后dfa的內存占用大小。其中,nfdfa為前端dfa中的狀態數,nbdfa為后端dfa中的狀態數,rc為壓縮率,假設nfdfa+nbdfa=65536,rc=99%,壓縮前后的dfa內存占用分別為32mb和492kb,減少了幾乎兩個數量級的內存占用。

            本實施例對所述第一狀態和所述第二狀態的轉移進行不同方式的保留,對于所述第一狀態,消除了狀態內的冗余。對于所述第二狀態,既消除了狀態內的冗余,也消除了狀態間的冗余,具有較高的壓縮率。

            在上述實施例的基礎上,本實施例中所述根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮,還包括:對于每個狀態的所述第三狀態轉移,若對應于連續的字符存在相同的第三狀態轉移,則對應于該連續的字符僅保留一個第三狀態轉移。

            具體地,對于每個狀態的所述第三狀態轉移,如果對應于連續的字符存在相同的第三狀態轉移,則可以將相同的第三狀態轉移合并為一個字符范圍的第三狀態轉移。字符是否連續可以根據字符對應的ascii碼判斷。

            例如,一個第二狀態41的第二狀態轉移指向狀態40,第三狀態轉移為(a,41)、(b,41)、(c,41)、(e,42)、(f,41)和(g,41),第二狀態41的第三狀態轉移可以進一步壓縮為([a,c],41)、([e,e],42)和([f,g],41)。其中[a,c]表示字符范圍,是兩個8比特的值,左邊值表示范圍下限為a,字符a對應的ascii碼數值為65。右邊值表示范圍上限是c,字符c對應的ascii碼數值為67。在進行匹配時,按順序比較查找,比如在狀態41中查找對應字符f的轉移,先比較標記轉移([a,c],41)中的字符范圍[a,c],判斷獲知f的ascii碼數值比c的ascii碼數值大,繼續比較([e,e],42)中的字符范圍[e,e],判斷獲知f的ascii碼數值比e的ascii碼數值大,繼續比較([f,g],41)中的[f,g],發現f在[f,g]的端點,當前狀態轉移到下一個狀態41。本實施例中的情況是普遍存在的,通過對每個狀態的第三狀態轉移進行壓縮,進一步提高了dfa的壓縮率。

            本實施例提供了一種基于所述dfa壓縮方法的正則表達式匹配方法,包括:讀取壓縮后的所述dfa的當前狀態;在所述當前狀態的第三狀態轉移中查找對應于所述當前輸入字符的第三狀態轉移;若判斷存在對應于所述當前輸入字符的第三狀態轉移,則根據該第三狀態轉移將所述當前狀態轉移到下一個狀態;若判斷不存在對應于所述當前輸入字符的第三狀態轉移,則通過判斷當前狀態為第一狀態或第二狀態,根據當前狀態的第一狀態轉移或第二狀態轉移將當前狀態轉移到下一個狀態。

            具體地,所述通過判斷當前狀態為第一狀態或第二狀態,根據當前狀態的第一狀態轉移或第二狀態轉移將當前狀態轉移到下一個狀態,包括:當所述當前狀態為第一狀態時,根據所述當前狀態的第一狀態轉移,將所述當前狀態轉移到下一個狀態;當所述當前狀態為第二狀態時,根據所述當前狀態的第二狀態轉移,將所述當前狀態轉移到所述第二狀態轉移指向的所述第一狀態,在所述第一狀態的所述第三狀態轉移中查找對應于所述當前輸入字符的所述第三狀態轉移;若存在所述當前輸入字符的所述第三狀態轉移,則根據對應于所述當前輸入字符的所述第三狀態轉移,將所述當前狀態轉移到下一個狀態;若不存在所述當前輸入字符的所述第三狀態轉移,則根據所述第二狀態轉移指向的所述第一狀態的第一狀態轉移,將所述當前狀態轉移到下一個狀態。

            例如,根據圖5中壓縮的前端dfa對當前輸入字符進行匹配,如果當前狀態為0,當前輸入字符為‘f’,在狀態0的第三狀態轉移中查找輸入字符‘f’的第三狀態轉移,判斷存在對應于輸入字符‘f’的第三狀態轉移,將當前狀態0轉移到狀態1。如果當前狀態為3,當前輸入字符為‘r’,在狀態3的第三狀態轉移中查找輸入字符‘r’的第三狀態轉移,判斷存在對應于輸入字符‘r’的第三狀態轉移,將當前狀態3轉移到狀態6。如果當前狀態為0,當前輸入字符為‘d’,在狀態0的第三狀態轉移中查找輸入字符‘d’的第三狀態轉移,判斷存在輸入字符‘d’的第三狀態轉移,判斷狀態0為第一狀態,根據狀態0的第一狀態轉移,將當前狀態轉移到下一個狀態。如果當前狀態為2,當前輸入字符為‘c’,在狀態2的第三狀態轉移中查找輸入字符‘c’的第三狀態轉移,判斷不存在輸入字符‘c’的第三狀態轉移,判斷狀態2為第二狀態,根據狀態2的第二狀態轉移將狀態2轉移到所述第二狀態轉移指向的狀態0,在狀態0的所述第三狀態轉移中查找對應于字符‘c’的所述第三狀態轉移,判斷存在對應于字符‘c’的第三狀態轉移,則根據該第三狀態轉移,將當前狀態轉移到狀態2。如果當前狀態為3,當前輸入字符為‘d’。在狀態3的第三狀態轉移中查找輸入字符‘d’的第三狀態轉移,判斷不存在輸入字符‘d’的第三狀態轉移,判斷狀態3為第二狀態,根據狀態3的第二狀態轉移將狀態3轉移到所述第二狀態轉移指向的狀態0,在狀態0的所述第三狀態轉移中查找對應于字符‘d’的所述第三狀態轉移,判斷不存在對應于字符‘d’的所述第三狀態轉移,則根據狀態0的第一狀態轉移,將當前狀態轉移到下一個狀態。

            綜上所述,在非壓縮的dfa中,對應于當前輸入字符的狀態轉移能夠直接在當前狀態找到并執行,然而對于本實施例中壓縮后的dfa,根據當前狀態找到對應于當前輸入字符的狀態轉移有且只有5種可能且互斥的情況:

            情形1,對于當前的第一狀態,對應當前輸入字符的第三狀態轉移被找到并執行。比如圖3中當前狀態為0,當前輸入字符為‘f’;

            情形2,對于當前的第一狀態,沒有對應當前輸入字符的第三狀態轉移,即成為第一狀態轉移而被壓縮,第一狀態轉移被找到并執行。比如圖3中當前狀態為0,當前輸入字符為‘d’;

            情形3,對于當前的第二狀態,對應當前字符的第三狀態轉移被找到并執行。比如圖3中當前狀態為3,當前輸入字符為‘r’;

            情形4,對于當前的第二狀態,沒有對應當前輸入字符的第三狀態轉移,即成為第一狀態轉移而被壓縮,指向第一狀態的第一狀態轉移首先被執行,之后轉到情形1。比如圖3中當前狀態為2,當前輸入字符為‘c’;

            情形5,對于當前的第二狀態,沒有對應當前輸入字符的第三狀態轉移,即成為第一狀態轉移而被壓縮,指向第一狀態的第一狀態轉移首先被執行,之后轉到情形2。比如圖3中當前狀態為3,當前輸入字符為‘d’。

            上述情形1、2、3只需要一次狀態訪問,而情形4、5需要兩次狀態訪問。因為本發明實施例中根據當前狀態找到對應于當前輸入字符的狀態轉移有且只有5種可能且互斥的情況,所以本發明實施例最壞情況下的狀態訪問次數為確定的2次,能夠保證最壞的匹配處理性能。

            本實施例提供的基于所述dfa壓縮方法的正則表達式匹配方法,在使用壓縮后的dfa進行匹配時不影響查找速率。

            圖7為本發明實施例提供的dfa壓縮裝置結構圖,如圖7所示,包括構造單元71、標記單元72和壓縮單元73,其中:

            構造單元71用于根據正則表達式集合構造dfa,所述dfa包括:字符、狀態和每個狀態各自對應于每個字符的轉移,對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態;標記單元72用于根據所述dfa中的相同轉移對狀態和轉移進行標記,其中所述相同轉移為指向同一狀態的轉移;壓縮單元73用于根據所述狀態的標記和所述轉移的標記對所述dfa進行壓縮。

            具體地,所述正則表達式一般包括表述匹配次數的量詞、表述具體位置的錨點和字符串,用于表示字符串集合的規則。在進行正則表達式匹配之前所述構造單元71需要將正則表達式轉換成機器能閱讀的有限自動機。dfa的狀態轉移表是一張二維表,如圖1和圖2所示,包括字符、狀態和每個狀態各自對應于每個字符的轉移。對應于每個字符,所述轉移從當前狀態指向與該字符相應的一個狀態。所述相同轉移為指向同一狀態的轉移,所述標記單元72根據所述相同轉移對所述dfa中狀態和轉移進行標記,所述標記用于區分狀態和轉移。所述壓縮單元73根據狀態的標記和轉移的標記對不同狀態的不同轉移進行不同壓縮,所述壓縮了為去除相同轉移,從而減少dfa中的數據。本實施例的舉例參考方法中對應的舉例,此處不再贅述。

            本實施例中標記單元根據dfa中的相同轉移對dfa中的狀態和轉移進行標記,壓縮單元根據狀態的標記和轉移的標記對所述dfa進行壓縮,去除了dfa中冗余的轉移,使dfa占用更少內存。

            在上述實施例的基礎上,圖8為本發明實施例提供的dfa壓縮裝置結構圖,如圖8所示,所述標記單元72包括所述標記單元包括第一標記子單元721、第二標記子單元722、第三標記子單元723和迭代子單元724,其中:

            所述第一標記子單元721用于為所述dfa中的每個狀態選取該狀態的相同轉移數目最多的轉移標記為該狀態的第一狀態轉移,并將具有相同第一狀態轉移的狀態分組到一個第一狀態集合中;所述第二標記子單元722用于將每個所述第一狀態集合中滿足預設條件的一個狀態標記為第一狀態,并將所述第一狀態再次分組到一個第二狀態集合中;其中,若判斷第一狀態轉移的數目最多的狀態只有一個,所述預設條件包括:第一狀態轉移的數目最多,若判斷第一狀態轉移的數目最多的狀態有至少兩個,則所述預設條件包括:在第一狀態轉移的數目最多的前提下,深度最小;所述第三標記子單元用于723判斷所述第一狀態集合中剩余的每個狀態,若該狀態與所述第一狀態對應同一字符有相同轉移的數目大于該狀態的第一狀態轉移的數目,則將該狀態標記為第二狀態;還用于將所述第二狀態再次分組到所述第一狀態所在的第二狀態集合中,并將所述第二狀態的指向所述第一狀態的轉移標記為第二狀態轉移;所述迭代子單元724用于將所述第一狀態集合中沒被再次分組的狀態組合成一個新的第一狀態集合,并將所述新的第一狀態集合發送到所述第二標記子單元和第三標記子單元以迭代執行再次分組的步驟,直到所述第一狀態集合中的每個狀態都被再次分組到第二狀態集合中。

            具體地,所述第一狀態轉移指一個狀態轉移到相同狀態的轉移數目最多的轉移,也可以限定為一個狀態轉移到相同狀態的轉移數目大于預設閾值的轉移。所述第一標記單元721選取狀態的第一狀態轉移后,判斷狀態的第一狀態轉移是否相同,將具有相同第一狀態轉移的狀態分組到一個集合中,所述集合為第一狀態集合。如果一個狀態的第一狀態轉移與其他狀態的第一狀態轉移都不同,則所述第一標記單元721將所述狀態單獨分組到一個第一狀態集合中。

            對于每個所述第一狀態集合,其中第一狀態轉移數目最多的狀態可能有一個或多個,若判斷第一狀態轉移的數目最多的狀態只有一個時,所述第二標記單元722將該狀態標記為第一狀態。若判斷第一狀態轉移的數目最多的狀態有至少兩個時,所述第二標記單元722在第一狀態轉移的數目最多的狀態中選擇深度最小的一個狀態標記為第一狀態,并將標記的第一狀態再次單獨分組到一個第二狀態集合中。

            所述第三標記單元723從所述第一狀態集合中的剩余狀態中選擇第二狀態并標記,所述第二狀態的選擇標準為與所述第一狀態對應同一字符具有相同轉移的數目大于各自的第一狀態轉移數目。從中可以看出所述第二狀態與所述第一狀態對應同一字符具有的相同轉移中除了第一狀態轉移外,一定還包括其他相同轉移。

            所述第三標記單元723將滿足所述選擇標準的第二狀態再次分組到所述第一狀態所在的第二狀態集合中,并將所述第二狀態指向所述第一狀態的轉移標記為第二狀態轉移。

            一輪分組后,所述迭代單元724將所述第一狀態集合中沒被再次分組的狀態重新組合成一個新的第一狀態集合,對所述新的第一狀態集合迭代再次分組的步驟,直到所述第一狀態集合中的每個狀態都被再次分組到某一個第二狀態集合中。第二狀態集合可能為一個第一狀態單獨組成的集合,也可能為第一狀態和第二狀態組成的集合。對每個狀態進行兩次分組是為了對狀態和轉移進行標記。本實施例的舉例參考方法中對應的舉例,此處不再贅述。

            本實施例對于所述dfa中的每個狀態進行兩次分組,根據分組結果對每個狀態和每個轉移進行標記,根據標記結果對dfa進行壓縮,去除了dfa中大量的相同轉移,使dfa占用更少的內存。

            在上述實施例的基礎上,本發明實施例中壓縮單元73具體用于對于每個所述第一狀態,保留該第一狀態的一個第一狀態轉移,將該第一狀態的不同于所述第一狀態轉移的轉移標記為第三狀態轉移,并保留所述第三狀態轉移,該第一狀態的其他轉移不保留;對于每個所述第二狀態,保留該第二狀態的一個第二狀態轉移,將與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,并保留所述第三狀態轉移,該第二狀態的其他轉移不保留。

            具體地,一個第一狀態的第一狀態轉移指向同一狀態,對于每個所述第一狀態,壓縮單元73將該第一狀態的不同于所述第一狀態轉移的轉移標記為該第一狀態的第三狀態轉移,保留該第一狀態的一個第一狀態轉移和第三狀態轉移,該第一狀態的其他第一狀態轉移不保留。一個第二狀態的第二狀態轉移都指向一個第一狀態,對于每個第二狀態,壓縮單元73將該第二狀態與所述第一狀態對應同一字符的轉移不相同的轉移標記為該第二狀態的第三狀態轉移,保留該第二狀態的一個第二狀態轉移和第三狀態轉移,該第二狀態的其他轉移不保留。不保留的轉移被去除掉,減少了所述dfa中的數據。所述第一狀態轉移、所述第二狀態轉移和所述第三狀態轉移都有一個標記。其中,所述第三狀態轉移中有一個ascii字符,用于匹配輸入字符進行對應狀態的轉移。所述第一狀態轉移和所述第二狀態轉移有一個區分標記,用于區分所述第一狀態轉移和所述第二狀態轉移。本實施例的舉例參考方法中對應的舉例,此處不再贅述。

            本實施例對所述第一狀態和所述第二狀態的轉移進行不同方式的保留,對于所述第一狀態,消除了狀態內的冗余。對于所述第二狀態,既消除了狀態內的冗余,也消除了狀態間的冗余,具有較高的壓縮率。

            在上述實施例的基礎上,本實施例中的壓縮單元73還具體用于對于每個狀態的所述第三狀態轉移,若對應于連續的字符存在相同的第三狀態轉移,則對應于該連續的字符僅保留一個第三狀態轉移。

            具體地,對于每個狀態的所述第三狀態轉移,如果對應于連續的字符存在相同的第三狀態轉移,則壓縮單元73可以將相同的第三狀態轉移合并為一個字符范圍的第三狀態轉移。字符是否連續可以根據字符對應的ascii碼判斷。本實施例的舉例參考方法中對應的舉例,此處不再贅述。本實施例中的情況是普遍存在的,通過對每個狀態的第三狀態轉移進行壓縮,進一步提高了dfa的壓縮率。

            圖9為本發明實施例提供的正則表達式匹配系統結構圖,如圖9所示,包括所述壓縮裝置以及讀取單元74、匹配單元75,其中:讀取單元74用于讀取壓縮后的所述確定有限自動機的當前狀態和當前輸入字符;匹配單元75用于在所述當前狀態的第三狀態轉移中查找對應于所述當前輸入字符的第三狀態轉移;若判斷存在對應于所述當前輸入字符的第三狀態轉移,則根據該第三狀態轉移將所述當前狀態轉移到下一個狀態;若判斷不存在對應于所述當前輸入字符的第三狀態轉移,則通過判斷當前狀態為第一狀態或第二狀態,根據當前狀態的第一狀態轉移或第二狀態轉移將當前狀態轉移到下一個狀態。

            具體地,所述匹配單元75具體用于當所述當前狀態為第一狀態時,根據所述當前狀態的第一狀態轉移,將所述當前狀態轉移到下一個狀態;當所述當前狀態為第二狀態時,根據所述當前狀態的第二狀態轉移,將所述當前狀態轉移到所述第二狀態轉移指向的所述第一狀態,在所述第一狀態的所述第三狀態轉移中查找對應于所述當前輸入字符的所述第三狀態轉移;若存在所述當前輸入字符的所述第三狀態轉移,則根據對應于所述當前輸入字符的所述第三狀態轉移,將所述當前狀態轉移到下一個狀態;若不存在所述當前輸入字符的所述第三狀態轉移,則根據所述第二狀態轉移指向的所述第一狀態的第一狀態轉移,將所述當前狀態轉移到下一個狀態。本實施例的舉例參考方法中對應的舉例,此處不再贅述。本實施例最壞情況下的狀態訪問次數為確定的兩次,能夠保證最壞的匹配處理性能。本實施例提供的正則表達式匹配系統,在使用壓縮后的dfa進行匹配時不影響查找速率。

            本發明提出的dfa壓縮方法及裝置、正則表達式匹配方法及系統,并不局限于網絡安全、網絡監控和網絡過濾領域,凡是基于內容的網絡處理服務或者涉及到利用給定特征來匹配給定內容的應用,都能使用基于本發明提出的正則表達式壓縮、匹配方法進行優化處理,比如海量數據的查找和分類、web搜索、文本編輯中的查找替換等。

            最后,本申請的方法僅為較佳的實施方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

            當前第1頁1 2 
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品