久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

TCP組包與粘包拆包:從MSS、Nagle算法到抓包實戰(zhàn)

TCP組包與粘包拆包:從MSS、Nagle算法到抓包實戰(zhàn) 1. 從一個抓包現(xiàn)場說起為什么你的數(shù)據(jù)包看起來“不完整”很多人第一次用抓包工具看TCP流量的時候都會有一種困惑明明應(yīng)用層發(fā)出去的是完整的一條消息怎么到了網(wǎng)絡(luò)層就變成了一堆零零散散的片段更讓人抓狂的是有些片段看起來只有幾十個字節(jié)有些卻接近一千五百字節(jié)毫無規(guī)律可言。如果你正好在做協(xié)議解析、流量還原或者自定義通信中間件這個問題不搞清楚后面的活兒基本沒法干。我自己最早接觸這個概念是在做一個設(shè)備數(shù)據(jù)采集網(wǎng)關(guān)的時候。設(shè)備端通過TCP往上送數(shù)據(jù)服務(wù)端收到的卻總是“半截”消息有時候兩條消息粘在一起有時候一條消息被切成三段。當(dāng)時第一反應(yīng)是代碼寫錯了查了半天緩沖區(qū)讀寫邏輯最后才發(fā)現(xiàn)根子不在應(yīng)用層而在TCP本身的傳輸機(jī)制上。TCP組包這件事說白了就是搞清楚TCP在發(fā)送數(shù)據(jù)時是怎么把應(yīng)用層交下來的字節(jié)流切成一段一段發(fā)出去的以及接收端又該怎么把這些段重新拼回一條完整的消息。這篇文章適合三類人看第一類是正在做網(wǎng)絡(luò)編程、協(xié)議解析的開發(fā)者你遲早會碰到粘包和拆包的問題第二類是做流量分析、安全審計方向的朋友不理解組包邏輯抓到的包你根本還原不出原始語義第三類是對底層網(wǎng)絡(luò)感興趣、想弄明白“數(shù)據(jù)從A到B到底經(jīng)歷了什么”的技術(shù)愛好者。我會從為什么需要組包講起把MSS、MTU、滑動窗口、Nagle算法這些繞不開的概念串起來再落到實際代碼里怎么處理最后分享幾個我踩過的坑和排查技巧。整篇內(nèi)容基于常見的TCP協(xié)議實現(xiàn)和工程實踐來寫具體參數(shù)以你實際環(huán)境為準(zhǔn)。2. 組包這件事到底在解決什么問題2.1 先搞清楚TCP是字節(jié)流不是消息流這是理解組包的第一道門檻也是最容易被忽略的一點。TCP協(xié)議在設(shè)計上只保證一件事你發(fā)出去的字節(jié)序列對方能按同樣的順序收到。注意它保證的是字節(jié)序列不是消息邊界。也就是說應(yīng)用層調(diào)用兩次send每次發(fā)100字節(jié)接收端可能一次recv就收到200字節(jié)也可能分四次每次收50字節(jié)。TCP根本不關(guān)心你應(yīng)用層是怎么劃分消息的它只負(fù)責(zé)把字節(jié)按順序搬過去。這個特性帶來的直接后果就是接收端必須自己想辦法判斷“一條完整消息到哪里結(jié)束”。而這個判斷的前提是你得先理解發(fā)送端是怎么把字節(jié)流切成一個個TCP段的。切的方式不同接收端看到的片段分布就不同處理策略也得跟著調(diào)整。用一個生活化的類比TCP就像一條傳送帶你把一堆零件放上去傳送帶只保證零件按順序到達(dá)對面但它不會告訴你“這一批是訂單A的零件下一批是訂單B的”。對面的人收到的是一堆混在一起的零件得自己根據(jù)零件上的標(biāo)記來分組。組包就是研究傳送帶是怎么把零件分批送出去的以及對面該怎么分組。2.2 不組包行不行IP層的硬性限制有人可能會想既然切來切去這么麻煩那我不切了應(yīng)用層給多少我就一次發(fā)多少不行嗎理論上可以但物理網(wǎng)絡(luò)不允許。TCP段最終要交給IP層封裝成IP數(shù)據(jù)報發(fā)出去而IP數(shù)據(jù)報有一個硬性上限MTUMaximum Transmission Unit最大傳輸單元。以太網(wǎng)環(huán)境下這個值通常是1500字節(jié)。超過這個大小的數(shù)據(jù)報要么被分片要么根本發(fā)不出去。IP分片這件事本身是有代價的。一個IP數(shù)據(jù)報被分片后只要其中任何一片丟失整個數(shù)據(jù)報都得重傳效率極低。而且很多中間設(shè)備對分片的處理策略不一致有的直接丟棄有的重組超時。所以TCP寧愿自己在傳輸層就把數(shù)據(jù)切好讓每個TCP段封裝成IP數(shù)據(jù)報后不超過MTU從源頭上避免IP分片。這就是組包最原始的驅(qū)動力在傳輸層主動切分規(guī)避網(wǎng)絡(luò)層的分片風(fēng)險。2.3 MSSTCP段大小的天花板TCP切分?jǐn)?shù)據(jù)時依據(jù)的核心參數(shù)叫MSSMaximum Segment Size最大報文段長度。它指的是一個TCP段中數(shù)據(jù)部分的最大字節(jié)數(shù)注意不包括TCP頭部和IP頭部。MSS的取值不是隨便定的它和MTU有直接關(guān)系MSS MTU - IP頭部長度 - TCP頭部長度以標(biāo)準(zhǔn)以太網(wǎng)為例MTU是1500字節(jié)IP頭部最小20字節(jié)不含選項TCP頭部最小20字節(jié)不含選項那么MSS就是1500 - 20 - 20 1460字節(jié)。這就是為什么你抓包時經(jīng)??吹絋CP段的數(shù)據(jù)部分最大就是1460字節(jié)這個數(shù)字不是拍腦袋來的是算出來的。MSS在TCP三次握手階段通過SYN報文協(xié)商。雙方各自在SYN里帶上自己能接受的最大MSS值最終取兩者中的較小值作為實際使用的MSS。這個協(xié)商過程很重要因為通信兩端可能處在不同網(wǎng)絡(luò)環(huán)境里MTU不一樣。比如一端是以太網(wǎng)1500另一端是某種隧道環(huán)境可能只有1400協(xié)商后就會用較小的那個值避免發(fā)出去的數(shù)據(jù)包在中間被丟棄。2.4 組包和粘包一對孿生問題理解了發(fā)送端的切分邏輯接收端的問題就清晰了。接收端面對的是一個連續(xù)的字節(jié)流它需要回答一個問題從哪個字節(jié)到哪個字節(jié)算一條完整消息如果判斷錯了就會出現(xiàn)兩種典型錯誤粘包兩條或多條消息被當(dāng)成一條處理了。比如發(fā)送端連續(xù)發(fā)了消息A和消息B接收端一次recv把A和B的數(shù)據(jù)都讀出來了如果程序沒做邊界判斷就會把AB當(dāng)成一條消息解析直接解析失敗或者產(chǎn)生錯誤結(jié)果。拆包一條消息被拆成多次recv才讀完。比如消息有5000字節(jié)但MSS是1460發(fā)送端至少切成4個段發(fā)出去接收端第一次recv可能只讀到1460字節(jié)如果程序認(rèn)為這就是全部就會丟掉后面的數(shù)據(jù)。這兩個問題的根源都在于TCP不保留消息邊界。解決思路無非兩種要么在應(yīng)用層協(xié)議里自己定義邊界比如長度字段、分隔符要么用固定長度的消息。具體選哪種取決于你的業(yè)務(wù)場景和性能要求。3. 發(fā)送端是怎么決定“怎么切”的3.1 發(fā)送緩沖區(qū)的角色應(yīng)用層調(diào)用send的時候數(shù)據(jù)并不是直接飛到網(wǎng)卡上的而是先進(jìn)入發(fā)送緩沖區(qū)send buffer。這個緩沖區(qū)是內(nèi)核維護(hù)的大小可以通過SO_SNDBUF選項調(diào)整。TCP發(fā)送數(shù)據(jù)時是從這個緩沖區(qū)里取數(shù)據(jù)來組包的。理解這一點很關(guān)鍵因為它意味著應(yīng)用層的一次send和底層的一個TCP段之間沒有一一對應(yīng)關(guān)系。舉個例子應(yīng)用層連續(xù)調(diào)了三次send每次發(fā)100字節(jié)總共300字節(jié)進(jìn)入發(fā)送緩沖區(qū)。如果當(dāng)前MSS是1460且沒有其他限制TCP完全可能把這300字節(jié)合并成一個TCP段發(fā)出去。反過來應(yīng)用層一次send了5000字節(jié)緩沖區(qū)里有了5000字節(jié)TCP會根據(jù)MSS、擁塞窗口、接收窗口等因素決定一次發(fā)多少可能切成4個段分批發(fā)。所以組包的第一層邏輯是TCP從發(fā)送緩沖區(qū)取數(shù)據(jù)取多少由多個因素共同決定。這些因素包括MSS、擁塞窗口cwnd、接收端通告的接收窗口rwnd、以及Nagle算法等。3.2 擁塞窗口和接收窗口的雙重約束發(fā)送端一次能發(fā)多少數(shù)據(jù)不是它自己說了算的要同時滿足兩個窗口的限制接收窗口rwnd接收端在ACK里通告自己還有多少緩沖區(qū)空間能收數(shù)據(jù)。如果接收端處理慢緩沖區(qū)滿了rwnd就會變小甚至變成0發(fā)送端就得停下來等。擁塞窗口cwnd發(fā)送端根據(jù)網(wǎng)絡(luò)狀況自己維護(hù)的一個值用來避免把網(wǎng)絡(luò)壓垮。剛開始慢啟動階段cwnd很小每收到一個ACK就翻倍增長遇到丟包就減半。實際能發(fā)送的數(shù)據(jù)量取兩者的較小值。這意味著即使MSS是1460如果當(dāng)前cwnd只有3000那一次最多也就發(fā)3000字節(jié)左右可能切成3個段。抓包時看到段的大小參差不齊很多時候就是窗口在動態(tài)變化導(dǎo)致的。3.3 Nagle算法小包合并的功與過Nagle算法的核心思想很簡單如果發(fā)送端還有未被ACK確認(rèn)的小數(shù)據(jù)就先攢著等收到ACK或者攢夠一個MSS再發(fā)。目的是減少網(wǎng)絡(luò)上的小包數(shù)量提高帶寬利用率。這個算法在早期網(wǎng)絡(luò)帶寬緊張的時候很有價值但在很多現(xiàn)代場景下反而成了麻煩。我做過一個實時控制類的項目指令包都很小幾十字節(jié)。開了Nagle算法之后指令發(fā)出去要等前一個的ACK回來才發(fā)下一個延遲明顯增加。后來通過設(shè)置TCP_NODELAY選項關(guān)掉了Nagle算法延遲立刻降下來了。所以Nagle算法不是好不好的問題是適不適合的問題場景類型是否建議開啟Nagle原因大批量文件傳輸建議開啟合并小包減少頭部開銷提升吞吐實時交互/控制指令建議關(guān)閉小包需要立即發(fā)送延遲優(yōu)先請求-響應(yīng)模式視情況如果請求包很小且頻繁關(guān)閉更好游戲/音視頻信令建議關(guān)閉延遲敏感小包合并會引入額外等待關(guān)閉Nagle算法的方法很簡單在socket上設(shè)置int flag 1; setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)flag, sizeof(int));注意關(guān)閉Nagle算法后小包會立即發(fā)送網(wǎng)絡(luò)上的包數(shù)量會增加。如果你的場景既需要低延遲又擔(dān)心包太多可以考慮應(yīng)用層自己做批量合并而不是依賴Nagle。3.4 一個組包過程的完整推演假設(shè)應(yīng)用層要發(fā)送一條2000字節(jié)的消息當(dāng)前MSS為1460cwnd足夠大rwnd也足夠Nagle關(guān)閉。發(fā)送端的處理過程大致如下應(yīng)用層調(diào)用send2000字節(jié)進(jìn)入發(fā)送緩沖區(qū)。TCP從緩沖區(qū)取數(shù)據(jù)第一個段取1460字節(jié)受MSS限制加上TCP頭部和IP頭部封裝成IP數(shù)據(jù)報發(fā)出。緩沖區(qū)還剩540字節(jié)TCP繼續(xù)取這540字節(jié)封裝成第二個段發(fā)出。接收端收到兩個段分別ACK確認(rèn)。如果發(fā)送端在等ACK期間又有新數(shù)據(jù)進(jìn)入緩沖區(qū)會繼續(xù)組包發(fā)送。這個例子里一條2000字節(jié)的消息被切成了1460540兩個段。接收端如果第一次recv只讀了1460字節(jié)就必須繼續(xù)讀第二次才能拿到完整的2000字節(jié)。這就是拆包的典型場景。4. 接收端怎么把碎片拼回完整消息4.1 接收緩沖區(qū)的合并行為接收端的情況和發(fā)送端對稱。TCP收到段之后先把數(shù)據(jù)放進(jìn)接收緩沖區(qū)receive buffer然后應(yīng)用層調(diào)用recv從緩沖區(qū)里讀數(shù)據(jù)。關(guān)鍵點在于TCP協(xié)議棧在把數(shù)據(jù)放入接收緩沖區(qū)時會按序列號排序并合并連續(xù)的數(shù)據(jù)。也就是說如果先收到序列號1000-2459的段再收到2460-2999的段緩沖區(qū)里就是連續(xù)的1000-2999應(yīng)用層一次recv可能把這兩段的數(shù)據(jù)都讀出來。這個合并行為是粘包問題的直接來源。發(fā)送端明明分兩次發(fā)的接收端一次就讀出來了如果應(yīng)用層沒有邊界判斷邏輯就會把兩條消息當(dāng)成一條。4.2 應(yīng)用層定義邊界的三種主流方案既然TCP不提供邊界應(yīng)用層就得自己定義。常見的方案有三種各有適用場景方案一固定長度消息。每條消息長度固定比如都是128字節(jié)。接收端每次讀128字節(jié)就是一條消息。優(yōu)點是實現(xiàn)簡單解析快缺點是靈活性差消息長度不一時會浪費帶寬。適合定長指令、定長狀態(tài)上報這類場景。方案二分隔符。用特殊字符或字符串作為消息結(jié)束標(biāo)記比如換行符、特定字節(jié)序列。接收端不斷讀取直到遇到分隔符就算一條完整消息。HTTP的頭部、很多文本協(xié)議都用這種方式。缺點是分隔符本身不能出現(xiàn)在消息內(nèi)容里否則需要轉(zhuǎn)義處理起來麻煩。方案三長度字段。在消息頭部放一個固定長度的字段標(biāo)明消息體有多少字節(jié)。接收端先讀固定長度的頭部解析出長度再讀對應(yīng)長度的消息體。這是最通用、最可靠的方案二進(jìn)制協(xié)議基本都用這種。缺點是解析邏輯稍復(fù)雜需要處理頭部和體分開讀的情況。方案優(yōu)點缺點適用場景固定長度實現(xiàn)最簡單解析快不靈活浪費帶寬定長指令、心跳包分隔符可讀性好文本友好需轉(zhuǎn)義解析效率低文本協(xié)議、日志傳輸長度字段通用性強(qiáng)效率高實現(xiàn)稍復(fù)雜二進(jìn)制協(xié)議、RPC框架4.3 長度字段方案的完整實現(xiàn)思路以長度字段方案為例接收端的處理邏輯需要分兩步先讀頭部再讀體。但這里有個坑recv不保證一次能讀滿你想要的字節(jié)數(shù)。你可能想讀4字節(jié)的頭部結(jié)果只讀到2字節(jié)。所以必須用一個循環(huán)來確保讀滿。下面是一個簡化的處理框架用偽代碼表示def read_exact(sock, n): 確保從socket讀滿n字節(jié) buf b while len(buf) n: chunk sock.recv(n - len(buf)) if not chunk: raise ConnectionError(連接斷開) buf chunk return buf def read_message(sock): 讀取一條完整消息 # 第一步讀4字節(jié)頭部解析出消息體長度 header read_exact(sock, 4) body_len int.from_bytes(header, big) # 第二步讀消息體 body read_exact(sock, body_len) return body這個框架的核心是read_exact函數(shù)它保證了“讀滿指定字節(jié)數(shù)”這個語義。不管底層TCP怎么切分應(yīng)用層看到的都是完整的頭部和完整的體。這就是解決拆包問題的標(biāo)準(zhǔn)做法。實操心得read_exact里的循環(huán)條件是len(buf) n不是len(buf) ! n。雖然在這個場景下兩者等價但用更符合語義也更安全。另外recv返回空字節(jié)串表示對端關(guān)閉了連接必須處理否則會死循環(huán)。4.4 緩沖區(qū)大小對組包的影響接收緩沖區(qū)的大小會影響recv一次能讀到的數(shù)據(jù)量。如果緩沖區(qū)設(shè)得很大而發(fā)送端發(fā)得快一次recv可能讀到多條消息的數(shù)據(jù)粘包概率增加。如果緩沖區(qū)設(shè)得很小可能一條消息要分很多次才能讀完拆包次數(shù)增加。我的經(jīng)驗是接收緩沖區(qū)不要設(shè)得過大一般設(shè)為MSS的幾倍就夠了。更重要的是應(yīng)用層的讀取邏輯必須能正確處理“一次讀到多條”和“一條分多次讀”這兩種情況。只要read_exact這類函數(shù)寫對了緩沖區(qū)大小的影響就被屏蔽了。5. 抓包分析實戰(zhàn)從Wireshark看組包過程5.1 抓包前的準(zhǔn)備工作要觀察TCP組包過程最直接的工具就是抓包軟件。在開始之前有幾個設(shè)置需要確認(rèn)選擇正確的網(wǎng)卡。如果有多塊網(wǎng)卡要選實際承載流量的那塊。設(shè)置合適的抓包過濾器。比如只想看某個端口的流量可以用tcp port 8080避免抓到無關(guān)數(shù)據(jù)干擾分析。關(guān)閉網(wǎng)卡的分載功能如果條件允許。某些網(wǎng)卡的TSO、LRO等分載功能會讓抓到的包和實際發(fā)出的包不一致影響判斷。5.2 識別組包行為的關(guān)鍵字段抓到包之后重點看這幾個字段Sequence Number序列號標(biāo)識這個段的數(shù)據(jù)在字節(jié)流中的起始位置。通過相鄰段的序列號差值可以算出每個段攜帶了多少字節(jié)數(shù)據(jù)。Acknowledgment Number確認(rèn)號接收端期望收到的下一個字節(jié)的序列號。Flags看PSH標(biāo)志。發(fā)送端設(shè)置PSH表示希望接收端盡快把數(shù)據(jù)交給應(yīng)用層但這不是強(qiáng)制的接收端可以忽略。Window Size接收端通告的接收窗口大小反映接收緩沖區(qū)的剩余空間。TCP Segment LenWireshark直接給出的段數(shù)據(jù)長度最直觀。5.3 一個真實的組包分析案例假設(shè)我們抓到了一段流量應(yīng)用層發(fā)送了一條3000字節(jié)的消息MSS為1460。抓包結(jié)果可能長這樣包序號序列號段長度標(biāo)志說明111460PSH,ACK第一個段攜帶1460字節(jié)214611460ACK第二個段攜帶1460字節(jié)3292180PSH,ACK第三個段攜帶剩余80字節(jié)4-0ACK接收端確認(rèn)收到2921803001字節(jié)從序列號可以看出第一個段從1開始長度1460所以下一個段從1461開始。第二個段長度1460下一個從2921開始。第三個段長度80總共3000字節(jié)和消息長度吻合。這就是一次典型的組包過程3000字節(jié)被切成了1460146080三個段。注意第一個和第三個段帶了PSH標(biāo)志中間那個沒有。這是因為發(fā)送端在發(fā)送第一個段時緩沖區(qū)里可能只有部分?jǐn)?shù)據(jù)設(shè)置了PSH希望對方盡快處理發(fā)送第二個段時數(shù)據(jù)還在陸續(xù)寫入沒設(shè)PSH第三個段是最后一部分又設(shè)了PSH。PSH的設(shè)置和發(fā)送端的寫入節(jié)奏有關(guān)不是固定的。5.4 從抓包結(jié)果反推應(yīng)用層行為有經(jīng)驗的開發(fā)者能從抓包結(jié)果反推出不少應(yīng)用層的信息。比如如果看到大量小段幾十字節(jié)且間隔規(guī)律可能是應(yīng)用層在頻繁發(fā)送小消息且沒關(guān)Nagle算法。如果看到段大小總是1460的整數(shù)倍附近說明發(fā)送端在盡量填滿MSS可能是批量數(shù)據(jù)傳輸。如果看到接收窗口頻繁變小說明接收端處理速度跟不上發(fā)送速度應(yīng)用層可能有性能瓶頸。如果看到重傳說明有丟包需要檢查網(wǎng)絡(luò)質(zhì)量或擁塞控制參數(shù)。這些推斷不是百分百準(zhǔn)確但能給你排查問題提供方向。我排查過一個吞吐上不去的問題抓包發(fā)現(xiàn)發(fā)送端一直在等接收端的窗口更新接收窗口長期只有幾百字節(jié)。后來查出來是接收端應(yīng)用層讀取太慢緩沖區(qū)一直滿著。把接收端的處理邏輯優(yōu)化后窗口恢復(fù)正常吞吐立刻上去了。6. 常見問題與排查技巧實錄6.1 粘包拆包問題速查表現(xiàn)象可能原因排查方法解決思路收到半截消息拆包一次recv沒讀滿打印每次recv的字節(jié)數(shù)用read_exact確保讀滿多條消息混在一起粘包一次recv讀了多條檢查消息邊界判斷邏輯加長度字段或分隔符解析偶發(fā)解析失敗粘包拆包交替出現(xiàn)抓包看段分布完善應(yīng)用層緩沖和解析小包特別多Nagle關(guān)閉或消息本身小抓包看段長度視場景決定是否開Nagle吞吐上不去窗口太小或緩沖區(qū)不足抓包看Window Size調(diào)大緩沖區(qū)或優(yōu)化處理速度延遲忽高忽低擁塞控制或Nagle影響對比開關(guān)Nagle的延遲延遲敏感場景關(guān)Nagle6.2 幾個容易踩的坑坑一以為一次send對應(yīng)一次recv。這是新手最常見的誤解。TCP不保證send和recv的一一對應(yīng)任何依賴這個假設(shè)的代碼都是不可靠的。我見過有人寫測試代碼客戶端send一次服務(wù)端recv一次就認(rèn)為收完了結(jié)果在本地測試沒問題一上真實網(wǎng)絡(luò)就出各種詭異bug。本地回環(huán)接口MTU很大通常65535很少觸發(fā)拆包所以問題被掩蓋了??佣胹leep來等數(shù)據(jù)收完。有人為了等一條消息的所有片段到達(dá)在recv之間加sleep。這種做法極其不可靠網(wǎng)絡(luò)延遲不可預(yù)測sleep短了不夠長了浪費性能。正確做法是用長度字段或分隔符來判斷消息邊界而不是靠時間。坑三忽略recv返回0的情況。recv返回0表示對端正常關(guān)閉了連接不是錯誤。如果不處理循環(huán)會一直轉(zhuǎn)CPU跑滿。處理方式很簡單recv返回0時跳出循環(huán)關(guān)閉連接??铀木彌_區(qū)開得過大。有人覺得緩沖區(qū)越大越好直接開到幾MB。實際上過大的緩沖區(qū)會占用大量內(nèi)存而且可能讓粘包問題更嚴(yán)重。合理的做法是根據(jù)消息大小和并發(fā)連接數(shù)來估算一般幾十KB到幾百KB就夠了??游寤煜齅SS和MTU。MSS是TCP數(shù)據(jù)部分的最大長度MTU是整個IP數(shù)據(jù)報的最大長度兩者差了40字節(jié)IP頭TCP頭。設(shè)置參數(shù)時搞混了會導(dǎo)致包大小不對。記住那個公式MSS MTU - 40無選項時。6.3 一個排查粘包問題的完整過程分享一個我實際排查過的案例。某服務(wù)端偶爾報“消息解析失敗”頻率不高但一直存在。排查過程如下第一步在解析失敗的地方加日志打印收到的原始字節(jié)和長度。發(fā)現(xiàn)失敗時收到的數(shù)據(jù)長度比預(yù)期的一條消息長明顯是兩條消息粘在一起了。第二步檢查應(yīng)用層解析邏輯。發(fā)現(xiàn)代碼是這么寫的recv一次然后直接按一條消息解析。沒有循環(huán)沒有邊界判斷。這就是根因。第三步抓包確認(rèn)。抓包顯示發(fā)送端確實分兩次發(fā)了消息但接收端一次recv把兩條都讀出來了。因為兩條消息都很小加起來也沒超過接收緩沖區(qū)TCP合并后一起交給了應(yīng)用層。第四步修復(fù)。引入長度字段用read_exact先讀頭部再讀體循環(huán)處理直到緩沖區(qū)沒有完整消息為止。修復(fù)后再沒出現(xiàn)過解析失敗。這個案例的教訓(xùn)是不要假設(shè)recv的行為要用協(xié)議來定義邊界。只要邊界定義清楚了TCP怎么切、怎么合都不影響應(yīng)用層的正確性。6.4 性能優(yōu)化的小技巧如果你已經(jīng)正確處理了組包拆包但性能還是不滿意可以試試這幾個方向調(diào)整SO_SNDBUF和SO_RCVBUF適當(dāng)增大緩沖區(qū)可以減少系統(tǒng)調(diào)用次數(shù)提升吞吐。但別太大夠用就行。使用writev/readv如果需要發(fā)送多個不連續(xù)的內(nèi)存塊用writev可以一次系統(tǒng)調(diào)用發(fā)出去減少開銷??紤]TCP_CORK和Nagle類似但更激進(jìn)可以強(qiáng)制攢夠一定數(shù)據(jù)再發(fā)。適合批量發(fā)送場景但要注意別把延遲敏感的數(shù)據(jù)也攢進(jìn)去了。批量ACK接收端可以延遲發(fā)送ACK攢幾個段一起確認(rèn)減少ACK包數(shù)量。Linux下有TCP_QUICKACK選項可以控制。這些優(yōu)化都要在正確性有保障的前提下做。如果組包拆包邏輯本身有問題優(yōu)化只會讓問題更難排查。7. 我個人在實際操作中的幾點體會組包這個話題看文檔覺得簡單真到代碼里全是細(xì)節(jié)。我最大的體會是永遠(yuǎn)不要相信“一次send對應(yīng)一次recv”這個假設(shè)。不管你的測試環(huán)境多穩(wěn)定真實網(wǎng)絡(luò)里什么情況都可能發(fā)生。把邊界判斷做扎實比什么都重要。另一個體會是抓包工具要會用但不能全信。網(wǎng)卡分載、抓包點位置、時間戳精度都會影響你看到的結(jié)果。最好結(jié)合應(yīng)用層日志一起分析兩邊對照才能定位準(zhǔn)確。我一般會在關(guān)鍵路徑上打日志記錄每次recv的字節(jié)數(shù)和解析結(jié)果出問題時和抓包結(jié)果對照很快就能找到根因。最后分享一個小技巧如果你在寫自定義協(xié)議長度字段建議用固定長度的大端序整數(shù)比如4字節(jié)。大端序是網(wǎng)絡(luò)字節(jié)序跨平臺不會出問題固定長度讓解析邏輯簡單4字節(jié)能表示4GB的長度絕大多數(shù)場景都夠用。這個設(shè)計看起來不起眼但能省掉后面很多麻煩。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
www.天天干| 天天操天天日青青草超碰av| 91碰碰| 欧美A片中文字幕| 色悠久| 日韩人妻精品久久久久| 欧美日韩国产三级黄色| 欧亚韩国999| 欧美综合区| 99re这里只有精品2| 日本视频在线观看污污污| 亚洲性感丝袜诱惑在线观看| 久久久久久人妻| 欧美高清第一页| 97频视在线| 国产一级作爱毛片| 午夜操逼不卡| 精品一区二区三区18| 婷婷色色五月| 日本欧美一区二区三区免费| 后入式福利| 欧美日韩超碰在线| 久久综合资源一区二区| 午夜无遮挡男女啪啪视频| 欧美桃色网| 97精品久久久久中文字幕| 91超碰人人操| 欧美性爱第一区| 中文字幕精品专区搜索结果91| 国模吧 一区二区三区| 久久超碰com| 老熟女熟妇| 成人5码视频| 资源新线在线天堂| 春色综合免费| 亚洲。天堂。日本在线观看| 欧美性五月| 久9久精品视频| 黑人干亚洲| 免费超碰97久久| 久久香蕉超碰97国产精品| 日韩乱伦影音先锋| 亚洲一区二区三区四区视频| 香港澳门日本三级网站| 狠狠爱综合网| 青青草导航在线视频| 哈哈操电影AV| 97亚洲一区| 久久一二三四五六七八九区区区| 狠狠激情综合狠狠操中文字幕| 中文字幕中文字幕一区二区| 亚洲欧美精品国产一区二区| 国产激情视频一区区三区| 一区二区三区四区在线不卡| 亚欧成人一级片在线播放| 国产蜜臀在线| 精品人妻一二三| 日韩熟女操逼| 日韩精品在线观看观看| 3p国产色噜噜一区| 欧美日韩性爱精品| 蜜桃久久久久久久久久久久| 东北操逼| 国产诱惑| 日本操逼视频导航| 精品国产乱码久久久久久影片| 黄片www.| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 可乐操亚洲蜜911| 330dv亚洲成年视频网| 日韩精品三级片长长久久| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 一本色道久久天天射天天干| 熟女字幕| 免费看欧美美女黄色大片 | 欧美高清16| 青草成人免费视频一COm| 欧美性爱免费短视频| 亚洲精品中文字幕一区在线视频| 成人夜夜爽| 夜夜综合| 亚洲日韩资源| A片 AV一级在线播放观看免费| 久久久久久夜夜夜夜夜| 青青草五月天| 亚洲一区日韩精品中文字幕| www.色操逼| 欧美专利1区2区3区4区5区免费| 伊人亚洲国产一成人久久精品,久久| 四虎AV无码| 一卡二卡在线播放| 国产成人自拍视频在线| 国产后入清纯| 一级毛片久久久久久久女人18| 亚洲精品乱码久久久久久蜜桃麻豆 | 免费视频在线观看啊啊啊啊啊| 欧洲亚洲综合| 偷拍亚洲熟女视频播放| 67914在线精品观看| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美色图片色哟哟| 人妻中文字幕精品无码| 精彩视频日韩| 麻豆成人影音在线| 九九aV| 亚洲欧美精品久| 啪啪视频免费在线观看| 人人潮人人摸| 五月婷婷啪啪| 99e久久国产精品| 欧美午夜精品久久久久久3D| 99re6在线视频播放免费精品| 国产精品网址| 97色97好| 午夜噜噜噜| 最近2019中文字幕国语免费版| 久草色悠悠在线视频| 明星性猛交ⅹxxx乱大交| 综合网色| 无码操逼天堂| 91快色色色色色| 久久99草| 精品在线观看视频在线| 99热一区二区三区四区| 久久AV无码网址| 夜夜操一区二区| 一类无码操逼视频| 色777999综合| 久热超碰| 男人女人18禁片免费看网站| 综合啪啪| 又粗又长又大国产不卡| 欧美91久久久久| 777奇米影视777四色| 久久婷婷苹果| 国产av高清版| 999久久久九九九九| 色色婷婷五月天| 中文字幕女同在线| 午夜久久无码1000合集| 91在线视频国产网站| 免费人人搞97| 国产精品无码在线| 老熟乱一区二区三区四区| 婷婷五月天成人网| 国产在线综合福利网站| 亚洲色悠悠久久88| www.婷婷六月天| 日韩9区| 嗯嗯,好大,好爽,好骚 | 五月丁香影视| 亚洲色图尤物视频| 东京热91| 啊啊啊不要好爽日韩无码一区| 秋霞久久亚洲精品成人| 欧美少妇色图| 天天拍天| 吉川爱美98堂在线| 五月天伊人| 久久av无码| 粉嫩av一区二区三区四季| 五月婷婷激情网| 日韩中文字幕视频| 超碰欧美COM| 热天堂一区二区| 最新日产中文在线麻豆| 最新亚洲黄色免费电影| 操老熟女AV| 中文字幕精品丝袜| 久久婷婷亚洲| 亚洲成人av电影在线| 九九操久久国产免费视频| 丝袜美腿诱惑亚洲欧美视频在线观看| 91c色| 精品人妻一区二区免费看| 天色综合网| 日本123区操B视频| 国产av又色又爽又黄| 福利伊人玖玖国产| 91强奸乱轮| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产激情视频一区区三区| 亚洲成人妻日韩在线| 久久草大香蕉| 亚欧Av| 少妇久久| 亚洲欧美在线综合| 久久综合日韩亚洲欧美| 99免费在线视频| 亚洲精品影视老司机| 九九九久久久| av黄图片在线观看| 久久99九九九九6666免费观看软件| 天天综合网~69| 国产版a级片直播在线| 99这里只有精品国产| 久久久性爱| 精久久久| 日本免费一区二区不卡| 97一区二压| 久久人妻97久久久久久久| 996热| 久久久免费的精品| 色官网色综合| 在线a v| 操B视频日韩无码| 国产精品久久久久久久久久久久久久吹| 97av,com| 日韩射图| 欲色综合| 黄页av| 亚洲中文sv| 欧亚 另类 久| 天天综合青苹果| 欧美午夜熟妇黑人精品91| 亚洲欧美天| 欧美日日人人天天| 91模特在线观看| 色五月激情AV在线| 亚洲影视第一页| 亚洲区限制级 99| 欧美特黄视频网站| 丰满人妻一区二区三区免费 | 97在线看| 男人女人18禁片免费看网站| 九九热久久99精品re| 思思视频免费看网站| 一个国产在线综合网站| 亚洲国产婷婷在线播放| 嗯嗯啊啊视频在线看| 亚洲欧美一区二区三区在钱蜜桃| 国产精品久久发布| 人妻少妇精品久久久| 欧美91色| 欧美亚洲综合高清在线| 尹人免费观看视频在线| 日本黄 R色 成 人网站| 亚洲日韩AV视色| 吉川爱美98堂在线| 96一区二区三区| 日本一级真人黄色性爱视频| 飘花国产午夜精品不卡| 五月丁香影视| 欧美亚洲se91| 国产精品久久久久久亚洲色欲| 久久久涩| 麻豆国产精品午夜视频| 五月天开心网| 后入福利视频| 粉嫩av在线| 男女激情黄色网址| 99热亚洲天堂| 国产精品久久久久久久久久久久久久久久久久| 午夜综合在线| 国产一区二区二区按摩精品啪视频| 一级毛片久久久久久久女人18| 国产麻豆一级精品视频| 国产婷婷一区| 亚洲精品97| 国产 亚洲 丝袜 制服| 91女人的网站| 97se亚洲综合自| 久久东京伊人一本到鬼色| 91婷婷| 好看的久久不射无码影视影院| 国产精品一区在线播放| 天天做日日做| 欧美色图成人网一区二区 | 国产精品直播在线观看直播| 日韩啪啪啪啪啪| 久久精品中文| 午夜.DJ高清在线观看免费7| 另类综合另类| 快灬快灬 一下爽蜜桃在线观看| 日日操丁香五月天| 东京热精品97综合网| 久久久久久久唑| 日日操丁香五月天| 加勒比久久av| 97人人操人人摸| 色盈盈影院| 色婷婷国产精品一区在线观看| 欧美v亚洲v日韩v最新在线二区| 亚洲A色| 亚洲欧美小说| 精品一区96| 久久九九97| 天美麻花大全视频| 99国内熟女露脸视频| 韩美日操逼| 大鸡吧尹人在线| 成人性生活高清视频在线播放| 亚洲天堂 视频你懂的| 欧美亚洲se91| 极品白嫩美女白浆成人福利在线看| 成人黄页| 国产精品一区二区 尿失禁| 五月天久久婷婷亚洲 | 激情一区二区三区在线观看| 亚洲高清欧美总合| 天天做天天爱天天爽| 国产熟女高潮一区二区三区| 精品亚洲黄色片 国产精品导航一区二区 | 伊人宅男大香蕉 | 91激情综合| 91人妻做a观看视频| 新97国产超碰| www.色99| 黄骗免费网站| 欧美日韩黄色片一区二区三区四区人与兽做爱| 亚洲欧洲av影音| 久草资源欧美在线视频| 亚洲成人久久一区二区| 在线播放欧洲免费av| 99热9| 久久国产精品m码| 久久精品欧美一区蜜桃| 黄片免费视频2019| 欧美色图在线视频少妇| 日韩在线视频1234| 日韩成人精品| 校园春色美腿丝袜 | 国产精品乱码久久久| 三级三级三级日本99| 农村女一级毛卡片| 欧美综合亚洲| 午夜欧美J进J出白浆流出久久久| 日韩人妻 中文字幕| 91精品导航| 影音综合网| 久久成人午夜精品影院| 丝袜 中出 制服 人妻 美腿 中文字幕| 熟妇熟女亚洲天堂网| 亚洲国产成人7777| 精品人妻一区二区三区蜜桃视频| 操九九九九九九| 艹比视频国产精品| 国产视频一区二区三区在线免费观看| 久久97视频| 亚洲A色| 久久久夜夜嗨免费视频| 中国操逼无码| 久操国产在线| 久草精品视频| 超碰在线人妻不卡| 天天综合精品| 秋霞视频一区二区| 久久久久久电影| 伦理第一页| 青青草男人天堂| 屌色在线97视频| 黄色av网站在线播放| 久久久久久久| 久久久九| 97热视频在线观看| 啊啊啊啊操死我了| 真实高潮91| 中文字幕日本久久| 欧美精品一区二区少妇免费A片 | 国产人伦a片信息免费片| 综合第一页| 欧美综合狠| 91l欧美在线| 日韩在线视频1234| 六九九九| 爽爽淫人网| 欧亚在线视频| 国产树林里野战在线看| 国产树林里野战在线看| 国产精品熟女丝袜一区二区| 围产精品一区二区三区视频播放| 亚洲精品无码成人久久久99 | 伊人玖玖网| 九九久久一区二区三区| 天美国产三级传媒| 久久精品国产精品亚洲艾通辽熟妇 | 十八禁视频一区二区| 天天澡天天狠天天天做| 超碰色综合| 亚洲资源站| 精品传媒在线一区| 精品高潮| 韩国一级做a久久久久| 天天日天天干少妇日| 精品无人区麻豆乱码1区2区图片| 中文日韩欧美熟| 久久美国毛片| 九九九九一区| 国产在线激情| 天久久久噜噜噜久久国产精品爽爽 | 777超碰| 国产一级高清免费观看| 久久久一区二区三区三州| 超碰97久久| 欧美一区二区三区不卡高清视频| 嗯嗯啊啊的视频| 屁股久久久久久久久| 97情超碰色| 欧美偷| 中文 人妻 制服| 加勒比海色香蕉婷婷| 资源新线在线天堂| 久草尤物| 国产呦精品一区二区三区下载| 亚洲黄网在哪免费看| 顶级丝袜熟女一区二区三区| 免费视频a级毛片免费视频| 国产亚洲色婷婷久久99精品91| 东京热亚洲一区二区| 丝袜夫妻自拍| 免费亚洲国产精品久久一区| 蜜臀AV一区二区三区| 男人亚洲天堂| 成人乱人伦一区二区| 日韩激情啪啪| 欧美超碰96| 很狠操| 伊人网高清| 国产精品一区二区校花| www五月| 色婷婷综合久久中文字幕雪峰 | 亚洲欧美日韩精品久| 婷婷五月天AV| 亚洲性综合| 欧美天天弄| 综合久久久久久久综合网| 爱射综合| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 青青欧美| 欧美一级A一级a爱片久久| 国产一在线观看| www.99热| 成熟熟女国产精品一区二区| 欧洲久久一二线| HEYZO高无码国产精品227| 91丝袜美女| 99热线麻豆 | 狠狠色综合网| 欧美男人亚洲天堂| 人人搞人人插人人操| 99久久精品国产高潮| 天色综合网| 一区二区三区一亚洲中文字幕、综合区灬 | 性色av一区二区| 九九九精品美女| 天堂俺去俺来也www久久婷婷| 亚洲nv男人的天堂网| 91国精产品| 91大神精品长腿在线观看网站| 99色在线| 5252色欧美在线男人的天堂| 日韩一性一交一A片俄罗斯| 热天堂一区二区| 96麻豆精品一区二区三区| 国产精品自在线发布| 色五月天AV| 偷拍片久久| 老子午夜伦不卡影院| 97超碰国产精品| 欧美碰碰综合色| 免费综合亚洲中文| 亚洲成人帖图| 国产福利第一视频| 欧美淫乱视频| a在线视频免费观看| 色男人色天堂东京热| 午夜视频久久久久一区| 日本不卡二三区| 一个人免费视频观看在线WWW | 亚洲情色 欧美| 久久久久9| 国语精品av| 日本综合久久| 天天狂操夜夜狂日| 超碰97起碰| 欧美资源| 国产AV天美| 中文字幕一区二区三区四区在线视频| 99RE在线视频精品,这里只有精品| 亚洲 小说 欧美 激情 另类| 10000部十八禁看电影| 天天激情综合站| 亚洲第91页| www.久久最新地址| 青青青草原| 欧美激情综合| 在线日韩日本亚洲国产| 色天使大香蕉| 黄片aaaaa一区| 97精品一区| 国产成人亚洲精品自产在线| 少妇厨房愉情理伦片bd在线观看| 91精产一区二区三区| 国内三级自拍小视频在线观看| 精品人妻高清麻豆av| 色哟哟的毛片| 国产一区二区免费福利片| 神马久久久久久久久久久久| 亚洲中文字母在线播放| 日韩精品人妻| 天天操天天日天天干| 99精品久久| 国产精品又黄又猛又粗| 97干综合网| 色色色综合网| 北约熟女超碰| 操熟女91| 久久综合av| 婷婷九月| 乱伦a片视频| 亚州欧美在线| 久啪| 99热色这里只有精品| 国产精品视频麻豆入口| 国产精品久久久久久久久久久久久久吹 | 乱老熟女一区二区三区| 五月天综合在线| 国产福利视频精品视频| 99热精品在线观看| 后入式视频国产自| 亚洲欧美中日韩| 亚洲日韩人妻中文字幕一区| 天天影视网色欲色香| 欧洲综合视频| 激情五月综合网| 手机在线播放国产福利| 亚洲天堂男人天堂网| 国产诱惑| 操操操操网黑人| 亚洲国产精品久久久久久久久久| 2019天天干天天操| 东京热视频网| 亚洲综合欧美| 97超碰9| 欧洲一区二区三区四区在线观看| 吉田爱美AV在线| 嗯嗯啊在线视频| 色婷婷香蕉| 粉嫩不卡一区二区性爱| 少妇啪啪自拍| 天天躁日日躁AAAAXXXX国产 | 夜夜爽33333| 日本日皮视频逼| 天天综合网日韩7799| 精品蜜乳AV免费观看| 男人的天堂99| 校园春色 亚洲| 国产精品色约约| 十八禁一区二区无码观看| 九九英色视频| 精品十三区| 自拍盗摄一区| 亚洲情色一区综合| 婷婷三区| 嗯嗯嗯,草死我| 久久久久久久少妇| 女同性恋一区二区三区精品视频| 九九热精品免费视频| 精品超碰中文在线| 美女尤物福利视频| 肥臀熟女福利视频一区二区| 亚洲中文字幕有码视频一区二区三区| 久久熟女人| 人妻天天爽夜夜爽精品2| 婷婷成人久久久精品| 中文字幕日韩国产传媒欧美精品| 爱爱动态120秒| 99热综合在线| 成人综合网 欧美| 绯色AV粉色AV蜜臀AV| 日本啊啊啊啊啊视频| 九九成人精品| 日韩精彩视频| 成人小电影网站tex| 欧美啪啪色吧在线| 亚洲AV秘无码一区..| 国产Av超碰| 中文字幕精品日韩中文字幕| 强奸乱伦αv片| 婷婷五月丁香五月| 啊啊啊啊视频免费| 97一区二区三区视频| 91美女视频电影| 大香蕉草草| 久久精品一区二区一8| 亚洲精品尤物yw在线影院| 日本性爱不卡视频| 婷婷五月天影院| 9久久美女首页| 久久三区四区| 久久久久久久一级黄色打同平台| 精品无码久久久| 人人澡综合涩| 久久99干一本高清| 亚洲无码电影久久久| 日本十八禁免费看污网站| 日韩人成网站在线播放| 91亚洲人电影| 男人把坤坤插入女人的下体| 日韩图色| 欧美aa一级片| 亚洲色图超碰在线| 色拍偷亚洲| 久久久久九九九| 中文字幕亚洲热播人妻| 久久婷婷一区二| 操淫穴亚洲五月丁香 | 91国产丝袜白虎| 黄色片A级一区二区三区| 热99这里只有精品| 日本999精品视频| 男生通女生屁股| 翔田千里Av在线| 亚洲日韩一区电影| 操死我了啊啊啊| 四虎午夜影院| 这里有精品| 97少妇人妻中文字幕久久| 日语五十路和六十路亚洲国产精品| 亚洲中文日韩精品| 欧美aⅴ99久久黑人专区| 亚洲视频精选| 亚欧韩av| 亚洲AV色图一区| 370p日韩欧美亚洲精品| 久久久精久久久| 国产一区在线看| 国产区性爱在线视频秋霞豆 | 国产人妖的免费的视频| 亚洲 中文 女同| 亚洲 欧美综合| 久久一区二区加油站| 女人天堂av在线播放| 丝袜剧情| 久久久久9999精品九九九| 国产美女自拍视频| 色色丁香| 少妇高潮一区二区三区在线| 国产网红精品| 亚洲色丰满少妇高潮| 青青操网| 欧美亚洲性爱一区二区| 在线97视频| 91粉芽高清在线一区二区| 殴美色网| 国产激情久久| 亚洲精品人体| 超碰公开久久网| 中日韓欧美高清| 97人肏| 亚洲国产97| 91亚洲人电影| 一区AV| 国产久久日韩网站导航| 18禁看网站一区| 综合激情97| 大黄片做爱的大的| 超碰视97中文| 色色综合网站| 91操操操操| 亚洲综合影片| 欧美精品日韩久久久九| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 亚洲一卡2卡3卡4卡乱码网站 | 国产99999| 久久综合日韩亚洲欧美| 久综合国内精品自在自线| 亚洲成人色情五月天丁香花| 手机在线播放国产福利| 99热线麻豆 | av网站免费看| 日日夜夜草草草| 九九探花视频在线观看| 欧美热图99| 性色avv| 欧美性生活免费网| 国产超碰97| 97WW精品| 日韩无码黄色片| 欧美色图20P| 人人喜人人妻| 国产一级操B视频| 中文字幕激情小说| 绑缚麻绳人妻寝取完整版| 人妻乱仑一区二区三区| 七月丁香婷婷| 免费国产| 国产专区路线| 精品性爱无码在线播放| A级国产欧美激情在线| 久操视频免费观看| 97网址www| 蜜臀操逼黄色视频操的好爽| 国产一级高清免费观看| 日韩人妻精品| 超碰天天久久79| 99精品久久| 国产亚洲日韩在线三区黑人| 97欧美综合网| 久久少妇人妻| 麻豆久久久久久久久丝袜| 美女黄频a美女大全免费皮| 蜜臀一区二区三区在线 | www亚洲免费| 亚洲欧美另类图片| 久久久三区二区一区| 97久久超碰国产网站| 亚洲成人免费电影| 亚洲欧综合另类无码一区| 蜜臀99久久精品久久久懂爱| 我爱操| 神马久久69| 9999伦理视频| 欧美三级不卡| 婷婷综合在线| 天天干天天狼在线视频| 精品成人无码| a'v在线资源| 日韩熟女精一区二区三区不卡| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 丁香九月激情| 色情乱伦AV| 十八禁av无码免费网站APP| 久久大黄片| 60秒不遮不挡| 97人人夜| 一区二区无码视频| 久久精品六区| 天美传媒精品一区二区三区| 国外91| 亚洲十八禁止| 91艹| 乱色老一区二区三区的观看方式| 欧美国产成人在线| 加勒比综合九九99视频在线播放| 日本淫色网| 久久大香蕉手机高清| 视频二区美腿丝袜制服人妻欧美| 色婷婷丁香五月天| 激情综合五| 这里只有精品视频在线| 性爱久久| 91久久精品国产| 久久一区无码| 中文字幕丝袜人妻| 欧美激情超碰777| 区一二区日韩亚洲乱码av电影| 亚洲精品 超碰| 亚洲永久永久永久永久一级一级一级精品 | 久久精品欧美一区蜜桃| 麻豆天美电影一区二区| 91n美女视频| 欧美爆操91| 日日干男人的天堂| 啊啊啊在线看| 熟妇色99| 强被迫伦姧在线观看无码网站| 久久伊人亚洲AV无码网站| 正在播放国产精品一区| 狠狠中文字幕| 中文字幕性感少妇av| 99re视频在线观看这里只有精品| 人妻少妇久久久| 九九久久久久久爱| 亚州综合图片| 久操频道免费在线呗看| 欧美亚洲天堂| 亚洲自拍天堂| 99热这里是精品| 熟女一区二区| 职场同事知名国产国产精品久久欧美日韩| 精品一区二区2| 欧美亚洲中文| 久久av成人无码免费| 天天综合精品| 中文在线久久字幕| 亚洲做性| 日韩成人性日韩成人性爱视频在线免费观看 | 国产家庭乱伦表演| 日韩黄色一区二区三区| AV天天在线观看| 日韩欧亚中文在线| 精品在线蜜臀| 蜜乳性色无码专日粉嫩骚逼AV| 91操碰| 欧美日韩青操| 天天澡天天狠天天天做| 殴美在线AⅤ| 啊啊啊用力在线观看| 精品9999| 涩涩涩综合| 熟妇人妻精品一区二区视频色欲| 人妻内射一区二区在线视频| 蜜臀久久99精品久久久久久| 天天综合网日韩7799| 久久熟女人| 蜜臀一二三区| 岛国片在线播放| 大香蕉123| 国产精品电| 亚洲无无码αⅴ每日更新| 色九月| 中文字幕精品亚洲熟女| AV一区观看| 久jiu久神马影院| 青青草一本道福利视频| 欧美性爱中文字幕无线码| 九九热九九热| 久久久久国色αv免费观看| 中文字幕精品一区二区精| 日本不卡三级网在线播放| 欧美综色欧| 亚洲美女自拍偷拍视频| 97久久精品亚洲中六字幕| 怡红院成人视频| 亚洲精品人妻吞精av| 91爱看| 人人操我人人干| 熟妇最新先锋一二三区| 久久青青草在线视频| 色区久久| 99热精品在线观看| 影音先锋中文字幕日本好一区二区| 黄总AV色图| 伊人一级免费黄片| 国产精品久久发布| 起碰97| 人人妻人人操人人乐| 亚洲在线91| 激情文学网伊人| 亚洲成人ab| 大香蕉婷婷| 亚洲人妻爽爽爽| 婷婷爱五月| 热热色91| 亚洲精品一区二区三区新线路| 成人怡红院| 五月久久HDAV| 黄色免费网| 亚洲男人的天堂AV| 久久久久久亚洲中文| 婷婷另类小说| 欧美顶级黄色大片免费| 欧美激情精品久久久| 91操人| 无码二级三级| 午夜精品一区二区三区三上悠亚| 在线不欧美| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久有码| 近亲乱伦一区二区| 男人天堂毛片| 欧美亚洲玖玖玖| 中文?日韩?免费?精品| 亚洲精品欧洲精品| 东北丰满熟女国产一区| 中文字幕在线第二页| 久草婷婷| 99e久久国产精品| 亚洲诱惑天堂 | 试看60秒| 婷婷色在线| jizz啪啪| 久久久成人免费av电影| 激情第四色| 岛国在线国产| 亚洲骚男同com| 日韩人体偷拍| 日本性爰一道本| 久久久精选| 久久久久久久久久久久久久久乱码 | 黄页大片在线观看| 欧美一区二区三区四区综合| …中文字幕亚洲乱,97人妻无码费视…| 国产综合操逼高清| 欧美不卡五十路| 亚洲熟妇综合久久久久久| 熟妇熟女视频一区二区三区| 成全动漫视频观看免费下载| 十八禁电影伊人网| 亚洲熟妇乱女区二区三区| www.91理论| 亚洲无992tv| 国产情色第一第二页在线观看| 99爱精品| 日本一级婬片试看三分钟| 这里只有精品97| 亚洲www91| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美亚洲综合999| 丝袜熟女2P| 黑人黄片在线免费观看| 黑人精品一区二区在线播放| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 无码人妻精品一区二区中文| 91熟女网| 五十路人妻在线| 国产大片精久久久久久| 色色操| 成年人性爱日韩| 日韩 国产 欧美自拍| 91中出视频| 亚洲女人毛茸茸91| 天天天天天天天天综合| 天堂蜜桃无码视频一区二区| 91动漫操逼视频| 国产精品露脸在线观看| 91网站18| 亚州性色| 青青草原av| 国产热av| 少妇专区一二三四五| 日韩av熟女一区二区三区成人| 激情婷婷五月天| 久久性爱大全| 一区操逼日比视频| 亚洲日本激情| 伊人久久综合影院精品久久久 | 99.色网| 亚洲色人妻综合| 激情网五月天| 天天爽天天干| 精品人妻伦一二三区久久| 无码自拍SM| 欧美很很操视频| 国产呦精品一区二区三区下载| 欧美 日韩 亚洲 春色| 青娱乐福利99| 麻豆视频国产一区二区| 国产福利一区二| 五月天婷婷在线看| a'v在线资源| 一起草高清无码| 亚洲高清视频在线免费观看| 97香蕉网| 立川理惠被中出无码| 亚洲视频中文一区| 精品日韩人妻视频| 中文人妻av高清一区| 黄色视频60分钟| 亚洲va有码在线天堂| 日本免费专区| 日本视频在线观看污污污| 91在线精品| www超碰| 久久国产精品一级二级三级| 婷婷情色综合网| 97色爱| 91激情综合| 伊人宅男大香蕉 | 精品无吗久久| 熟妇高潮精品一区二区三区下载| 学生妹天天看| 日本免费二区三区| 啊啊啊免费| 综合伊人激情| 日韩亚洲中文字幕在线| 无码日韩网站| 国产久久一区二区午夜| 色女综合| 一区二区亚州激情久婷婷欧美| 天天综合欧美黑人| 97免费视频在线| 日韩精品一区二区高清| 99精品久久久久久久婷婷| 五月激情影院| 啊啊啊啊在线观看网址| 精品无码一区二区人妻久久蜜桃| 九九九九精品在线| 亚洲无码精品AV久久久| 国产操逼逼网| 国产九月婷婷| 久久久久久久久久黄色网| 亚洲图片偷拍欧美| 天天澡天天狠天天天做| 少妇人妻太紧太深av| 99热婷婷| 1204金沙人妻懂旧版免费| 伊人欧美大香蕉视频| 综合影院永久入口国产| 免费看欧美美女黄色大片| 狠狠中文字幕| 最新9久久久9免费视频| 国产精品久久久久久久久久久久| 国产成人自拍视频视频| 超碰免费人人| 国产乱人妻精品入口| 清纯唯美第一页| 制度丝袜99| 综合色图,成人综合网| 91欧美性| 日本淫乱女一区二区三区视频| 天堂中文资源在线bt| 91大神电影天堂| 国语精品av| 国产三级多多影院2022国产AA一级毛片无码 | 国产三级中文有码在线视频| 日本天天吊| 男人天堂毛片| 亚洲成人一区二区精品| 欧美成人精品一区二区三区| 91亚洲黄色网| 国产极品99热在线播放69| 9久久9综合| 国产精品久久久久久久久久久久久久吹 | 亚洲日韩成人性爱视频| 自拍视频大全亚洲专媒视频/一区二区三区 | 淫骚熟女一区二区三区| 亚洲毛片基地专区| 色婷婷狠狠18禁| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 私人尤物在线精品不卡| 婷婷五月综合在线| 久久久久久裸体| 久久男人精品| 吉川爱美98堂在线| 极品白嫩美少妇在地板上位骑射淫水泛滥| 爆操无码| 职场同事知名国产国产精品久久欧美日韩 | 最新日韩黄片| 成人精品视频| 福利操逼| 久久久久久中文版| 色色色日本| 超碰在线974| av网站免费看| 77777亚洲蜜臀精品久久综合蜜臀| 久久精品噜噜噜成人看免欧美大片| 午夜120视频在线观看| 乱欲性色| 亚洲中文一区二区三区| 在线亚洲精品久久久| 性videos欧美熟妇hdx| ss久久| 国产在线综合网| 国产老熟女| 欧美黄色手机在线观看| 少妇被玩视频二三区| 国产强奸乱伦第1页| 丁香五月天婷婷姐| 国产精品不卡高清在线观看| www四虎| 免费a级毛片av无码久久精品中文字幕| 超碰97资源大奶| 日韩欧洲操屄视频| 男人久久精品| 久久精品国产亚洲AV嘿嘿| 97网址97| 亚洲欧美日韩精品久久久一区二区| 看看日B真人视频| 人人操人人狠狠操| 欧美伊人电影| 天天操女人| 岛国1区2区3区在线观看| 超碰人妻中文在线| 日韩在线观看字幕精品| 久久久久久人| 欧美色三级片91| 日B操| 锕锕好爽 死我在线观看| 在线国产探花| 免费一二区| 亚洲第一色页夜| 欧美十八禁网站| 中文字幕三四五区| 中文字幕片| 新婚人妻扶着粗大强行坐下| 超碰九7| 蜜臀99久久国产| 精品久久青青草| 男女猛烈无遮掩视频免费软件| 久久大线蕉一区| 亚洲天堂无码| 久久人妻| 中文字幕综合人妻| 色噜噜婷婷| 欧美操人视频| 少好三P| 91亚洲不卡一区| 久久精品毛片免费不卡| 国产精品久久久久9999小说| 蜜桃视频精品一区二区三区| 男人a天堂手机在线版| 九九亚洲| 五月开心久久AV官网| 丁香五月婷婷基地| av在线观看不卡网站| 亚洲中文字幕av | 欧美 亚洲 制服 精品| 再深点灬舒服灬太大了添视频 | 欧美黄片视频在线观看免费 | 肉嘟嘟www视频在线观看高清| 哈哈操电影| 久久久久网站-538在线视频-欧美永久乱码 | 亚欧中文字幕在线视频| 综合自拍| 国内偷自视频区视频综合| 超碰97伊人| 在线观看午夜婷婷久久久久清性观看| 六月丁香五月婷婷| 久久久久亚洲AV无码专区少妇| 夜夜躁狠狠躁日日躁av| 人妻熟女一区二区| 亚洲色图20p| 精品超碰中文在线| 去干网最新版| 精品国产丝袜一区二区三区乱码| 另类图片综合| 精品免费囯产一区二区三区 | 国产 丝袜 欧美中文 另类| 亚洲天堂五月天国产| 78精品| 国产人人干| 天天摸夜夜操视频| 极品粉嫩一区二区| 91 刺激在线| www久| 999岛国大片| 国产精品探花视频| 亚洲啪AⅤ永久无码| 女人天堂av在线播放| 欧美性暴力猛交| 亚洲欧美内射| 天天干夜夜肏| s片在线观看| 天天α片| 欧美久久毛片基地| 欧美三级一级| 国产欧美伊人| 久久精品国产精品亚洲艾通辽熟妇| 国产一区二区在线电影| 亚洲一区二区三区中文字幕| 先锋影音av先锋一区| 亚洲春色一区二区三区| 九九九九热| 91美女在线观看| 91色狼| 日本不卡一区二区| 婷婷涩嫩草鲁丝久久午夜精品| 蜜臀久久久99久久久久| 欲香欲色综合天天伊人| 欧中美三级一区二区三区| 五月天精品| 骚货操死你| 欧美天天综合在线| 九九亚洲| 国产肏逼网站| 国产精品探花色| 新久久AV| 亚洲第2页| 国产又操| 丁香激情五月天| 日韩人妻操B| 性色高清在线| 久久久久ab| 97热视频在线观看| 91模特在线观看| 亚洲欧美黄| 囯产精品久久久久久久久久梁医生 | 欧美成人性爱视频大全|