3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDT 最新源码分析(五) -- 网络数据收发

發(fā)布時間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDT 最新源码分析(五) -- 网络数据收发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDT 最新源碼分析 -- 網絡數據收發(fā)

  • 從接口實現看 UDT 網絡收發(fā)
    • UDT 發(fā)送 send / sendmsg / sendfile
    • UDT 接收 recv /recvmsg /recvfile
  • 從內部實現看 UDT 網絡收發(fā)
    • UDT 發(fā)送工作線程
    • UDT 接收工作線程

從接口實現看 UDT 網絡收發(fā)

從對外的接口實現方法來看,網絡收發(fā)過程實際上是對 m_pSndBuffer 和 m_pRcvBuffer 進行操作,而實際的網絡收發(fā)涉及到系統調度,算法實現等問題。簡單來看看代碼。

UDT 發(fā)送 send / sendmsg / sendfile

以 send 為例,外部接口調用send 其實并不是直接發(fā)送到網絡,而是將數據加入發(fā)送的 buffer 中,后續(xù)再通過調度將數據發(fā)送到網絡中去。send 僅僅針對流傳輸模式而言,其他模式不可調用此函數。對于數據包模式,應該調用 sendmsg。

CUDT::send(UDTSOCKET u, const char* buf, int len, int)
-> CUDT::send(const char* data, int len)

