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

TCP/IP協議棧之數據包如何穿越各層協議

網絡 網絡管理
所有互聯網服務,均依賴于TCP/IP協議棧。懂得數據是如何在協議棧傳輸的,將會幫助你提升互聯網程序的性能和解決TCP相關問題的能力。

所有互聯網服務,均依賴于TCP/IP協議棧。懂得數據是如何在協議棧傳輸的,將會幫助你提升互聯網程序的性能和解決TCP相關問題的能力。

我們講述在Linux場景下數據包是如何在協議層傳輸的。

1. 發送數據

應用層發送數據的過程大致如下:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們把上述處理過程的區域大致分為:

  • User區域
  • Kernel 區域
  • Device區域

在user和kernel區域的任務都是由本機cpu執行,這兩個區域合并稱為host區域,以區分device區域(網絡接口卡上有單獨的cpu)。device是接收和發送數據包的網絡接口卡(Network Interface Card),一般也稱為LAN card。

當應用程序調用write(fd, buf, len)來發送數據時,用戶態區域會進入內核態區域,建立這個關系的紐帶是socket fd和系統調用write。

在內核態的socket有兩個buffer:

  • send socket buffer,用于發送數據
  • receive socket buffer,用于接收數據

當write系統調用被執行,用戶態的數據(buf,長度)會被拷貝到內核區域的內存,并被放入到send socket buffer的末尾(見下圖,發送是按照順序發送的),然后TCP就會被調用。

TCP中的數據結構是TCB(TCP Control Block)。TCB包含了執行TCP會話所需要的信息,包括TCP連接狀態,接收窗口,擁塞窗口,序號,重傳timer 等。

TCP會創建TCP數據分段,而TCP數據分段包括TCP header和payload,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

Payload是待發送的socket buffer中的數據,而TCP header是為了TCP可靠發送數據而加的輔助信息。

這些數據分段會進入到IP層,IP層會加上IP頭部信息到數據分段,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

IP在執行路由之前會去檢查Netfilter LOCAL_OUT鉤子,看是否需要執行iptables相關配置。之后執行IP路由。IP路由主要功能是尋找下一跳(例如網關或路由器)的IP地址,而路由的目的是到達目的地IP地址所在的機器。

IP執行路由之后,檢查Netfilter POST_ROUTING鉤子,如果有iptables在這方面的配置,就會去執行相關操作。委托給數據鏈路層之前,IP層還會執行ARP(網絡地址轉換),通過下一跳IP地址來查找目的MAC地址,并把Ethernet頭部添加到IP數據包,如下圖。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

IP層同時還給用戶提供了raw socket接口,即發送數據包的接口。raw socket發送的數據包與正常流程的數據包不一樣,在執行Netfilter的時候,會跳過這些鉤子。

IP層做完工作以后,會把數據包(上圖中的數據包,一般稱frame)委托給數據鏈路層。

由于ARP已經把目的MAC地址寫入到數據包頭部,這樣就減輕了驅動driver的工作。進入數據鏈路層后,內核會去檢測是否有抓包工具在監聽抓包(例如tcpdump),如果有,內核會拷貝數據包信息到抓包工具的內存地址空間。

之后,根據一定的協議規則,驅動driver會要求NIC傳遞這個數據包。當NIC收到這個請求后,NIC復制數據包到自己的內存里,并且發送給網絡。當NIC發送完一個數據包,會產生一個中斷, 主機 cpu去執行中斷處理程序,完成后續工作。

2. 接收數據

應用程序接收數據的過程大致如下:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

首先NIC把數據包寫入自己的內存,并校驗數據包是不是有效的,如果是有效的,把數據包寫入主機的內存空間,然后NIC給主機操作系統發送一個中斷信號,這時就進入到kernel區域。

