精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Netty 的零拷貝是什么?它是如何工作的?

開發
本文我們詳細分析了 Netty零拷貝機制的實現,以及對其源碼分析,通過深入了解 Netty 的零拷貝機制,我們能夠更好地優化網絡應用,提升系統性能。

在傳統的I/O操作中,數據在內核和用戶空間之間頻繁拷貝會導致系統資源的浪費和性能瓶頸,為了解決這些問題,零拷貝技術應運而生。Netty 作為一個高性能的 Java網絡框架,在其設計中充分利用了零拷貝技術,以提升數據傳輸效率。這篇文章,我們將深入探討 Netty的零拷貝機制,包括其工作原理、實現方式以及相關源碼的分析。

一、什么是零拷貝?

零拷貝(Zero-Copy)是一種優化技術,旨在減少數據在內核和用戶空間之間的拷貝次數,從而提升系統性能。傳統的I/O操作需要將數據從內核空間拷貝到用戶空間,或者相反,這種多次拷貝會增加CPU負擔和內存帶寬的消耗。零拷貝通過減少或完全消除這些拷貝操作,顯著提高I/O效率。

零拷貝的常用的技術:

  • 內存映射(Memory Mapping):使用mmap系統調用將文件或設備映射到用戶空間,實現用戶直接訪問這些資源,減少拷貝。
  • sendfile 系統調用:允許將文件數據直接從文件描述符傳輸到網絡套接字,省去將數據拷貝到用戶空間的過程。
  • 散點聚集(Scatter/Gather I/O):通過單次系統調用實現多塊數據的讀寫,減少多次拷貝。

二、Netty 中的零拷貝實現

Netty 在零拷貝方面主要利用了以下技術:

  • Direct ByteBuf
  • FileRegion 接口及其實現
  • 使用 sendfile 系統調用

1. Direct ByteBuf

在Netty中,ByteBuf是其核心的數據容器,用于存儲傳輸的數據。ByteBuf 有兩種主要類型:堆緩沖區(Heap ByteBuf)和直接緩沖區(Direct ByteBuf)。

Heap ByteBuf 是基于Java堆內存的,數據存儲在JVM的堆內存中,適用于普通的I/O操作。然而,對于需要高性能且頻繁進行I/O操作的場景,堆緩沖區的性能可能不足。

Direct ByteBuf 則是基于直接內存(非JVM堆內存)的緩沖區,使用java.nio.ByteBuffer.allocateDirect分配。由于直接緩沖區位于操作系統的內存空間,Netty 能夠更高效地與操作系統進行I/O 操作,減少了數據拷貝,從而提升性能。

2. Direct ByteBuf 的優勢

  • 減少數據拷貝:直接緩沖區的數據在內核和用戶空間之間不需要多次拷貝,適合零拷貝操作。
  • 與操作系統高效交互:直接緩沖區可以更高效地與操作系統的I/O 系統調用配合,提升數據傳輸速率。

3. FileRegion 接口及其實現

在 Netty 中,FileRegion接口用于描述將一個文件或文件區域傳輸到另一個通道的操作。Netty 提供了兩個主要的 FileRegion實現:

  • DefaultFileRegion:直接利用 sendfile 系統調用,將文件數據高效地傳輸到目標通道。
  • ChunkedNioFile:通過分塊傳輸文件數據,適用于不支持 sendfile 的場景。

4. DefaultFileRegion 的實現

DefaultFileRegion是 Netty 中用于實現零拷貝的關鍵組件。它通過包裝文件描述符(File Descriptor)和文件偏移量,實現將文件內容直接傳輸到網絡套接字,避免了將數據拷貝到用戶空間的過程。

源碼分析:DefaultFileRegion.java

public class DefaultFileRegion implements FileRegion {
    privatefinal FileChannel file;
    privatefinallong position;
    privatefinallong count;
    privatelong transferred;

    public DefaultFileRegion(FileChannel file, long position, long count) {
        this.file = file;
        this.position = position;
        this.count = count;
    }

    @Override
    public long transfered() {
        return transferred;
    }

    @Override
    public long transferTo(WritableByteChannel target, long position) throws IOException {
        long res = file.transferTo(this.position + position, count - position, target);
        if (res > 0) {
            transferred += res;
        }
        return res;
    }

    @Override
    public long count() {
        return count;
    }

    @Override
    public long position() {
        return position;
    }

    @Override
    public FileChannel file() {
        return file;
    }

