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

徹底解決SpringCloud TCP連接過多未釋放問題!

網絡 網絡優化
為實現數據的可靠傳輸,TCP要在應用進程間建立傳輸連接。它是在兩個傳輸用戶之間建立一種邏輯聯系,使得通信雙方都確認對方為自己的傳輸連接端點。

參與項目中使用springcloud gateway,并結合nacos,做網關實現路由轉發以及負載均衡的功能。項目運行一段時間后,出現springcloud gateway服務的TCP連接過多未釋放的問題,針對此問題,查閱相關資料,匯總TCP連接、Http Keep-Alive和Tcp Keepalive的基礎知識,并結合操作系統windows和linux對keepalive參數的設置問題,最后落到部分常見的應用服務對keepalive參數的配置上,并以此為基礎,實踐調整springcloud gateway設置keepalive參數并進行了驗證有效,其他有關操作系統以及Nginx與Tomcat的設置問題,尚需后續實踐過程中進行驗證。于此進行記錄,以便后續繼續研究與驗證,也為后來者提供參考借鑒,文中不免疏漏之處,望讀者予以指正,不勝感激!

1.TCP連接介紹

為實現數據的可靠傳輸,TCP要在應用進程間建立傳輸連接。它是在兩個傳輸用戶之間建立一種邏輯聯系,使得通信雙方都確認對方為自己的傳輸連接端點。

1.1 建立連接—三次握手

建立連接前,服務器端首先被動打開其熟知的端口,對端口進行偵聽。當客戶端要和服務器端建立連接時,發起一個主動打開端口的請求(該端口一般為臨時端口);然后進入三次握手的過程。

圖片圖片

第一次握手:建立連接時,客戶端發送SYN包(seq=x)到服務器,并進入 SYN_SEND 狀態,等待服務器確認;

第二次握手:服務器收到SYN包,必須確認客戶的 SYN(ack=x+1),同時自己也發送一個 SYN 包(seq=y),即 SYN+ACK 包,此時服務器進入 SYN_RECV 狀態;

第三次握手:客戶端收到服務器的 SYN+ACK 包,向服務器發送確認包 ACK(ack=y+1),此包發送完畢,客戶端和服務器進入 ESTABLISHED 狀態,完成三次握手。

1.2 釋放連接—四次揮手

圖片圖片

  • 第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。
  • 第二次揮手:Server收到FIN后,發送一個ACK給Client,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),Server進入CLOSE_WAIT狀態。
  • 第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。
  • 第四次揮手:Client收到FIN后,Client進入TIME_WAIT狀態,接著發送一個ACK給Server,確認序號為收到序號+1, Server進入CLOSED狀態,完成四次揮手。

此時TCP連接還沒有釋放掉,必須經過時間等待計時器設置的時間2MSL后,Client才進入到連接關閉狀態。

說明:

2MSL即兩倍的MSL,TCP的TIME_WAIT狀態也稱為2MSL等待狀態,當TCP的一端發起主動關閉,在發出最后一個ACK包后,即第3次握手完成后發送了第四次握手的ACK包后就進入了TIME_WAIT狀態,必須在此狀態上停留兩倍的MSL時間,等待2MSL時間主要目的是怕最后一個ACK包對方沒收到,那么對方在超時后將重發第三次握手的FIN包,主動關閉端接到重發的FIN包后可以再發一個ACK應答包。在TIME_WAIT狀態 時兩端的端口不能使用,要等到2MSL時間結束才可繼續使用。當連接處于2MSL等待階段時任何遲到的報文段都將被丟棄。不過在實際應用中可以通過設置 SO_REUSEADDR選項達到不必等待2MSL時間結束再使用此端口。

如果有大量的連接,每次在連接、關閉時都要三次握手,四次揮手,會很明顯會造成性能低下。

2. KeepAlive與Keep-Alive介紹

TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念,不能混為一談。實際上HTTP的KeepAlive寫法是Keep-Alive,跟TCP的KeepAlive寫法上也有不同。

2.1 Http Keep-Alive