在數據鏈路層,內核首先會做數據包檢測,然后Driver驅動把數據包進行改裝,以便后續TCP/IP能夠理解這個數據包。改裝完以后,根據Ethernet頭部信息中的Ethertype分發給上層,假設為IPv4,去除Ethernet頭部,并發送給IP層。值得注意的是,委托給IP層之前,如果有抓包工具在監聽抓包,那么內核就會拷貝數據包信息到抓包工具的內存地址空間。

IP層通過計算checksum來校驗IP頭部的checksum是否有效,如果有效,接著檢查PRE_ROUTING鉤子(比如查看是否有iptables的相應配置需要執行),然后執行IP路由,IP路由會判斷這個數據包是本地處理還是轉發當前數據包到其它主機。如果是轉發數據包,執行FORWARD和POST_ROUTING鉤子,并轉發給數據鏈路層;如果是本地處理,IP還會檢查LOCAL_IN鉤子,執行完以后,根據IP頭部信息的proto值,假設為TCP,去除IP頭部,并把數據包傳遞給上層TCP。值得注意的是,委托給TCP層之前,如果有raw socket在監聽抓包,那么內核會拷貝數據包信息到raw socket的內存地址空間(默認tcpcopy利用raw socket來監聽IP層的數據包)。

TCP層會根據TCP checksum來檢測數據包是否有效(如果采用了checksum offload,NIC會去做相關計算),然后就給這個數據包查找相應的TCB(TCP control block),查找的方法是通過如下組合信息來查找:

  1. <source IP, source port, target IP, target port> 

如果沒有查到,一般會發送reset數據包;如果查到了,進入TCP數據包處理環節。

如果是接收到新數據,TCP就會把它放入到socket接收緩沖區,然后根據TCP狀態,必要時發送ack確認數據包。Socket接收緩沖區的大小就是TCP接收窗口大小。在某種程度上,如果接收窗口很大,TCP吞吐量就會很大。目前較新的內核都能動態調整窗口的大小,無需用戶去修改系統參數。

用戶應用程序根據讀事件去執行讀操作,用戶態空間進入到內核空間。內核把socket buffer里面的內容復制到用戶指定的內存區域,然后把socket buffer讀取過的內容釋放,TCP增加接收窗口大小,如果有必要,會傳遞一個更新窗口的數據包給對端TCP。例如下圖,TCP發送了一個ack數據包,用于通知對端TCP,本方TCP接收窗口更新了。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

讀取操作完成后,返回應用程序,應用程序就可以進行對數據進行處理了。

3. 抓包工具工作原理

知道了數據如何發送和接收以后,我們分析一下tcpdump抓包原理。

在數據鏈路層和IP層交界的地方(屬于數據鏈路層,如下圖),是數據包被tcpdump捕獲的場所。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

執行到這個交界處時,內核會去查看tcpdump是否在監聽,一旦有監聽,就把數據包內容放入到tcpdump設置的緩沖區。理論上只要tcpdump及時去提取數據,在線上壓力不大的情況下,抓包不會丟包。

tcpdump所抓到的數據包,僅僅是代表數據包經過了鏈路層和網絡層之間的交界處。從網卡進來的數據包未來的命運,可能是繼續一路往前走到TCP,也有可能在IP層被干掉,還有可能被路由轉發出去;從本機發送出去的數據包,一旦被tcpdump捕獲到,說明已經到了數據鏈路層,沒有被IP層過濾掉,因為如果數據包被IP層過濾掉,這些數據包就不會到達tcpdump捕獲點,也不會出現在抓包文件里。

下面我們通過一些實驗來驗證上述結論。

實驗之前,我們先介紹一下iptables工具。iptables是被廣泛使用的防火墻工具,它主要跟內核netfilter數據包過濾框架進行交互。

(1) 實驗 LOCAL_IN過濾

我們在服務器上面配置如下的iptables命令:

  1. iptables -I INPUT -p tcp --dport 3306 -s 172.17.0.2 -j QUEUE 