int CUDT::send(const char* data, int len) {...if (m_iSndBufSize <= m_pSndBuffer->getCurrBufSize()) //buffer 已滿{// 檢查buffer狀態(tài),等待滿足條件被觸發(fā)。// 檢查網絡連接狀態(tài),以及UDT 是否關閉等狀態(tài)。}int size = (m_iSndBufSize - m_pSndBuffer->getCurrBufSize()) * m_iPayloadSize; //最大可用if (size > len)size = len; //size 為本次需要填充的字節(jié),最大為可用容量// record total time used for sendingif (0 == m_pSndBuffer->getCurrBufSize())m_llSndDurationCounter = CTimer::getTime();// insert the user buffer into the sending listm_pSndBuffer->addBuffer(data, size); //重點代碼,發(fā)送過程其實只是放入buffer// insert this socket to snd list if it is not on the list yetm_pSndQueue->m_pSndUList->update(this, false);if (m_iSndBufSize <= m_pSndBuffer->getCurrBufSize()){// write is not available any mores_UDTUnited.m_EPoll.update_events(m_SocketID, m_sPollID, UDT_EPOLL_OUT, false);}return size; }

sendmsg 與 send 函數有非常多代碼一致,核心代碼基本上沒有變化。sendfile 中 addbuffer 變成 addBufferFromFile,其余基本沒變化。

UDT 接收 recv /recvmsg /recvfile

從接口調用 recv 實際上只是從接收緩沖中取出數據,在獲取數據會檢查當前是否流模式,如果沒數據,或啟動條件喚醒和定時等待等,也會檢查網絡連接是否正常。

int CUDT::recv(char* data, int len) {... if (0 == m_pRcvBuffer->getRcvDataSize()) // buffer 為空{... //等待條件滿足或者超時}int res = m_pRcvBuffer->readBuffer(data, len);if (m_pRcvBuffer->getRcvDataSize() <= 0){// read is not available any mores_UDTUnited.m_EPoll.update_events(m_SocketID, m_sPollID, UDT_EPOLL_IN, false); //刪除}if ((res <= 0) && (m_iRcvTimeOut >= 0))throw CUDTException(6, 3, 0);return res; }

從內部實現看 UDT 網絡收發(fā)

從接口上可以看到,發(fā)送接收僅僅是將數據與buffer進行交互,看不到數據真正進行發(fā)送接收的地方。那么在內部究竟如何實現的呢?在以前的文章分析中已經提到過發(fā)送接收工作線程的概念,在這里再次看看,代碼參考 queue.cpp。

初始化的地方如下,通過調用 m_pSndQueue 和 m_pRcvQueue 調用 init 實現 worker 線程創(chuàng)建:

void CUDTUnited::updateMux(CUDTSocket* s, const sockaddr* addr, const UDPSOCKET* udpsock) {...CMultiplexer m;m.m_iID = s->m_SocketID;m.m_pChannel = new CChannel(s->m_pUDT->m_iIPversion);m.m_pChannel->setSndBufSize(s->m_pUDT->m_iUDPSndBufSize);m.m_pChannel->setRcvBufSize(s->m_pUDT->m_iUDPRcvBufSize);try{if (NULL != udpsock)m.m_pChannel->open(*udpsock);elsem.m_pChannel->open(addr);}catch (CUDTException& e){m.m_pChannel->close();delete m.m_pChannel;throw e;}m.m_pTimer = new CTimer;m.m_pSndQueue = new CSndQueue;m.m_pSndQueue->init(m.m_pChannel, m.m_pTimer);m.m_pRcvQueue = new CRcvQueue;m.m_pRcvQueue->init(32, s->m_pUDT->m_iPayloadSize, m.m_iIPversion, 1024, m.m_pChannel, m.m_pTimer);m_mMultiplexer[m.m_iID] = m; }

UDT 發(fā)送工作線程

發(fā)送線程中主要的變量有 m_pSndUList, m_pChannel, m_pTimer。線程的工作就是不停的檢查 m_pSndUList 中的UDT 實例,取出包,通過 m_pChannel 發(fā)送出去。如果取出的包時發(fā)現未到發(fā)送時間,則通過 m_pTimer sleep 剩余的時間再發(fā)送。

創(chuàng)建線程如下所示:

void CSndQueue::init(CChannel* c, CTimer* t) {m_pChannel = c;m_pTimer = t;m_pSndUList = new CSndUList;m_pSndUList->m_pWindowLock = &m_WindowLock;m_pSndUList->m_pWindowCond = &m_WindowCond;m_pSndUList->m_pTimer = m_pTimer;#ifndef WIN32if (0 != pthread_create(&m_WorkerThread, NULL, CSndQueue::worker, this)){m_WorkerThread = 0;throw CUDTException(3, 1);}#elseDWORD threadID;m_WorkerThread = CreateThread(NULL, 0, CSndQueue::worker, this, 0, &threadID);if (NULL == m_WorkerThread)throw CUDTException(3, 1);#endif }

根據前面的描述,接下來理解發(fā)送工作線程運行過程。getNextProcTime 實際上就是獲取 m_pHeap[0] 的 m_llTimeStamp。這個時間就是即將要發(fā)送的數據的時間。sleepto 等待時間到達。pop 則是初始化 CPacket,然后再發(fā)送。如果 ts <= 0,代表當前并無數據需要發(fā)送,需要繼續(xù)等待。

#ifndef WIN32void* CSndQueue::worker(void* param) #elseDWORD WINAPI CSndQueue::worker(LPVOID param) #endif {CSndQueue* self = (CSndQueue*)param;while (!self->m_bClosing){uint64_t ts = self->m_pSndUList->getNextProcTime(); //獲取下一次發(fā)送時間if (ts > 0){// wait until next processing time of the first socket on the listuint64_t currtime;CTimer::rdtsc(currtime);if (currtime < ts) //時間未到self->m_pTimer->sleepto(ts); //sleep, 控制包與包之間的發(fā)送間隔// it is time to send the next pktsockaddr* addr;CPacket pkt;if (self->m_pSndUList->pop(addr, pkt) < 0)continue;self->m_pChannel->sendto(addr, pkt);}else{// wait here if there is no sockets with data to be sent#ifndef WIN32pthread_mutex_lock(&self->m_WindowLock);if (!self->m_bClosing && (self->m_pSndUList->m_iLastEntry < 0))pthread_cond_wait(&self->m_WindowCond, &self->m_WindowLock);pthread_mutex_unlock(&self->m_WindowLock);#elseWaitForSingleObject(self->m_WindowCond, INFINITE);#endif}}#ifndef WIN32return NULL;#elseSetEvent(self->m_ExitCond);return 0;#endif }

Retrieve the next packet and peer address from the first entry, and reschedule it in the queue.
在線程循環(huán)塊內,出現了 pop 方法。這個方法取出 m_pHeap 中的根節(jié)點,檢查時間戳,若時間已到,在堆中刪除該節(jié)點,進入 packData。

int CSndUList::pop(sockaddr*& addr, CPacket& pkt) {CGuard listguard(m_ListLock);if (-1 == m_iLastEntry) //m_pHeap中為空return -1;// no pop until the next schedulled timeuint64_t ts;CTimer::rdtsc(ts);if (ts < m_pHeap[0]->m_llTimeStamp)return -1;CUDT* u = m_pHeap[0]->m_pUDT;remove_(u);if (!u->m_bConnected || u->m_bBroken)return -1;// pack a packet from the socketif (u->packData(pkt, ts) <= 0)return -1;addr = u->m_pPeerAddr;// insert a new entry, ts is the next processing timeif (ts > 0)insert_(ts, u);return 1; }

m_pHeap 是一個以節(jié)點時間為參考建立的最小堆。所有的插入與刪除操作均為堆的操作,需要注意的是,孩子節(jié)點與根節(jié)點的對應關系。對于根節(jié)點 q 來說,左孩子序號為 2 * q + 1, 右孩子為 2 * q + 2,這也是代碼中的 p 節(jié)點值。

首先看刪除某節(jié)點的操作:

void CSndUList::remove_(const CUDT* u) {CSNode* n = u->m_pSNode;if (n->m_iHeapLoc >= 0){// remove the node from heap 最后節(jié)點與被刪節(jié)點交換m_pHeap[n->m_iHeapLoc] = m_pHeap[m_iLastEntry];m_iLastEntry --;m_pHeap[n->m_iHeapLoc]->m_iHeapLoc = n->m_iHeapLoc;int q = n->m_iHeapLoc; //被刪位置上新節(jié)點int p = q * 2 + 1; //左孩子序號while (p <= m_iLastEntry) // 存在左孩子節(jié)點{// 存在右孩子,且左孩子時間戳大于右孩子時間戳,則修改當前孩子為右孩子if ((p + 1 <= m_iLastEntry) && (m_pHeap[p]->m_llTimeStamp > m_pHeap[p + 1]->m_llTimeStamp))p ++;// 如果根節(jié)點時間戳大于孩子中最小時間戳節(jié)點,則交換,并置當前節(jié)點為新的根節(jié)點的左孩子if (m_pHeap[q]->m_llTimeStamp > m_pHeap[p]->m_llTimeStamp){CSNode* t = m_pHeap[p];m_pHeap[p] = m_pHeap[q];m_pHeap[p]->m_iHeapLoc = p;m_pHeap[q] = t;m_pHeap[q]->m_iHeapLoc = q;q = p;p = q * 2 + 1;}elsebreak;}n->m_iHeapLoc = -1;}// the only event has been deleted, wake up immediatelyif (0 == m_iLastEntry)m_pTimer->interrupt(); }

對于插入操作,只要記住節(jié)點序號關系,就很容易看明白了。父節(jié)點 p 為孩子節(jié)點 (q-1)/2。 如果還不明白,只能去復習一下堆的數據結構相關知識。

void CSndUList::insert_(int64_t ts, const CUDT* u) {CSNode* n = u->m_pSNode;// do not insert repeated nodeif (n->m_iHeapLoc >= 0) return;//插入增加到最后節(jié)點m_iLastEntry ++; m_pHeap[m_iLastEntry] = n;n->m_llTimeStamp = ts;//開始調整int q = m_iLastEntry;int p = q;while (p != 0){p = (q - 1) >> 1; //父節(jié)點if (m_pHeap[p]->m_llTimeStamp > m_pHeap[q]->m_llTimeStamp){CSNode* t = m_pHeap[p];m_pHeap[p] = m_pHeap[q];m_pHeap[q] = t;t->m_iHeapLoc = q;q = p;}elsebreak;}n->m_iHeapLoc = q;// an earlier event has been inserted, wake up sending workerif (n->m_iHeapLoc == 0)m_pTimer->interrupt();// first entry, activate the sending queueif (0 == m_iLastEntry){#ifndef WIN32pthread_mutex_lock(m_pWindowLock);pthread_cond_signal(m_pWindowCond); //喚醒線程pthread_mutex_unlock(m_pWindowLock);#elseSetEvent(*m_pWindowCond);#endif} }

在發(fā)送線程中還有一個 packData 方法,處理了兩類 packet 的讀取,一是丟失的 packet,二是正常的順序傳輸的包。處理過程:

  • 獲取 entertime, 更新 m_ullTimeDiff, 即記錄當前發(fā)包對應目標時間的差值,會影響到下一次發(fā)包的目標時間。UDT 以此使得發(fā)包的時間間隔始終控制在算法之中。

    在 UDT 中,在開始的時候會初始化一個發(fā)包時間間隔 m_ullInterval ,這個值表示期望的發(fā)送時間間隔。初始化如下所示:

    m_ullInterval = (uint64_t)(m_pCC->m_dPktSndPeriod * m_ullCPUFrequency);

    m_ullInterval 并不是一個固定的值,而是根據網絡狀態(tài)進行調整。比如在 processCtrl 中 收到包類型為 4 時,就會改變。但是查找代碼可以發(fā)現,當前udt 版本不再執(zhí)行 sendCtrl(4),代碼詳見包類型為6 時,代碼已經被注釋。但是無用代碼并未刪除,如下所示。

    // One way packet delay is increasing, so decrease the sending rate m_ullInterval = (uint64_t)ceil(m_ullInterval * 1.125);

    在擁塞控制中 CCUpdate 改變 m_ullInterva 值:

    m_ullInterval = (uint64_t) (m_pCC->m_dPktSndPeriod * m_ullCPUFrequency);
    m_dCongestionWindow = m_pCC->m_dCWndSize;
    if (m_llMaxBW <= 0)
    ??return;
    const double minSP = 1000000.0 / (double(m_llMaxBW) / m_iMSS) * m_ullCPUFrequency;
    if (m_ullInterval < minSP)
    ??m_ullInterval = minSP;

    在UDT中,包發(fā)送會有一個隨著網絡狀況調整的一個發(fā)送周期,也就是 m_ullInterva 值。在每一次發(fā)送包時,都會根據 m_ullInterval值計算下一次包發(fā)送的理想時間間隔,并修改 m_ullTargetTime 值。

  • 檢查是否丟包。

    • 如果丟包,就將 packet.m_iSeqNo 賦值為丟包的序號值。然后計算 offset。m_iSndLastDataAck 是在接收到最后一個 ack 時更新的序號,之前的所有包都被確認。如果 offset < 0, 表示上次確認序號大于丟包序號,即有包未收到但是被確認,可能出現錯誤。讀取數據如果失敗,就會發(fā)送丟棄請求,并更新 m_iSndCurrSeqNo。

    • 如果沒有丟包,則發(fā)送一個新包。根據流窗口與擁塞窗口更新 cwnd 值。若發(fā)送包序號在窗口范圍內,則 readData 并且更新本地和 ccc中 m_iSndCurrSeqNo,更新 m_iSeqNo,檢查是否需要發(fā)送包對探測。

    • 更新 packet 與 cc,更新 ts, m_ullTargetTime。包將在 worker 中被發(fā)送

  • int CUDT::packData(CPacket& packet, uint64_t& ts) {int payload = 0;bool probe = false;uint64_t entertime;CTimer::rdtsc(entertime);if ((0 != m_ullTargetTime) && (entertime > m_ullTargetTime))m_ullTimeDiff += entertime - m_ullTargetTime;// Loss retransmission always has higher priority.if ((packet.m_iSeqNo = m_pSndLossList->getLostSeq()) >= 0) //發(fā)現丟包,可能超時或者 NACK回應消息{// protect m_iSndLastDataAck from updating by ACK processingCGuard ackguard(m_AckLock);int offset = CSeqNo::seqoff(m_iSndLastDataAck, packet.m_iSeqNo); if (offset < 0)return 0;int msglen;//重新取數據payload = m_pSndBuffer->readData(&(packet.m_pcData), offset, packet.m_iMsgNo, msglen);if (-1 == payload){int32_t seqpair[2];seqpair[0] = packet.m_iSeqNo;seqpair[1] = CSeqNo::incseq(seqpair[0], msglen);sendCtrl(7, &packet.m_iMsgNo, seqpair, 8);// only one msg drop request is necessarym_pSndLossList->remove(seqpair[1]);// skip all dropped packetsif (CSeqNo::seqcmp(m_iSndCurrSeqNo, CSeqNo::incseq(seqpair[1])) < 0)m_iSndCurrSeqNo = CSeqNo::incseq(seqpair[1]);return 0;}else if (0 == payload)return 0;++ m_iTraceRetrans;++ m_iRetransTotal;}else{// If no loss, pack a new packet.// check congestion/flow window limitint cwnd = (m_iFlowWindowSize < (int)m_dCongestionWindow) ? m_iFlowWindowSize : (int)m_dCongestionWindow;if (cwnd >= CSeqNo::seqlen(m_iSndLastAck, CSeqNo::incseq(m_iSndCurrSeqNo))){if (0 != (payload = m_pSndBuffer->readData(&(packet.m_pcData), packet.m_iMsgNo))){m_iSndCurrSeqNo = CSeqNo::incseq(m_iSndCurrSeqNo);m_pCC->setSndCurrSeqNo(m_iSndCurrSeqNo);packet.m_iSeqNo = m_iSndCurrSeqNo;// every 16 (0xF) packets, a packet pair is sentif (0 == (packet.m_iSeqNo & 0xF))probe = true;}else{m_ullTargetTime = 0;m_ullTimeDiff = 0;ts = 0;return 0;}}else{m_ullTargetTime = 0;m_ullTimeDiff = 0;ts = 0;return 0;}}packet.m_iTimeStamp = int(CTimer::getTime() - m_StartTime);packet.m_iID = m_PeerID;packet.setLength(payload);m_pCC->onPktSent(&packet);//m_pSndTimeWindow->onPktSent(packet.m_iTimeStamp);++ m_llTraceSent;++ m_llSentTotal;if (probe){// sends out probing packet pairts = entertime;probe = false;}else{#ifndef NO_BUSY_WAITINGts = entertime + m_ullInterval;#elseif (m_ullTimeDiff >= m_ullInterval){ts = entertime;m_ullTimeDiff -= m_ullInterval;}else{ts = entertime + m_ullInterval - m_ullTimeDiff;m_ullTimeDiff = 0;}#endif}m_ullTargetTime = ts;return payload; }

    UDT 接收工作線程

    接收工作線程的主要工作同樣在 while 循環(huán)中完成。首先檢查是否有新的 socket 到來,如果有,則不斷加入 m_pRcvUList,同時添加到 m_pHash 中。然后再 m_UnitQueue 中查找是否存在可用的存儲塊,在此過程中如果發(fā)現已經數量太多會自動擴容。不斷的通過 recvfrom 接收包。

    如果是連接請求, 將被送給 listening socket 或者 rendezvous sockets,對應將進入 listen 或者 connect 操作。否則, 根據 getFlag 判斷,進入 processData 或者 processCtrl。這也是接收數據被處理的核心函數。最后將這個 UDT實例 放入 m_pRcvUList 最后。

    #ifndef WIN32void* CRcvQueue::worker(void* param) #elseDWORD WINAPI CRcvQueue::worker(LPVOID param) #endif {CRcvQueue* self = (CRcvQueue*)param;sockaddr* addr = (AF_INET == self->m_UnitQueue.m_iIPversion) ? (sockaddr*) new sockaddr_in : (sockaddr*) new sockaddr_in6;CUDT* u = NULL;int32_t id;while (!self->m_bClosing){#ifdef NO_BUSY_WAITINGself->m_pTimer->tick();#endif// check waiting list, if new socket, insert it to the listwhile (self->ifNewEntry()){CUDT* ne = self->getNewEntry();if (NULL != ne){self->m_pRcvUList->insert(ne);self->m_pHash->insert(ne->m_SocketID, ne);}}// find next available slot for incoming packetCUnit* unit = self->m_UnitQueue.getNextAvailUnit();if (NULL == unit){// no space, skip this packetCPacket temp;temp.m_pcData = new char[self->m_iPayloadSize];temp.setLength(self->m_iPayloadSize);self->m_pChannel->recvfrom(addr, temp);delete [] temp.m_pcData;goto TIMER_CHECK;}unit->m_Packet.setLength(self->m_iPayloadSize);// reading next incoming packet, recvfrom returns -1 is nothing has been receivedif (self->m_pChannel->recvfrom(addr, unit->m_Packet) < 0)goto TIMER_CHECK;id = unit->m_Packet.m_iID;// ID 0 is for connection request, which should be passed to the listening socket or rendezvous socketsif (0 == id){if (NULL != self->m_pListener)self->m_pListener->listen(addr, unit->m_Packet);else if (NULL != (u = self->m_pRendezvousQueue->retrieve(addr, id))){// asynchronous connect: call connect here// otherwise wait for the UDT socket to retrieve this packetif (!u->m_bSynRecving)u->connect(unit->m_Packet);elseself->storePkt(id, unit->m_Packet.clone());}}else if (id > 0){if (NULL != (u = self->m_pHash->lookup(id))){if (CIPAddress::ipcmp(addr, u->m_pPeerAddr, u->m_iIPversion)){if (u->m_bConnected && !u->m_bBroken && !u->m_bClosing){if (0 == unit->m_Packet.getFlag())u->processData(unit);elseu->processCtrl(unit->m_Packet);u->checkTimers();self->m_pRcvUList->update(u);}}}else if (NULL != (u = self->m_pRendezvousQueue->retrieve(addr, id))){if (!u->m_bSynRecving)u->connect(unit->m_Packet);elseself->storePkt(id, unit->m_Packet.clone());}}TIMER_CHECK:// take care of the timing event for all UDT socketsuint64_t currtime;CTimer::rdtsc(currtime);CRNode* ul = self->m_pRcvUList->m_pUList;uint64_t ctime = currtime - 100000 * CTimer::getCPUFrequency();while ((NULL != ul) && (ul->m_llTimeStamp < ctime)){CUDT* u = ul->m_pUDT;if (u->m_bConnected && !u->m_bBroken && !u->m_bClosing){u->checkTimers();self->m_pRcvUList->update(u);}else{// the socket must be removed from Hash table first, then RcvUListself->m_pHash->remove(u->m_SocketID);self->m_pRcvUList->remove(u);u->m_pRNode->m_bOnList = false;}ul = self->m_pRcvUList->m_pUList;}// Check connection requests status for all sockets in the RendezvousQueue.self->m_pRendezvousQueue->updateConnStatus();}if (AF_INET == self->m_UnitQueue.m_iIPversion)delete (sockaddr_in*)addr;elsedelete (sockaddr_in6*)addr;#ifndef WIN32return NULL;#elseSetEvent(self->m_ExitCond);return 0;#endif }

    checkTimers 會更新 cc 參數,并發(fā)送 ack 包,檢查連接是否中斷。在代碼中,NAK 定時器不再生效,僅僅依靠發(fā)送方的超時機制。檢測如果16個超時 且 總時間達到閾值才會認為連接掛掉。超時也會導致擁塞控制算法進行調整。

    void CUDT::checkTimers() {// update CC parametersCCUpdate(); //更新發(fā)包時間間隔和擁塞窗口uint64_t currtime;CTimer::rdtsc(currtime);if ((currtime > m_ullNextACKTime) || ((m_pCC->m_iACKInterval > 0) && (m_pCC->m_iACKInterval <= m_iPktCount))){// ACK timer expired or ACK interval is reachedsendCtrl(2); //ackCTimer::rdtsc(currtime);if (m_pCC->m_iACKPeriod > 0) //更新 m_ullNextACKTimem_ullNextACKTime = currtime + m_pCC->m_iACKPeriod * m_ullCPUFrequency;elsem_ullNextACKTime = currtime + m_ullACKInt;m_iPktCount = 0;m_iLightACKCount = 1;}else if (m_iSelfClockInterval * m_iLightACKCount <= m_iPktCount){//send a "light" ACKsendCtrl(2, NULL, NULL, 4);++ m_iLightACKCount;}// we are not sending back repeated NAK anymore and rely on the sender's EXP for retransmission//if ((m_pRcvLossList->getLossLength() > 0) && (currtime > m_ullNextNAKTime))//{ // // NAK timer expired, and there is loss to be reported.// sendCtrl(3);//// CTimer::rdtsc(currtime);// m_ullNextNAKTime = currtime + m_ullNAKInt;//} //不再觸發(fā) NAK 定時器,僅僅依靠發(fā)送方的重傳超時,應該是為了減少誤丟包識別。uint64_t next_exp_time;if (m_pCC->m_bUserDefinedRTO)next_exp_time = m_ullLastRspTime + m_pCC->m_iRTO * m_ullCPUFrequency;else{uint64_t exp_int = (m_iEXPCount * (m_iRTT + 4 * m_iRTTVar) + m_iSYNInterval) * m_ullCPUFrequency;if (exp_int < m_iEXPCount * m_ullMinExpInt)exp_int = m_iEXPCount * m_ullMinExpInt;next_exp_time = m_ullLastRspTime + exp_int;}if (currtime > next_exp_time){// Haven't receive any information from the peer, is it dead?!// timeout: at least 16 expirations and must be greater than 10 secondsif ((m_iEXPCount > 16) && (currtime - m_ullLastRspTime > 5000000 * m_ullCPUFrequency)){// Connection is broken. // UDT does not signal any information about this instead of to stop quietly.// Application will detect this when it calls any UDT methods next time.m_bClosing = true;m_bBroken = true;m_iBrokenCounter = 30;// update snd U list to remove this socketm_pSndQueue->m_pSndUList->update(this);releaseSynch();// app can call any UDT API to learn the connection_broken errors_UDTUnited.m_EPoll.update_events(m_SocketID, m_sPollID, UDT_EPOLL_IN | UDT_EPOLL_OUT | UDT_EPOLL_ERR, true);CTimer::triggerEvent();return;}// sender: Insert all the packets sent after last received acknowledgement into the sender loss list.// recver: Send out a keep-alive packetif (m_pSndBuffer->getCurrBufSize() > 0){if ((CSeqNo::incseq(m_iSndCurrSeqNo) != m_iSndLastAck) && (m_pSndLossList->getLossLength() == 0)){// resend all unacknowledged packets on timeout, but only if there is no packet in the loss listint32_t csn = m_iSndCurrSeqNo;int num = m_pSndLossList->insert(m_iSndLastAck, csn); m_iTraceSndLoss += num;m_iSndLossTotal += num;}m_pCC->onTimeout();CCUpdate();// immediately restart transmissionm_pSndQueue->m_pSndUList->update(this);}else{sendCtrl(1); //keep-live 包}++ m_iEXPCount; //增加,如果到達16 次,進入超時處理,如果收到確認,則重置為0。// Reset last response time since we just sent a heart-beat.m_ullLastRspTime = currtime;} }

    再回頭看數據處理部分 processData 。

    int CUDT::processData(CUnit* unit) {CPacket& packet = unit->m_Packet;// Just heard from the peer, reset the expiration count.m_iEXPCount = 1; //有收到數據,重置 EXPuint64_t currtime;CTimer::rdtsc(currtime);m_ullLastRspTime = currtime; //更新 m_ullLastRspTimem_pCC->onPktReceived(&packet); //未找到函數的實現++ m_iPktCount;// update time information, 記錄包到達的時間以及上一包時間m_pRcvTimeWindow->onPktArrival(); //記錄的目的用于計算包的到達速率,然后將計算的速率通過ACK反饋回去// check if it is probing packet pair, 用于估計鏈路容量,將計算的容量通過ACK反饋回去if (0 == (packet.m_iSeqNo & 0xF))//檢查是否為包對m_pRcvTimeWindow->probe1Arrival(); //記錄包對中第一個包的到達時間else if (1 == (packet.m_iSeqNo & 0xF))m_pRcvTimeWindow->probe2Arrival(); // 記錄探測包對的時間間隔++ m_llTraceRecv;++ m_llRecvTotal;int32_t offset = CSeqNo::seqoff(m_iRcvLastAck, packet.m_iSeqNo);if ((offset < 0) || (offset >= m_pRcvBuffer->getAvailBufSize()))return -1;if (m_pRcvBuffer->addData(unit, offset) < 0)//將數據包加入到 m_pRcvBufferreturn -1;// Loss detection.if (CSeqNo::seqcmp(packet.m_iSeqNo, CSeqNo::incseq(m_iRcvCurrSeqNo)) > 0){// If loss found, insert them to the receiver loss listm_pRcvLossList->insert(CSeqNo::incseq(m_iRcvCurrSeqNo), CSeqNo::decseq(packet.m_iSeqNo));// pack loss list for NAKint32_t lossdata[2];lossdata[0] = CSeqNo::incseq(m_iRcvCurrSeqNo) | 0x80000000;lossdata[1] = CSeqNo::decseq(packet.m_iSeqNo);// Generate loss report immediately.sendCtrl(3, NULL, lossdata, (CSeqNo::incseq(m_iRcvCurrSeqNo) == CSeqNo::decseq(packet.m_iSeqNo)) ? 1 : 2);int loss = CSeqNo::seqlen(m_iRcvCurrSeqNo, packet.m_iSeqNo) - 2;m_iTraceRcvLoss += loss;m_iRcvLossTotal += loss;}// This is not a regular fixed size packet... //an irregular sized packet usually indicates the end of a message, so send an ACK immediately if (packet.getLength() != m_iPayloadSize)CTimer::rdtsc(m_ullNextACKTime); // Update the current largest sequence number that has been received.// Or it is a retransmitted packet, remove it from receiver loss list.if (CSeqNo::seqcmp(packet.m_iSeqNo, m_iRcvCurrSeqNo) > 0)m_iRcvCurrSeqNo = packet.m_iSeqNo;elsem_pRcvLossList->remove(packet.m_iSeqNo);return 0; }

    接下來看控制消息的處理。這部分的內容可以參考 UDT 最新協議分析.

  • ACK 處理
    • 如果是一個輕量級 ACK,更新 m_iFlowWindowSize 和 m_iSndLastAck, 終止處理。
    • 否則:
      • 使用相同的 ACK 序號返回一個 ACK2 作為確認的確認。更新 m_ullSndLastAck2Time, m_iFlowWindowSize, m_iSndLastDataAck 和 m_iSndLastAck。\
      • 更新發(fā)送丟失鏈表,移除已經被確認的所有包序號。\
      • 更新RTT與RTTVar。更新ACK和NAK周期為 4 * RTT + RTTVar + SYN。\
      • 更新發(fā)送端緩沖,釋放已經被確認的緩沖。\
      • 更新包到達速率為:A = (A * 7 + a) / 8,其中a為ACK中攜帶的相應值。更新鏈路容量估計值:B = (B * 7 + b) / 8,其中b為ACK中攜帶的相應值。
      • 更新發(fā)包間隔 m_ullInterval。
    void CUDT::processCtrl(CPacket& ctrlpkt) {...case 2: //010 - Acknowledgement{int32_t ack;// process a lite ACKif (4 == ctrlpkt.getLength()){ack = *(int32_t *)ctrlpkt.m_pcData;if (CSeqNo::seqcmp(ack, m_iSndLastAck) >= 0){m_iFlowWindowSize -= CSeqNo::seqoff(m_iSndLastAck, ack); //更新 m_iFlowWindowSizem_iSndLastAck = ack;}break;}// read ACK seq. no.ack = ctrlpkt.getAckSeqNo();// send ACK acknowledgement// number of ACK2 can be much less than number of ACKuint64_t now = CTimer::getTime();if ((currtime - m_ullSndLastAck2Time > (uint64_t)m_iSYNInterval) || (ack == m_iSndLastAck2)){sendCtrl(6, &ack); // ack of ack, 對確認包的二次確認m_iSndLastAck2 = ack;m_ullSndLastAck2Time = now;}// Got data ACKack = *(int32_t *)ctrlpkt.m_pcData;// check the validation of the ackif (CSeqNo::seqcmp(ack, CSeqNo::incseq(m_iSndCurrSeqNo)) > 0){//this should not happen: attack or bug . 不應該大于最大發(fā)送序號m_bBroken = true;m_iBrokenCounter = 0;break;}if (CSeqNo::seqcmp(ack, m_iSndLastAck) >= 0) //新的數據的 ack{// Update Flow Window Size, must update before and together with m_iSndLastAckm_iFlowWindowSize = *((int32_t *)ctrlpkt.m_pcData + 3);m_iSndLastAck = ack;}// protect packet retransmissionCGuard::enterCS(m_AckLock);int offset = CSeqNo::seqoff(m_iSndLastDataAck, ack);if (offset <= 0){// discard it if it is a repeated ACKCGuard::leaveCS(m_AckLock);break;}// acknowledge the sending bufferm_pSndBuffer->ackData(offset); //僅修改 m_pFirstBlock 指針 和 m_iCount// record total time used for sendingm_llSndDuration += currtime - m_llSndDurationCounter;m_llSndDurationTotal += currtime - m_llSndDurationCounter;m_llSndDurationCounter = currtime;// update sending variablesm_iSndLastDataAck = ack;m_pSndLossList->remove(CSeqNo::decseq(m_iSndLastDataAck));//重點函數,后續(xù)介紹CGuard::leaveCS(m_AckLock);#ifndef WIN32pthread_mutex_lock(&m_SendBlockLock);if (m_bSynSending)pthread_cond_signal(&m_SendBlockCond);pthread_mutex_unlock(&m_SendBlockLock);#elseif (m_bSynSending)SetEvent(m_SendBlockCond);#endif// acknowledde any waiting epolls to writes_UDTUnited.m_EPoll.update_events(m_SocketID, m_sPollID, UDT_EPOLL_OUT, true);// insert this socket to snd list if it is not on the list yetm_pSndQueue->m_pSndUList->update(this, false);// Update RTT//m_iRTT = *((int32_t *)ctrlpkt.m_pcData + 1);//m_iRTTVar = *((int32_t *)ctrlpkt.m_pcData + 2);int rtt = *((int32_t *)ctrlpkt.m_pcData + 1);m_iRTTVar = (m_iRTTVar * 3 + abs(rtt - m_iRTT)) >> 2;m_iRTT = (m_iRTT * 7 + rtt) >> 3;m_pCC->setRTT(m_iRTT); //更新cc m_iRTTif (ctrlpkt.getLength() > 16){// Update Estimated Bandwidth and packet delivery rateif (*((int32_t *)ctrlpkt.m_pcData + 4) > 0)m_iDeliveryRate = (m_iDeliveryRate * 7 + *((int32_t *)ctrlpkt.m_pcData + 4)) >> 3;if (*((int32_t *)ctrlpkt.m_pcData + 5) > 0)m_iBandwidth = (m_iBandwidth * 7 + *((int32_t *)ctrlpkt.m_pcData + 5)) >> 3;m_pCC->setRcvRate(m_iDeliveryRate); //更新cc m_iRcvRatem_pCC->setBandwidth(m_iBandwidth); //更新cc m_iBandwidth}m_pCC->onACK(ack); //更新cc m_dPktSndPeriod,進一步影響發(fā)包間隔計算 m_ullIntervalCCUpdate(); //重新計算 m_ullInterval++ m_iRecvACK;++ m_iRecvACKTotal;break;}... }
  • ACK2 處理
    • acknowledge 根據ACK2中的ACK序號,在ACK歷史窗口中找到關聯的ACK,根據ACK2到達時間和ACK離開時間,計算rtt。
    • 計算新的 RTT = (RTT * 7 + rtt) / 8,更新RTTVar = (RTTVar * 3 + abs(RTT - rtt)) / 4,更新cc中 rtt。
    • 更新被確認的最大ACK序號。
    void CUDT::processCtrl(CPacket& ctrlpkt) {case 6: //110 - Acknowledgement of Acknowledgement{int32_t ack;int rtt = -1;// update RTTrtt = m_pACKWindow->acknowledge(ctrlpkt.getAckSeqNo(), ack);if (rtt <= 0)break;//if increasing delay detected...// sendCtrl(4);// RTT EWMAm_iRTTVar = (m_iRTTVar * 3 + abs(rtt - m_iRTT)) >> 2;m_iRTT = (m_iRTT * 7 + rtt) >> 3;m_pCC->setRTT(m_iRTT); // update last ACK that has been received by the senderif (CSeqNo::seqcmp(ack, m_iRcvLastAckAck) > 0)m_iRcvLastAckAck = ack;break;} }
  • NAK 處理
    • 將 NAK 中攜帶的所有序號添加到發(fā)送丟失鏈表中。通過碼率控制更新 SND 周期。重置 EXP 時間變量。更新 m_pSndUList,等待重傳。
    void CUDT::processCtrl(CPacket& ctrlpkt) {case 3: //011 - Loss Report{int32_t* losslist = (int32_t *)(ctrlpkt.m_pcData);m_pCC->onLoss(losslist, ctrlpkt.getLength() / 4);//擁塞控制丟包處理,比如停止慢啟動,更新參數。CCUpdate();bool secure = true;// decode loss list message and insert loss into the sender loss listfor (int i = 0, n = (int)(ctrlpkt.getLength() / 4); i < n; ++ i){if (0 != (losslist[i] & 0x80000000)){if ((CSeqNo::seqcmp(losslist[i] & 0x7FFFFFFF, losslist[i + 1]) > 0) || (CSeqNo::seqcmp(losslist[i + 1], m_iSndCurrSeqNo) > 0)){// seq_a must not be greater than seq_b; seq_b must not be greater than the most recent sent seqsecure = false;break;}int num = 0;if (CSeqNo::seqcmp(losslist[i] & 0x7FFFFFFF, m_iSndLastAck) >= 0)num = m_pSndLossList->insert(losslist[i] & 0x7FFFFFFF, losslist[i + 1]);else if (CSeqNo::seqcmp(losslist[i + 1], m_iSndLastAck) >= 0)num = m_pSndLossList->insert(m_iSndLastAck, losslist[i + 1]);m_iTraceSndLoss += num;m_iSndLossTotal += num;++ i;}else if (CSeqNo::seqcmp(losslist[i], m_iSndLastAck) >= 0){if (CSeqNo::seqcmp(losslist[i], m_iSndCurrSeqNo) > 0){//seq_a must not be greater than the most recent sent seqsecure = false;break;}int num = m_pSndLossList->insert(losslist[i], losslist[i]);m_iTraceSndLoss += num;m_iSndLossTotal += num;}}if (!secure){//this should not happen: attack or bugm_bBroken = true;m_iBrokenCounter = 0;break;}// the lost packet (retransmission) should be sent out immediatelym_pSndQueue->m_pSndUList->update(this);++ m_iRecvNAK;++ m_iRecvNAKTotal;break;} }
  • Handshake 處理
  • case 0: //000 - Handshake{CHandShake req;req.deserialize(ctrlpkt.m_pcData, ctrlpkt.getLength());if ((req.m_iReqType > 0) || (m_bRendezvous && (req.m_iReqType != -2))){// The peer side has not received the handshake message, so it keeps querying// resend the handshake packetCHandShake initdata;initdata.m_iISN = m_iISN;initdata.m_iMSS = m_iMSS;initdata.m_iFlightFlagSize = m_iFlightFlagSize;initdata.m_iReqType = (!m_bRendezvous) ? -1 : -2;initdata.m_iID = m_SocketID;char* hs = new char [m_iPayloadSize];int hs_size = m_iPayloadSize;initdata.serialize(hs, hs_size);sendCtrl(0, NULL, hs, hs_size);delete [] hs;}break;} }
  • Msg drop request 處理
    • 在接收緩沖中標記所有屬于同一個消息的包,使得不再可讀。 在接收丟失鏈表中移除所有對應的包。
    case 7: //111 - Msg drop requestm_pRcvBuffer->dropMsg(ctrlpkt.getMsgSeq());m_pRcvLossList->remove(*(int32_t*)ctrlpkt.m_pcData, *(int32_t*)(ctrlpkt.m_pcData + 4));// move forward with current recv seq no.if ((CSeqNo::seqcmp(*(int32_t*)ctrlpkt.m_pcData, CSeqNo::incseq(m_iRcvCurrSeqNo)) <= 0)&& (CSeqNo::seqcmp(*(int32_t*)(ctrlpkt.m_pcData + 4), m_iRcvCurrSeqNo) > 0)){m_iRcvCurrSeqNo = *(int32_t*)(ctrlpkt.m_pcData + 4);}break; }

    總結

    以上是生活随笔為你收集整理的UDT 最新源码分析(五) -- 网络数据收发的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品99久久精品爆乳 | 国产在线一区二区三区四区五区 | 久久天天躁狠狠躁夜夜免费观看 | 四十如虎的丰满熟妇啪啪 | 在线播放无码字幕亚洲 | 久久精品国产一区二区三区肥胖 | 又色又爽又黄的美女裸体网站 | 国产内射爽爽大片视频社区在线 | 日本精品少妇一区二区三区 | 国产精品怡红院永久免费 | 亚洲中文字幕久久无码 | 荫蒂添的好舒服视频囗交 | 欧美日韩视频无码一区二区三 | 我要看www免费看插插视频 | 国产精品久久国产三级国 | 天天拍夜夜添久久精品 | 人妻体内射精一区二区三四 | 欧美三级a做爰在线观看 | 男人扒开女人内裤强吻桶进去 | 国产在线精品一区二区三区直播 | 高清无码午夜福利视频 | 国产欧美精品一区二区三区 | 色婷婷综合中文久久一本 | 亚洲日本va午夜在线电影 | 人人妻人人澡人人爽欧美一区 | 中文字幕av日韩精品一区二区 | 精品国产av色一区二区深夜久久 | 青春草在线视频免费观看 | 亚洲一区av无码专区在线观看 | 国产热a欧美热a在线视频 | 国产熟妇高潮叫床视频播放 | 无码人妻丰满熟妇区毛片18 | 国产亚洲日韩欧美另类第八页 | 伊人久久婷婷五月综合97色 | 国产精品嫩草久久久久 | 久久国产自偷自偷免费一区调 | 澳门永久av免费网站 | 亚洲色成人中文字幕网站 | 国产成人无码区免费内射一片色欲 | 久久无码人妻影院 | 国产精品美女久久久久av爽李琼 | 高潮喷水的毛片 | 丝袜 中出 制服 人妻 美腿 | 亚洲国产综合无码一区 | 国产欧美熟妇另类久久久 | 亚洲娇小与黑人巨大交 | 在线观看国产一区二区三区 | 夜先锋av资源网站 | 国产香蕉尹人综合在线观看 | 亚洲熟妇自偷自拍另类 | 久久99精品国产麻豆蜜芽 | 18精品久久久无码午夜福利 | 无码精品国产va在线观看dvd | www国产亚洲精品久久网站 | 国产一区二区不卡老阿姨 | 亚洲色无码一区二区三区 | 国产精品亚洲一区二区三区喷水 | 人人爽人人澡人人高潮 | 精品国产福利一区二区 | 欧美xxxxx精品 | 欧美老妇与禽交 | 中文字幕乱妇无码av在线 | 日本熟妇大屁股人妻 | 久久天天躁狠狠躁夜夜免费观看 | 日本熟妇乱子伦xxxx | 男女猛烈xx00免费视频试看 | 兔费看少妇性l交大片免费 | 女人被男人躁得好爽免费视频 | 男人的天堂av网站 | 久久精品人人做人人综合 | 麻豆精产国品 | 日本一本二本三区免费 | √8天堂资源地址中文在线 | 天天拍夜夜添久久精品 | 精品乱码久久久久久久 | 自拍偷自拍亚洲精品10p | 亚洲日本一区二区三区在线 | 狠狠色噜噜狠狠狠7777奇米 | 日日摸天天摸爽爽狠狠97 | 真人与拘做受免费视频 | 日本精品久久久久中文字幕 | 国产精品无码久久av | 国产电影无码午夜在线播放 | 亚洲高清偷拍一区二区三区 | 男女下面进入的视频免费午夜 | 精品久久久无码中文字幕 | 欧美三级不卡在线观看 | 国产性生交xxxxx无码 | 亚洲色欲色欲欲www在线 | 久久国产精品偷任你爽任你 | 久久综合给久久狠狠97色 | 丰腴饱满的极品熟妇 | 天天爽夜夜爽夜夜爽 | 内射后入在线观看一区 | 国产精品美女久久久网av | 国产在线aaa片一区二区99 | 精品久久久无码人妻字幂 | 国产 浪潮av性色四虎 | 国产明星裸体无码xxxx视频 | 亚洲精品国产精品乱码不卡 | 久久亚洲中文字幕精品一区 | 国产亚洲精品久久久闺蜜 | 无码人妻丰满熟妇区毛片18 | 国产色在线 | 国产 | 国产莉萝无码av在线播放 | 亚洲无人区一区二区三区 | 动漫av一区二区在线观看 | 成人精品一区二区三区中文字幕 | 成熟妇人a片免费看网站 | 日日鲁鲁鲁夜夜爽爽狠狠 | 精品一区二区三区无码免费视频 | 中文无码伦av中文字幕 | 乱人伦人妻中文字幕无码久久网 | 精品无码一区二区三区的天堂 | 国产精品对白交换视频 | 国产两女互慰高潮视频在线观看 | 在线播放无码字幕亚洲 | 一区二区三区乱码在线 | 欧洲 | 国产精品久久久久久久9999 | 国产精品高潮呻吟av久久 | 免费人成网站视频在线观看 | 人人妻人人澡人人爽欧美一区 | 国产一区二区三区影院 | 国产精品久久久av久久久 | 国产成人一区二区三区在线观看 | 国产手机在线αⅴ片无码观看 | 亚洲男人av天堂午夜在 | 国产精品高潮呻吟av久久 | 亚洲爆乳无码专区 | 婷婷丁香六月激情综合啪 | 十八禁视频网站在线观看 | 免费国产成人高清在线观看网站 | 日本护士xxxxhd少妇 | 国产色在线 | 国产 | 国产69精品久久久久app下载 | 天天爽夜夜爽夜夜爽 | 亚洲人亚洲人成电影网站色 | 精品偷拍一区二区三区在线看 | 亚洲国产日韩a在线播放 | 亚洲综合伊人久久大杳蕉 | 国产偷抇久久精品a片69 | аⅴ资源天堂资源库在线 | 久久久久久a亚洲欧洲av冫 | 永久黄网站色视频免费直播 | 99精品视频在线观看免费 | 免费人成在线观看网站 | 国产亚av手机在线观看 | 久热国产vs视频在线观看 | 欧美日韩视频无码一区二区三 | 玩弄人妻少妇500系列视频 | 国产热a欧美热a在线视频 | 4hu四虎永久在线观看 | 丝袜人妻一区二区三区 | 人妻夜夜爽天天爽三区 | 色婷婷av一区二区三区之红樱桃 | 久久久亚洲欧洲日产国码αv | 少妇性俱乐部纵欲狂欢电影 | 一本加勒比波多野结衣 | 嫩b人妻精品一区二区三区 | 精品久久久无码人妻字幂 | 娇妻被黑人粗大高潮白浆 | 国产卡一卡二卡三 | 无码人妻丰满熟妇区毛片18 | 日韩成人一区二区三区在线观看 | 大肉大捧一进一出好爽视频 | 乱码av麻豆丝袜熟女系列 | 中文字幕无码免费久久9一区9 | 国产激情精品一区二区三区 | 乱人伦人妻中文字幕无码 | 人妻少妇精品无码专区二区 | 国产精品久久久久久久9999 | 亚洲精品一区国产 | 捆绑白丝粉色jk震动捧喷白浆 | 无码人妻精品一区二区三区不卡 | 亚洲s码欧洲m码国产av | 又紧又大又爽精品一区二区 | 超碰97人人做人人爱少妇 | www国产亚洲精品久久网站 | 国产真实夫妇视频 | 漂亮人妻洗澡被公强 日日躁 | 欧美肥老太牲交大战 | 久久亚洲中文字幕精品一区 | 亚洲人成人无码网www国产 | 久久久久久久人妻无码中文字幕爆 | 久久午夜无码鲁丝片秋霞 | 99久久婷婷国产综合精品青草免费 | 亚洲精品国产a久久久久久 | 亚洲精品无码国产 | 国产成人无码一二三区视频 | 日本一卡二卡不卡视频查询 | 亚洲乱亚洲乱妇50p | 国产精品99久久精品爆乳 | √8天堂资源地址中文在线 | 欧美老人巨大xxxx做受 | 樱花草在线社区www | 精品人妻人人做人人爽 | 在线天堂新版最新版在线8 | 97精品人妻一区二区三区香蕉 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲欧美日韩成人高清在线一区 | 久久久久免费精品国产 | 丰满人妻精品国产99aⅴ | 中文无码精品a∨在线观看不卡 | 国内精品人妻无码久久久影院 | 久久精品丝袜高跟鞋 | 日韩精品乱码av一区二区 | 欧美丰满熟妇xxxx性ppx人交 | 无码纯肉视频在线观看 | 在线精品亚洲一区二区 | 国产在线无码精品电影网 | 亚洲精品国产a久久久久久 | 丰满少妇熟乱xxxxx视频 | 少妇无码一区二区二三区 | 国产绳艺sm调教室论坛 | 欧美 日韩 亚洲 在线 | 久久精品一区二区三区四区 | 中文字幕av日韩精品一区二区 | 免费看男女做好爽好硬视频 | 精品偷拍一区二区三区在线看 | 亚洲精品中文字幕乱码 | 国产精品人人爽人人做我的可爱 | 黑人巨大精品欧美一区二区 | 永久黄网站色视频免费直播 | 蜜桃无码一区二区三区 | 一本久道久久综合狠狠爱 | 久久五月精品中文字幕 | 国产三级久久久精品麻豆三级 | 日韩无码专区 | 国产精品久久国产精品99 | 无码午夜成人1000部免费视频 | 国产精品美女久久久久av爽李琼 | 亚洲综合伊人久久大杳蕉 | 国产午夜无码视频在线观看 | 久久99精品久久久久久 | 老头边吃奶边弄进去呻吟 | 欧美成人免费全部网站 | 亚洲国产精品成人久久蜜臀 | 国产精品久久久久久无码 | 免费无码的av片在线观看 | 97无码免费人妻超级碰碰夜夜 | 无码成人精品区在线观看 | 欧美阿v高清资源不卡在线播放 | 98国产精品综合一区二区三区 | 18禁止看的免费污网站 | 久久精品中文字幕大胸 | 亚洲精品中文字幕乱码 | 精品无码国产自产拍在线观看蜜 | 国产成人无码a区在线观看视频app | 久久97精品久久久久久久不卡 | 国产亲子乱弄免费视频 | 在线天堂新版最新版在线8 | 亚洲の无码国产の无码影院 | 无码国内精品人妻少妇 | 中文字幕无码日韩欧毛 | 国产女主播喷水视频在线观看 | 精品无人国产偷自产在线 | 女人被男人爽到呻吟的视频 | 精品一区二区不卡无码av | 国产亚洲精品久久久久久久 | 毛片内射-百度 | 又色又爽又黄的美女裸体网站 | 一本久道久久综合狠狠爱 | 中文字幕人妻丝袜二区 | 国产偷国产偷精品高清尤物 | 国产在线aaa片一区二区99 | www国产亚洲精品久久久日本 | 国产精品无码久久av | 亚洲日本va中文字幕 | 欧美自拍另类欧美综合图片区 | 日本精品人妻无码免费大全 | 久久精品一区二区三区四区 | 影音先锋中文字幕无码 | 日韩精品久久久肉伦网站 | 最近的中文字幕在线看视频 | 免费人成在线视频无码 | 18禁黄网站男男禁片免费观看 | 国产美女极度色诱视频www | 天天拍夜夜添久久精品大 | 欧美激情一区二区三区成人 | 一本久道高清无码视频 | 日本大乳高潮视频在线观看 | 99国产精品白浆在线观看免费 | 国产精品国产三级国产专播 | 98国产精品综合一区二区三区 | 欧美精品无码一区二区三区 | 国产一区二区三区精品视频 | 国精产品一区二区三区 | 啦啦啦www在线观看免费视频 | 国产精品亚洲lv粉色 | 精品厕所偷拍各类美女tp嘘嘘 | 狂野欧美性猛交免费视频 | 美女黄网站人色视频免费国产 | 99久久久无码国产精品免费 | 亚洲人成无码网www | 成人精品视频一区二区三区尤物 | 丰满人妻翻云覆雨呻吟视频 | 亚洲国产成人a精品不卡在线 | 久久精品国产亚洲精品 | 久久婷婷五月综合色国产香蕉 | 国产精品无码一区二区桃花视频 | 国产免费无码一区二区视频 | 99久久人妻精品免费一区 | 无套内射视频囯产 | 在线精品国产一区二区三区 | 国产日产欧产精品精品app | 精品国产成人一区二区三区 | 亚洲精品一区三区三区在线观看 | 国产一区二区三区四区五区加勒比 | 一二三四在线观看免费视频 | 无码国产激情在线观看 | 精品无码av一区二区三区 | 一区二区传媒有限公司 | 久久无码中文字幕免费影院蜜桃 | 成人无码视频免费播放 | 国产精品怡红院永久免费 | 国产两女互慰高潮视频在线观看 | 搡女人真爽免费视频大全 | 伊人久久大香线蕉av一区二区 | 亚洲日本一区二区三区在线 | 东京热男人av天堂 | 久久精品成人欧美大片 | 少妇被粗大的猛进出69影院 | 97精品人妻一区二区三区香蕉 | 久久精品99久久香蕉国产色戒 | 99久久精品日本一区二区免费 | 玩弄少妇高潮ⅹxxxyw | 在线 国产 欧美 亚洲 天堂 | 性生交大片免费看l | 精品一区二区三区波多野结衣 | 奇米影视888欧美在线观看 | 久久久久国色av免费观看性色 | 乱中年女人伦av三区 | 国产电影无码午夜在线播放 | 九九在线中文字幕无码 | 老熟妇乱子伦牲交视频 | 欧美亚洲日韩国产人成在线播放 | 大色综合色综合网站 | 欧美熟妇另类久久久久久不卡 | 天堂а√在线地址中文在线 | 亚洲爆乳无码专区 | 天天av天天av天天透 | 成人女人看片免费视频放人 | 国产精品国产三级国产专播 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲一区二区三区含羞草 | 国产亚洲精品久久久闺蜜 | 无码人妻精品一区二区三区下载 | 日本一卡二卡不卡视频查询 | 亚洲精品一区二区三区大桥未久 | 日韩av无码中文无码电影 | 亚洲国产成人a精品不卡在线 | 永久免费精品精品永久-夜色 | 性生交大片免费看l | 国产无遮挡吃胸膜奶免费看 | 久久久久99精品国产片 | 国产激情无码一区二区app | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | a在线亚洲男人的天堂 | 久久国语露脸国产精品电影 | 99久久婷婷国产综合精品青草免费 | www国产精品内射老师 | 久久久久久亚洲精品a片成人 | 中文字幕乱码亚洲无线三区 | 人妻插b视频一区二区三区 | www国产亚洲精品久久网站 | 精品久久久久久人妻无码中文字幕 | 日本一卡二卡不卡视频查询 | 波多野结衣av在线观看 | 精品国产一区二区三区四区 | 成年美女黄网站色大免费视频 | 日本精品高清一区二区 | 亚洲男人av香蕉爽爽爽爽 | 内射老妇bbwx0c0ck | 成熟女人特级毛片www免费 | 大肉大捧一进一出好爽视频 | 国产亚洲视频中文字幕97精品 | aa片在线观看视频在线播放 | 国产偷国产偷精品高清尤物 | 熟妇人妻无乱码中文字幕 | 女人和拘做爰正片视频 | 爆乳一区二区三区无码 | 丰满少妇女裸体bbw | 精品久久久久久人妻无码中文字幕 | 亚洲国产欧美国产综合一区 | 老熟妇仑乱视频一区二区 | 精品国产成人一区二区三区 | 人妻尝试又大又粗久久 | 九九热爱视频精品 | 国内精品人妻无码久久久影院 | 偷窥日本少妇撒尿chinese | 成人一区二区免费视频 | 色综合久久88色综合天天 | 欧美日韩久久久精品a片 | 国产肉丝袜在线观看 | 久久人人爽人人人人片 | 1000部夫妻午夜免费 | 波多野结衣 黑人 | 亚洲中文字幕成人无码 | 久久成人a毛片免费观看网站 | 高潮毛片无遮挡高清免费视频 | 爆乳一区二区三区无码 | 欧美亚洲日韩国产人成在线播放 | 国产真人无遮挡作爱免费视频 | 熟妇人妻无乱码中文字幕 | 欧美 日韩 人妻 高清 中文 | 人人妻人人澡人人爽人人精品浪潮 | 国产精品对白交换视频 | 在线播放亚洲第一字幕 | 夜夜躁日日躁狠狠久久av | 欧美freesex黑人又粗又大 | 国产精品美女久久久 | 免费看少妇作爱视频 | 亚洲日韩av一区二区三区中文 | 高潮毛片无遮挡高清免费视频 | 亚洲无人区午夜福利码高清完整版 | 综合激情五月综合激情五月激情1 | 夫妻免费无码v看片 | 夜夜躁日日躁狠狠久久av | 少妇无码一区二区二三区 | 麻豆国产丝袜白领秘书在线观看 | 香蕉久久久久久av成人 | 亚洲精品美女久久久久久久 | 狠狠色欧美亚洲狠狠色www | 亚洲日本一区二区三区在线 | 少妇性l交大片欧洲热妇乱xxx | 欧美性猛交内射兽交老熟妇 | 无码av最新清无码专区吞精 | 国产精品久久久久久久9999 | 人人妻人人澡人人爽欧美一区九九 | 国产色xx群视频射精 | 日本一区二区三区免费播放 | 国产av一区二区三区最新精品 | 老子影院午夜伦不卡 | 欧美 日韩 人妻 高清 中文 | 日本大香伊一区二区三区 | 老司机亚洲精品影院 | 奇米影视7777久久精品 | 丁香花在线影院观看在线播放 | 国产av无码专区亚洲awww | 亚洲人成网站色7799 | 精品无码成人片一区二区98 | 亚洲国产精品久久人人爱 | 亚洲综合久久一区二区 | 性欧美熟妇videofreesex | 久久人人爽人人爽人人片ⅴ | 婷婷丁香六月激情综合啪 | 日本爽爽爽爽爽爽在线观看免 | 好屌草这里只有精品 | 欧美 日韩 人妻 高清 中文 | 国产综合久久久久鬼色 | 乱人伦人妻中文字幕无码久久网 | 性做久久久久久久久 | 亚洲国产av美女网站 | 人人妻人人澡人人爽欧美精品 | 国产乱人伦偷精品视频 | 亚洲熟妇自偷自拍另类 | 亚洲日韩中文字幕在线播放 | 午夜熟女插插xx免费视频 | 成年美女黄网站色大免费视频 | 中文精品久久久久人妻不卡 | √天堂中文官网8在线 | 国产欧美亚洲精品a | 一本大道伊人av久久综合 | 内射后入在线观看一区 | 欧美国产日韩亚洲中文 | 波多野结衣av一区二区全免费观看 | 99视频精品全部免费免费观看 | 性开放的女人aaa片 | 亚洲一区二区三区偷拍女厕 | 久久综合九色综合97网 | 亚洲中文字幕无码一久久区 | 天堂亚洲免费视频 | 成人三级无码视频在线观看 | 丰满人妻翻云覆雨呻吟视频 | 特级做a爰片毛片免费69 | 大肉大捧一进一出好爽视频 | 国产综合在线观看 | 麻豆人妻少妇精品无码专区 | 色欲综合久久中文字幕网 | 一本无码人妻在中文字幕免费 | 国产成人无码一二三区视频 | 青青草原综合久久大伊人精品 | 国产农村妇女高潮大叫 | 精品人人妻人人澡人人爽人人 | 97se亚洲精品一区 | 精品乱码久久久久久久 | 国产一区二区三区影院 | 性欧美videos高清精品 | 亚洲日本在线电影 | 免费观看又污又黄的网站 | 久久国产精品萌白酱免费 | 色五月丁香五月综合五月 | 国色天香社区在线视频 | 亚洲精品www久久久 | 欧美老妇与禽交 | 成人精品一区二区三区中文字幕 | 国产午夜亚洲精品不卡下载 | 国产另类ts人妖一区二区 | 国产乡下妇女做爰 | 国产电影无码午夜在线播放 | 亚洲精品一区国产 | 色综合久久久无码中文字幕 | 噜噜噜亚洲色成人网站 | 亚洲成a人片在线观看日本 | 亚洲精品久久久久久一区二区 | 欧美性生交活xxxxxdddd | 久久精品一区二区三区四区 | 国产亚av手机在线观看 | 亚洲欧美日韩成人高清在线一区 | 日韩欧美群交p片內射中文 | 国产精品美女久久久网av | 牛和人交xxxx欧美 | 亚洲乱亚洲乱妇50p | av在线亚洲欧洲日产一区二区 | 人人爽人人澡人人人妻 | 精品国产青草久久久久福利 | 亚洲天堂2017无码中文 | 色老头在线一区二区三区 | 国产国语老龄妇女a片 | 人妻体内射精一区二区三四 | 亚洲成av人影院在线观看 | 国产深夜福利视频在线 | 亚洲成色www久久网站 | 中文字幕无码日韩专区 | 国产69精品久久久久app下载 | 久久久婷婷五月亚洲97号色 | 乌克兰少妇xxxx做受 | 亚洲综合精品香蕉久久网 | 日韩人妻无码中文字幕视频 | 亚洲精品综合一区二区三区在线 | 一本大道久久东京热无码av | 台湾无码一区二区 | 少女韩国电视剧在线观看完整 | 日本熟妇浓毛 | 国语自产偷拍精品视频偷 | 国产精品久免费的黄网站 | 精品国产一区二区三区四区在线看 | 久久久国产一区二区三区 | 18无码粉嫩小泬无套在线观看 | 久久久成人毛片无码 | 内射爽无广熟女亚洲 | 精品国产精品久久一区免费式 | 亚洲色www成人永久网址 | 国产成人综合在线女婷五月99播放 | 1000部夫妻午夜免费 | 日日橹狠狠爱欧美视频 | 久久综合九色综合97网 | 永久免费观看美女裸体的网站 | 久久99精品国产麻豆蜜芽 | 精品人人妻人人澡人人爽人人 | 国产成人综合色在线观看网站 | av在线亚洲欧洲日产一区二区 | 婷婷五月综合激情中文字幕 | 特黄特色大片免费播放器图片 | 国产精品对白交换视频 | 亚洲成av人片在线观看无码不卡 | а√资源新版在线天堂 | 伊人久久大香线蕉午夜 | 久久综合狠狠综合久久综合88 | 亚洲理论电影在线观看 | 亚洲欧美日韩综合久久久 | 国产色视频一区二区三区 | 成人欧美一区二区三区黑人 | 国产精品久久精品三级 | 日韩亚洲欧美精品综合 | 国产成人无码专区 | 久久伊人色av天堂九九小黄鸭 | 国产精品福利视频导航 | 丝袜美腿亚洲一区二区 | 国产成人无码一二三区视频 | 国精产品一品二品国精品69xx | 亚洲成av人片在线观看无码不卡 | 人人妻在人人 | 国产xxx69麻豆国语对白 | 麻豆果冻传媒2021精品传媒一区下载 | 波多野42部无码喷潮在线 | 东京热一精品无码av | 少妇一晚三次一区二区三区 | 麻豆成人精品国产免费 | 亚洲 日韩 欧美 成人 在线观看 | 久久综合给久久狠狠97色 | 久久精品无码一区二区三区 | 久久zyz资源站无码中文动漫 | 一个人免费观看的www视频 | 久久婷婷五月综合色国产香蕉 | 国产成人精品三级麻豆 | 久久精品中文闷骚内射 | 在线播放亚洲第一字幕 | 蜜桃视频插满18在线观看 | 欧美日韩久久久精品a片 | 老头边吃奶边弄进去呻吟 | 97夜夜澡人人爽人人喊中国片 | 久久午夜夜伦鲁鲁片无码免费 | 久久97精品久久久久久久不卡 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 在线观看国产一区二区三区 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品国产一区二区三区四区在线看 | 曰本女人与公拘交酡免费视频 | 日韩av无码一区二区三区不卡 | 亚洲精品久久久久中文第一幕 | 东北女人啪啪对白 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲人成网站在线播放942 | 中文字幕乱码亚洲无线三区 | 久久无码中文字幕免费影院蜜桃 | 精品欧洲av无码一区二区三区 | 国产精品自产拍在线观看 | 未满小14洗澡无码视频网站 | 无码人妻久久一区二区三区不卡 | 99久久精品日本一区二区免费 | 激情内射亚州一区二区三区爱妻 | 欧美 亚洲 国产 另类 | 扒开双腿疯狂进出爽爽爽视频 | 日本护士xxxxhd少妇 | 国产精品久久久久无码av色戒 | 国产精品人妻一区二区三区四 | 97夜夜澡人人爽人人喊中国片 | 成人欧美一区二区三区黑人免费 | 久久无码中文字幕免费影院蜜桃 | 精品无码国产一区二区三区av | 亚洲最大成人网站 | 亚洲色大成网站www国产 | 欧美乱妇无乱码大黄a片 | 欧美 日韩 人妻 高清 中文 | 久久亚洲中文字幕无码 | 99精品国产综合久久久久五月天 | 少妇性l交大片欧洲热妇乱xxx | 精品国产一区av天美传媒 | 成人精品视频一区二区 | 小sao货水好多真紧h无码视频 | 亚洲精品国产精品乱码视色 | 亚洲精品一区二区三区大桥未久 | 波多野结衣高清一区二区三区 | 高清不卡一区二区三区 | 日韩av无码中文无码电影 | 国产热a欧美热a在线视频 | 97精品国产97久久久久久免费 | 精品乱子伦一区二区三区 | 欧美喷潮久久久xxxxx | 美女扒开屁股让男人桶 | 午夜福利不卡在线视频 | 亚洲男女内射在线播放 | 日本va欧美va欧美va精品 | 成年女人永久免费看片 | 国产午夜精品一区二区三区嫩草 | 国产精品美女久久久 | 曰本女人与公拘交酡免费视频 | 成人精品视频一区二区 | 最新版天堂资源中文官网 | 亚洲精品成a人在线观看 | 乱码午夜-极国产极内射 | 未满小14洗澡无码视频网站 | 精品 日韩 国产 欧美 视频 | 亚洲狠狠婷婷综合久久 | 无码福利日韩神码福利片 | 久久国产劲爆∧v内射 | 欧美野外疯狂做受xxxx高潮 | 无码国产乱人伦偷精品视频 | 西西人体www44rt大胆高清 | 性生交大片免费看女人按摩摩 | 国产高清不卡无码视频 | 思思久久99热只有频精品66 | 亚洲日韩av片在线观看 | 亚洲国产精品成人久久蜜臀 | 麻豆精品国产精华精华液好用吗 | 国产综合久久久久鬼色 | 色窝窝无码一区二区三区色欲 | 欧美人与物videos另类 | 日本熟妇大屁股人妻 | 成人精品一区二区三区中文字幕 | 99久久精品午夜一区二区 | 最近中文2019字幕第二页 | 欧美xxxxx精品 | 国产亲子乱弄免费视频 | av无码不卡在线观看免费 | 最近的中文字幕在线看视频 | 国精产品一区二区三区 | 无码人妻丰满熟妇区毛片18 | av人摸人人人澡人人超碰下载 | 国产亚洲精品久久久久久国模美 | 最新国产麻豆aⅴ精品无码 | 图片小说视频一区二区 | 亚洲狠狠色丁香婷婷综合 | 少妇厨房愉情理9仑片视频 | 一本大道伊人av久久综合 | 日韩av激情在线观看 | 精品一区二区不卡无码av | 在教室伦流澡到高潮hnp视频 | 97无码免费人妻超级碰碰夜夜 | 国产精品二区一区二区aⅴ污介绍 | 亚洲一区二区三区 | 牛和人交xxxx欧美 | 国产精品人人妻人人爽 | 国产精品亚洲综合色区韩国 | 日日天日日夜日日摸 | 漂亮人妻洗澡被公强 日日躁 | 97se亚洲精品一区 | 成人无码视频在线观看网站 | 日本一区二区更新不卡 | 久久久婷婷五月亚洲97号色 | 亚洲 激情 小说 另类 欧美 | 国产 浪潮av性色四虎 | 小鲜肉自慰网站xnxx | 强伦人妻一区二区三区视频18 | 日韩精品成人一区二区三区 | 2020久久香蕉国产线看观看 | 67194成是人免费无码 | 精品国偷自产在线视频 | 久久精品成人欧美大片 | 国产一区二区三区四区五区加勒比 | 久久97精品久久久久久久不卡 | 亚洲自偷自偷在线制服 | 国产精品久久国产三级国 | 99国产精品白浆在线观看免费 | 亚洲大尺度无码无码专区 | 国产情侣作爱视频免费观看 | 少妇人妻av毛片在线看 | 丰满人妻翻云覆雨呻吟视频 | 黑人粗大猛烈进出高潮视频 | 强奷人妻日本中文字幕 | 亚洲国产精品久久久天堂 | 六月丁香婷婷色狠狠久久 | 131美女爱做视频 | 波多野结衣一区二区三区av免费 | 亚洲男女内射在线播放 | 亚洲狠狠婷婷综合久久 | 精品无码av一区二区三区 | 色狠狠av一区二区三区 | 成 人影片 免费观看 | 我要看www免费看插插视频 | 国产肉丝袜在线观看 | 日韩精品a片一区二区三区妖精 | 国产xxx69麻豆国语对白 | 国产麻豆精品精东影业av网站 | 亚洲一区av无码专区在线观看 | 欧美成人家庭影院 | 波多野结衣av一区二区全免费观看 | 俺去俺来也www色官网 | 色欲人妻aaaaaaa无码 | 久久久久久久久888 | 久久99久久99精品中文字幕 | 久久精品国产大片免费观看 | 国产麻豆精品一区二区三区v视界 | 最近的中文字幕在线看视频 | 亚洲成在人网站无码天堂 | av人摸人人人澡人人超碰下载 | 中文字幕av伊人av无码av | 欧美人与动性行为视频 | 男女超爽视频免费播放 | 狠狠色丁香久久婷婷综合五月 | www国产亚洲精品久久网站 | 日欧一片内射va在线影院 | √8天堂资源地址中文在线 | 久久97精品久久久久久久不卡 | 亚洲日本一区二区三区在线 | 国产猛烈高潮尖叫视频免费 | 亚洲小说春色综合另类 | 在线精品国产一区二区三区 | 十八禁视频网站在线观看 | 精品无人区无码乱码毛片国产 | 免费无码午夜福利片69 | 日韩欧美群交p片內射中文 | 欧美人妻一区二区三区 | 久久国产劲爆∧v内射 | 久久久精品人妻久久影视 | 亚洲人亚洲人成电影网站色 | 久久久www成人免费毛片 | 亚洲日韩精品欧美一区二区 | 一本久道高清无码视频 | 午夜肉伦伦影院 | 亚洲中文字幕久久无码 | 亚洲中文字幕av在天堂 | 国产欧美亚洲精品a | 欧美国产亚洲日韩在线二区 | 久久久精品456亚洲影院 | 午夜时刻免费入口 | 男人的天堂av网站 | 日日噜噜噜噜夜夜爽亚洲精品 | 任你躁国产自任一区二区三区 | 麻豆精品国产精华精华液好用吗 | 亚洲精品中文字幕久久久久 | 亚洲综合精品香蕉久久网 | 人妻少妇精品无码专区动漫 | 亚洲精品国产品国语在线观看 | 亚洲乱亚洲乱妇50p | 午夜福利电影 | 日韩亚洲欧美中文高清在线 | 国产69精品久久久久app下载 | 狠狠噜狠狠狠狠丁香五月 | 任你躁国产自任一区二区三区 | 无码人妻出轨黑人中文字幕 | 激情亚洲一区国产精品 | 无码人妻丰满熟妇区毛片18 | 日韩欧美中文字幕在线三区 | 999久久久国产精品消防器材 | 牲欲强的熟妇农村老妇女 | 55夜色66夜色国产精品视频 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 西西人体www44rt大胆高清 | 在线看片无码永久免费视频 | 亚洲 欧美 激情 小说 另类 | 丝袜美腿亚洲一区二区 | 人妻熟女一区 | 97精品人妻一区二区三区香蕉 | 色婷婷综合中文久久一本 | 久久99精品久久久久久 | 中文无码成人免费视频在线观看 | 两性色午夜免费视频 | 亚洲 另类 在线 欧美 制服 | 帮老师解开蕾丝奶罩吸乳网站 | 欧美35页视频在线观看 | 成人片黄网站色大片免费观看 | 又色又爽又黄的美女裸体网站 | 老头边吃奶边弄进去呻吟 | 又紧又大又爽精品一区二区 | 女人被男人爽到呻吟的视频 | 国产亚洲tv在线观看 | 国产真实伦对白全集 | 3d动漫精品啪啪一区二区中 | 人人妻人人藻人人爽欧美一区 | 亚洲精品一区国产 | 国产成人无码av在线影院 | 最近的中文字幕在线看视频 | 中文精品无码中文字幕无码专区 | 精品偷拍一区二区三区在线看 | 久久精品国产一区二区三区肥胖 | 东京热男人av天堂 | 亚洲精品一区二区三区在线观看 | 人妻无码久久精品人妻 | 精品欧洲av无码一区二区三区 | 国产亚洲精品久久久久久大师 | 中国女人内谢69xxxxxa片 | 精品国产aⅴ无码一区二区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 少妇性l交大片欧洲热妇乱xxx | 国产无遮挡又黄又爽又色 | 国产精品鲁鲁鲁 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲а∨天堂久久精品2021 | 老头边吃奶边弄进去呻吟 | 国产精品久久久久影院嫩草 | 国产真实夫妇视频 | 曰韩少妇内射免费播放 | 国产莉萝无码av在线播放 | 免费国产成人高清在线观看网站 | 女人高潮内射99精品 | 亚洲国产精品无码一区二区三区 | 国产成人综合在线女婷五月99播放 | 日日麻批免费40分钟无码 | 国产午夜福利亚洲第一 | 综合人妻久久一区二区精品 | 久久综合狠狠综合久久综合88 | 扒开双腿吃奶呻吟做受视频 | 日产国产精品亚洲系列 | 免费视频欧美无人区码 | 亚洲国产精品一区二区美利坚 | 久久国产精品偷任你爽任你 | 乱码av麻豆丝袜熟女系列 | 日韩精品无码一本二本三本色 | 亚欧洲精品在线视频免费观看 | 欧美人妻一区二区三区 | 成在人线av无码免观看麻豆 | 精品国产av色一区二区深夜久久 | 成人性做爰aaa片免费看不忠 | 97色伦图片97综合影院 | 亚洲国产成人a精品不卡在线 | 亚洲の无码国产の无码步美 | 熟妇人妻激情偷爽文 | 国产情侣作爱视频免费观看 | 久久久久久久久蜜桃 | 欧美激情一区二区三区成人 | 熟妇激情内射com | 成人免费无码大片a毛片 | 亚洲经典千人经典日产 | 久久精品国产日本波多野结衣 | 亚洲高清偷拍一区二区三区 | 成人免费视频视频在线观看 免费 | 97夜夜澡人人爽人人喊中国片 | 久在线观看福利视频 | 老熟妇仑乱视频一区二区 | 国产精品无码永久免费888 | 亚洲乱码国产乱码精品精 | 国产av无码专区亚洲a∨毛片 | www国产亚洲精品久久久日本 | 性史性农村dvd毛片 | 1000部啪啪未满十八勿入下载 | 久久97精品久久久久久久不卡 | 欧美日韩久久久精品a片 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲成在人网站无码天堂 | 无码av中文字幕免费放 | 97久久国产亚洲精品超碰热 | 亚洲欧美国产精品专区久久 | 国产成人精品视频ⅴa片软件竹菊 | 男人和女人高潮免费网站 | 久久国内精品自在自线 | 免费观看又污又黄的网站 | 国精品人妻无码一区二区三区蜜柚 | 人妻夜夜爽天天爽三区 | 无码任你躁久久久久久久 | 亚洲区欧美区综合区自拍区 | 国产成人一区二区三区别 | 久久国产劲爆∧v内射 | 日日摸日日碰夜夜爽av | 人妻天天爽夜夜爽一区二区 | 欧美丰满少妇xxxx性 | 色窝窝无码一区二区三区色欲 | 国产sm调教视频在线观看 | 久久99久久99精品中文字幕 | 亚洲国产一区二区三区在线观看 | 在线看片无码永久免费视频 | 伊人久久大香线蕉av一区二区 | 无码一区二区三区在线 | 久久99精品久久久久婷婷 | 99久久婷婷国产综合精品青草免费 | 一本精品99久久精品77 | 巨爆乳无码视频在线观看 | 人妻体内射精一区二区三四 | 精品亚洲韩国一区二区三区 | 午夜熟女插插xx免费视频 | 国产精品久免费的黄网站 | 99久久精品午夜一区二区 | 亚洲中文无码av永久不收费 | 国内精品久久久久久中文字幕 | 亚洲国产成人av在线观看 | 国产无遮挡又黄又爽免费视频 | 天天躁夜夜躁狠狠是什么心态 | 无码任你躁久久久久久久 | 性啪啪chinese东北女人 | 久久99精品久久久久久动态图 | 丰满护士巨好爽好大乳 | 亚洲欧美精品aaaaaa片 | 大乳丰满人妻中文字幕日本 | 国产精品18久久久久久麻辣 | 中文字幕乱码亚洲无线三区 | 亚洲精品国产品国语在线观看 | 国产va免费精品观看 | 亚洲成a人片在线观看无码 | 亚欧洲精品在线视频免费观看 | 亚洲精品国产品国语在线观看 | 日韩欧美中文字幕在线三区 | 一本久久a久久精品vr综合 | 亚洲欧美综合区丁香五月小说 | 东京一本一道一二三区 | 波多野结衣一区二区三区av免费 | 国产成人无码一二三区视频 | 日韩精品成人一区二区三区 | 又色又爽又黄的美女裸体网站 | 青春草在线视频免费观看 | 风流少妇按摩来高潮 | 亲嘴扒胸摸屁股激烈网站 | 波多野结衣一区二区三区av免费 | 亚洲成av人综合在线观看 | 97久久国产亚洲精品超碰热 | 日本一本二本三区免费 | 欧美亚洲日韩国产人成在线播放 | 久久午夜无码鲁丝片午夜精品 | 亚洲熟女一区二区三区 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲男人av天堂午夜在 | 国产无套粉嫩白浆在线 | 欧美精品无码一区二区三区 | 熟妇人妻激情偷爽文 | 无码福利日韩神码福利片 | 又粗又大又硬又长又爽 | 无码吃奶揉捏奶头高潮视频 | 国产疯狂伦交大片 | 亚洲国产精品一区二区第一页 | 欧美老人巨大xxxx做受 | 国产精品久久精品三级 | 88国产精品欧美一区二区三区 | 麻豆人妻少妇精品无码专区 | 日韩精品一区二区av在线 | 国产超碰人人爽人人做人人添 | 精品人妻人人做人人爽 | 国产精品毛多多水多 | 亚洲男女内射在线播放 | 色欲人妻aaaaaaa无码 | 国产xxx69麻豆国语对白 | 欧美 日韩 人妻 高清 中文 | 无码av免费一区二区三区试看 | 波多野结衣一区二区三区av免费 | 欧美人与禽猛交狂配 | 亚洲国产精品久久久久久 | 亚洲a无码综合a国产av中文 | 中文字幕无码视频专区 | 亚洲中文字幕在线观看 | 久久久精品人妻久久影视 | 久久精品中文字幕一区 | 精品国偷自产在线视频 | 55夜色66夜色国产精品视频 | 丰满护士巨好爽好大乳 | 精品国产精品久久一区免费式 | 少妇人妻大乳在线视频 | 亚无码乱人伦一区二区 | 国产精品亚洲综合色区韩国 | 精品国产精品久久一区免费式 | 亚洲自偷自拍另类第1页 | 亚洲精品久久久久久久久久久 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品沙发午睡系列 | 东京热无码av男人的天堂 | 成在人线av无码免费 | 久久国产劲爆∧v内射 | 67194成是人免费无码 | 亚洲精品国产精品乱码不卡 | 精品aⅴ一区二区三区 | 亚洲精品综合五月久久小说 | 国产手机在线αⅴ片无码观看 | 欧美人与牲动交xxxx | 亚洲欧美国产精品专区久久 | 国产精品久久久久久亚洲毛片 | 亚洲精品国产a久久久久久 | 亚洲一区二区三区播放 | 88国产精品欧美一区二区三区 | 国产偷抇久久精品a片69 | 久久无码专区国产精品s | 久久国产精品萌白酱免费 | 性欧美熟妇videofreesex | 成人性做爰aaa片免费看 | 一个人看的www免费视频在线观看 | 国产猛烈高潮尖叫视频免费 | 国产精品无码一区二区桃花视频 | 日韩 欧美 动漫 国产 制服 | 伊人久久大香线蕉av一区二区 | 国产乱人伦偷精品视频 | 久久精品丝袜高跟鞋 | 人妻aⅴ无码一区二区三区 | 国产成人精品视频ⅴa片软件竹菊 | 国产亚洲精品精品国产亚洲综合 | 伊人久久大香线蕉av一区二区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产午夜无码精品免费看 | 小鲜肉自慰网站xnxx | 激情五月综合色婷婷一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 精品国产一区二区三区av 性色 | 国产特级毛片aaaaaaa高清 | 亚洲国产成人a精品不卡在线 | 清纯唯美经典一区二区 | 麻花豆传媒剧国产免费mv在线 | 伊人久久大香线蕉亚洲 | 国产黄在线观看免费观看不卡 | 国产精品嫩草久久久久 | 99精品久久毛片a片 | 性做久久久久久久免费看 | 亚洲熟妇色xxxxx欧美老妇y | 国产午夜亚洲精品不卡 | 亚洲 激情 小说 另类 欧美 | 性色av无码免费一区二区三区 | 日日摸夜夜摸狠狠摸婷婷 | 精品国产一区二区三区四区 | 精品日本一区二区三区在线观看 | 日本在线高清不卡免费播放 | 久久精品国产99久久6动漫 | 18无码粉嫩小泬无套在线观看 | 亚洲成a人片在线观看日本 | 免费人成在线观看网站 | 精品国产青草久久久久福利 | 亚洲自偷自拍另类第1页 | 亚洲成a人片在线观看日本 | 狠狠噜狠狠狠狠丁香五月 | 风流少妇按摩来高潮 | 国产九九九九九九九a片 | 男人扒开女人内裤强吻桶进去 | 亚洲 日韩 欧美 成人 在线观看 | 性色欲网站人妻丰满中文久久不卡 | 在线亚洲高清揄拍自拍一品区 | 亚洲综合在线一区二区三区 | 亚洲日韩av一区二区三区中文 | 天天躁夜夜躁狠狠是什么心态 | 捆绑白丝粉色jk震动捧喷白浆 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲熟熟妇xxxx | 久久久www成人免费毛片 | 在线а√天堂中文官网 | 暴力强奷在线播放无码 | 国产国产精品人在线视 | 熟妇激情内射com | 奇米影视7777久久精品人人爽 | 中文字幕无码日韩欧毛 | 性史性农村dvd毛片 | 日韩成人一区二区三区在线观看 | 精品人妻人人做人人爽夜夜爽 | 麻豆成人精品国产免费 | 欧美熟妇另类久久久久久不卡 | 又紧又大又爽精品一区二区 | 无码人中文字幕 | 少妇性俱乐部纵欲狂欢电影 | 性欧美疯狂xxxxbbbb | 鲁鲁鲁爽爽爽在线视频观看 | 国产情侣作爱视频免费观看 | 在线 国产 欧美 亚洲 天堂 | 日韩人妻无码中文字幕视频 | 人人爽人人澡人人人妻 | 国产99久久精品一区二区 | 亚洲成在人网站无码天堂 | 亚洲精品国产品国语在线观看 | 亚欧洲精品在线视频免费观看 | 亚洲阿v天堂在线 | 国产乱子伦视频在线播放 | 亚洲欧美综合区丁香五月小说 | 三上悠亚人妻中文字幕在线 | 亚洲中文字幕无码中文字在线 | 亚洲精品中文字幕 | 亚洲の无码国产の无码步美 | 日韩人妻无码一区二区三区久久99 | www一区二区www免费 | 国产人妻精品午夜福利免费 | 无码国产乱人伦偷精品视频 | 永久免费精品精品永久-夜色 | 国产偷国产偷精品高清尤物 | 久久久精品欧美一区二区免费 | 99久久久国产精品无码免费 | 一区二区三区乱码在线 | 欧洲 | 久久99精品国产麻豆蜜芽 | 国产精品多人p群无码 | 成人无码影片精品久久久 | 夜精品a片一区二区三区无码白浆 | 娇妻被黑人粗大高潮白浆 | 久久亚洲中文字幕精品一区 | 国产真实夫妇视频 | 久久久精品成人免费观看 | 我要看www免费看插插视频 | 人人爽人人爽人人片av亚洲 | 亚洲一区二区三区在线观看网站 | 又黄又爽又色的视频 | 国产精品免费大片 | 人人超人人超碰超国产 | 亚洲娇小与黑人巨大交 | 国产精品久久久av久久久 | 荫蒂被男人添的好舒服爽免费视频 | 伊人久久大香线焦av综合影院 | 无码精品国产va在线观看dvd | 婷婷综合久久中文字幕蜜桃三电影 | 熟妇人妻无码xxx视频 | 国产精品亚洲综合色区韩国 | 中文字幕人成乱码熟女app | 日本欧美一区二区三区乱码 | www成人国产高清内射 | 丝袜人妻一区二区三区 | 中文字幕无码乱人伦 | 最新国产乱人伦偷精品免费网站 | 国内揄拍国内精品少妇国语 | 久久精品女人的天堂av | 国产精品第一国产精品 | 初尝人妻少妇中文字幕 | 少妇太爽了在线观看 | 97精品国产97久久久久久免费 | 欧美熟妇另类久久久久久多毛 | 性欧美牲交在线视频 | 天天综合网天天综合色 | 欧美 丝袜 自拍 制服 另类 | 中文字幕无码乱人伦 | 国产精品成人av在线观看 | 中文字幕+乱码+中文字幕一区 | 无码国模国产在线观看 | 99精品无人区乱码1区2区3区 | 国产特级毛片aaaaaaa高清 | 无码纯肉视频在线观看 | 日本www一道久久久免费榴莲 | 在线观看欧美一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 一本色道久久综合狠狠躁 | 中文字幕日产无线码一区 | 狠狠综合久久久久综合网 | 扒开双腿吃奶呻吟做受视频 | 中文字幕亚洲情99在线 | 成人欧美一区二区三区黑人免费 | 18黄暴禁片在线观看 | 香港三级日本三级妇三级 | 国产精品人人爽人人做我的可爱 | 午夜精品久久久久久久久 | 中文字幕色婷婷在线视频 | 亚洲精品一区三区三区在线观看 | 成人亚洲精品久久久久软件 | 激情内射亚州一区二区三区爱妻 | 无码精品人妻一区二区三区av | 色一情一乱一伦一视频免费看 | 亚洲精品无码人妻无码 | 精品水蜜桃久久久久久久 | 99国产欧美久久久精品 | а√资源新版在线天堂 | 久久综合给合久久狠狠狠97色 | 国产suv精品一区二区五 | 精品亚洲韩国一区二区三区 | 免费看少妇作爱视频 | 乌克兰少妇性做爰 | 国产亚洲人成在线播放 | 色五月五月丁香亚洲综合网 | 中文字幕无码日韩专区 | aa片在线观看视频在线播放 | 久久精品人人做人人综合试看 | 国产美女极度色诱视频www | 欧美老妇与禽交 | 成人一在线视频日韩国产 | 婷婷六月久久综合丁香 | 水蜜桃色314在线观看 | 国产猛烈高潮尖叫视频免费 | 少妇激情av一区二区 | 永久免费观看国产裸体美女 | 欧美成人免费全部网站 | 亚洲一区二区三区国产精华液 | 无码精品国产va在线观看dvd | 任你躁在线精品免费 | 亚洲色成人中文字幕网站 | 国产在线精品一区二区高清不卡 | 久久精品成人欧美大片 | 纯爱无遮挡h肉动漫在线播放 | 男人扒开女人内裤强吻桶进去 | 亚洲啪av永久无码精品放毛片 | 日本又色又爽又黄的a片18禁 | 波多野结衣av在线观看 | 久久精品女人的天堂av | 成人三级无码视频在线观看 | 99久久精品日本一区二区免费 | 国产无套内射久久久国产 | 内射爽无广熟女亚洲 | 亚洲乱亚洲乱妇50p | 激情国产av做激情国产爱 | 高清国产亚洲精品自在久久 | 中文毛片无遮挡高清免费 | 久久久久成人精品免费播放动漫 | 正在播放老肥熟妇露脸 | 国产网红无码精品视频 | 日韩无码专区 | 精品国产精品久久一区免费式 | 欧美人与动性行为视频 | 亚洲经典千人经典日产 | 亚洲色大成网站www国产 | 色窝窝无码一区二区三区色欲 | 无码帝国www无码专区色综合 | 婷婷丁香五月天综合东京热 | 人人澡人摸人人添 | 亚洲成av人影院在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 超碰97人人做人人爱少妇 | aⅴ亚洲 日韩 色 图网站 播放 | 成人片黄网站色大片免费观看 | 国产午夜福利亚洲第一 | 大地资源中文第3页 | 国内揄拍国内精品少妇国语 | 成 人影片 免费观看 | 欧美性生交活xxxxxdddd | 亚洲精品国产品国语在线观看 | 色婷婷香蕉在线一区二区 | 国产两女互慰高潮视频在线观看 | 亚洲日韩av一区二区三区四区 | 亚洲精品美女久久久久久久 | 色综合久久久久综合一本到桃花网 | 欧美变态另类xxxx | 国产一区二区三区日韩精品 | 国产另类ts人妖一区二区 | 永久免费精品精品永久-夜色 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 狂野欧美性猛交免费视频 | 人妻无码久久精品人妻 | 蜜桃av抽搐高潮一区二区 | 亚洲国产精品成人久久蜜臀 | 日本xxxx色视频在线观看免费 | 99riav国产精品视频 | 午夜精品一区二区三区的区别 | 无码av中文字幕免费放 | 国产精品亚洲一区二区三区喷水 | 精品国偷自产在线 | 国产亚洲视频中文字幕97精品 | 国产在线无码精品电影网 | 无码乱肉视频免费大全合集 | 亚洲综合伊人久久大杳蕉 | 国产午夜视频在线观看 | 人人妻人人澡人人爽欧美一区九九 | а√资源新版在线天堂 | 国产办公室秘书无码精品99 | 三上悠亚人妻中文字幕在线 | 日本大香伊一区二区三区 | 色婷婷综合中文久久一本 | 俺去俺来也在线www色官网 | 欧美乱妇无乱码大黄a片 | 夜夜躁日日躁狠狠久久av | 三级4级全黄60分钟 | 国产内射老熟女aaaa | 亚洲成av人综合在线观看 | 久久久精品欧美一区二区免费 | 欧美zoozzooz性欧美 | 麻豆精品国产精华精华液好用吗 | 欧美熟妇另类久久久久久多毛 | 一本无码人妻在中文字幕免费 | 日本一区二区更新不卡 | 一个人看的www免费视频在线观看 | 在线观看欧美一区二区三区 | 国精产品一区二区三区 | 国产午夜福利亚洲第一 | 国产激情无码一区二区app | 精品久久久久久人妻无码中文字幕 | 日韩精品乱码av一区二区 | 少妇厨房愉情理9仑片视频 | 亚洲码国产精品高潮在线 | 伊人久久大香线焦av综合影院 | 国产内射爽爽大片视频社区在线 | 婷婷五月综合激情中文字幕 | 欧美怡红院免费全部视频 | 国产av人人夜夜澡人人爽麻豆 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产无套内射久久久国产 | 色综合久久久久综合一本到桃花网 | 精品国产精品久久一区免费式 | 国产福利视频一区二区 | 亚洲国产精品成人久久蜜臀 | 亚洲日本一区二区三区在线 | 未满小14洗澡无码视频网站 | 无码人妻久久一区二区三区不卡 | 国产超级va在线观看视频 | 中文字幕色婷婷在线视频 | 麻豆国产丝袜白领秘书在线观看 | 少妇愉情理伦片bd | 日日摸天天摸爽爽狠狠97 | 动漫av一区二区在线观看 | 在线看片无码永久免费视频 | www成人国产高清内射 | 一本色道久久综合亚洲精品不卡 | 女人高潮内射99精品 | 国产欧美亚洲精品a | 国产一区二区三区精品视频 | 丰满人妻一区二区三区免费视频 | 久久人妻内射无码一区三区 | 88国产精品欧美一区二区三区 | 中文字幕+乱码+中文字幕一区 | 亚洲一区二区三区国产精华液 | 老头边吃奶边弄进去呻吟 | 精品国产乱码久久久久乱码 | 中文字幕人妻无码一区二区三区 | 亚洲国产精品久久久天堂 | 麻豆蜜桃av蜜臀av色欲av | 成人亚洲精品久久久久软件 | 人人妻人人澡人人爽欧美一区九九 | 一本无码人妻在中文字幕免费 | 欧美freesex黑人又粗又大 | 国产午夜福利100集发布 | 久久精品人人做人人综合试看 | 黑人巨大精品欧美黑寡妇 | 国产明星裸体无码xxxx视频 | 伊人久久婷婷五月综合97色 | 装睡被陌生人摸出水好爽 | 亚洲国产欧美在线成人 | 婷婷五月综合缴情在线视频 | 亚洲精品综合一区二区三区在线 | 欧美性生交活xxxxxdddd | 国产无遮挡又黄又爽又色 | 性生交大片免费看l | 久久综合给合久久狠狠狠97色 | 黑人巨大精品欧美黑寡妇 | 欧美三级a做爰在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 97人妻精品一区二区三区 | 亚洲色大成网站www | 国产九九九九九九九a片 | 东京热一精品无码av | 国产超碰人人爽人人做人人添 | 澳门永久av免费网站 | 久久久久亚洲精品中文字幕 | 久久无码专区国产精品s | 国产精品沙发午睡系列 | 俺去俺来也在线www色官网 | 99久久久国产精品无码免费 | 国产精品久久久午夜夜伦鲁鲁 | 色综合视频一区二区三区 | 亚洲 高清 成人 动漫 | 波多野结衣乳巨码无在线观看 | 奇米影视7777久久精品人人爽 | 久久国产36精品色熟妇 | 亚洲精品一区二区三区在线 | 岛国片人妻三上悠亚 | 国产做国产爱免费视频 | 99久久亚洲精品无码毛片 | 久久精品人人做人人综合 | 人妻熟女一区 | 少女韩国电视剧在线观看完整 | 无码av中文字幕免费放 | 天天躁夜夜躁狠狠是什么心态 | 欧美 日韩 人妻 高清 中文 | 亚洲人成网站免费播放 | 正在播放东北夫妻内射 | 国产黄在线观看免费观看不卡 | 日本饥渴人妻欲求不满 | 图片区 小说区 区 亚洲五月 | 麻豆果冻传媒2021精品传媒一区下载 | 奇米影视7777久久精品人人爽 | 亚洲国产综合无码一区 | 亚洲娇小与黑人巨大交 | 一本大道伊人av久久综合 | 人人妻人人澡人人爽人人精品浪潮 | 国产成人无码av一区二区 | √天堂资源地址中文在线 | 少妇性荡欲午夜性开放视频剧场 | 国产激情精品一区二区三区 | 亚洲国产一区二区三区在线观看 | 沈阳熟女露脸对白视频 | 亚洲综合精品香蕉久久网 | 精品欧洲av无码一区二区三区 | 国产在线精品一区二区高清不卡 | 在线天堂新版最新版在线8 | 熟妇激情内射com | 日本熟妇大屁股人妻 | 色五月五月丁香亚洲综合网 | 国产精品自产拍在线观看 | 国产精品18久久久久久麻辣 | 97无码免费人妻超级碰碰夜夜 | 国产午夜手机精彩视频 | 欧美日韩在线亚洲综合国产人 | 高清国产亚洲精品自在久久 | 风流少妇按摩来高潮 | 欧美 丝袜 自拍 制服 另类 | 亚洲高清偷拍一区二区三区 | 日韩成人一区二区三区在线观看 | 国产精品怡红院永久免费 | 亚洲色成人中文字幕网站 | 四十如虎的丰满熟妇啪啪 | 亚洲人成网站免费播放 | 人妻互换免费中文字幕 | 精品久久久无码中文字幕 | 久久精品国产日本波多野结衣 | 亚洲另类伦春色综合小说 | 国产精品亚洲专区无码不卡 | 人妻少妇精品无码专区二区 | 女高中生第一次破苞av | 粉嫩少妇内射浓精videos | 国产熟妇另类久久久久 | 久久99精品国产麻豆蜜芽 | 久久天天躁狠狠躁夜夜免费观看 | 久久精品国产99精品亚洲 | 亚洲精品鲁一鲁一区二区三区 | 日本欧美一区二区三区乱码 | 国产成人午夜福利在线播放 | 欧美午夜特黄aaaaaa片 | 少妇久久久久久人妻无码 | 欧美激情综合亚洲一二区 | 99久久亚洲精品无码毛片 | 亚洲国产欧美国产综合一区 | 国产内射爽爽大片视频社区在线 | 无码乱肉视频免费大全合集 | 国精产品一品二品国精品69xx | 国产成人精品必看 | 中文字幕人成乱码熟女app | 无码播放一区二区三区 | 丰腴饱满的极品熟妇 | 亚洲男女内射在线播放 | 乱码午夜-极国产极内射 | 亚洲日本va午夜在线电影 | 丰满少妇高潮惨叫视频 | 久久精品国产99久久6动漫 | 亚洲小说图区综合在线 | 欧美熟妇另类久久久久久多毛 | 国产高清不卡无码视频 | 久久久精品欧美一区二区免费 | 亚洲精品一区二区三区在线 | 久久国产精品精品国产色婷婷 | 乱人伦人妻中文字幕无码久久网 | 性生交大片免费看女人按摩摩 | 国产麻豆精品一区二区三区v视界 | 精品欧洲av无码一区二区三区 | 国产av无码专区亚洲awww | 国产亚洲精品久久久ai换 | 亚洲精品午夜无码电影网 | 香蕉久久久久久av成人 | 国产一区二区三区精品视频 | 国产成人av免费观看 | 97se亚洲精品一区 | 国产熟女一区二区三区四区五区 | 久久zyz资源站无码中文动漫 | 巨爆乳无码视频在线观看 | 成人无码视频在线观看网站 | 无码精品国产va在线观看dvd | 国产精品资源一区二区 | 中文亚洲成a人片在线观看 | 精品久久久久香蕉网 | 3d动漫精品啪啪一区二区中 | 在线欧美精品一区二区三区 | 国产人妻大战黑人第1集 | 久久久国产一区二区三区 | 九九热爱视频精品 | 色婷婷av一区二区三区之红樱桃 | 国产三级久久久精品麻豆三级 | 国产av一区二区精品久久凹凸 | 国产精品久久国产三级国 | 日本一卡2卡3卡四卡精品网站 | 老司机亚洲精品影院无码 | 久久久久人妻一区精品色欧美 | 日日噜噜噜噜夜夜爽亚洲精品 | 动漫av网站免费观看 | 亚洲无人区一区二区三区 | 中文字幕久久久久人妻 | 中文字幕无码av波多野吉衣 | 欧美日韩在线亚洲综合国产人 | 色欲人妻aaaaaaa无码 | 午夜嘿嘿嘿影院 | aⅴ在线视频男人的天堂 | 国产av一区二区精品久久凹凸 | 亚洲日韩一区二区三区 | 国産精品久久久久久久 | 澳门永久av免费网站 | 亚洲熟妇自偷自拍另类 | 日日橹狠狠爱欧美视频 | 欧美人与物videos另类 | 老熟女乱子伦 | 99久久人妻精品免费二区 | www国产亚洲精品久久网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 狠狠躁日日躁夜夜躁2020 | 色综合久久88色综合天天 | 捆绑白丝粉色jk震动捧喷白浆 | 97se亚洲精品一区 | 女人被男人爽到呻吟的视频 | 野外少妇愉情中文字幕 | 免费视频欧美无人区码 | 国产性生大片免费观看性 | 久久99精品国产麻豆 | 国产免费观看黄av片 | 丰满肥臀大屁股熟妇激情视频 | 亚洲欧美日韩综合久久久 | 亚洲 激情 小说 另类 欧美 | 美女张开腿让人桶 | 男人扒开女人内裤强吻桶进去 | 久久无码中文字幕免费影院蜜桃 | 亚洲va欧美va天堂v国产综合 | 国产成人精品三级麻豆 | 露脸叫床粗话东北少妇 | 人人澡人摸人人添 | 少妇的肉体aa片免费 | 中文字幕人妻无码一夲道 | 午夜免费福利小电影 | 亚洲 激情 小说 另类 欧美 | 亚洲国产精品一区二区美利坚 | 欧美大屁股xxxxhd黑色 | 国产成人精品一区二区在线小狼 | 四虎影视成人永久免费观看视频 | 99久久久无码国产精品免费 | 久久zyz资源站无码中文动漫 | √天堂资源地址中文在线 | 日韩成人一区二区三区在线观看 | 青青久在线视频免费观看 | 久久午夜无码鲁丝片午夜精品 | 色噜噜亚洲男人的天堂 | 日韩精品无码一本二本三本色 | 国产成人综合色在线观看网站 | 欧美日本免费一区二区三区 | 欧美性生交活xxxxxdddd | a国产一区二区免费入口 | 国产麻豆精品精东影业av网站 | 亚洲一区二区三区国产精华液 | 国产精品人人爽人人做我的可爱 | √天堂中文官网8在线 | 国产综合久久久久鬼色 | 亚洲精品中文字幕久久久久 | 少妇性荡欲午夜性开放视频剧场 | 久久亚洲中文字幕精品一区 | 在线 国产 欧美 亚洲 天堂 | 少妇的肉体aa片免费 | 成人女人看片免费视频放人 | 国产亲子乱弄免费视频 | 精品无人区无码乱码毛片国产 | 国产激情精品一区二区三区 | 久久综合九色综合欧美狠狠 | 国产亚av手机在线观看 | 伊人久久大香线蕉亚洲 | 荫蒂添的好舒服视频囗交 | 免费国产黄网站在线观看 | 99久久久无码国产aaa精品 | 天天爽夜夜爽夜夜爽 | 又色又爽又黄的美女裸体网站 | 国产熟妇高潮叫床视频播放 | 亚洲大尺度无码无码专区 | 国产内射爽爽大片视频社区在线 | 成人精品视频一区二区三区尤物 | 狂野欧美激情性xxxx | 色狠狠av一区二区三区 | 对白脏话肉麻粗话av | 男女超爽视频免费播放 | 日韩av无码一区二区三区 | 亚洲区小说区激情区图片区 | 无码免费一区二区三区 | yw尤物av无码国产在线观看 | 午夜性刺激在线视频免费 | 亚洲成熟女人毛毛耸耸多 | 欧美阿v高清资源不卡在线播放 | www国产精品内射老师 | 无码av免费一区二区三区试看 | 欧美激情内射喷水高潮 | 亚洲成a人片在线观看日本 | 成人影院yy111111在线观看 | 曰韩无码二三区中文字幕 | 亚洲欧美国产精品专区久久 | 国产激情精品一区二区三区 | 一区二区传媒有限公司 | 老子影院午夜伦不卡 | 99riav国产精品视频 | 国产欧美熟妇另类久久久 | 一本久久a久久精品vr综合 | 亚洲 欧美 激情 小说 另类 | 黑人大群体交免费视频 | 中文字幕日韩精品一区二区三区 | 黑人粗大猛烈进出高潮视频 | 久久天天躁夜夜躁狠狠 | 成在人线av无码免观看麻豆 | 国产精品丝袜黑色高跟鞋 | 欧美freesex黑人又粗又大 | 国产人妻精品午夜福利免费 | 日韩精品成人一区二区三区 | 欧美精品无码一区二区三区 | 中文字幕av伊人av无码av | 动漫av网站免费观看 | 国产精品二区一区二区aⅴ污介绍 | 好屌草这里只有精品 | 欧美变态另类xxxx | 日本一区二区三区免费高清 | 国产人成高清在线视频99最全资源 | 欧美亚洲国产一区二区三区 | 精品久久久无码人妻字幂 | 国产色精品久久人妻 | 午夜无码人妻av大片色欲 | 国产精品对白交换视频 | 精品人妻人人做人人爽 | 人妻与老人中文字幕 | 2019nv天堂香蕉在线观看 | 久久午夜无码鲁丝片 | 内射白嫩少妇超碰 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲va中文字幕无码久久不卡 | 一本久久伊人热热精品中文字幕 | 人人妻在人人 | 无码帝国www无码专区色综合 | 色综合久久中文娱乐网 | 性啪啪chinese东北女人 | 少妇人妻偷人精品无码视频 | 欧美自拍另类欧美综合图片区 | 久久综合色之久久综合 | 一二三四社区在线中文视频 | 在线播放免费人成毛片乱码 | 欧美日韩一区二区免费视频 | 国产精品.xx视频.xxtv | 亚洲va中文字幕无码久久不卡 | 又紧又大又爽精品一区二区 | 国产香蕉97碰碰久久人人 | 国产在线aaa片一区二区99 | 青春草在线视频免费观看 | 亚洲成色在线综合网站 | 欧美乱妇无乱码大黄a片 | 波多野结衣aⅴ在线 | 少妇人妻大乳在线视频 | 国产美女极度色诱视频www | 日日摸天天摸爽爽狠狠97 | 久久久国产精品无码免费专区 | 福利一区二区三区视频在线观看 | 国产精品自产拍在线观看 | 色综合天天综合狠狠爱 | 精品人妻中文字幕有码在线 | 又大又黄又粗又爽的免费视频 | 熟妇人妻中文av无码 | 国产超级va在线观看视频 | 国产后入清纯学生妹 | 无码国模国产在线观看 | 无码人妻出轨黑人中文字幕 | 国产精品久久精品三级 | 无码人妻丰满熟妇区五十路百度 | 欧美丰满熟妇xxxx | 亚洲精品一区二区三区婷婷月 | 国产精品亚洲一区二区三区喷水 | 无码一区二区三区在线观看 | 国产午夜无码精品免费看 | 美女黄网站人色视频免费国产 | 久久午夜夜伦鲁鲁片无码免费 | 97色伦图片97综合影院 | 无套内谢的新婚少妇国语播放 | 无码国产激情在线观看 | 国产人妻大战黑人第1集 | 性欧美大战久久久久久久 |