《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種存儲優化的多模式匹配算法
一種存儲優化的多模式匹配算法
2015年微型機與應用第2期
段惠超,韓建民,邱 晟
(浙江師范大學 數理與信息工程學院,浙江 金華 321004)
摘要: AC(Aho-Corasick)自動機是經典的多模式匹配算法,但在模式串字符集較大的情況下,AC自動機的存儲開銷較大。為降低存儲開銷提出了存儲優化的多模式匹配算法SMMA,該算法在Trie樹建立階段利用正向表來存儲每個狀態的后續狀態指針以及失配指針,而無需存儲字符集所有字符的后繼指針,從而壓縮了每個狀態的儲存空間。實驗表明,所提出的算法與AC自動機算法在時間效率上相近,但極大地降低了存儲開銷。
Abstract:
Key words :

  摘  要: AC(Aho-Corasick)自動機是經典的多模式匹配算法,但在模式串字符集較大的情況下,AC自動機的存儲開銷較大。為降低存儲開銷提出了存儲優化的多模式匹配算法SMMA,該算法在Trie樹建立階段利用正向表來存儲每個狀態的后續狀態指針以及失配指針,而無需存儲字符集所有字符的后繼指針,從而壓縮了每個狀態的儲存空間。實驗表明,所提出的算法與AC自動機算法在時間效率上相近,但極大地降低了存儲開銷。

  關鍵詞: 模式匹配;AC自動機;Trie樹

0 引言

  模式匹配算法一直是信息領域的研究熱點,廣泛應用于入侵檢測、生物信息學、模式識別等領域[1]。模式匹配算法可以分為單模式匹配算法[2-3]和多模式匹配算法[4-8]。Aho-Corasick算法[4](以下簡稱AC算法)是經典的多模式匹配算法,它把所有模式串構建成Trie樹,并進一步預處理得到有限狀態自動機,對主串的一次掃描即可完成所有模式串的匹配。Commentz-Walter算法(CW算法)[5]建立反向自動機,在模式匹配階段利用壞字規則和好后綴規則,在失配時滑動最大的距離,實現了模式串的跳躍匹配,減少了時間開銷。Wu-Manber(WM)算法[6]對多模式串進行預處理,建立三張映射表進行部分匹配,最后進行全模式匹配,提高了效率。參考文獻[7]提出了改進的多模式匹配算法,在DFSA算法的基礎上,結合QS算法[8]思想,利用匹配過程中匹配失敗信息,跳過盡可能多的字符。

  AC算法的一個不足是需要為自動機每個狀態分配空間,在模式串字符集比較大的情況下,算法空間復雜度比較大。極端情況下,需要使用外存來保存匹配過程的中間信息,嚴重影響算法效率。為此,參考文獻[9]提出基于異構隱式存儲的多模式匹配算法,從橫向扇出壓縮與縱向路徑壓縮入手,減少了空間開銷,但算法的空間壓縮率不高,且算法效率有所降低。參考文獻[10]通過選擇性分群減小匹配算法的空間復雜度,有效解決導致DFA狀態膨脹的問題。參考文獻[11]提出了對DFA進行高效存儲的方法,從DFA狀態數目和狀態轉移數目兩方面進行壓縮。在復合的FSM中,利用新的正則特征,進一步存儲壓縮,但是算法實現復雜、壓縮性能不穩定、時間效率不高,實際工程應用不理想。為了減少自動機各結點的存儲空間,TUCK N等人[12]在每個結點中增加一個位圖數據,以記錄當前結點所有的下一層結點的狀態,壓縮了存儲空間。AC-bitmap[13]則將自動機的所有結點按模式樹結構的層數進行劃分,使得兩種存儲方式共存,以壓縮算法的存儲空間。但是,基于位圖壓縮自動機算法要求采用連續的地址空間存儲,以加快轉移時的查找速度,算法實現比較復雜,并且算法要求為每個結點存儲一個位圖信息,隨著字母表的不斷增大,其存儲空間將迅速增大。

  為更好地優化多模式匹配算法的空間復雜度,本文提出了基于存儲優化的多模式匹配算法(Storage-optimized Multi-pattern Matching Algorithm,SMMA)。該算法在建立Trie樹時,動態建立自動機上每個狀態結點的字符集,只保留Trie樹上的有效路徑信息,以保證用最小的空間代價存儲模式串的所有信息,避免了無效字符路徑的創建,壓縮了儲存空間。在模式匹配階段,通過在自動機上的狀態轉移完成匹配。在保持算法時間復雜度不變的情況下,顯著降低了算法的空間開銷。

