亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Unix > 正文

UNIX網(wǎng)絡(luò)編程讀書筆記:基本SCTP套接口編程

2024-06-28 13:27:26
字體:
供稿:網(wǎng)友
UNIX網(wǎng)絡(luò)編程讀書筆記:基本SCTP套接口編程紅心概述

SCTP是一個(gè)較新的傳輸協(xié)議,于2000年在IETF得到標(biāo)準(zhǔn)化(TCP是在1981年標(biāo)準(zhǔn)化的)。它最初是為滿足不斷增長的ip電話市場設(shè)計(jì)的;具體地說,就是穿越因特網(wǎng)傳輸電話信令。

SCTP是一個(gè)可靠的面向消息的協(xié)議,在端點(diǎn)之間提供多個(gè)流,并為多宿提供傳輸級(jí)支持。

盡管SCTP和TCP之間存在一些本質(zhì)性的差別,然而SCTP的一到一(one-to-one)接口與TCP提供的應(yīng)用接口非常接近。這一點(diǎn)允許輕而易舉地移植應(yīng)用程序,不過沒法使用SCTP的某些高級(jí)特性。SCTP的一到多(one-to-many)接口提供了這些特性的完全支持,然而可能需要費(fèi)時(shí)費(fèi)力地重新編寫已有的應(yīng)用程序。對于使用SCTP開發(fā)的大多數(shù)新的應(yīng)用程序而言,推薦使用一到多接口。

紅心接口模型

SCTP套接口分為兩類:一到一套接口和一到多套接口。一到一套接口相應(yīng)于單獨(dú)一個(gè)SCTP關(guān)聯(lián)。這種映射類似于TCP套接口和TCP連接的對應(yīng)關(guān)系。對于一到多套接口,一個(gè)給定套接口上可以同時(shí)有多個(gè)活躍的SCTP關(guān)聯(lián)。這種映射類似于綁定了某個(gè)特定端口的UDP套接口能夠從若干個(gè)同時(shí)在發(fā)送數(shù)據(jù)的遠(yuǎn)地UDP端點(diǎn)接收彼此交錯(cuò)的數(shù)據(jù)報(bào)。

燈泡一到一形式

開發(fā)一到一形式的目的是方便移植現(xiàn)有TCP應(yīng)用程序到SCTP上。它提供的模型與http://www.CUOXin.com/nufangrensheng/p/3586562.html中介紹的幾乎一樣。以下是兩者之間必須搞清的差異,特別是在把現(xiàn)有TCP應(yīng)用程序移植到SCTP的這種形式上時(shí):

(1)任何TCP套接口選項(xiàng)必須轉(zhuǎn)換成等效的SCTP套接口選項(xiàng)。兩個(gè)較常見的選項(xiàng)是TCP_NODELAY和TCP_MAXSEG,它們應(yīng)該映射成SCTP_NODELAY和SCTP_MAXSEG。

(2)SCTP保存消息邊界,因而應(yīng)用層消息邊界并非必需。

(3)有些TCP應(yīng)用進(jìn)程使用半關(guān)閉來告知對端去往它的數(shù)據(jù)流已經(jīng)結(jié)束。移植這樣的應(yīng)用協(xié)議SCTP需要額外重寫應(yīng)用層協(xié)議,讓應(yīng)用進(jìn)程在應(yīng)用數(shù)據(jù)流中告知對端該傳輸數(shù)據(jù)流已經(jīng)結(jié)束。

(4)send函數(shù)能夠以普通方式使用。

下圖為SCTP一到一形式的套接口典型用法的時(shí)間線圖:

image

一到一式SCTP套接口是一個(gè)類型為SOCK_STREAM,協(xié)議為IPPROTO_SCTP的網(wǎng)際套接口(即協(xié)議族為AF_INET或AF_INET6)。

燈泡一到多形式

一到多形式給應(yīng)用程序開發(fā)人員提供這樣的能力:編寫的服務(wù)器程序無需管理大量的套接口描述字。單個(gè)套接口描述字將代表多個(gè)關(guān)聯(lián),就像一個(gè)UDP套接口能夠從多個(gè)客戶接收消息那樣。在一到多式套接口上,用于標(biāo)識(shí)單個(gè)關(guān)聯(lián)的是一個(gè)關(guān)聯(lián)標(biāo)識(shí)(association identifier)。關(guān)聯(lián)標(biāo)識(shí)是一個(gè)類型為sctp_assoc_t的值,通常是一個(gè)整數(shù)。它是一個(gè)不透明的值;應(yīng)用進(jìn)程不應(yīng)該使用不是由內(nèi)核早先給予的任何關(guān)聯(lián)標(biāo)識(shí)。一到多套接口的用戶應(yīng)該掌握以下幾點(diǎn):

