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

懵了!簡單的HTTP調用,時延竟如此大?

網絡 通信技術 開發工具
最近項目測試遇到個奇怪的現象,在測試環境通過 Apache HTTP Client 調用后端的 HTTP 服務,平均耗時居然接近 39.2ms。

 最近項目測試遇到個奇怪的現象,在測試環境通過 Apache HTTP Client 調用后端的 HTTP 服務,平均耗時居然接近 39.2ms。

[[278773]]

 

圖片來自 Pexels

可能乍一看覺得這不是很正常嗎,有什么好奇怪的?其實不然,我再來說下一些基本信息。

該后端的 HTTP 服務并沒有什么業務邏輯,只是將一段字符串轉成大寫然后返回,字符串長度也僅只有 100 字符,另外網絡 Ping 延時只有 1.9ms左右。

因此,理論上該調用耗時應該在 2-3ms 左右,但為什么平均耗時 39.2ms 呢?

 

調用時延

 

Ping 時延

由于工作原因,調用耗時的問題,對我來說,已經見怪不怪了,經常會幫業務解決內部 RPC 框架調用超時的相關問題,但是 HTTP 調用耗時是第一次遇到。

不過,排查問題的套路是一樣的。主要方法論無外乎由外而內、自上而下等排查方法。我們先來看看外圍的一些指標,看能否發現蛛絲馬跡。

外圍指標

系統指標

主要看外圍的一些系統指標(注意:調用與被調用的機器都要看)。例如負載、CPU。只需一個 Top 命令就能一覽無余。

因此,確認了下 CPU 和負載都很空閑。由于當時沒有截圖,這里就不放圖了。

進程指標

Java 程序進程指標主要看 GC、線程堆棧情況(注意:調用與被調用的機器都要看)。

Young GC 都非常少,而且耗時也在 10ms 以內,因此沒有長時間的 STW。

因為平均調用時間 39.2ms,比較大,如果耗時是代碼導致,線程堆棧應該能發現點啥。

看了之后一無所獲,服務的相關線程堆棧主要表現是線程池的線程在等任務,這就意味著線程并不忙。

是不是感覺黔驢技窮了,接下來該怎么辦呢?

本地復現

如果本地(本地是 MAC 系統)能復現,對排查問題也是極好的。

因此在本地使用 Apache HTTP Client 寫了個簡單 Test 程序,直接調用后端的 HTTP 服務,發現平均耗時在 55ms 左右。

咦,怎么跟測試環境 39.2ms 的結果有點區別。主要是本地與測試環境的后端的 HTTP 服務機器跨地區了,Ping 時延在 26ms 左右,所以延時增大了。

不過本地確實也是存在問題的,因為 Ping 時延是 26ms,后端 HTTP 服務邏輯簡單,幾乎不耗時,因此本地調用平均耗時應該在 26ms 左右,為什么是 55ms?

是不是越來越迷惑,一頭霧水,不知如何下手?期間懷疑過 Apache HTTP Client 是不是有什么地方使用的不對。

因此使用 JDK 自帶的 HttpURLConnection 寫了簡單的程序,做了測試,結果一樣。

診斷

定位

其實從外圍的系統指標、進程指標,以及本地復現來看,大致能夠斷定不是程序上的原因。那 TCP 協議層面呢?

有網絡編程經驗的同學一定知道 TCP 什么參數會引起這個現象。對,你猜的沒錯,就是 TCP_NODELAY。

那調用方和被調用方哪邊的程序沒有設置呢?調用方使用的是 Apache Http Client ,tcpNoDelay 默認設置的就是 True。

我們再來看看被調用方,也就是我們的后端 HTTP 服務,這個 HTTP 服務用的是 JDK 自帶的 HttpServer:

  1. HttpServer server = HttpServer.create(new InetSocketAddress(config.getPort()), BACKLOGS); 

居然沒看到直接設置 tcpNoDelay 接口,翻了下源碼。哦,原來在這里。