上述iptables命令設置了"-I INPUT"參數,意味著在netfilter LOCAL_IN鉤子處執行上述iptables規則,即通往服務器端TCP之前,如果匹配到上述iptables規則,則會被放入目標QUEUE(默認情況下是直接丟棄數據包),不再繼續前行。

具體命令執行見下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

設置上述iptables后,當172.17.0.2訪問172.17.0.3 3306服務時,IP數據包(如下圖綠色箭頭)會在服務器端IP層被丟棄掉,而紅色箭頭所指方向是tcpdump抓包的地方。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們開啟tcpdump抓包:

  1. tcpdump -i any tcp and port 3306 and host 172.17.0.2 -n -v 

在172.17.0.2上利用MySQL客戶端命令訪問172.17.0.3上面的3306服務,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

結果經過長時間等待,最終顯示連接不上。

服務器端抓包結果如下:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們看到第一次握手數據包反復重傳。

利用netstat命令,查看有沒有相應的TCP狀態,結果發現沒有,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

正常情況下,沒有TCP狀態,說明數據包沒有進入服務器端TCP,第一次握手數據包在服務器端IP層被干掉了。

利用netstat -s命令,在服務器端TCP/IP統計參數里找線索:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上圖服務器端IP層接收到20079個數據包,下圖接收到20086個數據包,MySQL客戶端登入過程累計增加了7個數據包,正好符合抓包文件顯示的7個第一次握手數據包。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

在服務器端TCP層,對比上面兩張圖,數據沒有任何變化,說明了服務器端TCP沒有收到任何數據包。

實驗說明了在服務器端IP層進來的方向干掉數據包,服務器端TCP層不會有任何變化。

(2) 實驗 LOCAL_OUT過濾

我們這次實驗的目的是查看IP層netfilter LOCAL_OUT情況下的抓包情況。

如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們設置如下iptables命令:

  1. iptables -I OUTPUT -p tcp --sport 3306 -d 172.17.0.2 -j QUEUE 

具體操作如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上述iptables命令設置了OUTPUT參數,意味著在netfilter LOCAL_OUT鉤子處會執行上述iptables規則,即IP數據包在IP路由之前,如果匹配上述iptables規則,則會被放入目標QUEUE(默認情況下直接丟棄數據包),不會繼續往下走。

在172.17.0.2上利用MySQL客戶端命令訪問172.17.0.3上面的3306服務,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

結果經過長時間等待,最終顯示連接不上。

服務器端抓包結果如下:

我們看到第一次握手數據包反復重傳,跟上一個抓包結果幾乎一模一樣

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

利用netstat命令,查看有沒有相應的TCP狀態,結果發現有SYN_RECV狀態,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

有TCP狀態,說明數據包進入服務器端TCP,并進入SYN_RECV狀態,服務器端TCP會發送第二次握手數據包,但抓包顯示并沒有第二次握手數據包,說明被iptables配置干掉了。

查看netstat -s結果:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上圖顯示了實驗之前的值,下圖顯示了實驗之后的值。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

從TCP層面信息來看,發送了17個數據分段,說明服務器端TCP發送了第二次握手數據包,而且發送了很多次,但因為設置了iptables,這些數據包被攔截掉了,所以到不了數據鏈路層,也就沒法被tcpdump捕獲到。

從這兩個實驗來看,tcpdump抓的數據包是一樣的,都是在努力重傳第一次握手數據包,但iptables設置的位置不一樣,一個在入口,在TCP層無狀態,一個在出口,在TCP層有狀態。

進一步的分析可以嘗試下面兩個方向:

  • 通過分析TCP狀態來區分這兩種情況
  • 利用netstat -s給出的TCP/IP統計參數變化

通過上面實驗,我們看出tcpdump抓包只是從一個點來觀察世界,并不能看到全貌,這個時候就需要通過推理來輔助解決問題。

4. 潛在協議層的干擾

(1) 接收數據

下圖展示了數據包從NIC到協議棧,再到應用程序的過程。