(1)當(dāng)一個(gè)客戶關(guān)閉其關(guān)聯(lián)時(shí),其服務(wù)器也將自動(dòng)關(guān)閉同一個(gè)關(guān)聯(lián),服務(wù)器主機(jī)內(nèi)核中不再有該關(guān)聯(lián)的狀態(tài)。

(2)可用于致使在四路握手的第3個(gè)或第4個(gè)分組中捎帶用戶數(shù)據(jù)的唯一辦法就是使用一到多形式。

(3)對于一個(gè)與它還沒有關(guān)聯(lián)存在的IP地址,任何以它為目的地址的sendto、sendmsg或sctp_sendmsg將導(dǎo)致嘗試主動(dòng)打開,從而(如果成功的話)建立一個(gè)與該地址的新關(guān)聯(lián)。這種行為的發(fā)生與執(zhí)行分組發(fā)送的這個(gè)應(yīng)用進(jìn)程是否曾調(diào)用過listen函數(shù)以請求被動(dòng)打開無關(guān)。

(4)用戶必須使用sendto、sendmsg或sctp_sendmsg這3個(gè)分組發(fā)送函數(shù),而不能使用send或write這2個(gè)分組發(fā)送函數(shù),除非已經(jīng)使用sctp_peeloff函數(shù)從一個(gè)一到多形式套接口剝離出一個(gè)一到一式套接口。

(5)任何時(shí)候調(diào)用其中任何一個(gè)分組發(fā)送函數(shù)時(shí),所用的宿地址是由系統(tǒng)在關(guān)聯(lián)建立階段選定的主宿地址,除非調(diào)用者在所提供的sctp_sndrcvinfo結(jié)構(gòu)中設(shè)置了MSG_ADDR_OVER標(biāo)志。為了提供這個(gè)結(jié)構(gòu),調(diào)用者必須使用伴隨輔助數(shù)據(jù)的sendmsg函數(shù),或者是sctp_sendmsg函數(shù)。

(6)關(guān)聯(lián)事件可能被開啟,因此要是應(yīng)用進(jìn)程不希望接收到這些事件,就得使用SCTP_EVENTS套接口選項(xiàng)顯式禁止它們。缺省情況下開啟的唯一事件是sctp_data_io_event,它給recvmsg和sctp_recvmsg調(diào)用提供輔助數(shù)據(jù)。這個(gè)缺省設(shè)置同時(shí)適用于一到一形式和一到多形式。

下圖為一到多套接口典型用法的時(shí)間線圖:

無標(biāo)題

一到多式SCTP套接口是一個(gè)類型為SOCK_SEQPACKET,協(xié)議為IPPROTO_SCTP的網(wǎng)際套接口(即協(xié)議族為AF_INET或AF_INET6)。

在SCTP中,一個(gè)一到多套接口也能夠結(jié)合使用sctp_peeloff函數(shù)以允許組合迭代服務(wù)器模型和并發(fā)服務(wù)器模型:

(1)sctp_peeloff函數(shù)用于從一個(gè)一到多套接口剝離出某個(gè)特定的關(guān)聯(lián)(例如一個(gè)長期持續(xù)的會(huì)話),獨(dú)自構(gòu)成一個(gè)一到一式套接口。

(2)剝離出的關(guān)聯(lián)所在的一到一套接口隨后就可以遣送給它自己的線程,或者遣送給為它派生的進(jìn)程(就像在并發(fā)模型中那樣)。

(3)與此同時(shí),主線程繼續(xù)在原來的套接口上以迭代方式處理來自任何剩余關(guān)聯(lián)的消息。

紅心sctp_bindx函數(shù)

SCTP服務(wù)器可能希望捆綁與所在主機(jī)系統(tǒng)相關(guān)IP地址的一個(gè)子集。傳統(tǒng)意義上,TCP服務(wù)器或UDP服務(wù)器要么捆綁所在主機(jī)的某個(gè)地址,要么捆綁所有地址,而不能捆綁這些地址的一個(gè)子集。sctp_bindx函數(shù)允許SCTP套接口捆綁一個(gè)特定的地址子集。

