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

基于互聯(lián)網(wǎng)服務(wù)器的海量ZigBee節(jié)點(diǎn)管理系統(tǒng)①

2019-07-23 02:07:46蘆晨博
關(guān)鍵詞:指令信息

蘆晨博

(沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 110870)

引言

在基于Z-Stack 協(xié)議棧的ZigBee 網(wǎng)絡(luò)中通過使用16 位短地址[1]在本地網(wǎng)絡(luò)中標(biāo)識(shí)設(shè)備和在網(wǎng)絡(luò)中發(fā)送數(shù)據(jù),當(dāng)一個(gè)節(jié)點(diǎn)加入網(wǎng)絡(luò)的時(shí)候?qū)⒂伤母腹?jié)點(diǎn)給它分配短地址[2].這個(gè)短地址的長(zhǎng)度規(guī)定了在一個(gè)ZigBee 網(wǎng)絡(luò)中最多能搭載65 535 個(gè)節(jié)點(diǎn),而在實(shí)際應(yīng)用中由于ZigBee 節(jié)點(diǎn)芯片的運(yùn)算能力有限,加上載波偵聽多路訪問/沖突避免[3](Carrier Sense Multiple Access with Collision Detection,CSMA/CA)等原因很難達(dá)到上萬節(jié)點(diǎn)的掛載.在使用全路由節(jié)點(diǎn)網(wǎng)絡(luò)[4,5],更強(qiáng)性能的協(xié)調(diào)器或多信道通訊等手段時(shí)雖然可有效提高網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量,仍然無法突破短地址帶來的上限,同時(shí)又大大增加了系統(tǒng)復(fù)雜度.在物聯(lián)網(wǎng)蓬勃發(fā)展的今天與萬物皆可互聯(lián)的理念下[6],搭建能夠處理大量節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu)意義重大.

本文通過在ZigBee 節(jié)點(diǎn)網(wǎng)絡(luò)之上利用互聯(lián)網(wǎng)服務(wù)器搭建外網(wǎng)結(jié)構(gòu),集中管理各個(gè)內(nèi)網(wǎng)ZigBee 節(jié)點(diǎn)群,并提供自組網(wǎng)功能.根據(jù)實(shí)際業(yè)務(wù)需求進(jìn)行節(jié)點(diǎn)網(wǎng)絡(luò)的組建,服務(wù)端將集中管理所有節(jié)點(diǎn)數(shù)據(jù)并對(duì)外提供Web 服務(wù).在服務(wù)端的架構(gòu)設(shè)計(jì)上可采用分布式,搭建集群,負(fù)載均衡等多種應(yīng)對(duì)高并發(fā)[7,8]的設(shè)計(jì)方式,使得系統(tǒng)性能與節(jié)點(diǎn)掛載能力獲得極大提升.

1 整體設(shè)計(jì)

系統(tǒng)整體由終端節(jié)點(diǎn),節(jié)點(diǎn)協(xié)調(diào)器,內(nèi)網(wǎng)控制器,中央服務(wù)器,人機(jī)接口構(gòu)成五層網(wǎng)絡(luò)結(jié)構(gòu).

終端節(jié)點(diǎn)、協(xié)調(diào)器、內(nèi)網(wǎng)控制器組成內(nèi)網(wǎng)結(jié)構(gòu).其中ZigBee 終端節(jié)點(diǎn)可掛載各類傳感器和控制設(shè)備與ZigBee 協(xié)調(diào)器之間通過利用Z-Stack 協(xié)議棧完成自組網(wǎng)與無線通訊功能.每個(gè)獨(dú)立的ZigBee 網(wǎng)絡(luò)都配有一臺(tái)直接與外網(wǎng)相連并具有一定存儲(chǔ)功能的內(nèi)網(wǎng)控制器.協(xié)調(diào)器與內(nèi)網(wǎng)控制器可通過串口相連或直接集成在一起.控制器接受中央服務(wù)器的指令信息來驅(qū)動(dòng)ZigBee 協(xié)調(diào)器,并通過廣播的方式向終端節(jié)點(diǎn)傳遞指令消息,同時(shí)將終端的狀態(tài)信息同步至中央服務(wù)器.