1 相關概念

  定義1 設p為Trie樹的一個結點,則Trie樹中從根結點到結點p的簡單路徑上所有字符組成的字符序列稱為結點p的路徑,記為path(p)。構成path(p)中字符的個數稱為結點p的路徑長度,記為Len(p)。

  定義2 設p為Trie樹的一個結點,若結點p的路徑path(p)是一個模式串,則稱結點p為匹配點,否則稱為非匹配點。

  定義3 自動機M是一個五元組:M=(Q,?撞,g,q0,F)。其中:Q是有窮狀態集;?撞是字母表;g是轉移函數,轉向下一個狀態;q0是初始狀態;F是自動機M上的終止狀態集。

  定義4 設pa、p為自動機上的狀態結點,c為字符集中的一個字符,若?堝p,pa,c,path(p)=c+path(pa),p∈Q,pa∈Q,c∈(sigma),則稱pa為p的后綴結點,記為S(p)。

  定義5 設p為Trie樹的一個結點,當且僅當結點p或其后綴結點為匹配點,結點p具有匹配性。

  定義6 設p為自動機上的一個狀態結點,則稱Len(S(p))為結點p的匹配長度。

2 SMMA模式匹配算法

  2.1 SMMA算法的基本思想

  SMMA算法包括三個階段:建立Trie樹階段、建立自動機階段和模式匹配階段。SMMA算法在建立Trie樹時,并不像傳統的AC自動機那樣為每一個結點開辟字符集大小的后繼指針空間,而是根據具體的模式串信息動態地擴增Trie樹結點的后繼指針空間,因此只保留Trie樹上的有效路徑信息,避免了無效字符路徑的創建,壓縮了儲存空間。在實現時,SMMA用正向表來存儲Trie樹。

  建立自動機和模式匹配階段都有查詢當前結點cur的某個后繼ch的操作goto(cur,ch)。若當前結點的后繼結點不存在,則繼續查詢goto(fail[cur],ch)。為了快速求得所需的后繼結點,本文用Next(cur,ch)函數獲得后繼結點編號,Next()函數的實現在2.3節介紹。

  2.2 正向表

  正向表是一種邊表,空間代價與鄰接表相當,由于正向表沒有使用指針而減少了一部分結構性開銷,在存儲樹和稀疏圖時具有巨大優勢。將正向表應用于AC自動機多模式匹配算法,可以壓縮所需的存儲空間,減少算法空間開銷。

  2.3 結點后繼獲得函數Next()

  算法1 結點后繼獲得函數Next(x,c)

  輸入:當前結點編號x,轉移字符c

  輸出:當前結點x以字符c為轉移條件的后繼結點編號

 ?、俪跏蓟呏羔榠←head[x];

 ?、谌暨呏羔榠為空,則轉到⑤;

  ③若edge[i].ch==c,則返回edge[i].to結點的編號;

 ?、苓呏羔榠指向下一條邊:i←edge[i].next,并轉到②;

 ?、萑艚Y點x為根結點,則返回0(根結點編號);

 ?、捱f歸調用結點后繼獲得函數,返回Next(tree[x].fail,c)。

  2.4 建立Trie樹階段

  算法2 模式串插入算法

  輸入:待插入字符串arr[],待插入字符串的標號index

  輸出:將字符串arr[]插入Trie樹

  ①初始化字符指針i←0,設置當前結點指針cur←0(Trie樹根結點),計算字符串長度len←strlen(arr);

 ?、谌鬷≥len,則轉到{13};

 ?、鄢跏蓟呏羔榡←head[cur];

  ④若邊指針j為空,則轉到⑦;

 ?、萑鬳dge[j].ch==arr[i],則轉到⑦;

 ?、捱呏羔榡指向下一條邊:j←edge[j].next,并轉到④;

 ?、呷暨呏羔榡非空,則轉到⑨;

 ?、嗲蹇战Y點編號為nodeNo的結點,增加一條以cur為源點,以nodeNo為終點,邊上的字符為arr[i]的有向邊,并依次設置cur←nodeNo,nodeNo←nodeNo+1,轉到⑩;

 ?、釋dge[j].to結點設置為當前結點:cur←edge[j].to;

 ?、馊鬷!=len-1,則轉到{12};

  {11}更新當前結點信息:tree[cur].end←index,tree[cur].len←len,tree[cur].isDanger←True;

  {12}設置i←i+1,轉到②;

  {13}插入完成,返回。

  2.5 建立自動機階段

  建立自動機是實現SMMA算法的關鍵。建立自動機時,需要對Trie樹進行廣度優先遍歷(Breadth First Search,BFS),預處理Trie樹上每個結點的后綴結點、匹配性等信息,以便在模式匹配階段快速轉移狀態,在失配時,能根據建立自動機階段預處理出的信息快速確定所需要的后繼狀態。利用Next()函數快速返回其后綴結點的編號。

  算法3 自動機建立算法

  輸入:Trie樹Tree[]

  輸出:建立自動機

 ?、俪跏蓟犃蠶的隊頭指針l和隊尾指針h:l←0,h←0,并設置邊指針i←head[0];

  ②若邊指針i為空,則轉到⑤;

 ?、蹖dge[i].to結點放入隊尾:Q[h]←edge[i].to,h←h+1,并設置edge[i].to結點的后綴結點為自動機的起始結點:tree[edge[i].to].fail←0;

 ?、苓呏羔榠指向下一條邊:i←edge[i].next,并轉到②;

 ?、萑鬺≥h,則轉到⑩;

  ⑥設置當前結點指針cur:cur←Q[l],l←l+1,并設置邊指針i←head[cur];

  ⑦若邊指針為空,則轉到⑤;

 ?、嗬媒Y點后繼獲得函數計算edge[i].to結點的后綴結點:tree[edge[i].to].fail←child(tree[cur].fail,edge[i].ch),更新edge[i].to結點的信息并將該結點放入隊尾:tree[edge[i].to].isDanger←tree[edge[i].to].isDanger|tree[tree[edge[i].to].fail].isDanger,Q[h]←edge[i].to,h←h+1;

  ⑨邊指針i指向下一條邊:i←edge[i].next,并轉到⑦;

 ?、庾詣訖C建立完成,返回。

  2.6 模式匹配階段

  從自動機的初始狀態結點開始,以主串中各字符為轉移條件,用Next()函數返回當前結點的后繼結點,再將當前結點指針cur轉移到該后繼結點上。若該結點未被訪問并且具有匹配性,則設置臨時結點指針p,并賦初值為cur,同時標記該結點為已訪問的結點,根據具體需要獲取數據信息,再將結點指針p轉移到結點p的后綴結點上。