TCP offload由NIC完成,目的是減輕TCP的工作量,但存在潛在坑;在數據鏈路層,存在抓包接口,供tcpdump等抓包工具抓包,同時也存在著raw socket原始抓包方式接口;在網絡層,存在raw socket抓包接口,IP Forward轉發功能,還有一整套Netfilter框架(存在大量坑的地方);在TCP層則相對比較清靜,干擾少;用戶程序通過socket接口從TCP取出數據或者獲取新建連接。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

(2) 發送數據

下圖展示了數據包從應用發送數據到NIC的過程。

用戶程序通過socket接口來委托TCP發送數據或者建立連接;在網絡層,存在raw socket發包接口,還有一整套Netfilter框架(存在大量坑的地方);在數據鏈路層,存在pcap發包接口,同時也存在著raw socket原始發包接口;TCP offload是NIC做的,目的為了提升減輕TCP的工作量(比如分段,checksum),我們也遇到過由于TCP offload不當導致的丟包問題。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

(3) 案例

下面是一個從NIC接收數據包,并一路到應用,再發送響應出去的案例:

我們的應用程序是Nginx(Web服務器軟件),其中Nginx配置監聽端口為8080,且開啟access log。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上圖設置了nginx keepalive_timeout = 0,即保持客戶端空閑連接(方便實驗)。

啟動nginx,通過netstat查看,nginx已經在監聽8080端口的連接請求。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

剛開始nginx沒有任何訪問,access log都為空,iptables也沒有設置。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

在172.17.0.2機器,利用telnet訪問172.17.0.3上面的8080端口服務,如下圖:

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

這樣telnet跟nginx建立連接,下圖可以看出服務器端相應連接已經進入ESTABLISHED狀態。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

建立連接后,我們設置iptables命令,如下圖,對返回172.17.0.2的nginx響應進行攔截并丟棄。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們在客戶端(172.17.0.2)上面繼續執行telnet命令,鍵入"GET hello.html",然后回車執行。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

從nginx日志來看,這個請求已經被處理了,雖然是非法請求,但請求已經確認到達nginx了。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

大概過了2分鐘,查看客戶端抓包情況,累計捕獲了16個數據包,客戶端還顯示連接處于ESTABLISHED狀態。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們查看服務器端情況,利用netstat已經查不到服務器端的相應連接了,說明連接在服務器端的TCP層已經不存在了。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

我們分析抓包情況(服務器抓包和客戶端抓包效果一樣):

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

自從發送了請求數據包,客戶端由于沒有看到任何服務器端的數據包回來,一直在重傳請求數據包。客戶端以為服務器還沒有收到請求,但其實請求已經被nginx處理完畢。

在服務器端查看netstat -st的統計情況。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上圖是執行telnet請求之前的狀況,下圖是執行telnet請求之后的狀況。

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

從上圖我們可以看出connection aborted due to timeout增加了一個,說明在服務器端TCP看來,請求的響應數據包(同時帶有關閉fin標志)由于發送不出去,連接被aborted,這個時候在服務器端看不到連接相應狀態的存在。

在上層nginx看來,遇到了非法請求,回復了響應并關閉了連接。在TCP層看來,由于帶有關閉fin的數據包到不了tcpdump抓包接口,服務器端的TCP狀態會處于FIN_WAIT_1狀態("遇到大量FIN_WAIT1,怎么破?"會有詳細介紹),會維持一段時間并不斷努力重傳。由于重傳一直得不到響應,TCP就把FIN_WAIT_1狀態變為CLOSED狀態,在服務器端查不到該連接了。

這里案例中,我們事先知道我們設置了iptables,但如果不知道呢,我們如何判斷出問題出在哪一個環節呢?

