日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阻塞和非阻塞IO,异步和同步IO

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阻塞和非阻塞IO,异步和同步IO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從網上看到一遍比較好的博客介紹阻塞和非阻塞IO,異步和同步IO的區別和各自的使用場景,雖然是從網絡套接字方面解析的,不過也是適合于對驅動文件的操作,畢竟套接字的本質也是一個文件描述符。

轉載內容

本文討論的背景是Linux環境下的network IO。本文最重要的參考文獻是Richard Stevens的“UNIX? Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2節“I/O Models ”,Stevens在這節中詳細說明了各種IO的特點和區別,如果英文夠好的話,推薦直接閱讀。Stevens的文風是有名的深入淺出,所以不用擔心看不懂。本文中的流程圖也是截取自參考文獻。

Stevens在文章中一共比較了五種IO Model:
* blocking IO
* nonblocking IO
* IO multiplexing
* signal driven IO
* asynchronous IO
由signal driven IO在實際中并不常用,所以主要介紹其余四種IO Model。
再說一下IO發生時涉及的對象和步驟。對于一個network IO (這里我們以read舉例),它會涉及到兩個系統對象,一個是調用這個IO的process (or thread),另一個就是系統內核(kernel)。當一個read操作發生時,它會經歷兩個階段:
1)等待數據準備 (Waiting for the data to be ready)
2)將數據從內核拷貝到進程中(Copying the data from the kernel to the process)
記住這兩點很重要,因為這些IO模型的區別就是在兩個階段上各有不同的情況。

1、阻塞IO(blocking IO)
在linux中,默認情況下所有的socket都是blocking,一個典型的讀操作流程大概是這樣:

圖1 阻塞IO

當用戶進程調用了recvfrom這個系統調用,kernel就開始了IO的第一個階段:準備數據。對于network io來說,很多時候數據在一開始還沒有到達(比如,還沒有收到一個完整的UDP包),這個時候kernel就要等待足夠的數據到來。而在用戶進程這邊,整個進程會被阻塞。當kernel一直等到數據準備好了,它就會將數據從kernel中拷貝到用戶內存,然后kernel返回結果,用戶進程才解除block的狀態,重新運行起來。所以,blocking IO的特點就是在IO執行的兩個階段(等待數據和拷貝數據兩個階段)都被block了。

幾乎所有的程序員第一次接觸到的網絡編程都是從listen()、send()、recv() 等接口開始的,這些接口都是阻塞型的。使用這些接口可以很方便的構建服務器/客戶機的模型。下面是一個簡單地“一問一答”的服務器。


圖2 簡單的一問一答的服務器/客戶機模型

我們注意到,大部分的socket接口都是阻塞型的。所謂阻塞型接口是指系統調用(一般是IO接口)不返回調用結果并讓當前線程一直阻塞,只有當該系統調用獲得結果或者超時出錯時才返回。
實際上,除非特別指定,幾乎所有的IO接口 ( 包括socket接口 ) 都是阻塞型的。這給網絡編程帶來了一個很大的問題,如在調用send()的同時,線程將被阻塞,在此期間,線程將無法執行任何運算或響應任何的網絡請求。

一個簡單的改進方案是在服務器端使用多線程(或多進程)。多線程(或多進程)的目的是讓每個連接都擁有獨立的線程(或進程),這樣任何一個連接的阻塞都不會影響其他的連接。具體使用多進程還是多線程,并沒有一個特定的模式。傳統意義上,進程的開銷要遠遠大于線程,所以如果需要同時為較多的客戶機提供服務,則不推薦使用多進程;如果單個服務執行體需要消耗較多的CPU資源,譬如需要進行大規模或長時間的數據運算或文件訪問,則進程較為安全。通常,使用pthread_create ()創建新線程,fork()創建新進程。
我們假設對上述的服務器 / 客戶機模型,提出更高的要求,即讓服務器同時為多個客戶機提供一問一答的服務。于是有了如下的模型。

圖3 多線程的服務器模型

在上述的線程 / 時間圖例中,主線程持續等待客戶端的連接請求,如果有連接,則創建新線程,并在新線程中提供為前例同樣的問答服務。
很多初學者可能不明白為何一個socket可以accept多次。實際上socket的設計者可能特意為多客戶機的情況留下了伏筆,讓accept()能夠返回一個新的socket。下面是 accept 接口的原型:
int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
輸入參數s是從socket(),bind()和listen()中沿用下來的socket句柄值。執行完bind()和listen()后,操作系統已經開始在指定的端口處監聽所有的連接請求,如果有請求,則將該連接請求加入請求隊列。調用accept()接口正是從 socket s 的請求隊列抽取第一個連接信息,創建一個與s同類的新的socket返回句柄。新的socket句柄即是后續read()和recv()的輸入參數。如果請求隊列當前沒有請求,則accept() 將進入阻塞狀態直到有請求進入隊列。
上述多線程的服務器模型似乎完美的解決了為多個客戶機提供問答服務的要求,但其實并不盡然。如果要同時響應成百上千路的連接請求,則無論多線程還是多進程都會嚴重占據系統資源,降低系統對外界響應效率,而線程與進程本身也更容易進入假死狀態。
很多程序員可能會考慮使用“線程池”或“連接池”。“線程池”旨在減少創建和銷毀線程的頻率,其維持一定合理數量的線程,并讓空閑的線程重新承擔新的執行任務。“連接池”維持連接的緩存池,盡量重用已有的連接、減少創建和關閉連接的頻率。這兩種技術都可以很好的降低系統開銷,都被廣泛應用很多大型系統,如websphere、tomcat和各種數據庫等。但是,“線程池”和“連接池”技術也只是在一定程度上緩解了頻繁調用IO接口帶來的資源占用。而且,所謂“池”始終有其上限,當請求大大超過上限時,“池”構成的系統對外界的響應并不比沒有池的時候效果好多少。所以使用“池”必須考慮其面臨的響應規模,并根據響應規模調整“池”的大小。
對應上例中的所面臨的可能同時出現的上千甚至上萬次的客戶端請求,“線程池”或“連接池”或許可以緩解部分壓力,但是不能解決所有問題。總之,多線程模型可以方便高效的解決小規模的服務請求,但面對大規模的服務請求,多線程模型也會遇到瓶頸,可以用非阻塞接口來嘗試解決這個問題。