#include <netinet/sctp.h>int sctp_bindx(int sockfd, const struct sockaddr *addrs, int addrcnt, int flags);返回值:0——成功,-1——出錯(cuò)

sockfd是由socket函數(shù)返回的套接口描述字。

addrs是一個(gè)指向緊湊的地址清單的指針。每個(gè)套接口地址結(jié)構(gòu)緊跟在前一個(gè)套接口地址結(jié)構(gòu)之后,中間沒有填充字節(jié)。如下圖所示:

image

傳遞給sctp_bindx的地址個(gè)數(shù)由addrcnt參數(shù)指定。

flags參數(shù)指導(dǎo)sctp_bindx調(diào)用執(zhí)行如下表所示的兩種行為之一:

flags說明
SCTP_BINDX_ADD_ADDR SCTP_BINDX_REM_ADDR把地址加入套接口中 從套接口中移除地址

sctp_bindx既可用于已綁定的套接口,也可用于未綁定的套接口。

對于未綁定的套接口,sctp_bindx調(diào)用將把給定的地址集合捆綁到其上。對于已綁定的套接口,若指定SCTP_BINDX_ADD_ADDR則把額外的地址加入到套接口描述字,若指定SCTP_BINDX_REM_ADDR則從套接口描述字的已加入地址中移除給定的地址。

如果在一個(gè)監(jiān)聽套接口上執(zhí)行sctp_bindx調(diào)用,那么將來產(chǎn)生的關(guān)聯(lián)將使用新的地址配置;已經(jīng)存在的關(guān)聯(lián)不受影響。

傳遞給sctp_bindx的兩個(gè)標(biāo)志是互斥的;如果同時(shí)指定,調(diào)用就會(huì)失敗,返回錯(cuò)誤碼為EINVAL。

所有套接口地址結(jié)構(gòu)的端口號(hào)必須相同,而且必須與已經(jīng)綁定的端口號(hào)相匹配;否則調(diào)用就會(huì)失敗,返回EINVAL錯(cuò)誤碼。

紅心sctp_connectx函數(shù)
#include <netinet/sctp.h>int sctp_connectx(int sockfd, const struct sockaddr *addrs, int addrcnt);返回值:0——成功,-1——出錯(cuò)

sctp_connectx函數(shù)用于連接到一個(gè)多宿對端主機(jī)。該函數(shù)在addrs參數(shù)中指定addrcnt個(gè)全部屬于同一對端的地址。addrs參數(shù)是一個(gè)緊湊的地址列表。SCTP棧使用其中一個(gè)或多個(gè)地址建立關(guān)聯(lián)。列在addrs參數(shù)中的所有地址都被認(rèn)為是有效的經(jīng)過證實(shí)的地址。

紅心sctp_getpaddrs函數(shù)

getpeername函數(shù)不是為支持多宿概念的傳輸協(xié)議設(shè)計(jì)的;當(dāng)用于SCTP時(shí)它僅僅返回主宿地址。如果需要知道對端的所有地址,那么應(yīng)該使用sctp_getpaddrs函數(shù)。

#include <netinet/sctp.h>int sctp_getpaddrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);返回值:存放在addrs中的對端地址數(shù),-1——出錯(cuò)

sockfd參數(shù)是由socket函數(shù)返回的套接口描述字。

id參數(shù)對于一到多式套接口是它的關(guān)聯(lián)標(biāo)識(shí);對于一到一套接口則被忽略。

addrs參數(shù)是一個(gè)地址指針,而地址內(nèi)容是由本函數(shù)動(dòng)態(tài)分配并填入的緊湊的地址清單。用完之后,調(diào)用者使用sctp_freepaddrs釋放所分配的資源。

紅心sctp_freepaddrs函數(shù)

sctp_freepaddrs函數(shù)釋放由sctp_getpaddrs函數(shù)分配的資源。

#include <netinet/sctp.h>void sctp_freepaddrs(struct sockaddr **addrs);

addrs參數(shù)是指向由sctp_getpaddrs返回的地址數(shù)組的指針。

紅心sctp_getladdrs函數(shù)

sctp_getladdrs函數(shù)用于獲取屬于某個(gè)關(guān)聯(lián)的本地地址。當(dāng)需要知道一個(gè)本地端點(diǎn)究竟在使用哪些本地地址時(shí)(它們可能是主機(jī)所有地址的某個(gè)子集),可以調(diào)用本函數(shù)。

