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

聊聊 TCP 長連接和心跳那些事

網(wǎng)絡 通信技術
可能很多 Java 程序員對 TCP 的理解只有一個三次握手,四次揮手的認識,我覺得這樣的原因主要在于 TCP 協(xié)議本身稍微有點抽象(相比較于應用層的 HTTP 協(xié)議);其次,非框架開發(fā)者不太需要接觸到 TCP 的一些細節(jié)。

[[254870]]

1 前言

可能很多 Java 程序員對 TCP 的理解只有一個三次握手,四次揮手的認識,我覺得這樣的原因主要在于 TCP 協(xié)議本身稍微有點抽象(相比較于應用層的 HTTP 協(xié)議);其次,非框架開發(fā)者不太需要接觸到 TCP 的一些細節(jié)。其實我個人對 TCP 的很多細節(jié)也并沒有完全理解,這篇文章主要針對微信交流群里有人提出的長連接,心跳的問題,做一個統(tǒng)一的整理。

在 Java 中,使用 TCP 通信,大概率會涉及到 Socket、Netty,本文會借用它們的一些 API 和設置參數(shù)來輔助介紹。

2 長連接與短連接

TCP 本身并沒有長短連接的區(qū)別,長短與否,完全取決于我們怎么用它。

  • 短連接:每次通信時,創(chuàng)建 Socket;一次通信結束,調用 socket.close()。這就是一般意義上的短連接,短連接的好處是管理起來比較簡單,存在的連接都是可用的連接,不需要額外的控制手段。
  • 長連接:每次通信完畢后,不會關閉連接,這樣就可以做到連接的復用。長連接的好處便是省去了創(chuàng)建連接的耗時。

短連接和長連接的優(yōu)勢,分別是對方的劣勢。想要圖簡單,不追求高性能,使用短連接合適,這樣我們就不需要操心連接狀態(tài)的管理;想要追求性能,使用長連接,我們就需要擔心各種問題:比如端對端連接的維護,連接的保活。

長連接還常常被用來做數(shù)據(jù)的推送,我們大多數(shù)時候對通信的認知還是 request/response 模型,但 TCP 雙工通信的性質決定了它還可以被用來做雙向通信。在長連接之下,可以很方便的實現(xiàn) push 模型。

短連接沒有太多東西可以講,所以下文我們將目光聚焦在長連接的一些問題上。純講理論未免有些過于單調,所以下文我借助 Dubbo 這個 RPC 框架的一些實踐來展開 TCP 的相關討論。

3 服務治理框架中的長連接

前面已經(jīng)提到過,追求性能的時候,必然會選擇使用長連接,所以借助 Dubbo 可以很好的來理解 TCP。我們開啟兩個 Dubbo 應用,一個 server 負責監(jiān)聽本地 20880(眾所周知,這是 Dubbo 協(xié)議默認的端口),一個 client 負責循環(huán)發(fā)送請求。執(zhí)行 lsof-i:20880 命令可以查看端口的相關使用情況:

 

*:20880(LISTEN) 說明了 Dubbo 正在監(jiān)聽本地的 20880 端口,處理發(fā)送到本地 20880 端口的請求。

后兩條信息說明請求的發(fā)送情況,驗證了 TCP 是一個雙向的通信過程,由于我是在同一個機器開啟了兩個 Dubbo 應用,所以你能夠看到是本地的 53078 端口與 20880 端口在通信。我們并沒有手動設置 53078 這個客戶端端口,他是隨機的,但也闡釋了一個道理:即使是發(fā)送請求的一方,也需要占用一個端口。

稍微說一下 FD 這個參數(shù),他代表了文件句柄,每新增一條連接都會占用新的文件句柄,如果你在使用 TCP 通信的過程中出現(xiàn)了 open too many files 的異常,那就應該檢查一下,你是不是創(chuàng)建了太多的連接,而沒有關閉。細心的讀者也會聯(lián)想到長連接的另一個好處,那就是會占用較少的文件句柄。

4 長連接的維護

