99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

深入理解HTTP/2幀機(jī)制:用hyperframe解析與排障實(shí)戰(zhàn)

深入理解HTTP/2幀機(jī)制:用hyperframe解析與排障實(shí)戰(zhàn) 說到 hyperframes凡是碰過 HTTP/2 協(xié)議棧的人多半繞不開 hyperframe 這個(gè)名字。它是 HTTP/2 生態(tài)里最底層的那一層 Python 庫(kù)專職負(fù)責(zé)幀的構(gòu)造和解析把線上二進(jìn)制字節(jié)流翻譯成帶類型的幀對(duì)象也把業(yè)務(wù)層要發(fā)送的幀重新編碼成字節(jié)。說白了沒有它h2 連接層、hyper 客戶端這些上層建筑就只能自己從零實(shí)現(xiàn)幀邏輯。本文我打算從項(xiàng)目定位、幀格式規(guī)范、庫(kù)的實(shí)操用法、排障經(jīng)驗(yàn)四個(gè)角度把這套東西完整講一遍。適合剛開始接觸 HTTP/2 的工程師也適合已經(jīng)在用 h2、hyper 但想搞明白底層幀長(zhǎng)什么樣的同學(xué)看完你至少能徒手解析一幀、寫出自己的抓幀工具遇到 GOAWAY、幀超長(zhǎng)這類問題也知道往哪兒查。1. hyperframes 項(xiàng)目拆解HTTP/2 幀庫(kù)到底解決了什么問題1.1 從二進(jìn)制分幀說起為什么 HTTP/2 離不開幀HTTP/1.1 時(shí)代請(qǐng)求和響應(yīng)是純文本的頭字段用\r\n分隔body 靠Content-Length或者 chunked 編碼判斷邊界。這種設(shè)計(jì)在簡(jiǎn)單的請(qǐng)求—響應(yīng)模型下沒問題但一旦想做多路復(fù)用立刻撞墻TCP 上只有一條有序字節(jié)流你沒法從字節(jié)流里干凈地切出“這是請(qǐng)求 A 的頭這是請(qǐng)求 B 的 body”pipeline 又天然有隊(duì)頭阻塞體驗(yàn)極差。HTTP/2 的解法是徹底改造成二進(jìn)制分幀所有數(shù)據(jù)被切成一個(gè)個(gè)獨(dú)立的幀每個(gè)幀都帶一個(gè) 31 位的 stream id標(biāo)明它屬于哪條流。這樣一來多個(gè)請(qǐng)求可以在同一條 TCP 連接上交錯(cuò)傳輸接收方按 stream id 重新組裝互不干擾。幀frame就是這條連接上的最小傳輸單位而 hyperframes 這個(gè)名字拆開看就是 HTTP 的 Hyper 加上 Frame 的復(fù)數(shù)指的就是這套幀機(jī)制本身以及圍繞它的 Python 實(shí)現(xiàn) hyperframe 庫(kù)。1.2 hyperframe 在 Hyper 生態(tài)中的位置它和 h2、hyper 的分工很多人第一次接觸 hyperframe 是在看 h2 或者 hyper 源碼的時(shí)候這三個(gè)項(xiàng)目經(jīng)常被放在一起讀起來容易懵。實(shí)際上它們各管一段職責(zé)非常清楚hyper完整可用的 HTTP/2 客戶端/服務(wù)端接近用戶態(tài)的直接上層。h2HTTP/2 的協(xié)議狀態(tài)機(jī)負(fù)責(zé)連接生命周期、流調(diào)度、錯(cuò)誤處理這些“協(xié)議邏輯”。hpackHPACK 頭壓縮算法純壓縮/解壓不關(guān)心幀。hyperframe幀的編碼與解碼層只負(fù)責(zé)“字節(jié)和對(duì)象之間的轉(zhuǎn)換”不做任何連接管理。這么拆分的核心原因是分層測(cè)試。協(xié)議狀態(tài)機(jī)不該關(guān)心一幀在線上到底長(zhǎng)什么樣幀層也不該去理解連接狀態(tài)。舉個(gè)場(chǎng)景h2 要發(fā)送一個(gè) SETTINGS 幀它只需要構(gòu)造SettingsFrame對(duì)象填充參數(shù)然后調(diào)用serialize()拿字節(jié)上 socket接收端把字節(jié)喂給FrameBuffer取出來的是一個(gè)已經(jīng)分好類的幀對(duì)象h2 再根據(jù)對(duì)象類型去更新自己的狀態(tài)機(jī)。沒有 hyperframe 這一層狀態(tài)機(jī)就得自己拼字節(jié)、拆字節(jié)代碼里全是魔術(shù)數(shù)字根本沒法維護(hù)。1.3 適合什么人用三種典型場(chǎng)景第一種是協(xié)議學(xué)習(xí)者。我一直覺得讀十遍 RFC 7540 不如親手拆一幀。hyperframe 的 frame 類命名和規(guī)范一一對(duì)應(yīng)HeadersFrame、DataFrame、SettingsFrame源碼量不大讀起來幾乎就是在讀規(guī)范本身。第二種是中間件開發(fā)者。寫代理、網(wǎng)關(guān)、Mock 服務(wù)或者給測(cè)試環(huán)境造流量經(jīng)常需要繞過完整連接層直接構(gòu)造特定幀。比如你想驗(yàn)證“收到一個(gè) payload 超長(zhǎng)的 SETTINGS 幀時(shí)服務(wù)端會(huì)不會(huì)回 FRAME_SIZE_ERROR”用 hyperframe 幾行代碼就能做。第三種是排障工程師。連接被異常關(guān)閉、GOAWAY 刷屏、流被人為重置這些問題的根源經(jīng)常要下探到幀級(jí)才能定位。手里有一個(gè)能解析任意字節(jié)流的幀工具比抓包軟件更靈活因?yàn)槟憧梢灾苯影堰壿媽戇M(jìn)自己的監(jiān)控腳本。2. 幀格式硬核拆解讀懂九字節(jié)幀頭與九類幀2.1 逐字節(jié)拆幀頭length、type、flags、stream id 各管什么HTTP/2 的每一幀開頭固定是 9 個(gè)字節(jié)的幀頭后面跟著 payload。幀頭長(zhǎng)這樣字段長(zhǎng)度說明Length24 bitpayload 長(zhǎng)度不含幀頭自身最大可到 2^24-1Type8 bit幀類型0x0 到 0x9 為規(guī)范定義類型Flags8 bit各種布爾標(biāo)記按幀類型語(yǔ)義不同R1 bit保留位必須為 0收到為 1 按協(xié)議錯(cuò)誤處理Stream Identifier31 bit所屬流 id0 表示連接級(jí)幀注意 Length 只算 payload不算這 9 個(gè)字節(jié)。這個(gè)坑我見過好幾個(gè)人踩抓包看到一幀“總共” 18 字節(jié)以為是幀頭payload結(jié)果拆完發(fā)現(xiàn) 18 是純 payload線上實(shí)際是 27 字節(jié)。Wireshark 里顯示的也是“Frame Header: 9 bytes Payload: 18 bytes”。拆幀頭不需要什么重型工具Python 自帶能力就夠def parse_frame_header(header: bytes) - tuple: length int.from_bytes(header[0:3], big) frame_type header[3] flags header[4] stream_id int.from_bytes(header[5:9], big) 0x7FFFFFFF return length, frame_type, flags, stream_id幀頭所有多字節(jié)字段都是大端序和 IP/TCP 頭一致讀習(xí)慣了很順手。stream id 的 31 位里最高位是保留位所以這里用 0x7FFFFFFF把最高位去掉。2.2 九種幀類型一覽從 DATA 到 CONTINUATIONRFC 7540 定義了 9 種幀類型hyperframe 的hyperframe.frame模塊里每一種都有對(duì)應(yīng)的類。我把關(guān)鍵信息整理成一張對(duì)照表幀類型Type 值關(guān)鍵 Flags核心作用DATA0x0END_STREAM、PADDED傳輸請(qǐng)求/響應(yīng)實(shí)體內(nèi)容HEADERS0x1END_STREAM、END_HEADERS、PADDED、PRIORITY開啟新流并攜帶壓縮頭塊PRIORITY0x2無調(diào)整流優(yōu)先級(jí)RST_STREAM0x3無終止某條流并攜帶錯(cuò)誤碼SETTINGS0x4ACK協(xié)商連接級(jí)參數(shù)PUSH_PROMISE0x5END_HEADERS、PADDED服務(wù)端預(yù)告將推送資源PING0x6ACK心跳與往返時(shí)延測(cè)量GOAWAY0x7無服務(wù)端優(yōu)雅關(guān)閉連接WINDOW_UPDATE0x8無流量控制窗口增量CONTINUATION0x9END_HEADERS頭塊太長(zhǎng)時(shí)繼續(xù)傳輸優(yōu)先級(jí)機(jī)制在工程實(shí)踐中用得很少很多實(shí)現(xiàn)直接忽略 weight所以 PRIORITY 幀更多是“規(guī)范里有用的時(shí)候要兼容”。PUSH_PROMISE 則因?yàn)榘踩詥栴}主流站點(diǎn)默認(rèn)ENABLE_PUSH0直接關(guān)掉但在協(xié)議實(shí)現(xiàn)層面必須能解析它否則遇到老客戶端還是會(huì)被打懵。2.3 用一組真實(shí)字節(jié)流驗(yàn)證幀結(jié)構(gòu)空說沒用我直接給一組線上能看到的字節(jié)。比如一個(gè)標(biāo)準(zhǔn)的 SETTINGS 幀包含三個(gè)參數(shù)HEADER_TABLE_SIZE4096、ENABLE_PUSH0、MAX_CONCURRENT_STREAMS128它在線上是下面這一串000012 04 00 00000000 000100001000 000200000000 000300000080第一行是幀頭000012是 length十進(jìn)制 1804是 SETTINGS00是 flags沒有 ACK00000000是 stream id 0連接級(jí)幀必須用 0。第二行是 18 字節(jié) payload每個(gè)參數(shù)固定 6 字節(jié)2 字節(jié)參數(shù) id 4 字節(jié)值所以 3 個(gè)參數(shù)正好 18 字節(jié)。把這串完整的字節(jié)丟進(jìn) hyperframe 的FrameBuffer它會(huì)告訴我們應(yīng)該看到什么import binascii from hyperframe.frame import FrameBuffer raw binascii.unhexlify( 000012040000000000 000100001000000200000000000300000080 ) fb FrameBuffer(max_frame_size65536) fb.add_data(raw) while fb.has_available_data(): frame fb.next_frame() print(frame.__class__.__name__, frame.stream_id, frame.flags, frame.settings)輸出是SettingsFrame 0 set() {1: 4096, 2: 0, 3: 128}。這就對(duì)上了。你只要會(huì)拆這么一幀后面所有幀類型都是一樣的套路無非是 payload 語(yǔ)義不同。3. hyperframe 實(shí)操?gòu)臉?gòu)造握手包到流式解析3.1 環(huán)境準(zhǔn)備安裝 hyperframe 與 hpack實(shí)操之前先把依賴裝好pip install hyperframe hpackhyperframe 的定位就是“輕”它不依賴任何第三方庫(kù)Python 3.6 就能跑。hpack 不是它的依賴但實(shí)際操作中HeadersFrame.data里裝的是 HPACK 壓縮后的頭塊你不會(huì)想手工壓縮所以順手裝上后面構(gòu)造 HEADERS 幀會(huì)用到。提示hyperframe 只有幀編解碼能力沒有 socket 封裝。這意味著你自己負(fù)責(zé)從 TCP 讀字節(jié)、向 TCP 寫字節(jié)連接管理、超時(shí)、重試統(tǒng)統(tǒng)不管。第一次用可能會(huì)覺得“怎么這么簡(jiǎn)陋”但這恰恰是它擅長(zhǎng)的——把一件事做到極致別的交給上層。3.2 用代碼構(gòu)造一次 HTTP/2 連接握手HTTP/2 連接建立第一步是客戶端發(fā)送 24 字節(jié)的 Connection Preface緊接著是一個(gè) SETTINGS 幀。Preface 是固定的 ASCII 字符串PREFACE bPRI * HTTP/2.0\r\n\r\nSM\r\n\r\n assert len(PREFACE) 24然后用 hyperframe 構(gòu)造 SETTINGS 幀from hyperframe.frame import SettingsFrame client_settings SettingsFrame(0) client_settings.settings[SettingsFrame.HEADER_TABLE_SIZE] 4096 client_settings.settings[SettingsFrame.ENABLE_PUSH] 0 client_settings.settings[SettingsFrame.MAX_CONCURRENT_STREAMS] 128 first_bytes PREFACE client_settings.serialize() print(len(first_bytes)) # 24 27 51SettingsFrame(0)里的 0 是 stream idSETTINGS 是連接級(jí)幀必須傳 0。serialize()返回的就是可以直接扔進(jìn) TCP 的完整字節(jié)。這里有個(gè)小細(xì)節(jié)settings是個(gè)普通 dict插入順序會(huì)影響線上字節(jié)順序但規(guī)范明確說 SETTINGS 參數(shù)順序無關(guān)緊要解析端不關(guān)心所以不用刻意排序。握手還沒完。連接建立后客戶端要發(fā)請(qǐng)求第一個(gè)請(qǐng)求是 odd stream id1 上的 HEADERS 幀。頭塊需要 hpack 壓縮from hyperframe.frame import HeadersFrame from hpack import Encoder encoder Encoder() header_block encoder.encode([ (:method, GET), (:path, /), (:scheme, https), (:authority, example.com), (accept, text/html), ]) hf HeadersFrame(stream_id1) hf.data header_block hf.flags.add(END_HEADERS) wire hf.serialize() print(len(wire), wire.hex())hf.flags.add(END_HEADERS)是在告訴對(duì)端這個(gè)頭塊已經(jīng)完整后面沒有 CONTINUATION 了。如果頭塊太大超過了對(duì)端聲明的MAX_HEADER_LIST_SIZE你需要拆成多個(gè) HEADERS/CONTINUATION 分片傳這是另一個(gè)話題后面排障部分會(huì)說。3.3 FrameBuffer 流式解析解決半包與粘包TCP 是字節(jié)流沒有“消息邊界”。你從 socket 讀到的數(shù)據(jù)可能只包含半個(gè)幀也可能一次包含好幾個(gè)幀。FrameBuffer就是為這個(gè)場(chǎng)景設(shè)計(jì)的from hyperframe.frame import FrameBuffer fb FrameBuffer(max_frame_size65536) def feed(data: bytes) - None: fb.add_data(data) while fb.has_available_data(): frame fb.next_frame() print( fstream{frame.stream_id:5} ftype{frame.__class__.__name__:16} fflags{sorted(frame.flags)} fpayload{len(frame.serialize()) - 9} bytes )用法就是每收到一塊 socket 數(shù)據(jù)add_data塞進(jìn)去然后循環(huán)next_frame往外取。內(nèi)部它會(huì)維護(hù)一個(gè)緩沖區(qū)攢夠一整幀才給next_frame沒攢夠就返回 False。payload 長(zhǎng)度我用len(frame.serialize()) - 9算因?yàn)樾蛄谢鰜砭褪菐^payload減掉固定 9 字節(jié)幀頭就是 payload 大小。這個(gè)緩沖邏輯是所有 HTTP/2 實(shí)現(xiàn)的基礎(chǔ)h2 連接層內(nèi)部也就是這么用的。理解了 FrameBuffer你就理解了為什么網(wǎng)絡(luò)編程里“自己拼 buffer”是個(gè)高頻需求。3.4 寫一個(gè)幀查看小工具把上面的feed函數(shù)擴(kuò)展一下就能做一個(gè)最簡(jiǎn)單的離線幀查看器用來分析抓包文件#!/usr/bin/env python3 usage: python inspect_frames.py capture.bin import sys from hyperframe.frame import FrameBuffer fb FrameBuffer(max_frame_size65536) def feed(data: bytes) - None: fb.add_data(data) while fb.has_available_data(): f fb.next_frame() print( fstream{f.stream_id:5} ftype{f.__class__.__name__:16} fflags{sorted(f.flags)} fpayload{len(f.serialize()) - 9} bytes ) def main() - None: with open(sys.argv[1], rb) as fh: while chunk : fh.read(4096): feed(chunk) if __name__ __main__: main()抓包可以用tcpdump -i lo -w capture.bin tcp port 8443也可以用nghttp -v https://example.com這種現(xiàn)成工具做幀級(jí)輸出對(duì)照。自己寫一遍的好處是你可以按需過濾只打印 GOAWAY、統(tǒng)計(jì)幀類型分布、算平均 payload 大小這些邏輯腳本化之后會(huì)變成排障利器。排障提醒解析前要確認(rèn)字節(jié)流是從幀邊界開始對(duì)齊的。如果從任意中間字節(jié)開始解析第一幀頭必然錯(cuò)位后面全是垃圾。抓包時(shí)如果連上了 TCP 中間狀態(tài)先找到 Preface 或者 SETTINGS 幀頭對(duì)齊。4. 實(shí)戰(zhàn)中的坑幀級(jí)排障記錄4.1 未知幀類型擴(kuò)展幀與兼容性問題HTTP/2 規(guī)范允許實(shí)現(xiàn)定義自己的擴(kuò)展幀類型只要 type 值不沖突。FrameBuffer 遇到不認(rèn)識(shí)的類型不會(huì)拋異常而是給你一個(gè)UnknownFrame把原始 payload 原樣包在里面。這個(gè)設(shè)計(jì)很聰明未知幀按“不影響狀態(tài)”處理符合規(guī)范的兼容要求。我在實(shí)踐中遇到過一類坑某個(gè)內(nèi)網(wǎng)組件用自定義擴(kuò)展幀做心跳探活抓包軟件和常規(guī)庫(kù)都不認(rèn)識(shí)Wireshark 里只顯示“Unknown frame”。當(dāng)時(shí)用 hyperframe 解析后看到是UnknownFrame再把 payload 按十六進(jìn)制打印才看出端倪。所以排障時(shí)別看到 Unknown 就跳過payload 里往往帶著實(shí)現(xiàn)方的“私貨”。4.2 幀超長(zhǎng)與流 id 奇偶最容易翻車的兩個(gè)規(guī)則幀超長(zhǎng)是高頻錯(cuò)誤。RFC 7540 規(guī)定默認(rèn)最大幀大小是 16384 字節(jié)但接收方必須有能力處理至少這個(gè)值發(fā)送方只有在收到對(duì)端 SETTINGS 里MAX_FRAME_SIZE的聲明后才能發(fā)送更大的幀。你在FrameBuffer(max_frame_size65536)里設(shè)的 65536 只是本地接收上限不代表對(duì)端也愿意收這么大的數(shù)據(jù)幀。構(gòu)造測(cè)試幀時(shí)如果 payload 超過 16384而對(duì)方又沒聲明過更大的MAX_FRAME_SIZE那對(duì)方可以直接判定為 FRAME_SIZE_ERROR 并斷流。流 id 的奇偶規(guī)則也容易忘客戶端主動(dòng)發(fā)起的流必須是奇數(shù)1、3、5...服務(wù)端推送的流必須是偶數(shù)2、4、6...。也就是說一個(gè)實(shí)現(xiàn)必須嚴(yán)格遵守自己角色的奇偶規(guī)則。SETTINGS、PING、GOAWAY 這類連接級(jí)幀只能出現(xiàn)在 stream 0你往 stream 0 上發(fā) HEADERS 或者 DATA對(duì)方會(huì)直接 PROTOCOL_ERROR。4.3 CONTINUATION、SETTINGS ACK 與窗口更新的細(xì)節(jié)CONTINUATION 的拼圖規(guī)則HEADERS 或 PUSH_PROMISE 如果沒帶END_HEADERSflag后面必須緊跟著 CONTINUATION 幀中間不允許插入任何其他類型的幀包括 DATA 和 SETTINGS。我之前寫過一個(gè)半吊子實(shí)現(xiàn)頭塊大時(shí)拆了兩片中間夾了個(gè) PING結(jié)果服務(wù)端老實(shí)不客氣地送了 RST_STREAM。這個(gè)錯(cuò)誤抓包時(shí)極其隱蔽因?yàn)?PING 本身合法但位置非法。SETTINGS ACK 不能帶 payload收到對(duì)端 SETTINGS 后你要回一個(gè)帶 ACK flag 的 SETTINGS 幀作為確認(rèn)。這個(gè) ACK 幀的 payload 必須是空的如果往里面塞了任何參數(shù)屬于 PROTOCOL_ERROR。反過來不帶 ACK 的 SETTINGS 幀又必須帶至少一個(gè)參數(shù)空 payload 的非 ACK SETTINGS 也是錯(cuò)的。WINDOW_UPDATE 增量不能為 0frame payload 里那個(gè)遞增的窗口值范圍是 1 到 2^31-1傳 0 會(huì)觸發(fā)流級(jí)或連接級(jí)的流控錯(cuò)誤。連接級(jí)窗口和流級(jí)窗口是兩套獨(dú)立的計(jì)數(shù)調(diào)流控時(shí)別把兩個(gè)值搞混。4.4 一個(gè)真實(shí)案例連接池 GOAWAY 風(fēng)暴去年做網(wǎng)關(guān)壓測(cè)遇到一個(gè)詭異現(xiàn)象服務(wù)端日志里全是 GOAWAY客戶端重試率從 0.2% 一路爬到 8%。抓包結(jié)果如下from hyperframe.frame import FrameBuffer, GoAwayFrame, ErrorCode # 假設(shè)這是抓包解出來的一個(gè) GOAWAY 幀 goaway GoAwayFrame(0) goaway.last_stream_id 3 goaway.error_code ErrorCode.NO_ERROR # 等價(jià)于傳 0 print(goaway.serialize().hex())表面看很正常error_code 是 0NO_ERRORlast_stream_id 是 3這是優(yōu)雅關(guān)閉不是崩潰。但頻率高得離譜每幾百個(gè)請(qǐng)求就來一次。深入排查后發(fā)現(xiàn)問題不在幀本身而在連接語(yǔ)義上游負(fù)載均衡配了空閑超時(shí)空閑連接會(huì)被它主動(dòng)發(fā) GOAWAY 回收而客戶端的 h2 連接池沒有正確理解last_stream_id的含義繼續(xù)在舊連接上開新流。服務(wù)端收到已聲明關(guān)閉的連接上的新流請(qǐng)求自然一路拒絕。修復(fù)方案是客戶端在收到 GOAWAY 后把所有 stream id 大于last_stream_id的請(qǐng)求視為“當(dāng)前連接不可再用”引導(dǎo)到新建連接同時(shí)連接池在取連接前判斷一下是否已經(jīng)收過 GOAWAY。這個(gè)案例給我的教訓(xùn)是排幀級(jí)問題不能只看幀本身還要看幀之間的狀態(tài)關(guān)系。GOAWAY 不是錯(cuò)誤它是一次“通知”通知之后該干什么才是協(xié)議實(shí)現(xiàn)真正考功夫的地方。5. 擴(kuò)展玩法和一點(diǎn)個(gè)人體會(huì)5.1 用 hyperframe 做服務(wù)端邊界行為驗(yàn)證在自己掌控的測(cè)試環(huán)境里用 hyperframe 構(gòu)造一些邊界情況的幀可以高效驗(yàn)證服務(wù)端實(shí)現(xiàn)是否規(guī)范。比如發(fā)一個(gè)window_increment0的 WINDOW_UPDATE看目標(biāo)是回 FLOW_CONTROL_ERROR 還是直接忽略發(fā)一個(gè) payload 超長(zhǎng)的 DATA 幀看是否觸發(fā) FRAME_SIZE_ERROR發(fā)一個(gè)不帶END_HEADERS的 HEADERS 后面卻跟上 DATA 幀觀察對(duì)方能否正確識(shí)別協(xié)議錯(cuò)誤。這類驗(yàn)證腳本寫起來非??煲?yàn)?hyperframe 的構(gòu)造 API 足夠接近協(xié)議本身from hyperframe.frame import WindowUpdateFrame bad WindowUpdateFrame(stream_id1) bad.window_increment 0 # 故意構(gòu)造非法值 wire bad.serialize()注意這類測(cè)試要在自己的環(huán)境做目的是驗(yàn)證兼容性和魯棒性不是拿公網(wǎng)服務(wù)當(dāng)靶子。規(guī)范的邊界行為測(cè)試是協(xié)議開發(fā)生命周期里正常的一部分和壓測(cè)、故障演練是同類事情。5.2 幀級(jí)流量觀察從抓包到性能洞察除了排障幀分布本身就很有信息量。我用 FrameBuffer 寫過一個(gè)簡(jiǎn)單的統(tǒng)計(jì)腳本對(duì)長(zhǎng)連接上的所有幀按類型計(jì)數(shù)然后看 payload 長(zhǎng)度分布。幾次觀察下來有幾個(gè)穩(wěn)定規(guī)律body 密集的接口DATA 幀占絕大多數(shù)幀平均 payload 越大傳輸效率越高如果大量 DATA 幀只有幾百字節(jié)說明應(yīng)用層寫入碎片化可以考慮合并寫。頭大的場(chǎng)景比如 Cookie 特別多HEADERS CONTINUATION 幀數(shù)量會(huì)明顯上升這時(shí)候該優(yōu)化的是 HPACK 壓縮效率和頭精簡(jiǎn)而不是 TCP 參數(shù)。幀頭固定 9 字節(jié)的代價(jià)在“小幀”場(chǎng)景會(huì)被放大1 萬字節(jié)的 body 切成 10 個(gè) 1000 字節(jié)的幀幀頭開銷接近 1%切成 16KB 的大幀后開銷基本可以忽略。時(shí)間序列上如果觀察到 WINDOW_UPDATE 的發(fā)送頻率和 DATA 幀大小不匹配往往能發(fā)現(xiàn)流控窗口配置過小的問題。這類分析用現(xiàn)成抓包工具也能做但寫腳本的好處是可以長(zhǎng)期跑、出報(bào)表、接告警把“感覺慢”變成“數(shù)據(jù)說話”。5.3 最后一點(diǎn)實(shí)際操作體會(huì)回頭說點(diǎn)個(gè)人感受。我最早學(xué) HTTP/2 是硬啃規(guī)范說實(shí)話效率很低幀類型記了又忘。后來?yè)Q了個(gè)土辦法用 hyperframe 把九種幀輪著構(gòu)造一遍、序列化、再解析回來對(duì)著結(jié)果看規(guī)范里的字段說明一下就通了。這個(gè)庫(kù)的價(jià)值不在于它多復(fù)雜而在于它把協(xié)議規(guī)范翻譯成了你隨手能擺弄的 Python 對(duì)象邊界情況、flag 組合、payload 格式全都能用代碼驗(yàn)證。踩過幾次 GOAWAY 和 CONTINUATION 的坑之后我的體會(huì)是幀層的問題通常不難定位難的是把“字節(jié)層面的現(xiàn)象”映射到“連接狀態(tài)的因果鏈”上。工具只是幫你看到現(xiàn)象真正解決問題靠的是對(duì)協(xié)議層里每一比特的敬畏。如果你也想深入這一塊建議從今天開始拿一個(gè)真實(shí)的 HTTP/2 抓包文件用上面的腳本把它完整拆一遍。拆過十幀你再看 h2 源碼會(huì)感覺每一行都透亮。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月天激情小说| 饮料下药迷倒漂亮女同事强干| 荫道BBWBBB高潮潮喷| 色婷婷伦理| 婷婷中文字幕网| 色婷婷99| 大香蕉天堂| 色五月激情五月丁香五月婷婷啪啪综合 | 这里只有国产精品在线| 婷婷丁香97| 亚洲情综合五月天| 天天日天天舔| www.婷婷五月天.com| 亚洲V国产V欧美V久久久久久| 丁香五月天综合| 精品国产va久久久久| 色久一| 99热免费| 久久9视频| 99热在线这里| 成人精品亚洲性爱| 无码人妻一区| 九九99精品视频在线观看| 日韩一区二区在线播放| 九九热这里只有精品7| 日本97在线看片| 色色色综合网| 欧美在线| 熟女人妻视频| 色亭亭影园| 色人久久| 国产精产国品一二三在观看| 丁香五月婷婷激情四射深爱激情| 欧美成人AAA片一区国产精品 | 午夜无码精品色综合久久| 色婷婷a| 丁香五月激情啪啪综合| 色欧洲| 天堂婷婷丁香六月网| 97色在线| 激情五月综合六月丁香婷婷狠狠干| 丁香婷婷91在线观看视频| 99热超碰人| 欧美顶级少妇做爰HD| 久久综合性| 午夜爱爱网站| 日韩无码色色| 久久精品99国产精品日本| 五月丁香黄色视频| 国产这里只有精品| 99精品丁香五月| 五月天激情影院| 91九色国产| 99国产精品久久久久久久久久久| 99日在线视频| 伊人在线视频| 开心色色五月天综合| 天天日夜夜爽| 欧美碰碰碰| 欧美日韩精品一区二区三区钱| 亚洲欧美日韩VIP| 丰满少妇猛烈A片免费看观看| AV人人操| 丁香五月瑟瑟| 成人 视频免费观看网站| 久久看婷婷| 五月婷婷啪啪啪| 超碰9| www.激情| 99久久喉9| 色狠狠婷婷| 婷婷五月激情小说| 爱射综合| 伍月婷婷六月丁香| 噜噜色五月| 婷婷人人操| 中文字幕在线免费| 色噜噜丁香| 丁香狠狠色婷婷久久无码视频| 久久五月婷天天干| 欧美在线看| 婷婷综合网| 天天操夜夜啊| 深爱综合网| 婷婷五月激情欧美| 婷婷六月天国产综合| 青青艹b| 久久99久久99精品免观看粉| 亚洲 小说 欧美 激情 另类| 五月天婷婷免费| 97人人超| 97人妻碰碰碰久久香蕉| 五月丁香色婷| 婷婷丁香人妻天天爽| 久草热8精品视频在线观看| 激情五月www| 五月天色区| 婷婷四色五月| 五月丁香婷婷狠狠操| 国产日韩av片| 色五月婷婷综合| 可以看的AV| 国外亚洲成AV人片在线观看| 色情五月综合婷婷| 中文av网| 欲求不满的人妻| 超碰在线国产| 五月天丁香久久| 极品人妻XXXXOOOO| 天天摸天天舔在线视频| 97色女人在线| 久久99精品久久久久久青青AR| 中文字幕不卡+婷婷五月| 久久综合热17c| 色五月大| 涩 五月 婷婷 狠狠| 五月丁香婷婷综合| 丁香伊人网| 欧美三级巜人妻互换| 综合激情肏逼网| 天天拍天天做视频| 五月天激情网图片| 六月丁香色色| 91性交在线播放| 丁香激情五月| 色五月六月| 天天做天天爱天天爽| 香蕉99网| 99爱免费在线视频| 五月婷婷丁香| wwW天天干| 日本婷婷五月天| 51精品国自产在线| 操人妻90p| 色综合中文| 大香焦啪啪啪| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 99精品综合在线| 五月丁香五月丁香| 色吧综合网| 五月天婷婷色情| 五月激情婷婷播播网| 九九五月天| 色爱综合五月| 五月激情婷婷在线| 1囯产午夜仑鲁鲁| 久久婷婷五月综合色播| 大地9中文在线观看免费高清| 一本久道综合99| 日韩AV大全| 亚洲偷| 五月婷婷深深的爱| 99在线精品免费视频| 偷拍九九五月丁香婷婷| 激情综合五月婷婷| 日韩性视频| 六月丁香啪| 五月天精品综合在线| 五月天婷婷激情小说电影| 99色视| 热99热9| 伊人激情AV一区二区三区| 亚洲AV网站| 99熟女啪啪视频| 九月大香蕉| 天天婷婷色六月| 97久久综合网| 色播五月婷婷| 第五婷婷伊人丁香色| 婷婷成年人免费视频| 婷五月天影院| 亚洲成人婷婷| 91狠狠综合网| 狠狠色成人影片| 丁香久久| 色五月激情五月| 五月丁香色色综合| 久久婷婷综合五月| 色狠狠婷婷| 99re在线免费视频| 激情无码五月天| 五月天狠狠| 婷婷色五月噜噜| 久久婷婷亚洲| 丁香婷婷色五月合集| 国产在线激情视频| 丁香五月Av| 光棍影院日韩精品| 99九九视频| 激情com| 亚洲乱码日产精品BD| 狠狠999| 琪琪色网在线| 亚洲熟妇无码乱子AV电影| 六月丁香婷婷色狠狠久久| 99免费热视频在线| 小视频在线亚洲| 超碰在线免费观看日韩| 天天干一干| 无码人妻激情| 成人免费黄色短视频| 久久九九在线视频| 中文字幕AV在线| 丁香五月在线播放| 天天干天天射色综合| 久久五月天免费网站| 五月色婷婷亚洲 | 性色人人爽| 99色在线观看| AAAA网站| 99久久国产成人精品| 天天日天天久久青青| 天天天天天天天操| 色婷婷免费观看| 人妻少妇色综合| 综合视频五月| 99在线热| 91九色 熟| 五月天婷婷AV| 亚洲99手机免费看视频| 免费啪啪亚州视频| 久久R激情| 激情99| 激情五月丁香综合蜜桃| 亚洲爱婷婷| 99热久| 丁香色情五月综合网站| 六月婷婷色综合| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 伊人影院久久网| 97在线综合| 一区二区你懂的| 97久久超碰| 五月丁香成人| 97福利视频| 超碰69天堂| 亚洲中文字幕AV| 欧美天天干天天草| www.狠狠狠狠| 久久亚洲婷婷| 狠狠色丁香久久婷婷综合五月| 97香蕉碰碰人妻国产欧美| 日本色色视频| 丁香欧美| 色婷婷视频| 激情图片婷婷丁香五月| 婷婷丁香色五月天| 五月天激情国产综合婷婷婷| 我爱大香蕉| 婷婷五月天成人网站| 久热成人| 玖玖婷婷五月| 国产精品岛国片在线观看免费| 99精品网| 久机视频这只有精品| 四色五月婷婷在线观看| 婷婷播播五月天| 五月色婷| 色婷网| 婷婷五月18永久免费网站| 老美AA片| 99久久综合精品五月天| 久久ER视频com| 久9热在线视频| 亚洲精品中文字幕成人片| 超碰在线观看三级片| 五月丁香综合啪啪| 超碰人妻在线| 婷婷伊人网| 无码色色色| 五月丁香六月婷婷手机无线| 丁香婷停五月激情综合深爱| 亚洲第一色色色| 综合AV在线| 伊人久久大香天蕉亚洲特级| 成人在线免费网址| 熟女国产在线一区二区三区四区| 色啪久 | 久久五月婷综合| 婷婷久久久| 97操碰| 色婷六月| 91人人网| 五月丁香五月综合欧美| 五月丁香六月激情在线| 看片视频在线免费日产在线看| 99精品一二三四视频| 国产欧洲欧洲精品久久| 99精品视频在线观看免费| 日本九九视频| 最新色色五月天| 日本婷久久| 色婷婷情片| aaa9区免费在线观看| 色婷婷在线视频观看| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 亚洲婷婷五月天| 丁香六月婷婷色XXXXX| 久久人人九九| 亭亭玉月丁香| 日韩精品视频中文字幕| 五月婷婷婷色| 亚洲午夜一区二区| 婷婷久久久| 婷婷色在线| 亚洲欧洲另类| xx综合网| 丁香婷婷综合激情五月色| 婷婷丁香五月综合激情小说| 91avse| 91九色熟女| caop在线视频| 丁香五月日本| 伊人五月天在线| A久久| 久久色五月| 狠狠色色| www免费在线视频| 婷婷干| 超碰99热在线观看| 激情五月丁香五月| α久久| 99这里是精品| 亚洲黄色精品| 天天射影院| 91人妻九色大屁股| AAA久久久AAA久久久AAA| 亚洲在线综合| 五月的婷婷六月丁香| 久热精品视频| 亚洲综合成人网| 一起草AV| 97电影99热| 91蜜桃婷婷狠狠久久综合9色| 欧美99热| 天天操天天操天天操天天操天天操 | 99热最新国内| 五月婷婷色| 91九色白丝| 人妻激情在线| 99精品在线下载| 久久a热| www.99视频| 清纯唯美 激情四射| 亚洲色图在线视频| 伍月激情天| 色噜噜狠狠一区二区三区| 超碰九九热| 人妻丰满精品一区二区A片| 97人人操人| 激情九月婷婷| 丁香五月天成人网站| 五月激情六月综合| 九草性爱| 另类图片婷婷五月天| 影音先锋91| 少妇AB又爽又紧无码网站| 激情久久月| 99热这是里只有精品| 亚洲操b| 91中文在线| 超碰国产AV| 丁香婷婷偷拍| 色情婷婷五月天| 色yeye色综合| 伊人婷婷五月| 亚洲色综合| 夜夜 操无码| 丁香五月天91| 婷婷区日本| 9久久婷婷国产综合精品性色| 免费在线观看AV网站| 9|无码久久久久久| 五月天成人在线视频网站| 国产AV一区二区三区最新精品| 日韩超碰在线| 色色色色色色网站| 丁香五月激情啪啪啪| 欧美五月丁香啪啪响视频| 色99在线观看| 大香蕉天堂色| 夜丁香五月婷婷| 国产精品电影| 亚洲综合在线视频| 粉嫩av懂色av蜜臀av熟妇| av五月天婷婷丁香| 天天拍久久| 日日噜噜夜夜狠狠久久丁香六月| 网色99| 欧洲色| 亚洲岛国电影| 激情婷婷五月基地| 97人碰人操| 婷婷大美在线| 国色天香成人网| 色色色综合网| 激情亚洲色图片丁香综合| 三级黄网站| 久婷婷五月综合欧美| 激情五月天色婷婷| 亚洲不卡123| 亚洲男人的天堂婷婷色五月| 青草青草视频2免费观看| 五月丁香久久综合| 人妻啪啪啪| 色九网| 91精品婷婷国产综合久久| 狠狠九九婷婷韩| jiqingliuyuetian| 亚洲综合成人网站| 激情小说在线视频| 无码yw| 日本3级片一区2区| 五月婷婷六月丁香综合| 91九色精品女同系列| 91久久九久久九久久九久久九久久 | 久久久久久久久久91| 草综合14| 99在线公开视频| 久操激情| 秋霞免费三级片| 色婷婷亚洲精品天天综| 欧美群妇大交乱婬网| 俺去也综合| 91久久婷婷| 婷婷色五月激情| 99热18| 丁香五月天啪啪| 99精品热视频只有精品10| 色情婷婷五月天| 丁香五月婷婷婷婷欧美综合| 欧洲MV日韩MV国产| 色丁香影院| 99资源人人| 99热这里只有精品免费| 亚洲五月激情| 五月婷在线观看| 26uuu色噜噜精品一区| 在线观看国产高清视频免费网站 | 婷婷五月天激情小说| 五月天六月天| 久久日本wwww色| 色偷偷色婷婷| 久久久久久天天日天天爱| 五月天婷婷成人网| 久久机热/这里只有精品| 久9精品| 激情综合婷婷| 久久婷婷欧美| 庭庭久久内射| 在线观看国产高清视频免费网站| 丁香五月开心婷婷| 欧美 日韩 成人在线| 操骚货在线| 俺也去综合| 色婷婷色综合激情91| 色五月成人| 丁香五月日啪| 久久婷视频| 色婷婷基地| 色五开心五月五月深深爱| 3p久久| 色激情五月天| 日本成人噜噜噜| 91超级碰碰碰| 色五月噜噜| 色啪影院| 九九热国产| 成人av播放| 五月婷婷久久大片| 九九99久久| 五月婷婷手机在线| 无码se| 91熟妇大香蕉| 天天日天天色| 日韩色五月| 天天在线久久综合 | 综合五月婷婷| 婷婷五月欧美综合| 激情婷婷在线中文字幕| 五月激情综合婷婷| 五月丁香| 婷婷五月电影院| 色五月婷激情| 色婷婷丁香六月| 99精品视频推荐| 精品国产一区二区三区四区阿崩| 色婷婷大香蕉| 激情图片五月天| 五月婷婷视频啪啪美女| 91操人视频| 天天综合网色欲香| 综合欧美五月婷婷| 五月天伊人| 丁香久久综合| 五月天另类视频| 丁香五月AV综合激情| 人妻视频在线| 色婷婷最新域名| 日日夜夜天天| 久久99视频| 在线天堂9| 天天操夜夜橾| 婷婷五月丁香久久| 日韩欧美四五区| 丁香五月久久| 五月丁香免费视频| 日本一级特黄大片AAAAA级| 91呦呦呦| 99热传媒| 五月天久久色| 国产精产国品一二三在观看| 99热这里只有精品9| 久热99热| 超碰97免费在线| 熟女激情五月天 | 婷婷激情五月综合丁香社| 激情五月图| 五月婷婷AV| 婷婷丁香五月91| 97碰碰人人视频| AV片在线观看| 久久38视频| 99热爆在线| 国产人妻777人伦精品HD| 99色| 99爱视频| 99噜噜噜在线播放| 超碰人妻公开在线| 97成人操| 五月色激情综合网| 人人干人人操外国| 久9精品| www.97干视频| 亭亭色网| 九月激情网| 久久伊人五月天| 99热9| 大香蕉啪啪啪| 色之综合网| 色噜噜伊人| 播五月婷婷开心| 免费99情趣网视频| 西瓜美女a片| 丁香婷婷色五月天| 色色哒五月婷婷六月丁香| 中文字幕色色| 色婷婷精品视频| AV成人在线播放| 综合另类视频| 激情综合婷婷| 99在线精品免费视频| 亚洲中文字幕在线观看| 欧美性猛交XXXX乱大交极品| 日日夜夜九九| 毛v一区二区视频| 婷婷丁香五月天熟女丝袜| 日笨久久网| 丁香五月玖玖| 99热加勒比| 国产97色在线| peg 2区三区四区的| 密臀久久| 久久婷婷五月综合色和| 五月 成人 婷婷| 深夜男女福利刺激影院一区| 嫩BBB搡BBBB榛BBBB| 无码激情AAAAA片-区区| 色婷婷色综合| 久热大香蕉| 无码地址| 激情五月天色爱| 综合婷婷五月天| www久久艹| 国产激情久久久| 成人在线网址| 99视频日韩| 美欧日韩国产成人在战| 99re66热这里只有精品| 激情五月综合色婷婷| 26uuu另类亚洲欧美日本一| 婷婷情爱五月天6| 婷婷色情网| 天天日日| 久久久27操| 日韩综合久| 久久久妻人人人| 丁香五月婷婷激情123| 中文字幕 中文字幕明步| 婷婷性爱网| 国产精品国产成人国产三级| 青青草网武则天| 久久草大香蕉| 五月婷婷基地| 五月丁香色综合| 超碰69天堂| 人妻AV在线| 狠狠久综合| 五月婷婷视频| 国产毛片精品一区二区色欲黄A片| 91日在线视频| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 他改变了拜占庭| www.99热. com这里只有精品| 色色色婷婷| 99日本精品视频热| 色婷婷成人久久| 久久五月天激情美女| 激情五月,色播五月| 婷婷精品免费久久| 九 九九九AV| 久这里只有精品| 五月色亚洲| 少妇人妻丰满做爰XXX| 成人网在线视频| 日韩五月天婷婷| 久操无码| 婷婷五月综合色小姐小说| 五月婷婷在线视频免费观看| 色婷婷激情| 激情内射人妻1区2区3区| 超碰成人电影| 天天天干夜夜夜操| 五月天啪啪网| 天天综合天天做天天综合| WWW免费视频碰碰碰碰| 国产jd1024基地手机看国产| 六月婷婷深深爱| 婷婷综合精品| 九九热在线视频观看免费10| 丁香激情六月天婷婷| www.五月天婷婷| 五月婷婷激情日本| www.五月天激情| 色情综合网| www色五月| 五月天婷婷色综合| AV在线二十六页| 色插综合网| 开心激情五月天网| 67194国产| 久久久久激情网| 婷婷六月色情| 色色五月天网站| 婷婷王月天影院| 91干婷婷| 婷婷五月天性| 色级停停| 久久66精品| 久久综合九色综合97婷婷| 欧美极品999| 五月丁香91| 国产在线黄色| 黄色五月婷婷| 色婷| 超碰成人免费| 欧洲亚洲免费视频9| 五月丁香好婷婷A片网| 久久五月天免费网站| 久久er99| 丁香狠狠操| 热99AV网站| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 九九黄色网| 噜综合| 婷婷丁香六月天| 天天爽爽日日做做| 另类天堂| 色婷婷色五月丁香| 99在线看视频| 精a品a| 亚洲色基地| 日日干日日| 丁香色综合| www.久久久久| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 人妻体体内射精一区二区 | 日本色色色| 色婷婷欧美在线| 午夜不卡久久精品无码免费| 亚洲一区二区无码蜜乳av| 操逼亚洲天堂| 色爱综合网| 久久久久久久97| 色噜噜狠狠色综合日日| 99这里只有精品在线| 五月婷婷爽爽爽| 欧美xx激情视频在线观看| 大香蕉丁香| 91AV婷婷| 伦乱美欧| 亚洲熟妇AV乱码在线观看| 婷激情五月| 亚洲久艹| 丁香五月婷婷基地| 大狠狠在线| 99色视| 91日本在线观看| 51XX午夜影福利| 人妻丰满精品一区二区A片| 99精品在线下载| 97超级操操| 91狠狠综合久久久| 天天天天做夜夜夜夜做| 探花搜索结果 - 黄上黄| 九九热99热| 森林影视大全,最好看的2019年视频| 成人AV播放| 91色婷婷综合久久中文字幕二区| 亚洲精品乱码久久久久久综合| 69热91天堂| 亚洲天堂大香蕉| 色青青五月| 免费成人中文字幕| 五月天婷婷久久视频| 婷婷色成人| 婷婷丁香花五月天| 色99综合色88| 国产成人av在线播放| 六月丁香婷婷尤物| 久久色五月| 精品人妻伦九区久久AAA片| 可以直接看的av| 综合五月丁香久久| 丁香 亚洲 久久| 五月婷婷色| 色在线99| 热久久视频99| 丁香五月婷婷六月婷婷| 婷婷五月六月丁香| 精品人人操| 色色色色色色色色色色色色色色,网站| 任你爽精品免费视频6| 婷婷成人五月天一区| 色婷婷综合综合网| 久9热在线免费观看| 丁香五月播播| 婷婷在线激情| 欧洲综合色| 久久久中文| 97在线/日本| 久久人妻熟女一区二区| 成人AV免费观看| 天天操夜夜爽歪歪| 亚洲激情99| 久热一本| 超碰无码318604| 婷婷狠狠综合网入口| 色色婷婷五月| 97视频.干com| se99视频| 成人九九视频| 亚洲久久视频| 天天插天天插天天操| 婷婷久久图片| 国产a视频| 色婷婷网大全在线| 91chinese在线| 婷婷99狠狠| 日本爆乳片手机在线播放| 人人摸人人干人人做| 五月丁香六月婷婷综合免| 婷婷的久久网站| 超碰在线观看成人视| AV亚洲在线| 怡红院AV亚洲一区二区三区H| 五月丁香婷婷综合| 激情五月天开心总和网| 甈你aaaaa| 91视屏在线观看com.wwwvv| 色色吧综合| 中文字幕不卡+婷婷五月| 99热在线观看99| 五月婷婷9| 五月丁香六月综合图| 综合欧美五月婷婷| 国产伦亲子伦亲子视频观看| 97碰碰碰免费公开在线视频| 激情丁香五月天| 天天干天天日天天操| 99热在线观看精品| 天天操天天操天天操天天操天天操天天操 | 婷婷中文字幕网| 亚洲自拍天堂| 伊人五月婷婷国产视频| 影音先锋91资源站| 欧美人人女女精品综合五月天| 影音先锋91资源站| 黄色一极大片| 亚洲成人高清在线| 久草 天堂| 天天插天天狠| 99热这里只有精品国产免费| 婷婷五月丁香在线观看| 五月婷婷色综图片| 色欲日日躁| 精品久久久久久久久久久久人妻| 狠狠色无码| 3www激情| 婷婷五月天无码| 五月天激情啪啪| 久久婷丁香五月| 亚洲男女激情| 99热这里| 婷婷亚洲在线| 婷婷激情四射五月天| 97色永久免费视频| 婷婷91| 五月六月丁香婷婷在线观看| 天天视频精品9| 9 99免费视频| 久久综合中文| 婷婷在线操| 欧美婷| www.天天日| 激情五月综合网最新| 伊人久久艹| 亚洲色无码A片一区二区麻豆| 啪啪视频99| 噜噜狠狠色综合久| 亚洲色色色色色色色色色| 思思久ren热| www.激情五月天.com| 五月婷婷婷自由综合| 草逼大片| 97人人射| 人与禽A片啪啪| 在线99精品| 日本色道视频网站| 99色在线观看| 欧美成人日韩| 五月天偷拍| 亚洲啪啪自拍| 天天爽在线视频| 五月丁香直播| 美国十月色婷婷在线观看| 综合网色| 丁香五月天成人| 日本天堂免费99| 婷婷五月 丁香六月| 亚洲色婷婷五月| 思思re99视频在线观看| 操操操B| 日本操碰碰| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 97五月天| 综合久久8| 久久中文人妻系列| 亚洲经典小视频| 开心激情网五月天| 99热黄| 婷婷 久综合| 激情小说视频图片| 狠狠干狠狠干| Caop在线| 色婷五月丁香久亚洲| 久久婷婷啪啪视频| 996热re视频精品视频这里| 91成人电影| 九九99精品视品| 五月婷婷六月丁香综合| www激情com| 婷婷五月在线视频| 久久五月婷婷丁香| 五月婷婷五月天天| 99久热这里只有精品| 激情综合丁香| 激情五月丁香色婷婷| 欧美日韩成人在线观看| 2050人人操免费工开爱 | 综合99久久| 97久久婷婷色| 性小说五月天| 成人欧美日韩| 五月激情综合性爱| 无码人妻一区二区三区免费九色| 成人短视频在线观看| 激情骚五月| 成人色五月天| 国产激情综合五月久久| 丁香五月婷婷激情中文| 五月天婷婷色播| 久久9视频| 日韩99视频| 99在线亚洲| 超碰成人黄色网| 99热99网| 国产亚洲在线观看| 九月婷婷综合网| 99热这里只有精品国产首页| 婷婷五月花| AV堂狠狠干| 色狠狠综合网| 99毛片| 丁香婷婷基地| 综久久久| 婷婷色情小说| AV成人在线网站| 婷婷综合成人五月天| 久久久婷| 久久伊人五月天| 婷婷色五月激情强奸四射| 国产小网站| 激情五月丁香综合网站| 婷婷五月欧美综合| 性小说五月天| 人妻丰满精品一区二区A片| 开心五月婷婷五月| 第四色五月天| 亚洲另类在线观看| 狠狠插狠狠操| 99热啪啪| 六月婷婷日| 婷婷六月天| 日韩砖区| 少妇大叫太大太粗太爽了A片| 青草青草久热这里只有精品| 69精品人人人人| 黄色片区子| 99综合免费视频| 亚洲精品国产成人AV在线| 久色网址| 色色五月天激情| 五月婷婷综合视频| 性爱网久久| 免费无码毛片一区二区A片| 五月婷六月综合在线观看| 色色婷婷五月| 五月四色色| 九九色网专区| 五月丁香免费看| 大香婷婷| 亚洲成人av在线播放| 欧美A A A A A| 九九精品视频在线观看| 伊人久热91| 欧美大香蕉视频| 日韩成人AV在线| 丁香五月AV| 婷婷五月天直播| 婷婷五月性感| 丁香六月久| 97色色婷婷五月天| 日韩五月丁香| 丁香五月另类色婷婷麻豆| 婷婷五月天视频| 色播播之激情五月婷婷| 刘玥精品一区| 五月丁香六月婷婷激情网| 7超碰自拍| 久久人妻精品| 丁香五月激情性色郤| 精品欧美一区二区三区久久久| 五月天另类小说久久小说网| 九伊人网| 五月天婷婷在线播放| 国产五月天激情小说| 天堂在线观看视频| 五月天激情国产综合婷婷婷| 欧美va视频| 中文字幕日产A片在线看| 久久激情五月网| 99视频网址| 生活片五区| www.精品99| 亚洲天堂AV综合网| 91丨九色丨熟女丰满| 久久五月丁香伊人青草| 亚洲综合五月天婷婷| 人妻视频在线| 精品色情一区二区三区四区| 九九九九九九热| 99久久99九九99九九九| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 六月丁香啪啪| 玖玖热视频| 天天弄天天爽| 99riAV成人在线视频| 五月丁香琪琪| 色五月婷婷视频| 婷婷情色五月天| 99热这里都是精品| 综合婷婷五月天| 婷婷六月综合基地| 99精品成人无码A片观看金桔| 五月丁香六月婷婷在线| 婷婷色在线| 人人操婷婷| 色五月天婷婷| 五月婷婷天天| 亚洲第一色色色| 五月天婷婷情色| 婷婷五月久久| 亚洲精品成人| 亚洲激情婷婷| 草美女在线观看视频在线播放| 精品九九网| 99色视频| 欧洲亚洲免费视频9 | 日日鲁鲁鲁夜夜爽爽狠狠视频97| 久热黄色| 日本五月视频| www.minyis.com【JT】实力收量可预付TG@LXSPSW8 | 996er在线观看| 91丨九色丨老农村| 熟女强人妻一区二区三区四区无| 婷婷九九| 激情五月天伊人影院| 五月停停直播| 色欲九区| 精品动漫 无码av| 色香蕉精品五夜婷| 亚洲中文字幕网| 狠狠干,狠狠操| 99热最新网址| 丁香五月色综合色播五月| 午夜丁香六月婷| 久久综合图片| 亚洲精品无人区| 婷婷五月天色色| 五月狠狠| 婷婷中文字暮| 色婷婷影音| 国产激情一区| 色爱综合网| 超碰九九热| 色色亚洲| 五月开心久久| 五月激情婷婷女| 日本九九热| 五月天六月丁香| 九九色色| 色综合com| 香蕉网久久| 色色色色色五月| 久操乱| 超碰在线50| 99热在线观看| 综合五月婷婷| 人人操AV| se99视频| 久久综合激情| 五月天久久网站| 思思热精品在线| 婷婷五月天第四色| 色综色五月天婷婷| 天天成人综合视频| 美女要搞搞天天搞搞搞网站| 2050人人操免费工开爱| 久碰婷婷视频| 婷婷欧美综合| 国产成人av在线| 久热AA| 大香蕉婷婷色| www狠狠| www.色五月.com| www.97碰碰com| enecarbon-materials.comWu染请涟系Bao护@wip1688 | Caoporn公开| 久久久香港| 精品无码片| 啪啪东京热| 激情99| 玖玖爱综合网| 性日本激情| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 乱精品一区字幕二区| 色一情一乱一伦一区二区三区| 熟妇内谢69XXXXXA片| 丁香六月天| 亚洲 在线 另类| 色综啪啪| 九九热99在线视频| 人人性久久| 丁香花五月天激情| 色婷婷色五月另类综合| 天天操夜夜夜拍拍拍| 五月天婷婷色播| 色五月第四色| 丁香色综合| 99精品热| 亚洲情综合五月天| 欧美偷偷操| 啪啪东京热| 超碰免费人人| 99热九九这里只有精品10| 青草热视频这里只有精品| 天天高潮夜夜爽| 99热成人| 日本va欧美va国产激情| 色五月激情五月| 亚洲182在线观看| 超碰在线综合| 婷婷五月av| 五月丁香婷婷激情在线| 色婷婷五月视频| 色99自拍| 日日日日日| 亚洲人人艹| 伊人激情综合网| 婷婷五六日| 亚洲激情五月| 丁香五月天激情| 日本色色影片| 丁香操逼| 色色吧综合| 内射丰满人妻| 婷婷天天婷婷天天澡| 色婷婷丁香五月天| 色婷丁香91| se婷97| 九九热AV| 美女激情婷婷| 色色狼人综合| 香蕉久久av一区二区三区 | 日本久热| 狠狠色婷婷丁香六月| 深爱五月婷婷| 丝袜大香蕉| 超碰啪啪网| 26UUU| 激情www| 国产激情视频在线观看| 激情五月天婷婷播播久久综合91| 天堂色婷婷| 99色1| 五月情四婷婷| 99色 | 五月天婷亚洲天综合网综合| 色婷婷色五月天| 色五月天丁香| 久久日婷婷| 激情丁香婷婷五月天| 狠狠色噜噜色狠狠狠综合久久成人波| 亚洲热综合| 久久久久久久11111111111| 91碰碰视频| 99爱在线视频观看| 激情婷婷六月天| 亚洲婷婷五月| 色五月六月婷婷| 色碰碰视频| 丁香伊人五月色婷婷五十路| 热的国产,热的综合,热的有码 | 婷婷五月天成人视频| WWW,五月天| 色色a| 狠狠一日| 亚洲五月天综合色| 色婷婷五月天久久| 国产精品国产| 五月婷婷 六月丁香| 色婷婷丁香五月| 99综合97| 久久人妻久久久久| 99久精品视频| 丁香久久激情俄| 99热精品在线播放观看| 久9热在线视频| 国产色99| A A色色| 美日韩成人| 色五月综合网| 久久五月天婷婷| 26uuu成人网| 国产寻花在线| av九九| 激情综合五| 亚洲碰碰碰| 婷婷丁香五月在线观看91| www.91有码.com| 99色在线视频| 五月婷婷99热| 亚洲天堂啪啪| 日本97在线| 深爱激情九九五月天 | 啪啪激情网| 激情熟女网| 99re热视频这里只精品| 五月天丁香久久综合 | www,黄色在线,con| 日日干五月天婷婷| 五月天综合在线| 色欲av伊人久久大香线蕉影院| 色99综合视频| 免费超碰在线观看| 亚洲另类婷婷五月综合| 99精品偷自拍| 亚洲在线激情婷婷五月| 久久9视频| 久久99激情| 五月婷婷丁香六月| 99热最新地址在线| 丁香六月婷婷| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 99精品热视频| 久久五月婷| 久久婷婷伊人| 丁香五月婷婷深爱综合激情| 色色色9| 久久er免费视频| 99精品视频网站| 激情四射五月天偷偷看婷婷| 亚洲天堂色色| 四色综合网| 婷婷五月在线视频| 夜夜操少妇| 日本强伦片中文字幕免费看| 99综合99| 亚洲黄色操逼| 深爱综合网| 大香蕉Av在线| 97热视频| 五月婷六月综合在线观看| 人人干人人看| 亚洲婷婷月丁香五月| 91无码一区人妻A片蜜| 国产夫妻操逼内射视频| 热91久| 亚洲99精品欧美一区| 丁香五月停停基地| 伊人婷婷大香蕉| 婷婷色激情网| 亚洲精品V天堂中文字幕| 色青五月天| 91热久| 久久久99久久| 99热成人精品| 99在线精品免费视频| 99热精品在线免费观看| 九九色播五月丁香| 99re热在线视频| 色综合久久88色综合天天人守婷| 8050一级网| 成人免费高清在线播放| 久久婷婷色色| 色爱综合网| 97丁香五月| 开心五月婷婷婷美女| 桃色五月天| 色综合色色色色色| 日韩精品成人在线| 国产 码在线成人网站| 深爱五月天 开心网| 久热伊人在91| 婷婷的99视频网站| 婷婷色播六月无码| 丁香六月av| 亚洲色网络| 五月天激情Av| 婷婷五月,偷窥偷拍网| WWW.婷婷| 天天色综合色色色色色。| 狠狠五月婷婷| 九热...av| 久色五月婷婷综合| 激情亭亭五月| 俺也去色| 色色色综合网| www.精品99| 九九视频在线观看视频在线播放69| 國語久久婷| 第四色26uuu| 婷婷丁香人妻天久久| 久久综合五月天激情小说网站 | 天天日夜夜|