青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Fork me on GitHub
隨筆 - 215  文章 - 13  trackbacks - 0
<2017年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011


專注即時通訊及網游服務端編程
------------------------------------
Openresty 官方模塊
Openresty 標準模塊(Opm)
Openresty 三方模塊
------------------------------------
本博收藏大部分文章為轉載,并在文章開頭給出了原文出處,如有再轉,敬請保留相關信息,這是大家對原創作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

相冊

Awesome

Blog

Book

GitHub

Link

搜索

  •  

積分與排名

  • 積分 - 220943
  • 排名 - 117

最新評論

閱讀排行榜

原文地址:http://www.cnblogs.com/jinjiangongzuoshi/p/5272787.html
一、利用Fiddler模擬惡劣網絡環境

在解決日常的支持需求中,經常會遇到一些用戶反饋一些無法簡單復現的bug,有很大一部分的bug是由于用戶自身的網絡環境波動,或者是本身網絡環境就較為惡劣,而服務在面對這種惡劣的網絡環境的健壯性不夠,導致會出現一些意想不到的bug。而在正常的開發自測過程中很難去營造出這種惡劣的網絡環境,使得這些bug較難被提前發現和修復。另外一些服務在惡劣網絡環境下雖然不會出現不可用的情況,但是用戶體檢很差,為了優化這個情況下的用戶體驗,也需要去在本地模擬這種環境來進行調優。 
所以要去復現這些bug,甚至是去提前發現這些bug,就需要能夠在開發環境中模擬出惡劣的網絡環境,從而看到在這種惡劣的網絡環境下的服務的表現等。當前模擬惡劣網絡環境主要可以通過以下這些手段實現:

  1. 通過應用層或者傳輸層的代理服務器,通過在代理服務器上設置一些模擬惡劣網絡環境的參數,使得通過這些代理服務器的流量都被轉化為惡劣網絡環境下的流量。如利用Fiddler,Charles等具有代理服務器功能的網絡流量分析軟件來實現。
  2. 通過利用一些更底層的驅動層面的服務,通過控制網卡的收包發包的行為,來模擬惡劣的網絡環境。如dummynet的ipfw驅動等。
  3. 通過建立一個可控的網關,在網關上部署模擬惡劣環境的相關程序,所有需要借助該網關進行轉發的流量都會被模擬為惡劣網絡條件。Linux下的netem就提供了這類支持。

  這里主要先講的是第一種手段,即利用Fiddler來模擬惡劣的網絡環境,對服務進行測試,這個手段實現簡單,較為直觀,但是缺點是只能支持那些利用HTTP進行通信和交互的服務。在之后的文章中也會進一步說一下后兩種手段。

【Fiddler是啥】

  Fiddler的官網上是這樣描述它自己的:The free web debugging proxy for any browser, system or platform,即跨瀏覽器、跨系統、跨平臺的免費Web Debug代理服務器。當你的HTTP瀏覽經過Fiddler時,Fiddler可以監視流量,查看HTTP通訊的各種信息,設置斷點查看和修改HTTP數據,甚至可以構造各種測試用的HTTP包以及重放已記錄的包等。其官網是http://www.fiddler2.com/fiddler2/,上面詳細地介紹了Fiddler到底是什么。

【簡單地利用Fiddler限速模擬惡劣網絡環境】

  Fiddler本身已經預置提供了模擬Modem速度的選項,其位置位于: 
  Rules – Performances – Simulate Modem Speeds 
Fidder界面 
  勾選該選項后,所有通過Fiddler代理的流量都會變得和多年前的56k小貓時上網一般的慢。 
  由于Fiddler只是一個HTTP代理,要直觀地看出限速效果,最好是運行在瀏覽器中的測速工具,這里選用speedtest.net提供的測速工具進行測試。 
  首先是開啟該選項之前的速度: 
開啟前速度 
  打開了Simulate Modem Speeds后: 
開啟后速度
  速度已經回到了當年那種無法忍受的低速了,注意到這里PING值也有了顯著的提高,而事實上ping值是ICMP層的控制報文,并不會被Fiddler影響,理論上ping值并不會出現提高的情況,進一步分析Fiddler中的報文則可以看出端倪: 