中央服務(wù)器內(nèi)維護(hù)著各個(gè)內(nèi)網(wǎng)系統(tǒng)控制器的IP地址和與之相匹配的身份標(biāo)識(shí).整個(gè)系統(tǒng)中每一個(gè)終端節(jié)點(diǎn)擁有一個(gè)唯一的全局節(jié)點(diǎn)ID(GlobalID),服務(wù)器通過GlobalID 和控制器IP 地址可對(duì)指定節(jié)點(diǎn)發(fā)送控制信息.中央數(shù)據(jù)庫內(nèi)存儲(chǔ)著所有節(jié)點(diǎn)的狀態(tài)信息并可提供Web 服務(wù)供用戶客戶端訪問.整體結(jié)構(gòu)如圖1.

2 內(nèi)網(wǎng)結(jié)構(gòu)設(shè)計(jì)

2.1 終端節(jié)點(diǎn)

任意一個(gè)內(nèi)網(wǎng)結(jié)構(gòu)中,每個(gè)終端節(jié)點(diǎn)在啟動(dòng)之前會(huì)被分配一個(gè)身份標(biāo)識(shí)符(NodeID).啟動(dòng)設(shè)備后在ZStack 協(xié)議棧的幫助下會(huì)自動(dòng)尋找當(dāng)前網(wǎng)絡(luò)內(nèi)的協(xié)調(diào)器,若匹配成功則加入該網(wǎng)絡(luò).在完成自組網(wǎng)工作后節(jié)點(diǎn)進(jìn)入正常工作狀態(tài).終端節(jié)點(diǎn)除自組網(wǎng)任務(wù)外仍需在Z-Stack 協(xié)議棧操作系統(tǒng)抽象層(Operating System Abstraction Layer,OSAL)[9]中注冊(cè)和初始化兩項(xiàng)基本任務(wù).

圖1 整體機(jī)構(gòu)示意圖

(1)狀態(tài)信息定時(shí)發(fā)送任務(wù):終端節(jié)點(diǎn)周期性的向網(wǎng)絡(luò)內(nèi)的協(xié)調(diào)器發(fā)送狀態(tài)信息其目的是為了表明自身存活狀態(tài)并可傳遞各類傳感器信息.數(shù)據(jù)格式一般為:NodeID+狀態(tài)信息.

(2)指令消息接受任務(wù):系統(tǒng)中協(xié)調(diào)器以廣播的形式傳遞消息,數(shù)據(jù)格式為:NodeID+操作碼,當(dāng)終端指令與指令消息中的NodeID 對(duì)比成功后執(zhí)行操作碼對(duì)應(yīng)的自定義任務(wù),對(duì)比失敗則忽略消息.

2.2 協(xié)調(diào)器

系統(tǒng)中ZigBee 協(xié)調(diào)器除完成自組網(wǎng)任務(wù)外,僅作為消息的傳遞者.將內(nèi)網(wǎng)控制器傳來并將受到的終端節(jié)點(diǎn)狀態(tài)信息傳遞給內(nèi)網(wǎng)控制器.

2.3 內(nèi)網(wǎng)控制器

內(nèi)網(wǎng)控制器是連接ZigBee 網(wǎng)絡(luò)與中央服務(wù)器的核心樞紐,用于解析服務(wù)端請(qǐng)求,向協(xié)調(diào)器發(fā)送指令信息和封裝節(jié)點(diǎn)狀態(tài)信息同步至中央服務(wù)器.控制器會(huì)被分配一個(gè)公網(wǎng)IP 地址供中央服務(wù)器查找.在本文的設(shè)計(jì)中控制器需至少包含四項(xiàng)基本任務(wù):

