999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

WLAN網下一種實現用戶漫游的機制

2018-08-15 08:02:42王新峰曾明星
計算機應用與軟件 2018年8期
關鍵詞:關聯用戶信息

王新峰 曾明星

(吉首大學軟件學院 湖南 張家界 427000)

0 引 言

在今天,用戶走在任何地方都可以將手機、PAD等設備接入網絡,而這背后都是無線局域網(WLAN)的功勞。WLAN是一種無線通信方式,一般由接入控制器AC(Access Controller)和無線接入點AP(Access Point)組成。早期WLAN只有AP部分,所有的802.11功能,即802.11物理層和媒體接入控制(MAC)功能,都實現在AP中。在這種WLAN結構中,必須對接入點進行單個管理,而且不易實施負載平衡控制,也不可能根據話音之類的實時應用需求執行快速切換等,上述因素決定了這種網絡不適宜于大規模的部署。后來采用的AC+AP結構是WLAN 的最佳結構,在這種結構中,存在一個集中式的設備——接入控制器(AC)或者WLAN Switch。它利用一個或多個集中式設備來對接入點進行管理、控制和配置,將802.11 的功能實現在接入點和集中式設備之間,使其具有很好的管理性和擴展性,是當前WLAN的主流結構,如圖1所示,無線客戶端STA(Station)如:手機、PAD等通過AP接入網絡。

圖1 典型WLAN結構

WLAN的初衷是針對家庭、小辦公室應用,因為無線AP的覆蓋范圍是有限的,AP的覆蓋范圍和其提供的接入速率是緊密相關的,STA距離AP越遠,AP提供的接入速率越低,如圖2所示。

圖2 距離與接入速度關系圖

要大范圍覆蓋無線網絡,只能通過安裝多個AP實現,如圖3所示,STA從AP3范圍移動到AP1范圍再關聯到AP1時會斷線,這在WLAN網絡早期人們是可以接受的。

圖3 大范圍內AP覆蓋場景

隨著無線網絡應用的逐步擴大,用戶對訪問網絡的移動性要求越來越高。即用戶希望能夠邊移動邊正常使用網絡,這對現有的技術提出了極大的挑戰。如何有效地滿足用戶在使用無線WLAN網絡時的快速無縫漫游問題,成為亟待解決的問題。

1 漫游應用場景

漫游是指 STA在移動到兩個BSS基礎服務集(Basic Service Set,俗稱WIFI名)覆蓋范圍的臨界處時,STA與新AP重新關聯并與原AP斷開關聯的過程,整個漫游過程中STA的IP地址和訪問域保持不變。對于用戶來說,漫游的行為通常是透明的無縫漫游,即用戶及其使用的應用程序,不會感知到漫游的發生。

根據STA漫游前后所涉及的AC,可以將漫游分為AC內漫游和AC間漫游。

AC內漫游:針對小范圍WLAN覆蓋場景,AP數量少且全部由一臺AC控制,STA漫游前后所關聯的AP都在同一AC控制下,如圖4所示,STA從原來所在的AP1范圍移動進入AP2的范圍。

圖4 AC內漫游

AC間漫游:是針對大范圍WLAN覆蓋場景,整個網絡中有多個AC,每個AC下連多個AP,STA漫游前后所關聯的AP歸屬于不同的AC控制,如圖5所示,圖中虛線代表STA漫游方向從AP1漫游到AP2。

圖5 AC間漫游

2 漫游原理

2.1 STA正常關聯過程

漫游是STA與新AP重新關聯并與原AP斷開關聯的過程,要實現漫游需要先了解STA正常的關聯以及各模塊的功能。

AC:負責AP和STA的管理,當有STA從AP接入時存儲STA相關的信息(有MAC、IP、接入AP、QoS、Security等),以及負責數據的控制和轉發。

AP:發送BSS讓STA接入,有STA接入后負責在AC與STA之間傳遞數據。AP形象點描述就像一座橋連接AC與STA,只傳遞數據不處理數據。

STA:發出關聯請求和重關聯請求,關聯上AC后即可為用戶獲取網絡數據。關聯請求是STA正常關聯AP的請求,而重關聯請求是當STA已關聯上AP后,發現有相同名稱且信號更好的BSS服務時發出的請求。正是由于重關聯請求的存在,才有了漫游實現的可能。