3 算法的時空復雜度

  設自動機的狀態結點個數為N,字符集規模為∑,文本主串長度為L,模式串集合大小為P,模式串集合的總規模為1.jpg,其中,l(i)為第i個模式串的長度。

  3.1 空間復雜度分析

  在建立自動機階段,AC算法需要對每個狀態結點建立字符集大小的空間,空間復雜度為O(N*?撞)。SMMA算法對于自動機的每個狀態結點只保留必要的結點信息,其所占用的存儲空間大小與自動機的結點個數呈線性相關,因此SMMA算法存儲自動機的空間復雜度為O(N)。AC算法和SMMA算法都需要存儲待匹配的文本主串和各模式串的信息,存儲待匹配的文本主串的空間復雜度為O(L),存儲模式串集合具體信息的空間復雜度為2.jpg)。

  因此,AC算法的總空間復雜度為3.jpg∑+L),SMMA算法的總空間復雜度為4.jpg+L)。但隨著字符集規?!坪湍J酱螾的增大,AC算法的空間消耗的增長速度遠快于SMMA算法。

  3.2 時間復雜度分析

  在建立Trie樹階段,在插入模式串的每個字符時都需要遍歷當前結點的所有后繼結點,該階段最差時間復雜度為5.jpg

  在建立自動機階段,SMMA算法需要通過BFS序遍歷所有結點,預處理出每個狀態結點的后綴結點、匹配性等重要信息,對于Trie樹上的每一條從根到葉的路徑上的結點來說,它們的后綴結點離根的距離一般是逐層增長的,若不是,則進行多次回溯,而回溯的總次數不會大于路徑上的結點個數,其平均時間復雜度為O(l(i)*∑),所以建立自動機階段的最差時間復雜度為O(N*∑)。

  在主串匹配階段,SMMA算法轉移所需的時間復雜度為O(∑)。由于可能出現主串失配的情況而需要多次回溯查找后繼結點,但每次失配時,回溯查詢的次數最多僅為當前結點所在層的深度。因此最壞情況下進行了主串長度次回溯,其平均時間復雜度為O(L*∑),而設立臨時結點指針回溯查詢具有相同后綴的模式串的次數不會超過自動機的狀態結點數,其最差時間復雜度為O(N),因此主串匹配階段的總時間復雜度為O(L*∑+N)。

  AC算法在建立Trie樹階段的時間復雜度為6.jpg,在建立自動機階段的時間復雜度為O(N*∑),在主串匹配階段的時間復雜度為O(L)。

  綜上所述,SMMA的總時間復雜度為O(∑(l(i)*∑)+N*∑+L*∑+N),在字符集規模?撞和模式串集合P不斷增大的情況下,SMMA算法和AC算法的時間開銷具有相同數量級的增長速度。

