日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

TCP/UDP協(xié)議全解:握手、重傳、抓包與選型排障

TCP/UDP協(xié)議全解:握手、重傳、抓包與選型排障 凌晨兩點被告警電話叫起來某服務(wù)的接口超時率十幾分鐘內(nèi)從 0.3% 飆到 30%日志里刷屏connection reset by peer抓包一看滿屏 RST 和大量重傳最后定位到一個中間設(shè)備的空閑連接超時策略和業(yè)務(wù)的長連接心跳沒對齊。這種場面只要做過線上服務(wù)遲早會碰上一兩次。而每一次追到最底層你都會撞上同一個東西計算機(jī)網(wǎng)絡(luò)里的UDP / TCP 協(xié)議。這兩個協(xié)議是所有上層玩意的地基。上面架著 HTTP、gRPC、DNS、數(shù)據(jù)庫連接、消息隊列、音視頻推流、游戲同步、物聯(lián)網(wǎng)上報下面踩著 IP 層的盡力而為??蚣茉倩ㄉ?、網(wǎng)關(guān)再智能、SDK 封裝再厚落到網(wǎng)線上跑的無非就是這兩種傳輸層協(xié)議之一。我見過不少寫了三四年業(yè)務(wù)的同學(xué)能把框架的線程模型講得頭頭是道但一問他為什么這個接口偶爾會多出 40 毫秒延遲為什么這條消息偶發(fā)丟了沒報錯為什么服務(wù)端 ESTABLISHED 一堆但業(yè)務(wù)就是不通就答不上來了。原因很簡單這些問題不在框架層在傳輸層。這篇內(nèi)容我想把它寫成一個完整的、可以拿來當(dāng)手冊用的東西從兩個協(xié)議的報文頭逐字節(jié)拆到 TCP 的連接管理和可靠性機(jī)制怎么堆出來的再到用抓包和代碼把協(xié)議看見最后是選型決策和線上排障實錄。寫的過程中我會把參數(shù)的計算過程、我踩過的坑、以及那些文檔里不會寫的經(jīng)驗都放進(jìn)去。適合誰看寫后端業(yè)務(wù)服務(wù)、做客戶端和嵌入式、搞音視頻或?qū)崟r同步、以及在準(zhǔn)備技術(shù)面試的同學(xué)都能從中拿到東西?;A(chǔ)弱的可以先把第 1、2 章讀透把是什么釘死有經(jīng)驗的可以直接跳到第 4、5、7 章那里全是我在實踐中反復(fù)驗證過的細(xì)節(jié)。代碼示例我統(tǒng)一用 Python 寫因為它最接近偽代碼你換成 Go、Java、C 都能一一對應(yīng)。1. 先把兩個協(xié)議擺到臺面上它們到底在解決什么問題1.1 從一次發(fā)消息說起傳輸層到底負(fù)責(zé)什么任何一次網(wǎng)絡(luò)通信本質(zhì)上都是一臺機(jī)器上的某個進(jìn)程把一段字節(jié)交給另一臺機(jī)器上的某個進(jìn)程。IP 層只負(fù)責(zé)把數(shù)據(jù)包送到目標(biāo)主機(jī)它不知道什么是進(jìn)程也不保證送達(dá)、不保證順序、不保證不重復(fù)。傳輸層就是把 IP 層的這個盡力而為服務(wù)加工成應(yīng)用能直接用的東西。這里有兩個必須解決的問題UDP 和 TCP 各自給出了不同答案。第一個是進(jìn)程尋址。一臺機(jī)器上可能開著幾百個進(jìn)程數(shù)據(jù)包到了網(wǎng)卡操作系統(tǒng)怎么知道該交給誰答案就是端口。源端口和目的端口各 16 位加起來 65535 個可用端口0 保留這就是傳輸層最基礎(chǔ)的一塊磚。第二個是服務(wù)質(zhì)量。要不要保證送達(dá)要不要保證順序要不要控制速度這些問題的答案就拉開了 UDP 和 TCP 的分野。我習(xí)慣用兩個生活場景來類比講了無數(shù)遍效果最好UDP 像是往對方信箱里塞明信片塞進(jìn)去就完事對方收沒收到、幾張、順序?qū)Σ粚募艘桓挪还艿俣瓤臁⒊杀镜汀⑾爰膸讖埣膸讖圱CP 像是打電話先要撥通握手說話要對方嗯一聲確認(rèn)對方?jīng)]聲了你要重說重傳對方聽不過來你要放慢流控掛電話前還要互相道別揮手。這個類比能解釋絕大部分現(xiàn)象。比如為什么 DNS 默認(rèn)用 UDP因為一次查詢就一問一答包很小丟了重發(fā)一次成本極低為它建立連接反而是浪費。為什么文件下載用 TCP因為少一個字節(jié)文件就廢了必須保證完整和有序。1.2 一條流水線對比一張明信片核心差異的全景圖把差異鋪開成表格看得最清楚。這張表我建議你手抄一遍面試和排障時腦子里能直接調(diào)出來。維度TCPUDP連接面向連接三次握手建立四次揮手釋放無連接發(fā)了就發(fā)可靠性確認(rèn)、重傳、排序、去重保證不丟不亂不保證送達(dá)不保證順序不保證不重復(fù)數(shù)據(jù)形態(tài)字節(jié)流無消息邊界數(shù)據(jù)報保留邊界一次發(fā)一次收頭部開銷20 字節(jié)起步帶選項可到 60 字節(jié)固定 8 字節(jié)傳輸方式支持全雙工有發(fā)送/接收緩沖區(qū)無緩沖概念直接交給 IP 層流量與擁塞控制有滑動窗口 擁塞控制四階段沒有應(yīng)用自己控制節(jié)奏廣播/組播不支持支持典型場景HTTP、數(shù)據(jù)庫、消息隊列、文件傳輸DNS、音視頻、游戲同步、日志上報、DHCP這張表里有個細(xì)節(jié)經(jīng)常被講錯UDP 不是不可靠協(xié)議而是不提供可靠性保證的協(xié)議。它只是不做不是做不到。你完全可以在 UDP 上面自己實現(xiàn)確認(rèn)、重傳、排序——QUIC 就是這么干的在 UDP 之上重建了一套可靠傳輸還順手解決了 TCP 的隊頭阻塞問題。所以選型時不要被UDP 不可靠這句話嚇住要問的是我需要的那部分可靠性自己實現(xiàn)劃算還是直接用 TCP 劃算。還有一個常被忽略的點TCP 的字節(jié)流特性意味著它不保留應(yīng)用層消息邊界。你發(fā)兩次 100 字節(jié)對方可能一次 read 到 200 字節(jié)也可能分三次 read 到 30/70/100。這就是所謂粘包問題的根源——它根本不是 TCP 的 bug而是你把流當(dāng)成了包來用。UDP 反而天然保留邊界一次 sendto 對應(yīng)一次 recvfrom代價是單包有大小限制理論上 65507 字節(jié)實際受 MTU 限制。2. 報文頭逐字節(jié)拆解字段設(shè)計背后的取舍2.1 UDP 頭部8 字節(jié)里藏著什么UDP 頭部只有 4 個字段各 16 位一共 8 字節(jié)簡潔到近乎粗暴0 7 8 15 16 23 24 31 -------------------------------- | 源端口號 | 目的端口號 | -------------------------------- | 長度 | 校驗和 | -------------------------------- | 數(shù)據(jù) ... | -----------------------------------長度字段指的是頭部 數(shù)據(jù)的總長度最小值是 8只有頭沒有數(shù)據(jù)最大值 65535。注意因為這個字段只有 16 位UDP 單個數(shù)據(jù)報的理論上限就是 65535 減去 IP 頭20再減去 UDP 頭8即 65507 字節(jié)。但這是理論值實際跑在以太網(wǎng)上MTU 是 1500IP 頭占 20UDP 頭占 8你能塞進(jìn)單個不分片數(shù)據(jù)報的載荷只有 1472 字節(jié)。校驗和字段是最容易被忽略的。它覆蓋的不只是 UDP 頭和載荷還包括一個 12 字節(jié)的偽首部——源 IP、目的 IP、協(xié)議號、UDP 長度。為什么要拉上 IP 地址一起算因為要防止包被錯誤地投遞到別的主機(jī)上而沒被發(fā)現(xiàn)。這個偽首部只參與計算不實際傳輸。這里有個坑一定要記住IPv4 下 UDP 校驗和是可選的發(fā)送方算出來如果是 0要寫成全 10xFFFF如果壓根不想算填全 0接收方看到全 0 就跳過校驗。IPv6 下則是強(qiáng)制的。我見過真實案例某中間設(shè)備重算校驗和時出了 bug把本該是 0 的結(jié)果寫成了 0x0000接收端直接判定未計算校驗和而放行一個損壞的包被業(yè)務(wù)當(dāng)成正常數(shù)據(jù)處理排查了兩天才找到。2.2 TCP 頭部20 字節(jié)起步的代價與控制力TCP 頭部最少 20 字節(jié)帶選項最多 60 字節(jié)。多出來的每一個字節(jié)都是在為可靠性、流量控制、擁塞控制買單。0 7 8 15 16 23 24 31 -------------------------------- | 源端口號 | 目的端口號 | -------------------------------- | 序號 (seq) | ----------------------------------- | 確認(rèn)號 (ack) | -------------------------------- |偏移|保留 | 標(biāo)志位 | 窗口大小 | -------------------------------- | 校驗和 | 緊急指針 | --------------------------------- | 選項可選 | -----------------------------------序號和確認(rèn)號各 32 位是整個 TCP 可靠性的基石第 4 章會細(xì)講。數(shù)據(jù)偏移占 4 位單位是 4 字節(jié)所以它能表示的最大頭部長度是 15 × 4 60 字節(jié)——這也是 TCP 頭部上限的由來。窗口大小16 位最大 65535 字節(jié)這在高帶寬高延遲鏈路上遠(yuǎn)遠(yuǎn)不夠BDP 一算就知道所以有了窗口擴(kuò)大因子Window Scale選項移位最大 14 位理論上窗口上限能到 2^30 字節(jié)左右約 1GB。標(biāo)志位里SYN、ACK、FIN、RST 四個是日常打交道最多的SYN 建連、ACK 確認(rèn)、FIN 正常關(guān)閉、RST 強(qiáng)制重置。PSH 提示接收方盡快把數(shù)據(jù)交給應(yīng)用URG 配合緊急指針現(xiàn)代實現(xiàn)基本不用了CWR 和 ECE 服務(wù)于顯式擁塞通知ECN。RST 這個位值得單獨說它表示這個連接我不認(rèn)了立即終止。收到 RST 時緩沖區(qū)里未發(fā)送的數(shù)據(jù)會被直接丟棄這也是為什么長連接遇到中間設(shè)備超時后業(yè)務(wù)側(cè)經(jīng)??吹秸埱蟀l(fā)出去了但沒響應(yīng)然后連接斷了。2.3 端口與校驗和兩個容易被忽略的細(xì)節(jié)端口這塊日常開發(fā)最容易踩的是端口耗盡。一個 TCP 連接由四元組唯一確定源 IP、源端口、目的 IP、目的端口。作為客戶端去連同一個目標(biāo)源 IP 和目的端口固定能變的只有源端口Linux 默認(rèn)的本地端口范圍是 32768–60999不到 3 萬個。如果業(yè)務(wù)大量短連接、又沒開SO_REUSEADDR、TIME_WAIT 堆積就可能出現(xiàn)Cannot assign requested address的報錯。這時候調(diào)大net.ipv4.ip_local_port_range到1024 65535、減少 TIME_WAIT 占用比優(yōu)化業(yè)務(wù)代碼見效快得多。校驗和這塊TCP 和 UDP 一樣帶偽首部一樣覆蓋頭部和數(shù)據(jù)。區(qū)別在于 TCP 校驗和是強(qiáng)制的沒有跳過這個選項。另外現(xiàn)代網(wǎng)卡普遍支持校驗和卸載Checksum Offload你在本機(jī)抓包看到的校驗和可能是錯的因為網(wǎng)卡還沒算——別急著以為是協(xié)議棧 bug先確認(rèn)是不是卸載導(dǎo)致的假象。這個坑我踩過一次當(dāng)時以為內(nèi)核有問題折騰了半天最后ethtool -K eth0 tx off關(guān)掉卸載才看到正確值。3. TCP 的連接管理三次握手、四次揮手與狀態(tài)機(jī)3.1 三次握手為什么是三次握手過程本身很好記客戶端 服務(wù)端 | ---- SYN, seqx ----------- | 客戶端進(jìn) SYN_SENT | --- SYNACK, seqy,ackx1 | 服務(wù)端進(jìn) SYN_RCVD | ---- ACK, acky1 --------- | 雙方進(jìn) ESTABLISHED關(guān)鍵問題是為什么不能兩次為什么不能四次兩次握手的問題在于服務(wù)端無法確認(rèn)客戶端收到了我的 SYN-ACK。如果客戶端發(fā)了一個 SYN因為網(wǎng)絡(luò)延遲很久之后才到達(dá)服務(wù)端客戶端早就超時放棄了服務(wù)端兩次握手就建立連接然后傻等一個永遠(yuǎn)不會來的數(shù)據(jù)資源白白占著。三次握手讓服務(wù)端在收到第三個 ACK 之后才確認(rèn)對方真的還在、真的收到了我的回應(yīng)這才算雙向確認(rèn)。從信息論角度看雙方各自需要確認(rèn)兩件事我的發(fā)送能力對方能收到、對方的發(fā)送能力我能收到。客戶端通過 SYN-ACK 確認(rèn)了這兩點服務(wù)端只有收到第三個 ACK才能確認(rèn)這兩點。兩個方向各需要一次交互交叉起來最少就是三次。四次當(dāng)然也行把 SYNACK 拆成兩個包但純屬浪費。序號的選擇也有講究。初始序號 ISN 不是從 0 或 1 開始的而是隨機(jī)化的。早期實現(xiàn)用時鐘驅(qū)動現(xiàn)在RFC 6528一般用源 IP、目的 IP、源端口、目的端口四元組加上一個密鑰做哈希。為什么要隨機(jī)防止攻擊者預(yù)測序號后偽造報文注入數(shù)據(jù)也防止同一四元組的歷史連接殘包被誤認(rèn)為當(dāng)前連接的數(shù)據(jù)。有個實操細(xì)節(jié)服務(wù)端在 SYN_RCVD 狀態(tài)時會把這個半連接放進(jìn)半連接隊列syn queue等第三個 ACK 到了才移進(jìn)全連接隊列accept queue。如果應(yīng)用層 accept 太慢全連接隊列滿了新完成的連接會被丟掉或者回 RST客戶端看到的就是握手成功了但立刻斷開。隊列長度由net.core.somaxconn和 listen 的 backlog 參數(shù)共同決定默認(rèn)值往往偏小高并發(fā)服務(wù)記得調(diào)。另一個相關(guān)參數(shù)是net.ipv4.tcp_max_syn_backlog半連接隊列滿了會觸發(fā) SYN cookie 機(jī)制。3.2 四次揮手與 TIME_WAIT 的真實困擾關(guān)閉比建立復(fù)雜因為 TCP 是全雙工的兩個方向要各自關(guān)閉主動關(guān)閉方 被動關(guān)閉方 | ---- FIN, sequ ------------ | 被動方進(jìn) CLOSE_WAIT | --- ACK, acku1 ----------- | | --- FIN, seqw, acku1 ---- | 被動方進(jìn) LAST_ACK | ---- ACK, ackw1 ---------- | 被動方進(jìn) CLOSED | 主動方進(jìn) TIME_WAIT等 2MSL |為什么是四次因為 FIN 只表示我沒有數(shù)據(jù)要發(fā)了不代表我不能再收。被動方收到 FIN 后可以先回 ACK然后繼續(xù)把剩下的數(shù)據(jù)發(fā)完發(fā)完了再發(fā)自己的 FIN。這兩件事不能合并成一個包所以是四次。當(dāng)然如果被動方此時也沒有數(shù)據(jù)要發(fā)FIN 和 ACK 可以合并實際抓包里經(jīng)??吹饺尉徒Y(jié)束。TIME_WAIT 是投訴率最高的一個狀態(tài)。主動關(guān)閉方在發(fā)完最后一個 ACK 后要等 2MSL 才能徹底關(guān)閉Linux 上 MSL 固定為 60 秒所以 TIME_WAIT 持續(xù) 60 秒。它存在的理由有兩個一是保證最后的 ACK 能到達(dá)對方如果 ACK 丟了對方會重發(fā) FIN此時自己還能回一次 ACK二是讓這條連接上所有迷路的舊報文在網(wǎng)絡(luò)中消亡避免污染下一個同四元組的新連接。代價是高并發(fā)的短連接服務(wù)主動關(guān)閉方會積累海量 TIME_WAIT占滿本地端口。標(biāo)準(zhǔn)解法有幾個讓服務(wù)端主動關(guān)閉服務(wù)端端口固定不受本地端口限制影響用連接池復(fù)用長連接開啟net.ipv4.tcp_tw_reuse1注意它只對出向連接生效而且依賴時間戳tcp_max_tw_buckets調(diào)大但要謹(jǐn)慎超限會打日志并直接銷毀。tcp_tw_recycle千萬不要開它在 NAT 環(huán)境下會導(dǎo)致大量連接失敗新內(nèi)核已經(jīng)把它移除了。比 TIME_WAIT 更值得警惕的是CLOSE_WAIT 堆積。大量連接卡在 CLOSE_WAIT說明對端已經(jīng)發(fā)了 FIN而你的應(yīng)用沒有調(diào)用 close() 釋放 socket。這是純粹的代碼問題可能是業(yè)務(wù)邏輯里 return 提前了沒走 finally可能是線程池耗盡導(dǎo)致回調(diào)沒執(zhí)行也可能是用了連接池但歸還邏輯有 bug??吹?CLOSE_WAIT 數(shù)量只增不減別調(diào)內(nèi)核參數(shù)去查代碼。3.3 狀態(tài)機(jī)速查與抓包識別TCP 一共 11 個狀態(tài)日常排查其實只需要認(rèn)出幾個關(guān)鍵的狀態(tài)出現(xiàn)位置含義與常見問題LISTEN服務(wù)端正常監(jiān)聽數(shù)量異常多說明服務(wù)開得太多SYN_SENT客戶端發(fā)了 SYN 沒收到回應(yīng)通常是網(wǎng)絡(luò)不通或被防火墻丟包SYN_RCVD服務(wù)端半連接大量堆積可能是 SYN Flood 或 backlog 太小ESTABLISHED雙方連接已建立數(shù)量持續(xù)增長要警惕連接泄漏FIN_WAIT_1主動關(guān)閉方發(fā)了 FIN 還沒收到 ACKFIN_WAIT_2主動關(guān)閉方收到 ACK 但對方還沒發(fā) FIN長期卡住說明對端應(yīng)用沒關(guān)連接TIME_WAIT主動關(guān)閉方正常等 2MSLCLOSE_WAIT被動關(guān)閉方應(yīng)用沒調(diào) close()堆積就是代碼 bugLAST_ACK被動關(guān)閉方發(fā)了 FIN 等最后 ACK一般很快消失用ss -tan state time-wait | wc -l這類命令能快速統(tǒng)計各狀態(tài)數(shù)量ss -tanp還能看到對應(yīng)進(jìn)程。抓包時狀態(tài)轉(zhuǎn)換在報文里一目了然看到SYN就是建連開始看到RST, ACK就是異常終止看到FIN, ACK就是正常關(guān)閉。有個小技巧抓包文件里篩選tcp.flags.reset 1能一次性把所有異常重置的連接撈出來排障效率極高。4. 可靠性是怎么堆出來的序號、確認(rèn)、重傳與滑動窗口4.1 序號與確認(rèn)號的計算TCP 把應(yīng)用層交下來的字節(jié)流當(dāng)成一個連續(xù)的字節(jié)序列每個字節(jié)都有一個編號。序號字段填的是本報文段第一個數(shù)據(jù)字節(jié)的編號。確認(rèn)號填的是我期待收到的下一個字節(jié)編號也就是這個編號之前的所有字節(jié)我都收到了。舉個具體例子??蛻舳艘l(fā) 3000 字節(jié)MSS 是 1000假設(shè)那么會切成三個段第一段seq1000ISN1長度 1000攜帶字節(jié) 1000–1999第二段seq2000長度 1000攜帶字節(jié) 2000–2999第三段seq3000長度 1000攜帶字節(jié) 3000–3999服務(wù)端收到第一段后回ack2000含義是1999 及之前的我都收到了下一個我要 2000。如果第一段和第二段都到了但第三段丟了服務(wù)端會回ack3000而不是 4000明確告訴發(fā)送方我只到 2999。這里有兩個容易搞混的點。第一SYN 和 FIN 各消耗一個序號所以握手時seqx的 SYN對方回ackx1關(guān)閉時 FIN 也一樣。第二純 ACK 報文不消耗序號也不攜帶數(shù)據(jù)它只是確認(rèn)。抓包時看到Seq1, Ack1, Len0這種就是純確認(rèn)包。序號字段只有 32 位超過 4GB 會回繞。如果鏈路兩端對回繞的處理不一致就會出現(xiàn)序號跳變的詭異問題?,F(xiàn)代內(nèi)核用 PAWSProtection Against Wrapped Sequences機(jī)制配合時間戳選項來判斷基本能自動處理但如果你在自研協(xié)議?;蛘咦鲋虚g件這塊必須特別注意。4.2 超時重傳與快速重傳發(fā)出去的段沒收到確認(rèn)怎么辦重傳。但多久沒收到就重傳這個時間RTO不能拍腦袋定定短了會瘋狂重傳加劇擁塞定長了恢復(fù)慢。TCP 的做法是動態(tài)估算第一次測量SRTT R, RTTVAR R/2 后續(xù)測量 RTTVAR (1-β) × RTTVAR β × |SRTT - R| SRTT (1-α) × SRTT α × R RTO SRTT 4 × RTTVAR其中 α 1/8β 1/4。這個公式的意思是維護(hù)一個平滑的往返時間 SRTT 和一個偏差估計 RTTVARRTO 取平滑值 4 倍偏差這樣在鏈路抖動時能自動放寬。Linux 上 RTO 有下限通常 200ms和上限通常 120 秒初始值一般是 1 秒。但等超時太慢了。TCP 還有一條更快的路徑快速重傳。如果發(fā)送方連續(xù)收到 3 個重復(fù)的 ACK說明某個段丟了后面的段都到了就立刻重傳丟失的段不用等 RTO 到期。配合 **SACK選擇性確認(rèn)**選項接收方還能告訴發(fā)送方我收到了哪些不連續(xù)的段發(fā)送方就只用重傳真正缺的那幾段而不是把后面全重傳一遍。這里有個參數(shù)值得記net.ipv4.tcp_sack默認(rèn)開啟不要關(guān)。我見過有人為了省流量關(guān)掉 SACK結(jié)果丟包率一高重傳量翻了三四倍帶寬反而被吃滿。實際排查中如果你在抓包文件里看到連續(xù)多個[TCP Dup ACK]緊接著一個[TCP Retransmission]那就是標(biāo)準(zhǔn)的快速重傳現(xiàn)場。如果看到的是[TCP Retransmission]前面沒有任何 Dup ACK那就是超時重傳說明丟包發(fā)現(xiàn)得晚延遲會明顯變高。4.3 滑動窗口與流量控制重傳解決丟了補(bǔ)上滑動窗口解決別發(fā)太快把對方撐爆。接收方在每次 ACK 里帶上自己的接收窗口rwnd含義是我當(dāng)前緩沖區(qū)還能接這么多字節(jié)。發(fā)送方維護(hù)一個發(fā)送窗口窗口內(nèi)的數(shù)據(jù)可以連續(xù)發(fā)出去不用等確認(rèn)窗口左邊界隨著 ACK 前移。這就是滑動的含義。窗口大小直接決定吞吐量上限。公式很簡單吞吐量上限 窗口大小 / RTT假設(shè)窗口 64KBRTT 40ms那單連接吞吐上限就是 65536 / 0.04 ≈ 1.6 MB/s約 13 Mbps。這就是為什么跨地域傳輸大文件時單條 TCP 連接怎么都跑不滿帶寬——不是帶寬不夠是窗口太小、RTT 太大。解決辦法是開窗口擴(kuò)大因子或者多開幾條連接并行。窗口縮到 0 時發(fā)送方會停止發(fā)送并啟動零窗口探測定期發(fā)一個小包問現(xiàn)在能收了嗎。如果接收方應(yīng)用一直不 read 數(shù)據(jù)緩沖區(qū)滿了就會一直零窗口發(fā)送方就一直等著——這也是服務(wù)端不讀數(shù)據(jù)導(dǎo)致客戶端卡死這類問題的原理。用ss -tmi能看到每個連接的rwnd、cwnd、rtt等詳細(xì)指標(biāo)排障時非常有用。4.4 擁塞控制從慢啟動到 CUBIC流量控制是照顧接收方擁塞控制是照顧整個網(wǎng)絡(luò)。發(fā)送方額外維護(hù)一個擁塞窗口cwnd實際能發(fā)的數(shù)據(jù)量取min(cwnd, rwnd)。擁塞控制分四個階段慢啟動連接剛建立時 cwnd 很小Linux 現(xiàn)代版本初始值是 10 個 MSSRFC 6928 之前的舊實現(xiàn)是 1-4 個每收到一個 ACK 就把 cwnd 加一個 MSS效果是指數(shù)增長——1、2、4、8、16一個 RTT 翻一倍。漲到慢啟動閾值ssthresh就切換。擁塞避免超過閾值后改成線性增長每個 RTT 大約加一個 MSS謹(jǐn)慎試探網(wǎng)絡(luò)容量??焖僦貍髋c快速恢復(fù)收到 3 個重復(fù) ACK 時說明網(wǎng)絡(luò)還有余量后面的包能到把 ssthresh 設(shè)為當(dāng)前 cwnd 的一半cwnd 也減半然后直接進(jìn)入擁塞避免不用回到慢啟動從頭爬。超時重傳說明情況更嚴(yán)重直接把 cwnd 打回 1 個 MSS重新慢啟動。Linux 默認(rèn)的擁塞控制算法是 CUBIC它的增長曲線是三次函數(shù)在高帶寬長距離鏈路上比傳統(tǒng)的 Reno 表現(xiàn)好很多。近些年 BBR 也很流行思路完全不同——它不靠丟包判斷擁塞而是測量帶寬和最小 RTT 來建模。切換算法很簡單# 查看當(dāng)前算法和可用算法 sysctl net.ipv4.tcp_congestion_control sysctl net.ipv4.tcp_available_congestion_control # 臨時切換為 bbr sysctl -w net.ipv4.tcp_congestion_controlbbr我的經(jīng)驗是跨國或跨運營商的長肥鏈路高帶寬高延遲BBR 通常能帶來明顯的吞吐提升內(nèi)網(wǎng)短鏈路CUBIC 和 BBR 差異不大用默認(rèn)的就行。切換前一定要在灰度環(huán)境壓測不要直接上生產(chǎn)。5. 實操用抓包和代碼把協(xié)議看見5.1 環(huán)境與工具準(zhǔn)備紙上得來終覺淺協(xié)議這東西必須親手抓一次才算真懂。你需要的東西不多一臺 Linux 機(jī)器云主機(jī)或本地虛擬機(jī)都行、一個能跑 Python 的環(huán)境、抓包工具。命令行抓包我用tcpdump輕量、隨處可用圖形化分析用帶界面的抓包軟件看時序圖和流追蹤更直觀。安裝和基礎(chǔ)用法# 抓本機(jī) 8080 端口的 TCP 包不做域名解析直接寫文件 tcpdump -i any -nn -s 0 tcp port 8080 -w /tmp/tcp8080.pcap # 只看握手和揮手相關(guān)的標(biāo)志位 tcpdump -i any -nn tcp port 8080 and (tcp[tcpflags] (tcp-syn|tcp-fin|tcp-rst) ! 0) # 實時看 UDP 53 端口DNS tcpdump -i any -nn udp port 53 -c 20幾個參數(shù)的含義值得記牢-i any抓所有網(wǎng)卡-nn不做 IP 和端口反解避免 DNS 查詢干擾抓包-s 0抓完整包老版本默認(rèn)只抓 68 字節(jié)頭部以下會被截斷這個坑很多人踩過-w寫文件供后續(xù)分析。生產(chǎn)環(huán)境抓包注意加過濾條件并限制包數(shù)不然一個高流量服務(wù)幾分鐘就能抓出幾十 GB。5.2 TCP 三次握手抓包實錄啟動一個最簡單的服務(wù)端然后用 curl 連一下同時抓包。這是最經(jīng)典的一組報文值得反復(fù)看No. Time Source Destination Info 1 0.000000 10.0.0.5 10.0.0.9 54321 → 8080 [SYN] Seq0 Win64240 Len0 MSS1460 SACK_PERM TSval... 2 0.000312 10.0.0.9 10.0.0.5 8080 → 54321 [SYN, ACK] Seq0 Ack1 Win65160 Len0 MSS1460 SACK_PERM TSval... 3 0.000398 10.0.0.5 10.0.0.9 54321 → 8080 [ACK] Seq1 Ack1 Win64240 Len0 4 0.000521 10.0.0.5 10.0.0.9 54321 → 8080 [PSH, ACK] Seq1 Ack1 Len78對著看幾點第 1 個包Seq0是抓包工具顯示的相對序號真實 ISN 是隨機(jī)的工具做了偏移處理方便閱讀。MSS1460是客戶端告訴服務(wù)端我這邊最多能收 1460 字節(jié)的 TCP 載荷——這是 MTU 1500 減去 IP 頭 20 再減去 TCP 頭 20 得到的。SACK_PERM表示支持選擇性確認(rèn)。Win64240是接收窗口。TSval是時間戳選項用于更精確的 RTT 測量和防回繞。第 2 個包服務(wù)端的Ack1因為 SYN 消耗了一個序號。服務(wù)端也報了自己的 MSS 和窗口。注意 MSS 是雙向協(xié)商的各自報各自能接收的最大值實際發(fā)送時按較小的那個來。第 3 個包是純 ACKLen0沒有數(shù)據(jù)。這一步完成后雙方進(jìn)入 ESTABLISHED。第 4 個包才是真正的業(yè)務(wù)數(shù)據(jù)PSH標(biāo)志表示盡快交給應(yīng)用層。整個握手在 0.4 毫秒內(nèi)完成因為都在同一個局域網(wǎng)。如果是跨地域第 1 到第 3 個包之間的時間差就是一次 RTT這也是為什么TCP 建連本身就要消耗一個 RTT——HTTPS 還要再多花一兩個 RTT 做密鑰協(xié)商首屏慢的鍋有時候真不在業(yè)務(wù)代碼。你可以在抓包工具里看Statistics → TCP Stream Graphs → Time-Sequence能直觀看到每個包在時間軸上的分布、重傳在哪、窗口怎么變化。這張圖我排障時幾乎必看比肉眼數(shù)報文高效得多。5.3 UDP 與 TCP 的代碼對比寫兩段最小可運行的代碼把兩者行為差異看得最清楚。先看 TCP 服務(wù)端import socket # SOCK_STREAM 表示 TCP server socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 允許端口復(fù)用避免重啟時報 Address already in use server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 關(guān)閉 Nagle 算法避免小包合并帶來的延遲 server.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) server.bind((0.0.0.0, 8080)) server.listen(128) # backlog對應(yīng)全連接隊列長度 print(listening on 8080) while True: conn, addr server.accept() with conn: while True: data conn.recv(4096) # TCP 是字節(jié)流一次 recv 不保證一個完整消息 if not data: break # 對端關(guān)閉 conn.sendall(becho: data)再看 UDP 服務(wù)端import socket # SOCK_DGRAM 表示 UDP server socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind((0.0.0.0, 8081)) print(udp listening on 8081) while True: # 一次 recvfrom 對應(yīng)一個數(shù)據(jù)報天然保留消息邊界 data, addr server.recvfrom(65535) server.sendto(becho: data, addr)兩段代碼一對比差異全在細(xì)節(jié)里。TCP 多了accept()這一步說明它是有連接概念的recv()的返回值需要自己判斷消息邊界因為一個 4096 的緩沖區(qū)可能裝到半條消息加一條半消息sendall()和send()不同前者會循環(huán)直到發(fā)完后者只保證發(fā)了一部分。UDP 則完全不需要考慮這些一次recvfrom就是一個完整數(shù)據(jù)報但你得自己處理丟包和亂序??蛻舳诉@邊UDP 還有個特殊行為值得注意如果你用connect()綁定了一個目標(biāo)地址之后發(fā)往其他地址的包會被靜默丟棄同時能找到對方端口不可達(dá)的 ICMP 錯誤。不connect()的話一次性發(fā)送大包會頻繁觸發(fā)sendto返回EMSGSIZE因為載荷超過了單包上限。5.4 用系統(tǒng)命令觀察連接狀態(tài)抓包看報文系統(tǒng)命令看狀態(tài)兩者配合才完整。下面這幾條我基本天天在用# 按狀態(tài)統(tǒng)計當(dāng)前連接數(shù)量 ss -tan | awk NR1 {print $1} | sort | uniq -c | sort -rn # 查看某個端口的連接詳情含內(nèi)存和定時器信息 ss -tmn sport :8080 # 查看 TCP 全局統(tǒng)計重傳率、握手失敗、隊列溢出都在這 netstat -s | grep -iE retrans|overflow|listen|reset # 查看內(nèi)核連接相關(guān)參數(shù) sysctl -a | grep -E somaxconn|tcp_max_syn|tcp_tw|tcp_keepalivenetstat -s里的listen overflows和listen drops兩個計數(shù)特別關(guān)鍵前者表示全連接隊列滿導(dǎo)致新連接被丟后者表示半連接隊列滿。這兩個值只要在持續(xù)增長就說明應(yīng)用 accept 不過來或者 backlog 配小了跟業(yè)務(wù)邏輯無關(guān)調(diào)參數(shù)就能解決。6. 選型決策什么場景該用哪個6.1 一張決策表背后的判斷邏輯選型不是站隊是權(quán)衡。我把常見場景整理成下面這張表附上判斷依據(jù)場景推薦判斷依據(jù)網(wǎng)頁請求、API 調(diào)用TCP需要完整、有序且請求量不極端數(shù)據(jù)庫連接TCP一個字節(jié)都不能錯長連接還能復(fù)用文件傳輸TCP完整性優(yōu)先順序錯亂無法處理DNS 查詢UDP大響應(yīng)回退 TCP一問一答包小重試成本低音視頻實時通話UDPRTP/RTCP寧可丟一幀也不要卡 200ms 等重傳游戲狀態(tài)同步UDP舊的位置數(shù)據(jù)沒有重傳價值新的覆蓋舊的日志、指標(biāo)上報UDP 或批量 TCP少量丟失可接受優(yōu)先低開銷局域網(wǎng)服務(wù)發(fā)現(xiàn)UDP 廣播/組播TCP 不支持廣播物聯(lián)網(wǎng)低功耗上報UDP或輕量封裝建連開銷和功耗都難以承受判斷邏輯可以濃縮成三個問題按順序問自己第一丟了這一份數(shù)據(jù)業(yè)務(wù)能接受嗎能接受就用 UDP不能就用 TCP。注意是這一份不是任何一份——音視頻丟一幀沒事但控制信令丟了就有事所以很多實時系統(tǒng)是 UDP 傳媒體流、TCP或可靠 UDP傳信令的混合架構(gòu)。第二延遲敏感度有多高TCP 的隊頭阻塞是硬傷前面一個包丟了后面即使全到了也得在緩沖區(qū)里等著應(yīng)用層收不到。在弱網(wǎng)環(huán)境下這個等待可能是幾百毫秒。實時性要求高的場景這個代價通常不可接受。第三能不能承擔(dān)自己實現(xiàn)可靠性的成本基于 UDP 做可靠傳輸不是加個重傳就完事還要處理擁塞控制、RTT 估計、亂序重組、防放大攻擊等等工作量以人月計。除非你有明確的性能訴求否則別自己造。6.2 那些看起來該用 UDP 卻用了 TCP的案例選型最忌諱教條。我見過幾個反直覺但合理的例子值得說說。第一個是某些即時通訊的長連接。直覺上消息推送應(yīng)該快但實際主流方案走的都是 TCP 長連接。原因是消息必須到達(dá)可靠性權(quán)重遠(yuǎn)高于延遲而 TCP 的連接狀態(tài)讓服務(wù)端能主動推送UDP 沒有連接概念NAT 穿透后還得自己維護(hù)會話再加上有心跳和重連機(jī)制兜底偶發(fā)的隊頭阻塞影響被攤薄了。第二個是短查詢類接口。有人覺得就查一條記錄一次往返用 UDP 省掉握手不是更快。理論上一問一答確實 UDP 少一個 RTT但實際收益微乎其微——因為現(xiàn)在普遍是長連接 連接復(fù)用握手成本早被攤銷掉了。而你需要自己處理丟包重試、請求 ID 匹配、超時判定代碼復(fù)雜度翻倍收益卻是零點幾毫秒。這筆賬怎么算都不劃算。第三個是內(nèi)網(wǎng)的 RPC。某些高性能 RPC 框架在延遲敏感場景下會提供 UDP 模式但默認(rèn)還是 TCP。原因還是那個內(nèi)網(wǎng)丟包率極低萬分之一以下TCP 的隊頭阻塞幾乎不發(fā)生而 UDP 省下的那點開銷在整體鏈路里占比很小。反過來也有看起來該用 TCP 卻用了 UDP的日志采集。某系統(tǒng)每秒產(chǎn)生幾十萬條日志如果每條都建 TCP 連接光握手就把 CPU 打滿了。改成 UDP 批量發(fā)送允許在極端情況下丟少量日志——因為日志的價值是統(tǒng)計趨勢不是逐條審計丟 0.1% 完全不影響結(jié)論。這個決策的關(guān)鍵在于明確業(yè)務(wù)對數(shù)據(jù)完整性的真實要求而不是籠統(tǒng)地說日志很重要所以不能丟。6.3 在 UDP 上重建可靠性要補(bǔ)哪些課如果你確實決定走 UDP 自建可靠傳輸至少要補(bǔ)齊這幾塊缺一不可。序號與重組。每個數(shù)據(jù)報帶一個遞增序號接收端按序號排序、去重、檢測空洞。要注意序號回繞的處理以及亂序窗口的大小——窗口太小會誤判丟包太大內(nèi)存扛不住。確認(rèn)與重傳??梢灾鸢?ACK也可以累積 ACK 加選擇性確認(rèn)。重傳要配合 RTO 估算公式可以直接抄 TCP 的 SRTT 4×RTTVAR。別忘了重傳次數(shù)上限否則網(wǎng)絡(luò)徹底斷了會無限重試。擁塞控制。這是最容易被跳過、也最容易出事的一塊。沒有擁塞控制你的協(xié)議在丟包時會繼續(xù)猛發(fā)把整條鏈路和其他流量一起拖死。哪怕只做一個簡化版的 AIMD加性增、乘性減也比沒有強(qiáng)。分片與 MTU。UDP 超過 MTU 會觸發(fā) IP 分片任何一個分片丟失整個數(shù)據(jù)報就廢了重傳成本極高。正確做法是在應(yīng)用層做分片單包載荷控制在 1200 字節(jié)以內(nèi)給 IPv6 和隧道封裝留余量這也是 QUIC 選 1200 的原因。安全。裸 UDP 極易被用于反射放大攻擊——攻擊者偽造源 IP 發(fā)一個小請求你回一個大響應(yīng)受害者就被淹了。所以必須做源地址驗證比如要求客戶端先回一個隨機(jī) token并且限制響應(yīng)與請求的大小比例。QUIC 把這套東西完整實現(xiàn)了一遍還順帶把握手和加密合并0-RTT 或 1-RTT 建連并在應(yīng)用層解決了隊頭阻塞。如果你想理解可靠 UDP到底該長什么樣去讀 QUIC 的協(xié)議文檔是最快的路徑。6.4 MTU、粘包、心跳三個繞不開的工程細(xì)節(jié)MTU 與分片。以太網(wǎng)默認(rèn) MTU 1500這是歷史遺留值。路徑上任何一跳的 MTU 更小都會導(dǎo)致分片或丟棄而路徑 MTU 發(fā)現(xiàn)PMTUD依賴 ICMP很多防火墻把 ICMP 全禁了于是出現(xiàn)小包能通、大包不通的經(jīng)典故障。經(jīng)驗值TCP 的 MSS 協(xié)商后一般是 1460IPv4或 1440IPv6UDP 應(yīng)用層載荷控制在 1200 以內(nèi)最穩(wěn)。如果你在容器或隧道環(huán)境里MTU 還要減去封裝開銷比如某些隧道要減 60–80 字節(jié)。粘包。前面說過這是把流當(dāng)包用造成的。解決方式就三種定長消息、分隔符如換行、\r\n、長度前綴先發(fā) 4 字節(jié)長度再發(fā)內(nèi)容。工程上最推薦長度前綴解析簡單、無轉(zhuǎn)義問題、二進(jìn)制安全。千萬不要用每次 recv 正好是一條消息這種假設(shè)寫代碼它在你本機(jī)測試時永遠(yuǎn)是對的一上線就出問題。心跳。TCP 自帶 keepalive但默認(rèn)空閑 7200 秒才探測太長了而且只能探測連接是否還活著探測不到對端進(jìn)程假死。所以業(yè)務(wù)層必須自己做心跳客戶端每 30 秒發(fā)一次 ping服務(wù)端回 pong連續(xù) 3 次沒收到就判定斷線重連。心跳間隔要比中間設(shè)備負(fù)載均衡、NAT 網(wǎng)關(guān)的連接空閑超時短常見設(shè)備超時是 60 秒或 300 秒心跳間隔取 30 秒比較安全。7. 常見問題與排查實錄7.1 高頻問題速查表下面這張表是我這些年攢下來的遇到問題先對照它能省掉一大半瞎猜的時間?,F(xiàn)象可能原因排查手段偶發(fā)多出 40ms 延遲Nagle 算法與延遲 ACK 疊加抓包看是否有小包等待開 TCP_NODELAY大量 CLOSE_WAIT應(yīng)用沒調(diào)用 close()ss -tan state close-wait查代碼釋放路徑大量 TIME_WAIT短連接多、主動關(guān)閉方在本地改連接池、調(diào)整端口范圍、tcp_tw_reuse連接不上報 Address already in use端口被占或 TIME_WAIT 未復(fù)用開 SO_REUSEADDRss -tanp查占用小包能通大包不通MTU 不匹配、ICMP 被攔ping -M do -s 1472逐段探測間歇性 connection reset中間設(shè)備超時、服務(wù)端 backlog 滿看netstat -s的 overflow 計數(shù)傳輸吞吐上不去窗口太小或 RTT 太大ss -tmi看 cwnd/rwnd考慮開窗口擴(kuò)大UDP 偶發(fā)丟包無報錯緩沖區(qū)和 MTU 問題調(diào)rmem_max控制載荷在 1200 內(nèi)服務(wù)端 ESTABLISHED 很多但業(yè)務(wù)超時隊頭阻塞、線程池打滿看 recv-q/send-qss -tmn觀察隊列7.2 一次典型的排障路徑說個真實經(jīng)歷的變形版。某服務(wù)每天有幾個時段出現(xiàn)請求偶發(fā)超時超時率約 2%重試一次就好監(jiān)控上看不出明顯規(guī)律。第一步先確定問題在哪一層。在客戶端和服務(wù)端同時抓包對比兩端看到的報文。結(jié)果發(fā)現(xiàn)客戶端發(fā)了請求服務(wù)端過了 800ms 才收到——說明問題在中間鏈路不在應(yīng)用。第二步看 TCP 層的行為。抓包里出現(xiàn)了零星的[TCP Retransmission]重傳間隔正好是 200ms 左右符合最小 RTO。說明有丟包但丟包率很低。第三步看丟在哪里。用mtr做路徑探測發(fā)現(xiàn)某一跳有 1%–2% 的丟包。再和運維確認(rèn)那臺設(shè)備負(fù)載偏高在跑大流量轉(zhuǎn)發(fā)。第四步驗證假設(shè)。把請求大小從 8KB 降到 2KB 以內(nèi)減少分片和占用時間超時率下降到 0.3%。最終通過擴(kuò)容那臺設(shè)備、同時把服務(wù)端的tcp_slow_start_after_idle關(guān)掉避免空閑后重新慢啟動問題徹底消失。這條路子的核心方法論是分層定位逐層收斂。先確定是應(yīng)用層、傳輸層還是網(wǎng)絡(luò)層的問題再往下一層層縮小范圍。最忌諱的是一上來就懷疑業(yè)務(wù)代碼改半天沒效果最后還是抓包解決了。7.3 幾個只有踩過才知道的坑坑一關(guān)掉 TCP_NODELAY 以為能省流量結(jié)果延遲爆炸。Nagle 算法會把小包攢起來一起發(fā)配合接收方的延遲 ACK最多等 200ms在高頻小包場景下會出現(xiàn)每個請求卡 40ms的詭異現(xiàn)象。這個現(xiàn)象在本地測試環(huán)境幾乎復(fù)現(xiàn)不出來因為本機(jī) RTT 極低Nagle 攢不到包就發(fā)出去了。IO 密集型的 RPC、實時消息推送一律開TCP_NODELAY。坑二以為 UDP 的緩沖區(qū)跟 TCP 一樣能自動背壓。TCP 緩沖區(qū)滿了會阻塞發(fā)送方天然形成背壓UDP 緩沖區(qū)滿了內(nèi)核直接把包丟掉發(fā)送方毫不知情。如果你的 UDP 接收端處理慢就會出現(xiàn)明明發(fā)了 10000 條只收到 8000 條且毫無報錯。解決辦法是調(diào)大net.core.rmem_max并在應(yīng)用層做隊列水位監(jiān)控。坑三TIME_WAIT 數(shù)量高就無腦開tcp_tw_recycle。這個參數(shù)在 NAT 環(huán)境下的行為會導(dǎo)致大量正常連接被拒表現(xiàn)為同一出口 IP 的多個客戶端只有部分能連上。較新的內(nèi)核已經(jīng)移除該參數(shù)老系統(tǒng)上如果開了建議立刻關(guān)掉??铀陌?keepalive 當(dāng)成心跳用。系統(tǒng)級 keepalive 只能探測對端主機(jī)是否可達(dá)對端進(jìn)程崩了但主機(jī)還在keepalive 是探不出來的除非進(jìn)程退出導(dǎo)致內(nèi)核發(fā)了 FIN。真正的存活檢測必須靠應(yīng)用層心跳而且要帶業(yè)務(wù)語義能反映服務(wù)真的能處理請求??游迦萜鳝h(huán)境下忽略 MTU。容器網(wǎng)絡(luò)通常有 VXLAN 等封裝實際可用 MTU 會比宿主機(jī)的 1500 小常見 1450 甚至 1400。如果應(yīng)用不感知這件事大包會被丟棄且現(xiàn)象極其隱蔽小請求都正常一傳大文件就卡死。部署到容器集群時務(wù)必確認(rèn) Pod 內(nèi)的ip link顯示的實際 MTU并據(jù)此調(diào)整應(yīng)用層的包大小。我個人在實際操作中的體會是UDP 和 TCP 這兩塊知識光看文檔永遠(yuǎn)學(xué)不透必須抓一次包 寫一次代碼 排一次障三件套都走一遍腦子里才會長出真正的模型。我自己是被一次線上 RST 風(fēng)暴逼著把 RFC 從頭翻了一遍那之后再看框架的日志、再看監(jiān)控的曲線很多以前覺得莫名其妙的東西突然就對上了。如果你現(xiàn)在手上的系統(tǒng)有偶發(fā)超時、有說不清的重傳、有莫名的連接數(shù)增長別急著調(diào)參數(shù)先抓個包答案八成寫在報文里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97视频在线观看高清资源| 久久蜜桃一区二区| 十八禁视频一区二区| 人妻在线大香蕉| 26uuu国产免费观看| 日本久久久久久久久久| 日韩AV色图| av在线一区二区三区| 三级片大波波| 97爱欧美| 99久热| 日韩字幕一区| 天天情欲宗合网| 97天天爽| 97人人干| 一级久久久久久久久久久| 深夜激情| 熟妇高潮一区二| 丁香五月激情综合国产| 性爱视频啪啪啪啪| 国产精品九九九| 久久9免费视频| 天天天乱色综合全| 欧美综合骚| 人妻 中文 日韩| 麻豆AV一区二区天美传媒| 欲色影视综合吧| 99热婷婷| 亚洲1区| 欧美日韩国产高清在线一二三区| 夜夜操狠狠操| 五月天综合在线| 7777奇米影视久久| 久久国产在线一区二区| 国产成年女人免费视频播放a| 91n欧美| 色臀aV| 欧美超碰96| 99999无码| 欧美日韩国产三级黄色| 2017人人操,人人摸| 青青操网| 国产极品粉嫩馒头一线天av| 久夜视频| AV一起草在线| 国产精品4p在线观看| 啊啊啊想要| 国桃视频产巨乳精品一区二区在线| 久久久精久久久| 丁香啪啪| 色五月婷婷网| 亚洲成人免费在线| 色蜜AV| 五月大香蕉| 日日碰狠狠添天天爽超| 欧美精品1区2区3区| 亚洲图片日本AⅤ欧美在线| 高清国产精品福利网站| 日产操逼| 日韩欧美亚洲自拍偷拍| 欧美色图天堂在线| 美女黄页| 亚洲美女30b| 热热热热日日漂亮永久永久国产日| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 天堂性色| yiqicaoav| 欧美日日操| 亚洲乱色熟女一区| 成功精品影院| 东北女人av| 中文字幕艹艹| 色综合超碰超| 欧美高清色| 久久激情婷婷| 国产精品分类在线观看| 干干干天天| 性色av网站| 久久久中文| 亚洲男人天堂Av| 偷窥自拍亚洲色图| 久热99999| 欧美翘臀视频网站一区二区三区| 青青草原av| 青青草大香蕉在线视频| 大香蕉日韩欧美| 日曰骚久久精品| 三男一女不戴套的A片| 国产精品对白内射| 成人女人国产| 97国产|免费| 乱伦熟女论坛| 97国产高清视频在线观看| 丁香六月天| 大香伊人在线一区| 亚洲综合在线91| 美女黄网| 日韩啪啪视频| 欧美玖玖爱免费玖玖| av天堂电影网| 国产亚洲人妻综合日韩 久久| 久久98| 国产高清不卡视频| 久久精品| 丁香成人五月天| 夜夜狠狠躁日日躁色视频| 日韩97超碰| 日韩黄色片子| 狠狠狠一区二区三区| 91女优在线观看| 91丝袜| 亚洲国产一级精品毛一级精品看免费视频 | 久操网线| 亚洲的天堂网| 激情接吻视频久久久久久| 丝袜狠狠草尤物人妻av91| 操老熟女AV| 青娱乐淫乱1314| 亚洲偷拍自拍在线视频| 国产日韩精品suv| 97自拍视频在线| 日韩啪啪啪视频| 欧美少妇高潮视频| 日韩欧美大片免费高清啪啪| 91丨熟女丨丰满熟女| 妇女视频网站| 一区二区高清视频| 国产精品大香蕉| 一区二区亚州激情久婷婷欧美| 欧美大香蕉久| 日本不卡码黄色| 日本媚薬中文字幕在线| 亚洲精品 大香蕉| 91制服丝袜| 精品人妻美妇91job| 丝袜色综合| 国产亚洲中文不卡二区| 香港日本韩国人妇99www.wccm20| 国产精品久久久久久亚洲色欲| 青青操轻轻| 四虎在线观看网站| 中字乱伦AV| 亚洲色图日韩丝袜制服一区二区五月在线 | 一区二区播放| 制服乱伦| 免费岛国一级片| 亚洲精品久| 欧美姓爱综合网| 九九玖玖精品| 欧美大波激情xxxx| 亚洲熟女乱色一区二区三区久久久| 婷婷干黄色| 亚洲天堂自拍| 欧亚乱色熟女一区二区| 中文一区二区| 狠狠中文字幕| 国产一级特黄大片处女| 欧美日韩亚洲天堂| 国产精品老师| 特污精品女优骚货黄色视频在线免费观看| 999国产精品999久久久久久| 丁香五月av| 亚欧洲一区二区视频| 成人乱码一区二区三少妇| 久久久网一区| 强奸乱伦免费网站| 嗯嗯啊好大| 国产一区二区欧美日本| 肉丝中文无码高清| 嗯嗯啊操我| 欧 美 自 拍 偷 拍| 人妻内射一区二区在线视频| 国产免费永久精品无码| 欧美激情高清性猛交| 999岛国大片| 欧美精品亚洲精品日韩传电影| 六月丁香啪啪啪| 国产精品白丝www| 97爱免费插| 午夜精品久久一区二区| 亚洲精品天天影视综合网 | 高清国产精品福利网站| 久久精品人妻一区二区| aⅴ日韩成人电影av在线免费看av大全 | 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲 图片 综合91| 亚洲日韩视频二区| 一起草在线视频| 超碰久在线天天做| 蜜桃精品一区二区三区ww| 首页亚洲国产高跟丝袜诱惑视频| 日本操逼无码| 日韩电影天堂视频一区二区| 91蜜臀在线久久久久| 国产女同视频在线播放| 999精品乱码| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 精久久久| 日韩情色AV| 日韩乱码Av| 人、人、摸,人、人、草| 97亚洲自在精品在线观看| 国产隔壁老王影院在线| 欧美青青草视频| 大香蕉欧美伊| 亚洲限制级在线| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 日韩在线女优天天干| 一区二区三区精品久久| 搡老人老9丨女老熟人| 熟妇乱伦一区二区| 欧洲在线性爱视频| 大象AV在线| 超碰97男女| 超碰97人人乐| 色情婷婷久久五月天| 亚洲一本色码中文字幕| 性色中出| 国产农村妇女精品一| 情色AV电影| 五月天色五月| 吉田爱美AV在线| 久久久久13| 天天草天天干天天日| 亚洲中文国际强奸字幕| 成人性爱美曰韩| 欧美天天综| 五月丁香社区婷婷日韩欧美精品影院 | 97精品一区二区视频| 777超碰| 欧美性暴力| 男人天堂免费| 碰人碰碰人人开房人肉| 无码九九| 欧美日韩小说| 97超碰日韩| 激情色图| 欧美午夜视频精品久久| 爱av免费| 少妇3P性爱自拍| 97任你吞精| 激情五月综合| 爱射综合| 99色骚| 青青草大香蕉在线视频| 草久久久| 日韩有码专区| 欧美一区二区三区四区综合| 久久社区一区二区三区| 欧美乱色| 国产精品一区二区后入| 神马麻豆福利院| 少妇久久久久久| 99婷婷一区二区| 天天射天天| 欧美极品性爱天天射| 蜜臀AV网站| 久久草草欧美精品| 99re69| 亚洲另类色综合网站| 91天堂| 国产亚洲 中文欧美久久| 精品婷婷| 二级久久网| 啊啊啊慢点| 91视频精品| 一区三区啪啪| 夜夜操av亚洲一区二区| 97超碰精品图片| 国产精品福利资源在线尤物| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 欧美经典一区二区三区| 亚洲一二三精品久久网| 亚洲日精品| 8x福利精品第一福利视频导航| 国产精品色片一区二区| 99综合网| 久久久极品| 狠狠色噜噜狠狠狠狠2018| 国产对白刺激视频| 激情综合网五月婷婷| 刺激性视频黄页| 成年男人的天堂| 理论久久婷婷网8| 国产一区二区精品久久99| 91在线页| 亚州五月| 特级丰满少妇一级AAAA爱毛片| 日韩精品99999| 日本天天干天天操一区| 亚洲自拍青操视频| 青青免费在线视频一区| 婷婷色香| 97超碰色屌| 欧美情色男人的天堂| 加勒比综合88| 手机在线看片免费人成视频| 操操操操操操| 色999偷自拍拍| 伊人网免费视频| 道久久五香丁月婷婷激情综合| 99热这里是精品| 91女在线观看| 在线视频97| 日本人妻最新在线中| 精品国产肉丝袜在线拍国语| 亚洲天堂久久| 国内毛片无码一级毛片| 熟女高潮精品一区二区| 91精品伊人久久久大香线蕉91| 免费农村成人少妇人妻Aa一区二区视频 | 91热| 综合久久婷婷| 超碰人妻中文在线| 日韩在线性爱免费视频| 亚洲色图国产另类| 再深点灬舒服灬太大了添视频 | 91天天爱| 天天色综亚洲91污| 99国产精品自在自在| 黄色电影在线播放综合网站| 欧美淫穴| 一级黄色性爱裸体视频| 精品视频97| 亚洲欧洲综合av在线| 久草综合视频| 丝袜美腿制服人妻二区中文字幕| 日韩精品大香蕉伊人在线| 色视频蜜乳| 国精综合一二三区影视| 日本免费亚洲欧美| 99999re| 黄色污污污污污污网站| 亚洲AV无码乱码| 亚洲97超碰| 中文字幕一区二区三区人妻少妇在线| 国产乱伦性爱区| 午夜色婷婷| 中文字幕99999| 天美国产精品| 久久久久久日韩| 91老妇女| 男人久久精品| 日本在线一二 | 天天内射| 91精品久久久久久综合五月天| 嗯嗯啊啊好爽| 国产视频第2页| 久久精品性| 97久操| 麻豆天美久久91| 乱伦熟女论坛| 91日韩网站| 无码国产精品久久久久| 欧美后入| 日韩精品三级片长长久久| 国产又操| 男女国产精品| 青青操视频在线| av资源在线播放天堂| 白嫩少妇| 久久婷婷国产一区二区色| 亚洲AV秘无码一区..| 好屌色综合| 99爱在线视频| 口爆吞精在线观看| 精品三级在线专区| 久久↗↗| 亚洲性猛交| 91男女啊啊啊| 久久99久久99久久99人受| 91青青草| 97精品一区二区视频在线观看| 中文字幕亚洲欧美在线不卡| 农村妇女一级二级三级视频| 级做a爱无码性色永久免费| 超碰久久.com| 人人九九精| 志村玲子视频一区二区| 久草视频分类在线| 久久久夜夜嗨免费视频| 一直超碰| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日韩性爱一级片| 校园春色 亚洲| 九九精品美女高溯喷水| 99热91| 首页中文字幕中文字幕免费| 91香蕉视频在线观看免费| 国产极品馒头逼| 超碰97最新人妻| 亚洲AV免费在线观看| 人妻久久久久久| 国产99 中文字幕日韩小视频| 秋霞午夜成人福利片片| 综合久久少妇中文字幕| 欧美性色综合网| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 91久久伊人婷婷青青草| 91久久国产综合久久| 五十路成人在线视频二区三区| 91成人在线| 91欧美成人色站| 欧美日韩淫加| 久久最新视频免费观看| 97在线青| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 1024日韩| 乱精品一区字幕二区| 国产亚洲精品无码三区| 超97在线精品视频| 簧片免费看视频| 欧美在线观看综合国产| 99ri视频| 91老熟女逼| 操操操操操操| 91性感网站| 97久久精品国产| 国产又色又爽又舒服的三级视频| 精品一区二区综合熟妇| 91狠| 视频二区美腿丝袜制服人妻欧美| 精品久久在线区一区| 国产性感骚丝袜在线| 久久9亚洲| 久久久久久久久久久人妻| 无码色| 中文字暮97| 国产精品久久久亚洲一区| 超碰午夜在线| 中文乱码字字幕在线第5页| 国产欧美在线观看免费观看| 精品一区二区综合熟妇| 日韩欧美女优电影| 久久久不卡区一区二区三区久久久| 日韩精品第3页| 天美久久久久| 狠狠色伊人亚洲综合网站色| 日本网色| 操逼精品视频| 青草成人免费视频一COm| 欧美岛国精品在线观看| 国产av强奸美女| 国产伦精品一区二区三区在线观| 精品久久久久黄少妇| 精彩久久中文| 国产精品操| 日日操丁香五月天| 玖玖蜜臀资源网| 人人摸人人舔一区二区| 草草草视频在线免费看| 欧美性爱另类综合| 日韩精品人妻中文字有码在线 | 国产Av超碰| 8050无码八戒| 男人的天堂VA在线| 伊人操| 免费中文在线| 日韩三级在线观看mp4| 精品人妻久久久| 制度丝袜99| 天天干天天操天天拍| 综合情欲网| 中国一级特黄大片护士| 中文字幕日产av人| 天天综合网91| 亚洲欧美中文日韩视频中国语 | 2017天天插| 国产高清在线观看欧美| 性欧美天天| 久久中文字幕在线观看| 强奸乱伦αv片| 熟女人妻av在线资源,黄色的资源| 国产乱子伦一区二区三区免看| a片久久久久久久久久久久 | 熟女人妻一区二区三区免费看| 欧美人与性动交a美精品| 用力操死我| 成人怡红院| 99热精品在线| 不卡视频一区蜜桃视频 | 亚洲吊色| 91久久九九精品国产综合| 久久精品人体| 蜜臀久久99精品久久久电影| 99热色这里只有精品| 夜夜高潮夜夜爽夜夜爱爱一区| 精品亚洲国产成人AV制服丝袜| 亚洲精品1区| 巨爆乳一区二区爆乳区| 男人的天堂2000| 在线视频亚洲无码| 男人的天堂成人的社区| 日产欧美电影一区二区三区| 第二页中文字幕| 日韩有码 一区二区三区| 日韩精品人妻系列无码天堂| 午夜小电影在线插入淫高潮| 麻豆AV一区二区| 国产高清自拍视频| 天天综合网1| 翔田千里无码一区| 久九干| 亚洲天堂在线怕怕视频 | 熟女熟妇一区二区三四区| 婷色五月| 蜜臀99久| 精品一区二区啪啪啪| 草草草草视频| 97这里都是精品| 亚洲国产一区二区入口| 欧美一二级| 色综合色欲色综合色综合色综合| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 国产精品久久| 人人妻人人色| 中文字幕 国产 精品| 国产精品久久久久久久久久久久久久吹 | 色一色综合网| 日本黄色XXX| 95人妻爽爽人人做人人澡| 亚洲美女AV无码| 自拍欧美| 99色婷婷| 亚洲精品免费中文字幕| 国产91丝袜 在线播放| 人人摸人人干| 国产熟女完整版中字| 天天射天天色成人| 加勒比综合九九99视频在线播放| 亚洲欧综合另类无码一区| 九九热精品视频六| 性色av一区二区| 五月激情影院| 国产精品自拍xxxx| 国产一级内射高清视频 | 97无码视频在线播放| 黄色一区三区| 麻豆天美制片厂网站视频| 99国产精品视频尤物| 久久久久久99999国产精品| 99综合网| 宅男影院久久久,99| 校园春色美腿丝袜| 91欧美丨精品丨入口| 麻豆啪啪啪视频| 精品久久久久久AV无码| 992大香蕉| 九九国产热| 天天操女人| 亚洲四虎熟女精品| 欧美精品99久久久**| 啊啊啊草死我| 久久久极品| 色情婷婷久久五月天| 嗯嗯,啊啊,国产精品| 日韩av在线播放不卡| 国产隔壁老王影院在线| 97久久超碰亚洲| 中文字幕精品乱码| 天天综合欧美综合| 日本高清电影欧美色图| 乱伦av.com| 免费av在线播放二区| 91大学精品激情戏| 黄色操人| 91伊人久| 高清无码久操视频| 亚洲影院成人| 日本精品五区| 91九九| 亚洲丝袜99| 四虎免费看黄| 久久有碼| 蜜臀亚洲综合一二三四区| 国产精品91ai| 操b网站亚洲无码| 亚洲AV乱码专区国产噜噜亚洲| 日韩精品一二三四| 蜜臀AV网站| 囯产操逼片| 肉嘟嘟www视频在线观看高清| 亚洲欧洲综合成人av一区| 国产精品久久久久久久电影渣男| 人人做,人人操,人人摸| 伦激情人妻另类人妻| 国产丝袜美女在线一区| 一个国产在线综合网站| 秋霞成人一级在线观看| 青青久久手机线视频| 国产精品极品美女视频| 亚洲制服欧美另类内射| 久久激情网| 午夜精品久久久久久久男人的天堂| 五月天激情小说| 又大又黄国产| 无码91| 色婷婷综合网站| 亚洲AV秘 精品久久老牛影视| 亚洲天堂7777| 91九色网| 射丝袜高跟鞋99| 色综和网| 97伊人| 欧美组图日韩亚洲中文字幕| 69少妇一区二区| hd成人一区二区在线| www久久久| 亚洲AO在线| 欧美日韩美女精品久草一区二区三区 | 亚洲在高跟鞋自慰久久在色线| 九色 蝌蚪 熟女自| 久久久久久九九九九| 囯戸精品高潮呻吟旡码| 人人操人人摸人| 欧美九9 9 9| 超碰久久性爱| 蜜臀av中文字幕| 999精品久久久久久久| 交换娇妻呻吟声不停中文字幕| 黄片无码在线制服| 天天淫人人妻日日色| 男人的天堂在线| 伊人91| 20cm女自慰在线日韩欧美| 韩日性爱av| 色99色| 亚洲另类久操网| 二级毛片| 91人妻最真实刺激绿帽| 婷婷五月色| 亚洲天堂东京热| 97色涩| 欧美97爱| a级理论午夜日本| 欧亚不卡| 亚洲国产97| 99久久精品国产高潮| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 国产 日韩 欧美一区| 人妻精品一区二区在线| 久久鲁夜| 亚洲在线网站| 长长久久曰曰夜夜成人网| 99精品人人爽| 国产精品区在线12p| 亚洲国产日韩欧美熟妇在线| 亚洲天堂另类美腿| 人妻喷水| 久久久久久久人妻丝袜| 亚洲精品国产专区在线观看| 第二页中文字幕| 成人性交免费视频| 玖玖在线视频| 亚洲性综合11| 中文字幕成人理论在线| 日本淫穴在线| 370p日韩欧美亚洲精品| 青青草视频久久久久| 超碰97国产欧美| 免费看黄片现成| 开心激情站| 少妇的嫩逼图片| 一区二区三区欧美激情| 亚洲性综合11| 亚洲日本韩国在线| 国产日韩美女小穴视频网站不卡| 91精品啪在线观看国产城中村| 999综合色| 日本狂喷奶水在线播放212| 天天综合网91入口| 国产精品不卡高清在线观看| 色色色综合网| 97久久国产精品女不卡| 日韩AC| 久久久精品九| 激情五月婷| 手机在线大香蕉| 日韩情色视频| 中文字幕美女91| 久久神马影院| 黄片免费久久久久久久| 亚洲交换| 99热免费| 婷婷操视频| 二级久久网| 综合伊人激情| 学生妹天天看| 超碰在线国产| 色色毛片| 蜜桃一区二区三区| 久草免费福利在线播放| 九九热午夜欧亚国产视频| 亚洲天堂 视频你懂的| 超碰97COm中文| 蜜臀AV一区二区三区激情综合| 91啦人妻| 人澡逼| 欧美三级不卡| 少妇啪啪自拍| 亚洲国产青青| 亚洲精品 大香蕉| 国产女s强制榨精视频| 青青草狠狠撸| 亚洲麻豆精品二区三区| 中文字幕日韩专区精品系列| 欧美日日人人天天| 高清不卡视频| 成人乱码一区二区三少妇| 国产综合久久久麻桃个| 六月丁操逼| 天天色综亚洲91污| 亚洲熟女一区| 人妻一区视频| 视频不卡中文字幕| 欧美少妇第一页| 极品色www影院| 国产兽交视频在线播放| 四虎影视国产精品| 欧美日韩国产男人| 一区二区日韩欧美久久| 国产精品麻豆视频网站| 搡老女人老91二区| 中文欧丝袜诱惑| 刺激性视频黄页| 日韩免费看黄片| 免费观看欧美日韩操逼视频| 欧美 日韩 亚洲 春色| 青青青青青手机视频| 美性中文综合网| 精品国产一区二区久久| 欧洲欧美视频一区二区| 91美女视频电影| 青娱乐欧美激情一区二区 | 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 亚洲啪啪视频免费| 天天超级碰碰碰| 男人下部插入女人下部| 亚洲综合色网| 日韩字幕一区| 男人的午夜天堂| 中文字幕久久精视频久久大全| 激情五月综合网| 超碰色男人操熟女| 欧美精品久久96人妻无码| 91日韩网站| 国产精品视频在线播放| 亚洲砖码砖专无区2023| 国产精品一区二区a| 美女天天干| 麻豆一区在线| 中文字幕人妻色偷偷久久皮| 观看视频图片一区二区三区| 1024久久高清视频| A V少妇特黄三级| 色噜噜狠狠色综无码久久合欧美| 国产亚洲综合欧美一区| 中文字幕av亚洲在线| 亚洲 日韩 丝袜 熟女 变态| 97干在线| 思思热国产高清| 国产v亚洲v日韩v欧美v片另类 | 377p欧洲日本亚洲大胆| 人人干黄色| 日韩精品在线观看观看| 天天摸天天插天天日| 日va操| 国产精品色片一区二区| 亚洲av国产av综合av卡| 日韩精品在线视频,日韩精品……| 国产精品剧情| 国产精品久久久啊| 青青青国产手线观看视频2| 无码人妻精品一区二区三区99不卡 | 国产综合久| 久久9精品| 亚洲精品九九九| 欧差乱伦二三| 免费黄色片。| 亚洲AV无码黄色强奸| 人妻少妇av在线观看| 97干在线视频| 美女尤物福利视频| 亚洲不卡av在线| 欧美性爱一区二区三区四区| 青青草玖玖爱| 97在线免费视频观看| 亚洲欧美高清| 伊人黄色片| 大伊香蕉在线视频免费| 亚洲色久| 中文字幕av久久爽Av| 色诱中文字幕| 日韩精品人妻中文字幕久久久| 中文字幕少妇色 | 久操国产在线| 中文乱码字字幕在线第5页| 超碰人人操97碰| 成人av动漫在线观看| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 少妇被c 黄 免费观看| 蜜乳AV.COM| 婷婷视频网| 97色97好| 久久久久熟女| 18禁在线视频| 99色在线视频| 性色av一区二区| 黄色工厂这里只有精品| 国产又猛又粗又爽又黄| 欧美在线播放aaaa| 欧美狠狠鲁| 久99在线免费观看视频| 在线有码中文字幕| 狠狠色婷婷7777久| 日本人妻天堂网站在线播放| 欧美高清16| 免费在线黄片视频| 亚洲国产一区二区三区在线 | 久久久久久久伊人精品| 91 刺激在线| 亚洲综合校园春色| 日韩欧无码一区二区三区免费不卡 | 91爱啪| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 精品对白久久不卡| 亚洲二区精品在线观看| 亚洲情色婷婷五月天| 蜜臀99久久精品| 国偷自 一区| 青青草国产欧美非洲黑人| 中日亚韩免费视频| 日本一本道A级黄色毛片试看60分钟| 中文字幕亚韩| 成人热久久精品| 福利视频合集| 欧美日韩性爱操大逼| 久九干| 96精品久久久| 久夜视频| 激情综合五月| 亚洲精品久久久久久| 天天视频黄| 日本韩欧美在线播放a| 亚州男人的天堂| 免费的黄片有限公司| 婷婷伊人一区| 国产精品视屏| 久久婷婷一区二| 欧美九九九九九| 91chinese在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 自拍偷拍 日韩无码| 中文字幕大片三级狠狠干| 丝袜天堂网| 顶级丝袜熟女一区二区三区 | 九X超碰| 日本性感人妻91| 亚洲综合性感在线| 人人操人人摸人人骑| 日本精品人妻少妇一区二区| 日韩欧美女求操每天更新| 中国少妇XXXX做受| 不卡一区视频| av网页一区二区三区| 亚洲综合 欧美| 一级性爱aaaa| 东京热,男人的天堂| 亚洲天堂区| 久久亚洲日韩熟女精品| 午夜福利免费福利视频| 日本久久久精品电影| 日韩午夜啪啪视频| 天欧美在线| 东京热免费视频| 爱爱动态60秒| caopeng97人妻| 亚洲中文字幕久久人妻| 九草九九九| 国内毛片国产专区二| 日韩 成人 有码| 最近2019中文字幕国语免费版| 亚洲AV不卡在线观看| www激情| 大JI巴好深好爽又大又粗视频| 91天美传媒精品| 久久精品国产96精品亚洲拳交| com 首页 18岁 禁区 女优 免费 精选 同城 | 校园春色家庭伦理欧美激情| 超碰精品在线| 天天射日日干| 狠狠夜色午夜久久综合在线| 中文字幕狠狠玩| 人人妻人人玩人人澡人人爽| 亚洲一二三精品久久网 | 九九九九精品九九九九| 熟妇高潮一区二| 五月天色图| 亚洲中文字幕精品一区| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 久久9视频| 欧美岛国精品在线观看| 日韩午夜国产| 欧美性爱视频免费一区一A| 狠狠爱夜夜| 最新精品久久蜜桃| 激情综合亚洲| 一本精品日本在线视频精品| 风间由美日韩欧美久久| 97视频7| 国产高清精品福利| 国产欧美在线观看免费观看| 欧美激情亚洲情色| 91色色色| 秋霞成人一级在线观看| 伊香蕉综合久久久久久久噜噜噜| 欧美狠狠弄| 色噜噜婷婷| 国产精品国产亚洲区艳妇糸列| 91青青在线视频| 亚洲欧美色综合| 色婷婷久久| 日日噜噜夜夜狠狠视频无| 日日躁夜夜躁狠狠躁超爽| 中文一区在线日| 日韩欧美成人大香蕉| 欧美日韩国产另类综合| 91色综合| 一区二区三区麻豆| 狠狠干妹子| 日本欧美色| 打av高清| 午夜精品一区二区三区三上悠亚| 人人贴人人摸| 中文熟女五十乱码在线| 天堂av2019| 日韩Va亚洲va欧美Ⅴa久久| 久久 精品| 97jingpin| 中文字幕乱码人妻一区二区三区,99精品| 99久久久无码精品国产人| 色吊丝 日日骚 清纯唯美| 女人一区| 污啪啪啪视频| 色成人Www精品永久观看| 亚洲 暴爽 AV人人爽日日碰| 男人的天堂VA| 我爱操| 久久久少妇诱惑精品视频| 女人的天堂大香蕉网| 91大神电影天堂| 青青草九九九九九| 国产欧美日韩在线观看麻豆传媒公司 | 日韩情色视频| 久久,精品一二三| 午夜一区| 婷婷精品视频| 91丨九色丨东北熟女| 国产免费一区在线观看| www.超碰在线| 日本中文字幕在线视频| 五月综合婷婷久久网站| 99久久婷婷丁香| 一牛影视成人片免费| 超碰在线观看av不卡| 色色色色日本| 亚洲精品第一| 国模精品一区二区三区苹果色戒 | 国产日韩无码一区二区三区久久区| 高颜值美女口爆高潮浪叫| 在线中文AV| 日韩有码回春沙龙第一页| 国产熟女高潮一区二区三区| 五月天AV资源| 91精品导航| 91老熟女视频| 免费岛国一级片| 国产精品ⅴ无码大片在线看.| 国产a片操逼| 久久国产热视频97电影| 中文字幕狠狠玩| 99热99色| 九九在线精品| 国产高清在线观看欧美| 国产精品一区二区校花| 国产一进一出视频网站| 网站A V在线| 欧美双插| 热99这里有精品综合久久 | 亚洲国产欧美日韩人妻日中文| 搡老女人老妇女老妇老熟女怎么读| 日韩美女久久一区二区三区| 午夜福利在线视频1000| 国产免费一区| 网友自拍第1页| 欧美色就是色| 亚欧毛片基地国产毛片基地| 成人性爱美曰韩| 五月婷婷综合网| 自拍视频大全亚洲专媒视频/一区二区三区 | 97无码视频在线播放| 亚洲囯产精品女人久久久| 日本午夜精品理论片A级APP发布| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 超碰av在线| 伊人97超碰| 国产亚洲在线| 青青草日本中文字幕| 90后后入| 中文字幕一区二区三区四区在线视频| 中文字幕国产在线天堂| 亚洲二区精品在线观看| 亚洲图片欧美91N| 劲爆欧美人妖三区91| 性91| 欧美日韩精品一区二区三区高清| 午夜免费视频1000| 久久亚码| 国产精品爆乳懂色蜜乳| 26UUU欧美日本| 丁香婷婷啪啪| a片亚洲一本通视频| 日日爱99| 强免费黄色网址| 四虎视频在线观看| 国产三级中文字幕粉嫩| 人妻献身系列第54部| 麻豆人妻精品一区二区| 97色视频在线| 九九九九九九精品| 久久成人国产精品| 久久精精区一区二区一蜜桃一区二区| 劲爆欧美人妖三区91| 91美女国产在线| 免费的黄片有限公司| 欧美人妻精品| 在线欧美亚洲| 去干网最新版| 青青草玖玖爱| 97日韩欧美| 天天爽天天爽| 超碰4A| 强奸乱伦αv片| 亚洲色图欧美色图制服诱惑| a片 xxxx受爽视频| 午夜免费视频1000| 超碰在线日韩一区| 久久亚洲精品成人av| 一区二区首页| 91热| 久久丁香五月婷婷| 久久欧洲| 日韩偷拍一区二区三区| 宅男91视频在线播放| 2019天天干| 久久这里都是精品| 热99这里有精品综合久久 | 校园春色中文字幕AV| 免费视频97| 免费视频无码| 色九久| 欧美夜夜狠| 国产三级片在线观看| 日韩精品 资源| 亚洲色人| 夜夜爽妓女| 国产精品日韩在线一区| 色妹子A V| 国产精品精品系列在线观看| 色综合中文字幕不卡| 91久久久亚洲| 亚洲天堂自拍| jk白丝没脱就开始啪啪| 亚洲无码99| 久久精品黄色| 欧美最婬乱婬爆婬性视频 | 综合激情一一91| 五月天黄色激情视频| 亚洲欧美日韩电影网站一区 | 久久九九一区二区三区成人| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 91亚洲青青草原精品1区| 国语精品av| 日日骚av| 蜜桃午夜视频一区二区| 十八禁网站在线| 91呆哥人妻| 插穴性爱视频在线观看| 欧美一二三| 亚州综合AⅤ| 亚洲涩涩| 久久鲁夜| 日韩猛交| 深爱五月天| 在线播放中文字幕| 色原狠狠天天天| 九九九九热只有精品| ji熟女.com| 色婷视频| 熟女人妻一区二区三区| 亚一综合久久久久久久久久| 国产无吗在线播放| 欧美激情亚洲情色| 久久久久9999妇女| 嫩草伊人久久精品| 99r九九| 欧美熟女操屄| 伊人婷婷五月天| 欧美性特| 你草精品在线视频| 97精品97久久| 久久久精| 九九九九九九九九九国产精品 | 久久久久久久久久久久久久久性生活视频 | 亚洲天堂7777| 超碰天天去日穴| 色性荡荡荡荡视频| 丁香五月综合| 精品国产三级av韩国在线| 狠狠干妹子| 精品91摸| 簧片免费看视频| 看免费一级在线播放毛片| 超碰97综合网| 91久久久视| 亚洲九月丁香| 国产操伦| 欧美日韩资源| 蜜乳av一区二区三区四区不卡| 97超碰69| 操迟操逼在巾线Fre看| 999色欧美中文字幕| 色综和网| 97 亚洲 日韩 欧美 在线| 久久草在线综合视频| 国产日韩区| 国产 日韩 欧美一区| 日日躁夜夜躁狠狠躁超爽| 日本高清熟女久久一区| 久久人妻97久久久久久久| 爱我干综合| 91亚洲色人| 中文字幕乱码在线观看| 蜜臀无码一区二区| 国产五码丝袜屁眼| 96AV久久久| 大香蕉碰碰| 91国产精品在线看| 中文字幕一区二区三区视频播放| 人妻中文字幕精品无码| 日韩一级久久毛片| 亚洲图片偷拍欧美| 屌妞视频久久久久久久久久久久| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 色色色网站| 在线观看亚洲专区| 91社操逼| 欧美色性爱| 性色av蜜臀av色欲aV| 6080YYY午夜理论片在线观看|