僅僅靠tcpdump抓包,明顯不夠,因為通過抓包分析,我們只能得出服務器端沒有接收到請求,我們還需要利用服務器端的信息,才能繼續進一步判斷。通過nginx日志,判斷出請求已經被應用層處理了,說明請求數據包已經到達應用層,nginx已經處理請求,并作了響應處理,接著委托服務器端TCP去發送這些響應數據包,但顯然服務器端TCP發送的響應都沒有到達抓包接口,說明在IP層干掉了,于是可以根據這些信息去找數據包出去方向(outgoing)的netfilter相關配置,看看有沒有這樣針對這些響應進行過濾。

從上面案例,可以看出僅僅利用tcpdump是不夠的,還需要綜合利用各種信息,并加以推理,最終得出問題出在哪一個環節,才能解決問題。如果不會利用這些知識,客戶端就就會得出服務器端沒有收到請求的錯誤判斷。

5. 跨機器判斷

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

在跨機器訪問過程中,存在著如下潛在干涉(坑):

  • 本機器自身IP層安全過濾
  • 鏈路層發送QUEUE丟包
  • 鏈路層TCP offload潛在問題(這里把NIC歸入數據鏈路層)
  • 中途設備各種問題(設備包括路由器/交換機/防火墻/網關/負載均衡器等)
  • 對端機器鏈路層接收QUEUE丟包
  • 對端鏈路層TCP offload(NIC)潛在問題
  • 對端IP層安全過濾
  • 對端TCP異常狀態干擾

這些問題將在TCPCopy和其它章節會有所介紹,這里不再詳細描述。

6. 常用工具工作層次分析

TCP/IP協議棧之數據包如何穿越各層協議(絕對干貨)

上圖展示了部分流行性工具的工作層次,比如tcpcopy默認工作在4層,調用IP層提供的raw socket接口來抓包和發包;netstat或者ss工具可以去獲取TCP/IP各種統計值;LVS工作在4層,利用Netfilter來強行改變路由;tcpdump工作在數據鏈路層;HTTP應用工作在應用層。

懂得了這些工作原理,可以更加深刻的理解問題,并解決各種TCP相關問題。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2021-05-12 00:07:27

TCPIP協議

2010-09-08 15:11:36

TCP IP協議棧

2021-07-06 21:29:16

TCPIP協議棧

2019-09-30 09:28:26

LinuxTCPIP

2014-10-15 09:14:24

IP

2010-09-08 15:34:27

TCP IP協議棧

2020-07-09 08:14:43

TCPIP協議棧

2019-03-28 13:34:22

IP TCP握手

2010-06-12 15:54:09

TCP IP協議

2010-09-08 15:24:28

TCP IP協議棧

2010-09-08 15:15:12

TCP IP協議棧

2010-06-13 14:54:40

TCP IP協議棧linux

2010-09-27 13:25:58

TCP IP協議棧

2021-07-09 08:55:23

LinuxTCPIP

2010-06-13 13:39:46

TCP IP協議棧

2010-06-08 14:43:48

2020-12-03 08:37:38

TCPIPARP協議

2010-09-09 14:43:08

TCP IP協議棧

2014-07-09 09:43:59

2011-01-24 13:58:24

TCPIP協議棧
點贊
收藏

51CTO技術棧公眾號