4 實驗仿真

  實驗部分測試了SMMA算法,同時比較SMMA算法和AC算法、AC_bitmap算法的時間開銷和空間開銷。本文隨機產生100 KB文本主串,并給出不同字符集大小的模式串集合,各模式串長度均為100 B,程序運行結果:處理模式串集合,給出每個模式串與主串的關系信息,例如模式串是否匹配、模式串在主串中的位置等。實驗所得數據如圖1~圖6所示,其中P為模式串規模,∑為字符集大小。

  分析可見SMMA算法在漸近時間復雜度上與AC算法相同,僅在常數上有所增加,在模式串規模擴大、字符集大小增大的情況下,SMMA算法極大地減少了多模式匹配算法的空間消耗。SMMA算法與AC_bitmap算法的時空效率十分接近,平均情況下,SMMA算法的時間效率比AC_bitmap算法提升了5.8%,空間消耗減少了16.3%。但隨著模式串規模和字符集大小的增加,SMMA算法的優勢更加明顯。

5 結論

  本文提出的SMMA算法避免了無效字符路徑的創建,壓縮了多模式匹配算法的儲存空間,優化了空間效率,有效地改進了AC算法在存儲空間上的缺陷。實驗結果表明,SMMA算法具有高效的時空效率,在模式串規模與字符集規模增大的情況下,優勢更加明顯。

  參考文獻

  [1] 王培鳳,李莉.基于Aho-Corasick算法的多模式匹配算法研究[J].計算機應用研究,2011,28(4):1251-1259.

  [2] KNUTH D E, MORRIS J H. Pattern matching in strings[J]. SIAM Journal on Computing,1977,6(2):323-350.

  [3] BOYER R S, MOORE J S. A fast string searching algorithm [J]. Communications of the ACM, 1988,20(10):762-772.

  [4] AHO A V, CORASICK M J. Efficient string matching: an aid to bibliographic search[J]. Communications of the ACM,1975,18(6):330-340.

  [5] COMMENTS W R. A string matching algorithm fast on the average[C]. Proceedings of the 6th Colloquium on Automata, Language and Programming[S.1.]: Springer-Verlag, 1979.

  [6] Wu Sun, MANBER U. A fast algorithm for multi-pattern searching[Z]. Taiwan, China: Department of Computer Science, Chung-Cheng University, 1994.

  [7] 王永成,沈州,許一震.改進的多模式匹配算法[J].計算機研究與發展,2002,39(1):55-60.

  [8] SUNDAY D M. A very fast substring search algorithm[J]. Communications of the ACM, 1990,33(8):132-142.

  [9] 李志東,楊武,張汝波,等.基于異構隱式存儲的多模式匹配算法[J].通信學報,2009,30(3):119-124.

  [10] 徐乾,鄂躍鵬,葛敬國,等.深度包檢測中一種高效的正則表達式壓縮算法[J].軟件學報,2009,20(8):2214-2226.

  [11] 于強,霍紅衛.一組提高存儲效率的深度包檢測算法[J].軟件學報,2011,22(1):149-163.

  [12] TUCK N, SHERWOOD T, CALDER T, et al. Deterministic memory efficient string matching algorithms for intrusion detection[C]. Proceedings of the 23rd Annual Joint Conference of IEEE Computer and Communications Societies, New Jersey: IEEE Press, 2004: 2628-2639.

  [13] 張元競,張偉哲.一種基于位圖的多模式匹配算法[J].哈爾濱工業大學學報,2010,42(2):277-280.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          免费av成人在线| 亚洲综合色丁香婷婷六月图片| 欧美三级特黄| 亚洲天堂久久| 亚洲伦理在线| 亚洲一区二区精品| 亚洲激情在线激情| 亚洲国产精品www| 欧美亚洲综合另类| 国产午夜一区二区三区| 亚洲国产高清自拍| 久久精品国产精品| 亚洲精品免费观看| 国产一区视频观看| 欧美激情一区二区在线| 免费美女久久99| 亚洲区一区二| 国产一区二区三区久久精品| 国产欧美日韩一区二区三区在线| 亚洲免费高清| 国产真实乱偷精品视频免| 国产真实乱偷精品视频免| 亚洲人体偷拍| 99热精品在线| 激情久久婷婷| 国产日韩在线亚洲字幕中文| 亚洲另类一区二区| 欧美激情中文不卡| 日韩午夜电影在线观看| 久久精品国产77777蜜臀| 国产精品区一区二区三区| 亚洲你懂的在线视频| 99人久久精品视频最新地址| 国产精品久久久99| 欧美日韩一区二区三区免费看| 久久久久久久综合| 亚洲国产精品热久久| 一区二区三区久久久| 欧美一二三区在线观看| 久久精品视频亚洲| 欧美日韩在线第一页| 99精品国产在热久久下载| 欧美精品一区二区三| 国产精品黄色在线观看| 99视频精品全部免费在线| 久久伊人一区二区| 久久精品日韩一区二区三区| 久久综合伊人77777尤物| 亚洲自啪免费| 欧美色精品在线视频| 夜色激情一区二区| 欧美伦理a级免费电影| 一区二区亚洲欧洲国产日韩| 欧美成人免费在线视频| 欧美亚洲成人免费| 国产精品美女www爽爽爽视频| 麻豆精品国产91久久久久久| 久久久久久久尹人综合网亚洲| 久久精品视频在线免费观看| 欧美一区二区网站| 欧美日韩在线观看一区二区三区| 99riav1国产精品视频| 亚洲国产精品精华液网站| 欧美日韩精品久久久| 精久久久久久久久久久| 欧美经典一区二区| 日韩视频一区二区在线观看| 好吊一区二区三区| 亚洲精品少妇| 国产一区二区三区在线观看网站| 久久久久在线观看| 亚洲美女在线视频| 亚洲欧洲在线观看| 香蕉久久精品日日躁夜夜躁| 在线日韩中文字幕| 国产精品久久久久久久久久三级| 亚洲视频免费在线| 一区二区三区在线观看国产| 国产精品人人爽人人做我的可爱| 激情亚洲一区二区三区四区| 日韩亚洲国产欧美| 亚洲欧美日韩国产一区二区| 亚洲人成网站影音先锋播放| 欧美国产视频在线观看| 99在线观看免费视频精品观看| 国产日产欧产精品推荐色| 免费成人性网站| 国产精品一区二区在线| 精品动漫一区二区| 亚洲国产欧美精品| 欧美精品精品一区| 亚洲国产成人在线视频| 99国产精品99久久久久久| 欧美中文字幕在线视频| 欧美亚洲色图校园春色| 国产日韩欧美二区| 欧美寡妇偷汉性猛交| 国语精品中文字幕| 国内自拍视频一区二区三区| 亚洲第一中文字幕在线观看| 国产一区二区三区高清| 夜夜嗨av一区二区三区四季av| 欧美成人精品福利| 久久裸体艺术| 久久成人免费电影| 亚洲国产高清aⅴ视频| 亚洲精品美女在线观看播放| 国产亚洲日本欧美韩国| 欧美人妖另类| 国产精品综合av一区二区国产馆| 久久一二三国产| 欧美在线视频在线播放完整版免费观看| 久久久免费av| 日韩五码在线| 久久人人97超碰精品888| 久久伊人免费视频| 一区二区三区黄色| 国产欧美不卡| 久久亚洲影音av资源网| 欧美日韩一区二区免费视频| 亚洲国产婷婷香蕉久久久久久99| 欧美精品免费视频| 欧美国产日韩一区二区| 免费成人高清| 国产精品一区二区视频| 久久精品视频播放| 国产精品爱久久久久久久| 欧美乱妇高清无乱码| 亚洲级视频在线观看免费1级| 国产精品www网站| 麻豆精品国产91久久久久久| 日韩午夜av| 国产精品久久99| 亚洲激情在线视频| 国产精品亚洲网站| 国产一级久久| 亚洲精品综合| 欧美日韩在线视频观看| 欧美日韩1234| 欧美电影免费网站| 久久精品免费| 亚洲综合视频在线| 伊人久久久大香线蕉综合直播| 韩国一区二区三区美女美女秀| 最新国产乱人伦偷精品免费网站| 欧美日韩成人一区| 欧美激情导航| 亚洲一区在线直播| 亚洲精品乱码久久久久| 亚洲国产天堂久久综合网| 久热精品在线| 亚洲成色www久久网站| 国产午夜精品理论片a级大结局| 老司机成人网| 亚洲国产一区在线| 亚洲日本va午夜在线电影| 国产主播一区二区三区四区| 一本久久知道综合久久| 99国产精品久久久久久久久久| 久久野战av| 亚洲国产精品第一区二区| 欧美视频国产精品| 国产精品成人av性教育| 欧美韩国在线| 久久精品欧美| 国产一区二区三区四区五区美女| 国产精品99久久久久久久女警| 校园激情久久| 欧美欧美天天天天操| 国产精品一级久久久| 在线国产精品一区| 欧美在线一区二区三区| 夜夜爽av福利精品导航| 99av国产精品欲麻豆| 亚洲午夜精品久久| 国产亚洲精品久久久久久| 国产精品网红福利| 欧美护士18xxxxhd| 亚洲欧美国产精品专区久久| 久久亚洲高清| 欧美日韩国产一区二区三区| 欧美一区二区三区在| 99综合在线| 欧美女同在线视频| 亚洲激情综合| 国产精品白丝黑袜喷水久久久| 欧美午夜一区二区三区免费大片| 欧美日韩成人在线视频| 亚洲砖区区免费| 狠久久av成人天堂| 亚洲午夜激情网站| 国产一区二区精品丝袜| 国产精品亚洲第一区在线暖暖韩国| 美女主播精品视频一二三四| 91久久精品美女| 久久国产一区| 欧美日韩国产精品专区| 午夜精品视频在线| 亚洲人成网站影音先锋播放| 欧美www视频| 国产日韩在线看片| 国产伦精品一区二区三区免费迷| 亚洲精品一品区二品区三品区| 亚洲女同同性videoxma| 欧美伦理视频网站| 国内精品久久久久影院优| 99爱精品视频| 韩国精品在线观看| 在线精品视频一区二区三四| 99riav久久精品riav| 欧美国产精品人人做人人爱| 亚洲一区二区三区色| 免费久久99精品国产自| 久久综合久久久久88| 国产精品永久免费视频| 国产一区二区三区黄| 久久噜噜噜精品国产亚洲综合| 亚洲新中文字幕| 欧美日韩亚洲一区二区三区四区| 国产欧美日韩综合精品二区| 99成人免费视频| 美国十次了思思久久精品导航| 久久精品国产一区二区三区免费看| 国产精品婷婷午夜在线观看| 欧美在线视频观看免费网站| 亚洲电影专区| 夜夜嗨av一区二区三区网页| 国产一区三区三区| 亚洲高清视频的网址| 久久久久久有精品国产| 亚洲美女av黄| 亚洲在线国产日韩欧美| 免费成人av资源网| 亚洲免费黄色| 亚洲国产精品传媒在线观看| 欧美日韩精品一二三区| 欧美福利一区| 亚洲黄色免费| 国产日韩欧美麻豆| 一区二区三区欧美在线| 国产欧美一区二区色老头| 久久久久国产精品一区三寸| 亚洲一区二区三区在线观看视频| 国产精品magnet| 欧美亚洲三区| 免费亚洲电影| 国产亚洲二区| 永久91嫩草亚洲精品人人| 一本不卡影院| 国产欧美精品一区aⅴ影院| 亚洲大胆美女视频| 欧美69wwwcom| 亚洲影院免费观看| 亚洲一二三级电影| 欧美日韩在线播放一区| 欧美激情一区二区三区成人| 一区二区三区视频在线播放| 国产午夜亚洲精品不卡| 亚洲大片在线| 国产精品亚洲аv天堂网| 欧美午夜不卡视频| 精品91免费| 欧美麻豆久久久久久中文| 欧美色图首页| 久久精品国产久精国产一老狼| 午夜免费在线观看精品视频| 夜夜嗨av色综合久久久综合网| 亚洲精品九九| 欧美激情中文字幕一区二区| 亚洲精品视频啊美女在线直播| 欧美日韩一本到| 欧美在线视频观看| 欧美日韩亚洲一区二| 黑人巨大精品欧美黑白配亚洲| 国产视频一区欧美| 亚洲欧美经典视频| 欧美国产日韩一区| 狠狠久久五月精品中文字幕| 伊大人香蕉综合8在线视| 国产欧美日韩综合| 欧美激情国产精品| 欧美精品在线观看播放| 亚洲国产一区二区三区高清| 欧美一区二区三区日韩视频| 国产精品视频xxx| 欧美精品一区二区三区久久久竹菊| 欧美电影打屁股sp| 国产日韩欧美亚洲| 韩国精品在线观看| 午夜日韩视频| 欧美理论电影在线观看| 欧美午夜电影网| 免费观看在线综合色| 亚洲欧美日韩在线不卡| 亚洲国产精品久久久| 欧美日韩在线视频一区二区| **欧美日韩vr在线| 亚洲裸体俱乐部裸体舞表演av| 欧美在线播放高清精品| 国产精品性做久久久久久| 免费在线一区二区| 亚洲娇小video精品| 国产精品v片在线观看不卡| 欧美一区二区三区四区夜夜大片| 欧美激情一区二区三区蜜桃视频| 久久国产精品99久久久久久老狼| 亚洲欧美精品在线观看| 亚洲理论在线观看| 国产视频亚洲| 亚洲电影在线| 亚洲在线1234| 在线亚洲一区观看| 一区视频在线播放| 国产精品视频网| 国产精品视频导航| 影音国产精品| 国产日韩欧美黄色| 亚洲大黄网站| 中文精品一区二区三区| 欧美美女福利视频| 国产日韩欧美日韩| 亚洲国产精品一区二区第四页av| 久久久亚洲国产天美传媒修理工| 午夜久久资源| 国产婷婷97碰碰久久人人蜜臀| 国产精品热久久久久夜色精品三区| 国产亚洲欧美色| 一本色道久久综合狠狠躁的推荐|