在 ServerConfig 的類中有這段靜態塊,用來獲取啟動參數,默認 ServerConfig.noDelay 為 false:

  1. static { 
  2.     AccessController.doPrivileged(new PrivilegedAction<Void>() { 
  3.         public Void run() { 
  4.             ServerConfig.idleInterval = Long.getLong("sun.net.httpserver.idleInterval", 30L) * 1000L; 
  5.             ServerConfig.clockTick = Integer.getInteger("sun.net.httpserver.clockTick", 10000); 
  6.             ServerConfig.maxIdleConnections = Integer.getInteger("sun.net.httpserver.maxIdleConnections", 200); 
  7.             ServerConfig.drainAmount = Long.getLong("sun.net.httpserver.drainAmount", 65536L); 
  8.             ServerConfig.maxReqHeaders = Integer.getInteger("sun.net.httpserver.maxReqHeaders", 200); 
  9.             ServerConfig.maxReqTime = Long.getLong("sun.net.httpserver.maxReqTime", -1L); 
  10.             ServerConfig.maxRspTime = Long.getLong("sun.net.httpserver.maxRspTime", -1L); 
  11.             ServerConfig.timerMillis = Long.getLong("sun.net.httpserver.timerMillis", 1000L); 
  12.             ServerConfig.debug = Boolean.getBoolean("sun.net.httpserver.debug"); 
  13.             ServerConfig.noDelay = Boolean.getBoolean("sun.net.httpserver.nodelay"); 
  14.             return null
  15.         } 
  16.     }); 

驗證

在后端 HTTP 服務,加上啟動"-Dsun.net.httpserver.nodelay=true"參數再試試。

效果很明顯,平均耗時從 39.2ms 降到 2.8ms:

 

優化后調用時延

問題是解決了,但是到這里如果你就此止步,那就太便宜了這個案例了,簡直暴殄天物。

因為還有一堆疑惑等著你呢:

  • 為什么加了 TCP_NODELAY ,時延就從 39.2ms 降低到 2.8ms?
  • 為什么本地測試的平均時延是 55ms,而不是 Ping 的時延 26ms?
  • TCP 協議究竟是怎么發送數據包的?

來,我們接著趁熱打鐵。

解惑

①TCP_NODELAY 何許人也?

在 Socket 編程中,TCP_NODELAY 選項是用來控制是否開啟 Nagle 算法。

在 Java 中,為 Ture 表示關閉 Nagle 算法,為 False 表示打開 Nagle 算法。你一定會問 Nagle 算法是什么?

②Nagle 算法是什么鬼?

Nagle 算法是一種通過減少通過網絡發送的數據包數量來提高 TCP/IP 網絡效率的方法。

它使用發明人 John Nagle 的名字來命名的,John Nagle 在 1984 年首次用這個算法來嘗試解決福特汽車公司的網絡擁塞問題。

試想如果應用程序每次產生 1 個字節的數據,然后這 1 個字節數據又以網絡數據包的形式發送到遠端服務器,那么就很容易導致網絡由于太多的數據包而過載。

在這種典型情況下,傳送一個只擁有 1 個字節有效數據的數據包,卻要花費 40 個字節長包頭(即 IP 頭部 20 字節+TCP 頭部 20 字節)的額外開銷,這種有效載荷(payload)的利用率是極其低下。

Nagle 算法的內容比較簡單,以下是偽代碼:

  1. if there is new data to send 
  2.   if the window size >= MSS and available data is >= MSS 
  3.     send complete MSS segment now 
  4.   else 
  5.     if there is unconfirmed data still in the pipe 
  6.       enqueue data in the buffer until an acknowledge is received 
  7.     else 
  8.       send data immediately 
  9.     end if 
  10.   end if 
  11. end if 

具體的做法就是:

  • 如果發送內容大于等于 1 個 MSS,立即發送。
  • 如果之前沒有包未被 ACK,立即發送。
  • 如果之前有包未被 ACK,緩存發送內容。
  • 如果收到 ACK,立即發送緩存的內容。(MSS 為 TCP 數據包每次能夠傳輸的最大數據分段)

③Delayed ACK 又是什么玩意?

大家都知道 TCP 協議為了保證傳輸的可靠性,規定在接受到數據包時需要向對方發送一個確認。

只是單純的發送一個確認,代價會比較高(IP 頭部 20 字節+TCP 頭部 20 字節)。

TCP Delayed ACK(延遲確認)就是為了努力改善網絡性能,來解決這個問題的。

它將幾個 ACK 響應組合合在一起成為單個響應,或者將 ACK 響應與響應數據一起發送給對方,從而減少協議開銷。

具體的做法是:

  • 當有響應數據要發送時,ACK 會隨響應數據立即發送給對方。
  • 如果沒有響應數據,ACK 將會延遲發送,以等待看是否有響應數據可以一起發送。在 Linux 系統中,默認這個延遲時間是 40ms。
  • 如果在等待發送 ACK 期間,對方的第二個數據包又到達了,這時要立即發送 ACK。

但是如果對方的三個數據包相繼到達,第三個數據段到達時是否立即發送 ACK,則取決于以上兩條。

④Nagle 與 Delayed ACK 一起會發生什么化學反應?

Nagle 與 Delayed ACK 都能提高網絡傳輸的效率,但在一起會好心辦壞事。

例如,以下這個場景,A 和 B 進行數據傳輸 : A 運行 Nagle 算法,B 運行 Delayed ACK 算法。

如果 A 向 B 發一個數據包,B 由于 Delayed ACK 不會立即響應。而 A 使用 Nagle 算法,A 就會一直等 B 的 ACK,ACK 不來一直不發送第二個數據包,如果這兩個數據包是應對同一個請求,那這個請求就會被耽誤了 40ms。

⑤抓個包玩玩吧

我們來抓個包驗證下吧,在后端 HTTP 服務上執行以下腳本,就可以輕松完成抓包過程。

  1. sudo tcpdump -i eth0 tcp and host 10.48.159.165 -s 0 -w traffic.pcap 

如下圖,這是使用 Wireshark 分析包內容的展示,紅框內是一個完整的 POST 請求處理過程。

 

測試環境數據包分析

看 130 序號和 149 序號之間相差 40ms(0.1859 - 0.1448 = 0.0411s = 41ms),這個就是 Nagle 與 Delayed ACK 一起發送的化學反應。

其中 10.48.159.165 運行的是 Delayed ACK,10.22.29.180 運行的是 Nagle 算法。

10.22.29.180 在等 ACK,而 10.48.159.165 觸發了 Delayed ACK,這樣傻傻等了 40ms。

這也就解釋了為什么測試環境耗時是 39.2ms,因為大部分都被 Delayed ACK 的 40ms 給耽誤了。

但是本地復現時,為什么本地測試的平均時延是 55ms,而不是 Ping 的時延 26ms?我們也來抓個包吧。

如下圖,紅框內是一個完整的 POST 請求處理過程,看 8 序號和 9 序號之間相差 25ms 左右,再減去網絡延時約是 Ping 延時的一半 13ms。

 

本地環境數據包分析

因此 Delayed Ack 約 12ms 左右(由于本地是 MAC 系統與 Linux 有些差異)。

  1. Linux 使用的是 /proc/sys/net/ipv4/tcp_delack_min 這個系統配置來控制 Delayed ACK 的時間,Linux 默認是 40ms; 
  2. 2. MAC 是通過 net.inet.tcp.delayed_ack 系統配置來控制 Delayed ACK 的。 
  3.   delayed_ack=0 responds after every packet (OFF
  4.   delayed_ack=1 always employs delayed ack, 6 packets can get 1 ack  
  5.   delayed_ack=2 immediate ack after 2nd packet, 2 packets per ack  (Compatibility Mode) 
  6.   delayed_ack=3 should auto detect when to employ delayed ack, 4packets per ack.  (DEFAULT
  7. 設置為 0 表示禁止延遲 ACK,設置為 1 表示總是延遲 ACK,設置為 2 表示每兩個數據包回復一個 ACK,設置為 3 表示系統自動探測回復 ACK 的時機。 

⑥為什么 TCP_NODELAY 能夠解決問題?

tcpNoDelay 關閉了 Nagle 算法,即使上個數據包的 ACK 沒有到達,也會發送下個數據包,進而打破 Delayed ACK 造成的影響。

一般在網絡編程中,強烈建議開啟 tcpNoDelay,來提升響應速度。

當然也可以通過 Delayed ACK 相關系統的配置來解決問題,但由于需要修改機器配置,很不方便,因此,這種方式不太推薦。

總結

本文是從一個簡單的 HTTP 調用,時延比較大而引發的一次問題排查過程。首先由外而內的分析了相關問題,然后定位問題并驗證解決方案。

最后刨根問底對 TCP 傳輸中的 Nagle 與 Delayed ACK 做了全面的講解,更加透徹的剖析了該問題案例。

責任編輯:武曉燕 來源: 滌生的博客
相關推薦

2019-07-16 16:00:31

HTTP時延服務

2019-07-15 10:22:40

HTTP分析CPU

2025-09-10 09:31:04

2017-05-03 16:36:32

Android圖片動畫

2018-04-11 10:07:09

大數據

2021-02-19 11:55:36

C語言MD5加密

2019-07-31 14:34:00

數據庫MySQLJava

2017-12-15 16:03:28

2015-07-06 10:52:19

BAT數據中心

2021-07-05 06:51:41

Nacos微服務源碼

2019-10-15 09:46:46

機器學習人工智能計算機

2017-12-25 09:30:00

互聯網視頻流量耗費成本

2020-03-03 15:40:51

開發技能代碼

2020-02-20 16:07:45

IT需求

2023-03-16 08:14:57

2019-09-02 22:17:01

英特爾

2023-11-15 14:34:05

MySQL悲觀鎖

2025-03-04 00:02:00

Python序列報錯

2016-12-26 18:16:41

戴爾成就篇
點贊
收藏

51CTO技術棧公眾號

欧美 国产 综合| 国精产品一区二区| 伊人久久久久久久久久久久久久| 日本免费在线一区| 亚洲欧洲av另类| 国产精品国产精品| 手机在线看片1024| 五月开心六月丁香综合色啪| 精品福利视频一区二区三区| 日韩在线第三页| 日韩另类在线| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩av手机在线看| 欧美黄色一级网站| 国产成人3p视频免费观看| 欧美高清视频在线高清观看mv色露露十八 | 色在线中文字幕| 国产精品美女久久久久久久网站| 国产91色在线|亚洲| 亚洲精品中文字幕乱码三区91| 婷婷久久国产对白刺激五月99| 亚洲精品久久久久久久久| 中文字幕免费高清在线| 欧亚在线中文字幕免费| **性色生活片久久毛片| 久久久久久艹| 丰满人妻一区二区三区四区53| 美女黄网久久| 久久免费在线观看| 亚洲精品午夜视频| 欧美一级二级三级视频| 337p亚洲精品色噜噜狠狠| 18岁视频在线观看| 电影在线观看一区| 一个色综合av| 亚洲欧美一二三| www日韩tube| 91在线免费播放| 国产66精品久久久久999小说| 国产精品爽爽久久久久久| 丝袜诱惑亚洲看片| 欧美一级黑人aaaaaaa做受| 久久久久久久久毛片| 手机在线电影一区| 亚洲一区二区国产| 熟女俱乐部一区二区| 久久国产精品美女| 在线播放中文一区| 欧美激情国产精品日韩| 国产夫妻在线播放| 亚洲成人av电影| 国产精品视频二| 影音先锋中文在线视频| 《视频一区视频二区| 中文字幕欧美日韩一区二区三区| www.亚洲资源| 久久久久国产成人精品亚洲午夜| 久久视频在线观看中文字幕| 午夜成人免费影院| 国产成人av一区| 91手机在线观看| a在线观看视频| 国产成人福利片| 国产经品一区二区| 色屁屁草草影院ccyycom| 国内成人精品2018免费看| 国产欧美精品va在线观看| 中文无码av一区二区三区| 日韩二区三区四区| 国产精品自拍视频| 国产美女www爽爽爽视频| 韩国理伦片一区二区三区在线播放| 国产欧美日韩免费| 99riav国产| 成人午夜激情片| 久久另类ts人妖一区二区| 国产香蕉视频在线看| 国产精品美女www爽爽爽| 伊人情人网综合| 视频在线观看入口黄最新永久免费国产| 亚洲私人黄色宅男| 国产玉足脚交久久欧美| 在线日韩影院| 欧美日韩大陆在线| av地址在线观看| 五月天亚洲色图| 少妇久久久久久| 久久久久亚洲天堂| 性欧美xxxx大乳国产app| 国产精品嫩草视频| 亚洲国产av一区二区| 91在线你懂得| 91社在线播放| 国产三级电影在线播放| 欧美亚洲一区二区在线| 久久综合在线观看| 欧洲亚洲视频| 另类色图亚洲色图| 可以免费在线观看的av| 精品一二线国产| 国产手机精品在线| 欧美被日视频| 欧美色videos| 亚洲一二区在线观看| 欧美男同视频网| 欧美成aaa人片免费看| 久久午夜免费视频| 国产在线播精品第三| 国产一区在线免费观看| 在线中文资源天堂| 婷婷国产在线综合| 午夜啪啪小视频| 国产成人精品免费视| 欧美人与物videos| 欧美高清69hd| 91视频国产观看| 热久久最新地址| 国产综合色在线观看| 亚洲а∨天堂久久精品9966| 久久久久久久久久97| 亚洲资源av| 成人欧美一区二区三区黑人免费| 超碰免费在线观看| 天天色综合天天| 少妇欧美激情一区二区三区| 日韩欧美综合| 国产成人亚洲综合91| 免费观看黄一级视频| 综合分类小说区另类春色亚洲小说欧美| 日韩中文字幕在线视频观看| 亚洲精品v亚洲精品v日韩精品| 这里只有精品视频| 男人的天堂一区二区| 国产精品亚洲人在线观看| 亚洲日本精品一区| 精品无人乱码一区二区三区| 日韩av最新在线观看| 国产一级二级毛片| 国产一区二区导航在线播放| 亚洲精品高清国产一线久久| 欧美三级网址| 日韩毛片在线观看| 日日夜夜综合网| 不卡一区二区中文字幕| 国产女主播自拍| 日韩中文字幕无砖| 精品中文字幕视频| www.com在线观看| 亚洲精品国久久99热| 手机在线观看日韩av| 在线成人激情| 亚洲一区二区自拍| 色在线视频网| 欧美tk丨vk视频| 日韩成人高清视频| 99这里只有久久精品视频| 欧美视频在线观看网站| 欧美成a人免费观看久久| 午夜精品www| 欧美一级一区二区三区| 亚洲h在线观看| 亚洲av无码一区二区三区网址| 亚洲看片一区| 久久久久资源| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲日本中文字幕| 免费精品一区二区| 国产精品国产三级国产普通话99| 嫩草视频免费在线观看| 欧美精品综合| 好看的日韩精品视频在线| 色老头在线一区二区三区| 亚洲视频免费一区| 一二区在线观看| 亚洲老妇xxxxxx| 欧美久久久久久久久久久| 在线亚洲一区| 亚洲午夜精品一区二区| 精品午夜av| 91国产视频在线播放| 黄上黄在线观看| 欧美日本在线看| 国产亚洲精品久久久久久无几年桃| 成人av在线一区二区| 日韩精品一区二区三区不卡| 国产精品成人一区二区不卡| 成人在线免费网站| 免费成人动漫| 久久精品免费播放| 亚洲av成人精品日韩在线播放| 色狠狠综合天天综合综合| 我要看一级黄色录像| 成人激情校园春色| 最近免费中文字幕中文高清百度| 婷婷综合亚洲| 久久波多野结衣| 久久影视精品| 91av在线免费观看| 暖暖日本在线观看| 日韩国产精品一区| 国产人妖一区二区| 一道本成人在线| 欧美成人三级在线观看| 久久久精品免费观看| 色姑娘综合天天| 久久久999| 日本五级黄色片| 日韩欧美大片| 久久精品人成| 日韩免费一级| 国产精品色婷婷视频| av资源中文在线| 久久夜精品va视频免费观看| 国产天堂在线| 日韩av综合网站| 亚洲AV无码成人片在线观看| 欧美在线你懂的| 国产a∨精品一区二区三区仙踪林| 亚洲天堂av一区| 538精品视频| 91一区二区在线| 师生出轨h灌满了1v1| 美女精品一区二区| 国产1区2区在线| 99av国产精品欲麻豆| 国产女人18毛片| 久久亚洲在线| 午夜老司机精品| 中文字幕精品影院| 精品视频免费观看| www.亚洲一二| 147欧美人体大胆444| 天堂久久一区| 国产精品入口日韩视频大尺度| 一级毛片久久久| 6080yy精品一区二区三区| av中文在线资源| 欧美日本国产在线| www.久久久久.com| 久久九九免费视频| 日本在线视频观看| 少妇高潮 亚洲精品| av电影在线观看| 怡红院精品视频| 成年人在线观看网站| 亚洲人精选亚洲人成在线| 邻居大乳一区二区三区| 日韩精品在线观| 日韩三级电影网| 精品无人国产偷自产在线| 日韩在线一区二区三区四区| 亚洲成人网av| 五月天婷婷激情网| 日韩精品在线免费观看视频| 亚洲 欧美 激情 另类| 精品无人区乱码1区2区3区在线 | 久久精品视频8| 亚洲国产aⅴ天堂久久| 国产一级aa大片毛片| 亚洲国产日韩一级| 日韩毛片在线播放| 欧美视频专区一二在线观看| 无码人妻丰满熟妇区五十路| 欧美色区777第一页| 97成人在线观看| 日韩欧美一区在线| 少妇高潮久久久| 亚洲欧洲国产伦综合| 成人免费高清在线播放| 日韩一区二区三区国产| 在线观看午夜av| 91黑丝在线观看| 粉嫩一区二区| 国产欧美日韩免费| 草草视频在线一区二区| 老牛影视免费一区二区| 日韩欧美一区二区三区在线视频| 黄色一级视频播放| 夜夜嗨av一区二区三区网站四季av| 免费观看日韩毛片| 蜜桃av一区二区| 亚洲欧美日韩中文字幕在线观看| av亚洲精华国产精华| 亚洲综合欧美综合| 亚洲另类中文字| 日本少妇性生活| 欧洲精品中文字幕| av网站免费播放| 精品香蕉一区二区三区| 日本中文字幕伦在线观看| 欧美激情亚洲视频| 朝桐光一区二区| 91九色极品视频| 神马电影久久| 波多野结衣 作品| 美女日韩在线中文字幕| 岛国av免费在线| 26uuu亚洲| 黄色一级片中国| 色偷偷久久一区二区三区| 国产毛片毛片毛片毛片| 亚洲欧美日韩一区二区在线 | 成人在线免费播放视频| 国产综合色在线视频区| 国产成人无码一区二区在线观看| 中文字幕永久在线不卡| 一级黄色免费网站| 日韩精品一区二区三区swag | 国产精品qvod| 亚洲国产综合自拍| 亚洲一区日韩| 91人人澡人人爽| 国产精品久久久久久久久免费桃花| 日韩精品成人在线| 欧美军同video69gay| 青青草手机在线| 欧美激情女人20p| 欧美日韩破处视频| 日产中文字幕在线精品一区| 激情文学一区| 亚洲高清av一区二区三区| 国产日韩欧美激情| 国产免费av一区| 精品国产免费久久| a视频在线播放| 国产日韩精品在线播放| 色综合综合色| 欧美私人情侣网站| 91在线观看一区二区| 国产一级二级三级视频| 欧美一区二区三区四区久久| 日韩子在线观看| 国产精品嫩草影院久久久| 蜜桃一区二区| 国产99久久九九精品无码| 成人免费电影视频| 青青草偷拍视频| 日韩一级成人av| 在线观看男女av免费网址| 91久久久亚洲精品| 香蕉综合视频| 小明看看成人免费视频| 亚洲欧洲av在线| 国产精品女人久久久| 日韩中文字幕国产精品| 国产一区影院| 中文字幕人成一区| 久久精品999| 久久高清内射无套| 欧美一级一区二区| 在线三级电影| 国产一区二区三区四区五区在线 | 久久午夜影院| 蜜桃传媒一区二区三区| jlzzjlzz国产精品久久| 可以免费看的av毛片| 日韩高清欧美高清| 美女福利一区二区| 亚洲精品国产精品久久| 久久成人18免费观看| 杨钰莹一级淫片aaaaaa播放| 日韩欧美一区二区久久婷婷| 欧美卡一卡二| 激情视频在线观看一区二区三区| 羞羞视频在线观看欧美| xxxxx在线观看| 欧美日韩高清影院| 亚洲精品白浆| 久久精品ww人人做人人爽| 久久影院亚洲| 永久免费看片直接| 精品免费国产二区三区| 一个人看的www视频在线免费观看| 日本高清不卡三区| 狠狠网亚洲精品| 国产成人精品亚洲男人的天堂| 日韩经典一区二区三区| 日韩网站中文字幕| 天堂а√在线中文在线| 99综合电影在线视频| 怡红院男人的天堂| 欧美日韩福利视频| 亚洲瘦老头同性70tv| 狠狠干狠狠操视频| 天天综合网 天天综合色| 成人三级黄色免费网站| 成人午夜电影在线播放| 日日骚欧美日韩| 日本妇女毛茸茸| 亚洲石原莉奈一区二区在线观看| 国产999精品在线观看| 欧美啪啪免费视频| 中文字幕在线观看一区| 好吊视频一区二区三区| 国产精品久久久久7777婷婷| 中文av一区| 干b视频在线观看| 精品日韩成人av| 久久天堂影院| 国产最新免费视频|