(1)中央服務(wù)器消息監(jiān)聽任務(wù)(CenterMsgListener):?jiǎn)?dòng)一個(gè)SocketService 監(jiān)聽指定端口,中央服務(wù)器會(huì)向該端口發(fā)送各類指令信息,調(diào)用MsgParser 解析指令消息,其中數(shù)據(jù)段的格式為GlobalID(全局節(jié)點(diǎn)ID)的指令消息原封不動(dòng)通過廣播方式發(fā)送出去.

(2)中央服務(wù)器消息發(fā)送任務(wù)(CenterMsgSender):新建SocketClient 向中央服務(wù)器發(fā)送包括控制器心跳、注冊(cè)信息、節(jié)點(diǎn)狀態(tài)的更新、新節(jié)點(diǎn)入網(wǎng)與節(jié)點(diǎn)失活等多種消息.

(3)協(xié)調(diào)器消息監(jiān)聽任務(wù)(ZNodeMsgListener):接收協(xié)調(diào)器收集到的終點(diǎn)節(jié)點(diǎn)狀態(tài)信息.

(4)協(xié)調(diào)器消息發(fā)送任務(wù)(ZNodeSender):向協(xié)調(diào)器發(fā)送正確格式的指令字符.在控制器初始化階段還需加載4 張基本數(shù)據(jù)表.

表1 控制器初始化基本數(shù)據(jù)表

2.3.1 處理服務(wù)器控制信息

當(dāng)控制器接收到中央服務(wù)器的指令消息時(shí)需依次執(zhí)行以下任務(wù):

(1)解析消息獲取指令數(shù)據(jù)段,解析失敗向服務(wù)器返回ERROR-指令消息非法.

(2)查詢Global2Node 獲取內(nèi)網(wǎng)節(jié)點(diǎn)ID,獲取失敗時(shí)向服務(wù)端返回EXCEPTION-節(jié)點(diǎn)不存在或已下線.

(3)對(duì)照Command 表封裝正確格式的指令信息.

(4)獲取ZNodeSender 向協(xié)調(diào)器發(fā)送指令消息字符,若發(fā)送失敗向服務(wù)端返ERROR (節(jié)點(diǎn)操作失敗).

(5)向服務(wù)端返回SUCCESS.

(6)更新NodeStatus 表中的狀態(tài)信息.

(7)在本地磁盤內(nèi)新增操作記錄與日志信息.

2.3.2 處理協(xié)調(diào)器節(jié)點(diǎn)消息

控制器接收到協(xié)調(diào)器節(jié)點(diǎn)心跳信息時(shí)需根據(jù)內(nèi)容作出不同的處理,當(dāng)某一節(jié)點(diǎn)的心跳消息第一次出現(xiàn)時(shí)需在本地緩存節(jié)點(diǎn)狀態(tài)信息,為減輕服務(wù)器端的壓力只有在節(jié)點(diǎn)狀態(tài)發(fā)生實(shí)質(zhì)上的變化時(shí)才會(huì)發(fā)送更新消息.具體處理流程如圖2所示.

2.3.3 處理節(jié)點(diǎn)離線

Status 中記錄著對(duì)應(yīng)節(jié)點(diǎn)的上次心跳時(shí)間,控制器初始化完成后啟動(dòng)監(jiān)聽線程周期性的遍歷NodeStatus表,根據(jù)當(dāng)前時(shí)間戳查找已超時(shí)節(jié)點(diǎn),封裝超時(shí)節(jié)點(diǎn)信息向服務(wù)端發(fā)送節(jié)點(diǎn)下線消息,清除NodeStatus 中緩存的對(duì)應(yīng)節(jié)點(diǎn)記錄,更新本地?cái)?shù)據(jù)庫.

3 外網(wǎng)結(jié)構(gòu)設(shè)計(jì)

