• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0
             

            一個(gè)http請(qǐng)求的詳細(xì)過(guò)程

            我們來(lái)看當(dāng)我們?cè)跒g覽器輸入http://www.mycompany.com:8080/mydir/index.html,幕后所發(fā)生的一切。

            首先http是一個(gè)應(yīng)用層的協(xié)議,在這個(gè)層的協(xié)議,只是一種通訊規(guī)范,也就是因?yàn)殡p方要進(jìn)行通訊,大家要事先約定一個(gè)規(guī)范。

            1.連接 當(dāng)我們輸入這樣一個(gè)請(qǐng)求時(shí),首先要建立一個(gè)socket連接,因?yàn)閟ocket是通過(guò)ip和端口建立的,所以之前還有一個(gè)DNS解析過(guò)程,把www.mycompany.com變成ip,如果url里不包含端口號(hào),則會(huì)使用該協(xié)議的默認(rèn)端口號(hào)。

            DNS的過(guò)程是這樣的:首先我們知道我們本地的機(jī)器上在配置網(wǎng)絡(luò)時(shí)都會(huì)填寫DNS,這樣本機(jī)就會(huì)把這個(gè)url發(fā)給這個(gè)配置的DNS服務(wù)器,如果能夠找到相應(yīng)的url則返回其ip,否則該DNS將繼續(xù)將該解析請(qǐng)求發(fā)送給上級(jí)DNS,整個(gè)DNS可以看做是一個(gè)樹狀結(jié)構(gòu),該請(qǐng)求將一直發(fā)送到根直到得到結(jié)果。現(xiàn)在已經(jīng)擁有了目標(biāo)ip和端口號(hào),這樣我們就可以打開socket連接了。

            2.請(qǐng)求 連接成功建立后,開始向web服務(wù)器發(fā)送請(qǐng)求,這個(gè)請(qǐng)求一般是GET或POST命令(POST用于FORM參數(shù)的傳遞)。GET命令的格式為:  GET 路徑/文件名 HTTP/1.0
            文件名指出所訪問(wèn)的文件,HTTP/1.0指出Web瀏覽器使用的HTTP版本。現(xiàn)在可以發(fā)送GET命令:

            GET /mydir/index.html HTTP/1.0,

            3.應(yīng)答 web服務(wù)器收到這個(gè)請(qǐng)求,進(jìn)行處理。從它的文檔空間中搜索子目錄mydir的文件index.html。如果找到該文件,Web服務(wù)器把該文件內(nèi)容傳送給相應(yīng)的Web瀏覽器。

            為了告知瀏覽器,,Web服務(wù)器首先傳送一些HTTP頭信息,然后傳送具體內(nèi)容(即HTTP體信息),HTTP頭信息和HTTP體信息之間用一個(gè)空行分開。
            常用的HTTP頭信息有:
              ① HTTP 1.0 200 OK  這是Web服務(wù)器應(yīng)答的第一行,列出服務(wù)器正在運(yùn)行的HTTP版本號(hào)和應(yīng)答代碼。代碼"200 OK"表示請(qǐng)求完成。
              ② MIME_Version:1.0 它指示MIME類型的版本。
              ③ content_type:類型 這個(gè)頭信息非常重要,它指示HTTP體信息的MIME類型。如:content_type:text/html指示傳送的數(shù)據(jù)是HTML文檔。
              ④ content_length:長(zhǎng)度值 它指示HTTP體信息的長(zhǎng)度(字節(jié))。


            4.關(guān)閉連接:當(dāng)應(yīng)答結(jié)束后,Web瀏覽器與Web服務(wù)器必須斷開,以保證其它Web瀏覽器能夠與Web服務(wù)器建立連接。


            下面我們具體分析其中的數(shù)據(jù)包在網(wǎng)絡(luò)中漫游的經(jīng)歷

            在網(wǎng)絡(luò)分層結(jié)構(gòu)中,各層之間是嚴(yán)格單向依賴的。“服務(wù)”是描述各層之間關(guān)系的抽象概念,即網(wǎng)絡(luò)中各層向緊鄰上層提供的一組操作。下層是服務(wù)提供者,上層是請(qǐng)求服務(wù)的用戶。服務(wù)的表現(xiàn)形式是原語(yǔ)(primitive),如系統(tǒng)調(diào)用或庫(kù)函數(shù)。系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核向網(wǎng)絡(luò)應(yīng)用程序或高層協(xié)議提供的服務(wù)原語(yǔ)。網(wǎng)絡(luò)中的n層總要向n+1層提供比n-1層更完備的服務(wù),否則n層就沒(méi)有存在的價(jià)值。

            傳輸層實(shí)現(xiàn)的是“端到端”通信,引進(jìn)網(wǎng)間進(jìn)程通信概念,同時(shí)也要解決差錯(cuò)控制,流量控制,數(shù)據(jù)排序(報(bào)文排序),連接管理等問(wèn)題,為此提供不同的服務(wù)方式。通常傳輸層的服務(wù)通過(guò)系統(tǒng)調(diào)用的方式提供,以socket的方式。對(duì)于客戶端,要想建立一個(gè)socket連接,需要調(diào)用這樣一些函數(shù)socket() bind() connect(),然后就可以通過(guò)send()進(jìn)行數(shù)據(jù)發(fā)送。

            現(xiàn)在看數(shù)據(jù)包在網(wǎng)絡(luò)中的穿行過(guò)程:

            應(yīng)用層

            首先我們可以看到在應(yīng)用層,根據(jù)當(dāng)前的需求和動(dòng)作,結(jié)合應(yīng)用層的協(xié)議,有我們確定發(fā)送的數(shù)據(jù)內(nèi)容,我們把這些數(shù)據(jù)放到一個(gè)緩沖區(qū)內(nèi),然后形成了應(yīng)用層的報(bào)文data

            傳輸層

            這些數(shù)據(jù)通過(guò)傳輸層發(fā)送,比如tcp協(xié)議。所以它們會(huì)被送到傳輸層處理,在這里報(bào)文打上了傳輸頭的包頭,主要包含端口號(hào),以及tcp的各種制信息,這些信息是直接得到的,因?yàn)榻涌谥行枰付ǘ丝凇_@樣就組成了tcp的數(shù)據(jù)傳送單位segment。tcp是一種端到端的協(xié)議,利用這些信息,比如tcp首部中的序號(hào)確認(rèn)序號(hào),根據(jù)這些數(shù)字,發(fā)送的一方不斷的進(jìn)行發(fā)送等待確認(rèn),發(fā)送一個(gè)數(shù)據(jù)段后,會(huì)開啟一個(gè)計(jì)數(shù)器,只有當(dāng)收到確認(rèn)后才會(huì)發(fā)送下一個(gè),如果超過(guò)計(jì)數(shù)時(shí)間仍未收到確認(rèn)則進(jìn)行重發(fā),在接受端如果收到錯(cuò)誤數(shù)據(jù),則將其丟棄,這將導(dǎo)致發(fā)送端超時(shí)重發(fā)。通過(guò)tcp協(xié)議,控制了數(shù)據(jù)包的發(fā)送序列的產(chǎn)生,不斷的調(diào)整發(fā)送序列,實(shí)現(xiàn)流控和數(shù)據(jù)完整。

            網(wǎng)絡(luò)層

            然后待發(fā)送的數(shù)據(jù)段送到網(wǎng)絡(luò)層,在網(wǎng)絡(luò)層被打包,這樣封裝上了網(wǎng)絡(luò)層的包頭,包頭內(nèi)部含有源及目的的ip地址,該層數(shù)據(jù)發(fā)送單位被稱為packet。網(wǎng)絡(luò)層開始負(fù)責(zé)將這樣的數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸,如何穿過(guò)路由器,最終到達(dá)目的地址。在這里,根據(jù)目的ip地址,就需要查找下一跳路由的地址。首先在本機(jī),要查找本機(jī)的路由表,在windows上運(yùn)行route print就可以看到當(dāng)前路由表內(nèi)容,有如下幾項(xiàng):
            Active Routes Default Route Persistent Route.

            整個(gè)查找過(guò)程是這樣的:
            (1)根據(jù)目的地址,得到目的網(wǎng)絡(luò)號(hào),如果處在同一個(gè)內(nèi)網(wǎng),則可以直接發(fā)送。
            (2)如果不是,則查詢路由表,找到一個(gè)路由。
            (3)如果找不到明確的路由,此時(shí)在路由表中還會(huì)有默認(rèn)網(wǎng)關(guān),也可稱為缺省網(wǎng)關(guān),IP用缺省的網(wǎng)關(guān)地址將一個(gè)數(shù)據(jù)傳送給下一個(gè)指定的路由器,所以網(wǎng)關(guān)也可能是路由器,也可能只是內(nèi)網(wǎng)向特定路由器傳輸數(shù)據(jù)的網(wǎng)關(guān)。
            (4)路由器收到數(shù)據(jù)后,它再次為遠(yuǎn)程主機(jī)或網(wǎng)絡(luò)查詢路由,若還未找到路由,該數(shù)據(jù)包將發(fā)送到該路由器的缺省網(wǎng)關(guān)地址。而數(shù)據(jù)包中包含一個(gè)最大路由跳數(shù),如果超過(guò)這個(gè)跳數(shù),就會(huì)丟棄數(shù)據(jù)包,這樣可以防止無(wú)限傳遞。路由器收到數(shù)據(jù)包后,只會(huì)查看網(wǎng)絡(luò)層的包裹數(shù)據(jù),目的ip。所以說(shuō)它是工作在網(wǎng)絡(luò)層,傳輸層的數(shù)據(jù)對(duì)它來(lái)說(shuō)則是透明的。

            如果上面這些步驟都沒(méi)有成功,那么該數(shù)據(jù)報(bào)就不能被傳送。如果不能傳送的數(shù)據(jù)報(bào)來(lái)自本機(jī),那么一般會(huì)向生成數(shù)據(jù)報(bào)的應(yīng)用程序返回一個(gè)“主機(jī)不可達(dá)”或 “網(wǎng)絡(luò)不可達(dá)”的錯(cuò)誤。

             

            以windows下主機(jī)的路由表為例,看路由的查找過(guò)程
            ======================================================================
            Active Routes:
            Network Destination            Netmask                      Gateway              Interface                  Metric
            0.0.0.0                                 0.0.0.0                       192.168.1.2           192.168.1.101           10
            127.0.0.0                             255.0.0.0                   127.0.0.1               127.0.0.1                   1
            192.168.1.0                         255.255.255.0           192.168.1.101       192.168.1.101           10
            192.168.1.101                     255.255.255.255       127.0.0.1               127.0.0.1                   10
            192.168.1.255                     255.255.255.255       192.168.1.101       192.168.1.101           10
             224.0.0.0                            240.0.0.0                   192.168.1.101       192.168.1.101           10
            255.255.255.255                 255.255.255.255       192.168.1.101       192.168.1.101           1
            Default Gateway:                192.168.1.2

            Network Destination 目的網(wǎng)段 
            Netmask 子網(wǎng)掩碼 
            Gateway 下一跳路由器入口的ip,路由器通過(guò)interface和gateway定義一調(diào)到下一個(gè)路由器的鏈路,通常情況下,interface和gateway是同一網(wǎng)段的。
            Interface 到達(dá)該目的地的本路由器的出口ip(對(duì)于我們的個(gè)人pc來(lái)說(shuō),通常由機(jī)算機(jī)A的網(wǎng)卡,用該網(wǎng)卡的IP地址標(biāo)識(shí),當(dāng)然一個(gè)pc也可以有多個(gè)網(wǎng)卡)。

            網(wǎng)關(guān)這個(gè)概念,主要用于不同子網(wǎng)間的交互,當(dāng)兩個(gè)子網(wǎng)內(nèi)主機(jī)A,B要進(jìn)行通訊時(shí),首先A要將數(shù)據(jù)發(fā)送到它的本地網(wǎng)關(guān),然后網(wǎng)關(guān)再將數(shù)據(jù)發(fā)送給B所在的網(wǎng)關(guān),然后網(wǎng)關(guān)再發(fā)送給B。
            默認(rèn)網(wǎng)關(guān),當(dāng)一個(gè)數(shù)據(jù)包的目的網(wǎng)段不在你的路由記錄中,那么,你的路由器該把那個(gè)數(shù)據(jù)包發(fā)送到哪里!缺省路由的網(wǎng)關(guān)是由你的連接上的default gateway決定的,也就是我們通常在網(wǎng)絡(luò)連接里配置的那個(gè)值。

            通常interface和gateway處在一個(gè)子網(wǎng)內(nèi),對(duì)于路由器來(lái)說(shuō),因?yàn)榭赡芫哂胁煌膇nterface,當(dāng)數(shù)據(jù)包到達(dá)時(shí),根據(jù)Network Destination尋找匹配的條目,如果找到,interface則指明了應(yīng)當(dāng)從該路由器的那個(gè)接口出去,gateway則代表了那個(gè)子網(wǎng)的網(wǎng)關(guān)地址。

            第一條      0.0.0.0   0.0.0.0   192.168.1.2    192.168.1.101   10
            0.0.0.0代表了缺省路由。該路由記錄的意思是:當(dāng)我接收到一個(gè)數(shù)據(jù)包的目的網(wǎng)段不在我的路由記錄中,我會(huì)將該數(shù)據(jù)包通過(guò)192.168.1.101這個(gè)接口發(fā)送到192.168.1.2這個(gè)地址,這個(gè)地址是下一個(gè)路由器的一個(gè)接口,這樣這個(gè)數(shù)據(jù)包就可以交付給下一個(gè)路由器處理,與我無(wú)關(guān)。該路由記錄的線路質(zhì)量 10。當(dāng)有多個(gè)條目匹配時(shí),會(huì)選擇具有較小Metric值的那個(gè)。

            第三條      192.168.1.0   255.255.255.0  192.168.1.101   192.168.1.101  10
            直聯(lián)網(wǎng)段的路由記錄:當(dāng)路由器收到發(fā)往直聯(lián)網(wǎng)段的數(shù)據(jù)包時(shí)該如何處理,這種情況,路由記錄的interface和gateway是同一個(gè)。當(dāng)我接收到一個(gè)數(shù)據(jù)包的目的網(wǎng)段是192.168.1.0時(shí),我會(huì)將該數(shù)據(jù)包通過(guò)192.168.1.101這個(gè)接口直接發(fā)送出去,因?yàn)檫@個(gè)端口直接連接著192.168.1.0這個(gè)網(wǎng)段,該路由記錄的線路質(zhì)量 10 (因interface和gateway是同一個(gè),表示數(shù)據(jù)包直接傳送給目的地址,不需要再轉(zhuǎn)給路由器)。

            一般就分這兩種情況,目的地址與當(dāng)前路由器接口是否在同一子網(wǎng)。如果是則直接發(fā)送,不需再轉(zhuǎn)給路由器,否則還需要轉(zhuǎn)發(fā)給下一個(gè)路由器繼續(xù)進(jìn)行處理。

             

            查找到下一跳ip地址后,還需要知道它的mac地址,這個(gè)地址要作為鏈路層數(shù)據(jù)裝進(jìn)鏈路層頭部。這時(shí)需要arp協(xié)議,具體過(guò)程是這樣的,查找arp緩沖,windows下運(yùn)行arp -a可以查看當(dāng)前arp緩沖內(nèi)容。如果里面含有對(duì)應(yīng)ip的mac地址,則直接返回。否則需要發(fā)生arp請(qǐng)求,該請(qǐng)求包含源的ip和mac地址,還有目的地的ip地址,在網(wǎng)內(nèi)進(jìn)行廣播,所有的主機(jī)會(huì)檢查自己的ip與該請(qǐng)求中的目的ip是否一樣,如果剛好對(duì)應(yīng)則返回自己的mac地址,同時(shí)將請(qǐng)求者的ip mac保存。這樣就得到了目標(biāo)ip的mac地址。

            鏈路層

            將mac地址及鏈路層控制信息加到數(shù)據(jù)包里,形成Frame,F(xiàn)rame在鏈路層協(xié)議下,完成了相鄰的節(jié)點(diǎn)間的數(shù)據(jù)傳輸,完成連接建立,控制傳輸速度,數(shù)據(jù)完整。

            物理層

            物理線路則只負(fù)責(zé)該數(shù)據(jù)以bit為單位從主機(jī)傳輸?shù)较乱粋€(gè)目的地。

            下一個(gè)目的地接受到數(shù)據(jù)后,從物理層得到數(shù)據(jù)然后經(jīng)過(guò)逐層的解包 到 鏈路層 到 網(wǎng)絡(luò)層,然后開始上述的處理,在經(jīng)網(wǎng)絡(luò)層 鏈路層 物理層將數(shù)據(jù)封裝好繼續(xù)傳往下一個(gè)地址。

            在上面的過(guò)程中,可以看到有一個(gè)路由表查詢過(guò)程,而這個(gè)路由表的建立則依賴于路由算法。也就是說(shuō)路由算法實(shí)際上只是用來(lái)路由器之間更新維護(hù)路由表,真正的數(shù)據(jù)傳輸過(guò)程并不執(zhí)行這個(gè)算法,只查看路由表。這個(gè)概念也很重要,需要理解常用的路由算法。而整個(gè)tcp協(xié)議比較復(fù)雜,跟鏈路層的協(xié)議有些相似,其中有很重要的一些機(jī)制或者概念需要認(rèn)真理解,比如編號(hào)與確認(rèn),流量控制,重發(fā)機(jī)制,發(fā)送接受窗口。

             

            tcp/ip基本模型及概念


            物理層

            設(shè)備,中繼器(repeater),集線器(hub)。對(duì)于這一層來(lái)說(shuō),從一個(gè)端口收到數(shù)據(jù),會(huì)轉(zhuǎn)發(fā)到所有端口。


            鏈路層

            協(xié)議:SDLC(Synchronous Data Link Control)HDLC(High-level Data Link Control) ppp協(xié)議獨(dú)立的鏈路設(shè)備中最常見的當(dāng)屬網(wǎng)卡,網(wǎng)橋也是鏈路產(chǎn)品。集線器MODEM的某些功能有人認(rèn)為屬于鏈路層,對(duì)此還有些爭(zhēng)議認(rèn)為屬于物理層設(shè)備。除此之外,所有的交換機(jī)都需要工作在數(shù)據(jù)鏈路層,但僅工作在數(shù)據(jù)鏈路層的僅是二層交換機(jī)。其他像三層交換機(jī)、四層交換機(jī)和七層交換機(jī)雖然可對(duì)應(yīng)工作在OSI的三層、四層和七層,但二層功能仍是它們基本的功能。

            因?yàn)橛辛薓AC地址表,所以才充分避免了沖突,因?yàn)榻粨Q機(jī)通過(guò)目的MAC地址知道應(yīng)該把這個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)到哪個(gè)端口。而不會(huì)像HUB一樣,會(huì)轉(zhuǎn)發(fā)到所有滴端口。所以,交換機(jī)是可以劃分沖突域滴。


            網(wǎng)絡(luò)層

            四個(gè)主要的協(xié)議:  
            網(wǎng)際協(xié)議IP:負(fù)責(zé)在主機(jī)和網(wǎng)絡(luò)之間尋址和路由數(shù)據(jù)包。    
            地址解析協(xié)議ARP:獲得同一物理網(wǎng)絡(luò)中的硬件主機(jī)地址。    
            網(wǎng)際控制消息協(xié)議ICMP:發(fā)送消息,并報(bào)告有關(guān)數(shù)據(jù)包的傳送錯(cuò)誤。    
            互聯(lián)組管理協(xié)議IGMP:被IP主機(jī)拿來(lái)向本地多路廣播路由器報(bào)告主機(jī)組成員。

            該層設(shè)備有三層交換機(jī),路由器。


            傳輸層

            兩個(gè)重要協(xié)議 TCP 和 UDP 。

            端口概念:TCP/UDP 使用 IP 地址標(biāo)識(shí)網(wǎng)上主機(jī),使用端口號(hào)來(lái)標(biāo)識(shí)應(yīng)用進(jìn)程,即 TCP/UDP 用主機(jī) IP 地址和為應(yīng)用進(jìn)程分配的端口號(hào)來(lái)標(biāo)識(shí)應(yīng)用進(jìn)程。端口號(hào)是 16 位的無(wú)符號(hào)整數(shù), TCP 的端口號(hào)和 UDP 的端口號(hào)是兩個(gè)獨(dú)立的序列。盡管相互獨(dú)立,如果 TCP 和 UDP 同時(shí)提供某種知名服務(wù),兩個(gè)協(xié)議通常選擇相同的端口號(hào)。這純粹是為了使用方便,而不是協(xié)議本身的要求。利用端口號(hào),一臺(tái)主機(jī)上多個(gè)進(jìn)程可以同時(shí)使用 TCP/UDP 提供的傳輸服務(wù),并且這種通信是端到端的,它的數(shù)據(jù)由 IP 傳遞,但與 IP 數(shù)據(jù)報(bào)的傳遞路徑無(wú)關(guān)。網(wǎng)絡(luò)通信中用一個(gè)三元組可以在全局唯一標(biāo)志一個(gè)應(yīng)用進(jìn)程:(協(xié)議,本地地址,本地端口號(hào))。

            也就是說(shuō)tcp和udp可以使用相同的端口。

            可以看到通過(guò)(協(xié)議,源端口,源ip,目的端口,目的ip)就可以用來(lái)完全標(biāo)識(shí)一組網(wǎng)絡(luò)連接。

            應(yīng)用層

            基于tcp:Telnet FTP SMTP DNS HTTP
            基于udp:RIP NTP(網(wǎng)落時(shí)間協(xié)議)和DNS (DNS也使用TCP)SNMP TFTP

             

            參考文獻(xiàn):

            讀懂本機(jī)路由表 http://hi.baidu.com/thusness/blog/item/9c18e5bf33725f0818d81f52.html

            Internet 傳輸層協(xié)議 http://www.cic.tsinghua.edu.cn/jdx/book6/3.htm 計(jì)算機(jī)網(wǎng)絡(luò) 謝希仁


            轉(zhuǎn)自:
            http://blog.chinaunix.net/u2/67780/showart_2065190.html
            posted on 2009-10-21 23:05 chatler 閱讀(260) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Network
            <2009年11月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺(jué)這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺(jué)得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲国产成人久久综合一区77| 韩国免费A级毛片久久| 国产精品无码久久久久| 欧美亚洲另类久久综合| 久久精品成人免费国产片小草| 97香蕉久久夜色精品国产| 77777亚洲午夜久久多喷| 久久久久久精品免费免费自慰| 2021最新久久久视精品爱| 国内精品久久久久久久97牛牛| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 亚洲综合精品香蕉久久网| 久久国产精品久久国产精品| 亚洲成av人片不卡无码久久| 国产精品久久国产精品99盘| 国产精品久久久久蜜芽| 草草久久久无码国产专区| 中文字幕无码精品亚洲资源网久久| 99久久精品这里只有精品| 久久久亚洲欧洲日产国码二区| 日产久久强奸免费的看| 久久青草国产精品一区| 久久人爽人人爽人人片AV| 久久99热这里只频精品6| 欧美久久久久久精选9999| 国产L精品国产亚洲区久久| 精品国产福利久久久| 91精品国产9l久久久久| 无码AV中文字幕久久专区| 久久久久久久久久久久久久| 女同久久| 99久久综合国产精品免费| 久久只有这精品99| 偷偷做久久久久网站| 久久婷婷五月综合色奶水99啪| 久久亚洲sm情趣捆绑调教| 久久九九久精品国产免费直播| 久久久久久亚洲精品影院| 国产亚洲美女精品久久久2020| 无码国内精品久久综合88 | 国产香蕉97碰碰久久人人|