Http協議采用“請求-應答”模式,當使用普通模式,即非Keep-Alive模式時,每個請求/應答,客戶端和服務器都要新建一個連接,完成之后立即斷開連接;當使用Keep-Alive模式時,Keep-Alive功能使客戶端到服務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive功能避免了建立或者重新建立連接。

http1.0中默認是關閉的,需要在http頭加入”Connection: Keep-Alive”,才能啟用Keep-Alive;http 1.1中默認啟用Keep-Alive,如果加入”Connection: close “才關閉。目前大部分瀏覽器都是用http1.1協議,也就是說默認都會發起Keep-Alive的連接請求了,所以是否能完成一個完整的Keep- Alive連接就看服務器設置情況。

開啟Keep-Alive的優缺點:

? 優點:Keep-Alive模式更加高效,因為避免了連接建立和釋放的開銷。

? 缺點:長時間的Tcp連接容易導致系統資源無效占用,浪費系統資源。

2.2 Tcp KeepAlive

連接建立之后,如果客戶端一直不發送數據,或者隔很長時間才發送一次數據,當連接很久沒有數據報文傳輸時如何去確定對方還在線,到底是掉線了還是確實沒有數據傳輸,連接還需不需要保持,這種情況在TCP協議設計中是需要考慮到的。TCP協議通過一種巧妙的方式去解決這個問題,當超過一段時間之后,TCP自動發送一個數據為空的報文(偵測包)給對方,如果對方回應了這個報文,說明對方還在線,連接可以繼續保持,如果對方沒有報文返回,并且重試了多次之后則認為鏈接丟失,沒有必要保持連接。

tcp KeepAlive是TCP的一種檢測TCP連接狀況的保鮮機制。tcp KeepAlive保鮮定時器,支持三個系統內核配置參數:

net.ipv4.tcp_keepalive_intvl = 15  
net.ipv4.tcp_keepalive_probes = 5  
net.ipv4.tcp_keepalive_time = 1800

KeepAlive是TCP保鮮定時器,當網絡兩端建立了TCP連接之后,閑置(雙方沒有任何數據流發送往來)了tcp_keepalive_time后,服務器就會嘗試向客戶端發送偵測包,來判斷TCP連接狀況(有可能客戶端崩潰、強制關閉了應用、主機不可達等等)。如果沒有收到對方的回答(ack包),則會在 tcp_keepalive_intvl后再次嘗試發送偵測包,直到收到對方的ack,如果一直沒有收到對方的ack,一共會嘗試 tcp_keepalive_probes次,每次的間隔時間在這里分別是15s, 30s, 45s, 60s, 75s。如果嘗試tcp_keepalive_probes,依然沒有收到對方的ack包,則會丟棄該TCP連接。TCP連接默認閑置時間是2小時,一般設置為30分鐘足夠了。

3.操作系統有關Keepalive參數設置

3.1 Linux系統

  • tcp_keepalive_time 7200// 距離上次傳送數據多少時間未收到新報文判斷為開始檢測,單位秒,默認7200s(沒必要頻繁,浪費資源)。
  • tcp_keepalive_intvl 75// 檢測開始每多少時間發送心跳包,單位秒,默認75s。
  • tcp_keepalive_probes 9// 發送幾次心跳包對方未響應則close連接,默認9次。可通過對下列對應的配置文件進行修改參數:/proc/sys/net/ipv4/tcp_keepalive_time/proc/sys/net/ipv4/tcp_keepalive_intvl/proc/sys/net/ipv4/tcp_keepalive_probes