2、非阻塞IO(non-blocking IO)
Linux下,可以通過設置socket使其變為non-blocking。當對一個non-blocking socket執行讀操作時,流程是這個樣子:

圖4 非阻塞IO

從圖中可以看出,當用戶進程發出read操作時,如果kernel中的數據還沒有準備好,那么它并不會block用戶進程,而是立刻返回一個error。從用戶進程角度講 ,它發起一個read操作后,并不需要等待,而是馬上就得到了一個結果。用戶進程判斷結果是一個error時,它就知道數據還沒有準備好,于是它可以再次發送read操作。一旦kernel中的數據準備好了,并且又再次收到了用戶進程的system call,那么它馬上就將數據拷貝到了用戶內存,然后返回。
所以,在非阻塞式IO中,用戶進程其實是需要不斷的主動詢問kernel數據準備好了沒有。

非阻塞的接口相比于阻塞型接口的顯著差異在于,在被調用之后立即返回。使用如下的函數可以將某句柄fd設為非阻塞狀態。
fcntl( fd, F_SETFL, O_NONBLOCK );
下面將給出只用一個線程,但能夠同時從多個連接中檢測數據是否送達,并且接受數據的模型。

圖5 使用非阻塞的接收數據模型

在非阻塞狀態下,recv() 接口在被調用后立即返回,返回值代表了不同的含義。如在本例中,
* recv() 返回值大于 0,表示接受數據完畢,返回值即是接受到的字節數;
* recv() 返回 0,表示連接已經正常斷開;
* recv() 返回 -1,且 errno 等于 EAGAIN,表示 recv 操作還沒執行完成;
* recv() 返回 -1,且 errno 不等于 EAGAIN,表示 recv 操作遇到系統錯誤 errno。
可以看到服務器線程可以通過循環調用recv()接口,可以在單個線程內實現對所有連接的數據接收工作。但是上述模型絕不被推薦。因為,循環調用recv()將大幅度推高CPU 占用率;此外,在這個方案中recv()更多的是起到檢測“操作是否完成”的作用,實際操作系統提供了更為高效的檢測“操作是否完成“作用的接口,例如select()多路復用模式,可以一次檢測多個連接是否活躍。

3、多路復用IO(IO multiplexing)
IO multiplexing這個詞可能有點陌生,但是如果我說select/epoll,大概就都能明白了。有些地方也稱這種IO方式為事件驅動IO(event driven IO)。我們都知道,select/epoll的好處就在于單個process就可以同時處理多個網絡連接的IO。它的基本原理就是select/epoll這個function會不斷的輪詢所負責的所有socket,當某個socket有數據到達了,就通知用戶進程。它的流程如圖:

圖6 多路復用IO

當用戶進程調用了select,那么整個進程會被block,而同時,kernel會“監視”所有select負責的socket,當任何一個socket中的數據準備好了,select就會返回。這個時候用戶進程再調用read操作,將數據從kernel拷貝到用戶進程。
這個圖和blocking IO的圖其實并沒有太大的不同,事實上還更差一些。因為這里需要使用兩個系統調用(select和recvfrom),而blocking IO只調用了一個系統調用(recvfrom)。但是,用select的優勢在于它可以同時處理多個connection。(多說一句:所以,如果處理的連接數不是很高的話,使用select/epoll的web server不一定比使用multi-threading + blocking IO的web server性能更好,可能延遲還更大。select/epoll的優勢并不是對于單個連接能處理得更快,而是在于能處理更多的連接。)
在多路復用模型中,對于每一個socket,一般都設置成為non-blocking,但是,如上圖所示,整個用戶的process其實是一直被block的。只不過process是被select這個函數block,而不是被socket IO給block。因此select()與非阻塞IO類似。

大部分Unix/Linux都支持select函數,該函數用于探測多個文件句柄的狀態變化。下面給出select接口的原型:
FD_ZERO(int fd, fd_set* fds)
FD_SET(int fd, fd_set* fds)
FD_ISSET(int fd, fd_set* fds)
FD_CLR(int fd, fd_set* fds)
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *timeout)
這里,fd_set 類型可以簡單的理解為按 bit 位標記句柄的隊列,例如要在某 fd_set 中標記一個值為16的句柄,則該fd_set的第16個bit位被標記為1。具體的置位、驗證可使用 FD_SET、FD_ISSET等宏實現。在select()函數中,readfds、writefds和exceptfds同時作為輸入參數和輸出參數。如果輸入的readfds標記了16號句柄,則select()將檢測16號句柄是否可讀。在select()返回后,可以通過檢查readfds有否標記16號句柄,來判斷該“可讀”事件是否發生。另外,用戶可以設置timeout時間。
下面將重新模擬上例中從多個客戶端接收數據的模型。

圖7 使用select()的接收數據模型

述模型只是描述了使用select()接口同時從多個客戶端接收數據的過程;由于select()接口可以同時對多個句柄進行讀狀態、寫狀態和錯誤狀態的探測,所以可以很容易構建為多個客戶端提供獨立問答服務的服務器系統。如下圖。

圖8 使用select()接口的基于事件驅動的服務器模型

這里需要指出的是,客戶端的一個 connect() 操作,將在服務器端激發一個“可讀事件”,所以 select() 也能探測來自客戶端的 connect() 行為。
上述模型中,最關鍵的地方是如何動態維護select()的三個參數readfds、writefds和exceptfds。作為輸入參數,readfds應該標記所有的需要探測的“可讀事件”的句柄,其中永遠包括那個探測 connect() 的那個“母”句柄;同時,writefds 和 exceptfds 應該標記所有需要探測的“可寫事件”和“錯誤事件”的句柄 ( 使用 FD_SET() 標記 )。
作為輸出參數,readfds、writefds和exceptfds中的保存了 select() 捕捉到的所有事件的句柄值。程序員需要檢查的所有的標記位 ( 使用FD_ISSET()檢查 ),以確定到底哪些句柄發生了事件。
上述模型主要模擬的是“一問一答”的服務流程,所以如果select()發現某句柄捕捉到了“可讀事件”,服務器程序應及時做recv()操作,并根據接收到的數據準備好待發送數據,并將對應的句柄值加入writefds,準備下一次的“可寫事件”的select()探測。同樣,如果select()發現某句柄捕捉到“可寫事件”,則程序應及時做send()操作,并準備好下一次的“可讀事件”探測準備。下圖描述的是上述模型中的一個執行周期。

