精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

多播的實現和需要注意的問題

網絡 網絡管理
網絡中存在三種傳輸概念,單播,多播,廣播,單播和廣播大家可能都很了解,單播,連接的建立是一對一的,廣播則是向一個網絡內所有用戶發送。

前段時間研究了一小段時間的網絡多播問題,自己很有感觸,把自己的經歷寫出來,希望有需要的可以少走一些彎路。

先說一下原理,我覺得這個還是需要說一下的。

網絡中存在三種傳輸概念,單播,多播,廣播,單播和廣播大家可能都很了解,單播,連接的建立是一對一的,廣播則是向一個網絡內所有用戶發送。

我們這里只說多播,多播的好處我就不說了,節省帶寬什么的。

其實我個人覺得,單播多播都可以看錯是某種意義上的廣播,單播可以理解為網絡只有一個用戶,多播則可以理解為是受限制的一組廣播用戶(指定的一組用戶)。

網絡中存在五種IP地址,A,B,C,D,E類

需要明白的一點事,IP地址分為兩部分,IP=類別+網絡號+主機號

多播的實現和需要注意的問題

其中,對于A類地址來說,10.0.0.0 ~ 10.255.255.255為私有地址,127.0.0.0~127.255.255.255為回環地址,主機ID全0標識一個網絡,主機ID全1表示廣播地址,B類地址:172.16.0.0 ~ 172.31.255.255為私有地址,主機ID全0標識一個網絡,主機ID全1表示廣播地址,C類地址:192.168.0.0 ~ 192.168.255.255為私有地址(這個應該很熟悉吧),主機ID全0標識一個網絡,主機ID全1表示廣播地址。

組播對應的MAC地址:01-00-5e-xx-xx-xx

映射關系:

 

 

多播只會由感興趣的端口接收,他是怎么知道這些端口的呢?這里就要說D類地址了。這里一定要理解一個概念:多播組。多播的數據是定向的發給一個多播組的,這樣凡是多播組內的成員就會收到數據,有人問了,網絡上有那么多多播組,是怎么知道要發給哪個組。這里就是D類地址了,D類地址充當了多播組的標識,記住,僅僅是標識。可以理解為,多播組的目的地址,多播組的ID。所有的主機可以選擇加入多播組,也就是被標記為一個該多播組的一個ID。如何加入多播組是技術問題,我們后面講。

那么接下來的問題是,分布在全球的這么多臺主機,如果美國的一臺主機加入了這個多播組,英國的一個主機也加入了同樣一個多播組,而我源頭是中國這邊的主機,那么他怎么發過去呢?

需要考慮的問題,數據包如何到達子網路由器(主機-路由器之間的組成員關系協議),數據包如何在公網內路由(路由器-路由器之間的組播路由協議)(轉發規則),數據如何被目的子網路由器接受并轉發。

首先,這個數據包要能到達你所在的子網的路由器,這一步如何實現的?答案,是IGMP協議。

IGMP(Internet Group Management Protocol),看名字就可以看出是因特網組播管理協議。是主機與路由器之間唯一的信令協議。目前有三個版本,V1,V2,V3(不同之處主要是V1,V2,V2是主動離開組播組,V1則是不會主動離開).通過用wireshark軟件抓包測試,你會發現,目前網絡上大部分是V2版本的組播協議包。主機向本地路由器發送一個IGMP,加入相對應的組播(組播地址端口,自己定義)。這樣主機是可以加入組播了,但是到來的組播數據包是如何知道數據包要發給誰呢?還是IGMP!當發現有數據包來的時候,本地路由器向本地子網內的主機發送一個查詢報文(IGMP),加入了多播組的主機則會發送一個回復給路由器(IGMP包),那后面就會轉發此數據包了。如果主機要離開組播組怎么辦呢?也是IGMP!主機只需要向路由器發送一個離開的消息(IGMP包)給路由器就可以了。