3.1 中央服務(wù)器

中央服務(wù)器是外網(wǎng)結(jié)構(gòu)的核心,其核心功能主要分為三部分:

(1)維護(hù)各個(gè)內(nèi)網(wǎng)控制器的通訊地址與通訊方式,快速匹配目標(biāo)節(jié)點(diǎn)發(fā)送控制信息.

(2)響應(yīng)并處理控制器請(qǐng)求,存儲(chǔ)所有節(jié)點(diǎn)狀態(tài)信息,維護(hù)系統(tǒng)內(nèi)數(shù)據(jù)的一致性.

(3)對(duì)外提供Web 服務(wù),將對(duì)ZigBee 節(jié)點(diǎn)的操作抽象成具體業(yè)務(wù)功能.外網(wǎng)結(jié)構(gòu)如圖3所示.

對(duì)于客戶端來說,所有被查詢的節(jié)點(diǎn)數(shù)據(jù)均來自于中央數(shù)據(jù)庫,在享受這種高效的,體驗(yàn)良好的查詢服務(wù)時(shí),需要重點(diǎn)關(guān)注數(shù)據(jù)實(shí)時(shí)性的問題.系統(tǒng)內(nèi)影響實(shí)時(shí)性的主要因素來源于從節(jié)點(diǎn)狀態(tài)發(fā)生變化到數(shù)據(jù)庫更新所產(chǎn)生的時(shí)間差.

針對(duì)此問題在內(nèi)網(wǎng)結(jié)構(gòu)中可以選擇提高心跳信息的采集頻率、使用更高性能的網(wǎng)絡(luò)模塊、在終端節(jié)點(diǎn)上采用中斷的方式提交更新數(shù)據(jù)或者可以在同一業(yè)務(wù)區(qū)域內(nèi)搭建多個(gè)內(nèi)網(wǎng)結(jié)構(gòu).更高的實(shí)時(shí)性必然需要付出更多的成本和性能.對(duì)于中央服務(wù)器而言并不需要過多的關(guān)心業(yè)務(wù),最重要的是盡可能的提高處理并發(fā)的能力.除了在請(qǐng)求處理上采用合理的負(fù)載均衡策略外,值得一提的是在節(jié)點(diǎn)ID 字段的分配時(shí)可在其中加入業(yè)務(wù)地區(qū)與業(yè)務(wù)類型的標(biāo)識(shí)字符,這種設(shè)計(jì)在存儲(chǔ)時(shí)十分有利于做分庫分表[10],在查詢時(shí)也可根據(jù)ID 中的標(biāo)識(shí)字符定位數(shù)據(jù)庫的位置.性能提高十分明顯.

圖2 節(jié)點(diǎn)信息處理流程圖

圖3 外網(wǎng)結(jié)構(gòu)示意圖

當(dāng)服務(wù)器接受到節(jié)點(diǎn)操作請(qǐng)求時(shí),為保證節(jié)點(diǎn)操作的準(zhǔn)確性與系統(tǒng)內(nèi)數(shù)據(jù)的一致性,用戶的請(qǐng)求與中央服務(wù)器對(duì)控制器的操作請(qǐng)求都應(yīng)該是阻塞的,核心數(shù)據(jù)的事務(wù)[11]應(yīng)包含整個(gè)過程.

3.2 控制器注冊(cè)與組網(wǎng)機(jī)制

在控制器初始化階段控制器需向中央服務(wù)器發(fā)送注冊(cè)信息表明身份請(qǐng)求接入網(wǎng)絡(luò).數(shù)據(jù)段中至少包括:自身IP 地址,用于接受消息的端口號(hào)與通訊的使用密鑰.

其中密鑰為中央服務(wù)器與控制器之間約定的加密與解密字符,為保證通訊的安全每一次消息的傳遞都應(yīng)使用密鑰,出于對(duì)時(shí)效性與安全性的考慮還在加密字段中加入了時(shí)間戳,在加密與解密的兩次結(jié)果中時(shí)間間隔過長(zhǎng)也應(yīng)視為異常信息.