STA正常上線過程會涉及到很多模塊如快速轉發、安全模塊和AP模塊(為了只關注漫游,這些模塊只簡單列出幾個描述)等,最終建立了STA信息,如圖6所示。整個STA上線建立所有相關模塊信息的時間大致是幾百毫秒,由于是第一次上線,這個時間用戶是可接受的。當用戶從當前AP覆蓋范圍進入到另一個AP的范圍時,會發送重關聯請求,在沒有漫游機制的情況下,這時AC的處理跟正常處理一致,會重新建立一個新的STA信息同時把相關模塊的數據更新,而這個過程耗時跟之前一樣也是幾百毫秒,在這個時間內用戶的網絡會斷開,嚴重影響用戶體驗,這正是問題之所在。

圖6 STA正常關聯過程圖

2.2 漫游原理

漫游的目標是讓用戶對漫游過程無感知,用戶無感知即對用戶使用的網絡通信無影響,對于像VoWLAN這樣的對實時性要求很高的應用來說,切換時,用戶數據通信中斷的時間必須少于50 ms(人耳能感覺到的時間間隔),因此漫游過程耗時必須小于50 ms。而正常關聯過程涉及眾多模塊耗時幾百毫秒,遠大于50 ms,這就是需要解決的問題。

當STA發生漫游時,更新各模塊相關的數據耗時幾百毫秒,如果不更新數據就無耗時,這里引入一種機制“欺騙”各個相關模塊,讓它們以為STA漫游前后并沒有什么變化,并將實現該機制的功能叫漫游模塊。

用戶對漫游無感知的本質是漫游前后用戶與網絡通信數據正常,因此必須分析漫游前后STA通信數據的上下行通道,數據上行是指STA通過AC把數據發送到網絡,下行是指AC從網絡接受數據發送到STA,通俗講上下行就是STA上網數據傳輸過程。圖7描述了一個最簡單的漫游過程對比,STA從圖中AP1漫游到AP2,圖中雙向箭頭線代表數據上下行的傳輸通路,其中虛線是漫游前的,實線是漫游后的。下面是漫游前后相同與不同點對比:

1) 相同點:STA上下行數據傳輸還是由AC來轉發,對于網絡來說STA是通過AP1還是通過AP2傳輸數據是不用關心的。

2) 不同點:漫游前下行的數據需要AC通過各模塊檢測后從AP1傳到STA,漫游后需要把下行數據通過AP2傳到STA。漫游前上行數據是STA通過AP1上傳到AC經各模塊檢測后上傳到網絡,漫游后是通過AP2上傳到AC的。

圖7 漫游前后STA上下行數據傳輸通道圖

漫游模塊的工作原理是建立一個模塊用來“欺騙”AC上各模塊,如圖8所示,其中雙向箭頭代表數據數。

圖8 漫游模塊功能圖

增加漫游模塊后,當STA從AP1漫游到AP2,漫游模塊處理如下:

1) STA上行數據通過AP2到達AC時,漫游模塊最先接收數據將數據來源從AP2改成AP1,這樣其他上層模塊會以為數據還是從AP1傳上來的。

2) 網絡下行數據通過AC各模塊后準備發往AP1到STA時(因為其他模塊還認為STA是關聯在AP1上),漫游模塊最后處理數據將AP1改成AP2發到STA。

這樣就達到了“欺騙”各模塊的效果,除了漫游模塊感知了STA漫游,其他所有模塊都不變。

3 漫游模塊實現

漫游模塊由三部分組成:漫游組、MTI隧道(AC間通信專用隧道)以及漫游表。漫游表是AC內與AC間漫游都需要的關鍵部分,漫游組與MTI隧道兩個部分只是為AC間漫游服務。如果網絡環境較小只需要實現AC內漫游,則只需增加漫游表這部分功能。

3.1 漫游表

對于AC內漫游,STA漫游前后所有信息都在同一個AC,此時漫游模塊對其他模塊進行“欺騙”是很容易的,只需要建立一個漫游表,表里存儲每個漫游STA的狀態信息,包括:STA的MAC地址、STA的用戶狀態、STA關聯的WLAN ID、正常關聯時關聯的CTI(AC與AP通信的通道)端口索引和漫游后關聯的CTI端口索引、STA在AC上的狀態,如表1所示。