    @Override
    public boolean releaseInternal() {
        try {
            file.close();
            returntrue;
        } catch (IOException e) {
            returnfalse;
        }
    }
}

關鍵點解析:

  • file.transferTo 方法:FileChannel 的 transferTo 方法在支持的操作系統上會調用 sendfile 系統調用,實現文件數據的零拷貝傳輸。
  • 傳輸計數:transferred 字段用于跟蹤已傳輸的數據量,以便在多次調用 transferTo 時能夠正確計算剩余的數據量。
  • 資源釋放:在傳輸完成后,通過 releaseInternal 方法關閉文件通道,釋放資源。

5. 利用 sendfile 系統調用

sendfile 是Linux系統提供的一個系統調用,用于在內核態直接將文件數據發送到網絡套接字,避免了將數據拷貝到用戶空間的過程。這一系統調用是實現零拷貝的核心手段之一。

sendfile 的工作流程:

  • 應用程序調用 sendfile(sockfd, filefd, offset, count)。
  • 內核直接將 filefd 指定的文件數據從磁盤讀取到內存,并將其發送到 sockfd 指定的套接字。
  • 整個過程在內核態完成,數據無需在用戶態和內核態之間多次拷貝。

Netty 通過 DefaultFileRegion 的 transferTo 方法,內部調用了 FileChannel 的 transferTo,從而間接利用了 sendfile 實現零拷貝。

三、Netty 中零拷貝的使用場景

零拷貝在Netty中的主要應用場景包括:

  • 文件傳輸:在HTTP 文件服務器中,通過零拷貝技術高效地將文件傳輸給客戶端。
  • 靜態資源服務:例如,傳輸圖片、視頻等靜態資源時,利用零拷貝減少系統資源消耗。
  • 高吞吐量應用:需要處理大量I/O請求的應用,如實時數據傳輸、游戲服務器等。

示例代碼:使用 DefaultFileRegion 進行文件傳輸