當(dāng)控制器第一次注冊(cè)時(shí)(即服務(wù)器內(nèi)沒有該控制器記錄)視為新入網(wǎng)控制器.中央服務(wù)器會(huì)為其分配一個(gè)ID 響應(yīng)給控制器,同時(shí)在中央數(shù)據(jù)庫生成連接記錄,并將該控制器加入心跳監(jiān)聽序列中.

當(dāng)注冊(cè)完成后控制器陸續(xù)會(huì)將它所在內(nèi)網(wǎng)中新加入的ZigBee 節(jié)點(diǎn)信息發(fā)送至服務(wù)器,此時(shí)消息數(shù)據(jù)段中包括控制器ID 節(jié)點(diǎn)GlobalID 和節(jié)點(diǎn)信息.在服務(wù)器將新增ZigBee 節(jié)點(diǎn)的數(shù)據(jù)同步完成后該網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)即可正常使用.

順利完成第一次注冊(cè)后控制器會(huì)在本地持久化控制器ID,當(dāng)控制器重新啟動(dòng)再次進(jìn)行注冊(cè)任務(wù)時(shí)會(huì)攜帶控制器ID 表明身份重新激活網(wǎng)絡(luò)連接.當(dāng)控制器各項(xiàng)信息需要更新時(shí)便可使用重新注冊(cè)的方式.

3.3 控制器與中央服務(wù)器之間的心跳機(jī)制

控制器注冊(cè)完成之后會(huì)周期性的向中央服務(wù)器發(fā)送心跳包,服務(wù)器會(huì)集中管理并監(jiān)聽所有ZigBee 網(wǎng)絡(luò)的心跳[12].本文的設(shè)計(jì)中使用了redis[13,14]中SortedSet結(jié)構(gòu)集中管理心跳記錄,成員分?jǐn)?shù)為最近一次心跳的時(shí)間戳.當(dāng)集合中成員數(shù)量大于64 時(shí)SortedSet 同時(shí)使用了Hash 和Skiplist[15]兩種設(shè)計(jì)實(shí)現(xiàn),其范圍查找操作復(fù)雜度一般為O(log(N)+M)(N為有序集的基數(shù),M為被結(jié)果集的基數(shù)).使用范圍查找在集合中成員分?jǐn)?shù)小于當(dāng)前時(shí)間戳與約定超時(shí)時(shí)間的差所產(chǎn)生的結(jié)果集即可認(rèn)為是心跳已超時(shí)的連接.服務(wù)端將會(huì)對(duì)結(jié)果集內(nèi)的控制器發(fā)送存活確認(rèn)消息,當(dāng)消息響應(yīng)異常時(shí)可視為連接中斷,更改控制器及屬于該控制器網(wǎng)絡(luò)中所有節(jié)點(diǎn)的連接狀態(tài)并執(zhí)行相應(yīng)的離線異常處理機(jī)制.

3.4 人機(jī)接口設(shè)計(jì)思路

系統(tǒng)內(nèi)針對(duì)用戶的查詢與控制操作都通過訪問中央服務(wù)器所提供的Web 服務(wù)實(shí)現(xiàn).用戶可通過使用瀏覽器或手機(jī)app 等多種互聯(lián)網(wǎng)手段向服務(wù)器發(fā)送請(qǐng)求,服務(wù)端最終會(huì)將用戶的行為翻譯成節(jié)點(diǎn)GlobalID 與操作碼的形式.通過GlobalID 查詢數(shù)據(jù)庫,如果是控制信息將獲取節(jié)點(diǎn)所在內(nèi)網(wǎng)的IP 地址,再由服務(wù)端與指定的ZigBee 網(wǎng)絡(luò)進(jìn)行通訊.