圖9 多路復用模型的一個執行周期

這種模型的特征在于每一個執行周期都會探測一次或一組事件,一個特定的事件會觸發某個特定的響應。我們可以將這種模型歸類為“事件驅動模型”。
相比其他模型,使用select() 的事件驅動模型只用單線程(進程)執行,占用資源少,不消耗太多 CPU,同時能夠為多客戶端提供服務。如果試圖建立一個簡單的事件驅動的服務器程序,這個模型有一定的參考價值。
但這個模型依舊有著很多問題。首先select()接口并不是實現“事件驅動”的最好選擇。因為當需要探測的句柄值較大時,select()接口本身需要消耗大量時間去輪詢各個句柄。很多操作系統提供了更為高效的接口,如linux提供了epoll,BSD提供了kqueue,Solaris提供了/dev/poll,…。如果需要實現更高效的服務器程序,類似epoll這樣的接口更被推薦。遺憾的是不同的操作系統特供的epoll接口有很大差異,所以使用類似于epoll的接口實現具有較好跨平臺能力的服務器會比較困難。
其次,該模型將事件探測和事件響應夾雜在一起,一旦事件響應的執行體龐大,則對整個模型是災難性的。如下例,龐大的執行體1的將直接導致響應事件2的執行體遲遲得不到執行,并在很大程度上降低了事件探測的及時性。

圖10 龐大的執行體對使用select()的事件驅動模型的影響

幸運的是,有很多高效的事件驅動庫可以屏蔽上述的困難,常見的事件驅動庫有libevent庫,還有作為libevent替代者的libev庫。這些庫會根據操作系統的特點選擇最合適的事件探測接口,并且加入了信號(signal) 等技術以支持異步響應,這使得這些庫成為構建事件驅動模型的不二選擇。下章將介紹如何使用libev庫替換select或epoll接口,實現高效穩定的服務器模型。

實際上,Linux內核從2.6開始,也引入了支持異步響應的IO操作,如aio_read, aio_write,這就是異步IO。

4、異步IO(Asynchronous I/O)
Linux下的asynchronous IO其實用得不多,從內核2.6版本才開始引入。先看一下它的流程:

圖11 異步IO

用戶進程發起read操作之后,立刻就可以開始去做其它的事。而另一方面,從kernel的角度,當它受到一個asynchronous read之后,首先它會立刻返回,所以不會對用戶進程產生任何block。然后,kernel會等待數據準備完成,然后將數據拷貝到用戶內存,當這一切都完成之后,kernel會給用戶進程發送一個signal,告訴它read操作完成了。

用異步IO實現的服務器這里就不舉例了,以后有時間另開文章來講述。異步IO是真正非阻塞的,它不會對請求進程產生任何的阻塞,因此對高并發的網絡服務器實現至關重要。
到目前為止,已經將四個IO模型都介紹完了。現在回過頭來回答最初的那幾個問題:blocking和non-blocking的區別在哪,synchronous IO和asynchronous IO的區別在哪。
先回答最簡單的這個:blocking與non-blocking。前面的介紹中其實已經很明確的說明了這兩者的區別。調用blocking IO會一直block住對應的進程直到操作完成,而non-blocking IO在kernel還在準備數據的情況下會立刻返回。
在說明synchronous IO和asynchronous IO的區別之前,需要先給出兩者的定義。Stevens給出的定義(其實是POSIX的定義)是這樣子的:
* A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes;
* An asynchronous I/O operation does not cause the requesting process to be blocked;
兩者的區別就在于synchronous IO做”IO operation”的時候會將process阻塞。按照這個定義,之前所述的blocking IO,non-blocking IO,IO multiplexing都屬于synchronous IO。有人可能會說,non-blocking IO并沒有被block啊。這里有個非常“狡猾”的地方,定義中所指的”IO operation”是指真實的IO操作,就是例子中的recvfrom這個系統調用。non-blocking IO在執行recvfrom這個系統調用的時候,如果kernel的數據沒有準備好,這時候不會block進程。但是當kernel中數據準備好的時候,recvfrom會將數據從kernel拷貝到用戶內存中,這個時候進程是被block了,在這段時間內進程是被block的。而asynchronous IO則不一樣,當進程發起IO操作之后,就直接返回再也不理睬了,直到kernel發送一個信號,告訴進程說IO完成。在這整個過程中,進程完全沒有被block。

還有一種不常用的signal driven IO,即信號驅動IO。總的來說,UNP中總結的IO模型有5種之多:阻塞IO,非阻塞IO,IO復用,信號驅動IO,異步IO。前四種都屬于同步IO。阻塞IO不必說了。非阻塞IO ,IO請求時加上O_NONBLOCK一類的標志位,立刻返回,IO沒有就緒會返回錯誤,需要請求進程主動輪詢不斷發IO請求直到返回正確。IO復用同非阻塞IO本質一樣,不過利用了新的select系統調用,由內核來負責本來是請求進程該做的輪詢操作。看似比非阻塞IO還多了一個系統調用開銷,不過因為可以支持多路IO,才算提高了效率。信號驅動IO,調用sigaltion系統調用,當內核中IO數據就緒時以SIGIO信號通知請求進程,請求進程再把數據從內核讀入到用戶空間,這一步是阻塞的。
異步IO,如定義所說,不會因為IO操作阻塞,IO操作全部完成才通知請求進程。
各個IO Model的比較如圖所示:

圖12 各種IO模型的比較