3.2 Windows系統

  • KeepAliveTimeKeepAliveTime的值控制系統嘗試驗證空閑連接是否仍然完好的頻率。如果該連接在一段時間內沒有活動,那么系統會發送保持連接的信號,如果網絡正常并且接收方是活動的,它就會響應。如果需要對丟失接收方的情況敏感,也就是說需要更快地發現是否丟失了接收方,請考慮減小該值。而如果長期不活動的空閑連接的出現次數較多,但丟失接收方的情況出現較少,那么可能需要增大該值以減少開銷。缺省情況下,如果空閑連接在7200000毫秒(2小時)內沒有活動,系統就會發送保持連接的消息。 通常建議把該值設為1800000毫秒,從而丟失的連接會在30分鐘內被檢測到。具體操作:瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注冊表子鍵,在Parameters子鍵下創建或修改名為KeepAliveTime的REG_DWORD值,為該值設置適當的毫秒數。
  • KeepAliveIntervalKeepAliveInterval的值表示未收到另一方對“保持連接”信號的響應時,系統重復發送“保持連接”信號的頻率。在無任何響應的情況下,連續發送“保持連接”信號的次數超過TcpMaxDataRetransmissions(下文將介紹)的值時,將放棄該連接。如果網絡環境較差,允許較長的響應時間,則考慮增大該值以減少開銷;如果需要盡快驗證是否已丟失接收方,則考慮減小該值或TcpMaxDataRetransmissions值。缺省情況下,在未收到響應而重新發送“保持連接”的信號之前,系統會等待1000毫秒(1秒),可以根據具體需求修改,具體操作:瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注冊表子鍵,在Parameters子鍵下創建或修改名為KeepAliveInterval的REG_DWORD值,為該值設置適當的毫秒數。

4.常用服務端配置Keepalive參數

4.1 Nginx設置Keepalive

當使用nginx作為反向代理時,為了支持長連接,需要做到兩點:

  • 從client到nginx的連接是長連接
  • 從nginx到server的連接是長連接

4.1.1 從 Client 到 Nginx 的連接是長連接

http {
    # 客戶端連接的超時時間, 為 0 時禁用長連接。 tcp連接在傳送完最后一個響應后,還需要hold住 keepalive_timeout秒后仍沒有新的http請求,才開始關閉這個連接
    keepalive_timeout 120s;
    # 在一個長連接上可以服務的最大請求數目, 當達到最大請求數目且所有已有請求結束后, 連接被關閉, 默認為 100, 即每個連接的最大請求數
    keepalive_request 10000;
  }

keepalive_requests:參數的真實含義,是指一個keepalive建立之后,nginx就會為這個連接設置一個計數器,記錄這個keep alive的長連接上已經接收并處理的客戶端請求的數量。如果達到這個參數設置的最大值時,則nginx會強行關閉這個長連接,逼迫客戶端不得不重新建立新的長連接。大多數情況下當QPS(每秒請求數)不是很高時,默認值100湊合夠用。但是,對于一些QPS比較高(比如超過10000QPS,甚至達到30000,50000甚至更高) 的場景,默認的100就顯得太低。簡單計算一下,QPS=10000時,客戶端每秒發送10000個請求(通常建立有多個長連接),每個連接只能最多跑100次請求,意味著平均每秒鐘就會有100個長連接因此被nginx關閉。同樣意味著為了保持QPS,客戶端不得不每秒中重新新建100個連接。因此,就會發現有大量的TIME_WAIT的socket連接(即使此時keep alive已經在client和nginx之間生效)。因此對于QPS較高的場景,非常有必要加大這個參數,以避免出現大量連接被生成再拋棄的情況,減少TIME_WAIT。

4.1.2 從 Nginx 到 Server(upstream) 的長連接

為了讓nginx和后端server(nginx稱為upstream)之間保持長連接,典型設置如下:(默認nginx訪問后端都是用的短連接(HTTP1.0),一個請求來了,Nginx 新開一個端口和后端建立連接,后端執行完畢后主動關閉該鏈接)

http {
    upstream  BACKEND {
        server   192.168.0.1:8080  weight=1 max_fails=2 fail_timeout=30s;
        server   192.168.0.2:8080  weight=1 max_fails=2 fail_timeout=30s;
        keepalive 300;        // 這個很重要!
    }
server {
        listen 8080 default_server;
        server_name "";
        location /  {
            proxy_pass http://BACKEND;
            proxy_http_version 1.1;         // 這兩個最好也設置
            proxy_set_header Connection "";
        }
    }
}

