• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux內核的Go語言實現(xiàn)研究

    2021-07-06 02:10:20柴艷娜
    計算機技術與發(fā)展 2021年6期
    關鍵詞:堆棧分片內核

    柴艷娜

    (長安大學 信息與網絡管理處,陜西 西安 710064)

    1 概 述

    計算機是現(xiàn)代日常生活的一種必需品,其高效可靠的運行需要依賴于一套穩(wěn)健無缺陷(bug-free)的操作系統(tǒng)。現(xiàn)代操作系統(tǒng)都會使用內核(kernel)來對硬件進行管理,因此可以說內核的安全穩(wěn)定決定了人們與計算機相處的體驗。內核中的缺陷(bug)將可能使用戶的應用程序甚至操作系統(tǒng)本身變得不可靠[1]。

    內核是用戶和應用程序與計算機硬件之間的橋梁,內核管理各種系統(tǒng)資源,包括內存和硬盤空間,并且處理CPU處理程序的調度。它也提供對輸入輸出設備和網絡的訪問。應用程序運行在內核之上,通過內核的系統(tǒng)調用從而使用到內核的功能。

    1.1 現(xiàn)代內核的問題

    大多數成熟的操作系統(tǒng)內核都是用C語言實現(xiàn)的。C語言因為允許高度控制內存使用以及其他如可與匯編語言互操作等低級程序操作特性,成為最受歡迎的內核語言[2]。這種高度的自由也會付出一些代價,比如內存釋放兩遍的錯誤、數組越界的錯誤以及死鎖[3]。同時它也不能防止數據類型的錯誤解析,保證不了類型的安全性。

    隨著計算機多處理器以及多核處理器的增加,如何高效地利用多線程是評價內核優(yōu)秀與否的一個有力因素。C語言實現(xiàn)的內核不能輕易地全面發(fā)揮多核的性能,因為C語言本身沒有涵蓋現(xiàn)代處理器的特性,C中的線程(thread)對內存和CPU來說都是很昂貴的一筆開銷,而線程之間的同步機制則更復雜,所以內核需要大費周章地實現(xiàn)一套機制來充分調動多核計算機的全部性能[4]。

    如果用Java,Go等高級語言來開發(fā)內核,則可能會規(guī)避掉很多上述問題,比如許多高級語言提供了數組越界檢查和內存垃圾回收機制。然而,通常來說高級語言開發(fā)的程序會比C語言的慢,有時候由于代碼解釋、自動內存管理、垃圾回收等特性,會帶來很大的系統(tǒng)開銷。同時,高級語言很難操作匯編語言,因此可能很難滿足內核的底層任務調用。

    1.2 現(xiàn)有社區(qū)項目

    當下社區(qū)中有很多用高級語言實現(xiàn)內核的嘗試,諸多原因導致了它們沒有一個被廣泛采用。

    Mirage是一個Linux基金會項目,致力于將Web應用變成一個運行在Xen虛擬機下的獨立的專屬精簡內核(Unikernel),它包含一個用OCaml開發(fā)的內核子系統(tǒng)的早期實現(xiàn)。因為它是為專屬內核(單用戶單進程,大多運行于虛擬機中)開發(fā)的,所以不能滿足大多數普通用戶的需求。另外,也不能在多核上并行,因為它本來就是為單進程運行而設計的。

    Pycorn是一個用Python開發(fā)的操作系統(tǒng),目前只兼容16位ARM微處理器。因為Python是一門解釋型語言,Pycorn實際運行十分慢,性能不是該項目的目標。因此它從未被廣泛使用過。

    1.3 內核子系統(tǒng)

    因為實現(xiàn)一個完整的內核是一項巨大的工程,所以該文代之以實現(xiàn)一個內核子系統(tǒng),即網絡堆棧子系統(tǒng),來進行相應的研究工作。網絡堆棧(network stack)是任何內核必須有的特性,網絡堆棧的功能和性能可以容易地比較和測試,因此是個比較理想的可用于研究的子系統(tǒng)。

    1.4 Go語言

    該文用Go語言實現(xiàn)內核子系統(tǒng),用于研究用高級語言開發(fā)內核的相對優(yōu)勢。之所以選擇Go是因為語言本身自帶的優(yōu)秀的CSP并發(fā)模型(concurrent sequential processes)[4-6]。CSP模型將復雜任務解構成更小的、更加可管理的子任務。這些子任務都能被單個進程所處理,進程之間彼此保持通信,共同完成原始的復雜任務。

    CSP模型的目標是幫助程序員設計,實現(xiàn)和驗證復雜的計算機系統(tǒng),這是十分重要的,特別是要設計一個如內核般復雜的軟件。Go提供了線程安全(thread-safe)方式的CSP模型,Go語言的線程即協(xié)程(go-routines),同步的通信構造即通道(channel)[7]。Go語言運行時自動根據計算機的物理內核數量來管理調度協(xié)程。CSP模型能讓人很容易地使用計算機所有內核,同時改善代碼的可讀性,使得更簡單地進行調試和減少產生的缺陷。網絡堆棧很自然地可以被劃分成多個子任務去運行,可以充分利用Go協(xié)程去動態(tài)調度高效利用所有可用物理內核[8]。

    CSP模型只在垃圾回收語言里有可行性,Go提供了必要的垃圾回收。Go是一門強類型語言,能減少一大類錯誤,包括錯誤類型轉換,內存釋放兩遍,對象釋放后再使用等。Go的延遲聲明(defer statement)允許在函數結束時更方便地清理,減少那些疏于管理的資源導致死鎖的可能性。

    1.5 研究目標

    Go和CSP模型的優(yōu)勢可能伴隨著某種代價,比如垃圾回收有性能花銷并導致運行時的短暫暫停。另外,多核的使用,將帶來昂貴的內核間通信。該文的目標是評估Go帶來的收益是否能蓋過性能損失帶來的劣勢。

    2 實 現(xiàn)

    該文實現(xiàn)的獨立網絡堆棧(項目代號NStack)是建立在Tap虛擬網卡的基礎上。為了功能完整,所有基礎網絡協(xié)議,包括以太網(Ethernet),ARP,IPv4,ICMP,UDP和TCP,都被實現(xiàn)。為確保性能不受影響,延遲(latency)和吞吐量(through-out)會被測試,并與C語言實現(xiàn)的網絡堆棧進行比較。

    2.1 Tap接口

    Tap接口即一種虛擬網絡接口(虛擬網卡),用軟件來模仿實際硬件。NStack會將Tap接口當作正常物理接口一樣讀寫[9]。Tap接口會關聯(lián)一橋接接口,就好像一個路由器作為主機的一個子網接入其中,這樣可以允許NStack能使用它自己的MAC地址和IP地址,連接到外部網絡。

    2.2 協(xié)議實現(xiàn)

    NStack會實現(xiàn)數據鏈路層,網絡層和傳輸層的協(xié)議,每一層獨立運行自己的協(xié)議,如圖1所示。分層模型可以增加并行,在高負載下提供高效服務[10]。

    圖1 網絡協(xié)議棧

    每一個協(xié)議的實現(xiàn)使用了類似的結構,包處理器(packet dealer)。IP包處理器如圖2所示。包處理器從低層級讀取數據包,并通過通道傳輸。通道以箭頭表示在圖2中。IP包處理器將數據包發(fā)給不同的IP reader協(xié)程。IP reader處理完接收到的數據包后,將處理結果轉發(fā)給下一層的包處理器。

    圖2 IPv4包處理器

    (1)以太協(xié)議層允許其他不同層的協(xié)議綁定到特定的以太協(xié)議。比如IPv4實現(xiàn)會綁定到以太協(xié)議2048去接收所有IPv4數據包,ARP實現(xiàn)則綁定到以太協(xié)議2054。

    (2)地址解析協(xié)議(address resolution protocol,ARP)會被實現(xiàn)用于MAC地址的獲取,數據的網絡傳輸需要物理信息的支持。ARP能讓NStack從目標主機的目標協(xié)議地址中獲取MAC地址。NStack為每個ARP請求創(chuàng)建一個協(xié)程負責處理。處理時協(xié)程會被阻塞直到主ARP包處理器通知其響應或者請求超時。

    (3)IPv4的設計如圖2所示,它使用包處理器結構,包含多個IP讀取器和分片重組器。所有組件之間的通信都是通過通道進行,如箭頭所示。

    當IP包大小超過最大傳輸單元(maximum transmission unit,MTU)時,便會出現(xiàn)IP分片,IP包會被拆分成多個分片,每一個分片都包含一些信息用以重組。當分片數據包到達目的主機,它們便會被重組成原始IP包。

    NStack的分片重組器演示了CSP模型的優(yōu)點。每個分片重組器都囊括了對分片IP數據包的處理過程以及相應的數據。與用全局數據結構來管理所有分片數據包重組的傳統(tǒng)方法相比,為每個報文分片分配一個專屬重組器,這種CSP模型的做法可以大幅降低代碼的復雜度。輕量級的Go協(xié)程設計讓數據隔離變得可行,垃圾回收又大幅降低內存泄漏的可能。

    (4)NStack實現(xiàn)了ping及ICMP協(xié)議。ICMP實現(xiàn)也是遵循包處理器結構。ping實現(xiàn)也有其相應的包處理器,ping的ICMP包會被ICMP包處理器先行處理,然后再發(fā)給ping的包處理器處理。ping包處理器會將ping請求轉發(fā)給一組特別的協(xié)程,用于回復ping請求。如果NStack已經發(fā)送了ping請求,則ping包處理器將會把回應轉發(fā)給對應請求的專屬協(xié)程負責。

    (5)用戶報文協(xié)議(user datagram protocol,UDP)是個無連接的協(xié)議,因為它相對簡單,NStack便用一個基礎的包處理器將其轉發(fā)給對應的UDP讀取器。

    (6)傳輸控制協(xié)議(transmission control protocol,TCP)是面向連接的傳輸層協(xié)議,它保證了數據傳輸的有序。因為TCP是面向連接的,所以它會需要服務端和客戶端來初始化連接。一旦連接建立成功,便由傳輸控制單元(transmission control block,TCB)進行管理。

    NStack里TCP也是使用標準的包處理器結構管理源端口和目的端口,每個TCB里都有2個長期運行的協(xié)程。一個處理接收到的數據包,另一個則等待和發(fā)送數據,也會負責創(chuàng)建額外的協(xié)程管理數據包的重發(fā),這2個協(xié)程便代表著半雙工TCP連接。TCB內部也會用到通道來同步和管理所有創(chuàng)建的協(xié)程。比如,處理接收數據包的協(xié)程發(fā)現(xiàn)收到一個確認數據包時,便會用通道通知數據包重傳協(xié)程。

    2.3 測 試

    NStack會與Tapip進行性能比較。Tapip是一個由C語言開發(fā)的多線程網絡堆棧。這個比較允許評估用高級語言開發(fā)網絡堆棧的優(yōu)點和缺點。兩個網絡堆棧都實現(xiàn)了相似的協(xié)議,都在用戶空間(user space)操作,都使用tap虛擬接口。測試機器是Ubuntu 14.04/Linux 3.13.0,16 GB內存,Intel Xeon Quad Core Dual Socket處理器。

    2.3.1 延 遲

    為測試延遲,將取50次ping響應時間的平均值作比較。測試環(huán)境的一臺Linux虛擬機將運行兩個網絡堆棧,ping請求從該虛擬機發(fā)出。為判斷堆棧在負載增加情況下的性能,多個ping會被同時并發(fā)發(fā)送。從1個增加到1 000個并發(fā)ping“連接”來模擬網絡堆??赡芙邮艿呢撦d。為保證對兩個網絡堆棧公平,其他的變量都將保持不變,包括每個ping“連接”發(fā)送的ping請求數,ICMP接受緩沖區(qū)大小以及ping請求數據包大小。

    2.3.2 吞吐量

    第二個將要評估的性能指標便是吞吐量。一個堆棧的吞吐量是在給定時間內,能發(fā)送或接收的數據量大小[11]。以下步驟將用以測量兩個堆棧的吞吐量:

    (1)初始化一個TCP服務端。

    (2)初始化一個TCP客戶端,連接會在local網絡(localhost)中建立,以排除tap虛擬網卡導致的開銷。

    (3)客戶端發(fā)送4 KB數據給服務端。

    (4)計算堆棧完成上述過程的總時間,該時間和發(fā)送的數據量將用來計算吞吐量。

    為測量堆棧的相對擴展能力,將會逐步增加客戶端數來測量性能[12]。最大測試到100個并發(fā)客戶端。有許多預防措施將用于保證吞吐量的準確測量,比如所有可比較的緩沖區(qū)大小都一致[13]。在Tapip中,每個客戶端和服務端連接都運行在各自線程里,NStack類似,但是用的是Go的協(xié)程而不是線程。另外,也會確保所有連接完成且連接的負載被完整傳輸之后再停止運行網絡堆棧[14-15]。

    3 結果分析

    NStack的代碼與Tapip比較類似,但是從結果來看,性能上,包括延遲和吞吐量,NStack相比之下出色得多。

    3.1 準確性

    NStack和Tapip都能準確地運行協(xié)議,這可以通過分別測試兩個協(xié)議棧與一臺Linux終端的連接來進行判斷。測試中發(fā)現(xiàn)Tapip有內存泄漏的情況。這是因為Tapip會開辟緩存區(qū)存儲數據包,在某些情況下這些緩存區(qū)不會被釋放或者重復釋放。當緩存區(qū)被重復釋放時,Tapip會崩潰或者導致異常行為。當緩存區(qū)不會被釋放時,Tapip會不斷侵占內存,直至系統(tǒng)崩潰。Go則由于有內置的垃圾回收,可以很好地避免這種情況的發(fā)生。

    3.2 代碼比較

    雖然很難量化地評估編寫Go語言相比較C語言的優(yōu)點,但是從一些代碼片段的比較還是可以看出高級語言的某些優(yōu)勢。以下以IP報文分片重組的處理代碼舉例說明。

    (1)當新的IP分片到達時,需要初始化分片重組器。Tapip則會使用全局結構體存儲所有待重組的數據,C代碼如下所示:

    struct fragment *frag;

    frag=xmalloc(sizeof(*frag));

    list_add(& frag->frag_list, & frag_head);

    list_init(& frag->frag_pkb);

    return frag;

    NStack會給每個待重組的包新建一個Go協(xié)程,Go語言代碼如下:

    ipr.fragBuf[bufID]=make(chan []byte, FRAG_ASSEM_BUF_SZ)

    quit:=make(chan bool, 1)

    done:=make(chan bool, 1)

    didQuit:=make(chan bool, 1)

    go ipr.fragAssembler( /* ... */ )

    go ipr.killFragAssembler( /* ... */ )

    (2)當添加分片到重組隊列時,Tapip的C語言代碼如下:

    int insert_frag(/* ... */) {

    /*一些額外的分片處理 */

    list_add(& pkb->pk_list, pos);

    return 0;

    frag_drop: free_pkb(pkb); return -1;

    }

    Go語言代碼則如下:

    ipr.fragBuf[bufID] <- b

    Go可以用協(xié)程處理IP報文分片,因此它可以簡單地將分片轉發(fā)給對應的協(xié)程處理,同時可以緊接著處理后續(xù)數據包。此舉會改進NStack代碼的模塊性、可讀性和并發(fā)性。

    (3)分片處理完成時的C語言代碼片段如下:

    if (complete_frag(frag))

    pkb=reass_frag(frag);

    else pkb=NULL;

    return pkb;

    struct pkbuf *reass_frag(

    struct fragment *frag) {

    /* more processing */

    delete_frag(frag);

    return pkb;

    }

    Go語言代碼片段如下:

    ipr.incomingPackets <- append(

    fullPacketHdr ,payload ...)

    done <- true

    經過對比,可以凸顯出Go語言以及CSP模型的優(yōu)勢。Tapip必需按順序處理數據包,在前一個數據包未處理完時,下一個數據包只能在緩沖區(qū)中等待。這會帶來一些問題,比如這便需要C語言的IP實現(xiàn)去跟蹤所有正在進行的分片重組的狀態(tài),這樣不可避免地會使用全局變量和結構體來記錄共享信息,并且會讓線程同步變得困難。NStack與之相反,它會對接收到的每個分片IP包創(chuàng)建一個獨立的分片重組器協(xié)程,每個協(xié)程各自負責獨立的分片組裝成IP片段。分片重組器處理重組完數據包后,它便簡單地將重組片段發(fā)回后續(xù)的IP數據包處理過程。IP數據包這個主處理過程與分片重組器是獨立的協(xié)程,因此可以實現(xiàn)完全的并行和并發(fā),代碼也更簡潔可讀。

    (4)在清理分片時,C語言的Tapip需要顯性地釋放每一個內存緩存區(qū),代碼如下:

    struct pkbuf *pkb;

    list_del(& frag->frag_list);

    while (!list_empty(& frag->frag_pkb)) {

    pkb=frag_head_pkb(frag);

    list_del(& pkb->pk_list);

    free_pkb(pkb);

    }

    free(frag);

    而Go語言只需跟蹤通道即可:

    delete(ipr.fragBuf, bufID)

    Go語言的簡潔友好可讀由此可見一斑。

    3.3 延 遲

    1個ping請求時,Tapip的0.074 ms優(yōu)于NStack的0.234 ms,但是隨著并發(fā)請求的增加,當1 000個ping請求時,NStack的延遲為0.717 ms,差不多比Tapip的3.279 ms好5倍。NStack在連接數為600時,開始領先于Tapip。NStack延遲的增加是線性的,而Tapip是指數型的。NStack的延遲趨勢是優(yōu)于Tapip的,因為在請求數很少時,兩者之間延遲的差距很小,可以忽略不計,但是在大量并發(fā)ping時,差異就明顯變大,如圖3所示。

    圖3 并發(fā)延遲性測試結果

    基于圖3的結果,可以得出Tapip能非??斓靥幚硇×考壍臄祿?,而對于大量的數據包涌入時,則顯得處理乏力,性能極差。相對應的,NStack會用相對較長的時間來處理每個數據包,但是因為其在每個協(xié)議實現(xiàn)中良好的并發(fā)控制,在負載大量增加的情況下,幾乎不影響其處理性能。表現(xiàn)出來便是結果中,Tapip雖然開始性能優(yōu)秀,但延遲卻隨著并發(fā)量的增長,迅速增大上升,而NStack則小幅平緩的增加。Tapip陡峭的增長趨勢凸顯了其底層架構的問題,即在所有的協(xié)議層處理完一個數據包后,再處理下一個數據包,這種做法不是一個高效的方法,因為這會導致擴展或并發(fā)難以實現(xiàn)。

    3.4 吞吐量

    測試結果如圖4所示,1個并發(fā)連接時,NStack的吞吐量達到7.3 Mbit/s,而Tapip的只有4.6 Mbit/s。當100個并發(fā)連接時,NStack達到了284.9 Mbit/s,而Tapip則只有195 Mbit/s。并且,NStack的吞吐量增加速度比Tapip快得多。這表明NStack可以繼續(xù)在更大量的并發(fā)情況下擴展吞吐量而Tapip則很可能處理不了這種負載。

    圖4 并發(fā)吞吐量測試結果

    結果有力地驗證了NStack的架構。在Tapip里,所有的傳輸控制塊(transmission control block,TCB)都是由單個線程管理的;相應的,在NStack中,每個TCB由兩個線程進行管理,分別負責一半的上下行連接,因而NStack可以更高效地在有限的CPU核數上多路復用大量的連接,可以達到更大的吞吐量。在小量并發(fā)連接時,NStack也工作地更高效,因為它把TCB的處理工作拆分為兩個Go協(xié)程,而Tapip則自始至終都是一個線程執(zhí)行處理任務。

    4 結束語

    操作系統(tǒng)內核對于管理計算機系統(tǒng)資源而言是十分重要的核心組件,如何在兼顧性能的前提下,引入高級語言進行開發(fā),降低低級語言開發(fā)內核帶來的復雜性和安全隱患是該文的初衷。該文以內核的網絡堆棧子系統(tǒng)為出發(fā)點,用Go語言實現(xiàn)NStack,研究高級語言開發(fā)內核的可行性和便利性。NStack和對比實驗的C語言開發(fā)的Tapip都是基于tap接口,都實現(xiàn)了相類似的協(xié)議,比如IPv4,ARP,UDP和TCP。在延遲性和吞吐量的對比實驗中,可以發(fā)現(xiàn)NStack有優(yōu)秀的性能表現(xiàn),在延遲性測試中,當并發(fā)數大于600時,NStack取得更低的延時;在吞吐量的測試中,NStack的并行化讓其在所有的測試場景中都取得了優(yōu)于Tapip的吞吐量。

    實驗表明,Go語言帶來的簡潔和模塊化可以提供優(yōu)于C語言的幫助,用Go開發(fā)內核子系統(tǒng)可以改善代碼的可讀性和可靠性,結構模塊清晰,良好的并發(fā)能力和穩(wěn)定性,同時又對內核整體性能沒有產生重大不良影響。結果表明,對于內核開發(fā)來說,Go語言可以是一個重要的C語言替代者。

    猜你喜歡
    堆棧分片內核
    上下分片與詞的時空佈局
    詞學(2022年1期)2022-10-27 08:06:12
    萬物皆可IP的時代,我們當夯實的IP內核是什么?
    強化『高新』內核 打造農業(yè)『硅谷』
    分片光滑邊值問題的再生核方法
    CDN存量MP4視頻播放優(yōu)化方法
    基于嵌入式Linux內核的自恢復設計
    基于模糊二分查找的幀分片算法設計與實現(xiàn)
    Linux內核mmap保護機制研究
    嵌入式軟件堆棧溢出的動態(tài)檢測方案設計*
    基于堆棧自編碼降維的武器裝備體系效能預測
    午夜福利高清视频| 怎么达到女性高潮| 午夜久久久在线观看| 国产真实乱freesex| 99国产精品一区二区蜜桃av| 亚洲av成人av| 国产一卡二卡三卡精品| av在线播放免费不卡| 久久精品国产亚洲av香蕉五月| 在线视频色国产色| 久久国产乱子伦精品免费另类| 久久欧美精品欧美久久欧美| 久久久久亚洲av毛片大全| 亚洲中文字幕一区二区三区有码在线看 | 亚洲av中文字字幕乱码综合 | 天堂动漫精品| 久久久久久久午夜电影| 制服丝袜大香蕉在线| 亚洲精品中文字幕一二三四区| 欧美成人性av电影在线观看| 叶爱在线成人免费视频播放| 叶爱在线成人免费视频播放| 国产不卡一卡二| 韩国精品一区二区三区| 国语自产精品视频在线第100页| 精品少妇一区二区三区视频日本电影| 国产精品98久久久久久宅男小说| 女性被躁到高潮视频| 国产熟女xx| 欧美性长视频在线观看| 又黄又粗又硬又大视频| 在线十欧美十亚洲十日本专区| 亚洲国产精品合色在线| 亚洲 欧美 日韩 在线 免费| 亚洲精品中文字幕在线视频| 久久久久亚洲av毛片大全| 欧美日韩黄片免| 男人舔奶头视频| 自线自在国产av| 欧美av亚洲av综合av国产av| 欧美在线黄色| 午夜福利欧美成人| 18禁国产床啪视频网站| 亚洲精品美女久久av网站| 久久人妻福利社区极品人妻图片| 一边摸一边抽搐一进一小说| 别揉我奶头~嗯~啊~动态视频| x7x7x7水蜜桃| 丰满人妻熟妇乱又伦精品不卡| 国产久久久一区二区三区| 国产激情久久老熟女| 欧美大码av| 无限看片的www在线观看| 热re99久久国产66热| 国产熟女xx| 欧美三级亚洲精品| 日韩欧美国产一区二区入口| 99re在线观看精品视频| 天堂√8在线中文| 久久久久久国产a免费观看| 满18在线观看网站| 久久性视频一级片| 国产成人一区二区三区免费视频网站| 色综合欧美亚洲国产小说| 久久人妻av系列| 男男h啪啪无遮挡| 又黄又爽又免费观看的视频| 国产免费男女视频| 热re99久久国产66热| 变态另类成人亚洲欧美熟女| 成人特级黄色片久久久久久久| 久久久久亚洲av毛片大全| 日韩成人在线观看一区二区三区| 国产精品免费一区二区三区在线| 色综合站精品国产| 久久亚洲真实| 亚洲成人久久爱视频| 操出白浆在线播放| 成人国语在线视频| 亚洲精品国产一区二区精华液| 天堂影院成人在线观看| 看片在线看免费视频| 搞女人的毛片| 精品一区二区三区视频在线观看免费| 99久久久亚洲精品蜜臀av| 精品国产一区二区三区四区第35| 男女床上黄色一级片免费看| 亚洲一码二码三码区别大吗| 午夜精品在线福利| 狂野欧美激情性xxxx| 夜夜躁狠狠躁天天躁| 又黄又粗又硬又大视频| 精品不卡国产一区二区三区| 欧美+亚洲+日韩+国产| 亚洲自拍偷在线| 久久久久久久久久黄片| 亚洲av电影在线进入| 最近最新中文字幕大全免费视频| a在线观看视频网站| 欧美乱妇无乱码| 免费在线观看亚洲国产| 欧美中文综合在线视频| 法律面前人人平等表现在哪些方面| 91大片在线观看| 制服人妻中文乱码| 一区二区三区国产精品乱码| 777久久人妻少妇嫩草av网站| 12—13女人毛片做爰片一| 在线视频色国产色| 国产精品久久久人人做人人爽| 国产精品一区二区三区四区久久 | 国产亚洲av嫩草精品影院| 操出白浆在线播放| 国产97色在线日韩免费| 中文字幕最新亚洲高清| 黄色毛片三级朝国网站| 女性被躁到高潮视频| 韩国av一区二区三区四区| 国产亚洲精品一区二区www| 手机成人av网站| 亚洲精品在线观看二区| 久久天堂一区二区三区四区| 免费av毛片视频| 日韩视频一区二区在线观看| 高清毛片免费观看视频网站| 午夜激情福利司机影院| 国产精品永久免费网站| 麻豆一二三区av精品| 亚洲精品一卡2卡三卡4卡5卡| 黄网站色视频无遮挡免费观看| 国产一级毛片七仙女欲春2 | 国产av又大| 老司机午夜福利在线观看视频| xxx96com| 欧美乱码精品一区二区三区| 在线观看www视频免费| av中文乱码字幕在线| 99re在线观看精品视频| 亚洲中文av在线| 欧美激情极品国产一区二区三区| 一个人免费在线观看的高清视频| 色播亚洲综合网| 老司机午夜十八禁免费视频| 国产成人啪精品午夜网站| 一级毛片精品| 色婷婷久久久亚洲欧美| 免费在线观看影片大全网站| 巨乳人妻的诱惑在线观看| 久久久水蜜桃国产精品网| 最近最新中文字幕大全免费视频| 国产欧美日韩一区二区精品| 99久久国产精品久久久| 亚洲国产中文字幕在线视频| 亚洲av片天天在线观看| 悠悠久久av| 免费在线观看完整版高清| 老鸭窝网址在线观看| 国产国语露脸激情在线看| 欧美黄色淫秽网站| 脱女人内裤的视频| 午夜激情av网站| 夜夜看夜夜爽夜夜摸| 日韩精品青青久久久久久| 在线永久观看黄色视频| 大型av网站在线播放| 桃色一区二区三区在线观看| 观看免费一级毛片| 国产精品国产高清国产av| 村上凉子中文字幕在线| 十分钟在线观看高清视频www| 啦啦啦观看免费观看视频高清| 国产精品免费视频内射| 神马国产精品三级电影在线观看 | 国产成年人精品一区二区| or卡值多少钱| 在线观看日韩欧美| 国产精品一区二区免费欧美| 手机成人av网站| 巨乳人妻的诱惑在线观看| 淫秽高清视频在线观看| 在线观看免费午夜福利视频| 精品一区二区三区av网在线观看| 99国产精品一区二区三区| 国产成人欧美| 亚洲国产精品sss在线观看| 黄色视频,在线免费观看| 精品无人区乱码1区二区| 99国产精品99久久久久| ponron亚洲| 免费在线观看完整版高清| 亚洲国产欧美一区二区综合| 亚洲第一欧美日韩一区二区三区| 成人精品一区二区免费| 身体一侧抽搐| 日韩欧美一区视频在线观看| 淫秽高清视频在线观看| 午夜精品在线福利| 高清在线国产一区| 色老头精品视频在线观看| 最好的美女福利视频网| 90打野战视频偷拍视频| 国产精品美女特级片免费视频播放器 | 日韩免费av在线播放| 99精品欧美一区二区三区四区| 一夜夜www| 成年免费大片在线观看| 中文字幕高清在线视频| 免费在线观看影片大全网站| 国产私拍福利视频在线观看| 男女视频在线观看网站免费 | 日韩欧美在线二视频| 亚洲人成网站高清观看| 熟女电影av网| 日本五十路高清| 变态另类丝袜制服| 国产熟女午夜一区二区三区| 久久久久久久精品吃奶| 丝袜人妻中文字幕| 国产精品永久免费网站| 亚洲最大成人中文| 国产在线观看jvid| 草草在线视频免费看| 人成视频在线观看免费观看| 中国美女看黄片| 亚洲一区高清亚洲精品| 禁无遮挡网站| 国产成人一区二区三区免费视频网站| 18禁黄网站禁片午夜丰满| 男女那种视频在线观看| 国产亚洲精品一区二区www| 一边摸一边做爽爽视频免费| 国产爱豆传媒在线观看 | 国产精品一区二区免费欧美| 欧美激情久久久久久爽电影| 精品电影一区二区在线| 国产欧美日韩一区二区三| 欧美在线黄色| 草草在线视频免费看| 国产高清有码在线观看视频 | 伊人久久大香线蕉亚洲五| 午夜福利18| 一a级毛片在线观看| 人成视频在线观看免费观看| 欧美成狂野欧美在线观看| 免费在线观看成人毛片| 黄色毛片三级朝国网站| 一本大道久久a久久精品| 又黄又爽又免费观看的视频| 欧美黑人精品巨大| 欧美激情 高清一区二区三区| or卡值多少钱| xxxwww97欧美| 国产片内射在线| 中文字幕高清在线视频| 欧美+亚洲+日韩+国产| 国产精品久久久久久亚洲av鲁大| 女生性感内裤真人,穿戴方法视频| 后天国语完整版免费观看| 欧美av亚洲av综合av国产av| 久久精品影院6| 国产成年人精品一区二区| 中文字幕另类日韩欧美亚洲嫩草| av在线播放免费不卡| a级毛片在线看网站| 两性夫妻黄色片| 国产成人啪精品午夜网站| 欧美日韩瑟瑟在线播放| 国产一区二区三区视频了| 国产av一区二区精品久久| 这个男人来自地球电影免费观看| 国产v大片淫在线免费观看| 午夜成年电影在线免费观看| 欧美日韩精品网址| 国产爱豆传媒在线观看 | 一本综合久久免费| 免费无遮挡裸体视频| 婷婷精品国产亚洲av在线| 91av网站免费观看| 久久性视频一级片| 久久久久九九精品影院| 十分钟在线观看高清视频www| 久久久久精品国产欧美久久久| 久久久久免费精品人妻一区二区 | 国产视频一区二区在线看| 午夜免费观看网址| 俄罗斯特黄特色一大片| 国产精品亚洲av一区麻豆| 国产在线精品亚洲第一网站| 国产成+人综合+亚洲专区| 国产亚洲精品第一综合不卡| 久久久久久久久久黄片| 精品免费久久久久久久清纯| 亚洲avbb在线观看| 免费一级毛片在线播放高清视频| 亚洲中文日韩欧美视频| 国产午夜福利久久久久久| 婷婷六月久久综合丁香| a级毛片在线看网站| 精品久久蜜臀av无| 中文字幕高清在线视频| 男女午夜视频在线观看| 欧美乱妇无乱码| 免费在线观看完整版高清| 久久 成人 亚洲| 91在线观看av| 亚洲欧美精品综合久久99| 欧美一级a爱片免费观看看 | 夜夜夜夜夜久久久久| netflix在线观看网站| 中文亚洲av片在线观看爽| 99re在线观看精品视频| 人人妻人人澡人人看| 天堂影院成人在线观看| 亚洲国产欧美日韩在线播放| 国产精品久久久久久人妻精品电影| 精品欧美国产一区二区三| 久久久久免费精品人妻一区二区 | 嫁个100分男人电影在线观看| 夜夜躁狠狠躁天天躁| 国产一区二区三区视频了| 淫秽高清视频在线观看| 亚洲成av人片免费观看| 一边摸一边做爽爽视频免费| 在线观看一区二区三区| 成年女人毛片免费观看观看9| 国产精品野战在线观看| 一区二区日韩欧美中文字幕| 成年人黄色毛片网站| 色婷婷久久久亚洲欧美| 亚洲成av片中文字幕在线观看| 久9热在线精品视频| 50天的宝宝边吃奶边哭怎么回事| 亚洲中文字幕一区二区三区有码在线看 | 久久人妻福利社区极品人妻图片| 精品日产1卡2卡| 999精品在线视频| 亚洲九九香蕉| 亚洲国产日韩欧美精品在线观看 | 久久这里只有精品19| 99久久99久久久精品蜜桃| 十八禁网站免费在线| 美女 人体艺术 gogo| 丁香六月欧美| av在线播放免费不卡| 一边摸一边抽搐一进一小说| 手机成人av网站| 深夜精品福利| 桃色一区二区三区在线观看| 黑人巨大精品欧美一区二区mp4| 午夜亚洲福利在线播放| 精品第一国产精品| 国产亚洲精品第一综合不卡| 欧美黑人巨大hd| 精品日产1卡2卡| 久久精品91蜜桃| 国产一区二区三区在线臀色熟女| 99久久综合精品五月天人人| 999久久久精品免费观看国产| 亚洲av熟女| 国产99久久九九免费精品| 一级a爱片免费观看的视频| 午夜福利视频1000在线观看| 色婷婷久久久亚洲欧美| 中文字幕人成人乱码亚洲影| tocl精华| 欧美国产精品va在线观看不卡| 国产一区二区三区在线臀色熟女| 夜夜躁狠狠躁天天躁| 久久这里只有精品19| 亚洲人成网站在线播放欧美日韩| 91成年电影在线观看| √禁漫天堂资源中文www| 亚洲av五月六月丁香网| 黄色视频不卡| 亚洲在线自拍视频| 村上凉子中文字幕在线| 欧美成狂野欧美在线观看| 日本熟妇午夜| 变态另类丝袜制服| 99久久精品国产亚洲精品| 18禁观看日本| a级毛片在线看网站| 国产1区2区3区精品| 伊人久久大香线蕉亚洲五| 久久久久九九精品影院| 熟妇人妻久久中文字幕3abv| 午夜福利欧美成人| tocl精华| 国语自产精品视频在线第100页| 亚洲精品国产精品久久久不卡| 高潮久久久久久久久久久不卡| 成人永久免费在线观看视频| 国产黄片美女视频| 国产精品久久久久久亚洲av鲁大| 久久香蕉精品热| 亚洲午夜理论影院| 亚洲一区二区三区色噜噜| 国产精品免费一区二区三区在线| 色播亚洲综合网| 亚洲第一欧美日韩一区二区三区| www.精华液| 老司机深夜福利视频在线观看| 亚洲电影在线观看av| 国产真人三级小视频在线观看| 欧美日韩中文字幕国产精品一区二区三区| 久久精品国产亚洲av高清一级| xxxwww97欧美| 久久精品影院6| 国产精品av久久久久免费| 天堂√8在线中文| 性色av乱码一区二区三区2| 亚洲一码二码三码区别大吗| 午夜免费激情av| 人妻久久中文字幕网| 人妻久久中文字幕网| 日韩高清综合在线| 精品久久久久久久末码| 欧美另类亚洲清纯唯美| netflix在线观看网站| 国内少妇人妻偷人精品xxx网站 | 变态另类成人亚洲欧美熟女| 两个人免费观看高清视频| 91av网站免费观看| x7x7x7水蜜桃| 日本在线视频免费播放| 成人av一区二区三区在线看| 男女之事视频高清在线观看| 久久精品国产综合久久久| 久久久久久国产a免费观看| 中文字幕最新亚洲高清| 国产在线观看jvid| 中亚洲国语对白在线视频| 看黄色毛片网站| 欧美激情 高清一区二区三区| 少妇的丰满在线观看| 岛国在线观看网站| 亚洲五月天丁香| 黄片播放在线免费| 欧美在线黄色| 亚洲人成电影免费在线| 午夜免费成人在线视频| 黑丝袜美女国产一区| www.熟女人妻精品国产| 久久久国产欧美日韩av| 欧美性长视频在线观看| 亚洲av美国av| 久久久久精品国产欧美久久久| 1024香蕉在线观看| 欧美成人免费av一区二区三区| 波多野结衣高清无吗| 亚洲精品粉嫩美女一区| 女人被狂操c到高潮| 12—13女人毛片做爰片一| 久久久久久久精品吃奶| 国产aⅴ精品一区二区三区波| 97碰自拍视频| 国产成人影院久久av| 日本三级黄在线观看| 男女午夜视频在线观看| 欧美一级毛片孕妇| 亚洲国产欧美日韩在线播放| 久久精品91无色码中文字幕| 成人欧美大片| 丝袜美腿诱惑在线| 50天的宝宝边吃奶边哭怎么回事| 黄片小视频在线播放| 成年免费大片在线观看| 国产精品综合久久久久久久免费| 青草久久国产| 国产精品亚洲一级av第二区| 大香蕉久久成人网| 国产亚洲精品久久久久久毛片| 国产免费av片在线观看野外av| 两人在一起打扑克的视频| 国产成人系列免费观看| 女警被强在线播放| 久久久久久免费高清国产稀缺| 亚洲狠狠婷婷综合久久图片| 非洲黑人性xxxx精品又粗又长| 欧美不卡视频在线免费观看 | 欧美国产日韩亚洲一区| 精品第一国产精品| 啦啦啦 在线观看视频| 真人做人爱边吃奶动态| 久久中文字幕人妻熟女| 搡老熟女国产l中国老女人| 黑丝袜美女国产一区| 国产精品野战在线观看| 亚洲国产毛片av蜜桃av| 欧美中文日本在线观看视频| 中文字幕人成人乱码亚洲影| 最近最新中文字幕大全电影3 | 丰满的人妻完整版| 级片在线观看| 亚洲激情在线av| 久久伊人香网站| 搡老岳熟女国产| 色综合欧美亚洲国产小说| 亚洲av成人一区二区三| 成在线人永久免费视频| 丁香六月欧美| 亚洲精品色激情综合| 国产成人一区二区三区免费视频网站| 777久久人妻少妇嫩草av网站| 亚洲五月婷婷丁香| 大型黄色视频在线免费观看| 人成视频在线观看免费观看| 夜夜看夜夜爽夜夜摸| 亚洲av第一区精品v没综合| 黑人巨大精品欧美一区二区mp4| 亚洲狠狠婷婷综合久久图片| 免费在线观看视频国产中文字幕亚洲| 高清毛片免费观看视频网站| 天天一区二区日本电影三级| av超薄肉色丝袜交足视频| 不卡av一区二区三区| 久久天躁狠狠躁夜夜2o2o| 又紧又爽又黄一区二区| 久久久国产成人免费| 亚洲电影在线观看av| 久久午夜亚洲精品久久| 曰老女人黄片| 一级作爱视频免费观看| 国产在线观看jvid| 久久久久国产一级毛片高清牌| 1024香蕉在线观看| 制服人妻中文乱码| 十八禁网站免费在线| 淫妇啪啪啪对白视频| 久久久久久久午夜电影| 国内精品久久久久精免费| 欧美激情高清一区二区三区| 淫妇啪啪啪对白视频| 男女做爰动态图高潮gif福利片| 久久久久久亚洲精品国产蜜桃av| 99国产精品一区二区三区| 免费高清在线观看日韩| 欧美中文综合在线视频| 亚洲精品粉嫩美女一区| xxx96com| 亚洲中文字幕日韩| 日韩欧美在线二视频| 久久精品人妻少妇| 国产不卡一卡二| 悠悠久久av| 久久中文字幕一级| 国产高清videossex| 国产精品一区二区免费欧美| 窝窝影院91人妻| 亚洲全国av大片| 久久久国产成人免费| 黄色成人免费大全| 视频在线观看一区二区三区| 欧美性长视频在线观看| 精品国产美女av久久久久小说| 欧美黄色淫秽网站| 少妇粗大呻吟视频| 给我免费播放毛片高清在线观看| 欧美黑人欧美精品刺激| 国产成人av教育| 不卡一级毛片| cao死你这个sao货| 免费一级毛片在线播放高清视频| 一区福利在线观看| 日韩欧美在线二视频| 亚洲av成人不卡在线观看播放网| 99精品久久久久人妻精品| 一本大道久久a久久精品| 搡老妇女老女人老熟妇| 亚洲国产精品久久男人天堂| 欧美精品亚洲一区二区| 久久精品91无色码中文字幕| 国产精品国产高清国产av| cao死你这个sao货| 91九色精品人成在线观看| 国产黄色小视频在线观看| 久久久国产成人精品二区| 村上凉子中文字幕在线| 免费在线观看黄色视频的| 男女午夜视频在线观看| 欧美乱妇无乱码| 国产午夜福利久久久久久| 19禁男女啪啪无遮挡网站| 亚洲av片天天在线观看| 欧美在线黄色| 十分钟在线观看高清视频www| 国产又爽黄色视频| 可以在线观看的亚洲视频| 精品电影一区二区在线| 满18在线观看网站| 国产精品1区2区在线观看.| 亚洲激情在线av| 夜夜躁狠狠躁天天躁| 亚洲av五月六月丁香网| 久久久精品欧美日韩精品| 国产精品野战在线观看| 日韩欧美三级三区| 三级毛片av免费| 黄网站色视频无遮挡免费观看| 啪啪无遮挡十八禁网站| 在线国产一区二区在线| 久久人妻福利社区极品人妻图片| 午夜免费鲁丝| 欧美日韩黄片免| 中文字幕人妻熟女乱码| 老司机靠b影院| 精品国内亚洲2022精品成人| www国产在线视频色| 亚洲专区中文字幕在线| 国产成人影院久久av| 国产精品一区二区精品视频观看| 在线天堂中文资源库| 怎么达到女性高潮| 亚洲av美国av| 色综合婷婷激情|