表1 漫游表

當STA發送重關聯請求時,漫游模塊可以查詢到之前STA關聯的信息,再通過重關聯幀獲取到漫游后的AP信息,最后建立漫游表。

下面通過一個簡單的示例來講解下漫游表的作用,圖9所示為一個AC內漫游,圖內右邊是漫游表,當漫游發生后數據的上下行傳輸如下。

1) 下行:網絡有數據要下行到STA,漫游模塊接手數據查詢漫游表,發現是一個漫游用戶,將傳輸接口從CTI 1改成CTI 2,這樣數據就到達AP2然后傳給了STA,下行數據通暢。

2) 上行:STA發送數據上行到網絡,漫游模塊接到從AP2傳上來的STA數據,查看發現是漫游STA,將CTI 2改成CTI 1,其他模塊依然認為數據從CTI1上來,通過各模塊檢查安全傳輸到網絡,上行數據通暢。

當STA漫游后數據依然能上下行通暢,證明聯網正常,同時其他模塊又對漫游前后無感知,證明此方案可行。

圖9 漫游表工作圖

由于AC關聯的漫游STA數量可能較大,同時每個STA的每個數據包都需要經過漫游模塊進行檢查修改,這時快速定位到漫游表中的STA是必須考慮的現實問題。在眾多數據結構中HASH表是能直接定位的存儲結構,所以使用HASH表來維護STA狀態數據庫,使用介質接入控制MAC(每個STA的MAC是唯一的)來生成hash索引,對于極少的hash沖突的STA狀態信息通過鏈表進行維護,具體參見圖10。

圖10 漫游表中STA狀態信息存儲圖

3.2 漫游組

漫游模塊處理AC內漫游很容易,而AC間漫游處理起來就比較復雜了,因為漫游前后STA關聯的AC是不同的,STA漫游關聯到的AC2如何知道漫游前AC1的信息呢?解決辦法是信息共享。用戶的漫游范圍不能無限擴大,為了對用戶漫游范圍進行控制,同時達到共享目的,將一組可進行STA信息數據同步的控制器,稱為一個漫游組。通過創建一個漫游組,使得同一個組內的各個控制器能互相分享用戶的相關信息,達到快速漫游的目的。圖11[2]顯示了一個漫游組的拓撲情況。圖中三個AC分別為ControllerA、ControllerB、ControllerC,每個AC上建立了一個漫游組,記錄組內的其他成員AC。

圖11 漫游組圖

漫游組的工作機制是當一個STA先關聯在ControllerA,之后漫游到ControllerB,此時ControllerB可以在漫游組內詢問:這個STA是否之前關聯漫游組內的AC上,ControllerA接受到詢問后,告訴ControllerB此STA信息,這樣漫游前后STA的信息雙方都知道了。有了信息漫游模塊就可以對其他模塊進行“欺騙”,因此在沒有漫游組的不同AC之間無法進行漫游。

漫游組必須在AC上手動創建,通過漫游組的名字來區分不同的漫游組。實際應用中不可能無限擴大漫游范圍,因此設置每個AC可配置最多8個漫游組,每個組內最多24個成員,用于不同需要。每個漫游組至少需要包括以下信息:漫游組的名字、漫游組ID、漫游組是否有效、數據通道保活報文發送間隔、數據通道保活報文接收閥值、漫游組內的成員數等。每個漫游成員至少需要保存如下信息:漫游成員的IP地址、成員是否有效、對應MTI端口的相關信息、MTI數據/控制通道狀態、數據通道保活報文接收失敗次數等。

漫游組和漫游組成員信息在AC內的存儲方式為數組方式,因為漫游組和漫游組成員少,并且在實際環境中,漫游可能會較為頻繁地發生,也可能會經常需要訪問漫游組內漫游成員的信息,如果用鏈表來維護,就需要對鏈表本身進行額外的保護,這樣操作就會變得較為復雜。這里采用數組的方式進行操作較為簡便,如圖12所示。

圖12 漫游組數據結構存儲圖

3.3 MTI隧道