端倪
  事實上網頁插件并不能實現發送ICMP包并得到ping值的功能,而是用多次較小的HTTP GET請求的響應時間來計算PING值,這里實際算出來的是一個平均的HTTP的RTT值,所以受到Fiddler模擬惡劣環境的影響就是正常的了。

【調整模擬惡劣網絡環境的參數】

  直接模擬Modem速度實在是慢爆了,事實上就算是在很差信號的情況下,手機移動網絡的速度都已經超過了當年的56k Modem速度了,所以采用默認的配置模擬出來的環境過于惡劣,并不一定符合需求,此時就需要對限速的參數進行調整。 
  Fiddler本身就提供了一個配置文件供調整這些參數,點擊: 
  Rules – Customize Rules… 
  就會用文本編輯器打開CustomRules.js文件,其默認位于用戶目錄的文檔目錄下的\Fiddler2\Scripts 位置,后綴名是js,其內容實質是JScript.NET——微軟對ECMAScript規范的實現,與日常使用的javascript是屬于同一個規范下的,但是在擴展的細節實現存在一定的不同。 
  打開該文件后,可以找到一個m_SimulateModem標志位:

if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = "300";
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = "150"
}

 

  •  該標志位控制著oSession的兩個參數值的設置,當勾選了Simulate Modem Speeds時,request-trickle-delay與response-trickle-delay就會被設置,其中request-trickle-delay中的值代表每KB的數據被上傳時會被延時多少毫秒,response-trickle-delay則對應下載時每KB的數據會被延時多少毫秒,如果本身網速已經相當快的話,這里設置的值就可以近似地推算出開啟模擬后的上傳和下載帶寬了,比如默認設置下下載延時為150ms,上傳延時為300ms,對應可以推算出大致的模擬帶寬為:

上傳帶寬=(1*8/1000)/0.300≈0.053Mbps 
下載帶寬=(1*8/1000)/0.150≈0.027Mbps

  然而實際情況下卻得到了兩倍于這個值的帶寬,推測可能是Fiddler的內部實現上有一些和描述上的不同,為何為造成這個現象現在還不是很清楚,所以上述公式最后還需要修正一個2.0的系數,即:

上傳帶寬=((1*8/1000)/0.300)*2.0≈0.106Mbps 
下載帶寬=((1*8/1000)/0.150)*2.0≈0.053Mbps

  假設我們將兩個參數都設置為50,則會得到上下載帶寬均為0.32Mbps,測速結果如下所示: 
設置參數以后的測速結果

【編寫自定義腳本】

  進一步地,我們可以擴展CustomRules.js里的邏輯,參照Jscript的文檔可以在模擬惡劣環境中加入更多自定義的邏輯,這里實現了一個隨機延時量設置,使得網絡帶寬不是恒定為一個低速的值,而是會在一定范圍內隨機抖動:

static function randInt(min, max) {
    return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = ""+randInt(1,50);
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = ""+randInt(1,50);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  得到的測試結果如下: 
得到的測試結果 
  在測速過程中的瞬時速度的趨勢圖如下: 
瞬時速度趨勢圖 
  可以看到整體的網絡限速存在了一定程度的抖動。 
  通過進一步擴展CustionRules.js可以實現很多需要的惡劣環境模擬場景,如果場景較為復雜的話,也可以通過編寫Fiddler的插件的方式,編寫C#插件代碼來進一步控制Fiddler的行為,在這里就不多做贅述了。詳細可以參照:http://docs.telerik.com/fiddler/extend-fiddler/extendwithdotnet

【Fiddler模擬惡劣網絡環境的局限性】

  Fiddler進行限速較為簡單和靈活,配置也較為方便,但是由于它是一個應用層的HTTP的代理,只能模擬該層上的行為,對于一些復雜的網絡層的丟包、重傳等惡劣情況就不能很好的模擬出來,而且對于其他協議的應用也不支持,后續會介紹一些其他的模擬惡劣環境的方法和軟件來彌補這些缺失。

 

 

二、利用Dummynet模擬惡劣網絡環境

利用Dummynet模擬惡劣網絡環境

在之前的文章中提到了三種模擬惡劣網絡環境調試代碼的手段:

  1. 應用層或者傳輸層的代理服務器
  2. 傳輸層或者網絡層控制數據包的驅動
  3. 網絡層控制數據包的網關

同時在之前的文章中介紹了第一種手段,即利用應用層的HTTP代理Fiddler來模擬惡劣網絡環境,這種方式簡單且靈活,但是其處于應用層,限制較大,同時也沒有辦法從帶寬和延時兩個方面分別去精細化地對惡劣網絡環境進行模擬,這里介紹第二種手段——Dummynet。

Dummynet簡介

Dummynet的官網地址是:http://info.iet.unipi.it/~luigi/dummynet/,官網上對于dummynet的描述是這樣的:dummynet is a live network emulation tool, originally designed for testing networking protocols, and since then used for a variety of applications including bandwidth management. 即Dummynet是一個實時的網絡模擬工具,事實上dummynet是ipfw防火墻的一部分,ipfw是一個網絡層的防火墻,并內建于FreeBSD之中。 
利用ipfw的options DUMMYNET選項,可以設置一系列的pipes,從而做到對網絡流量進行控制的目的。

Dummynet基本原理

 
如官網上提供的這張圖所示,dummynet通過在兩個網絡層中(一般是在傳輸層和應用層之間或者網絡層與傳輸層之間)建立一條條pipe的方式來控制網絡流量,符合設定的規則中的網絡流量會被引入這些管道中去,從而使得dummynet可以介入這些流量之中,控制帶寬、延遲,甚至進一步控制丟包率等眾多參數。

Dummynet安裝(Windows)

Dummynet本身作為ipfw防火墻的一部分,其內建于FreeBSD,其本身支持FreeBSD,OSX,Linux,Windows多種操作系統下的安裝和使用,在OSX和Linux下下載源碼編譯安裝一般即可使用,這里主要介紹一下Windows下的Dummynet安裝。 
Dummynet在Windows下是作為一個網卡上的服務驅動存在的,在官方給出的二進制文件包中已經包含了該驅動的sys與inf文件,但是該驅動是沒有包含數字簽名的,在并沒有引入驅動強制簽名機制的Windows操作系統(如Windows XP)上時,直接到官網下載到最新的二進制包,然后依照之后的操作步驟進行安裝即可以完成ipfw+dummynet服務驅動的安裝,但是在引入了驅動強制簽名機制(一般是Windows 7以后的Windows版本,或者設置了比較嚴格的組策略)的操作系統上,是無法安裝ipfw+dummynet服務驅動的,要解決這個問題可以使用兩種方案:

  1. 打開Windows的測試模式,關閉驅動強制簽名機制,然后安裝無簽名的驅動 
    這種方式的實現也有兩種方式,一種是在啟動Windows時啟動選項中關閉驅動強制簽名校驗機制,可以參考這篇文章 http://jingyan.baidu.com/article/7c6fb42879543380642c9036.html ,另外一種方式則是進入Windows的測試模式,可以參考 http://jingyan.baidu.com/article/acf728fd21c3e7f8e510a3ef.html 文章中的說明。
  2. 為無簽名的ipfw+dummynet服務驅動打上自簽名或者可用的簽名 
    如何進行自簽名或者打上可用的簽名可以參考MSDN上的說明 https://msdn.microsoft.com/en-us/library/windows/hardware/ff544865(v=vs.85).aspx ,具體如何簽名并不在本文的范疇內。 
    本文主要使用第二種方式,為ipfw+dummynet服務驅動打上百度簽名后,即可在Windows 7上正常安裝。

安裝的方式如下:

  1. 找到你需要限制帶寬和流量的網卡,進入屬性: 
    這里寫圖片描述
  2. 點擊下方的安裝,選擇服務,然后選擇從磁盤安裝,并在瀏覽中找到ipfw+dummynet服務驅動的inf安裝文件: 
    這里寫圖片描述
  3. 在“此連接使用下列項目”中看到ipfw+dummynet之后,即代表ipfw+dummynet服務驅動安裝成功,如果安裝成功后遇到網卡無法使用的情況,一般會是前一次卸載沒有卸載完全,重啟電腦可以解決。 
    安裝完成后可以以管理員權限運行binary目錄下的testme.bat,如果運行結果中沒有報警信息或者錯誤信息,則驅動安裝是成功的: 
    這里寫圖片描述

利用Dummynet模擬惡劣網絡環境

利用dummynet的pipe,可以設置一些特定的規則,就可以達到模擬惡劣網絡環境的目的,且這些設置對于在操作系統中運行的應用程序來說是透明的、自動生效的,不需要像在使用Fiddler來進行模擬時還需要設置http代理。

  1. 低帶寬模擬 
    惡劣網絡環境最基礎的模擬方式就是模擬較小帶寬下的情況,利用dummynet中的pipe設置,可以將所有的tcp流和udp流的帶寬限制在一定的級別上,運行一個管理員的命令行,并利用binary目錄下的ipfw.exe文件就可以設置dummynet中的pipe,在命令行中執行以下命令: 
    ipfw add pipe 2 in proto tcp 
    ipfw pipe 2 config bw 2Mbit/s 
    即可將tcp的下行流量限制在2Mbit/s的帶寬上,這里采用和上一篇文章中采用的相同的測速網站speedtest.net來驗證限制帶寬的效果,在執行以下指令以前的測速結果如下: 
    這里寫圖片描述
    在執行完上述指令以后的測速結果如下: 
    這里寫圖片描述
  2. 高延時模擬 
    在管理員權限的命令行中執行以下命令: 
    ipfw add pipe 10 ip from any to any 
    ipfw pipe 10 config delay 200 
    這會使得所有的包都被延時200ms,這里利用ping命令來ping百度的方式來直接測試延時,命令執行以前結果如下: 
    這里寫圖片描述
    命令執行以后結果如下: 
    這里寫圖片描述
  3. 高丟包率模擬 
    在管理員權限的命令行中執行以下命令: 
    ipfw add pipe 10 ip from any to any 
    ipfw pipe 10 config plr 0.1 
    這里設置的是10%的丟包率,這里利用ping -t指令繼續ping百度,來觀察丟包率的變化: 
    執行以前: 
    這里寫圖片描述 
    執行以后: 
    這里寫圖片描述
  4. 更加精細化的設置 
    可以看到相比Fiddler來說,利用dummynet可以更加精細化地從各個角度去設置一個惡劣網絡環境的參數,上文中提到的帶寬、延時和丟包率的模擬當然也可以組合起來使用,同時在設置pipe規則時還可以進一步設置更加精細的規則,比如指定的ip段,指定的協議等,比如這一段指令: 
    ipfw add pipe 4 src-ip 10.1.2.0/24 in 
    ipfw pipe 4 config bw 1Mbit/s delay 123 plr 0.1 
    就設置了一個只會介入源ip來自10.1.2.0/24網段的數據包的pipe,并且這個pipe會限制1Mbit/s的帶寬,延時123ms,并且有10%的丟包率,通過組合這些參數,可以模擬出很復雜的惡劣網絡環境,從而滿足開發和測試的需要。相關的設置參數的說明和設置方法可以參考官網的相關文檔和其他的一些說明文檔。

在最后,當完成模擬惡劣網絡環境后,執行以下命令: 
ipfw -q flush 
ipfw -q pipe flush 
來清除所有設定的pipe和規則,進一步如果需要還原原來的環境的話可以將驅動刪除,并重啟計算機即可。

 

 

三、clumsy 0.2模擬網速

clumsy 能在 Windows 平臺下人工造成不穩定的網絡狀況,方便你調試應用程序在極端網絡狀況下的表現。

簡介

利用封裝 Winodws Filtering Platform 的WinDivert 庫, clumsy 能實時的將系統接收和發出的網絡數據包攔截下來,人工的造成延遲,掉包和篡改操作后再進行發送。無論你是要重現網絡異常造成的程序錯誤,還是評估你的應用程序在不良網絡狀況下的表現,clumsy 都能讓你在不需要額外添加代碼的情況下,在系統層次幫你達到想要的效果:

特色:

  • 下載即用,不需要安裝任何東西。
  • 不需要額外設置,不需要修改你的程序的代碼。
  • 系統級別的網絡控制,可以適用于命令行,圖形界面等任何 Windows 應用程序。
  • 不僅僅只支持 HTTP,任何 TCP, UDP 的網絡連接都可以被處理。
  • 支持本地調試(服務器和客戶端都在 localhost)
  • "熱插拔",你的程序可以一直運行,而 clumsy 可以隨時開啟和關閉。
  • 實時調節各種參數,詳細控制網絡情況。

實例

下面的動畫展示了 clumsy 作用于一個本地的基于 netcat 的 UDP 服務器/客戶端的情況。仔細觀察你可以看到數據根據在 clumsy 的影響下產生了相應的變化。 如果你基本知道了 clumsy 是干什么用的,不妨到下載頁面選擇適用于你系統的版本進行下載。

詳細信息

clumsy 首先根據用戶選擇的 filter 來攔截指定的網絡數據。在 filter 中可以設定你感興趣的協議(tcp/udp),端口號,是接收還是發出的端口。你也可以通過簡單的邏輯語句來進一步縮小范圍。當 clumsy 被激活時,只有符合這些標準的網絡數據會被進行處理,而你不感興趣的數據仍然會由系統正常傳輸。

當被 filter 的網絡數據包被攔截后,你可以選擇 clumsy 提供的功能來有目的性的調整網絡情況:

  1. 延遲(Lag),把數據包緩存一段時間后再發出,這樣能夠模擬網絡延遲的狀況。
  2. 掉包(Drop),隨機丟棄一些數據。
  3. 節流(Throttle),把一小段時間內的數據攔截下來后再在之后的同一時間一同發出去。
  4. 重發(Duplicate),隨機復制一些數據并與其本身一同發送。
  5. 亂序(Out of order),打亂數據包發送的順序。
  6. 篡改(Tamper),隨機修改小部分的包裹內容。

盡管當前寬帶網絡連接十分普及,但網絡傳輸其本身在本質上總不是穩定的。如果你的應用程序中沒有應對各種情況的處理,那么有可能一個丟失的 UDP 包裹都會讓你的程序崩潰。正確的調試這類行為 顯然需要再代碼結構上進行仔細的設計和處理,還會很花功夫。而且在某些封裝緊密的開發環境(Unity3D 自帶的網絡庫可能是一個例子)下會更麻煩。clumsy 以盡可能減輕程序員負擔為目標, 希望提供一個簡單方便(但并不完美)的解決方案。

項目的代碼可以在github上獲取。在下載頁面有編譯好的版本。強烈建議在使用前花點時間閱讀一下文檔,來 了解 clumsy 的功能和限制。

技術改變世界! --狂詩絕劍
posted on 2016-12-15 11:03 思月行云 閱讀(577) 評論(0)  編輯 收藏 引用 所屬分類: 服務器\Ops
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久精品一区二区三区| 欧美日韩精品中文字幕| 亚洲黄色成人| 国产精品网曝门| 久久精品一本| 久久精品一区二区三区四区| 夜夜嗨一区二区| 亚洲婷婷综合色高清在线| 欧美日韩喷水| 亚洲一区二区少妇| 亚洲图片在线观看| 欧美成年视频| 亚洲日本成人| 亚洲一区亚洲| 欧美一级夜夜爽| 久久亚洲影院| 国产字幕视频一区二区| 欧美调教vk| 亚洲第一精品夜夜躁人人躁| 国内精品模特av私拍在线观看| 亚洲成人在线网站| 国产亚洲欧洲| 国语对白精品一区二区| 午夜精品久久久久99热蜜桃导演| 9i看片成人免费高清| 欧美视频一区二区三区在线观看| 久久国产毛片| 欧美在线中文字幕| 一区二区在线视频| 欧美激情精品久久久久久免费印度| 宅男在线国产精品| 精久久久久久久久久久| 一区二区毛片| 日韩午夜av电影| 9i看片成人免费高清| 欧美日韩视频在线一区二区| 国产中文一区二区三区| 午夜精品久久久久久| 美女国内精品自产拍在线播放| 欧美专区在线| 欧美午夜精品理论片a级大开眼界| 欧美成人一区二区三区| 欧美激情网友自拍| 亚洲午夜精品国产| 夜夜嗨一区二区三区| 欧美精品麻豆| 欧美一区二区三区日韩视频| 性欧美xxxx大乳国产app| 激情视频亚洲| 两个人的视频www国产精品| 另类亚洲自拍| 亚洲视频一区二区| 性久久久久久久久久久久| 国产精品久久久久久久免费软件 | 欧美在线免费一级片| 欧美激情aⅴ一区二区三区| 99re亚洲国产精品| 狠狠爱成人网| 欧美日韩一区综合| 亚洲网友自拍| 亚洲老司机av| 亚洲欧美在线aaa| 亚洲国产欧美不卡在线观看| 欧美国产三级| 国产精品久久二区二区| 女女同性女同一区二区三区91| 亚洲一区二区三区四区五区午夜| 国产麻豆成人精品| 亚洲在线观看| 乱人伦精品视频在线观看| 欧美一级视频| 午夜亚洲激情| 韩国成人理伦片免费播放| 亚洲第一精品福利| 国产一区二区三区网站| 亚洲精品国久久99热| 红桃视频成人| 亚洲裸体在线观看| 亚洲三级网站| 欧美一区91| 欧美一区二区视频免费观看| 欧美成人r级一区二区三区| 久久青草久久| 国产精品豆花视频| 亚洲免费高清| 亚洲大胆在线| 久久人人爽人人爽爽久久| 亚洲小视频在线观看| 免费亚洲网站| 久久婷婷国产综合国色天香| 国产精品一区二区久久久久| 亚洲丰满在线| 亚洲精品国产系列| 久久久久久亚洲综合影院红桃| 久久久久久**毛片大全| 国产精品久久久久婷婷| 在线亚洲精品| 99亚洲一区二区| 欧美日韩另类视频| 欧美高清视频| 99国产精品自拍| 麻豆精品视频在线观看| 亚洲动漫精品| 亚洲欧洲精品一区二区精品久久久| 久久精品亚洲一区二区三区浴池| 亚洲欧美精品| 国产一区二区电影在线观看| 中文一区二区在线观看| 欧美在线观看一区二区三区| 欧美日韩在线一区二区三区| 亚洲一区二区3| 午夜综合激情| 激情成人在线视频| 久久久国产精品一区二区三区| 美女久久网站| 亚洲激情在线观看| 欧美日韩国产成人| 亚洲人成网站777色婷婷| 亚洲免费在线看| 国产精品美女www爽爽爽视频| 久久国产精品久久w女人spa| 久久久亚洲影院你懂的| 亚洲精选在线观看| 欧美日韩mv| 久久av一区二区三区漫画| 久久免费的精品国产v∧| 亚洲人屁股眼子交8| 欧美精品在线观看一区二区| 亚洲视频高清| 国产日韩欧美在线播放| 久久亚洲精品视频| 欧美电影打屁股sp| 亚洲欧美国产另类| 国产美女诱惑一区二区| 免费在线日韩av| 9色精品在线| 久久综合五月天婷婷伊人| 亚洲第一区色| 国产欧美日韩中文字幕在线| 欧美一区二区视频网站| 亚洲精一区二区三区| 一区二区三区视频在线| 在线成人免费视频| 欧美激情综合色| 久久久国际精品| 亚洲黄色成人网| 久久婷婷国产综合尤物精品| 亚洲激情综合| 伊人精品成人久久综合软件| 亚洲欧美在线网| 亚洲欧洲三级电影| 亚洲成人在线视频网站| 国产精品久久久久久久午夜| 亚洲看片免费| 亚洲高清视频在线| 一区二区三区视频在线观看 | 久久久亚洲人| 99在线热播精品免费| 欧美大色视频| 欧美亚洲午夜视频在线观看| 99视频一区二区| 国精产品99永久一区一区| 国产精品网站一区| 欧美激情一区二区三区在线视频| 久久精品视频亚洲| 欧美大尺度在线观看| 老巨人导航500精品| 国产一区二区三区免费观看| 国产精品成人在线观看| 亚洲综合国产激情另类一区| 亚洲免费成人| 亚洲欧美日韩国产中文在线| 亚洲伦理在线观看| 亚洲电影第三页| 国产麻豆精品久久一二三| 欧美日韩一区高清| 欧美高清在线一区二区| 欧美大成色www永久网站婷| 午夜久久tv| 午夜精品久久久久久久99樱桃| 亚洲品质自拍| 一级成人国产| 亚洲每日更新| 中文成人激情娱乐网| 亚洲国产婷婷| 99re热精品| 免费日韩av| 欧美成人有码| 亚洲国产精品久久久久婷婷884| 久久久精品国产免大香伊| 久久久久一区二区| 久久成人久久爱| 免费久久99精品国产自| 欧美一级在线播放| 久久久夜色精品亚洲| 欧美一区二区在线看| 久久久久99| 久久婷婷久久| 最新国产精品拍自在线播放| 欧美一区观看|