4 簡(jiǎn)單測(cè)試系統(tǒng)的搭建

為驗(yàn)證系統(tǒng)可行性,利用有限的硬件資源搭建如下測(cè)試系統(tǒng):

系統(tǒng)中央服務(wù)器采用阿里云輕量級(jí)應(yīng)用服務(wù)器:1 核CPU、2 GB 內(nèi)存、40 GB 固態(tài)硬盤、峰值帶寬1 Mbps、操作系統(tǒng)為CentOS 7.3 版本、提供獨(dú)立公網(wǎng)IP 與域名解析功能.在服務(wù)器內(nèi)使用Redis 3.0 搭配MySQL 5.7 版本作為系統(tǒng)中央數(shù)據(jù)庫.后端代碼主要由Java 語言編寫,所有針對(duì)處理用戶http 請(qǐng)求的服務(wù)均使用了Tomcat 服務(wù)器.網(wǎng)站的入口使用Nginx 作為反向代理服務(wù)器用于匹配并分發(fā)不同類型的請(qǐng)求.

內(nèi)網(wǎng)控制器由Java 語言編寫,并只依賴于Java 虛擬機(jī),便于移植.為驗(yàn)證存在多個(gè)內(nèi)網(wǎng)控制器時(shí)系統(tǒng)的運(yùn)行狀態(tài),使用VMware 啟動(dòng)10 臺(tái)虛擬機(jī)作為內(nèi)網(wǎng)控制器,運(yùn)行環(huán)境為CentOS7.3,利用花生殼內(nèi)網(wǎng)穿透、端口映射軟件將10 臺(tái)虛擬機(jī)與公網(wǎng)相連.個(gè)人電腦與協(xié)調(diào)器通過串口相連,為解決多個(gè)虛擬機(jī)無法同時(shí)訪問一個(gè)串口的問題,編寫腳本進(jìn)行串口收發(fā)再與虛擬機(jī)進(jìn)行通訊起到模擬相連的作用.雖然多個(gè)控制器是與同一個(gè)ZigBee 網(wǎng)絡(luò)相連,但由于相互之間網(wǎng)絡(luò)地址不同,數(shù)據(jù)也不同步,即可視為多個(gè)網(wǎng)絡(luò).

系統(tǒng)中協(xié)調(diào)器與終端均使用CC2530 芯片,協(xié)議棧版本為TI-Z-Stack 2007.網(wǎng)絡(luò)內(nèi)有一個(gè)協(xié)調(diào)器搭配37 枚終端,部分終端搭載了超聲波傳感器或溫濕度傳感器.

在整個(gè)測(cè)試過程中,系統(tǒng)能夠自行處理任意ZigBee 節(jié)點(diǎn)層面和內(nèi)網(wǎng)控制器層面的接入與離線情況,運(yùn)行穩(wěn)定魯棒性強(qiáng).通過訪問中

央服務(wù)器可實(shí)時(shí)查詢?nèi)我夤?jié)點(diǎn)上傳感器的測(cè)量值,針對(duì)不同內(nèi)網(wǎng)之間實(shí)際相同節(jié)點(diǎn)的數(shù)據(jù)查詢極少出現(xiàn)不同步狀況.通過http 請(qǐng)求的方式對(duì)節(jié)點(diǎn)上LED 小燈的控制信息在當(dāng)前測(cè)試環(huán)境下操作延遲一般在3 秒內(nèi)即可完成響應(yīng),當(dāng)對(duì)于任意一個(gè)網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)下達(dá)控制信息后,其余9 個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)信息均能在不超過兩個(gè)節(jié)點(diǎn)心跳的時(shí)間內(nèi)同步至中央服務(wù)器.

5 結(jié)束語