漫游組內不同AC之間需要共享信息,還要傳遞STA通信數據,因此需要建立一個專門的通信隧道MTI。MTI類似于CTI通道,使得漫游模塊在建立相同的漫游表時可處理兩種漫游。圖13為AC間漫游,STA從AC1漫游到AC2的AP2,數據的上下行傳輸過程。

1) 下行:網絡有數據要下行到STA,漫游模塊接手數據時查看漫游表,發現是一個漫游用戶,于是將傳輸接口從CTI 1改成MTI 1,這樣數據就到達AC2,之后AC2上的漫游模塊將MTI 2改成CTI 2,數據由AP2下發給STA,下行數據通暢。

2) 上行:STA發送數據上行到網絡,AC2上漫游模塊接到從AP2傳上來的STA數據,查看發現是漫游STA,將CTI 2改成MTI 2,數據由MTI隧道傳到AC1,AC1上漫游模塊接收到數據后將MTI 1改為CTI 1,上傳到網絡。其他模塊依然認為數據從CTI 1上來,通過檢查傳輸到網絡,上行數據通暢。

圖13 MTI隧道展示圖

(1) MTI隧道的建立 當為漫游組配置了漫游成員AC之后,創建對應的MTI端口,并且當數據通道打通后將MTI端口狀態UP。當數據通道不通的時候將MTI端口的狀態置為DOWN,當漫游組中的漫游成員被刪除的時候,將其對應的MTI端口刪除。

雖然漫游組中的各成員AC之間是對等的,但是在控制通道中需要將MTI連接的AC分為Server和Client。為了使不同AC都能得到同樣的結果,所以通過比較AC的管理IP地址來確定AC間的C/S關系:MTI 2端AC中IP地址的二進制值較小的作為Server,較大的作為Client。

(2) MTI隧道的保活 MTI隧道會因為各種異常斷開,為了及時檢測隧道是否正常,需要對隧道進行從中保活,做法是通過keepalive報文來實現。Keepalive報文需要分為request報文和response報文。其中keepalive request報文由Client端主動發出,根據配置的保活時間,每個一定時間發出。而keepalive response是Server端收到request后才進行回復。當Server端在連續若干個保活周期(周期個數通過CLI來修改)內都沒有收到Client端的keepalive request報文,那Server端就認為數據通道已經不通,將數據通道狀態改為down。而Client端如果在連續若干個保活周期(周期個數通過CLI來修改)內都沒有收到keepalive response報文,那么Client端就認為數據通道已經不通,將MTI隧道狀態改為down。

4 漫游模塊應用

漫游模塊由三部分組成,工作原理并不復雜。可實際環境中漫游過程是非常復雜的,會出現先AC內漫游再轉到AC間漫游、AC間漫游轉AC間漫游等復雜的情況。為了證明漫游模塊能滿足復雜多變的實際應用,需要對STA的各種漫游場景進行分析。

4.1 STA各種場景分析

STA在發生漫游時,對不同AC來說意義不一樣,為了方便討論,先列出4種AC上STA狀態:

NC(普通用戶):正常關聯到AC上,無漫游。

LRC(本地漫游或稱AC內漫游用戶):STA在AC內漫游。

RIC(漫入用戶):STA發生AC間漫游,從別的AC漫游到本AC。

ROC(漫出用戶):STA從本AC漫游出到別的AC。

由于需要保持STA在整個多次的漫游過程中IP地址和訪問域不變,必須關注STA最開始關聯的AC/AP,只有這樣才能確定STA的訪問域;同時需要關注STA漫游后當前關聯的AC/AP,只有知道了當前的位置,才能使做相應操作時STA在當前位置上保持原有的訪問域不變;最后,還需要關注STA在本次漫游之前關聯的AC/AP,因為該位置上可能保存有前一次漫游時候的相關信息,而這些信息需要更新或刪除。

因此確定STA的漫游情況,需要且只需要知道3個位置:STA正常加入的AC/AP、本次漫游行為之前關聯的AC/AP、當前也就是本次漫游后關聯的AC/AP。因為只要3個AC/AP位置就能表述STA的漫游所有場景,所以可以通過一個總共有3臺AC,每臺AC下聯3臺AP的模型來對所有可能的情況進行表述。

下面對可能的各種情況進行討論。為了便于討論,假設當前的場景中有3臺AC:AC0、AC1、AC2,每臺AC各下聯有3臺AP:AP0、AP1、AP2,如圖14所示。當STA關聯到ACx下的APy時,用(x,y)來表示STA當前關聯的位置,表格中描述的STA在AC上的用戶狀態。

