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

    LWIP中零拷貝技術(shù)的研究與應(yīng)用

    2018-07-25 12:05:48趙成青李宥謀劉永斌
    計算機技術(shù)與發(fā)展 2018年7期
    關(guān)鍵詞:用戶

    趙成青,李宥謀,劉永斌,王 濤

    (西安郵電大學(xué),陜西 西安 710000)

    0 引 言

    LWIP是瑞典計算機科學(xué)院(SICS)的Adam Dunkels開發(fā)的用于嵌入式系統(tǒng)的開源TCP/IP協(xié)議棧[1]。LWIP的含義是輕量級的TCP/IP協(xié)議,專注于減少資源消耗。嵌入式網(wǎng)絡(luò)傳輸系統(tǒng)由于成本資源的限制,往往采用簡化的TCP/IP協(xié)議。文中通過研究、分析常用的嵌入式網(wǎng)絡(luò)協(xié)議棧LWIP的結(jié)構(gòu),在物理層和應(yīng)用層提出了提高系統(tǒng)傳輸效率的改進(jìn)方法。

    在小型嵌入式系統(tǒng)中,LWIP的實現(xiàn)基于上層協(xié)議已明確知道下層協(xié)議所使用的數(shù)據(jù)結(jié)構(gòu)的特點[2]。它會假設(shè)各層間的部分?jǐn)?shù)據(jù)結(jié)構(gòu)和實現(xiàn)原理在其他層是可見的。在數(shù)據(jù)包遞交過程中,各層協(xié)議可以通過指針直接指向數(shù)據(jù)包中其他層次的字段。所以上層可直接使用取地址計算得到下層中的數(shù)據(jù),這不僅使整個協(xié)議棧對數(shù)據(jù)包的操作更加靈活,而且避免了LWIP協(xié)議棧內(nèi)部數(shù)據(jù)遞交時的復(fù)制。但是,這僅僅是在LWIP協(xié)議棧內(nèi)部實現(xiàn)數(shù)據(jù)的零拷貝。在物理網(wǎng)卡向協(xié)議棧傳遞數(shù)據(jù)時和協(xié)議棧向應(yīng)用程序傳遞數(shù)據(jù)時,還是存在兩次消耗較大的數(shù)據(jù)拷貝過程。所以,文中提出在網(wǎng)卡接收數(shù)據(jù)時讓LWIP內(nèi)核存儲區(qū)指針直接指向物理網(wǎng)卡的寄存器地址的方法,避免了物理網(wǎng)卡數(shù)據(jù)到LWIP協(xié)議棧緩沖區(qū)數(shù)據(jù)的拷貝[3]。在應(yīng)用層,提出了利用μcos操作系統(tǒng)的郵箱機制,避免了多個外部應(yīng)用程序和協(xié)議棧內(nèi)核交互時的數(shù)據(jù)拷貝[4],從而實現(xiàn)了從物理層到應(yīng)用層真正的數(shù)據(jù)零拷貝,并且提高了系統(tǒng)的并發(fā)性。

    1 物理網(wǎng)卡到LWIP協(xié)議棧數(shù)據(jù)的傳遞

    在嵌入式系統(tǒng)中應(yīng)用比較廣泛的是MicroChip公司的ENC28J60網(wǎng)卡。在網(wǎng)卡驅(qū)動函數(shù)接收數(shù)據(jù)包時,網(wǎng)卡驅(qū)動函數(shù)首先向網(wǎng)卡發(fā)送數(shù)據(jù)包傳送指令,此時網(wǎng)卡會把BNRY(邊界寄存器)處的一個網(wǎng)卡格式的數(shù)據(jù)包數(shù)據(jù)一次性全部發(fā)送到DMA端口,此時網(wǎng)卡驅(qū)動函數(shù)會在DMA端口讀取所有字節(jié)數(shù)據(jù)后,網(wǎng)卡會自動將BNRY(邊界寄存器)值調(diào)整為下一個數(shù)據(jù)包地址,以準(zhǔn)備下一次讀取所有字節(jié)數(shù)據(jù)。然后將接收到的數(shù)據(jù)封裝成LWIP熟悉的格式并且寫到緩沖區(qū)中,這個過程涉及到數(shù)據(jù)到拷貝[5]。在ENC28J60網(wǎng)卡中接收緩沖器由一個硬件管理的循環(huán)FIFO構(gòu)成。ERXST表示接收緩沖區(qū)起始地址,ERXNDH表示接收緩沖區(qū)結(jié)束地址[6]。如圖1所示,通過把網(wǎng)卡相關(guān)的寄存器映射到LWIP內(nèi)核內(nèi)存空間,就可以直接對網(wǎng)卡寄存器進(jìn)行操作,避免了物理網(wǎng)卡到LWIP內(nèi)核空間的數(shù)據(jù)拷貝。然后封裝成LWIP內(nèi)核能夠識別的pbuf類型的數(shù)據(jù)包結(jié)構(gòu),在LWIP內(nèi)核中由low_level_input()函數(shù)完成這個功能。通過ehternetif_input()函數(shù)解析該數(shù)據(jù)包的類型,然后將該數(shù)據(jù)包指針遞交給相應(yīng)的上層。

    2 LWIP協(xié)議層間數(shù)據(jù)傳遞

    在網(wǎng)卡接收數(shù)據(jù)時,需要申請一個數(shù)據(jù)包,然后將網(wǎng)卡中的數(shù)據(jù)填入數(shù)據(jù)包中。發(fā)送數(shù)據(jù)包時,協(xié)議棧的某層中會申請一個pbuf,并將相應(yīng)的數(shù)據(jù)裝入到數(shù)據(jù)區(qū)域,同時相關(guān)的協(xié)議首部信息也會被填寫到pbuf的預(yù)留數(shù)據(jù)區(qū)域中[7]。數(shù)據(jù)包申請函數(shù)有兩個重要參數(shù),一個是想申請的數(shù)據(jù)包pbuf類型,另一個重要參數(shù)是該數(shù)據(jù)包是在協(xié)議棧中哪一層被申請的,分配函數(shù)會根據(jù)這個層次的不同,在pbuf數(shù)據(jù)區(qū)域前為相應(yīng)的協(xié)議預(yù)留出首部空間,這就是offset值??偟膩碚f,LWIP定義了四個層次,當(dāng)數(shù)據(jù)包申請時,所處的層次不同,會導(dǎo)致預(yù)留空間的offset值不同[8]。層次定義時通過一個枚舉類型pbuf_layer:

    Typedef enum{

    PBUF_TRANSPORT,//傳輸層

    PBUF_IP,//網(wǎng)絡(luò)層

    PBUF_LINK,//鏈路層

    PBUF_RAW,//原始層

    }pbuf_layer;

    上面的結(jié)構(gòu)體中除了定義枚舉類型pbuf_layer來表示各個網(wǎng)絡(luò)協(xié)議層的名稱外,還定義了兩個宏:PBUF_TRANSPORT_HLEN和PBUF_IP_HLEN。前者是典型的TCP報文首部長度,而后者是典型的不帶任何選項字段的IP首部長度。代碼如下所示:

    Switch(layer){

    Case PBUF_TRANSPORT:

    Offset=PBUF_LINK_HLEN+PBUF_IP_HLEN+PBUF_TRASNSPORT_HLEN;

    Case PBUF_IP:

    Offset=PBUF_LINK_HLEN+PBUF_IP_HLEN;

    Case PBUF_LINK:

    Offset=PBUF_LINK_HLEN;

    Case PBUF_LINK:

    Offset=0;

    在LWIP的數(shù)據(jù)包管理函數(shù)pbuf.c中,首先根據(jù)數(shù)據(jù)包申請時傳入的協(xié)議層參數(shù),計算需要在pbuf數(shù)據(jù)區(qū)簽預(yù)留的長度offset值,然后根據(jù)pbuf的類型進(jìn)行實際申請。Pbuf_pooll類型申請最復(fù)雜[9],因為可能需要幾個pool連接在一起,以此來滿足用戶的空間需求。

    限于篇幅,對LWIP內(nèi)存分配機制不做深入研究;pbuf_ref和pbuf_rom類型申請最簡單,它們只是在內(nèi)存MEMEP_PBUF中分配一個pbuf結(jié)構(gòu)空間,然后初始化相關(guān)字段,注意這兩種類型的payload指針需要用戶自行設(shè)置,通常在調(diào)用完函數(shù)pbuf_alloc后,調(diào)用者需要將payload指向某個數(shù)據(jù)區(qū)。

    在原始層以太網(wǎng)驅(qū)動中:

    P=pbuf_alloc(PBUF_RAW,recvlen,PBUF_RAM);

    這個調(diào)用語句申請了一個PBUF_RAM類型的pbuf,且其申請的協(xié)議層為PBUF_RAW,所以pbuf_alloc函數(shù)不會在數(shù)據(jù)區(qū)前預(yù)留出任何首部空間;通過使用p->payload,就可以實現(xiàn)對pbuf中數(shù)據(jù)區(qū)的讀取或者寫入操作了。

    在傳輸層TCP層:

    P=pbuf_alloc(PBUF_RAW,recvlen,PBUF_RAM);

    它告訴數(shù)據(jù)包分配函數(shù)使用PBUF_RAM類型的pbuf,且數(shù)據(jù)前應(yīng)該預(yù)留一部分的首部空間。由于這里是PBUF_TRANSPORT層,所以預(yù)留空間將有54個字節(jié),即TCP首部長度的20個字節(jié)、IP數(shù)據(jù)包首部長度的20個字節(jié)以及以太網(wǎng)幀首部長度的14字節(jié)。當(dāng)數(shù)據(jù)包往下層遞交,各層協(xié)議就直接操作這些預(yù)留空間的數(shù)據(jù),以實現(xiàn)數(shù)據(jù)首部的填寫,這樣就避免了數(shù)據(jù)的拷貝。

    3 LWIP軟件與用戶程序間的數(shù)據(jù)傳遞

    3.1 用戶緩沖數(shù)據(jù)結(jié)構(gòu)

    協(xié)議棧API實現(xiàn)時,也為用戶提供了數(shù)據(jù)包管理函數(shù),可以完成數(shù)據(jù)包內(nèi)存申請、釋放、數(shù)據(jù)拷貝等任務(wù)。無論是UDP還是TCP連接,當(dāng)協(xié)議棧接收到數(shù)據(jù)包后,會將數(shù)據(jù)封裝在一個netbuf中,并遞交給應(yīng)用程序[10]。在發(fā)送數(shù)據(jù)時,不同類型的連接將導(dǎo)致不同的數(shù)據(jù)處理方式。對于TCP連接,內(nèi)核會根據(jù)用戶提供待發(fā)送數(shù)據(jù)的起始數(shù)據(jù)和長度,自動將數(shù)據(jù)封裝在合適的數(shù)據(jù)包中,然后放入發(fā)送隊列;對于UDP,用戶需要手動將數(shù)據(jù)封裝在netbuf中,通過調(diào)用發(fā)送函數(shù),內(nèi)核直接發(fā)送數(shù)據(jù)包中的數(shù)據(jù)段。

    應(yīng)用程序使用netbuf結(jié)構(gòu)來描述、組裝數(shù)據(jù)包,該結(jié)構(gòu)只是對內(nèi)核pbuf的簡單封裝,是用戶應(yīng)用程序和協(xié)議棧共享的。外部應(yīng)用程序可以使用該結(jié)構(gòu)來管理發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的緩沖區(qū)。netbuf是基于pbuf實現(xiàn)的,其結(jié)構(gòu)如以下代碼所示:

    Struct netbuf{

    Struct pbuf *p,*ptr;

    Ip_addr_t *addr;

    U16_t port;

    }

    其中,netbuf相當(dāng)于一個數(shù)據(jù)首部,保存數(shù)據(jù)的字段是p,它指向pbuf鏈表首部,ptr指向鏈表中的其他位置,addr表示IP地址,port表示端口號。

    netbuf是應(yīng)用程序描述待發(fā)送數(shù)據(jù)和已接收數(shù)據(jù)的基本結(jié)構(gòu),引入netbuf結(jié)構(gòu)看似會讓應(yīng)用程序更加繁雜,但實際上內(nèi)核為應(yīng)用程序提供了API,通過共享一個netbuf結(jié)構(gòu)(如圖2所示),兩部分API就能實現(xiàn)對數(shù)據(jù)包的共同處理,避免了數(shù)據(jù)拷貝。

    圖2 用戶緩沖區(qū)結(jié)構(gòu)

    3.2 操作數(shù)據(jù)緩沖區(qū)指針

    與BSD相同,LWIP協(xié)議棧API也對網(wǎng)絡(luò)連接進(jìn)行了抽象。但它們之間的抽象存在一定的差別:BSD實現(xiàn)了更高級別的抽象,用戶可以像操作文件那樣來操作一個網(wǎng)絡(luò)連接;LWIP中,API只能實現(xiàn)較低級別的抽象,用戶操作的僅僅是一個網(wǎng)絡(luò)連接,而不是文件。在BSD中,應(yīng)用程序處理的網(wǎng)絡(luò)數(shù)據(jù)都處于一片連續(xù)的存儲區(qū)域中,可以使用戶對數(shù)據(jù)的處理更加方便。在LWIP中,若API使用上述數(shù)據(jù)存儲機制可能會導(dǎo)致很大的缺陷,因為LWIP中網(wǎng)絡(luò)數(shù)據(jù)都存儲在pbuf中,如果要實現(xiàn)存儲在連續(xù)的存儲區(qū)的話,需要將所有pbuf數(shù)據(jù)拷貝到這個連續(xù)的存儲中,這將造成數(shù)據(jù)的拷貝。為了避免數(shù)據(jù)拷貝以后再遞交給用戶,需要直接操作pbuf的一些方法,而LWIP中恰恰提供了這些方法。比如通過netbuf_next()可以修改數(shù)據(jù)指針指向下一個數(shù)據(jù)段,如果返回值為0,表示netbuf中還存在數(shù)據(jù)段,大于0說明指針已經(jīng)指向netbuf中的最后一個數(shù)據(jù)段了,小于0表明netbuf中已經(jīng)沒有數(shù)據(jù)段了。當(dāng)用戶未調(diào)用netbuf_next()函數(shù)的情況下,ptr和p都默認(rèn)指向第一個pbuf。通過netbuf_next()對協(xié)議棧和應(yīng)用程序共同緩沖區(qū)指針的調(diào)整和讀取,避免了應(yīng)用程序和數(shù)據(jù)以及內(nèi)核棧的拷貝。

    4 應(yīng)對多個外部應(yīng)用程序的指針傳遞

    在單獨運行LWIP時,用戶應(yīng)用程序和協(xié)議棧內(nèi)核處于同一進(jìn)程中,用戶程序通過回調(diào)的方式進(jìn)行。這樣,用戶程序和協(xié)議棧內(nèi)核出現(xiàn)了相互制約的關(guān)系,因為用戶程序執(zhí)行的時候,內(nèi)核一直處于等待狀態(tài),內(nèi)核需要等待用戶函數(shù)返回一個處理結(jié)果再繼續(xù)執(zhí)行。如果用戶執(zhí)行計算量很大,執(zhí)行時間很長,則協(xié)議棧代碼就一直得不到執(zhí)行,協(xié)議棧接收,處理數(shù)據(jù)包效率會受到直接的影響。最嚴(yán)重的結(jié)果是,如果發(fā)送方速度很快,則協(xié)議棧會因為來不及處理而出現(xiàn)丟包的情況。

    為了設(shè)計多進(jìn)程外部應(yīng)用程序,將LWIP移植到μcos操作系統(tǒng)下,讓LWIP內(nèi)核作為操作系統(tǒng)的一個任務(wù)運行[11]。LWIP協(xié)議棧設(shè)計時,提供了協(xié)議棧與操作系統(tǒng)之間函數(shù)的接口。協(xié)議棧API由兩部分組成。一部分提供給應(yīng)用程序,一部分提供給協(xié)議棧內(nèi)核。應(yīng)用程序和協(xié)議棧內(nèi)核通過進(jìn)程間通信機制進(jìn)行通信和同步[12]。使用到的進(jìn)程通信機制包括了以下三種[13]:

    (1)郵箱,例如內(nèi)核郵箱mbox、連接上接收數(shù)據(jù)的郵箱recvmbox;

    (2)信號量,例如op_completed,用于兩部分API同步;

    (3)共享內(nèi)存,例如內(nèi)核消息結(jié)構(gòu)tcp_msg、API消息內(nèi)容api_msg等[14]。

    兩部分API間的關(guān)系如圖3所示。API設(shè)計的主要思想是讓應(yīng)用程序成為一個單獨的進(jìn)程;而協(xié)議棧也成為一個單獨的進(jìn)程。用戶進(jìn)程只負(fù)責(zé)數(shù)據(jù)的計算等其他工作,協(xié)議棧進(jìn)程僅僅負(fù)責(zé)通信工作。兩部分進(jìn)程之間使用三種IPC方式中的郵箱和信號量集,內(nèi)核進(jìn)程可以直接將數(shù)據(jù)遞交到應(yīng)用程序郵箱中,然后繼續(xù)執(zhí)行,不必阻塞等待,郵箱對于應(yīng)用程序來說就像一個輸入隊列,提高了系統(tǒng)的實時性[15]。

    圖3 兩部分獨立進(jìn)程間的通信

    全局郵箱mbox在協(xié)議棧初始化時建立,用于內(nèi)核進(jìn)程tcpip_thread接收消息。內(nèi)核進(jìn)程通過共享內(nèi)存的方式與協(xié)議棧的其他各個模塊進(jìn)行通信,它從郵箱中獲得的是一個指向消息結(jié)構(gòu)的指針。函數(shù)tcp_input在內(nèi)存池中為系統(tǒng)消息結(jié)構(gòu)申請空間,并根據(jù)消息類型初始化結(jié)構(gòu)中的相關(guān)字段,把內(nèi)核消息封裝在tcp_msg結(jié)構(gòu)中,最后將消息投遞到系統(tǒng)郵箱中等待內(nèi)核進(jìn)程tcpip_thread處理。tcpip_thread使用從郵箱中獲得的指針指定到對應(yīng)內(nèi)存地址處讀取消息內(nèi)容,從而避免了兩個進(jìn)程間通信的數(shù)據(jù)的拷貝。

    5 性能測試對比及其應(yīng)用

    在局域網(wǎng)內(nèi),對ARM開發(fā)板STM32F103VET6-EV上基于無操作系統(tǒng)和移植了μcos操作系統(tǒng)的LWIP兩種方法編寫的UDP服務(wù)器進(jìn)行數(shù)據(jù)吞吐能力的測試,以此來估算網(wǎng)卡及整個板子的網(wǎng)絡(luò)處理性能及對比無操作系統(tǒng)模擬層和在操作系統(tǒng)模擬層下編寫的UDP服務(wù)器性能的差別。

    在Windows主機上運行iperf軟件來測試服務(wù)器的數(shù)據(jù)吞吐能力。如圖4(a)所示,在軟件上選擇UDP協(xié)議,設(shè)置好服務(wù)器IP地址(192.168.1.230)和端口號(5000)后,單擊start iperf,軟件開始對服務(wù)器性能進(jìn)行測試。從圖4(a)可以看出,服務(wù)器的上下行帶寬都可以維持在9 800 kb/s左右,很接近ENC28J60網(wǎng)卡的處理值上線10 M/s。在操作系統(tǒng)模擬層下基于LWIP零拷貝技術(shù)編寫的UDP服務(wù)器,板子的網(wǎng)絡(luò)處理性能達(dá)到最優(yōu)。從圖4(b)可以看出,基于無操作系統(tǒng)模擬層下編程的服務(wù)器在客戶端連續(xù)發(fā)送大量數(shù)據(jù)時導(dǎo)致丟包情況,嚴(yán)重情況下甚至出現(xiàn)死機的情況。

    圖4 UDP性能測試

    6 結(jié)束語

    綜上所述,在應(yīng)對多個外部應(yīng)用程序的情況下,無操作系統(tǒng)模擬層的UDP服務(wù)器編程,雖然避免了數(shù)據(jù)的拷貝,但是無法應(yīng)對多個外部應(yīng)用程序。所以將LWIP移植到μcos操作系統(tǒng)下,不僅減少了內(nèi)存開銷,而且能夠應(yīng)對多個外部應(yīng)用程序。文中的研究成果已經(jīng)成功應(yīng)用于嵌入式網(wǎng)管系統(tǒng)項目并實際運行,不僅提高了基于STM32平臺μcos操作系統(tǒng)下測量儀器代理模塊的傳輸效率,提高了系統(tǒng)的實時性,而且節(jié)約了內(nèi)存開銷。

    猜你喜歡
    用戶
    雅閣國內(nèi)用戶交付突破300萬輛
    車主之友(2022年4期)2022-08-27 00:58:26
    您撥打的用戶已戀愛,請稍后再哭
    關(guān)注用戶
    商用汽車(2016年11期)2016-12-19 01:20:16
    關(guān)注用戶
    商用汽車(2016年5期)2016-11-28 09:55:15
    兩新黨建新媒體用戶與全網(wǎng)新媒體用戶之間有何差別
    關(guān)注用戶
    商用汽車(2016年6期)2016-06-29 09:18:54
    關(guān)注用戶
    商用汽車(2016年4期)2016-05-09 01:23:12
    挖掘用戶需求尖端科技應(yīng)用
    Camera360:拍出5億用戶
    100萬用戶
    亚洲欧美清纯卡通| 9色porny在线观看| 亚洲国产av新网站| 亚洲美女黄色视频免费看| 日本vs欧美在线观看视频| 波多野结衣一区麻豆| 51午夜福利影视在线观看| 97在线人人人人妻| 激情视频va一区二区三区| 国产日韩一区二区三区精品不卡| 久久国产亚洲av麻豆专区| 亚洲第一欧美日韩一区二区三区 | 国产免费福利视频在线观看| 黄色视频,在线免费观看| av超薄肉色丝袜交足视频| 黄片大片在线免费观看| e午夜精品久久久久久久| 一区二区av电影网| 日韩大片免费观看网站| 亚洲国产中文字幕在线视频| 欧美中文综合在线视频| 亚洲精品乱久久久久久| 午夜久久久在线观看| 黑人操中国人逼视频| 日本一区二区免费在线视频| 黄片大片在线免费观看| 母亲3免费完整高清在线观看| 国产精品av久久久久免费| 欧美黑人欧美精品刺激| 一区二区日韩欧美中文字幕| 久久久久久免费高清国产稀缺| 麻豆乱淫一区二区| 每晚都被弄得嗷嗷叫到高潮| 五月天丁香电影| 亚洲精品国产av成人精品| 国产高清videossex| 日本撒尿小便嘘嘘汇集6| 嫁个100分男人电影在线观看| 国产免费现黄频在线看| av视频免费观看在线观看| 精品亚洲成国产av| 亚洲专区中文字幕在线| 男女午夜视频在线观看| 久热这里只有精品99| 久热这里只有精品99| 久久中文看片网| 精品人妻在线不人妻| 99re6热这里在线精品视频| 国产精品一区二区在线观看99| 久久精品国产亚洲av高清一级| 麻豆av在线久日| 亚洲美女黄色视频免费看| 亚洲国产av新网站| 法律面前人人平等表现在哪些方面 | 国产精品 欧美亚洲| 两个人看的免费小视频| 丰满少妇做爰视频| 日韩一区二区三区影片| 天天躁夜夜躁狠狠躁躁| 亚洲,欧美精品.| 这个男人来自地球电影免费观看| 久久久精品94久久精品| 妹子高潮喷水视频| 国产精品.久久久| 欧美日韩一级在线毛片| 夜夜骑夜夜射夜夜干| 久久久国产欧美日韩av| 精品福利永久在线观看| 国产日韩一区二区三区精品不卡| 久久人人爽人人片av| 宅男免费午夜| 如日韩欧美国产精品一区二区三区| 久久热在线av| 国产高清视频在线播放一区 | 天天躁日日躁夜夜躁夜夜| 午夜免费成人在线视频| 高清黄色对白视频在线免费看| 亚洲第一欧美日韩一区二区三区 | 在线观看www视频免费| 深夜精品福利| 99久久国产精品久久久| 男人爽女人下面视频在线观看| 在线观看免费视频网站a站| 永久免费av网站大全| 国产亚洲欧美精品永久| 亚洲午夜精品一区,二区,三区| av欧美777| 1024视频免费在线观看| av国产精品久久久久影院| 亚洲国产欧美日韩在线播放| 俄罗斯特黄特色一大片| 欧美日韩亚洲国产一区二区在线观看 | 午夜福利在线观看吧| 黑人猛操日本美女一级片| 麻豆乱淫一区二区| 90打野战视频偷拍视频| 久久久久国产一级毛片高清牌| 色婷婷久久久亚洲欧美| 91麻豆精品激情在线观看国产 | 乱人伦中国视频| 少妇裸体淫交视频免费看高清 | av天堂在线播放| 99国产综合亚洲精品| 成人国语在线视频| 久热爱精品视频在线9| 久久中文看片网| 亚洲一卡2卡3卡4卡5卡精品中文| 99久久综合免费| 91成人精品电影| 精品免费久久久久久久清纯 | 99久久精品国产亚洲精品| 一本综合久久免费| 午夜福利一区二区在线看| 汤姆久久久久久久影院中文字幕| 日日摸夜夜添夜夜添小说| 亚洲伊人色综图| 少妇裸体淫交视频免费看高清 | av在线app专区| 中文字幕另类日韩欧美亚洲嫩草| 熟女少妇亚洲综合色aaa.| 亚洲欧美精品综合一区二区三区| 黄色视频不卡| 中文字幕色久视频| 欧美成人午夜精品| 久久精品人人爽人人爽视色| 老司机福利观看| 国产精品1区2区在线观看. | 一本久久精品| 久久精品aⅴ一区二区三区四区| 国产一区二区三区在线臀色熟女 | 老熟妇乱子伦视频在线观看 | 老司机午夜福利在线观看视频 | 91字幕亚洲| 久久中文字幕一级| 丰满迷人的少妇在线观看| 女人被躁到高潮嗷嗷叫费观| 国产福利在线免费观看视频| 日日夜夜操网爽| videos熟女内射| 中文字幕另类日韩欧美亚洲嫩草| 久久久精品94久久精品| 老司机亚洲免费影院| 亚洲精品国产av蜜桃| 精品人妻1区二区| 人妻一区二区av| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美激情久久久久久爽电影 | 成人手机av| 国产人伦9x9x在线观看| 午夜免费成人在线视频| 超色免费av| 午夜福利视频精品| 久久久欧美国产精品| 久久久国产成人免费| 美国免费a级毛片| 成年动漫av网址| 亚洲熟女精品中文字幕| www日本在线高清视频| 1024香蕉在线观看| 性少妇av在线| 一边摸一边做爽爽视频免费| 国产精品自产拍在线观看55亚洲 | 日韩一卡2卡3卡4卡2021年| 亚洲va日本ⅴa欧美va伊人久久 | 中国国产av一级| 成年av动漫网址| 51午夜福利影视在线观看| 亚洲av电影在线观看一区二区三区| 18禁观看日本| a级毛片在线看网站| av国产精品久久久久影院| 极品少妇高潮喷水抽搐| 汤姆久久久久久久影院中文字幕| 亚洲欧美清纯卡通| 一二三四社区在线视频社区8| 亚洲国产av影院在线观看| 男人爽女人下面视频在线观看| 高清视频免费观看一区二区| av网站在线播放免费| 热re99久久精品国产66热6| 90打野战视频偷拍视频| 成人影院久久| 十八禁高潮呻吟视频| cao死你这个sao货| 亚洲国产欧美网| h视频一区二区三区| 中文欧美无线码| 美国免费a级毛片| kizo精华| 狂野欧美激情性xxxx| 欧美成人午夜精品| 亚洲七黄色美女视频| 青春草亚洲视频在线观看| 91字幕亚洲| 最近最新中文字幕大全免费视频| e午夜精品久久久久久久| 日韩免费高清中文字幕av| 亚洲 国产 在线| 捣出白浆h1v1| 欧美少妇被猛烈插入视频| 伊人久久大香线蕉亚洲五| 在线看a的网站| 天堂8中文在线网| 精品亚洲成国产av| 麻豆国产av国片精品| 在线十欧美十亚洲十日本专区| 黄片小视频在线播放| 国产区一区二久久| 久久久久久人人人人人| 精品福利永久在线观看| av电影中文网址| 欧美激情 高清一区二区三区| 夜夜夜夜夜久久久久| 亚洲成人免费电影在线观看| 国产伦人伦偷精品视频| 国精品久久久久久国模美| 精品视频人人做人人爽| 日本wwww免费看| 97人妻天天添夜夜摸| 国产精品九九99| 亚洲欧洲日产国产| 亚洲av成人不卡在线观看播放网 | 999久久久国产精品视频| 欧美在线一区亚洲| 人妻人人澡人人爽人人| 女人久久www免费人成看片| 国产成人欧美在线观看 | 人人妻人人澡人人看| 一区二区三区四区激情视频| 老汉色∧v一级毛片| 考比视频在线观看| 久久天躁狠狠躁夜夜2o2o| 久久午夜综合久久蜜桃| 亚洲三区欧美一区| 热99久久久久精品小说推荐| 这个男人来自地球电影免费观看| 久久影院123| 国产精品一二三区在线看| 十八禁网站免费在线| 亚洲熟女精品中文字幕| av在线播放精品| 18禁观看日本| 国产精品自产拍在线观看55亚洲 | 男女床上黄色一级片免费看| 操出白浆在线播放| 日本av手机在线免费观看| 三上悠亚av全集在线观看| 在线看a的网站| 国产1区2区3区精品| 精品一品国产午夜福利视频| 国产成人免费观看mmmm| www.自偷自拍.com| 最黄视频免费看| a 毛片基地| 天天添夜夜摸| av在线播放精品| 久久毛片免费看一区二区三区| 国产97色在线日韩免费| 乱人伦中国视频| 两性夫妻黄色片| 下体分泌物呈黄色| 99精国产麻豆久久婷婷| 国产成人精品久久二区二区免费| 国产欧美日韩精品亚洲av| 人妻久久中文字幕网| 日韩欧美国产一区二区入口| 嫁个100分男人电影在线观看| 欧美国产精品va在线观看不卡| 亚洲中文av在线| 成人影院久久| 日韩欧美一区二区三区在线观看 | 狠狠狠狠99中文字幕| 女性生殖器流出的白浆| 亚洲欧洲精品一区二区精品久久久| 午夜福利视频在线观看免费| 少妇人妻久久综合中文| 久久久久久久大尺度免费视频| 老鸭窝网址在线观看| 9191精品国产免费久久| 午夜福利免费观看在线| 一区二区三区四区激情视频| 精品人妻熟女毛片av久久网站| 夫妻午夜视频| 国产主播在线观看一区二区| 欧美日韩亚洲国产一区二区在线观看 | 日韩视频一区二区在线观看| 99久久精品国产亚洲精品| 国产成人精品久久二区二区免费| 国产深夜福利视频在线观看| 成在线人永久免费视频| 2018国产大陆天天弄谢| 侵犯人妻中文字幕一二三四区| 美女高潮喷水抽搐中文字幕| bbb黄色大片| 亚洲国产欧美网| 国产成人系列免费观看| 国产精品久久久久久人妻精品电影 | 精品熟女少妇八av免费久了| 国产成+人综合+亚洲专区| 在线观看一区二区三区激情| 91国产中文字幕| 在线观看免费高清a一片| 国产xxxxx性猛交| 日本wwww免费看| 黄色 视频免费看| 免费看十八禁软件| 精品少妇一区二区三区视频日本电影| 亚洲精华国产精华精| 超碰成人久久| 国产免费福利视频在线观看| 国产精品熟女久久久久浪| 大陆偷拍与自拍| 国产99久久九九免费精品| 免费在线观看完整版高清| 午夜久久久在线观看| 免费少妇av软件| 最新在线观看一区二区三区| 涩涩av久久男人的天堂| 99热国产这里只有精品6| 亚洲成人免费电影在线观看| 欧美日韩成人在线一区二区| 黄网站色视频无遮挡免费观看| av超薄肉色丝袜交足视频| 老司机亚洲免费影院| 91av网站免费观看| 两性午夜刺激爽爽歪歪视频在线观看 | 男女高潮啪啪啪动态图| 日本欧美视频一区| 亚洲第一欧美日韩一区二区三区 | 欧美午夜高清在线| 搡老乐熟女国产| 国产主播在线观看一区二区| 欧美少妇被猛烈插入视频| 男女无遮挡免费网站观看| 狂野欧美激情性xxxx| 99久久人妻综合| 国产极品粉嫩免费观看在线| 中文字幕制服av| tocl精华| 久久久久久人人人人人| 国产极品粉嫩免费观看在线| 丝瓜视频免费看黄片| 一区在线观看完整版| 啦啦啦啦在线视频资源| 欧美成狂野欧美在线观看| 亚洲欧美激情在线| 十八禁人妻一区二区| 秋霞在线观看毛片| 18在线观看网站| 欧美精品亚洲一区二区| 亚洲精华国产精华精| 精品福利观看| 亚洲精华国产精华精| 97人妻天天添夜夜摸| 天天操日日干夜夜撸| 欧美 亚洲 国产 日韩一| 国产一区二区三区在线臀色熟女 | 国产精品 国内视频| 亚洲国产精品成人久久小说| 久久天躁狠狠躁夜夜2o2o| 丝袜脚勾引网站| 啪啪无遮挡十八禁网站| 亚洲午夜精品一区,二区,三区| 国产福利在线免费观看视频| 九色亚洲精品在线播放| a在线观看视频网站| 一边摸一边做爽爽视频免费| 国产色视频综合| 啦啦啦啦在线视频资源| 中文字幕人妻熟女乱码| 日韩欧美国产一区二区入口| 少妇人妻久久综合中文| 国产一区有黄有色的免费视频| 少妇的丰满在线观看| 丁香六月天网| 自拍欧美九色日韩亚洲蝌蚪91| 波多野结衣av一区二区av| 成人国产av品久久久| 18禁国产床啪视频网站| 天堂8中文在线网| 精品少妇黑人巨大在线播放| av国产精品久久久久影院| www.av在线官网国产| 免费一级毛片在线播放高清视频 | 日本vs欧美在线观看视频| www.自偷自拍.com| av片东京热男人的天堂| 国产精品久久久av美女十八| 国产男女内射视频| 欧美老熟妇乱子伦牲交| 看免费av毛片| 视频区欧美日本亚洲| 中文字幕高清在线视频| 中文字幕人妻丝袜制服| 欧美日韩av久久| 亚洲激情五月婷婷啪啪| 不卡一级毛片| 久久精品久久久久久噜噜老黄| 中文字幕制服av| 精品熟女少妇八av免费久了| 日本五十路高清| 一本—道久久a久久精品蜜桃钙片| 午夜福利视频在线观看免费| 色综合欧美亚洲国产小说| h视频一区二区三区| www.熟女人妻精品国产| 亚洲av美国av| 国精品久久久久久国模美| 色94色欧美一区二区| 国产免费一区二区三区四区乱码| 日本a在线网址| 女性被躁到高潮视频| av网站免费在线观看视频| 久热爱精品视频在线9| 最新的欧美精品一区二区| 亚洲成人免费电影在线观看| 亚洲人成电影免费在线| 亚洲 国产 在线| 亚洲免费av在线视频| 国产xxxxx性猛交| av网站在线播放免费| av视频免费观看在线观看| 国产日韩一区二区三区精品不卡| 岛国毛片在线播放| 亚洲精品国产av成人精品| 亚洲欧美精品自产自拍| 水蜜桃什么品种好| 欧美日韩视频精品一区| av天堂在线播放| av又黄又爽大尺度在线免费看| 国产主播在线观看一区二区| 淫妇啪啪啪对白视频 | 国产一区二区 视频在线| 国产欧美日韩精品亚洲av| 亚洲中文日韩欧美视频| 中文字幕人妻丝袜制服| 久热爱精品视频在线9| 中文欧美无线码| 三上悠亚av全集在线观看| 操美女的视频在线观看| 亚洲精品久久成人aⅴ小说| 91大片在线观看| 啦啦啦 在线观看视频| 9191精品国产免费久久| 亚洲av日韩在线播放| 亚洲精品第二区| 亚洲美女黄色视频免费看| 成年av动漫网址| 国产精品 国内视频| 精品国产超薄肉色丝袜足j| 在线观看免费午夜福利视频| 亚洲欧美精品综合一区二区三区| 免费看十八禁软件| 狂野欧美激情性bbbbbb| 51午夜福利影视在线观看| 大片免费播放器 马上看| 亚洲av美国av| 欧美中文综合在线视频| 久久精品国产a三级三级三级| 国产色视频综合| 久久国产精品影院| 亚洲av欧美aⅴ国产| 老司机亚洲免费影院| 久久中文字幕一级| 丝袜美足系列| 五月开心婷婷网| 高潮久久久久久久久久久不卡| 国产不卡av网站在线观看| 国产激情久久老熟女| 日本欧美视频一区| 久久久久久亚洲精品国产蜜桃av| 亚洲全国av大片| 99香蕉大伊视频| 婷婷色av中文字幕| 免费人妻精品一区二区三区视频| 一级黄色大片毛片| 一级片免费观看大全| 超碰成人久久| 久久人妻熟女aⅴ| 国产免费一区二区三区四区乱码| 欧美日韩亚洲综合一区二区三区_| 女性被躁到高潮视频| 免费人妻精品一区二区三区视频| 亚洲伊人色综图| 国产精品免费大片| 成年人免费黄色播放视频| 丰满少妇做爰视频| 免费看十八禁软件| 韩国精品一区二区三区| 国产成人啪精品午夜网站| 一二三四社区在线视频社区8| 欧美乱码精品一区二区三区| 午夜福利在线观看吧| 国产欧美日韩一区二区三区在线| 久久久久国产一级毛片高清牌| 亚洲视频免费观看视频| 午夜日韩欧美国产| 伊人亚洲综合成人网| 老汉色∧v一级毛片| 在线av久久热| 亚洲国产精品999| 中文字幕高清在线视频| 美女脱内裤让男人舔精品视频| 一本久久精品| 亚洲成人国产一区在线观看| 亚洲视频免费观看视频| 色婷婷av一区二区三区视频| 人人妻,人人澡人人爽秒播| 99久久国产精品久久久| 亚洲精品第二区| 高清黄色对白视频在线免费看| 夜夜骑夜夜射夜夜干| 国产男女超爽视频在线观看| 99九九在线精品视频| 老司机影院毛片| 丁香六月欧美| 男女床上黄色一级片免费看| 久久人人爽av亚洲精品天堂| 宅男免费午夜| 中文字幕最新亚洲高清| 欧美老熟妇乱子伦牲交| 国产精品一区二区免费欧美 | 亚洲人成电影免费在线| 黄色 视频免费看| 亚洲五月婷婷丁香| 777久久人妻少妇嫩草av网站| 51午夜福利影视在线观看| 9191精品国产免费久久| 啦啦啦 在线观看视频| 久久久久久久久免费视频了| 久热这里只有精品99| 精品久久蜜臀av无| 亚洲专区中文字幕在线| 视频区图区小说| 精品人妻一区二区三区麻豆| 日韩大片免费观看网站| 波多野结衣av一区二区av| 人妻久久中文字幕网| 日本黄色日本黄色录像| 在线 av 中文字幕| 操出白浆在线播放| 久久久精品免费免费高清| 99久久综合免费| 久久精品成人免费网站| av天堂在线播放| 91大片在线观看| 日韩欧美免费精品| 妹子高潮喷水视频| 亚洲综合色网址| 美女高潮到喷水免费观看| 9热在线视频观看99| 视频区图区小说| 日韩欧美一区二区三区在线观看 | 日本vs欧美在线观看视频| 91麻豆精品激情在线观看国产 | 18在线观看网站| 国产野战对白在线观看| 久久综合国产亚洲精品| 日本a在线网址| 国产高清视频在线播放一区 | 久久久水蜜桃国产精品网| 老司机亚洲免费影院| 在线观看免费午夜福利视频| 午夜福利一区二区在线看| 黑人操中国人逼视频| 久久精品亚洲av国产电影网| 天天影视国产精品| 国产成人免费无遮挡视频| 亚洲激情五月婷婷啪啪| 国产亚洲精品第一综合不卡| 9色porny在线观看| 国产福利在线免费观看视频| 亚洲 国产 在线| av天堂久久9| 免费女性裸体啪啪无遮挡网站| 婷婷成人精品国产| 欧美中文综合在线视频| 成在线人永久免费视频| 欧美日韩黄片免| 亚洲国产欧美在线一区| 国产精品.久久久| 一边摸一边做爽爽视频免费| 中文字幕色久视频| 美女高潮到喷水免费观看| 亚洲五月色婷婷综合| e午夜精品久久久久久久| 99re6热这里在线精品视频| 下体分泌物呈黄色| 日本vs欧美在线观看视频| 欧美黑人欧美精品刺激| 亚洲午夜精品一区,二区,三区| 国产麻豆69| 亚洲成人国产一区在线观看| 久久精品亚洲熟妇少妇任你| 国产国语露脸激情在线看| a级片在线免费高清观看视频| 99国产精品一区二区三区| 操出白浆在线播放| 亚洲成人国产一区在线观看| 五月天丁香电影| 国产麻豆69| 精品少妇黑人巨大在线播放| 日韩 亚洲 欧美在线| 色婷婷av一区二区三区视频| www.999成人在线观看| 亚洲国产精品成人久久小说| 色婷婷av一区二区三区视频| 捣出白浆h1v1| 侵犯人妻中文字幕一二三四区| 各种免费的搞黄视频| 黄色视频不卡| 午夜两性在线视频| av网站在线播放免费| 黑丝袜美女国产一区| 欧美 日韩 精品 国产|