經過上面的介紹,會發現non-blocking IO和asynchronous IO的區別還是很明顯的。在non-blocking IO中,雖然進程大部分時間都不會被block,但是它仍然要求進程去主動的check,并且當數據準備完成以后,也需要進程主動的再次調用recvfrom來將數據拷貝到用戶內存。而asynchronous IO則完全不同。它就像是用戶進程將整個IO操作交給了他人(kernel)完成,然后他人做完后發信號通知。在此期間,用戶進程不需要去檢查IO操作的狀態,也不需要主動的去拷貝數據。

總結

以上是生活随笔為你收集整理的阻塞和非阻塞IO,异步和同步IO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

99热99re6国产在线播放 | 日韩在线视频二区 | 亚洲视频aaa | 成人免费视频在线观看 | 五月婷婷在线播放 | 国产无限资源在线观看 | 亚洲精品动漫久久久久 | 国产成年免费视频 | 91精品中文字幕 | 欧美成年人在线观看 | 人成免费网站 | 91成人精品在线 | 最新中文字幕在线观看视频 | 国产精品美女久久久久久久久 | 国产91九色视频 | 97视频在线免费播放 | 天天玩天天操天天射 | 999国内精品永久免费视频 | 久久在线精品视频 | 久草精品视频 | 天天插天天操天天干 | 成人久久久精品国产乱码一区二区 | 正在播放亚洲精品 | 在线免费观看黄 | 天天干天天干天天射 | 久久久久久久毛片 | av在线超碰 | 丁香六月久久综合狠狠色 | 国产精品久久久久久爽爽爽 | 色婷婷色 | 成人黄色大片网站 | 色www.| 免费电影一区二区三区 | 99在线观看视频网站 | 国产视频亚洲视频 | 97电院网手机版 | 午夜视频一区二区 | 一区 二区电影免费在线观看 | 国产精品一区二区av影院萌芽 | 成人在线视频免费看 | 久久久国产精品视频 | 超碰人人超| 九九九毛片| 亚洲一区不卡视频 | www.狠狠插.com| 免费在线观看不卡av | 午夜美女福利直播 | 91色视频| 九九免费观看全部免费视频 | av在线播放观看 | 一级大片在线观看 | 久草综合在线观看 | 久久网站av | 国产一区二区在线视频观看 | 国产精品综合av一区二区国产馆 | 久久久精品免费看 | 国产精品1区2区在线观看 | 在线韩国电影免费观影完整版 | 你操综合| 国产亚洲在线 | 黄色毛片电影 | 成人禁用看黄a在线 | 在线观看亚洲精品 | 成人久久视频 | 亚洲精品免费观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 九九热精品视频在线播放 | 国产精品久久久久久吹潮天美传媒 | 亚洲欧美一区二区三区孕妇写真 | 国产精品一区二区三区在线免费观看 | 久久久久国产一区二区 | 九色视频自拍 | 天天爽夜夜爽人人爽曰av | 黄色的网站在线 | 成人h视频在线 | 欧美一区二区在线 | av大片免费看 | 国产一区影院 | 婷婷深爱| 激情深爱五月 | 美女黄视频免费 | 久久伦理视频 | 91亚洲综合 | 免费观看成年人视频 | 一二区电影 | 色99网| 国产成人a亚洲精品v | 久久免费国产精品1 | 国产精品99久久久久久武松影视 | 国产精品免费大片视频 | 综合色中色 | 黄色在线免费观看网址 | 久久精品婷婷 | 黄污网站在线观看 | 特级片免费看 | 中文av字幕在线观看 | 涩涩在线 | 天天爱天天射 | 久草在线免费在线观看 | 亚洲黄色激情小说 | 奇米777777 | 国产成人精品午夜在线播放 | 久久久久女人精品毛片 | 成人va视频| www夜夜操com | 在线观看黄色免费视频 | 免费麻豆视频 | 久久国产精品99久久久久久老狼 | 亚洲小视频在线观看 | 欧美久久久久久久久 | 中文字幕永久 | 国产原创av在线 | avav99| 正在播放国产一区二区 | 国产免费久久久久 | 国际精品久久 | 日韩高清在线不卡 | 色噜噜狠狠狠狠色综合 | 手机在线中文字幕 | 日韩免 | 日韩中文字幕亚洲一区二区va在线 | 激情视频网页 | 五月天久久久久久 | 久久黄色a级片 | 久久久国际精品 | 国产精品无av码在线观看 | 免费网站黄 | 婷婷丁香在线 | a亚洲视频 | 狂野欧美激情性xxxx欧美 | 国产成年人av | 成年人视频在线观看免费 | a黄色一级 | 人人爽人人爽人人片av | 欧美性大战 | 五月开心六月婷婷 | 69热国产视频 | 天天草夜夜| 日本中文在线播放 | 久久这里只有精品视频99 | 日韩免费视频在线观看 | 久久精品视频2 | 婷婷精品国产一区二区三区日韩 | 亚洲国产av精品毛片鲁大师 | 在线看成人片 | 久久99久久99精品免视看婷婷 | 爱爱av网| 我要看黄色一级片 | 日韩免费电影一区二区三区 | 国产一区二区在线免费视频 | 亚洲精品www| 亚洲午夜精品电影 | 日韩高清免费无专码区 | 中文字幕在线播放日韩 | 高清不卡毛片 | 久久久久久久国产精品影院 | 天天躁日日躁狠狠 | 欧美a级片免费看 | 免费网址在线播放 | 亚洲欧美色婷婷 | 欧美日韩国产伦理 | 国产69精品久久99不卡的观看体验 | 成人免费观看电影 | 蜜臀久久99精品久久久无需会员 | 夜夜高潮夜夜爽国产伦精品 | 国产伦理一区二区三区 | 免费网站黄 | 国产成人一二三 | 欧洲精品视频一区 | 在线不卡的av | 亚洲精品国产精品国自产观看 | 婷婷中文在线 | 亚洲资源一区 | 久久不射电影院 | www视频免费在线观看 | 成人久久久久久久久 | 中文字幕免费久久 | 91在线精品秘密一区二区 | 日韩久久精品一区二区三区下载 | 亚洲久在线 | 香蕉视频久久久 | 人人添人人 | 欧美男女爱爱视频 | 国产剧情一区在线 | 中文在线www | 亚洲黄色一级电影 | 日日爽夜夜操 | 欧美日韩二三区 | 免费成人在线电影 | 久草青青在线观看 | 射综合网| 欧美一区二区三区不卡 | 国内精品久久天天躁人人爽 | 国产精品18久久久久白浆 | 亚洲欧洲精品在线 | 日本99精品 | 97精品国产一二三产区 | av高清在线观看 | 亚洲精品午夜久久久久久久 | 日韩精品一区不卡 | 中文字幕一区三区 | 国产亚洲一区二区在线观看 | 69国产精品视频 | 亚洲精品国久久99热 | 黄色av免费电影 | 亚洲一区二区三区毛片 | 日韩毛片在线免费观看 | 国产精品精 | 1000部国产精品成人观看 | 超碰个人在线 | 国产精品一区二区在线免费观看 | 精品亚洲成a人在线观看 | 天天干,夜夜爽 | 成人av免费网站 | 在线 精品 国产 | 精品国内自产拍在线观看视频 | 日韩在线视频免费看 | 日韩精品在线视频免费观看 | 欧美先锋影音 | 久久精品99国产精品 | 国产a视频免费观看 | 欧美色婷 | 欧美精品首页 | 中文字幕一区二区三区四区在线视频 | 色综合天天天天做夜夜夜夜做 | 久久精品永久免费 | 色在线视频| 黄色aaa级片 | 欧美有色 | av免费网页 | 国产一级精品绿帽视频 | 亚州国产精品久久久 | 波多野结衣视频一区 | 国产一二区精品 | 国产主播大尺度精品福利免费 | 美女网站久久 | 午夜久久久久久久久 | 国外调教视频网站 | 中文字幕乱视频 | 免费看在线看www777 | 成人播放器 | 欧美精品日韩 | 久久久久久综合 | 亚洲欧美激情插 | 国产亚洲精品久久久久久 | 亚洲国产97在线精品一区 | 国产精品免费麻豆入口 | av怡红院| 日韩区在线观看 | av大片免费在线观看 | 亚洲国产一区在线观看 | 欧美一级片在线 | 91亚洲国产 | 成年人免费在线播放 | 日批网站免费观看 | 精品在线一区二区 | 久久在线观看 | 黄色午夜网站 | 国产中文字幕大全 | 在线黄频| 特级毛片aaa| 久久大片| 天天操天天干天天综合网 | 精品女同一区二区三区在线观看 | av三级在线播放 | 久久在线| 久久久久久久影院 | 波多野结衣综合网 | 天天干天天插 | www操操| 在线亚洲欧美视频 | 国产精品成人自产拍在线观看 | 久久蜜臀一区二区三区av | 久久久久久国产精品久久 | 精品视频免费久久久看 | 亚洲国产精品资源 | 久久精品视频在线看 | 亚洲国产av精品毛片鲁大师 | 欧美一级xxxx | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产精品永久免费视频 | 婷婷色综合色 | 日韩中文在线播放 | 国产高清视频色在线www | 亚洲欧美日韩国产一区二区 | 日韩电影精品 | 国产一级不卡视频 | 欧美精品亚洲精品日韩精品 | 91网站在线视频 | 操夜夜操 | 久久综合导航 | 欧美激情综合色综合啪啪五月 | 97精品国产aⅴ | www.亚洲精品视频 | 在线视频 国产 日韩 | 成人亚洲欧美 | 日韩性xxxx| 日日久视频 | 91精品福利在线 | 久久久首页 | 久草国产精品 | 五月婷网 | 国产精品一区二区果冻传媒 | 国产破处在线播放 | 亚洲日本va在线观看 | 99视频精品免费视频 | 中文字幕在线成人 | 国产精品夜夜夜一区二区三区尤 | 亚洲一级电影在线观看 | 91香蕉视频在线 | 久久久免费少妇 | 在线观看亚洲a | h视频在线看| 天天综合日日夜夜 | 91精品国产99久久久久久红楼 | 久久韩国免费视频 | 成人a视频在线观看 | 久久综合婷婷国产二区高清 | 亚洲综合视频在线 | 天天射天天射天天射 | 欧美精品在线观看免费 | 2019天天干夜夜操 | 中文字幕视频网站 | 日韩av网页 | 亚洲精品视频国产 | 国产色视频网站2 | 日本韩国精品在线 | 成人毛片在线观看视频 | 免费黄色网址大全 | 91亚洲激情 | 天天色天天操综合网 | 久久av电影 | 久久精品久久久久久久 | 91丝袜美腿 | 天天天天综合 | 色婷婷骚婷婷 | 天天操天天玩 | 亚洲免费激情 | 精品一二三四五区 | 五月婷婷六月丁香激情 | 精品美女久久久久久免费 | 欧美一区在线看 | 欧美日韩久久不卡 | 六月色 | 日批网站免费观看 | 国产高清第一页 | www.超碰 | 国产精品av电影 | 在线免费av电影 | 色婷婷免费视频 | 国产高清一 | 日韩欧美一区二区在线播放 | 久草在线视频在线 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 91精品小视频 | 国产拍揄自揄精品视频麻豆 | 国产69精品久久久久99 | 色综合天天在线 | 国产剧情一区二区 | 99久久这里有精品 | 久久一区二区三区国产精品 | 在线观看黄色国产 | 国产在线观看 | 天天人人综合 | 国产天天综合 | 国产成人综合图片 | 91视频麻豆视频 | 日韩欧美精品在线 | 黄色成年 | 99久久精品免费看 | 99精品系列 | 国产高清视频在线 | 精品中文字幕视频 | 去干成人网 | 婷婷六月天在线 | 成人免费观看在线视频 | 91精品在线免费观看视频 | 在线免费视 | 国产精品一区二区三区四区在线观看 | 亚洲va欧美va人人爽 | 久久影院中文字幕 | 日韩免费视频线观看 | 日韩电影一区二区在线 | 欧美极品xxx | 高清av免费观看 | 热99久久精品 | 亚洲精品国产电影 | 一区二区视频电影在线观看 | av在线免费播放 | 国产精品精品国产 | 日韩动漫免费观看高清完整版在线观看 | 欧美福利片在线观看 | 激情文学综合丁香 | 人人澡人人添人人爽一区二区 | 欧美在线观看禁18 | 69视频在线播放 | 日本大尺码专区mv | 中文字幕在线视频免费播放 | .精品久久久麻豆国产精品 亚洲va欧美 | 一区在线观看视频 | 亚洲精品网页 | 18av在线视频 | 午夜三级在线 | 免费看久久久 | 日韩av高潮 | 国产五月色婷婷六月丁香视频 | 友田真希x88av | 亚洲精品男人天堂 | 麻豆91精品91久久久 | 午夜精品一区二区三区免费视频 | 亚洲最大成人免费网站 | 粉嫩av一区二区三区免费 | 亚洲麻豆精品 | 波多野结衣久久精品 | 500部大龄熟乱视频 欧美日本三级 | 中文字幕91视频 | 精品久久久久国产免费第一页 | 国产 视频 久久 | www夜夜操com | 深爱激情开心 | 日本论理电影 | 超碰免费av| 天天干天天拍天天操天天拍 | 日韩中文字幕网站 | 日本中文字幕在线免费观看 | 午夜精品三区 | 成人四虎 | 精品亚洲午夜久久久久91 | 午夜精品一区二区三区在线 | 91资源在线免费观看 | 国产精品毛片久久久久久久久久99999999 | 国产人成看黄久久久久久久久 | 久久久久看片 | 欧美日韩高清在线观看 | 国产一区二区精品久久 | 精品女同一区二区三区在线观看 | 99在线免费观看 | 综合av在线 | 日韩免费一级a毛片在线播放一级 | 在线观看自拍 | 日韩精品无码一区二区三区 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 久久观看免费视频 | 国产综合91 | 97视频免费看 | 精品免费观看 | 人人干人人添 | 欧美日韩精品在线视频 | 国产一区在线精品 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 97超碰免费在线观看 | 日操操| 成人午夜免费剧场 | 久久久久国产精品www | 亚洲精品伦理在线 | 久久99国产精品久久 | 久99视频| 99视频久久| 999国产| 在线播放av网址 | 日韩四虎| 亚洲精品乱码久久久久久按摩 | 国产精品免费久久 | 有码一区二区三区 | 91看片淫黄大片一级在线观看 | 最近免费中文视频 | 四虎影视国产精品免费久久 | 久久99日韩 | 欧美专区亚洲专区 | 国产精品成人国产乱 | 免费观看一区二区三区视频 | 免费视频资源 | 久久综合综合久久综合 | 日韩特黄一级欧美毛片特黄 | 国产亚洲精品久久久久久网站 | 国产在线一区二区三区播放 | 91资源在线 | 91精品成人 | 最近免费在线观看 | 久久国产成人午夜av影院宅 | 日韩视频免费观看高清完整版在线 | 国产一区二区三区黄 | 麻豆国产在线播放 | 黄视频色网站 | 日韩另类在线 | freejavvideo日本免费 | 欧美在线视频a | 欧洲精品久久久久毛片完整版 | 日韩在线短视频 | 精品一二三区视频 | 蜜桃视频色 | 免费观看成人网 | 久久成人18免费网站 | 成人aaa毛片| 亚洲日本va午夜在线电影 | 91麻豆文化传媒在线观看 | av在线日韩| 欧美一区二区三区免费观看 | 中文字幕亚洲欧美日韩2019 | 国产黄色美女 | 国产精品 9999| 亚洲国产中文字幕在线 | 国产精品成人av在线 | 中文字幕一区二区三区视频 | 国产美女精品视频免费观看 | 99久久精品电影 | 亚洲波多野结衣 | 91网在线观看 | 91久久影院 | 狠狠色丁香婷婷综合久小说久 | 在线免费91| 日韩最新中文字幕 | 99精品视频在线播放免费 | 91传媒激情理伦片 | 就要干b| 久久激情综合 | 久草视频在线免费播放 | avwww在线观看 | 成人黄色在线 | 91最新中文字幕 | 天天躁天天操 | 日狠狠 | 国产精品久久久久久久久久三级 | 国产在线观看 | 香蕉久草| 日韩欧美高清不卡 | 福利一区在线视频 | 久久亚洲视频 | 日本不卡一区二区三区在线观看 | 日韩久久精品一区二区 | 成人在线免费看视频 | 国产福利91精品张津瑜 | 日韩二区精品 | 97人人艹 | 玖玖在线看 | 成人午夜性影院 | 黄色毛片一级片 | 亚洲伊人第一页 | 久久久亚洲网站 | 婷婷射五月 | 国产精品欧美久久久久久 | 日韩电影在线观看一区二区 | 手机看片久久 | 天天干 天天摸 天天操 | 久久夜色网 | 国产精品久久久久久久久久ktv | 国产在线不卡一区 | 亚洲精品黄网站 | www夜夜操com | 伊人伊成久久人综合网站 | 午夜久久久久久久久久久 | 婷婷香蕉 | 免费在线 | a特级毛片 | 国产在线不卡 | 久久精品草 | 亚洲精品女 | 国产1区在线观看 | 奇米导航| 97国产视频 | 久久精品视频在线看 | 中文在线免费一区三区 | 夜夜躁狠狠燥 | 国产三级精品三级在线观看 | 欧美天天综合网 | 337p日本欧洲亚洲大胆裸体艺术 | 午夜久久福利视频 | 午夜123| 久久国产免费 | 99视频免费在线观看 | 成人中文字幕av | 亚洲最新av网站 | 日韩区在线观看 | 国产一线二线三线在线观看 | 色七七亚洲影院 | 欧美成人理伦片 | 国产视频一区二区三区在线 | 国产精品福利在线观看 | www.午夜色.com | 五月天国产 | 奇米影音四色 | 欧美婷婷色 | 成在线播放 | 91精品久 | 天天草天天插 | 在线观看91久久久久久 | 高清一区二区三区 | a v在线视频 | 亚洲综合在线五月 | 综合亚洲视频 | 香蕉视频久久久 | 国产一级片一区二区三区 | 久青草视频在线观看 | 在线观看视频91 | 干干日日| 欧美成人精品欧美一级乱黄 | 成人网看片 | 97精品免费视频 | 日韩区欠美精品av视频 | 欧美一区二区日韩一区二区 | 狠狠色狠狠色综合日日小说 | 亚洲电影久久久 | 亚洲天天综合网 | 久久综合国产伦精品免费 | 日韩三级不卡 | 亚洲精品777| 久久免费资源 | 欧美久草视频 | 久久精品免费观看 | 色老板在线| 狠狠色丁香婷婷综合久小说久 | 极品嫩模被强到高潮呻吟91 | 久久久精品网 | 99久久久国产精品免费观看 | 国产在线美女 | 欧美日韩国产色综合一二三四 | 中文十次啦 | 国产高清不卡在线 | 日韩mv欧美mv国产精品 | 国产视频欧美视频 | 99草视频| 精品一区在线看 | 国产一区二区电影在线观看 | 99热精品久久| 偷拍久久久 | 91成人精品国产刺激国语对白 | 99精品福利视频 | 久久免费视频国产 | 午夜久久美女 | 性日韩欧美在线视频 | 天天天天综合 | 午夜精品久久久久久 | 日韩欧美在线视频一区二区 | 在线视频观看亚洲 | 国产一区二三区好的 | 一二区av| 日韩伦理一区二区三区av在线 | 奇米影视777四色米奇影院 | 香蕉久久久久久av成人 | 综合网成人 | 国产96视频 | 天天射天天射天天 | 这里只有精彩视频 | 欧美黄色成人 | 97成人精品视频在线观看 | 丁香五月缴情综合网 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 在线观看不卡的av | 美女在线免费视频 | 午夜国产一区二区 | 亚洲欧美日本国产 | 亚洲激情视频在线观看 | 久草精品视频在线看网站免费 | 国产视频在线播放 | 亚洲国产中文字幕在线视频综合 | 久久精品视频99 | 精品久久久久久久久久久院品网 | 在线免费观看国产 | 亚洲乱码一区 | 久久艹精品| 国产精品福利视频 | 超碰在线中文字幕 | 亚洲视频电影在线 | 天天干天天综合 | 国产精品久久99 | 久久久精品视频网站 | 婷婷www| 欧美黄网站 | 久久久国产精品一区二区中文 | 四虎在线免费观看视频 | 日韩高清成人在线 | 99精品视频观看 | 在线视频 一区二区 | 久久新视频 | 国产99久久久久 | 免费a网址 | 丝袜美腿一区 | 亚洲区另类春色综合小说 | 亚洲人久久 | 九九久久精品视频 | 麻豆一区在线观看 | 久久综合狠狠综合 | 最新高清无码专区 | aaa免费毛片 | 最近中文字幕完整高清 | 日韩精品一区电影 | 91毛片在线观看 | 日韩a在线 | 91精品网站在线观看 | 97综合视频 | 91亚洲精品国产 | 91亚洲永久精品 | 久久精品久久精品久久精品 | 日韩欧美在线视频一区二区三区 | 4438全国亚洲精品观看视频 | 在线免费观看的av网站 | 亚洲成人在线免费 | 中文字幕国产视频 | 91麻豆国产福利在线观看 | 国产九色视频在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产精品理论视频 | 久久免费黄色 | 黄色网在线播放 | 97视频在线 | 国产精品久久久久久久免费观看 | av解说在线 | 欧美日韩精品影院 | 97干com| 毛片网免费 | 国产精品黄色 | 成人黄色影片在线 | 久久亚洲欧美日韩精品专区 | 日本h在线播放 | 欧美在线不卡一区 | 国产精品欧美一区二区三区不卡 | 欧美日韩高清一区二区三区 | 中文亚洲欧美日韩 | 欧美性护士 | 激情影音先锋 | 日韩系列在线观看 | 亚洲极色| 免费观看成人网 | 精品国产一区二区久久 | 欧美一级黄大片 | 天天射,天天干 | 亚洲国产剧情av | 日本天天操 | 激情五月伊人 | 色婷婷综合久久久 | 五月婷av | 亚洲精品视频在线观看视频 | 国产分类视频 | 日韩福利在线观看 | 国产精久久 | 中国一级片免费看 | 操久在线 | 久久久久久久久久久久影院 | 日韩一级片观看 | 国产艹b视频 | 亚洲免费av在线 | 久久爱www.| 日韩经典一区二区三区 | 亚洲视频在线免费看 | 狠狠狠狠狠狠狠狠 | 337p日本大胆噜噜噜噜 | 中文字幕在线日 | 天天射天天干天天插 | 国语对白少妇爽91 | 欧美日韩视频在线 | 成年人国产视频 | 日日干日日操 | 欧美日韩首页 | 色婷婷88av视频一二三区 | 在线香蕉视频 | 免费午夜视频在线观看 | 插插插色综合 | 国产一区二区手机在线观看 | 日韩欧美大片免费观看 | 久久久久久久久艹 | 国产精品久久久久四虎 | 国产在线观看免费观看 | 亚洲精品乱码久久久久久按摩 | 欧美福利片在线观看 | 蜜桃视频日本 | 国内精品免费久久影院 | 日韩国产在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 超碰97久久 | 国产精品成人在线 | 97视频网址 | 日韩欧美视频免费看 | 欧美日韩1区 | 亚在线播放中文视频 | 国语精品免费视频 | 国产视频一区在线播放 | 日日干天天 | 日日夜精品 | 福利视频入口 | 丁香五月网久久综合 | 国产麻豆精品在线观看 | 九九九在线 | 久久综合亚洲鲁鲁五月久久 | 免费看一级特黄a大片 | 久久久久观看 | 国产精品1区2区 | 久久五月天色综合 | 亚洲欧美日韩国产精品一区午夜 | 日韩免费看 | 午夜一级免费电影 | 久久99精品热在线观看 | 成人在线视频观看 | av网址最新 | 91视频传媒 | 日产av在线播放 | a色视频 | 国产香蕉97碰碰碰视频在线观看 | 婷婷激情站 | 天天爱天天舔 | 国产精品成人自产拍在线观看 | 激情丁香月 | 亚洲欧洲精品一区 | 久久久久久综合网天天 | 中文字幕在线久一本久 | av在线一| 国产精品精 | www.久久久精品 | 五月婷婷久久丁香 | 午夜精品电影一区二区在线 | 精品久久久久久国产91 | 在线视频一区二区 | 婷婷伊人综合亚洲综合网 | 亚洲h色精品| 高清日韩一区二区 | 日韩最新在线视频 | 超碰97在线人人 | 国产精品一区一区三区 | 国产不卡精品 | 久久亚洲私人国产精品 | 激情综合中文娱乐网 | 精品国自产在线观看 | 日韩一二三在线 | 97超碰中文 | 亚洲全部视频 | 色先锋av资源中文字幕 | 久久亚洲免费 | 91在线公开视频 | 国产精品福利在线 | 在线v片 | 国产精品久久久久久久毛片 | av在线免费观看网站 | 日韩av高清 | 国产黄色免费观看 | 久草网视频在线观看 | 色悠悠久久综合 | 婷婷综合国产 | 91mv.cool在线观看 | 国产欧美精品xxxx另类 | 91视频久久久久 | 欧美大片在线看免费观看 | 精品产品国产在线不卡 | 成人天堂网| 69久久久久久久 | 久久y| 久久99热久久99精品 | 在线综合 亚洲 欧美在线视频 | 精品国产视频在线观看 | 五月婷网 | 人人舔人人爽 | 久久亚洲二区 | 日日夜夜天天 | 欧美少妇的秘密 | 婷婷成人在线 | 狠狠色综合网站久久久久久久 | www.午夜视频 | 国产亚洲精品成人 | 欧美日韩中文字幕在线视频 | 激情图片qvod | 麻豆你懂的 | 国产网站色 | www99精品| 一区二区三区免费网站 | 国产成人精品一区二 | 国产精品午夜av | 99在线免费视频 | 日日干天天插 | a黄色片 | 国产亚洲永久域名 | 伊人国产在线播放 | 日韩成年视频 | 日韩av伦理片 | 在线v片免费观看视频 | 日本在线观看一区 | 国产一区福利 | 97在线看 | 日韩久久影院 | 一级片视频免费观看 | 中文字幕人成乱码在线观看 | 狠狠的日日 | 香蕉视频网站在线观看 | 手机av电影在线 | 婷婷在线色 | 五月婷婷天堂 | 精品国产一区二区三区久久久蜜臀 | 免费看片日韩 | 99资源网 | 亚洲影院色 | 久久综合狠狠综合久久狠狠色综合 | 国产精品普通话 | 在线观看中文字幕视频 | 国产视频一| 91资源在线播放 | 最近高清中文字幕 | 久久中文精品视频 | 亚洲精品在线播放视频 | av高清免费在线 | 久草免费色站 | 久久这里只有精品1 | 国产精品久久久久久久久久久久午夜 | 日韩在线精品 | 亚洲欧美在线综合 | 在线观看自拍 | 国产专区精品 | 五月天综合网站 | 在线观看国产高清视频 | 美女久久精品 | 91污污| 色综合网 | 激情网婷婷 | 日韩av片无码一区二区不卡电影 | 97成人资源站 | 久久久久久久久免费 | 欧美成年网站 | 欧洲色综合 | 国产精品video | 99国产精品久久久久老师 | 黄色网www | 99国产精品久久久久久久久久 | 九九日韩 | av一级黄| 91av九色 | 中国一级片免费看 | 免费日p视频 | 探花视频在线观看 | 在线看成人 | 亚洲桃花综合 | 免费看黄色大全 | 久久久综合色 | 四虎在线免费观看 | 国产 一区二区三区 在线 | 国产精品久久久亚洲 | 中国一区二区视频 | 欧美在线一二区 | 免费视频区 | 在线观看午夜 | 少妇搡bbbb搡bbb搡忠贞 | 婷婷六月综合网 | 久久精品综合 | 国产v欧美 | 一区二区三区免费网站 | 天天色综合三 | 91成人欧美| 成人在线免费视频观看 | 亚洲精品xxx | 亚洲精品综合欧美二区变态 | 婷婷激情站 | 国产日韩中文字幕在线 | 日本精品久久 | 91在线精品观看 | 国产伦精品一区二区三区四区视频 | 美女视频是黄的免费观看 | 国产成人资源 | 色在线免费视频 | 夜夜操夜夜干 | 国产亚洲精品无 | 亚洲午夜av久久乱码 | 狠狠色狠狠综合久久 | 九月婷婷人人澡人人添人人爽 | 久久dvd| 精品成人在线 | 少妇高潮流白浆在线观看 | 欧美日韩在线观看视频 | 中字幕视频在线永久在线观看免费 | 91丨九色丨蝌蚪丨老版 | 91精品国产乱码久久 | 色婷婷免费视频 | 国产99亚洲 | 最近中文字幕免费观看 | 中文字幕人成人 | 日韩欧美aaa | 夜夜躁日日躁狠狠躁 | 狠狠色香婷婷久久亚洲精品 | 在线观看av中文字幕 | 精品国产午夜 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 奇米影视8888 | 天天色天天综合网 | 国产女人免费看a级丨片 | 五月天丁香综合 | 99视频国产精品 | 亚洲第五色综合网 | 99中文视频在线 | 日韩中文在线播放 | 97福利 | 中文字幕乱码日本亚洲一区二区 | 日韩欧美国产精品 | 久久精品成人热国产成 | 久久高清片 | 色婷婷电影| 黄色在线观看www | 国产视频不卡一区 | 999热视频| 97香蕉久久国产在线观看 | 99欧美视频 | 精品国产免费av | 久久精品牌麻豆国产大山 | 国产高清在线看 | 日韩.com |