鑒于篇幅的限度及漫游場景的相似性,下面只對最常見的6種漫游場景進行詳細分析。

? 場景1:AC內一次漫游(見圖14)

圖14 AC內一次漫游示意圖

漫游前STA是與AP0正常關聯的。STA向AP1發出重關聯,AC0收到STA的重關聯請求后,改變STA與AP的關聯,將STA關聯到AP1,并且通告漫游模塊。漫游模塊收到通告后,根據STA信息判斷是AC內漫游,修改STA中漫游相關的狀態,如表2所示。

表2 AC內一次漫游時STA在AC上狀態的變化

? 場景2:AC間一次漫游(見圖15)

圖15 AC間一次漫游示意圖

漫游前STA與AC0的AP0是正常關聯的。STA向AC1的AP0發出重關聯請求,通過AP傳遞,AC1收到漫游請求,根據STA的狀態判斷是AC間漫游;AC1向同漫游組內的AC0和AC2發出漫游請求;AC2收到漫游請求后發現不是與自己相關的STA所以不回復;AC0收到請求后檢索STA信息發現自己是漫出AC,修改AC0上的STA狀態信息并設置轉發面,然后向AC1發出漫游應答;AC1收到漫游應答時修改STA漫游相關信息,如表3所示。

表3 AC間一次漫游時STA在AC上的狀態變化

? 場景3:AC內二次漫游(見圖16)

圖16 AC內二次漫游示意圖

在當前漫游之前,STA已經經過若干過程從AC0的AP0漫游到AP1。STA向AC0的AP2發起重關聯,AC0收到重關聯請求后解除STA與AP1的關聯,并且將STA關聯到AP2。漫游模塊根據當前AP關聯的變化情況更新STA漫游相關信息,如表4所示。

表4 AC內二次漫游時STA在AC上的狀態變化

? 場景4:AC內往返漫游(見圖17)

圖17 AC內往返漫游示意圖

在當前漫游之前,STA已經經過若干過程從AC0的AP0漫游到AP1。STA向AP0發起重關聯請求,AC0收到重關聯請求后,將STA關聯到AP0,并且判斷AP0是STA最開始正常加入的AP,所以將STA看作與正常加入的情況相同,同步信息到STA控制塊和轉發面,如表5所示。

表5 AC內往返漫游時STA在AC上的狀態變化

? 場景5:AC內到AC間二次漫游(見圖18)

圖18 AC內到AC間二次漫游示意圖

在當前漫游之前,STA已經經過若干過程從AC0的AP0漫游到AC0的AP1。STA向AC0的AP0發起重關聯請求,AC1判斷之前沒有該STA的信息,向漫游組內的AC0和AC2發出漫游請求。AC2收到請求后判斷自己沒有STA的信息,所以不進行回應。AC0收到請求后,查找到STA相關信息,修改STA控制塊和轉發面信息為漫出狀態,同時將STA信息通過漫游模塊發送到AC1。AC1收到信息后更新本身的STA控制塊和轉發面信息,如表6所示。

表6 AC內到AC間二次漫游時STA在AC上的狀態變化

? 場景6:AC間往返漫游(回到同一AP,見圖19)

圖19 AC間往返漫游的示意圖

在當前漫游之前,STA已經經過若干過程從AC0的AP0漫游到AC1的AP0。STA向AC0的AP0發起重關聯請求,AC0收到后判斷STA當前的轉狀態是漫出,所以向漫游組內的AC1和AC2發送漫游請求,同時更新STA控制塊和轉發面信息恢復到STA正常關聯的狀態,如表7所示。AC1收到漫游請求后刪除對應的STA信息,并且由于AC1不是最近一次正常加入時候的AC,所以不發送回應;AC2收到漫游請求后,判斷本身沒有這個STA信息,也不進行回應。

表7 AC間往返漫游時STA在AC上的狀態變化

從上述場景分析可以看出,本漫游方案是能夠適用于各種可能發生的漫游場景。

4.2 漫游模塊性能測試