此處keepalive的含義不是開啟、關閉長連接的開關;也不是用來設置超時的timeout;更不是設置長連接池最大連接數。官方解釋:The connections parameter sets the maximum number of idle keepalive connections to upstream servers connections(設置到upstream服務器的空閑keepalive連接的最大數量) When this number is exceeded, the least recently used connections are closed. (當這個數量被突破時,最近使用最少的連接將被關閉) It should be particularly noted that the keepalive directive does not limit the total number of connections to upstream servers that an nginx worker process can open.(特別提醒:keepalive指令不會限制一個nginx worker進程到upstream服務器連接的總數量)

keepalive: 這個參數是 nginx 連接后端的連接池中的最大空閑連接數, 比如: 設置為 300; 如果 nginx 為了滿足請求的 qps; 創建了 1000 個連接的連接池, 這個時候只有 500 個請求過來, 那么 1000- 500 = 500; 那么就會多出 500 個空閑的連接, 那么 500 > 300; 那么 nginx 就會根據這個配置; 斷開 200 個請求連接; 那么這個時候就只有 800 個連接的連接池, 如果下次過來了 1000 個請求, 那么 nginx 又會開始創建連接; 所有這個數值的配置要小心配置

4.1.3 Nginx出現大量TIME_WAIT的情況

1)導致 nginx端出現大量TIME_WAIT的情況有兩種:keepalive_requests設置比較小,高并發下超過此值后nginx會強制關閉和客戶端保持的keepalive長連接;(主動關閉連接后導致nginx出現TIME_WAIT)keepalive設置的比較小(空閑數太小),導致高并發下nginx會頻繁出現連接數震蕩(超過該值會關閉連接),不停的關閉、開啟和后端server保持的keepalive長連接;

2)導致后端server端出現大量TIME_WAIT的情況:nginx沒有打開和后端的長連接,即:沒有設置proxy_http_version 1.1;和proxy_set_header Connection “”;從而導致后端server每次關閉連接,高并發下就會出現server端出現大量TIME_WAIT

4.2 Tomcat設置Keepalive

瀏覽器在請求的頭部添加 Connection:Keep-Alive,以此告訴服務器 “我支持長連接,你支持的話就和我建立長連接吧”,而倘若服務器的確支持長連接,那么就在響應頭部添加“Connection:Keep-Alive”,從而告訴瀏覽器“我的確也支持,那我們建立長連接吧”。服務器還可以通過 Keep-Alive:timeout=10, max=100 的頭部告訴瀏覽器“我希望 10 秒算超時時間,最長不能超過 100 秒”。

在 Tomcat 里是允許配置長連接的,配置 conf/server.xml 文件,配置 Connector 節點,該節點負責控制瀏覽器與 Tomcat 的連接,其中與長連接直接相關的有兩個屬性,它們分別是:keepAliveTimeout,它表示在 Connector 關閉連接前,Connector 為另外一個請求 Keep Alive 所等待的微妙數,默認值和 connectionTimeout 一樣;另一個是 maxKeepAliveRequests,它表示 HTTP/1.0 Keep Alive 和 HTTP/1.1 Keep Alive / Pipeline 的最大請求數目,如果設置為 1,將會禁用掉 Keep Alive 和 Pipeline,如果設置為小于 0 的數,Keep Alive 的最大請求數將沒有限制。也就是說在 Tomcat 里,默認長連接是打開的,當我們想關閉長連接時,只要將 maxKeepAliveRequests 設置為 1 就可以。

Tomcat在server.xml 中的Connector 元素中:

  • ? keepAliveTimeout:單位是milliseconds,表示在下次請求過來之前,tomcat保持該連接多久。這就是說假如客戶端不斷有請求過來,且未超過過期時間,則該連接將一直保持。
  • ? maxKeepAliveRequests:最大長連接個數(1表示禁用,-1表示不限制個數,默認100個。一般設置在100~200之間),表示該連接最大支持的請求數。超過該請求數的連接也將被關閉(此時就會返回一個Connection: close頭給客戶端)。