#include <netinet/sctp.h>int sctp_getladdrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);返回值:存放在addrs中的本端地址數(shù),-1——出錯(cuò)

sockfd參數(shù)是由socket函數(shù)返回的套接口描述字。

id參數(shù)對于一到多式套接口是它的關(guān)聯(lián)標(biāo)識(shí);對于一到一套接口則被忽略。

addrs參數(shù)是一個(gè)地址指針,而地址內(nèi)容是由本函數(shù)動(dòng)態(tài)分配并填入的緊湊的地址清單。用完之后,調(diào)用者使用sctp_freeladdrs釋放所分配的資源。

紅心sctp_freeladdrs函數(shù)

sctp_freeladdrs函數(shù)釋放由sctp_getladdrs函數(shù)分配的資源。

#include <netinet/sctp.h>void sctp_freeladdrs(struct sockaddr **addrs);

addrs參數(shù)是指向由sctp_getladdrs返回的地址數(shù)組的指針。

紅心sctp_sendmsg函數(shù)
ssize_t sctp_sendmsg(int sockfd, const void *msg, size_t msgsz,                        const struct sockaddr *to, socklen_t tolen,                        uint32_t ppid, uint32_t flags, uint16_t stream,                        uint32_t timetolive, uint32_t context);返回值:寫出的字節(jié)數(shù),-1——出錯(cuò)

sockfd參數(shù)是由socket函數(shù)返回的套接口描述字。

msg參數(shù)指向一個(gè)msgsz字節(jié)長度的緩沖區(qū),其中內(nèi)容將發(fā)送給對端端點(diǎn)to。tolen參數(shù)指定存放在to中的地址長度。

ppid參數(shù)指定將隨數(shù)據(jù)塊傳遞的凈荷協(xié)議標(biāo)識(shí)符。

flags參數(shù)將傳遞給SCTP棧,用以標(biāo)識(shí)任何SCTP選項(xiàng)。

調(diào)用者在stream參數(shù)中指定一個(gè)SCTP流號(hào)。

調(diào)用者可以在timetolive參數(shù)中以毫秒為單位指定消息的生命期,其中0表示無限生命期。

context參數(shù)用于指定可能有的用戶上下文。

紅心sctp_recvmsg函數(shù)
ssize_t sctp_recvmsg(int sockfd, void *msg, size_t msgsz,                        struct sockaddr *from, socklen_t *fromlen,                        struct sctp_sndrcvinfo *sinfo, int *msg_flags);返回值:讀入的字節(jié)數(shù),-1——出錯(cuò)

注意,如果應(yīng)用進(jìn)程想要接收sctp_sndrcvinfo信息,那么必須使用SCTP_EVENTS套接口選項(xiàng)預(yù)定sctp_data_io_event(缺省情況下開啟)。

本函數(shù)調(diào)用返回時(shí),msg參數(shù)所指緩沖區(qū)中被填入最多msgsz字節(jié)數(shù)的數(shù)據(jù)。消息發(fā)送者的地址存放在from參數(shù)中,地址結(jié)構(gòu)大小存放在fromlen參數(shù)中。msg_flags參數(shù)中存放可能有的消息標(biāo)志。注意,如果實(shí)現(xiàn)把sctp_recvmsg映射成recvmsg函數(shù),那么recvmsg的flags參數(shù)被設(shè)為0.

紅心sctp_opt_info函數(shù)

sctp_opt_info函數(shù)是為getsockopt函數(shù)無法支持SCTP的那些實(shí)現(xiàn)提供的。

int sctp_opt_info(int sockfd, sctp_assoc_t assoc_id, int opt,                        void *arg, socklen_t *siz);返回:0——成功,-1——出錯(cuò)

sockfd參數(shù)給出獲取其上套接口選項(xiàng)信息的套接口描述字。

assoc_id參數(shù)給出可能存在的關(guān)聯(lián)標(biāo)識(shí)。

opt參數(shù)是SCTP的套接口選項(xiàng)。

arg給出套接口選項(xiàng)參數(shù)。

siz是一個(gè)socklen_t類型指針,用于存放參數(shù)的大小。

紅心sctp_peeloff函數(shù)
int sctp_peeloff(int sockfd, sctp_assoc_t id);返回:新的套接口描述字——成功,-1——出錯(cuò)