為了證明漫游模塊符合設計需要即漫游處理過程時間不超過50 ms,需要測試漫游模塊在AC端的性能。需要分別測試在AC內和AC間環境下,STA與所在網絡的其他設備進行不間斷的通信過程中,在漫游前后STA的斷流時間。

測試拓撲圖選用最典型的AC內(參見圖4)和AC間(圖5)漫游結構圖,測試步驟如下:

1) STA1關聯到AP1上,STA1通過flood_ping工具不停向AP1發ping 報文。

2) PC采用WireShark通過鏡像口抓取AP1收到的ping_req報文和發送的ping_reply報文。

3) STA1從AP1漫游到AP2。

4) 采用時間戳來記錄漫游處理時間,接收重關聯幀到漫游表建立完成一共花費的時間,如表8所示。

表8 漫游處理時間

從表8可以看出,AC端和漫游模塊成功處理完漫游STA的數據,其平均時間不超過10 ms,這與漫游機制的指標吻合。

5 結 語

本文對大范圍部署WLAN網絡時用戶移動掉線的問題,給出了一種解決機制。本漫游機制原理不復雜,但同時能完全滿足各種應用場景,通過測試漫游的性能也證明其符合設計目標。但不同運營商對WLAN 漫游持不同的態度,因此無法做到全網任意漫游,只能在安裝有漫游模塊的特定設備上才能實現用戶漫游。

猜你喜歡
關聯用戶信息
“苦”的關聯
當代陜西(2021年17期)2021-11-06 03:21:36
奇趣搭配
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
智趣
讀者(2017年5期)2017-02-15 18:04:18
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
語言學與修辭學:關聯與互動
當代修辭學(2011年2期)2011-01-23 06:39:12
主站蜘蛛池模板: 呦视频在线一区二区三区| 日韩一区二区三免费高清| 久久国产精品麻豆系列| 88av在线| 四虎影视永久在线精品| 国产亚洲男人的天堂在线观看| 一级在线毛片| 欧美激情福利| 欧美日韩精品一区二区在线线| 一级一级特黄女人精品毛片| 亚洲第一极品精品无码| 国产精品综合色区在线观看| 久久国产精品嫖妓| 亚洲大学生视频在线播放| 青青青国产视频手机| 伊人91在线| 国产一线在线| 国产高清国内精品福利| 91尤物国产尤物福利在线| 熟女成人国产精品视频| 亚洲无码视频一区二区三区| 日本国产一区在线观看| 久久久久国产一区二区| 亚洲乱码在线视频| 狠狠操夜夜爽| 日韩东京热无码人妻| 综合色在线| 亚洲综合久久成人AV| 亚洲婷婷六月| 丁香婷婷综合激情| 国产一级特黄aa级特黄裸毛片 | 国产欧美日韩另类精彩视频| 中文国产成人精品久久一| 激情六月丁香婷婷四房播| 91 九色视频丝袜| 欧美97欧美综合色伦图| 国产91精选在线观看| 无码免费试看| 欧美在线免费| 亚洲精品国产成人7777| 亚洲第一极品精品无码| 久久99蜜桃精品久久久久小说| 久久91精品牛牛| 亚洲天堂2014| 国产一在线| 日本在线欧美在线| 亚洲黄色高清| 亚洲欧美成aⅴ人在线观看 | 一区二区理伦视频| yjizz国产在线视频网| 日韩资源站| 影音先锋亚洲无码| 国产经典三级在线| 99精品在线看| 尤物午夜福利视频| 99色亚洲国产精品11p| 日本午夜影院| 亚洲av无码久久无遮挡| 国产欧美视频综合二区 | 毛片免费网址| 免费播放毛片| 免费av一区二区三区在线| 美女被躁出白浆视频播放| 中文字幕乱妇无码AV在线| 国产精品手机在线播放| 精品乱码久久久久久久| 亚洲欧美日韩另类在线一| 亚洲精品成人片在线播放| 国产成人免费| 午夜视频www| 老司机久久99久久精品播放| 久久一本日韩精品中文字幕屁孩| 免费亚洲成人| 四虎精品黑人视频| 国产剧情一区二区| 女人天堂av免费| 久久香蕉国产线看观看亚洲片| 国产成人精品亚洲77美色| 天堂在线视频精品| 国产99精品久久| 色欲不卡无码一区二区| WWW丫丫国产成人精品|