4.3 Netty設置Keepalive

4.3.1 SO_KEEPALIVE

Socket參數。是否啟用心跳保活機制,即連接保活。 啟用該功能時,TCP會主動探測空閑連接的有效性。

在雙方TCP套接字建立連接后(即都進入ESTABLISHED狀態)并且在兩個小時左右(默認的心跳間隔是7200s即2小時)上層沒有任何數據傳輸的情況下,這套機制才會被激活。

默認值:Netty默認關閉該功能,即值為:false 。

代碼設置:

bootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);

說明:

  • ? 如果一方已經關閉或異常終止連接,而另一方卻不知道,我們將這樣的TCP連接稱為半打開的。TCP通過保活定時器(KeepAlive)來檢測半打開連接。
  • ? 在高并發的網絡服務器中,經常會出現漏掉socket的情況,對應的結果有一種情況就是出現大量的CLOSE_WAIT狀態的連接。這個時候,可以通過設置KEEPALIVE選項來解決這個問題。
  • ? 設置SO_KEEPALIVE選項來開啟KEEPALIVE,然后通過TCP_KEEPIDLE、TCP_KEEPINTVL和TCP_KEEPCNT設置keepalive的開始時間、間隔、次數等參數。
  • ? 當然,也可以通過設置/proc/sys/net/ipv4/tcp_keepalive_time、tcp_keepalive_intvl和tcp_keepalive_probes等內核參數來達到目的,但是這樣的話,會影響所有的socket。

4.3.2 SpringCloud Gateway設置Keepalive

@Configuration
public class NettyConfig {
    @Bean
    public NettyServerCustomizer nettyServerCustomizer() {
        return httpServer -> httpServer.tcpConfiguration(tcpServer -> {
            tcpServer= tcpServer.option(ChannelOption.SO_KEEPALIVE, true);
            tcpServer = tcpServer.doOnBind(serverBootstrap ->
                    BootstrapHandlers.updateConfiguration(serverBootstrap, "channelIdle", (connectionObserver, channel) -> {
                        ChannelPipeline pipeline = channel.pipeline();
                        pipeline.addLast(new ReadTimeoutHandler(5, TimeUnit.MINUTES));
                    }));
            return tcpServer;
        });
    }
}

5.參考資料

[1] https://www.cnblogs.com/xpfeia/p/10885726.html

[2] https://zhuanlan.zhihu.com/p/51560184

[3] https://blog.csdn.net/tennysonsky/article/details/45622395

[4] http://www.manongjc.com/detail/24-rcqeqovotuetucc.html

[5] https://www.jianshu.com/p/394a7883a139

[6] https://blog.csdn.net/bluetjs/article/details/80966148

[7] http://www.ttlsa.com/windows/parameter-optimization-of-tcp-under-windows-system/

[8] https://www.cnblogs.com/sunsky303/p/10648861.html

責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2021-12-03 12:15:01

QT中文亂碼Windows

2009-11-27 10:31:02

GPRS路由

2023-02-27 08:08:54

Pulsar源碼重復消費

2022-10-26 17:28:41

分布式事務seata

2025-03-03 00:13:50

2010-01-11 18:05:24

VB.NET窗體繼承

2010-01-04 15:05:53

2023-11-28 08:36:16

Spring中Body讀取

2025-06-17 06:40:45

DockerDocker鏡像

2009-12-25 09:39:08

ADSL MODEM

2010-01-14 10:19:05

2014-08-29 10:54:41

Oledb

2009-11-24 19:50:10

2009-12-03 18:45:41

2022-10-08 23:55:58

iOS蘋果開發

2024-11-04 10:05:00

AI模型

2009-12-03 16:54:04

無線寬帶路由器

2020-09-28 14:41:24

Event Loop

2009-12-04 16:25:24

2009-12-21 17:20:19

點贊
收藏

51CTO技術棧公眾號