其語義很像帶有一個(gè)額外參數(shù)的accept函數(shù)。調(diào)用者把一到多式套接口的sockfd和待抽取的關(guān)聯(lián)標(biāo)識(shí)id傳遞給函數(shù)調(diào)用。調(diào)用結(jié)束時(shí)將返回一個(gè)新的套接口描述字,它是一個(gè)與所請求關(guān)聯(lián)對應(yīng)的一到一式套接口描述字。

紅心通知

SCTP為應(yīng)用程序提供了多種可用的通知。SCTP用戶可以經(jīng)由這些通知追蹤相關(guān)關(guān)聯(lián)的狀態(tài)。通知傳遞的是傳輸級(jí)的事件,包括網(wǎng)絡(luò)狀態(tài)變動(dòng)、關(guān)聯(lián)啟動(dòng)、遠(yuǎn)地運(yùn)作錯(cuò)誤以及消息不可遞送。不論是一到一式接口還是一到多式接口,缺省情況下除sctp_data_io_event以外的所有事件都是被禁止的。

使用SCTP_EVENTS套接口選項(xiàng)可以預(yù)訂8個(gè)事件。其中7個(gè)事件產(chǎn)生稱為通知(notification)的額外數(shù)據(jù),通知本身可經(jīng)由普通的套接口描述字獲取。當(dāng)產(chǎn)生它們的事件發(fā)生時(shí),這些通知內(nèi)嵌在數(shù)據(jù)中加入到套接口描述字。在預(yù)訂相應(yīng)通知的前提下讀取某個(gè)套接口時(shí),用戶數(shù)據(jù)和通知將在套接口緩沖區(qū)中交錯(cuò)出現(xiàn)。為了區(qū)分來自對端的數(shù)據(jù)和由事件產(chǎn)生的通知,用戶應(yīng)該使用recvmsg函數(shù)或sctp_recvmsg函數(shù)。如果返回的數(shù)據(jù)是一個(gè)事件通知,那么這兩個(gè)函數(shù)返回的msg_flags參數(shù)將含有MSG_NOTIFICATION標(biāo)志。這個(gè)標(biāo)志告訴應(yīng)用進(jìn)程剛剛讀入的消息不是來自對端的數(shù)據(jù),而是來自本地SCTP棧的一個(gè)通知。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精华7777777| 91麻豆精品国产91久久久久久| 欧美猛男做受videos| 国外av在线| 亚洲av无码一区二区二三区| 国产精自产拍久久久久久| 黄色国产精品一区二区三区| 久热这里有精品| 国产成人免费观看| 欧美日韩国产一区| 九七电影韩国女主播在线观看| 久久久久成人网| 亚洲在线免费播放| 亚洲成年人视频| 亚洲欧洲成人| 国产精品福利在线观看播放| 91午夜在线播放| 性做久久久久久免费观看欧美| 亚洲激情一区二区三区| 高清国语自产在线观看| 国产一区二区电影在线观看| 欧美日韩一区二区电影| 欧美在线视频在线播放完整版免费观看| 天天操中文字幕| 国产模特精品视频久久久久| 色偷偷久久一区二区三区| xxxcom在线观看| 日本成年免费网站| 欧美国产日韩精品免费观看| 欧美a一级片| 欧美熟妇另类久久久久久多毛| 强开小嫩苞一区二区三区网站| 人人网欧美视频| 阳光姐妹淘韩国版| 精品福利视频导航大全| 色视频www在线播放国产人成| 一区二区三区四区欧美| 中文字幕第66页| 亚洲色图狠狠干| 男人的天堂视频在线| 水蜜桃在线免费观看| 18欧美乱大交| 国产精品一区免费在线观看| 欧美高清视频手机在在线| 毛片电影在线| 熟女熟妇伦久久影院毛片一区二区| 性欧美精品xxxx| 国产精品国模大尺度视频| 日本伊人午夜精品| 日韩免费一区二区三区| 国产亚洲美州欧州综合国| 精品99又大又爽又硬少妇毛片| 亚洲区中文字幕| 欧美性猛交xxxx乱大交3| 手机精品视频在线观看| 亚洲电影网站| 欧美日韩国产亚洲一区| 波多野结衣久草一区| 在线观看免费视频综合| 国产精品色悠悠| 久久精品国产亚洲精品| 欧美视频免费看| 国模一区二区| 好男人香蕉影院| 日韩久久久久久久久久久久| 国产亚洲精品熟女国产成人| 在线观看日批视频| 日韩电影在线免费| 99久久免费国产精品| 韩剧1988在线观看免费完整版| 亚洲天堂在线视频观看| 国产视频第一页| 国产91精品一区| av大全在线观看| 欧美特黄aaaaaaaa大片| 激情aⅴ欧美一区二区欲海潮| 国产一二三四在线| 一卡二卡3卡四卡高清精品视频| 国产自产v一区二区三区c| 狠狠操图片视频| 亚洲美女屁股眼交| 亚洲国产图片| 日韩在线中文字幕视频| av资源在线看| 精品亚洲va在线va天堂资源站| 日韩欧美亚洲在线| 亚洲精品一区二区久| 国产精品国内视频| 久久精品国产2020观看福利| 国产一区自拍视频| 国产精品欧美韩国日本久久| 久久婷婷激情| 无遮挡的视频在线观看| 亚洲乱码日产精品bd在线观看| 韩国一区二区三区美女美女秀| 老色鬼精品视频在线观看播放| 777国产偷窥盗摄精品视频| 国产精品久久久久久久无码| 成人福利免费观看| 欧美男男激情freegay| 欧美日韩中文国产一区发布| 亚洲色图在线视频| 国产91精品入口17c| 国产一级中文字幕| 巨胸喷奶水www久久久| 亚洲成人中文字幕在线| 91精品国产综合久久香蕉| 国产aⅴ爽av久久久久成人| 久久精品二区| 日本福利视频一区| 在线视频观看一区二区| 国产毛片一区二区| 狠狠干夜夜草| 免费网站永久免费观看| 玛丽玛丽电影原版免费观看1977| 国产精品99久久久久久人| 九九热免费在线视频| 天天摸天天舔天天操| 性欧美gay| 18欧美乱大交| 日本在线视频中文字幕| 久久人91精品久久久久久不卡| 日本欧美视频| 日本最新中文字幕| 91国内精品白嫩初高生| www.91视频com| 天天av综合| 姝姝窝人体www聚色窝| 欧美成人精品欧美一级乱黄| 国产精品乱码久久久| 亚洲va在线| 成人久久18免费网站漫画| 精品一区二区在线观看| 粉嫩高清一区二区三区精品视频| 亚洲第一区第一页| 亚洲第一页视频| 国产宾馆实践打屁股91| 日本天码aⅴ片在线电影网站| 你懂的视频一区二区| 最近免费观看高清韩国日本大全| 亚洲天堂一级片| 日韩女优在线视频| 久久riav二区三区| 不卡视频免费播放| 粉嫩av四季av绯色av第一区| 国产精品羞羞答答xxdd| 国产在线视频一区二区| 欧美日韩精品一区二区三区视频| 国产日韩一区二区在线| 污网站免费观看| 少妇人妻大乳在线视频| 欧美大奶一区二区| 国产三级精品三级观看| 久久视频在线观看免费| 国内精品400部情侣激情| 成人午夜在线视频一区| 日韩福利视频网| 日本vs亚洲vs韩国一区三区二区| 国产一区二区三区在线观看免费视频| 午夜电影福利网| 亚洲精品色午夜无码专区日韩| 91视频成人免费| 中文字幕不卡一区| jizz久久精品永久免费| 国产不卡一区二区三区在线观看| 成人欧美一区二区三区视频| japan乱配videos老少配| free性丰满69性欧美| 91精品网站在线观看| 黄网站app在线观看大全免费视频| 97视频色精品| 美女航空一级毛片在线播放| 成人一区二区三区视频| 亚洲国产成人久久综合一区| 日本一区二区三区高清不卡| 欧美暴力调教| 曰本大片免费观看视频| 色嗨嗨av一区二区三区| 久久99在线观看| 国产精品丝袜xxxxxxx| 波多野结衣在线aⅴ中文字幕不卡| 国产成人精品www牛牛影视| 国产人成视频在线观看| 4444kk亚洲人成电影在线| 91在线视频播放| 免费观看日批视频| 深夜福利视频在线观看| 99re这里只有精品视频首页| 九九热在线观看视频| 女厕嘘嘘一区二区在线播放| www.免费黄色| 成人精品鲁一区一区二区| 成人午夜av电影| 色哟哟一一国产精品| aaa亚洲精品| 久久一区二区视频| 日韩欧中文字幕| 在线亚洲观看| 超碰97成人| 午夜精品久久久久久久99老熟妇| 欧美一区二区大胆人体摄影专业网站| 一区二区三区欧美在线| 相泽南亚洲一区二区在线播放| 人人精品视频| 日韩一区免费| 成人妇女免费播放久久久| 亚洲情趣在线观看| 日韩精品极品在线观看播放免费视频| 日韩电影在线观看电影| 成人小视频在线观看免费| 97在线观看免费观看| 日本人妻熟妇久久久久久| 国产日韩欧美视频| 中文字幕日韩一区二区三区不卡| 岛国精品一区二区三区| 黄色av一区二区| 白嫩白嫩国产精品| 欧美日韩一区二区视频在线| 色香蕉久久蜜桃| 红桃一区二区三区| av电影天堂一区二区在线| 韩国无码一区二区三区精品| 乱一区二区av| 欧美视频一区二区在线观看| 亚洲av综合色区| eeuss影院www在线| 精品视频中文字幕| 亚洲成年人在线观看| 成年人免费在线观看网站| 亚洲精品一区二区三区影院| 久久久亚洲福利精品午夜| 国产一区二区波多野结衣| 91最新地址在线播放| 黑人性受xxxx黑人xyx性爽| 亚洲最新在线观看| 日本不卡1234视频| 日本黄色网址大全| 久久99精品国产自在现线小黄鸭| 欧美日韩高清在线一区| 欧美极品另类| 在线视频日韩欧美| 欧美国产亚洲另类动漫| 国产特黄一级片| 美女露隐私免费网站| 推川ゆうり中文亚洲二区| 91精品国产一区二区三区蜜臀| www在线观看免费| 国产精品久久久精品a级小说| 国产拍揄自揄精品视频麻豆| 久久精品国产亚洲AV熟女| 精品无码国模私拍视频| 久久国产精品露脸对白| 可骚可骚的黄视频网站| 麻豆精品久久久久久久99蜜桃| 深爱激情久久| 在线播放你懂的| 污污软件在线观看| 欧美成aaa人片免费看| 成人性生交大片免费看网站| 四虎成人影院网址| 日韩欧美国产另类| 91精品国产91久久久久福利| 国产精品区一区二区三区| 18被视频免费观看视频| 亚洲天堂黄色片| 国产精品嫩草影院桃色| 成人在线视频免费看| 久久国产免费观看| 国产视频中文字幕| 欧美女激情福利| 久久久久亚洲av成人毛片韩| 美女一区二区三区视频| 国内成人精品2018免费看| 蜜桃视频在线观看免费视频网站www| 黄色成人在线视频| 亚洲美女搞黄| 国产九色91回来了| 99久久久久久久久| 一本色道久久hezyo无码| 就去色蜜桃综合| 伊人久久大香伊蕉在人线观看热v| 天天影视欧美综合在线观看| 日韩精品一区二区三区中文在线| 丝袜美腿高跟呻吟高潮一区| 日本不卡免费新一二三区| 97av影视网在线观看| 日韩欧美精品一区二区三区经典| 日本特黄一级片| 蜜臀av性久久久久蜜臀aⅴ| 神马国产精品影院av| 中文字幕在线看高清电影| 96sao在线精品免费视频| 欧美一区二区三区免费观看| 国产精品tv| 国产黄色网址在线观看| 国产精品va在线播放我和闺蜜| 精品免费一区二区| 毛片在线免费| 国产一区二区毛片| 国产香蕉精品视频一区二区三区| 欧美激情亚洲精品| 91丨国产丨九色丨pron| 欧美午夜性色大片在线观看| 91中文字幕永久在线| 性中国古装videossex| 欧美大片在线观看一区二区| 欧美一区二区三区不卡视频| 精品一区二区三区影院在线午夜| 国产欧美日韩亚州综合| 国产一区二区麻豆| 国产精品黑丝在线播放| 性综艺节目av在线播放| 中国老头性行为xxxx| 久久久久国产精品免费| 久久久视频免费观看| 国产suv精品一区二区| 上原亚衣av一区二区三区| 亚洲一区有码| 一个人www欧美| 国产欧美亚洲精品a| 欧美日韩国产va另类| 日本一区二区不卡高清更新| 亚洲91精品在线| 色噜噜狠狠色综合网图区| 亚洲偷欧美偷国内偷| 国产在线精品一区二区三区》| 国产无遮挡又黄又爽又色视频| 思热99re视热频这里只精品|