public void sendFile(ChannelHandlerContext ctx, File file) {
    try {
        RandomAccessFile raf = new RandomAccessFile(file, "r");
        long fileLength = raf.length();
        DefaultFileRegion region = new DefaultFileRegion(raf.getChannel(), 0, fileLength);
        ctx.write(region);
        ctx.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

在上述代碼中,DefaultFileRegion 封裝了文件傳輸的相關信息,通過 ctx.write(region) 將文件傳輸請求提交給Netty,Netty 內部將調用 sendfile 實現高效傳輸。

四、Netty 零拷貝的優勢與局限

優勢:

  • 性能提升:減少數據拷貝次數,降低CPU和內存帶寬的消耗,顯著提升數據傳輸速率。
  • 資源節約:減少內存的占用和上下文切換次數,提升系統的整體資源利用率。
  • 簡化編程模型:Netty 封裝了底層的零拷貝細節,開發者無需關注復雜的系統調用細節。

局限:

  • 依賴操作系統支持:零拷貝技術,如 sendfile,依賴于操作系統的支持,不同操作系統的實現可能存在差異。
  • 適用場景有限:零拷貝主要適用于大規模的靜態數據傳輸,對于動態生成的數據或需要加工處理的數據,零拷貝的優勢可能不明顯。
  • 內存管理復雜性:使用直接緩沖區需要更復雜的內存管理,可能導致內存泄漏等問題,如果未正確釋放內存,可能影響系統穩定性。

五、深入源碼分析

為了更深入地理解Netty的零拷貝機制,我們將分析Netty中處理文件傳輸的關鍵部分。

1. Netty 文件傳輸流程

  • ChannelPipeline 中的 Handler:在 Netty 的 ChannelPipeline 中,文件傳輸通常由特定的 ChannelOutboundHandler 負責處理,如 HttpChunkedInput 或自定義的文件傳輸 Handler。
  • 調用 write 方法:當應用程序調用 channel.write(msg) 發送文件時,FileRegion 對象被傳遞到 ChannelOutboundHandler。
  • 觸發 Zero-Copy:通過 DefaultFileRegion 的 transferTo 方法,Netty 內部調用 sendfile 實現文件的零拷貝傳輸。
  • 完成傳輸:傳輸完成后,資源被釋放,傳輸計數被更新。

2. 關鍵源碼解析

以下是Netty中DefaultFileRegion的一部分關鍵源碼,展示了如何使用sendfile實現零拷貝。

public class DefaultFileRegion extends AbstractReferenceCounted implements FileRegion {
    privatefinal FileChannel file;
    privatefinallong position;
    privatefinallong count;
    privatelong transferred;

    public DefaultFileRegion(FileChannel file, long position, long count) {
        // 構造方法,初始化文件通道、位置和大小
        this.file = file;
        this.position = position;
        this.count = count;
    }

    @Override
    public long transfered() {
        return transferred;
    }

    @Override
    public long transferTo(WritableByteChannel target, long position) throws IOException {
        // 使用FileChannel的transferTo方法調用sendfile
        long res = file.transferTo(this.position + position, count - position, target);
        if (res > 0) {
            transferred += res;
        }
        return res;
    }

    @Override
    public boolean releaseInternal() {
        try {
            file.close();
            returntrue;
        } catch (IOException e) {
            returnfalse;
        }
    }

    // 其他方法省略
}

關鍵點解析:

  • 繼承自 AbstractReferenceCounted:DefaultFileRegion 繼承自 AbstractReferenceCounted,使用引用計數進行內存管理,確保文件通道在使用完畢后被正確釋放。
  • transferTo 方法:這是實現零拷貝的核心方法,通過調用 FileChannel.transferTo 實現文件數據傳輸。在支持 sendfile 的系統上,transferTo 會直接調用 sendfile,實現高效的數據傳輸。
  • 資源釋放:通過實現 releaseInternal 方法,確保文件通道在傳輸完成后被關閉,避免資源泄漏。

3. Netty 中的 sendfile 支持

Netty 內部通過判斷操作系統和Java版本,動態選擇是否使用 sendfile。在Linux系統上,通常會優先選擇 sendfile,而在某些不支持的系統上,會退化為傳統的拷貝方式進行傳輸。

源碼片段:NioSocketChannel.java

@Override
public ChannelFuture write(Object msg, final ChannelPromise promise) {
    if (msg instanceof FileRegion) {
        return writeFileRegion((FileRegion) msg, promise);
    }
    // 其他情況處理
}

private ChannelFuture writeFileRegion(final FileRegion region, final ChannelPromise promise) {
    boolean success = false;
    try {
        // 內部調用 FileRegion.transferTo 方法實現傳輸
        long writtenBytes = region.transferTo(ch, region.position());
        // 處理傳輸結果
        if (writtenBytes > 0) {
            // 更新傳輸狀態
        }
        success = true;
        return promise.setSuccess();
    } catch (IOException e) {
        return promise.setFailure(e);
    } finally {
        if (success) {
            region.release();
        }
    }
}

關鍵點解析:

  • write 方法:NioSocketChannel 的 write 方法會判斷傳入的消息是否為 FileRegion,如果是,則調用 writeFileRegion 方法進行處理。
  • writeFileRegion 方法:在 writeFileRegion 方法中,調用 FileRegion.transferTo 實現文件數據的傳輸。傳輸完成后,釋放資源并標記操作成功或失敗。

4. 零拷貝與Direct ByteBuf 的結合

Netty 的零拷貝不僅依賴 sendfile,還依靠 Direct ByteBuf 來優化數據在用戶空間和內核空間之間的傳輸。通過使用直接緩沖區,Netty 能夠減少內存拷貝,提高I/O 操作的效率。

示例代碼:寫入 Direct ByteBuf

public void writeDirectBuffer(ChannelHandlerContext ctx, byte[] data) {
    ByteBuf buffer = ctx.alloc().directBuffer(data.length);
    buffer.writeBytes(data);
    ctx.writeAndFlush(buffer);
}

在上述代碼中,通過 ctx.alloc().directBuffer 分配一個直接緩沖區,直接將數據寫入緩沖區,然后通過 writeAndFlush 方法發送。由于使用了直接緩沖區,數據傳輸過程中無需多次拷貝,提升了傳輸效率。

七、總結

本文,我們詳細分析了 Netty零拷貝機制的實現,以及對其源碼分析,通過深入了解 Netty 的零拷貝機制,包括 Direct ByteBuf、FileRegion 以及 sendfile 系統調用的應用,我們能夠更好地優化網絡應用,提升系統性能。

在實際應用中,我們可以結合具體場景需求,合理利用 Netty提供的零拷貝功能,為實際生產賦能。

責任編輯:趙寧寧 來源: 猿java
相關推薦

2024-11-15 16:15:59

2022-05-16 08:22:37

零拷貝Netty

2024-06-03 14:03:35

2020-09-11 08:41:50

域名系統DNS網絡

2024-08-19 00:25:00

2024-12-06 07:10:00

2024-09-03 10:15:21

2023-07-03 14:36:07

物聯網IoT

2024-11-11 10:15:04

CPULinux系統

2019-09-19 17:38:10

5G技術人生第一份工作

2022-11-22 11:30:53

2016-11-23 19:09:39

javanetty

2024-06-07 08:10:14

Netty操作系統零拷貝

2025-03-07 08:40:00

WAL數據庫分布式系統

2024-09-29 09:50:05

2023-02-24 13:24:52

2021-08-27 09:00:00

CDC數據庫技術

2017-12-10 23:41:52

SIEM企業安全情報

2023-07-29 13:45:30

了不起 Java極

2020-10-13 12:29:38

Linux包管理器
點贊
收藏

51CTO技術棧公眾號

怡红院一区二区三区| 亚洲熟妇av日韩熟妇在线| 黑鬼狂亚洲人videos| 亚洲优女在线| 久久噜噜亚洲综合| 成人黄色午夜影院| 久草免费在线视频观看| 自拍偷拍精品| 日韩一区二区在线看片| 欧美黑人经典片免费观看| 高清中文字幕一区二区三区| 国产一区不卡视频| 7m第一福利500精品视频| 亚洲免费av网| 高清毛片aaaaaaaaa片| 性色一区二区| 久久99热精品这里久久精品| 人妻av无码一区二区三区| 电影91久久久| 色综合久久综合中文综合网| 黄色一级视频播放| 国产网站在线播放| av在线不卡观看免费观看| 国产女同一区二区| 国产精品一区无码| 欧美性色综合| 精品国内产的精品视频在线观看| 在线看黄色的网站| 国产精品亚洲一区二区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| av电影一区二区三区| 高清国产福利在线观看| 99久久综合99久久综合网站| 97伦理在线四区| 一起草av在线| 久久久夜夜夜| 26uuu日韩精品一区二区| 天天看片中文字幕| 99久久精品网| 中文日韩在线观看| 女人又爽又黄免费女仆| 久久夜色电影| 亚洲高清av在线| 亚洲欧美日韩中文字幕在线观看| 久久av影院| 在线精品视频一区二区三四| 欧美性久久久久| 牛牛精品一区二区| 婷婷国产在线综合| 日本十八禁视频无遮挡| 国产后进白嫩翘臀在线观看视频| 亚洲免费视频成人| 香蕉视频在线网址| 成人福利在线观看视频| 亚洲欧洲av一区二区三区久久| 先锋影音亚洲资源| se在线电影| 国产精品午夜免费| 亚洲视频在线二区| 麻豆视频免费在线观看| 国产精品免费丝袜| 亚洲欧美电影在线观看| 日韩毛片久久久| 国产精品毛片无遮挡高清| 色播五月综合| 欧美精品videos另类| 亚洲欧美自拍偷拍| 欧美 另类 交| 暧暧视频在线免费观看| 精品国产鲁一鲁一区二区张丽| 国产96在线 | 亚洲| 激情国产在线| 日本道在线观看一区二区| 国产成人精品无码播放| 日本午夜免费一区二区| 欧美一区二区三区播放老司机| 美女流白浆视频| 亚洲免费一区三区| 日韩美女视频在线| 深爱五月综合网| 秋霞影院一区| 国产丝袜精品第一页| 日本成人免费视频| 日韩激情图片| 欧美高清激情视频| 久久青青草原亚洲av无码麻豆| 日本视频中文字幕一区二区三区 | 特级毛片在线| 性做久久久久久| 国产偷人视频免费| 中文字幕日本一区| 亚洲国产精品久久91精品| 波多野结衣一本| 午夜精品一区二区三区国产| 久久久久久久国产| 中国女人一级一次看片| 国产福利一区在线| 欧美日产一区二区三区在线观看| 在线观看免费黄视频| 亚洲国产另类精品专区| 蜜臀视频一区二区三区| xvideos.蜜桃一区二区| 国产一区二区动漫| 久久午夜无码鲁丝片| 日韩成人午夜精品| 国产私拍一区| 97超碰资源站在线观看| 欧美色xxxx| 日本人dh亚洲人ⅹxx| 精品一区三区| 久久久久久18| 91精品国产乱码久久久久| 99精品欧美一区二区三区小说| 一本一生久久a久久精品综合蜜 | 亚洲国产精品人人做人人爽| 美女网站视频黄色| 日本国产精品| 久久91精品国产| 中文字幕免费在线看| 99视频国产精品| 日本久久高清视频| 欧美xnxx| 日韩精品视频在线观看免费| 内射一区二区三区| 日本午夜一本久久久综合| 精品国产二区在线| 在线观看电影av| 欧美日韩精品一区二区三区蜜桃| 亚洲av无码一区二区三区观看| 91精品秘密在线观看| 国产精品久久久久久久一区探花| 天天操天天干天天| 亚洲午夜激情网页| 久久人人爽人人片| 希岛爱理av一区二区三区| 国产成人综合精品| 欧美女优在线观看| 欧美日韩亚洲精品一区二区三区| 乱码一区二区三区| 欧美久久一区| 91手机在线观看| 尤物yw193can在线观看| 欧美放荡的少妇| 殴美一级黄色片| 奇米精品一区二区三区在线观看一 | 国产一区不卡精品| 一区二区三区四区久久| 久久久久黄色| yw.139尤物在线精品视频| 日本视频www色| 国产亚洲精品中文字幕| 午夜免费精品视频| 青青草综合网| 成人女保姆的销魂服务| 国产二区三区在线| 精品国产一区二区三区忘忧草| 欧美日韩国产精品一区二区三区| 国产一区二区三区久久久| 裸体大乳女做爰69| 国产精品777777在线播放| 精品国产一区二区在线| 国产欧美日韩综合精品一区二区三区| 国产精品美女久久久久久2018| 丁香婷婷激情网| 日本一区二区在线看| 91精品久久久久久综合乱菊 | 日本成人动漫在线观看| 午夜精品视频一区| 成人乱码一区二区三区av| 久久精品国产清高在天天线| 色女孩综合网| 国产色99精品9i| 久久久人成影片一区二区三区观看 | 国产iv一区二区三区| www.99热这里只有精品| 欧美禁忌电影| 成人性教育视频在线观看| 日本不卡影院| 亚洲男人7777| 国产精品九九九九| 亚洲永久精品国产| 国产熟妇搡bbbb搡bbbb| 免费看黄色91| 成人一级生活片| 国产精品自拍区| 91久久国产精品| 国产三级电影在线播放| 尤物yw午夜国产精品视频明星| 国产免费一区二区三区免费视频| 性做久久久久久久免费看| 免费一级特黄3大片视频| 国产成人在线网站| 免费在线观看毛片网站| 亚洲女同一区| 欧美成ee人免费视频| www.久久爱.com| 欧美亚洲第一页| 1区2区3区在线视频| 日韩激情在线视频| 国产毛片久久久久| 欧美午夜视频在线观看| 青青青在线免费观看| www国产成人免费观看视频 深夜成人网| 国产又大又黄又猛| 国产欧美另类| 黄色录像特级片| 精品日本12videosex| 不卡视频一区二区| 国产亚洲人成a在线v网站| 欧美亚洲另类在线| 特级毛片在线| 少妇高潮久久久久久潘金莲| 天天干,天天操,天天射| 欧美一区二区成人| 中文字幕人妻色偷偷久久| 亚洲成人av中文| 色婷婷在线视频观看| 国产目拍亚洲精品99久久精品| 日本精品一二三区| 国产一区二区三区黄视频 | 在线看无码的免费网站| 少妇精品导航| 国产伦精品一区二区三区免| 日本免费一区二区三区视频| 国产乱人伦真实精品视频| 欧美特大特白屁股xxxx| 91精品国产色综合久久不卡98口| 50度灰在线| 久久久www成人免费精品| 成年人视频免费在线观看| 国产视频精品va久久久久久| 人妻丰满熟妇av无码区hd| 日韩午夜精品视频| 国产美女三级无套内谢| 欧美日韩卡一卡二| 91丨九色丨海角社区| 色婷婷国产精品久久包臀| 韩国av免费观看| 亚洲成av人在线观看| 久久精品这里只有精品| 亚洲美女视频在线观看| 小早川怜子一区二区的演员表| 欧美激情一区二区三区蜜桃视频| 在线免费观看成年人视频| 99久久婷婷国产| 怡红院一区二区| 97超碰欧美中文字幕| 国产激情视频网站| 99久久精品免费观看| 国产精品无码一区二区三区免费| 99久久精品国产导航| 精品中文字幕在线播放| 91麻豆成人久久精品二区三区| 朝桐光av一区二区三区| 久久色.com| 国产91丝袜美女在线播放| 国产精品天天看| 日本少妇aaa| 一区二区三区四区中文字幕| 欧美成人一二三区| 亚洲一区欧美一区| 免费在线观看黄网站| 日韩欧美在线视频日韩欧美在线视频 | 91传媒视频免费| 草草视频在线一区二区| 国产在线精品一区| 免费欧美一区| 亚洲一二三区精品| 91成人看片| 美女黄色免费看| 久久精品国语| 91在线第一页| av网站一区二区三区| 成人国产精品久久久网站| 国产精品美女久久久久久久| 青青草免费av| 欧美三级xxx| 国产精品一区二区三区在线免费观看| 日韩亚洲欧美中文三级| 日韩二区三区| 日韩最新免费不卡| 第一中文字幕在线| 国产精品一二区| 午夜日韩影院| 欧美一区二区三区在线播放| 91麻豆精品国产91久久久平台| 久久综合久久久久| 日日夜夜免费精品| 99久久综合网| 国产视频一区二区三区在线观看| 一区二区国产精品精华液| 天天综合天天综合色| 91免费视频播放| 亚洲精品国产精品国自产在线| 91高清在线| 国产综合在线视频| 日本免费成人| 六月婷婷久久| 国产精品porn| 日本xxxx黄色| 93久久精品日日躁夜夜躁欧美| 99久久99久久精品免费| 午夜精彩视频在线观看不卡| 制服丝袜在线一区| 亚洲电影免费观看高清完整版在线| 91社区在线观看| 欧美一级视频在线观看| 国产在线不卡一区二区三区| 品久久久久久久久久96高清| 黄色综合网站| 天天操精品视频| 欧美国产日本视频| 国产又爽又黄的视频| 日韩精品一区二区三区在线播放| www.亚洲视频| 国产成人精品免高潮在线观看| 538任你躁精品视频网免费| 伊人色综合久久天天五月婷| 石原莉奈一区二区三区在线观看| 久久久久无码国产精品一区李宗瑞| 亚洲欧洲国产专区| 特级西西444www高清大视频| 亚洲精品成人网| 黑人精品视频| 97影院在线午夜| 香蕉久久网站| 午夜大片在线观看| 中文字幕一区二区视频| 91在线视频免费播放| 日韩精品视频在线观看免费| 成年人视频免费在线播放| 91成人伦理在线电影| 91精品国产视频| 亚洲天堂网2018| 成人欧美一区二区三区白人| 一区二区视频播放| 色偷偷av一区二区三区| 欧美大片网站| 三年中文高清在线观看第6集| 另类中文字幕网| 日本黄色激情视频| 欧美日韩在线免费视频| 成人精品福利| 国产精品中文在线| 色琪琪久久se色| 手机av在线免费| 日韩美女视频一区| 国产精品久久久久久久一区二区| x99av成人免费| 久久久91麻豆精品国产一区| 欧美日韩dvd| 高清不卡在线观看av| 国产无套粉嫩白浆内谢| 亚洲国产天堂久久国产91 | 成人精品一区二区三区| 99久久九九| 韩国三级hd中文字幕有哪些| 亚洲一级片在线观看| 午夜一区在线观看| 国产成人极品视频| 久久国产影院| 中文字幕一二三| 亚洲成国产人片在线观看| 水莓100在线视频| 26uuu国产精品视频| 热久久天天拍国产| 亚洲一二三av| 亚洲国产日韩精品| 国产中文在线观看| 国产自产女人91一区在线观看| 一区二区日韩欧美| 内射中出日韩无国产剧情| 欧美亚洲国产一区二区三区va| 欧美a在线看| 国产精品一区二区三区在线 | 久久发布国产伦子伦精品| 亚洲.国产.中文慕字在线| 黄色电影免费在线看| 成人av番号网| 国产欧美另类| 亚洲精品自拍视频在线观看| 精品区一区二区| 国产精品高清乱码在线观看| 热这里只有精品| 99精品视频一区| 国产精品视频一二区| 97精品免费视频| 久久中文字幕av一区二区不卡| 国产性猛交96| 欧美三级视频在线| 成人女同在线观看| 亚洲视频导航| 久久综合色婷婷| 国产情侣av在线| 国产成人在线一区| 狠狠噜噜久久| 青青草华人在线视频| 亚洲娇小xxxx欧美娇小| 日韩欧国产精品一区综合无码| 你懂的av在线|