国产精品国产三级国产专业不| 欧美综合激情| 国产在线成人精品午夜| 精品伊人久久久| 亚洲日穴在线视频| 国产在线精品一区二区三区》 | 亚洲图片在线综合| 国产永久免费网站| 欧美aa在线观看| 国产成人免费在线| 欧美有码在线观看视频| 亚洲成人生活片| 伊人久久大香线蕉无限次| 91精品免费在线| 妞干网在线视频观看| 欧美 日韩 综合| 蜜桃av一区二区三区电影| 亚洲片在线观看| 男人女人拔萝卜视频| 韩国成人在线| 午夜久久久久久| 欧美黑人3p| 丰满少妇一级片| 久久精品72免费观看| www.亚洲人.com| 3d动漫精品啪啪一区二区下载| 最新中文字幕在线播放| 夜色激情一区二区| 好看的日韩精品视频在线| 天天操天天摸天天干| 香蕉久久精品| 亚洲第一网站男人都懂| 爽爽爽在线观看| 国产成人精选| 在线视频综合导航| 精品99在线视频| 日日夜夜精品一区| 国产视频不卡一区| 麻豆蜜桃91| 天堂√在线中文官网在线| 高清av一区二区| 91成人免费观看| 97免费观看视频| 美腿丝袜一区二区三区| 欧美理论电影在线观看| 欧美一区免费观看| 香蕉视频国产精品| 日韩在线观看精品| 91视频最新网址| 99热精品久久| xvideos亚洲人网站| 国产伦精品一区二区三区88av| av中文资源在线资源免费观看| 2021国产精品久久精品| 国产伦精品一区二区三区| 国产免费www| 日韩国产欧美在线视频| 国产成人激情小视频| 波多野结衣一区二区三区四区| 亚洲欧洲中文字幕| 裸体女人亚洲精品一区| 国产稀缺精品盗摄盗拍| 欧美一区激情| 久久免费成人精品视频| 国产无精乱码一区二区三区| 极品尤物久久久av免费看| 欧美精品videossex性护士| 国产精品不卡av| 麻豆精品网站| 国产精品美女主播在线观看纯欲| 久久精品视频日本| 国产婷婷精品| 国产成人黄色av| 中文字幕在线观看精品| 国内成+人亚洲+欧美+综合在线| 2019亚洲日韩新视频| 日韩精品一区二区亚洲av观看| 一区久久精品| 欧美最近摘花xxxx摘花| 久久精品免费av| 国产日韩高清一区二区三区在线| 欧美巨乳在线观看| 天天做天天爱夜夜爽| 日韩成人免费看| 91免费精品视频| 欧美一级特黄aaaaaa大片在线观看| 精品一区二区在线免费观看| 91沈先生播放一区二区| 亚洲av片一区二区三区| 欧美国产激情二区三区| 日韩在线视频在线| 精品视频在线一区二区| 亚洲一级二级在线| 成人性视频欧美一区二区三区| aaa在线播放视频| 91久久精品国产91性色tv| 中文字幕永久有效| 五月天亚洲色图| 精品国产美女在线| 成人午夜视频精品一区| 91久久亚洲| 成人激情综合网| 无码精品黑人一区二区三区| 成人欧美一区二区三区1314| 免费不卡av在线| 亚洲精品大片| 精品一区二区三区四区| 中文字幕在线有码| 你懂的网址国产 欧美| 日本欧美中文字幕| 国产sm主人调教女m视频| 国产亚洲欧美在线| 成人免费毛片在线观看| 999精品视频在线观看| 91麻豆精品国产91久久久| 好吊日免费视频| 经典一区二区| 自拍偷拍亚洲在线| 成人精品在线看| 国产乱人伦精品一区二区在线观看| 99国产高清| 日本精品久久久久| 成人欧美一区二区三区视频网页| 91精品国产吴梦梦| se69色成人网wwwsex| 日韩成人中文字幕在线观看| 永久免费看mv网站入口| 日韩成人午夜电影| 噜噜噜噜噜久久久久久91| 精品视频二区| 精品久久久久久中文字幕| 日韩精品一区二区三区色欲av| 精品视频一区二区三区四区五区| 精品视频在线看| 在线小视频你懂的| 亚洲欧美日韩国产| 国产日韩视频在线观看| 国产一区电影| 在线视频一区二区三区| 亚洲精品www.| 日韩av专区| 国产精品男人爽免费视频1| 色av男人的天堂免费在线| 五月天一区二区| 中国xxxx性xxxx产国| 国产综合欧美| 高清不卡日本v二区在线| 青春草在线免费视频| 91精品欧美一区二区三区综合在| 天堂www中文在线资源| 国产一区网站| 欧美激情亚洲另类| 中文字幕第99页| 中文字幕国产一区| 岛国毛片在线播放| 久久中文视频| 91精品在线观| 神马午夜伦理不卡| 亚洲精品一区二区三区四区高清| 一本在线免费视频| 久久成人免费电影| 欧美一区二区在线| 国精产品一区一区三区mba下载| 91福利社在线观看| jjzz黄色片| 99精品国产福利在线观看免费| 国产日韩换脸av一区在线观看| 男人天堂网在线视频| 午夜精品一区二区三区三上悠亚 | 久久电影网站中文字幕| 爱爱爱视频网站| 都市激情亚洲一区| 中文字幕亚洲无线码a| 国产又大又黄的视频| 一区二区三区国产| 我和岳m愉情xxxⅹ视频| 亚洲手机视频| 免费h精品视频在线播放| 免费在线成人激情电影| 久热99视频在线观看| 波多野结衣影片| 久久综合久久99| 乌克兰美女av| 欧美午夜不卡影院在线观看完整版免费| 国产精品久久不能| 伊人手机在线| 亚洲人成网站999久久久综合| 91精品国产乱码久久久张津瑜| 国产精品亚洲综合一区在线观看| 日韩最新中文字幕| 日韩av三区| 91精品久久久久久久久| 国产精品一二三区视频| 欧美一区二区精品| 久久久久久无码午夜精品直播| 久久久久九九视频| 国产5g成人5g天天爽| 亚洲免费网址| 日本大片免费看| 精品成av人一区二区三区| 国产91精品一区二区绿帽| 精品3atv在线视频| 欧美大码xxxx| av在线三区| 精品一区二区三区电影| 亚洲精品无码专区| 欧美日韩不卡在线| 香蕉影院在线观看| 国产亚洲欧美一区在线观看| 又色又爽又黄18网站| 美女视频黄久久| 免费在线a视频| 国自产拍偷拍福利精品免费一| 99视频网站| 亚洲一区av| 日韩免费在线免费观看| 成人精品一区二区三区免费 | 欧美成年网站| 国产精品日日摸夜夜添夜夜av| 免费a在线看| 亚洲三级免费看| 秋霞网一区二区| 日韩精品资源二区在线| 一级黄色大片免费观看| 亚洲精品乱码久久久久| www.99re6| 成人中文字幕在线| 三级av免费看| 韩国视频一区二区| 中文字幕 91| 欧美日本国产| 久久福利一区二区| 国产99久久精品一区二区300| 国产精品免费一区豆花| 大黄网站在线观看| 一区二区三区天堂av| 伦理片一区二区三区| 日韩电影中文 亚洲精品乱码| 99成人精品视频| 色婷婷精品久久二区二区蜜臂av | 国产精品毛片久久| 黄色一区三区| 欧美日韩大片免费观看| 国产精品午夜av在线| 欧美经典影片视频网站| 亚洲jizzjizz日本少妇| 美女日韩一区| 超碰97网站| 精品亚洲免a| 欧美激情论坛| 青青草国产免费一区二区下载 | 香蕉精品久久| 欧美在线一二三区| 久久视频国产| 欧美日韩一级在线| 午夜精品av| 一二三四视频社区在线| 亚洲成av人电影| 国产免费一区二区视频| av伊人久久| 99亚洲精品视频| 国产精品国码视频| 欧美综合在线播放| 日韩福利电影在线观看| 日日干日日操日日射| 国产不卡视频在线播放| 亚洲综合自拍网| 欧美高清在线一区| 永久久久久久久| 亚洲风情在线资源站| 懂色av蜜臀av粉嫩av分享吧最新章节| 亚洲图片欧美色图| 中文字幕第四页| 欧美老女人在线| 亚洲国产精品suv| 亚洲欧美另类自拍| 美女国产在线| 97人人模人人爽人人喊中文字| a视频在线观看免费| 久久琪琪电影院| 日韩欧美2区| 国产精品亚洲一区| 成人久久一区| 欧妇女乱妇女乱视频| 久久久噜噜噜| 色一情一乱一伦一区二区三区日本| 日韩一级在线| 日韩中文字幕a| www..com久久爱| 亚洲国产果冻传媒av在线观看| 国产电影精品久久禁18| 大黑人交xxx极品hd| 中文字幕一区二区三区四区 | 日韩av高清在线看片| 青青草91视频| 国产免费一区二区三区最新6| 国产一区二区女| 欧美 变态 另类 人妖| 最新热久久免费视频| 1级黄色大片儿| 亚洲国产你懂的| 中文字幕男人天堂| 亚洲精品短视频| 亚洲色图美国十次| 国产精品视频区1| 日韩精品免费一区二区夜夜嗨| 91欧美激情另类亚洲| 西瓜成人精品人成网站| 青青视频免费在线| 久久精品二区亚洲w码| 亚洲高清免费在线观看| 91视视频在线观看入口直接观看www | 国精一区二区三区| 91免费精品视频| 日韩在线观看| 亚洲午夜精品久久| 久久国产精品久久w女人spa| 26uuu国产| 综合av第一页| 久久亚洲AV无码| 欧美精品久久久久久久久老牛影院| 在线观看国产区| 日韩精品免费电影| aa国产成人| 国产精品日韩二区| 欧美欧美全黄| 伊人久久久久久久久| 亚洲人精品午夜| 国产又粗又长视频| 亚洲激情视频在线观看| 日韩另类在线| 97超碰人人看人人| 国产精品嫩草影院在线看| 日本丰满大乳奶| 精品一区二区三区日韩| 日韩av手机在线免费观看| 欧美色综合网站| 午夜看片在线免费| 成人网址在线观看| 亚洲精品一二三区区别| 国模吧无码一区二区三区| 99免费精品在线观看| 97人人澡人人爽人人模亚洲| 亚洲激情第一页| 日韩免费福利视频| 日韩精品无码一区二区三区| 女人色极品影院| av男人天堂一区| 国产jizz18女人高潮| 欧美绝品在线观看成人午夜影视| 亚洲精品97久久中文字幕| 久久99国产综合精品女同 | 97国产在线观看| 欧美重口另类| 亚洲熟妇av一区二区三区| 久久久不卡影院| 又污又黄的网站| 久久天堂av综合合色| julia中文字幕一区二区99在线| 国产精品一级久久久| 国产韩日影视精品| 永久免费看片在线观看| 亚洲国产综合人成综合网站| 无码精品一区二区三区在线 | 国产精品大片wwwwww| 色婷婷色综合| 精品视频免费在线播放| 久久精品夜夜夜夜久久| 亚洲中文字幕在线一区| 欧美另类老女人| 首页亚洲中字| 欧美男女交配视频| 亚洲国产精品综合小说图片区| 中文字幕在线观看你懂的| 久久最新资源网| 亚洲黄页网站| 精品亚洲视频在线| 亚洲福利一区二区| av在线日韩国产精品| 99在线观看| 日韩福利视频导航| 久久久久成人精品无码| 亚洲免费影视第一页| 在线免费成人| 国产成人精品视频免费看| 亚洲国产精品精华液ab| 免费在线不卡视频| 色噜噜国产精品视频一区二区| 亚洲女色av| 中国 免费 av| 久久久久久一级片| 亚洲成a人片在线| 国产精品久久久久7777婷婷| 国内揄拍国内精品久久| 鲁丝一区二区三区| 亚洲精品一区在线观看| 91精品在线免费视频| 久久久久久久激情| 亚洲午夜一区二区| 欧美精品电影|