因為客戶端請求的服務可能分布在多個服務器上,客戶端端自然需要跟對端創(chuàng)建多條長連接,使用長連接,我們遇到的***個問題就是要如何維護長連接。

  1.  //客戶端 
  2.  
  3. public class NettyHandler extends SimpleChannelHandler { 
  4.    private final Map<String, Channel> channels = new ConcurrentHashMap<String, Channel>(); // <ip:port, channel> 
  5. //服務端 
  6. public class NettyServer extends AbstractServer implements Server { 
  7.    private Map<String, Channel> channels; // <ip:port, channel> 

在 Dubbo 中,客戶端和服務端都使用 ip:port 維護了端對端的長連接,Channel 便是對連接的抽象。我們主要關注 NettyHandler 中的長連接,服務端同時維護一個長連接的集合是 Dubbo 的設計,我們將在后面提到。

5 連接的保活

這個話題就有的聊了,會牽扯到比較多的知識點。首先需要明確一點,為什么需要連接的報活?當雙方已經(jīng)建立了連接,但因為網(wǎng)絡問題,鏈路不通,這樣長連接就不能使用了。需要明確的一點是,通過 netstat,lsof 等指令查看到連接的狀態(tài)處于 ESTABLISHED 狀態(tài)并不是一件非常靠譜的事,因為連接可能已死,但沒有被系統(tǒng)感知到,更不用提假死這種疑難雜癥了。如果保證長連接可用是一件技術活。

6 連接的保活:KeepAlive

首先想到的是 TCP 中的 KeepAlive 機制。KeepAlive 并不是 TCP 協(xié)議的一部分,但是大多數(shù)操作系統(tǒng)都實現(xiàn)了這個機制。KeepAlive 機制開啟后,在一定時間內(一般時間為 7200s,參數(shù) tcp_keepalive_time)在鏈路上沒有數(shù)據(jù)傳送的情況下,TCP 層將發(fā)送相應的KeepAlive探針以確定連接可用性,探測失敗后重試 10(參數(shù) tcp_keepalive_probes)次,每次間隔時間 75s(參數(shù) tcp_keepalive_intvl),所有探測失敗后,才認為當前連接已經(jīng)不可用。

在 Netty 中開啟 KeepAlive:

  1. bootstrap.option(ChannelOption.TCP_NODELAY,true

Linux 操作系統(tǒng)中設置 KeepAlive 相關參數(shù),修改 /etc/sysctl.conf 文件:

  1. net.ipv4.tcp_keepalive_time=90 
  2. net.ipv4.tcp_keepalive_intvl=15 
  3. net.ipv4.tcp_keepalive_probes=2 
  • KeepAlive 機制是在網(wǎng)絡層面保證了連接的可用性,但站在應用框架層面我們認為這還不夠。主要體現(xiàn)在兩個方面:
  • KeepAlive 的開關是在應用層開啟的,但是具體參數(shù)(如重試測試,重試間隔時間)的設置卻是操作系統(tǒng)級別的,位于操作系統(tǒng)的 /etc/sysctl.conf 配置中,這對于應用來說不夠靈活。
  • KeepAlive 的保活機制只在鏈路空閑的情況下才會起到作用,假如此時有數(shù)據(jù)發(fā)送,且物理鏈路已經(jīng)不通,操作系統(tǒng)這邊的鏈路狀態(tài)還是 ESTABLISHED,這時會發(fā)生什么?自然會走 TCP 重傳機制,要知道默認的 TCP 超時重傳,指數(shù)退避算法也是一個相當長的過程。

KeepAlive 本身是面向網(wǎng)絡的,并不是面向于應用的,當連接不可用時,可能是由于應用本身 GC 問題,系統(tǒng) load 高等情況,但網(wǎng)絡仍然是通的,此時,應用已經(jīng)失去了活性,所以連接自然應該認為是不可用的。

看來,應用層面的連接保活還是必須要做的。

7 連接的保活:應用層心跳

終于點題了,文題中提到的心跳便是一個本文想要重點強調的另一個 TCP 相關的知識點。上一節(jié)我們已經(jīng)解釋過了,網(wǎng)絡層面的 KeepAlive 不足以支撐應用級別的連接可用性,本節(jié)就來聊聊應用層的心跳機制是實現(xiàn)連接保活的。

如何理解應用層的心跳?簡單來說,就是客戶端會開啟一個定時任務,定時對已經(jīng)建立連接的對端應用發(fā)送請求(這里的請求是特殊的心跳請求),服務端則需要特殊處理該請求,返回響應。如果心跳持續(xù)多次沒有收到響應,客戶端會認為連接不可用,主動斷開連接。不同的服務治理框架對心跳,建連,斷連,拉黑的機制有不同的策略,但大多數(shù)的服務治理框架都會在應用層做心跳,Dubbo 也不例外。

8 應用層心跳的設計細節(jié)

以 Dubbo 為例,支持應用層的心跳,客戶端和服務端都會開啟一個 HeartBeatTask,客戶端在 HeaderExchangeClient 中開啟,服務端將在 HeaderExchangeServer 開啟。文章開頭埋了一個坑:Dubbo 為什么在服務端同時維護 Map

  1. // HeartBeatTask 
  2. if (channel instanceof Client) {  
  3.    ((Client) channel).reconnect();  
  4. else { 
  5.    channel.close(); 

熟悉其他 RPC 框架的同學會發(fā)現(xiàn),不同框架的心跳機制真的是差距非常大。心跳設計還跟連接創(chuàng)建,重連機制,黑名單連接相關,還需要具體框架具體分析。

除了定時任務的設計,還需要在協(xié)議層面支持心跳。最簡單的例子可以參考 nginx 的健康檢查,而針對 Dubbo 協(xié)議,自然也需要做心跳的支持,如果將心跳請求識別為正常流量,會造成服務端的壓力問題,干擾限流等諸多問題。

 

其中 Flag 代表了 Dubbo 協(xié)議的標志位,一共 8 個地址位。低四位用來表示消息體數(shù)據(jù)用的序列化工具的類型(默認 hessian),高四位中,***位為1表示是 request 請求,第二位為 1 表示雙向傳輸(即有返回response),第三位為 1 表示是心跳事件。

心跳請求應當和普通請求區(qū)別對待。

9 注意和 HTTP 的 KeepAlive 區(qū)別對待

  • HTTP 協(xié)議的 KeepAlive 意圖在于連接復用,同一個連接上串行方式傳遞請求-響應數(shù)據(jù)
  • TCP 的 KeepAlive 機制意圖在于保活、心跳,檢測連接錯誤。

這壓根是兩個概念。

10 KeepAlive 常見異常

啟用 TCP KeepAlive 的應用程序,一般可以捕獲到下面幾種類型錯誤

ETIMEOUT 超時錯誤,在發(fā)送一個探測保護包經(jīng)過 (tcpkeepalivetime + tcpkeepaliveintvl * tcpkeepaliveprobes)時間后仍然沒有接收到 ACK 確認情況下觸發(fā)的異常,套接字被關閉 java java.io.IOException:Connectiontimedout

EHOSTUNREACH host unreachable(主機不可達)錯誤,這個應該是 ICMP 匯報給上層應用的。 java java.io.IOException:Noroute to host

鏈接被重置,終端可能崩潰死機重啟之后,接收到來自服務器的報文,然物是人非,前朝往事,只能報以無奈重置宣告之。 java java.io.IOException:Connectionresetbypeer

11 總結

有三種使用 KeepAlive 的實踐方案:

1.默認情況下使用 KeepAlive 周期為 2 個小時,如不選擇更改,屬于誤用范疇,造成資源浪費:內核會為每一個連接都打開一個保活計時器,N 個連接會打開 N 個保活計時器。 優(yōu)勢很明顯:

  • TCP 協(xié)議層面保活探測機制,系統(tǒng)內核完全替上層應用自動給做好了
  • 內核層面計時器相比上層應用,更為高效
  • 上層應用只需要處理數(shù)據(jù)收發(fā)、連接異常通知即可
  • 數(shù)據(jù)包將更為緊湊

2.關閉 TCP 的 KeepAlive,完全使用應用層心跳保活機制。由應用掌管心跳,更靈活可控,比如可以在應用級別設置心跳周期,適配私有協(xié)議。

3.業(yè)務心跳 + TCP KeepAlive 一起使用,互相作為補充,但 TCP 保活探測周期和應用的心跳周期要協(xié)調,以互補方可,不能夠差距過大,否則將達不到設想的效果。

各個框架的設計都有所不同,例如 Dubbo 使用的是方案三,但阿里內部的 HSF 框架則沒有設置 TCP 的 KeepAlive,僅僅由應用心跳保活。和心跳策略一樣,這和框架整體的設計相關。

責任編輯:武曉燕 來源: Kirito的技術分享
相關推薦

2019-01-28 18:02:21

網(wǎng)絡安全網(wǎng)絡安全技術周刊

2021-01-13 11:11:29

TCP連接耗時網(wǎng)絡協(xié)議

2022-09-09 08:08:28

開源項目服務

2017-12-21 08:06:40

2019-09-23 08:27:15

TCP長連接心跳

2023-07-31 08:21:22

語法校對器Pick

2021-08-06 11:50:49

Linux 字節(jié)對齊Linux 系統(tǒng)

2020-11-30 13:10:39

MySQL安全服務器

2022-12-02 13:49:41

2024-02-21 07:24:21

微服務單體架構MVC

2020-10-30 07:43:35

Jenkins配置前端

2021-10-26 11:42:51

系統(tǒng)

2024-10-14 12:34:08

2020-10-07 22:21:13

程序員技術線程

2022-02-15 19:50:18

加載器JAVAJDK

2024-07-16 10:25:27

2021-03-07 16:31:35

Java編譯反編譯

2021-06-02 08:33:31

TPCTPC-H系統(tǒng)

2018-06-06 11:01:25

HTTP長連接短連接

2014-07-22 10:42:04

點贊
收藏

51CTO技術棧公眾號

欧美一区2区| 97caopor国产在线视频| 久久久国产亚洲精品| 亚洲视频专区在线| 热久久久久久久久| 多野结衣av一区| 欧美国产一区在线| y111111国产精品久久婷婷| 成人精品免费在线观看| 日韩三级在线| gogo久久日韩裸体艺术| 亚洲桃色在线一区| 精品日本一区二区三区| 伊人网av在线| 亚洲国产精品一区制服丝袜| 综合136福利视频在线| 精品人妻一区二区免费| 国产喷水theporn| 国产乱淫av片免费| 午夜在线精品偷拍| 久久国产精品亚洲| 精品成人av一区二区三区| 久久在线观看| 欧美三级在线看| 欧美三级一级片| 含羞草www国产在线视频| 久久日一线二线三线suv| 999在线观看免费大全电视剧| 超碰在线观看91| 国产午夜精品一区二区三区欧美 | 国产精品一二三视频| 国产在线欧美在线| 国产一区二区三区四区老人| 最新国产精品亚洲| 亚洲无人区码一码二码三码的含义| 久久99国产精品久久99大师 | 宅男66日本亚洲欧美视频| 久久久一本精品99久久精品66| 91丨porny丨在线中文 | 欧洲美女亚洲激情| 亚洲www啪成人一区二区| 红桃视频成人在线观看| 欧美极品少妇无套实战| 免费av在线网站| 欧美—级在线免费片| 老牛影视免费一区二区| 天天干天天干天天干| 成人看片黄a免费看在线| 91免费版黄色| 国产成人精品a视频| 韩国一区二区在线观看| 国产精品视频一区二区三区四 | 久久爱av电影| 日韩av资源站| 久久综合久久99| 欧美xxxx黑人又粗又长密月| 欧美男男同志| 国产蜜臀av在线一区二区三区| 蜜桃欧美视频| 黄色av网站在线免费观看| 久久精品一区八戒影视| 亚洲国产日韩综合一区| 在线免费看黄网站| 综合自拍亚洲综合图不卡区| 国产91porn| 丁香高清在线观看完整电影视频 | 久久精品人人做人人爽人人| 日本一区二区三不卡| 丁香在线视频| 中文字幕在线不卡视频| 欧美a级免费视频| 僵尸再翻生在线观看| 色老汉一区二区三区| 亚洲久久中文字幕| 天堂精品久久久久| 亚洲黄色www| 男人舔女人下部高潮全视频| 91日韩在线| 欧美日韩xxxxx| 久久精品一二区| 日本va欧美va瓶| 91在线精品播放| 天天干天天干天天干| 日本一二三四高清不卡| 日韩一级特黄毛片| 欧美电影免费观看高清完整| 91麻豆精品国产综合久久久久久| 中文字幕无码毛片免费看| 在线亚洲a色| 久久久91精品国产一区不卡| 日韩美女视频网站| 蜜桃在线一区二区三区| 高清日韩一区| 99免在线观看免费视频高清| 一个色在线综合| 免费国产成人av| 久久av偷拍| 亚洲视频专区在线| 久久久久久天堂| 久久三级福利| 国产精品久久久久久久天堂第1集| 国产精品一区二区三区四区色| 亚洲激情欧美激情| 看欧美ab黄色大片视频免费| 综合欧美亚洲| 自拍偷拍亚洲精品| 最新中文字幕一区| 国产精品1区2区3区| 日本一区视频在线观看| 丰乳肥臀在线| 欧美久久久久免费| 日韩精品卡通动漫网站| 欧美黄色一区| 国产免费一区二区三区在线观看 | 久久久av电影| 波多野结衣一区二区三区在线| 国产精品一级片| 亚洲欧美国产不卡| 巨茎人妖videos另类| 精品国产91洋老外米糕| 一级性生活免费视频| 久久蜜桃资源一区二区老牛| 国产精品久久久久久久小唯西川| 女女色综合影院| 在线免费观看日韩欧美| 中文字幕在线播放一区| 黄色欧美日韩| 97碰碰视频| 中文字幕在线观看网站| 欧美精品成人一区二区三区四区| x88av在线| 男女精品网站| 久久99精品久久久久久三级| 懂色av一区| 欧美videos大乳护士334| 在线观看美女av| 精品一区二区三区久久| 亚洲午夜精品久久久中文影院av| 日韩电影网站| 一本色道久久综合狠狠躁篇怎么玩 | 久久精品亚洲人成影院 | 麻豆国产va免费精品高清在线| 国产一区二区视频网站| 久久精品视频在线免费观看| 欧美视频免费播放| 国产日产精品_国产精品毛片| 欧美最猛性xxxx| 人人九九精品| 色吊一区二区三区| 欧美三级视频网站| 久久精品免费观看| 中文字幕超清在线免费观看| 亚洲狼人综合| 欧美成人免费全部观看天天性色| 一卡二卡在线视频| 亚洲欧美偷拍另类a∨色屁股| 一级黄色免费毛片| 欧美日韩综合| 精品1区2区| 欧洲一级精品| 最近2019中文字幕在线高清| 国产精品久久免费| 亚洲精品va在线观看| 五月天激情小说| 久久久综合网| 中文字幕不卡每日更新1区2区| 日韩国产一二三区| 色综合老司机第九色激情| 天天操天天干天天爱| 色偷偷成人一区二区三区91| 特级西西人体高清大胆| 国产精品99久久久久久宅男| 女人被男人躁得好爽免费视频| 色综合久久中文| 国产精品视频一区二区高潮| 丝袜美女在线观看| 亚洲乱码国产乱码精品精| 欧美 日韩精品| 在线观看免费视频a| 91美女片黄在线| 五月天婷婷激情视频| 999精品色在线播放| 动漫一区二区在线| 午夜激情电影在线播放| 中文字幕成人精品久久不卡| 99精品视频在线播放免费| 亚洲h精品动漫在线观看| 欧美人妻一区二区三区| 国产乱理伦片在线观看夜一区| 免费一级特黄毛片| blacked蜜桃精品一区| 91亚洲精品丁香在线观看| 成人福利视频| 麻豆国产精品va在线观看不卡| 人妻视频一区二区三区| 欧美亚洲综合一区| 国产在线综合网| 国产日韩av一区| 久久久久久婷婷| 激情综合色综合久久| 激情五月开心婷婷| 欧美国产三区| 日韩欧美亚洲在线| 精品按摩偷拍| 成人激情视频网| jk漫画禁漫成人入口| 久99九色视频在线观看| 国产精品久久久久一区二区国产| 日韩精品一区二区三区在线| www.av88| 懂色aⅴ精品一区二区三区蜜月| 97在线观看免费高| 国产日韩精品视频一区| 性久久久久久久久久久| 国产伦精品一区二区三区免费| 免费国产成人av| 国产一级久久| 日韩av中文字幕第一页| 亚洲国产精品日韩专区av有中文| 热舞福利精品大尺度视频| 国产精品毛片视频| av免费精品一区二区三区| 色综合视频一区二区三区日韩| 日韩av大片免费看| 国产黄大片在线观看| 欧美激情久久久久久| a视频在线观看免费| 在线视频亚洲欧美| 国产资源在线观看| 精品一区二区三区四区| 欧美一级淫片免费视频魅影视频| 日韩欧美自拍偷拍| 国产精品无码专区av免费播放| 欧美性感一区二区三区| 无码日韩精品一区二区| 欧美午夜片在线免费观看| 国产精品99精品无码视| 亚洲午夜电影网| 久久久夜色精品| 一区二区三区欧美| 国产a免费视频| 亚洲精品中文在线影院| 高h视频免费观看| 亚洲欧美欧美一区二区三区| 亚洲欧美综合7777色婷婷| 国产精品乱码久久久久久| 极品蜜桃臀肥臀-x88av| 国产亲近乱来精品视频| 成人性生交大片免费看无遮挡aⅴ| 国产喂奶挤奶一区二区三区| 中文字幕在线观看免费高清| 国产日产精品一区| 91无套直看片红桃在线观看| 中文字幕亚洲成人| 国产十六处破外女视频| 亚洲一区欧美一区| 在线观看免费国产视频| 色综合久久综合网97色综合 | 欧美在线免费观看亚洲| 日本成人一级片| 欧美老女人在线| 国产成人精品一区二区无码呦| 日韩欧美综合在线| 亚洲aaa在线观看| 国产亚洲视频在线观看| 国产女主播自拍| sese综合| 国产综合久久久久| 视频亚洲一区二区| 国外成人在线视频网站| 国产精品最新| 中文字幕av日韩精品| 精品不卡视频| 国产偷人视频免费| 美美哒免费高清在线观看视频一区二区 | 国产一二区在线| 欧美高清激情视频| 成人美女黄网站| 成人av番号网| 久9re热视频这里只有精品| 欧美一区免费视频| 综合精品一区| 久久久久久久久久久免费视频| 久久精品久久精品| 性欧美18—19sex性高清| 国产午夜精品一区二区三区视频 | 性猛交╳xxx乱大交| 91女人视频在线观看| 日本理论中文字幕| 一区二区三区欧美久久| av毛片在线免费观看| 日韩一区二区在线看| 青青草免费观看免费视频在线| a在线播放不卡| 日韩美女视频中文字幕| 欧美性理论片在线观看片免费| 91精品国产综合久久男男| 精品伊人久久久| 欧美性视频在线播放| 亚洲欧洲一区二区天堂久久| 黄色在线视频网| 99国产精品国产精品久久| 韩国一级黄色录像| 欧美性生交xxxxxdddd| 国产肥老妇视频| 亚洲一区二区久久久| 肉肉视频在线观看| 国产精品专区h在线观看| 任你弄精品视频免费观看| 中文字幕不卡每日更新1区2区| 久久av在线| 日本一级大毛片a一| 国产精品成人免费精品自在线观看| 五月天婷婷网站| 欧美一区二区三区四区久久| а天堂8中文最新版在线官网| 欧美激情网友自拍| 精品一区二区三区中文字幕视频 | 久久久久久久久免费视频| 欧美亚洲视频在线看网址| 日本一区二区三区播放| 亚洲欧洲三级| 日韩中文字幕区一区有砖一区| 亚洲 欧美 日韩在线| 一区二区三区美女视频| 99在线无码精品入口| www.亚洲一区| 色成人综合网| 亚洲第一综合| 日韩精品久久久久久| 国产特级黄色录像| 色综合久久天天| 欧洲天堂在线观看| 欧美一区二区三区图| 欧美精品中文字幕亚洲专区| 欧洲精品一区二区三区久久| 国产sm精品调教视频网站| 国产女人18水真多毛片18精品| 欧美日韩国产免费一区二区 | 久久久久久久国产| 欧洲精品99毛片免费高清观看| 大地资源网在线观看免费官网| 国产最新精品免费| 久久久精品国产| 性网站在线观看| 97人人干人人| 在线观看一区| 性欧美丰满熟妇xxxx性久久久| 亚洲成在人线免费| 视频污在线观看| 538国产精品一区二区在线 | 日韩免费电影| 日本不卡一区二区三区在线观看| 久久精品道一区二区三区| 久久精品一区二区免费播放| 色妹子一区二区| 香蕉视频免费在线播放| 成人羞羞国产免费| 欧美日韩精品免费观看视频完整| 97超碰免费在线观看| 亚洲一区在线观看免费观看电影高清| 亚洲精品国产手机| 5252色成人免费视频| 第九色区aⅴ天堂久久香| 日本黄色福利视频| 一区二区视频在线| 色呦呦中文字幕| 国产成人精品在线| 欧美aaaa视频| 337p日本欧洲亚洲大胆张筱雨| 亚洲第一久久影院| 黄网在线观看| 91麻豆桃色免费看| 亚洲毛片一区| 天天舔天天操天天干| 日韩限制级电影在线观看| 成人免费网站观看| 亚洲国产午夜伦理片大全在线观看网站| 精品一区二区三区影院在线午夜| 精国产品一区二区三区a片| 精品香蕉一区二区三区| 欧美大片1688网站| 日本三级中文字幕在线观看| 91尤物视频在线观看| 在线观看亚洲国产| 久久久久久久久久亚洲| 精品视频亚洲| 男人女人拔萝卜视频| 色偷偷成人一区二区三区91 | 久久青草精品视频免费观看| 日本三级久久| 免费黄色一级网站| 亚洲激情校园春色| 国产大学生校花援交在线播放| 亚洲综合在线小说| 奶水喷射视频一区| 久久久精品国产sm调教| 亚洲人成免费电影| 99热这里只有精品首页| 亚洲国产精品三区|