數據發送到路由器后,路由器根據什么將數據包轉發到其他路由器呢(公網內路由器的轉發)?答案是:域內組播路由協議及域間組播路由協議。其實個人感覺不需要區分這個域間和域內路由,我們只需要關心,數據包可以在因特網上自由轉發就可以了。這里需要知道的是兩個域內路由協議,PIM-SM,PIM-DM,DVMRP(主要區別是密集模式和稀疏模式區別)。路由器間的轉發需要的是這幾個路由協議,原理在網上一搜一大堆,我就不講了。這幾個協議主要在轉發,鄰居發現什么的有些區別,比如說剪枝策略。

組播的轉發利用了一個叫逆向路徑轉發策略(RPF),RPF協議決定是否轉發次數據包以及丟棄掉。

路由器檢查到達組播包的源地址,如果信息包是在可返回源站點的接口上到達,則RPF檢查成功,信息包被轉發如果RPF檢查失敗,丟棄信息包。

大家這個時候可能對這個有些概念,組播說的也很神乎,比如很省帶寬,畢竟是一發多,只需要發送一份,但是可以很多都接受。比單播好用多了,那你可能會問,那組播的應用應該很廣了?答案是肯定的,組播的應用很多,比如多媒體會議,聯網游戲等。但是有個問題目前確實致命的!應用的條件:路由器沒有開啟這個功能!

大致可以說一下組播路由的過程,數據包從源端口出發,經路由器轉發(這個應該是所有路由器都會經過,可是所有哦),然后到達有目的組播的成員則轉發給他。這個時候你可能會發現一個問題,如果組播大規模應用的話,那網絡上這種數據包會非常多,畢竟誰都可以創建組播組,然后發送,路由器是要進行轉發的。

我自己本來也是想實現一個組播功能的類似于視頻會議的應用的,但是測試的時候發現,數據包就是沖不出去內網,只能在局域網內轉(局域網內可以收到)。后來發現是路由器雖然有這個功能,但是默認都給關閉了。記得當時查這個資料的時候,在一個路由器管理員配置的一個BBS,上面一個人發帖,有人回答說:管理員如果開啟這個功能,那只能說有病。足可以看出,目前路由器對組播支持的尷尬處境。

所以這里只是提醒一下做這個的朋友,路由器對這個支持不是很好,如果要做的話多考慮一下。可能我理解不對,如果有做出來這個的,希望能提供觀點哈。