久久最新视频| 亚洲精品一区二区在线播放∴| 成人免费视频播放| 国产69精品久久久| 亚洲国产日韩一区无码精品久久久| 国产毛片精品久久| 亚洲图片欧美综合| 亚洲高清视频一区二区| 亚洲av无码国产精品永久一区 | 久久99久久99精品| 麻豆av电影在线观看| 韩国视频一区二区| 欧美伊久线香蕉线新在线| 色www亚洲国产阿娇yao| 电影一区二区在线观看| 精品视频123区在线观看| 国产精品久久久久7777| 中文日本在线观看| 99精品久久久久久| 147欧美人体大胆444| 免费看污视频的网站| 欧美日韩岛国| 最近2019中文免费高清视频观看www99| 91av免费观看| 成人看片毛片免费播放器| 亚洲国产精品一区二区www| 亚洲高清视频在线观看| 三级黄视频在线观看| 国产一区不卡精品| 国产精品美女在线观看| 日日夜夜综合网| 欧美喷水视频| 久久精品成人一区二区三区 | 精品人妻午夜一区二区三区四区| 米奇777在线欧美播放| 欧美国产极速在线| 波多野结衣喷潮| 国产成人短视频在线观看| 亚洲国产一区自拍| 最新中文字幕日本| 6080成人| 日韩欧美综合在线| 国产精品igao网网址不卡| 国产极品久久久久久久久波多结野| 亚洲国产日产av| av动漫在线播放| 国产精品剧情一区二区在线观看| 中文字幕欧美三区| 日韩电影天堂视频一区二区| 视频二区在线| 91视视频在线直接观看在线看网页在线看| 亚洲综合色av| 国内精品偷拍视频| 国产精品系列在线播放| 亚洲最大的免费| 国产精品无码在线播放| 精品在线亚洲视频| 91精品视频在线看| av天堂一区二区三区| 国产一区二区精品久久| 91精品国产91久久久久青草| 国内老熟妇对白hdxxxx| 国产精品系列在线播放| 成人自拍视频网站| 日韩在线观看视频一区| 91在线高清观看| 久久综合一区| 北条麻妃在线| 中文字幕一区二区三区在线播放| 正在播放一区| 1区2区在线观看| 亚洲一级二级三级在线免费观看| 欧美日韩不卡在线视频| 国产理论在线| 欧美丝袜一区二区| 杨幂毛片午夜性生毛片| 只有精品亚洲| 精品国产a毛片| 可以直接看的无码av| 国产麻豆精品久久| 久久精品美女视频网站 | 中文字幕日韩一区二区不卡| 欧美成人精品三级在线观看| 久久久久人妻一区精品色欧美| 亚洲无毛电影| 日本一本a高清免费不卡| 日韩av免费播放| 国产一区二三区| 精品欧美一区二区三区久久久| 欧美男男激情freegay| 中文字幕一区二区三| 国产va亚洲va在线va| 蜜臀国产一区| 欧美一区二区三区视频免费播放| 五月天激情小说| jiujiure精品视频播放| 欧美日产国产成人免费图片| 天天操天天操天天操天天| 蜜乳av一区二区| 国产美女在线精品免费观看| 国产精品一级伦理| 亚洲国产乱码最新视频| 无限资源日本好片| 久久亚洲黄色| 久久人人爽人人爽爽久久| 制服.丝袜.亚洲.中文.综合懂色| 精品制服美女丁香| 欧美一区免费视频| 激情图片在线观看高清国产| 在线观看日韩电影| 性欧美18—19sex性高清| 日韩精品永久网址| 国产91av在线| 不卡的日韩av| 欧美国产日本韩| 亚洲熟妇av一区二区三区漫画| 欧美美女福利视频| 亚洲人成网站色ww在线| 欧美黄色一区二区三区| 青青草伊人久久| 精品欧美一区二区三区久久久| caoporn免费在线| 欧美亚洲高清一区二区三区不卡| 91成人在线观看喷潮蘑菇| 欧美成人激情| 国产精品极品美女在线观看免费 | 97国产精品久久久| 国产午夜精品美女毛片视频| av之家在线观看| 97久久精品| 久久精品久久精品亚洲人| 超碰在线免费97| 久久久久久97三级| 午夜精品久久久久久久无码 | 精品国产一区二区三区不卡| 久久成人小视频| 久久国产精品区| 日韩三级在线播放| 日韩欧美看国产| 日韩电视剧在线观看免费网站| 麻豆视频在线观看| 国产精品一区二区免费不卡| 致1999电视剧免费观看策驰影院| 在线看欧美视频| 国产亚洲精品久久久久久牛牛| 五月婷婷开心网| 99久久精品99国产精品| 国产精品12345| 免费看成人人体视频| 久久久午夜视频| 六月丁香综合网| 亚洲成人自拍一区| 欧美丰满熟妇bbb久久久| 欧美日韩网站| 国产精品久久久久久免费观看| 视频在线这里都是精品| 精品国偷自产国产一区| 久久久久免费看| 99久久久久久| 免费午夜视频在线观看| 精品日韩欧美一区| 国产精品一区电影| 免费在线观看av网站| 在线观看91av| 国产av无码专区亚洲av毛网站| 国产乱人伦偷精品视频免下载| 欧美另类videosbestsex日本| 超碰97久久| 7777精品久久久久久| 欧美孕妇性xxxⅹ精品hd| 在线免费观看不卡av| 亚洲a∨无码无在线观看| 国产一区二区调教| 激情成人开心网| 天堂网av成人| 国产精品旅馆在线| 在线heyzo| 亚洲男人av在线| 国产一区二区在线不卡| 亚洲一区二区偷拍精品| 草草影院第一页| 激情综合色综合久久| 国产一区二区三区在线免费| 香蕉国产成人午夜av影院| 国产精品入口夜色视频大尺度| 老司机午夜在线视频| 精品国产人成亚洲区| 亚洲国产成人精品女人久久| 中文字幕一区二区三区不卡在线| 97精品人人妻人人| 日产国产欧美视频一区精品| 佐佐木明希av| 免费av一区| 91精品久久香蕉国产线看观看| 色综合桃花网| 久久躁日日躁aaaaxxxx| 日韩av高清在线| 日韩视频一区二区在线观看| 国产精品久久久久久久久夜色| 亚洲精品日韩综合观看成人91| 成年人的黄色片| 久久精品国产99| 久久综合九色综合88i| 亚洲成人一区| 日韩精品久久久免费观看| 欧美在线在线| 日韩美女在线观看| 另类视频在线| 久久精品人人做人人爽| 日韩av资源| 精品福利在线导航| 在线免费观看视频网站| 欧美视频在线观看免费| 欧美人妻精品一区二区免费看| 亚洲国产激情av| 熟妇高潮精品一区二区三区| 国产精品亚洲视频| 爱爱爱爱免费视频| 久久久精品性| 18禁免费观看网站| 欧美精品18| 最新欧美日韩亚洲| 欧美伦理影院| 欧美日韩另类丝袜其他| 国产伦乱精品| 99理论电影网| 美女久久精品| 91久久精品美女高潮| 91国内外精品自在线播放| 国产91精品高潮白浆喷水| 性xxxfreexxxx性欧美| 精品精品国产国产自在线| 国产区高清在线| 精品亚洲国产视频| 神马电影在线观看| 亚洲国产毛片完整版| 国模无码一区二区三区| 日韩精品一区二区三区在线播放 | 丰满女人性猛交| 久久精品av| 亚洲午夜精品一区二区| 菠萝蜜一区二区| 色涩成人影视在线播放| 国产一区二区观看| 日本在线视频不卡| 精品国产一区一区二区三亚瑟| 欧美精品久久久| 亚洲综合福利| 欧美亚洲免费在线| av在线不卡顿| 亚洲视频在线观看日本a| 日产精品一区二区| 一本色道久久综合亚洲精品婷婷 | 日韩视频免费大全中文字幕| 99reav在线| www.欧美免费| 国产黄色在线观看| 精品视频9999| 国产传媒在线观看| 57pao精品| 国产成+人+综合+亚洲欧美| 国产玖玖精品视频| 国产午夜久久av| 翡翠波斯猫1977年美国| 精品视频高潮| 日本成人三级电影网站| 九九久久婷婷| 一区二区在线高清视频| 亚洲色图88| 欧美激情视频免费看| 久久精品道一区二区三区| 97公开免费视频| 久久99精品国产91久久来源| 中文字幕av一区二区三区人妻少妇| 国产馆精品极品| a视频免费观看| 日本一区二区三区久久久久久久久不 | 99热这里只有精品在线| 亚洲福利视频在线| 福利在线视频导航| 美女精品久久久| 欧产日产国产精品视频| 国产精品久久久久久亚洲影视| 亚洲成a人片777777久久| 风间由美久久久| 国产欧美日韩视频在线| 男女裸体影院高潮| 久热精品在线| 久久aaaa片一区二区| 久久免费看少妇高潮| 性欧美videos| 欧美性少妇18aaaa视频| 国产视频在线免费观看| 日韩精品日韩在线观看| 黄色一级片在线观看| 欧美一级视频在线观看| 精品国产18久久久久久二百| 久久99精品久久久久久水蜜桃| 99精品全国免费观看视频软件| 欧美在线一区视频| 久久精品国产亚洲一区二区三区| 性感美女一区二区三区| 国产精品美女一区二区三区| 中文字幕一区二区三区手机版| 欧美午夜免费电影| 深夜福利视频网站| 久久国产精品影片| 日韩欧美一区二区三区免费观看| 亚洲自拍另类欧美丝袜| 久久93精品国产91久久综合| 欧美中日韩在线| 久久99精品久久久久婷婷| www.久久av| 亚洲午夜影视影院在线观看| 91丨porny丨在线中文| 亚洲男人天堂视频| 久草在线资源站手机版| 91久色国产| 婷婷中文字幕一区| 欧美日韩亚洲一二三| av成人动漫在线观看| 免费人成年激情视频在线观看| 欧美日韩国产另类一区| 韩国三级在线观看久| 2019日本中文字幕| 一区视频网站| 四虎4hu永久免费入口| 蜜桃一区二区三区在线| 精品人妻中文无码av在线| 色综合咪咪久久| 三级黄视频在线观看| 57pao成人永久免费视频| 清纯唯美亚洲经典中文字幕| 日本熟妇人妻xxxx| 国产很黄免费观看久久| 欧美黄色免费在线观看| 欧美一级电影网站| h视频在线免费观看| 亚洲伊人成综合成人网| 婷婷久久一区| 97超碰人人看| 亚洲欧美一区二区三区孕妇| 国产精品人人爽| 久久天天躁夜夜躁狠狠躁2022| 久久精品超碰| 国产精品久久成人免费观看| 久久国产精品99久久久久久老狼| 在线观看免费黄色网址| 欧美亚洲日本国产| 视频三区在线| 亚洲一区国产精品| 欧美91视频| 成人在线电影网站| 精品久久久久久久久久久| 亚洲 欧美 精品| 日本精品视频网站| av一区二区在线观看| www.com污| 一区二区免费看| 日韩在线观看视频一区| 欧美在线视频免费| 欧美亚洲国产精品久久| www.国产视频.com| 一区二区三区产品免费精品久久75| 亚洲国产精品视频在线| 国产+成+人+亚洲欧洲| 国产成人3p视频免费观看| www.久久91| 一级精品视频在线观看宜春院| 欧美一级淫片aaaaaa| 国产va免费精品高清在线| 欧美亚洲激情| 激情小说欧美色图| 欧美性猛交xxxx黑人| 最新国产在线观看| 99re视频在线| 噜噜噜躁狠狠躁狠狠精品视频 | 99久久精品费精品国产风间由美| 自拍一级黄色片| 激情久久av一区av二区av三区| 精品999视频| 亚洲qvod图片区电影| 国产欧美日韩一区二区三区在线| 高清国产在线观看| 日韩欧美在线影院| 成人爱爱网址| 国内外成人激情免费视频| 91美女视频网站| 国产乱色精品成人免费视频| 97欧美精品一区二区三区| 色777狠狠狠综合伊人| 国模无码视频一区| 欧美日韩中字一区| 欧美裸体视频| 精品一区二区成人免费视频 | 欧美二级三级| 国产剧情在线观看一区二区 | 欧美一区二区日韩一区二区| 欧美极品videos大乳护士| 免费成人进口网站|