本文提出一種通過搭建互聯(lián)網(wǎng)服務(wù)器的方式來集中管理多個(gè)ZigBee 網(wǎng)絡(luò)的設(shè)計(jì)方案.所有節(jié)點(diǎn)的數(shù)據(jù)集中存儲(chǔ)便于訪問,同時(shí)可對(duì)系統(tǒng)內(nèi)任意節(jié)點(diǎn)實(shí)現(xiàn)精準(zhǔn)控制與狀態(tài)信息的獲取.各個(gè)ZigBee 網(wǎng)絡(luò)之間的設(shè)計(jì)不存在耦合,在不同業(yè)務(wù)背景下應(yīng)用時(shí)不需要更改底層實(shí)現(xiàn),系統(tǒng)擴(kuò)展性強(qiáng).接下來的工作中需重點(diǎn)關(guān)注ZigBee 網(wǎng)絡(luò)中對(duì)控制指令執(zhí)行的可靠性問題,完善各類異常處理機(jī)制.并針對(duì)系統(tǒng)各個(gè)模塊的性能進(jìn)行更多的測(cè)試工作.

猜你喜歡
指令信息
聽我指令:大催眠術(shù)
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
殺毒軟件中指令虛擬機(jī)的脆弱性分析
展會(huì)信息
一種基于滑窗的余度指令判別算法
坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲成a人片77777在线播放| 永久成人无码激情视频免费| 国产黄在线免费观看| 99久久性生片| 日韩 欧美 国产 精品 综合| 中文无码精品A∨在线观看不卡| 日韩无码黄色| 国产一区二区三区精品久久呦| 中文字幕在线不卡视频| 欧美综合区自拍亚洲综合天堂| 亚洲成a人片| 国产亚洲精品自在线| 日韩免费毛片视频| 国产小视频a在线观看| 成年午夜精品久久精品| 亚洲人成网址| 一级成人a毛片免费播放| 三级毛片在线播放| 欧美中文字幕在线播放| 色噜噜综合网| 99热这里只有精品2| 亚洲嫩模喷白浆| lhav亚洲精品| 国产精品久久久久无码网站| 欧美在线综合视频| 在线看片免费人成视久网下载| 色综合天天操| 77777亚洲午夜久久多人| 亚洲第一视频免费在线| 伊人婷婷色香五月综合缴缴情| 欧美日韩免费在线视频| 18禁黄无遮挡免费动漫网站| 九九热视频精品在线| 国产精品网址在线观看你懂的| 国产在线啪| 欧美视频在线不卡| 国产va在线观看免费| 国产美女丝袜高潮| 国产人成乱码视频免费观看| 国产黄在线免费观看| 国产精品无码影视久久久久久久| 美女毛片在线| 91精品久久久无码中文字幕vr| 亚洲最新地址| 欧美综合区自拍亚洲综合天堂| 在线一级毛片| 国产对白刺激真实精品91| 久久精品娱乐亚洲领先| 91精品国产自产在线老师啪l| 高清欧美性猛交XXXX黑人猛交| 亚洲婷婷丁香| 中文字幕久久亚洲一区| 中国一级特黄大片在线观看| 国产成人精品视频一区视频二区| 99精品福利视频| 成人久久精品一区二区三区| 国产精品私拍99pans大尺度| 国产精品亚欧美一区二区| 狠狠色噜噜狠狠狠狠色综合久 | 看看一级毛片| 国产欧美日韩91| 中文字幕在线看| 国产精品久久久久久久久| 久久精品视频一| 亚洲欧美一区在线| 国产一级裸网站| 黄色污网站在线观看| 久久久精品无码一二三区| 青青操视频在线| 色有码无码视频| 亚洲人成影视在线观看| 成人免费视频一区二区三区| 69免费在线视频| 国产精品第页| 色成人综合| 午夜久久影院| 亚洲制服丝袜第一页| 国产精品自在在线午夜区app| 一级福利视频| 国产黄在线免费观看| 欧美精品aⅴ在线视频| 香蕉视频在线观看www|