附一個簡單的多播程序,同一子網下運行無誤,只需要打開這個客戶端就可以。兩個進程,一個負責發,一個負責接收。

  1. #include <iostream>   
  2. #include <winsock2.h> //注意這里的include文件順序   
  3. #include <Ws2tcpip.h>   
  4. #include <process.h> //_beginthread要求   
  5.    
  6. #pragma comment(lib, "ws2_32.lib")   
  7.    
  8. using namespace std;   
  9.    
  10. const char* MULTICAST_IP = "230.1.1.99"; //多播組地址   
  11. const int MULTICAST_PORT = 2002; //多播組端口   
  12.    
  13. const int BUFFER_SIZE = 1024;   
  14.    
  15. void do_send(void* arg); //讀取用戶輸入并發送到多播組線程函數   
  16. void do_read(void* arg); //讀物多播組數據函數   
  17.    
  18. int main()   
  19. {   
  20.     //這個結構被用來存儲被WSAStartup函數調用后返回的Windows Sockets數據。   
  21.     //它包含Winsock.dll執行的數據。   
  22.         WSAData wsaData;   
  23.    
  24.         /*  
  25.         使用Socket的程序在使用Socket之前必須調用WSAStartup函數。該函數的第一個參數指明程序請求使用的Socket版本,其中高位字節指明副版本、低位字節指明主版本;操作系統利用第二個參數返回請求的Socket的版本信息。  
  26.         加載Windows套接字動態鏈接庫  
  27.         */   
  28.         if( WSAStartup(MAKEWORD(2,2), &wsaData) != 0 )   
  29.         {   
  30.         cout <<"Error in WSAStartup"<<endl;   
  31.         return 0;   
  32.         }   
  33.    
  34.         SOCKET server;   
  35.         //原始的方式   
  36.         /*  
  37.         第一個參數指定應用程序使用的通信協議的協議族,對于TCP/IP協議族,該參數置AF_INET;  
  38.         第二個參數指定要創建的套接字類型,流套接字類型為SOCK_STREAM、數據報套接字類型為SOCK_DGRAM、  
  39.         原始套接字SOCK_RAW(WinSock接口并不適用某種特定的協議去封裝它,而是由程序自行處理數據包以及協議首部);  
  40.         另一種方式WSASocket  
  41.         */   
  42.         server = socket(AF_INET, SOCK_DGRAM, 0); //創建一個UDP套接口   
  43.         cout<<"create socket: "<<server<<endl;   
  44.    
  45.         int ret ;   
  46.    
  47.         const int on = 1; //允許程序的多個實例運行在同一臺機器上   
  48.         /*  
  49.         調用setsockopt()函數為套接字設置SO_REUSEADDR選項,以允許套接字綁扎到一個已在使用的地址上。設置套接字的選項  
  50.         */   
  51.         ret = setsockopt(server, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));   
  52.         if( ret == SOCKET_ERROR )   
  53.         {   
  54.         WSACleanup();   
  55.            
  56.         cout<<"Error in setsockopt(SO_REUSEADDR): "<<WSAGetLastError()<<endl;   
  57.         return 0;   
  58.         }   
  59.            
  60.         const int routenum = 10;   
  61.    
  62.         //ret = setsockopt(server,IPPROTO_IP,IP_MULTICAST_TTL,\   
  63.            
  64.         ret = setsockopt(server,IPPROTO_IP,IP_MULTICAST_TTL,\   
  65.         (char*)&routenum,sizeof(routenum));   
  66.         if( ret == SOCKET_ERROR )   
  67.         {   
  68.         WSACleanup();   
  69.    
  70.         cout<<"Error in setsockopt(IP_MULTICAST_TTL): "<<WSAGetLastError()<<endl;   
  71.         return 0;   
  72.         }   
  73.    
  74.         const int loopback = 0; //禁止回饋   
  75.         //使組播報文環路有效或無效   
  76.         ret = setsockopt(server,IPPROTO_IP,IP_MULTICAST_LOOP,\   
  77.         (char*)&loopback,sizeof(loopback));   
  78.         if( ret == SOCKET_ERROR )   
  79.         {   
  80.         WSACleanup();   
  81.    
  82.         cout<<"Error in setsockopt(IP_MULTICAST_LOOP): "<<WSAGetLastError()<<endl;   
  83.         return 0;   
  84.         }   
  85.         //地址信息,local設置為多播組端口   
  86.         sockaddr_in local;   
  87.         memset(&local, 0, sizeof(local));   
  88.         local.sin_family = AF_INET;   
  89.         local.sin_port = htons(MULTICAST_PORT);   
  90.         //INADDR_ANY為0.0.0.0   
  91.         local.sin_addr.S_un.S_addr = INADDR_ANY;   
  92.            
  93.         ret = bind(server, (sockaddr*)(&local), sizeof(local));   
  94.    
  95.         if( ret == SOCKET_ERROR )   
  96.         {   
  97.         WSACleanup();   
  98.    
  99.         cout<<"Error in bind: "<<WSAGetLastError()<<endl;   
  100.         return 0;   
  101.         }   
  102.         //多播組結構   
  103.         ip_mreq mreq;   
  104.         memset(&mreq, 0, sizeof(mreq));   
  105.         //本機地址   
  106.         mreq.imr_interface.S_un.S_addr = INADDR_ANY;   
  107.         //點分十進制地址轉化為IP地址   
  108.         mreq.imr_multiaddr.S_un.S_addr = inet_addr(MULTICAST_IP);   
  109.    
  110.         //加入一個多播組   
  111.         ret = setsockopt(server,IPPROTO_IP,IP_ADD_MEMBERSHIP,\   
  112.         (char*)&mreq,sizeof(mreq));   
  113.         if( ret == SOCKET_ERROR )   
  114.         {   
  115.         WSACleanup();   
  116.    
  117.         cout<<"Error in setsockopt(IP_ADD_MEMBERSHIP): "<<WSAGetLastError()<<endl;   
  118.         return 0;   
  119.         }   
  120.    
  121.         //創建了兩個線程,一個讀用戶輸入并發送,一個讀多播組數據   
  122.         HANDLE hHandle[2];   
  123.         hHandle[0] = (HANDLE)_beginthread(do_send,0,(void*)server);   
  124.         hHandle[1] = (HANDLE)_beginthread(do_read,0,(void*)server);   
  125.    
  126.         //如果用戶輸入結束,程序就終止了   
  127.         WaitForSingleObject(hHandle[0], INFINITE);   
  128.    
  129.         WSACleanup();   
  130.    
  131.         return 0;   
  132. }   
  133.    
  134. void do_send(void* arg)   
  135.         {   
  136.         SOCKET server = (SOCKET)arg;   
  137.    
  138.         char sendline[BUFFER_SIZE+1];   
  139.    
  140.         sockaddr_in remote;   
  141.         memset(&remote, 0, sizeof(remote));   
  142.         remote.sin_addr.s_addr = inet_addr ( MULTICAST_IP );   
  143.         remote.sin_family = AF_INET ;   
  144.         remote.sin_port = htons(MULTICAST_PORT);   
  145.    
  146.         for(;;) //讀取用戶輸入知道用戶輸入"end"   
  147.         {   
  148.         cin.getline(sendline, BUFFER_SIZE);   
  149.    
  150.         if(strncmp(sendline,"end",3)==0)   
  151.             break;   
  152.    
  153.         //發送用戶輸入的數據到多播組   
  154.         sendto(server, sendline, strlen(sendline), 0, (sockaddr*)(&remote), sizeof(remote));    
  155.         }   
  156.    
  157.         cout<<"do_send end..."<<endl;   
  158. }   
  159.    
  160. void do_read(void* arg)   
  161. {   
  162.         SOCKET server = (SOCKET)arg;   
  163.    
  164.         char buf[BUFFER_SIZE+1];   
  165.         int ret;   
  166.    
  167.         sockaddr_in client;   
  168.         int clientLen;   
  169.    
  170.         for(;;) //一直讀取知道主線程終止   
  171.         {   
  172.         clientLen = sizeof(client);   
  173.         memset(&client, 0, clientLen);   
  174.    
  175.         ret = recvfrom(server, buf, BUFFER_SIZE, 0, (sockaddr*)(&clientLen), &clientLen);   
  176.         if ( ret == 0) //do_read在用戶直接回車發送了一個空字符串   
  177.         {   
  178.         continue;   
  179.         }   
  180.         else if( ret == SOCKET_ERROR )   
  181.         {   
  182.         if( WSAGetLastError() == WSAEINTR ) //主線程終止recvfrom返回的錯   
  183.         break;   
  184.    
  185.         cout<<"Error in recvfrom: "<<WSAGetLastError()<<endl;   
  186.         break ;   
  187.         }   
  188.         buf[ret] = '\0';   
  189.         cout<<"received: "<<buf<<endl;   
  190.         }   
  191.    
  192.         cout<<"do_read end..."<<endl;   
  193. }   

 

責任編輯:林琳 來源: CSDN博客
相關推薦

2013-09-29 10:36:08

VMware虛擬化

2009-04-23 14:30:19

UML建模

2020-10-26 14:01:22

Java泛型

2021-07-30 09:00:40

鴻蒙HarmonyOS應用

2023-10-04 00:03:00

SQL數據庫

2010-10-08 09:38:42

mysql修改表

2009-08-10 15:56:35

802局域網網橋兼容性

2010-03-26 14:23:47

Python入門

2011-05-26 17:37:11

Ajax

2016-12-26 18:51:34

AndroidJavascriptJSONObject

2010-04-21 10:04:33

Oracle移植

2021-02-05 17:35:07

數據高管CIO技術

2013-09-03 13:01:01

團隊管理團隊

2024-05-16 15:15:14

2011-12-21 09:54:15

項目經理

2010-06-29 15:54:36

UML建模

2013-08-21 09:38:21

802.11acMeru5G wifi

2017-03-17 11:00:08

數字化陳勇Gartner

2009-11-10 14:15:40

2010-07-12 13:00:49

UML建模
點贊
收藏

51CTO技術棧公眾號

欧美午夜精品久久久久久久| 国产尤物一区二区在线| 日韩理论片久久| 男人的天堂日韩| avtt亚洲| 国产成人免费视频网站| 91精品国产91久久久久久| www.黄色在线| 1313精品午夜理伦电影| 色8久久精品久久久久久蜜| 一区二区不卡在线观看| 日本黄色三级视频| 奇米影视一区二区三区| 久久久久久久国产| 五月天婷婷丁香网| 秋霞综合在线视频| 91精品久久久久久久91蜜桃| 1024精品视频| av电影免费在线观看| 久久亚洲精品小早川怜子| 成人激情视频在线| 精品国产一区二区三区四| 午夜日韩福利| 综合激情国产一区| 国产精品无码永久免费不卡| 日本一区二区乱| 成人自拍视频| 午夜久久美女| 色久欧美在线视频观看| 日韩www视频| 精品国产亚洲日本| 在线日韩av片| 日日碰狠狠添天天爽超碰97| 成人看片免费| 国产精品理论在线观看| 欧美成人综合一区| 日韩中文字幕观看| 国产精品69毛片高清亚洲| 国产精品你懂得| 久久青青草视频| 亚洲国产二区| 欧美韩国理论所午夜片917电影| 极品美妇后花庭翘臀娇吟小说| 久久av网址| 亚洲福利影片在线| 丰满熟女人妻一区二区三区| 亚洲青青一区| 欧美高清性hdvideosex| 日本人69视频| 久久青草视频| 欧美三级电影在线看| 国产精自产拍久久久久久| 国产午夜久久久| 欧美粗暴jizz性欧美20| 久久精品国产欧美激情| 后入内射无码人妻一区| 青青草国产免费一区二区下载| 亚洲女人天堂视频| 亚洲精品成人无码熟妇在线| 巨人精品**| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 欧美理论电影大全| 亚洲欧美日韩一区二区在线| 亚洲第一页av| 中文字幕被公侵犯的漂亮人妻| 亚洲国产尤物| 欧美性大战久久久| 国产小视频精品| 久久麻豆视频| 欧美电影一区二区| 一本之道在线视频| 2021年精品国产福利在线| 日韩三级免费观看| 在线看黄色的网站| 亚洲精品aaaaa| 国产一区二区三区在线看| 91在线无精精品白丝| 日韩在线视频精品| 久久成人亚洲精品| 五月天婷婷丁香| 久久九九国产| 成人黄色免费看| 亚洲精品成av人片天堂无码| 99综合电影在线视频| 日本一区二区高清视频| 免费在线你懂的| 亚洲自拍偷拍网站| 男人的天堂99| 先锋影音网一区二区| 日韩精品一区二区三区swag| 国产中文字幕一区二区| 久久精品国产大片免费观看| 九九精品视频在线| 欧美激情亚洲综合| 久久精品日产第一区二区| 欧美日韩三级电影在线| 亚洲图片欧美午夜| 九九视频精品在线观看| 亚洲精品乱码日韩| 日韩午夜在线影院| 巨胸大乳www视频免费观看| 日韩极品一区| 欧美精品videos另类日本| 国产精品第5页| 韩国三级中文字幕hd久久精品| 国产精品福利视频| 高h视频在线| 亚洲综合视频在线| 精品久久久久av| 奇米一区二区| 国产亚洲欧洲黄色| 九九视频在线免费观看| 日本在线播放一区二区三区| 国产高清不卡av| aaa在线观看| 午夜视频久久久久久| 亚洲一区精品视频在线观看| 神马日本精品| 欧美精品18videos性欧| 中文无码av一区二区三区| 91在线播放网址| 国产高清不卡无码视频| 国产91在线播放精品| 亚洲国产精品免费| 中文字幕在线观看成人| 免费人成精品欧美精品| 免费不卡亚洲欧美| bl视频在线免费观看| 91精品国产综合久久小美女| 微拍福利一区二区| 翔田千里一区二区| 好吊妞www.84com只有这里才有精品| 超碰在线免费播放| 欧美三日本三级三级在线播放| 国产国语性生话播放| 亚洲欧洲一区| 成人在线视频网址| 18视频在线观看网站| 欧美高清视频在线高清观看mv色露露十八 | 久久亚洲免费| 91资源在线观看| 日韩欧美国产午夜精品| 91在线播放观看| 国产在线精品一区二区不卡了 | 91在线网站视频| 欧美成人三区| 欧美美女一区二区在线观看| 亚洲天堂最新地址| 日韩激情一区二区| 日本在线播放一区| 99re66热这里只有精品4| 亚洲人午夜精品免费| 无码人妻一区二区三区线| 91麻豆文化传媒在线观看| 日韩欧美视频网站| 日韩三级毛片| 欧美中文字幕第一页| 天堂√在线中文官网在线| 午夜精品久久久久久久| 色天使在线视频| 久久福利精品| 日韩精品一区二区三区色偷偷| 国产综合av| 色婷婷综合久久久久| 99久久亚洲精品日本无码| 亚洲精品欧美专区| 亚洲成人福利视频| 在线成人欧美| 欧美亚洲丝袜| 日本欧美在线| 欧美日本高清视频| 深爱五月激情五月| 日韩欧美亚洲范冰冰与中字| 免费看黄色av| 国产精品一区二区果冻传媒| 精品无码国产一区二区三区av| 天天做夜夜做人人爱精品| 国产成人福利网站| 久久日韩视频| 亚洲大胆美女视频| 无码人妻丰满熟妇精品| 亚洲欧洲另类国产综合| 大尺度在线观看| 肉色丝袜一区二区| 最新中文字幕久久| 卡通动漫精品一区二区三区| 国产成人小视频在线观看| 国产激情小视频在线| 欧美精品一区二区三区很污很色的 | 亚洲成人在线| 亚洲成人网上| 1313精品午夜理伦电影| 国产成一区二区| av片在线观看免费| 日韩精品免费在线播放| 在线观看视频中文字幕| 亚洲电影一区二区| 国产午夜福利一区| 成人亚洲一区二区一| 黄色一级免费大片| 在线日韩中文| 在线综合视频网站| 国产精品入口免费软件| 盗摄系列偷拍视频精品tp| 日韩女优在线播放| 五月花成人网| 伊人伊人伊人久久| 亚洲国产综合网| 欧美性高清videossexo| 国产午夜福利一区二区| 国产精品入口麻豆原神| 中文成人无字幕乱码精品区| 狠狠狠色丁香婷婷综合久久五月| 日韩少妇内射免费播放18禁裸乳| 欧美激情电影| 欧美久久在线| 国产精品videossex| 国产日韩欧美日韩| 国模私拍一区二区国模曼安| 久久中文精品视频| 成人jjav| 亚洲黄一区二区| 国产肥老妇视频| 欧美日韩国产一二三| 日韩欧美成人一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 免费网站在线高清观看| 久久综合狠狠综合久久综合88| 麻豆精品国产传媒| 激情欧美一区二区| 欧美三级午夜理伦三级富婆| 日韩国产精品91| 国产精品秘入口18禁麻豆免会员 | 久久精品国产综合| 黄视频在线观看免费| 日韩成人av在线| 国产综合在线播放| 欧美一区二区黄| 91在线精品入口| 国产精品一二三在| 91福利视频在线观看| 中文av资源在线| 久久久精品在线观看| 日韩成人影视| 日韩一区二区精品视频| 在线视频婷婷| 日韩中文第一页| 日本综合在线| 精品国产一区二区三区四区在线观看 | 国模无码大尺度一区二区三区| 国产九九在线视频| 美女精品一区二区| 天天综合网久久| 精品无人码麻豆乱码1区2区 | 欧美大学生性色视频| 国产亚洲精品久久777777| 高清日韩中文字幕| 成人免费在线网址| 国产精品欧美一区二区三区不卡 | 亚洲视频中文字幕在线观看| 欧美视频一区二区三区在线观看| 亚洲手机在线观看| 91精品免费在线| 你懂的网站在线| 国产丝袜精品视频| 国产乱理伦片a级在线观看| 国产一区二区三区直播精品电影| 免费在线午夜视频| 久久久久久国产免费| 欧美大胆a人体大胆做受| 日韩av色在线| 3d动漫一区二区三区在线观看| 亚洲综合av影视| 国产精品极品在线观看| 蜜桃日韩视频| 国产精品88久久久久久| 国产xxxx振车| 日韩一区欧美二区| 亚洲另类第一页| 99这里只有久久精品视频| 欧美老熟妇乱大交xxxxx| 国产精品美女www爽爽爽| 欧美成人aaa片一区国产精品| 亚洲大片一区二区三区| 丁香社区五月天| 欧美高清视频在线高清观看mv色露露十八 | gogo高清在线播放免费| 国产精品美女久久久免费| 久久久久九九精品影院| 久久草.com| 国产精品久久久久久麻豆一区软件| 17c丨国产丨精品视频| 六月天综合网| 一起草最新网址| 久久久久久久久久久电影| 亚洲国产美女视频| 欧美特级www| 国产成人三级一区二区在线观看一| 亚洲乱码一区av黑人高潮| 秋霞午夜在线观看| 69久久夜色精品国产69乱青草| 日韩美香港a一级毛片| 精品久久蜜桃| 欧美.日韩.国产.一区.二区| 玩弄japan白嫩少妇hd| 国产99久久久国产精品| 色噜噜噜噜噜噜| 欧美日韩午夜剧场| 99在线观看精品视频| 亚洲四色影视在线观看| 国产蜜臀一区二区打屁股调教| 国产精品精品一区二区三区午夜版| 波多野结衣欧美| 国产91av视频在线观看| 久久久精品五月天| 波多野结衣加勒比| 亚洲欧美日韩国产手机在线 | 国产一区二区不卡老阿姨| 久久久久久九九九九九| 亚洲a一区二区| 99热这里只有精品9| 色天天综合狠狠色| 深夜av在线| 国产伦精品一区| 欧美精品国产一区二区| 五月婷婷之婷婷| 欧美激情在线一区二区三区| 一级片中文字幕| 精品国产123| 少妇av在线| 1卡2卡3卡精品视频| 99精品在线观看| 在线看的黄色网址| 色就是色亚洲色图| 日韩精品免费综合视频在线播放| 婷婷av在线| 69堂成人精品视频免费| 日韩综合网站| 黄色永久免费网站| 国产女主播一区| 国产精品国产精品国产| 在线成人免费网站| 怡红院成人在线| 色婷婷精品国产一区二区三区| 午夜亚洲性色福利视频| 国产吞精囗交久久久| 大桥未久av一区二区三区| 五月天激情婷婷| 欧美亚洲视频在线看网址| 日韩丝袜视频| 日韩欧美在线播放视频| 久久综合成人精品亚洲另类欧美| 黄色一级片免费在线观看| 日韩美女av在线| 日本电影欧美片| 日韩国产精品一区二区| 久久精品久久精品| 日本午夜在线观看| 日韩一区二区中文字幕| 黄色大片在线| 精品国产乱码久久久久久蜜柚| 男女精品网站| 国产av自拍一区| 欧美日韩免费在线视频| 久久久久久久久免费视频| 亚洲va电影大全| 亚洲午夜久久久久久尤物| 五月开心播播网| 在线观看91精品国产入口| 黄色一级片在线观看| 成人91视频| 欧美一级二区| 91ts人妖另类精品系列| 日韩一级黄色片| 国产不卡网站| 伊人色综合久久天天五月婷| 国产成人精品一区二区三区四区| 日韩乱码一区二区| 在线电影中文日韩| 久久九九精品视频| 各处沟厕大尺度偷拍女厕嘘嘘 | 亚洲色图27p| 日韩精品在线一区二区| 樱花草涩涩www在线播放| 亚洲人成网站在线观看播放| 成人av电影免费在线播放| 五月天中文字幕| 欧美精品久久久久久久久久| 国内精品久久久久久99蜜桃| 特黄特黄一级片| 色综合中文字幕| 麻豆传媒在线免费看| 国产综合 伊人色| 老司机午夜精品| 国产午夜精品无码一区二区| 色婷婷av一区二区三区在线观看| 国产一级av毛片| 欧美午夜精品在线| 毛片av在线| 久久亚洲国产精品日日av夜夜|