亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

Python實現(xiàn)GBN可靠傳輸協(xié)議:滑動窗口與超時重傳實戰(zhàn)解析

Python實現(xiàn)GBN可靠傳輸協(xié)議:滑動窗口與超時重傳實戰(zhàn)解析 簡介這是一份計算機網(wǎng)絡(luò)課程實驗源碼基于Python模擬數(shù)據(jù)鏈路層的Go-Back-NGBN協(xié)議借助UDP套接字實現(xiàn)可靠文件傳輸。協(xié)議采用發(fā)送窗口滑動機制當(dāng)接收端檢測到數(shù)據(jù)出錯或丟包時發(fā)送端從出錯幀開始回退重發(fā)代碼完整復(fù)現(xiàn)了這一過程。資源面向計算機、通信、自動化、電子信息等專業(yè)的學(xué)生與學(xué)習(xí)者既適合完成課程設(shè)計、上機作業(yè)也適合作為理解滑動窗口、超時重傳和確認(rèn)機制的動手示例。壓縮包共含21個文件整體大小僅22KB其中12個Python腳本構(gòu)成項目核心覆蓋幀封裝與解析、文件分包與重組、UDP數(shù)據(jù)收發(fā)、地址及字節(jié)轉(zhuǎn)換、隨機差錯注入、日志輸出和配置讀取等模塊7個配置文件可調(diào)整仿真參數(shù)另有1份txt與1份md說明文檔輔助環(huán)境搭建與使用。代碼模塊劃分清晰可直接在本地運行觀察不同丟包場景下GBN協(xié)議的重傳行為也可作為基礎(chǔ)擴展實現(xiàn)選擇性重傳SR或停等式ARQ實驗。目前該資源已有425人瀏覽學(xué)習(xí)經(jīng)測試運行成功適合網(wǎng)絡(luò)課程實驗參考與二次開發(fā)。1. 傳輸總卡在“文件收不全”GBN協(xié)議實驗到底考什么很多做過《計算機網(wǎng)絡(luò)》課程實驗的人都有這種體驗用 Python 寫個 UDP 收發(fā)單條消息來回傳都正常ping 也通但只要把數(shù)據(jù)鏈路層的 GBN 協(xié)議掛上去做“可靠文件傳輸”就總在最后階段出問題——文件傳了一半卡住、校驗值對不上、重傳風(fēng)暴把吞吐打沒。這個實驗考的不是你會不會調(diào) socket而是你知不知道滑動窗口、累計確認(rèn)、超時重傳這三個機制如何配合才能在一個會隨機丟幀、損壞、亂序的信道上把文件原樣傳完。本篇文章會沿著“原理→源碼實現(xiàn)→參數(shù)調(diào)優(yōu)→踩坑→驗證”的順序把一個能跑通的 Python GBN 模擬數(shù)據(jù)鏈路層方案拆開講清楚。適合正在做計網(wǎng)課設(shè)的學(xué)生也適合想補一補“可靠傳輸協(xié)議落地細(xì)節(jié)”的開發(fā)者。2. 先弄懂 GBN 的可靠傳輸模型滑動窗口、累計確認(rèn)與超時重傳為什么缺一不可2.1 GBN 協(xié)議在數(shù)據(jù)鏈路層管什么丟包、損壞、亂序三個對手?jǐn)?shù)據(jù)鏈路層的基本功能里有一項叫可靠傳輸。物理鏈路上會出現(xiàn)三種典型的“壞人”噪聲導(dǎo)致比特翻轉(zhuǎn)從而讓幀損壞網(wǎng)絡(luò)擁塞或沖突導(dǎo)致幀丟失并行路徑或緩存抖動導(dǎo)致幀到達順序錯亂。如果直接把這些壞幀交給上層文件寫入輕則文件內(nèi)容對不上重則寫入流程直接崩潰。GBNGo-Back-N后退 N 幀就是針對這三類問題設(shè)計的一套滑動窗口協(xié)議。GBN 的思路非常樸素發(fā)送端允許連續(xù)發(fā)送 N 個幀但只保留一個定時器接收端只按順序接收凡是序號不是自己期望的那個幀一概丟棄。丟掉的幀怎么補靠發(fā)送端超時后把窗口內(nèi)所有已發(fā)送未確認(rèn)的幀從頭重傳一遍。為什么要全部重傳而不是只傳那一個壞幀因為接收端不緩存亂序幀發(fā)送端無法確定窗口內(nèi)哪些幀被接收端收下了干脆從最早的未確認(rèn)幀開始整體后退這正是“Go-Back-N”得名的由來。很多初學(xué)者會拿 TCP 的經(jīng)驗來套 GBN覺得應(yīng)該像 TCP 那樣接收端緩存亂序數(shù)據(jù)、發(fā)送端只重傳缺失段。如果你這么想就混淆了 GBN 和 SR選擇重傳。在課程實驗這種簡化模型里接收窗口為 1 是 GBN 的標(biāo)志性設(shè)定接受“亂序幀必須丟棄”這個設(shè)定后面的代碼才寫得順。2.2 為什么用 Python UDP 模擬數(shù)據(jù)鏈路層而不是直接寫鏈路層課程實驗不可能讓你去改網(wǎng)卡驅(qū)動或直接操作 HDLC/PPP 幀所以常見做法是在 UDP socket 之上模擬出“一條不可靠信道”然后再在這條信道上實現(xiàn) GBN 協(xié)議。換句話說你的應(yīng)用進程里跑的這段代碼就是“模擬的數(shù)據(jù)鏈路層”UDP 扮演的是底下那根會出錯、會丟幀的物理線路。這里有一個高頻誤解有人覺得“既然學(xué)的是數(shù)據(jù)鏈路層就應(yīng)該拿 TCP 來做”。恰恰相反UDP 沒有擁塞控制、沒有重傳、沒有滑動窗口才能讓你自己實現(xiàn)完整鏈路邏輯如果用 TCP底層把丟包重傳全干了你的 GBN 代碼根本觸發(fā)不了超時實驗結(jié)果永遠(yuǎn)是“一次通過”什么都學(xué)不到。還有一個重要細(xì)節(jié)UDP 只能保證“數(shù)據(jù)報的發(fā)送順序”在絕大多數(shù)情況下等于到達順序但它不承諾不丟、不亂、不錯。在局域網(wǎng)本地回環(huán)上測試時丟包率接近 0很多問題根本暴露不出來。為了讓實驗具有演示價值和說服力通常需要在發(fā)送端或一個中間轉(zhuǎn)發(fā)函數(shù)里人為引入丟包和損壞概率制造“不可靠信道”的效果。這一步看著不復(fù)雜但恰恰是后面驗證 GBN 是否真的可靠的關(guān)鍵。2.3 窗口模型與序號空間的約束WINDOW 能設(shè)多大、為什么 W 必須小于序號空間GBN 的性能優(yōu)勢來自連續(xù)發(fā)送。設(shè)信道時延為 RTT若采用停等協(xié)議發(fā)送端每發(fā)一幀都要等確認(rèn)鏈路利用率大致是 1/(1 2a)而 GBN 的發(fā)送窗口為 W 時理論上可以把利用率拉到接近 W 倍。窗口越寬吞吐越高但窗口不可能無限大因為序號字段是有限的。以常見實現(xiàn)為例如果序號用 1 字節(jié)表示取值范圍是 0~255那么發(fā)送窗口 W 的最大值必須滿足 W 256。更嚴(yán)謹(jǐn)?shù)慕Y(jié)論來自“新舊幀區(qū)分問題”發(fā)送端重傳一個舊幀時如果它的序號和接收端期待的“下一個新幀序號”重合接收端會誤判新幀導(dǎo)致重復(fù)寫入。因此標(biāo)準(zhǔn)結(jié)論是對于 n 位序號GBN 的最大發(fā)送窗口為 W_max 2^n - 1。我在課設(shè)里一般會做兩層冗余保險序號字段直接用 2 字節(jié)struct 的 H 格式取值范圍擴大到 0~65535窗口大小壓到 4~16 之間。窗口開得過大不僅讓“新舊識別”變得危險還會把 UDP 接收緩沖區(qū)打爆這在 5.3 節(jié)會細(xì)說。你如果看到一個 WINDOW 參數(shù)第一反應(yīng)應(yīng)該是把序號位數(shù)抄出來算一下邊界而不是直接調(diào)大窗口跑。邊界沒守住時出現(xiàn)的故障現(xiàn)象往往非常隱蔽——文件偶爾能傳對偶爾會在中間多出一段重復(fù)內(nèi)容。3. 把 GBN 協(xié)議跑起來Python 發(fā)送端、接收端與文件分幀實現(xiàn)3.1 實驗環(huán)境Python 安裝與 vscode 配置只依賴標(biāo)準(zhǔn)庫開始寫代碼前先確認(rèn)環(huán)境裝好 Python 3.8 以上版本即可Windows、Linux、macOS 都行。用 vscode 的話裝一下官方 Python 擴展就能跑用 pycharm 配置 python 環(huán)境也一樣。這個實驗只用 socket、struct、zlib、threading、random 這些標(biāo)準(zhǔn)庫不需要 pip install 任何第三方包所以環(huán)境問題幾乎不會卡住你。工程文件建議拆成三個模塊gbn_common.py放幀封裝、解析和 CRC 校驗函數(shù)gbn_sender.py放發(fā)送端邏輯gbn_receiver.py放接收端邏輯。這樣你在調(diào) bug 時可以單獨 import 某個函數(shù)做單元測試。UDP 通信地址用127.0.0.1:8000接收端 bind 這個端口發(fā)送端向它發(fā)數(shù)據(jù)。如果要在兩臺機器上做演示把收發(fā)地址換成真實 IP 即可但記得關(guān)閉防火墻或放行對應(yīng) UDP 端口。3.2 幀結(jié)構(gòu)設(shè)計與 CRC 校驗兩個函數(shù)搞定組幀和驗幀幀結(jié)構(gòu)是整個協(xié)議的地基。我采用的幀格式為2 字節(jié)序號、1 字節(jié)幀類型、2 字節(jié)數(shù)據(jù)長度、4 字節(jié) CRC32、變長 payload。幀類型定義兩個值0 表示文件頭幀寫入文件名、文件大小、總塊數(shù)1 表示數(shù)據(jù)幀。文件頭單獨用一種幀是因為接收端必須先拿到文件信息才能創(chuàng)建文件和判斷傳輸完成條件。# gbn_common.py幀封裝、解析、CRC校驗 import struct, zlib TYPE_FILE_HEADER 0 TYPE_DATA 1 HEADER_LEN 9 # H B H I 2 1 2 4 def make_file_header(seq: int, name: str, size: int, total_blocks: int) - bytes: payload b\n.join([name.encode(), str(size).encode(), str(total_blocks).encode()]) return make_frame(seq, TYPE_FILE_HEADER, payload) def make_data_frame(seq: int, payload: bytes) - bytes: return make_frame(seq, TYPE_DATA, payload) def make_frame(seq: int, ftype: int, payload: bytes) - bytes: # 校驗對象包含 序號類型payload防止 seq/type 被篡改而漏檢 crc zlib.crc32(struct.pack(!H B, seq, ftype) payload) 0xffffffff header struct.pack(!H B H I, seq, ftype, len(payload), crc) return header payload def parse_frame(frame: bytes): if len(frame) HEADER_LEN: return None seq, ftype, length, crc struct.unpack(!H B H I, frame[:HEADER_LEN]) payload frame[HEADER_LEN:HEADER_LEN length] calc zlib.crc32(struct.pack(!H B, seq, ftype) payload) 0xffffffff if calc ! crc: return None # 校驗失敗調(diào)用方直接丟幀 return seq, ftype, payload代碼邏輯不復(fù)雜但有三個關(guān)鍵點值得說。第一CRC 的計算范圍把“序號類型”也包括進去了這樣如果有人模擬鏈路層噪聲把 seq 字段翻轉(zhuǎn)了校驗也能發(fā)現(xiàn)只對著 payload 算 CRC 是課設(shè)里最常見的漏檢寫法。第二struct.pack(!H B H I, ...)里的感嘆號表示網(wǎng)絡(luò)字節(jié)序發(fā)送和解析統(tǒng)一用這個格式就不會出現(xiàn) ACK 序號解析錯位的怪問題。第三幀頭固定 9 字節(jié)接收端拿到完整幀后先校驗再處理先處理后校驗是本實驗頭號坑之一。3.3 發(fā)送端核心循環(huán)窗口發(fā)送、累計確認(rèn)、超時重傳發(fā)送端是 GBN 機制中邏輯最重的一端。它要維護兩個指針base指向窗口內(nèi)最老的未確認(rèn)幀next_seq指向下一個待發(fā)送的新幀。窗口未滿且還有數(shù)據(jù)就連續(xù)發(fā)送收到 ACK 后把base推進超時則把base到next_seq-1的所有幀全部重發(fā)。# gbn_sender.py發(fā)送端核心循環(huán)節(jié)選 import socket, struct, zlib, time from collections import deque HOST, PORT 127.0.0.1, 8000 WINDOW 8 # 發(fā)送窗口大小 TIMEOUT 0.3 # 重傳超時秒局域網(wǎng)可取 0.2~0.5 BLOCK 1024 # 每個數(shù)據(jù)幀 payload 大小 sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(TIMEOUT) addr (HOST, PORT) # 第0幀文件頭用停等方式先確認(rèn)保證接收端拿到文件信息 header_frame make_file_header(0, test.bin, file_size, total_blocks) while True: sock.sendto(header_frame, addr) try: ack, _ sock.recvfrom(1024) if parse_ack(ack) 0: break except socket.timeout: continue base, next_seq 1, 1 frame_cache {} # 窗口內(nèi)緩存用于超時重傳 while base total_blocks: # 窗口沒滿就繼續(xù)發(fā)這是 GBN 連續(xù)發(fā)送的關(guān)鍵 while next_seq base WINDOW and next_seq total_blocks: frame make_data_frame(next_seq, chunks[next_seq - 1]) frame_cache[next_seq] frame sock.sendto(frame, addr) next_seq 1 try: ack, _ sock.recvfrom(1024) ack_seq parse_ack(ack) if ack_seq base: base ack_seq 1 # 累計確認(rèn)ACK(5) 表示 0~5 全部收到 for i in list(frame_cache): if i ack_seq: del frame_cache[i] except socket.timeout: # Go-Back-N 的核心動作超時窗口內(nèi)全部重傳 for i in range(base, next_seq): sock.sendto(frame_cache[i], addr) time.sleep(0.001) # 輕微限速避免瞬間打爆 UDP 緩沖這個循環(huán)里有三個決定可靠性的細(xì)節(jié)。第一個是“累計確認(rèn)推進 base”收到ack_seq后直接讓base ack_seq 1因為 GBN 的 ACK 攜帶的是“目前已連續(xù)確認(rèn)到的最大序號”不需要為窗口內(nèi)每一幀單獨確認(rèn)。第二個是超時后重傳全部窗口幀而不是只重傳base幀這正是和 SR 協(xié)議的最大區(qū)別。第三個是frame_cache只保留窗口內(nèi)的幀ACK 推進后及時清理避免大文件造成內(nèi)存膨脹。3.4 接收端核心循環(huán)期望序號校驗、落盤與重復(fù) ACK接收端比發(fā)送端簡單很多它只有一個狀態(tài)expected即下一個期待到達的幀序號。任何 CRC 失敗或序號不等于expected的幀一律丟棄但要把上一次正確確認(rèn)的 ACK 再回一遍這就是“重復(fù) ACK”。發(fā)送端收到重復(fù) ACK 后不會立即重傳而是在超時后把整個窗口再推一遍從而補上缺失的幀。# gbn_receiver.py接收端核心循環(huán)節(jié)選 import socket, struct, zlib HOST, PORT 127.0.0.1, 8000 sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.bind((HOST, PORT)) sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1 20) # 階段1循環(huán)收文件頭直到校驗通過且序號為0 file_info None while file_info is None: data, peer sock.recvfrom(2048) parsed parse_frame(data) if parsed is None: continue seq, ftype, payload parsed if ftype TYPE_FILE_HEADER and seq 0: parts payload.split(b\n) file_name, file_size, total_blocks parts[0].decode(), int(parts[1]), int(parts[2]) send_ack(sock, peer, 0) file_info (file_name, file_size, total_blocks) expected 1 # 階段2按序收數(shù)據(jù)幀寫文件 received 0 with open(file_name, wb) as f: while received total_blocks: data, peer sock.recvfrom(2048) parsed parse_frame(data) if parsed is None: send_ack(sock, peer, expected - 1) # 損壞幀回重復(fù)ACK continue seq, ftype, payload parsed if seq ! expected: send_ack(sock, peer, expected - 1) # 亂序幀丟棄不緩存 continue f.write(payload) received 1 expected 1 send_ack(sock, peer, expected - 1)重復(fù) ACK 的設(shè)計容易被人忽略但它是 GBN 接收端唯一的“反饋手段”。如果沒有這一行接收端丟棄壞幀后保持沉默發(fā)送端就只能在超時后才反應(yīng)過來平均恢復(fù)時間變長。有了重復(fù) ACK發(fā)送端雖然不會立即重傳但至少能確認(rèn)“鏈路還活著、發(fā)送窗口也沒有被錯誤推進”。另外注意send_ack(sock, peer, expected - 1)中發(fā)送的是expected - 1而不是expected因為 ACK 的含義是“序號為 n 的幀及其之前的全部幀都已收到”發(fā)expected會被發(fā)送端誤認(rèn)為一個超前確認(rèn)。4. 可靠文件傳輸?shù)年P(guān)鍵參數(shù)幀長、RTO、WINDOW 怎么配合4.1 控制幀與數(shù)據(jù)幀分開發(fā)文件名的可靠傳法文件頭幀承載文件名、文件大小、總塊數(shù)這三項缺一不可。文件頭如果混入 GBN 窗口里一起發(fā)會引入一個確定性的死鎖接收端還沒收到文件頭不知道總塊數(shù)數(shù)據(jù)幀來了也無法判斷“這是第幾塊、要不要落盤”只能全丟。而發(fā)送端又可能在窗口推進后把文件頭幀清出緩存導(dǎo)致永遠(yuǎn)無法重傳。常見做法是讓文件頭走一次“停等確認(rèn)”流程——發(fā)送端循環(huán)發(fā)送文件頭幀直到收到針對序號 0 的 ACK再進入數(shù)據(jù)段。這在代碼層面多寫一個while True但把兩條不同可靠性的路徑徹底分開避免了大量邊界 bug。有些現(xiàn)成源碼把文件頭也當(dāng)成普通數(shù)據(jù)幀直接塞進窗口我的經(jīng)驗是這種實現(xiàn)大概率在丟包率稍高時“偶發(fā)失敗”且極難復(fù)現(xiàn)。4.2 校驗選 zlib.crc32 還是 hashlib.md5代價與收益幀級校驗我用zlib.crc32運算速度快單個 1024 字節(jié)幀校驗耗時微秒級。CRC32 對隨機比特?fù)p壞的漏檢率約為 2^-32對這個實驗已經(jīng)非常安全。哈希完成后做一次“整文件比對”會更有說服力傳輸結(jié)束在接收端算一個 MD5發(fā)送端也算一個 MD5兩邊一致說明全程沒有出現(xiàn)檢測不到的損壞。整文件用 MD5 沒問題但把 MD5 放進每一幀就很不劃算處理器的開銷會拉低吞吐而且每一幀都做安全哈希對課設(shè)來說沒有必要。還有一個容易踩的細(xì)節(jié)有些實現(xiàn)會把序號和類型字段排除在 CRC 范圍之外。如果信道噪聲恰好轉(zhuǎn)了序號位payload 的校驗還是通過接收端就會把這個幀當(dāng)作另一個序號的合法幀寫入文件造成靜默數(shù)據(jù)錯位。只要把struct.pack(!H B, seq, ftype) payload一起丟進 CRC 計算這個隱患就從根上消除了。4.3 三個必調(diào)參數(shù)WINDOW、TIMEOUT、塊大小的經(jīng)驗值與公式參數(shù)建議值設(shè)置依據(jù)塊大小512~1024 字節(jié)小于常規(guī) UDP 路徑 MTU減少 IP 分片本實驗 buffer 設(shè) 2048 也夠WINDOW4~16序號用 2 字節(jié)時最大窗口為 65535但實際受接收緩沖和演示效果限制TIMEOUT2 倍 RTT先測出單程 RTT再乘 2局域網(wǎng)一般 0.1~0.5 秒別低于 50ms序號位寬2 字節(jié)用 struct 的!H打包天然規(guī)避 1 字節(jié)序號的“新老幀撞車”TIMEOUT 設(shè)小了會發(fā)生“重傳風(fēng)暴”幀其實沒丟只是 ACK 慢了一點發(fā)送端就急著重傳導(dǎo)致接收端收到大量重復(fù)幀吞吐率直線下降。TIMEOUT 設(shè)大了則丟幀后恢復(fù)慢假設(shè) RTT 是 5ms超時設(shè) 2 秒那么一個丟幀要等 2 秒才觸發(fā)重傳傳一個大文件要卡很多次。我調(diào)試時會在代碼里打印每次 ACK 的到達間隔取平均值的 2~3 倍作為超時值。WINDOW 和接收端緩沖區(qū)要配套。窗口開到 16每幀 1024 字節(jié)一瞬間就是 16KB 數(shù)據(jù)涌進接收端如果接收端的recvfrom處理速度不夠UDP 接收緩沖滿了就直接丟幀底層丟幀會讓 GBN 進入反復(fù)重傳的惡性循環(huán)。接收端初始化時調(diào)大 socket 緩沖區(qū)是個好習(xí)慣sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 1 20)可以放到開頭。4.4 文件寫回的邊界處理最后一塊不滿和重復(fù)幀寫文件的邏輯看起來只是一句f.write(payload)但邊界問題全在“塊大小”上。文件的最后一個分塊很可能不足 512 或 1024 字節(jié)接收端如果總按固定大小寫文件尾部就會多出一截舊數(shù)據(jù)或空字節(jié)。解決方式是以幀頭里的 length 字段為準(zhǔn)parse_frame返回的 payload 本身就是按 length 切開的字節(jié)串write出來長度天然正確。重復(fù)幀是另一個邊界問題。超時重傳機制會帶來重復(fù)幀接收端靠seq ! expected直接丟棄這是對的。但要警惕一種“部分重復(fù)”的情形假設(shè)接收端已經(jīng)寫入了第 5 幀并推進expected到 6此時一個重傳的第 5 幀到達會被丟棄可是如果這個重傳幀在傳輸過程中又被截斷而變成另一個長度CRC 會先失敗根本進不到序號判斷這層。所以說“先校驗、后判斷序號、最后寫文件”這三步順序一個都不能換。5. GBN 實驗避坑與排查從卡死到文件對不上的五條踩坑記錄5.1 現(xiàn)象打開丟包模擬后程序卡死進度條不動原因出在校驗和執(zhí)行順序上。不少實現(xiàn)把parse_frame的結(jié)果直接拿來寫文件忽略了 CRC 校驗失敗時的處理分支或者在校驗前就把數(shù)據(jù)寫入了文件導(dǎo)致文件內(nèi)容錯位后續(xù)所有幀的序號判斷都亂了。還有一種情況是丟包率設(shè)置過高比如 30% 甚至 50%發(fā)送端重傳的幀也一直在丟窗口內(nèi)所有幀全部被清空recvfrom永遠(yuǎn)等不到 ACK。解決思路分兩步。先檢查接收端是否是“先校驗、后寫文件、再回 ACK”的正確順序在parse_frame返回None時一定要走重復(fù) ACK 分支。再把丟包率降到 5%~10%這是讓 GBN 表現(xiàn)出“重傳后仍能完成傳輸”的合理區(qū)間。最后給發(fā)送端加日志打印base、next_seq和ack_seq看是不是base一直停在原地——如果是說明某幀永遠(yuǎn)沒收到而接收端也沒能把期望序號推進。5.2 現(xiàn)象傳完了但 md5 不一致文件尾部多了幾行舊數(shù)據(jù)現(xiàn)象是 md5 對比失敗仔細(xì)檢查發(fā)現(xiàn)接收文件比原文件長。原因基本可以鎖定在“最后一塊寫滿固定長度”這個錯誤上。比如塊大小是 1024文件大小是 2500 字節(jié)分成三塊分別是 1024、1024、452如果第三塊寫文件時硬寫 1024 字節(jié)文件就變成 3072 字節(jié)多出 572 字節(jié)的殘留數(shù)據(jù)。這些殘留往往來自發(fā)送緩沖區(qū)的舊數(shù)據(jù)很難靠肉眼發(fā)現(xiàn)。解決方法是所有寫入的 payload 都嚴(yán)格按幀頭給出的 length 字段切片不要用BLOCK常量去截斷。同時傳輸完成后可以用一個最終校驗來復(fù)盤接收端用hashlib.md5()對整個文件算一遍摘要打印出來和發(fā)送端比對。參考命令是md5sum received.bin和md5sum original.bin兩邊一致就說明這個鏈路真正做到了可靠文件傳輸。5.3 現(xiàn)象窗口調(diào)到 32 后性能暴跌甚至數(shù)據(jù)錯亂窗口增大通常預(yù)期吞吐提升但調(diào)到 32 后反而出現(xiàn)大量重傳、文件內(nèi)容偶爾重復(fù)。根源是序號空間不夠用。如果實現(xiàn)中序號用 1 字節(jié)表示取值范圍只有 0~255當(dāng)窗口滑動到接近 256 時新幀序號的剩余空間不足重傳一個舊幀時接收端無法區(qū)分“這是重傳的舊幀”還是“合法的新幀”于是把重復(fù)數(shù)據(jù)寫入文件。解決方法是把序號改到 2 字節(jié)用struct.pack(!H, seq)取值范圍拉到 65535窗口 32 就不再觸碰邊界。同時記得遵守“2^n - 1”的最大窗口約束加上實驗習(xí)慣性的保守策略窗口不超過序號空間一半。調(diào)試時打印一下重傳次數(shù)如果發(fā)現(xiàn)窗口增大后每傳 100 幀重傳超過 30 次就要回頭查序號位寬和接收緩沖兩個地方。5.4 現(xiàn)象base 一直不動超時后反復(fù)重傳但 ACK 序號不對表現(xiàn)為發(fā)送端一直在超時重傳但收到的 ACK 總是小于base窗口推不動。先不要懷疑丟包率先懷疑 ACK 包的語義和解析。常見錯誤有兩種一是接收端發(fā)了expected而不是expected - 1導(dǎo)致發(fā)送端認(rèn)為“接收端在等一個更靠后的幀”base永遠(yuǎn)小于ack_seq二是struct.pack和unpack的字節(jié)序不一致比如發(fā)送用!H解析用H序號在本地小端和網(wǎng)絡(luò)大端之間被錯誤解釋。解決方法是統(tǒng)一字節(jié)序在gbn_common.py的parse_ack和make_ack里都用!H格式。然后加一行調(diào)試日志在發(fā)送端收到 ACK 后打印ack_seq人工驗證它是否符合“收到的最后一個連續(xù)序號”語義。還要注意 ACK 幀也應(yīng)該包含類型字段防止把數(shù)據(jù)幀的 payload 誤當(dāng)成 ACK 序號來解析。5.5 現(xiàn)象本機回環(huán)測試正常局域網(wǎng)測試卻偶發(fā)卡頓在127.0.0.1上跑UDP 基本不會丟包內(nèi)核直接走回環(huán)路徑GBN 很難真正體現(xiàn)重傳。一旦換到真實局域網(wǎng)無線信號波動、網(wǎng)卡隊列溢出、交換機緩存抖動都會造成真實丟包這時重傳頻率升高是正常的。但如果卡頓嚴(yán)重到無法完成大文件傳輸更可能是接收端 UDP 緩沖區(qū)過小發(fā)送端瞬時灌入的窗口幀被內(nèi)核直接丟棄導(dǎo)致每次都是整窗重傳。解決方法是接收端初始化時設(shè)置SO_RCVBUF為 1MB 以上發(fā)送端在重傳循環(huán)里加一個time.sleep(0.001)做輕微限速。另一個實用技巧是在發(fā)送端統(tǒng)計“總發(fā)送幀數(shù) / 文件總幀數(shù)”這個比值稱為重傳開銷系數(shù)系數(shù)越接近 1 說明信道越干凈大于 2 說明鏈路條件很差或參數(shù)沒調(diào)對。把這個指標(biāo)打到終端比盯著進度條更容易看出系統(tǒng)的健康狀況。6. 三個必測場景驗證 GBN 實現(xiàn)丟包率、校驗損壞與窗口對比驗證 GBN 做沒做對不能只跑一次“順利傳輸”就收工。我通常會準(zhǔn)備三個固定場景在發(fā)送端掛一個信道模擬函數(shù)# channel.py模擬不可靠信道的丟包與比特?fù)p壞 import random def channel(frame: bytes, loss_rate0.1, corrupt_rate0.03): if random.random() loss_rate: return None # 模擬丟幀 if random.random() corrupt_rate: frame bytearray(frame) pos 9 random.randrange(len(frame) - 9) frame[pos] ^ 0xff # 模擬比特翻轉(zhuǎn) return bytes(frame) return frame場景一是loss_rate0, corrupt_rate0的全干凈信道。這個場景驗證的是基準(zhǔn)正確性窗口發(fā)送、ACK 推進、文件落盤三個環(huán)節(jié)沒有邏輯錯誤。文件傳完后 md5 必須一致且重傳次數(shù)應(yīng)該為 0如果此時出現(xiàn)了重傳說明超時閾值設(shè)得太小。場景二是loss_rate0.1, corrupt_rate0.03的常規(guī)不可靠信道。這個場景驗證 GBN 的糾錯能力允許重傳次數(shù)小幅上升但傳輸必須完成且 md5 一致。重點觀察每次丟幀后發(fā)送端恢復(fù)的速度以及重復(fù) ACK 是否讓發(fā)送端及時感知鏈路狀況。如果卡住超過 2 秒多半是超時閾值設(shè)得過大或接收端丟棄亂序幀后沒有回重復(fù) ACK。場景三是窗口對比測試。把WINDOW分別設(shè)為 1、4、8、16 各跑一遍同一個文件記錄耗時和重傳次數(shù)。其結(jié)果通常是一條先降后升的曲線窗口 1 接近停等吞吐最低窗口 8 左右最優(yōu)窗口 16 時如果接收緩沖沒調(diào)大吞吐反而會因重傳而下降。把這個結(jié)果放進實驗報告比空談“滑動窗口提升利用率”有說服力得多。我自己的一個習(xí)慣是跑正式演示前先保留一份帶丟包模擬的腳本版本課堂上專門用它表演丟幀和自愈最后再切換到干凈信道做完整文件接收。這樣的演示既有說服力又不會在關(guān)鍵時刻因為人為故障而翻車。希望這份 GBN 協(xié)議的落地拆解能幫你把課設(shè)做得更扎實也少走一點那些只有踩過才知道的彎路。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线视频97| 国内外色色色色色成人视频| 久操热线| 北条麻妃性愛视频| 亚州综合| 五月婷婷基地| 69人妻精品丰满熟女区| 亚洲熟女诱惑| 欧美有码激情视频一区二区三区| 91九色丨风韵犹存| 激情五月婷婷| 午夜九九| 天天色综亚洲91污| 男人干美女| 麻豆成人影音在线| 国产综合网站在线播放| 伊人aaa| 伊人九九| 91干熟女| 日韩日本欧美在线观看| 黄色二级片网站| 亚洲动态色图| 大鸡巴久久久| 97欧美超碰| 欧美三级一级| 国产精品久久久久久久久AV大片| 十八禁一区二区无码观看| 天天综合欧美| 一本一道人妻久久一区二区三区 | 97香蕉人人乳| gogogo免费高清看中国国语| 丁香五月天久久精品视频一区二区三区| 中文字幕一区二区无码成人 | 国产AV中文| 在线不卡视频| 色九久| 国产精品69人妻无码久久久| 亚洲欧美日韩电影网站一区 | 91天美传媒精品| 综合伊人网12色| 伊人综合色网| 伊人国产成人av网站| 人人人人人人少妇| 91久久| 欧美日韩性感| 九九久久一区二区伦理| 日韩精品大香蕉伊人在线| 久九九九九九九热| 免费操逼91| 天堂九九九九九九九九九| 干我久操| 久草资源在线视频官方总站日韩丝袜美腿| 久久久久久久久久va| 欧美猛交黑寡妇中文字幕| 婷婷丁香五月天亚洲天堂网| 高颜值美女口爆高潮浪叫| 插日本熟女视频| 国产欧美日产一区二区三区 - 国产欧美日| 国产超碰人人爽人人做| 91丝袜在线播放| 大香蕉97久久| 午夜视频好爽啊| 久久综合久色欧美综合狠狠| 激情五月天视频| 日本精品五区| 国产乱不卡| 亚洲色图在线视频| 在线观看中文av字幕| 加勒比海人人操超碰在线| 一区二区三区精品黑丝白丝酒店对鸡 | 欧美日韩性爱视屏免费看了| 尤物网站91| 欧美 综合 亚洲| 啊…啊…操我用力操我| 1级午夜影院费免区| 欧美第一页| 天美av在线观看| 综合在线导航一区| 黄色AV免费| 亚洲 中文 欧美 日韩 在线| 91视频观看网站| 三级三级三级a级全黄三| 日本ZZ高免费A级视频| 欧美熟爽综合| 日韩人成网站在线播放| 精品国产三级av韩国在线| 一本大道久| 国产视频一区二区在线观看| 久久女婷| 伦伦成年午夜免费视频| 久久久久久久久久9| 骚货人妻偷情自拍在线视频| 人人摸人人摸人人干| 东京热一区二区中文字幕| 最新9久久久9免费视频| 91网站18在线| 久久精品视频久久久| 粉嫩粉嫩一区性色AV片| 人妻久久久久久久久久久久久久久 | 在线视频日韩欧美国产| 亚洲无吗在线视频| 亚洲图片日本AⅤ欧美在线| 久久久久久九九九九| 欧美高潮| 亚欧美综合网。| 九一屌逼| 日韩99神马视频播放片在线播放| 人妻天天夜夜爽一区二区| 欧美日韩国内不卡| 欧美在线观看综合国产| 亚洲黄网在哪免费看| 嗯啊抽插大香蕉网页| 少妇久久久| 97超碰久久| 人妻熟妇一区二区三区| 天天色综合影视网| 果冻传媒A片麻豆熟妇人妻| 久久久精品久久| 亚洲性猛交| 久久国产视频专区一二三| 熟女丰满人妻一区| 蜜伊人色综合97| 亚洲熟女国产综合另类| 最新AVzaixian| 日韩人体偷拍| 婷婷六月天| 另类一区| 不卡九肏| 伊人天堂在线| 国产一区二区三区中文字幕| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久久久久久久国产| 亚洲视频二区| 色天欧美| 学生妹天天看| 欧美线天码中字| 99re在线精品78| 久久久久久少妇| 国产av色网| 九九九久| 人人摸人人入| 91深夜夜| 久热9| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 国产女大学生AV| 色综合美国| 久久免费精彩视频| 99爱久久视频频| 九九成人精品| 欧美九九九| 在线视频97| 亚洲无码日韩电影| 日本道不卡| 蜜臀AV秘一区翔田千里| 亚洲精品日日夜夜52| 成人 日韩欧美一区| 91久热这里只有精品| 麻豆婷婷成人一二三| 91爱做| 日韩色图 一区二区| 97在线免费公开视频| 欧美综合亚洲综合| 丝袜剧情| 国产91美女高潮| 91久久18禁| 又黄又硬又粗又长国产视频| 1级黄色夫妻对换性交免费看| 蜜乳AV一区| 婷婷五月天网| 蜜臀99久| 操我无码| 色盈盈影院| 蜜臀一二三区| 无码精品久久| 插入综合网| 91亚洲狠狠色| 激情五月综合开心五月| 色婷婷丁香| 麻豆区99999| 欧美春色| 欧美一级做a爰片免费视频| 99少妇精品视频| 东北女人操比视频| 欧美成人免费在线观看| 婷婷五月天激情网| 色大香蕉97N| 欧美日韩资源| 色五月大香蕉| 久久有码视频| 一区二区三区视频在线观看免费| 久久久久久91香蕉国产| 欧州91高潮| 亚洲美女自拍偷拍视频| 欧美日韩亚洲五月天婷婷| 在线视频97| 中文久久爆乳| 欧美图片校园春色| 中国一区二区亚洲人妻| 国产中午字一暮区| 九九热视频在线观看| 久久久久久久六六| 97在线观看播放视频| 91久精品| 国产精品人妻免费精品| 99热精品在线观看| 60秒不遮不挡| 日韩99999色| 欧美日日人人天天| 亚洲高清无码在线桃色| 2019午夜福利视频| 日本色色色视频| 欧美论理片| 搞中出久久| 久偷拍| 日韩中文字幕精品一区在线| 日韩欧美天天爽爽爽天天爽爽| 91人妻人人澡人人爽人人精品| 五月天婷婷小说| 日日AAvv| 久99热| 夜夜 中文视频rt| 日韩在线一区二区| 久久精品电影在线| 日韩亚洲美女一区久久| 尤物av网站免费在线播放| 婷婷成人久久久精品| 综合网亚洲| 69AV女优男人的天堂| 欧美综合天天| 丝袜无码a片| 欧美专区日本专区| 大香蕉草草| 9久综合网| 成人久久久| 99热综合| 精品高清av中文字幕| 九九碰九九爱97超| 一区二区首页| 郑州宾馆老熟女露脸啪啪| 国产精品久久久999| 99性爱在线观看| 天天综合站| 九九人人操| 欧美一区二区男人天堂| 久久伦理视频久久大香蕉视频| 1769一区二区| 亚洲高清欧美总合| 蜜色网色哟哟| 99精品久久久久久久婷婷| 99热这里只有精品1| 久久欧美1卡2卡3| 久久透逼视频| 91操熟女视频| 东北女人的毛片| 久久久国产亚洲精品系列| 亚洲国产97在线精品一区| 91色艳| 另类小说综合网| 啊啊在线| 污污污8888| 日本精品一区二区中文字幕| 人人做天天爱| 啊啊啊想要| 麻豆 亚洲 97| 欧美黄页在线| 免费看欧美美女黄色大片| 国产色图乱伦| 天美传媒AV在线| www.男人天堂| 91美女视屏| 大色综合网| 久久久久久综合久久伊人蜜月| 成人网欧美风情| 99在线精品观看99| 涩涩这里只有精品视频| 日本欧美中文字幕| 加勒比99999| 国产地址二三| www久久久| 日本欧美亚洲高清在线看| 国产精品香蕉| 少妇无码999| 久污| 少妇精品久久久八区九区| av操操不卡| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 久久av成人无码免费| 中文字幕99999| 女同性恋中文字幕| 日本二区不卡| 精品视频久久区| 男生通女生屁股| 日本淫穴在线| yy少妇精品久久| 日本三级小说中文字幕| 97超级久久强资源| 亚洲午夜福利在线影院| 交换娇妻呻吟声不停中文字幕| 色爱亚洲| 72av视频| 天天操夜夜操| 色欧美综合| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 四虎AV在线观看| 一区二区三区四区免费视频| 大香蕉乱级| 亚洲色图图片| www.男人的天堂| 色淫网站优优视频| 丁香九月婷婷| 欧美激情激情xxxx欧美专区| 中文字幕一区二区三区50路| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 欧洲亚洲人妻无码中字久久三区四区| 人看人人摸人人操| 97av在线视频| 久久精品一区二区三区不卡| 色综合尤物| 黄色免费网页无码| 五月天婷婷成人网| 99热这里都是精品| 麻豆久久视频在线地址| 91人妻超碰| 色诱avtt| 久久久久久久9最新免费视频观看| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 大香蕉色网| 老熟女区| 一二视频神马久久传媒| 亚洲中文sv| 九九九九精| 亚洲人成在线放东京热| 神马久久久久久伦理片| 精品黑人一区二区| 91九久| 亚洲熟女乱色| 美女性91| 少妇一级无码精品| 五月婷网站| 亚洲欧美日韩综合在线尤物| 九九无码| 一区二区三区四区久久视1| 一区中文字幕二区日韩| 97超碰免费生活| 97色涩| 97欧美日韩精品| 91精片| 另类小说综合网| 黄色大香焦1级‘′‘| 亚洲五月天激情| 日韩AV色图| 亚州大图综合色图| 亚洲天堂精品日韩电影| 操逼1区| 三级片网站在线播放| 色五月婷婷五月天| 欧美亚性天堂| 久久AV无码1区2区3区| 97操综合| CCYY草草影院地址入口| 97婷婷色| 啊啊啊好大好湿| 男人天堂2019| 欧亚乱色熟女一区二区| 人人摸人人干| 超碰 国产熟女精品一区| 日韩在线观看三级电影| 麻豆国产96在线| 亚洲永久AV无码精品秋霞| 91精品人妻一品二品三品| 国产Av超碰| 日韩有码一区三区| 久久人妻一区二区三区高清| 自拍内地三级在线观看| 91国产精品熟女| 日韩精彩视频| 国产综合网站在线播放 | 天天干电影| 日韩欧美成人综合在线| 青青草自拍视频在线播放| 91插B网站| 国产一级内射高清视频| 国产精品久久久鸭无码的功能| 97天天综合网| 黄片视频观看| 91操人| www. 男人天堂成人在线| 激情综合网激情综合| 国产日本久久免费精品| 亚洲熟女乱色一区二区三区久久久| 青青色在线观看| 欧美黄片视频在线观看免费 | 日韩无码成人电影| 本道在线| 无码精品人妻一区二区三区妖精| 蜜臀色乳| 一类无码操逼视频| 嗯嗯啊啊好疼| 精品人体无圣光凹凸| 欧美成人精品欧美一级乱黄一区二…| 久久久久久久伊人精品| 日韩精品第3页| 综合伊人网12色| 成人五月香网在线| 热99这里有精品综合久久 | 欧美日韩 强奸乱伦| 日日A∨| 国产主播福利| 欧色综合| 亚洲男人久久综合天堂| 和协影院中文字幕三区| 日本东京热加勒比久久| 级品肉射| 日本性爱不卡视频| 欧美日韩亚洲少妇寂寞影院正在播放 | 亚洲精品久| 玖玖综合网| 啊啊啊啊啊啊啊国| 欧洲性爱无码区| 久久久久中出| 美国人人操人人操| 亚洲97网站| 牛黄色久午久| 南澳成人一级片在线播放| 欧美日本中字另类在线| 97在线播放| 色色五月丁香| 亚洲高清综合网| 日本亚洲vr欧美不卡高清专区| 91骚熟女| 男人久久精品| 妇女性内射冈站HDWWWCOM| 亚洲自拍欧美国产首页网曝| 人人做人人妻人人夜视频| 欧美三四五区| 97这里都是精品| 国产成人一级av88| 91狠狠综合久久| 久热69九色熟妇97| aaa亚无码专区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 日本精品一区二区三| 色色99| 免费一级性爱久久| a片亚洲一本通视频| 欧美一区二区观看在线| 欧美爱爱97| 99热18这里只有精品| 国产尤物AV尤物在线观看不卡| 亚州欧美在线| 精产国品一区二三产品| 婷婷九月国产| 国产一级作爱毛片| 日韩欧无码一区二区三区免费不卡| 日产中文字幕2020| A久久| 国产A v无码专区| 男人的天堂1024| 久久大线蕉一区| 五月丁香激情综合| 欧美性爱日韩性爱| 天天射天天| 综合少妇网| 国产噜噜噜噜噜久久久久久久久| 亚洲丝袜色| 黄色小视频日本txt| 97综合| 亚欧操逼片在线观看| 无码一区二区三区四区五区六区七区八区九区十区视频 | 日韩黄色成人性爱| 高潮毛片无遮挡高清免费| 天堂亚洲精品| q2午夜理论片夜色av| 亚洲丝袜B诱惑| 操逼日韩无码| 熟女色综合久久| 欧美传媒一区| 五月天玖玖资源站| 97色97干| 伊人91| 欧美伦乱爱| 久无码| 欧美极品性爱天天射| 在线毛片片免费观看| 欧美色图20P| 97超级色碰碰| 色天堂综合| 天天弄欧美| 青青草原狼av| 久久久久久中文字幕中文字幕最新| 国产亚洲综合欧美一区| 免费看欧美美女黄色大片| 亚洲国产精品成人无码久久久 | 亚洲精品一二三四区| 色综合99| 99re视频在线观看这里只有精品| 日韩人妻制服丝袜av| 青娱乐999| 亚洲欧洲av影音| 91九九| 无码不卡亚洲成?人片| 中欧人妻丝袜中文字幕 | 日本理论在线| 六月激情婷婷| 国产强奸超碰AV| 亚欧性爱无码| 亚洲一卡2卡3卡4卡乱码网站 | 人妻美腿丝袜日韩| 精品在线78| 亚洲美女精品九九视频| 九九亚洲| 欧美精品久久96人妻无码| 蜜臀无码视频在线观看| 亚洲人成在线放东京热| 很很操在线| 天天操天天射天天日| 国产精品久久久啊| 色翁荡息又大又硬又粗又爽| 天天干一区二区| 婷婷三区| 加勒比av中文| 伊人久久亚洲中文字幕不卡| 亚洲综合夜色| 青青草这里只有精品| 亚洲无 码A片在线观看麻豆| 久久精品国产Aⅴ| 欧美日韩日产免费网站看| 一级aaaaa欧美中文字幕录像片| 91高清无码下载| 午夜天堂啪啪| 热久久精品| 日韩精品9999| 香港久久久| 欧美成人一级麻豆| 国产高清免费不卡av| 免费黄色片子| 亚洲熟女综合| 亚洲 欧美 日韩另类 麻豆| 69精品| 一级日本牲交大片好爽在线看| 黄色av片三级三级三级免费看| 国产97视频免费观看| 夜夜爽33333| 99热亚洲天堂| 少妇精品久久久八区九区| 性91| 九九九精品色乱九九九| 三级色综合| 一区二区三区美女超清| 操逼1区| 久久国色天香香蕉| 插B在线观看| 中文字幕欧美日韩三级| 中文字幕精品区先锋资源| 精品国产嫩穴视频| 五月开心久久AV官网| 欧美高清91| 欧美综合娱乐久久| 操狠狠| 美女91在线观看| 成视频在线观看免费看| 91丨九色丨国产丨人妻在线 | 亚洲国产美女久久久久| 伊人热综合| 国产动漫操逼视频| 啊啊啊啊啊啊好湿好爽视频| 亚洲AV色图| 日逼视频日本| 97 国产一区| 亚洲综合999| 日韩性爱视频在线免费观看| 狠狠久久亚洲欧美专区| 综合色久欲| 91伊人久| 欧美日韩资源在线| 五月婷亚洲精品天堂| 日本高清一区二区在线| 欧美性生活内射| 屁股久久久久久久| 日本欧美成人片AAAA| 成人一区二区三区四区| 日本色日夜干| 91操碰| 亚洲熟女一区二区| 在线国产一区二区av| 日本孕妇孕交| 欧美人妻精品一区二区| 国产熟女二区| 性爱乱伦视频免费| 欧美综合在线91| 插穴性爱视频在线观看| 欧美日日夜夜| 亚洲一卡二卡在线免费| 亚洲精品欧洲精品| 免费视频在线一区二区不卡| 欧美性战999| 立川理惠被中出无码| 日韩精彩免费| 久久久久久99AV无码免费网站| 在线另类| 久久久91| 99999无码| 囯产精品久久久久久久久久梁医生| 99热最新| 97在线视频免费| 日韩精品高清资源在线| 国产9 9在线 | 亚洲| 78p欧美| 国产精品黑人一区二区三区| 少妇天堂网络| 99性爱在线观看| 欧美 青青草| 在线综合 亚洲 欧美中文字幕| 东北女人的毛片| 国模不卡| 校园春色美腿丝袜 | 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美日本天堂| 欧美日韩性爱无码| 乱人乱色一区二区三区免费| 天天干,夜夜爽| 国产自制av蜜乳| 综合久久99亚洲人妻中文在线| 日韩探花精品在线视频| 97亚洲色图| 欧美日韩操逼嗦吊| 九色黄站| 天天看高清麻豆| 超碰在线人妻| 久久婷婷电影网| 97一本大道亚洲一区| 一区二区三区黄片免费观看| 国内外毛片在线观看| 91久久婷婷| 日本黄大片在线观看视频| 欧美激情久久久久| 色五月综合| 一本色道无码DVD中文字幕| 日韩精品影视| 亚洲国产精品久久久久婷婷青年| 亚洲国产91精品一区二区久久| 亚洲情色1区| 大香蕉免费乱伦视频| 欧美综合91| 亚洲宗合网| 天堂蜜桃无码视频一区二区| 在线A日本| 色69大色97香蕉| 有码人妻系列| 丁香成人五月天| 国产日韩欧美中文在线播放| 熟妇女伦乱视频| 欧美91精彩| 美女黄频a美女大全免费皮| 欧美亚洲天堂| 青青草在线视频播放器| 成人精品一区二区三区| 大香蕉碰碰| 日韩激情中文字幕有码| 一级片视频啪啪| 欧美天天干| 熟女露脸激情自拍视频| 欧美性区| 欧美后进式| 性爱1区| 波多野结衣先锋影音| 亚洲综合影院| 国产欧美另类久久久精品课程| 国产极品999| 久久婷婷五月综合| 亚洲天堂无码| 麻花传媒免费网站在线观看| 四虎午夜影院| av三级电影在线播放| 成人日韩3| 99中文字幕| 欧美情色亚洲| 欧美瑟综合| 亚洲男人天堂2| 怡红院成人av| 日日日骚女人精品| 一区二区不卡| 大香蕉碰| 91精品综合久久久久久五月丁香| 中文字幕 国产 精品| 人人操人人干网页| 日韩精品在线放| 波多野结衣之双飞调教在线播放| 国产一区在线播放| 91东北熟女| 久久99久久99精品天美传媒棢·纸:.| 日韩欧美天天爽爽爽天天爽爽| 免费夜夜爱黄色视频毛片| 色婷婷综合网| 99热这里只有精品9| www.av在线观看| 五月香婷婷| 五月天开心网| 亚洲国产精品久久久久婷婷青年| 蜜桃传媒一区二区亚洲| 成人影 天天操 亚洲| 人人澡人人爽人人精品| 久久超碰免费的| 国产精品网站免费| 亚洲和欧美裸体美女双飞视频| 目产99999久久999| 九区国产| 91久久18禁| 人妻爽爽啪视频| 999综合色| 高潮9999外国| 久久伊人影院| 92性色国产午夜福利在线661| 26uuu国产亚洲综合| 国产成人亚洲精品无码古代早漏男| 精品国产人成在线| 日韩一级欧美一级在线观看| 韩国久久97| 欧美第38页| 国产蜜臀在线| 国产激情视频一区区三区| 欧美一级AAAAAAA| 国产高清成人mv在线观看| 国产一级αv免费看片| 又大又黄国产| 欧美少妇高潮久久91| 亚洲国产福利视频| 亚洲影院成人| 国产精品免费美女视频| 天天插天天插| 色娱乐色呦呦夜夜夜夜av| 91热| 亚洲AV麻豆Aⅴ无码电影一| 成人麻豆av电影网站| 久久天堂婷婷网| 欧美综合在线91| 丝袜视频网国产90| 成人免费毛片| www99热| 91黑丝美女| 91热| 免费观看国产不卡av| 玖玖综合.com| 亚洲鸥美色图| 亚洲一区二区在线观看91| 五十路三级片| 亚洲精品一二三四区| 久久中久文96| 精品一区二区三区国产| 丁香九月激情啪| 午夜免费视频1000| 日日嗨AV一区二区夜夜| 97视频在线免费观看| 欧美日韩国产三级黄色| 99999久久久久9国产精品| 超碰在线1234区| 精品毛片av一区二区| 人妻啊啊人妻啊| 亚州九九九精品视频| 乱性AV| 性站| 久9精品| 人、人、摸,人、人、草| 亚洲激情 欧美色图| 亚洲熟女av中文字幕| 91成人精品在线播放| 丝袜综合| 亚洲阿v天堂在线| 久久精品国产精品亚洲艾通辽熟妇| 97欧美色综合| 亚洲图片日本AⅤ欧美在线| 嗯嗯嗯好爽| 丰满人妻一区二区三区四区| 91精品无码人妻系列| 丁香五月天久久精品视频一区二区三区| 欧在线一二区| 婷婷中文字幕| 亚洲中文丝袜美腿诱惑字幕| www成人啪啪18秘 免费| 亚洲无限观看| 久草视频在线视频在线视频在线观看| 国产综合久久久鬼色| 91色欧美| 丁香九月激情| 欧美丰满少妇交换91欧美精品| 午夜电影在线观看无码专区| 伊人aaa| 青草草免费网站av| 91 丝袜在线观看| 中文字幕亚洲热播人妻| 毛片久久| www.97在线| 99re免费| 高树玛利亚无码流出| 97超碰人人模人人拍人人| 中文字幕在线观看网页| 强被迫伦姧在线观看无码网站| 精品久久久久,69国产成人精| 欧美色图综合网| 欧美亚洲综合色| 国产精品com| 青娱乐 成人娱乐在线| 日韩无码极品| 久久久久9999妇女| 99在线无码精品秘 入口黑人| 97超碰精品成| 一区在线观看中文字幕| 亚洲中文丝袜美腿诱惑字幕| 天综合网| 国产v片在线免费观看| 欧美色天堂网在线视频| 黄片免费看的| 嫩草影院永久在线制服丝袜| 东北女人被操| 操逼操逼视频操逼| 中文字幕88av在线| 91色综合| 久久产精品一区二区三区电影| 超碰午夜| 成年男人的天堂| 人人插人人搞人人操| 亚洲人妻一区二区三区| 国产精品久久久久久久久久久久| 人妻少妇久久中文| 欧美国产日韩高清在线| 在线人人人人人人精品超 | 欧美色图校园春色| 哑洲在线| 国产精品九九| 蜜臀aV午夜一区二区三区| 亚洲诱惑天堂| 干B网| 校园春色AV天堂| 男人精品天堂一区| 国产精品色| 智利AV在线网| 天啪| 欧美福利视频啊啊啊啊| 亚洲阿v天堂在线| 国产家庭乱伦性爱视频| 亚洲小电影免费涩涩成人在线高清| 亚洲一区二区三区中文字幕| 亚洲成人一区二区精品| 在线观看精品国产免费| 国产精品老师| 男人的天堂亚洲| 天美精品一区二区三区四区在线观看 | 亚洲视频二区 | 天天拍夜夜| 久久久久亚洲三级电影| 操迟操逼在巾线Fre看| 粉嫩绯色AV一区二区在线| 精品女人999| 天天摸夜夜摸| 亚洲好色人妻| 日韩干B| 高清无码91| 2023天天操夜夜操| 91丨九色丨国产丨人妻在线| 日韩亚洲中文有码视频| 国产伦精品一区二区三区在线观| 日韩在线观看中文字幕视频| 99爱久久视频频| 99re在线精品78| 免费AV中文网在线观看| 色色婷| 亚洲少妇激情视频| 久久久久久九| 五月丁香婷婷综合网| 精品97精品97| 久久永久无码人妻视频| 99热这里都是精品| 欧美精品欧美精品系列 | 综合久久9| 日韩AV一起草| 青青欧美| 91午夜无码| 亚洲综合图文| 9久在线视频只有精品| 嗯嗯啊在线视频| 超碰97人人乐| 26uuu国产日韩综合在线观看| 欧亚久久偷拍视频| 欧美精品二区视频在线| 婷婷三区| 伊人网青青| 北京美女一区二区| 啪啪资源网| 亚洲第一男人天堂| 欧美日韩性爱操大逼| 久久久少妇诱惑精品视频| 国产精品爽爽va在线观看98| 中文字幕精品专区搜索结果91| 国产小视频91| 天天综合~91| 日欧美色| 三级网色| 久草这里只有精品| 亚州少妇| 性色生活片久久毛片婬片免费放女人一级毛片 | 99热在线只有精品| 丰满人妻一区二区三区| 屁股久久久久久| 亚洲欧洲无码97久久精品| 日韩亚洲欧美中文字幕| 久久一二三四不卡| 三级AV入口| 亚洲丝袜少妇在线| 日韩情色AV| 无码9区| 色天使亚洲综合在线观看| 色色九区| 日日夜夜模| 久久国产三区| AAA久久| 99久久久久久亚洲精品不卡| 欧美精品庄| 一本色道久久综合熟妇| 六月丁操逼| 日本 欧美 亚中文字幕| 秋霞久久亚洲精品成人| 小视频国产| 97在线免费视频| 超碰偷拍| 91丝袜激情在线 | 亚洲无码久久久久久久| 精品美女久久久久| 麻豆三极片| 夜夜爽夜夜| 操久久久久| 少妇贴图| 91制服丝袜| 夜夜嗨一区| 久久久极品| 精品免费囯产一区二区三区| 加勒比AV天堂| 成人精品视频一区二区| 日韩偷拍色图| 男人的天堂2018东京热啪啪啪| 综合久| 大香蕉九九| 亚洲五月天激情| AV99热18这里只有精品| 国产精品经典一卡久久久| 热天堂一区二区| 熟女突然公开看18禁影片| 婷婷啪啪| 67194无码不卡| 操学生天天| 四虎884| 超碰人妻久久| 最新无码国产| 丝袜美腿制服人妻二区中文字幕| 黄色av片三级三级三级免费看| 中文自拍欧美影视| 91久久精品蜜臀| 1二区9| 97操b| 欧美性爱精品七区| 秋霞成人一级在线观看| 成人AV在线电影| 黑丝91视频| 欧美超碰人妻97| 91麻豆天美| 国产尤物AV尤物在线观看不卡| 丝袜美腿诱惑亚洲欧美视频在线观看 | 亚洲男人的天堂V| 韩日自拍| yw尤物av无码点击进入麻豆| 日本道久久综合色色| 91色综合激情| 中文字幕在线免费观看 | 亚洲情色视频| 国产强奸乱伦第1页| 色色色色网站| 亚洲电影91| 91丨九色丨国产丨人妻在线 | 艳美熟妇先锋一二三区| 大干人妻| 亚洲欧洲综合成人av一区| 色综合一区二区三巨| 樱花草社区www中国| 亚洲欧美首页| 人妻AV 中文字幕的| 狠狠爱夜夜干| 日韩色欲久久一二三四区| 精品v1区| 日本色日夜干| 午夜精品久久久久久久男人的天堂 | 密臀视频一区二区三区| 老熟女乱伦一区| 欧美色图私拍91| 久久国产成人精品国产成人亚洲| 99在线精品视频| 啊啊啊免费视频| 成人AV素股で擦久久| 91在线免费精品视频| 怡红院怡春院| 国产精品久久久久久久久久梁医生| 99天堂网| 久久久久久久91| 亚洲……91| 亚洲男人久久综合天堂| 九九九九免费高| 9精品久久久久| 91新在线欧美| 国产曰批免费观看久久久| 熟妇高潮精品一区二区三区下载| 亚洲成a人片在线观看中文!!!| 一区二区三区色综合| 国产亚洲国产超碰| 欧美少妇色图| 国产久久男人天堂| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲狠狠入| 我要看免费韩日黄片| 久久久久久久强迫| 91老熟女91老女人| 女人的久久久| 亚洲精品一区二区三区在线播放| 亚洲性高潮| 欧美一区二区成人一卡| 国模少妇一区二区三区| dy888午夜老子影视达达兔| 高清肉丝中文无码| 久久a久久| 久99久视频| 强奸国产精品视频| 成人av性爱电影在线观看| 欧美日韩97| 青青草大香蕉视频| 国精综合一二三区影视| 久久大香蕉手机高清| 欧美性爱精品一区二区| 久久久精品电影| 亚洲成a人v欧美综合天堂下载 | 一个国产在线综合网站| 高潮精品| 久久精品一区二区一8| 九九热精品视频六| 成年在线视频日本亚洲在线视频区精品江靖宇公司| 日韩传媒在线| 人人爽天天爽| 艳美熟妇先锋一二三区| 欧美日韩操操操| 亚洲天堂 视频你懂的| 日本在线激情一区二区三区| 色噜噜人妻丝袜a∨先锋影| 久草国产在线视频| 免费的很黄很污的全部视频| 免费精品中文字幕| 色综合av男人天堂| 无码高清专| 亚洲欧综合另类无码一区| 国产精品视频白浆免费| 第一高清av中文字幕| 丁香六月婷婷| 四虎AV无码| 在线观看午夜婷婷久久久久清性观看| 97网址97| 91欧美综合在线| 欧美97| 久久久精品91八戒| 国产精品久久久久久 百度| 久久精品三级影视| 亚洲欧美校园另类春色| 中文字幕精品丝袜| 亚洲精品国产熟女久久久| 国产精品不卡高清在线观看| 国产白嫩漂亮KTV在线| 色色五月婷婷| 欧美国产成人在线| 美女黄页网站| 波多野42部无码喷潮在线观看 | 日韩天天综合| 国产人妖的免费的视频| 中文字幕高清20页视频| 亚洲日本天堂| 中国农村熟妇毛片视频| 毛片电影一区二区三区| 91网站视频在线观看| 亚洲无码一区成人免费午夜 | 香港日本韩国人妇99www.wccm20| 亚洲精品蜜桃久久久| A片A5445444| 性色一线| 欧美精品庄| 亚洲av无码成人精品国产| 欧美玖玖爱免费玖玖| 内射老妇BBWX0C0CK| 蜜臀在线免费观看在线免费观看| 日韩99999| 天天做天天爱天天爽| 国产白丝网站| 综合色久| 最近二区三区视频大全| 一区二区三区精品黑丝白丝酒店对鸡 | 日韩欧美成人性爱在线| 久久久久久亚洲精品中文字幕人妻| 中文字幕午夜精品久久久| 国产成年免费大片黄在线观看| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚州色阁| 3D污黄视频在线观看| 亚州,欧美在线| 久久婷婷精品| 亚洲激情视频| 国产熟女少妇一区| 偷拍 欧美 日韩| 亚洲熟女国产综合另类| 欧美呦呦性爱| 色偷综合| 久久久久人妻| 美女久久久久久久久久久| 97人人操人人摸| 男女啊啊啊| 中文字幕av久久爽Av| 最新三级网址| 欧美激情 亚洲色图| 日本一区二区三区四区免费观看| 色呦呦呦在线观看视频| 久久熟女精品不卡一区| 91久久婷婷| 综合欧美激情网| 精精品人妻一区二区三区| 超碰精品| 亚洲色五月| av在线免费一区二区| 亚洲欧美另类激情小说| 韩国国产欧美情侣视频在线| 超碰久热| 久久精品国产亚洲AV片多多| 2017av无码免费无线播| 美国三级日本三级久久99| 欧亚综合一卡二卡中文字幕| 天天色,天天干,天天干| 一中国女人毛片水真多| 精人妻一区二区三区| 91超碰在线播放| 久久综合精品一区二区三区| 亚洲中文字幕乱码无码一区二区| 国产精品无码av| 人妻丰满熟妇一区二区三| 97久久网| 男人的天堂日韩| 亚洲性刺激| 国产嫩草精品A88AV| 黄站在线免费观看| 51一区二区三区| 啊啊啊啊啊舒服| 伦理弟一页| 欧美玖玖爱免费玖玖| 天天色香欲综合网| 国产嫩草精品A88AV在线| 久久久9视频| 青草香蕉网| 91欧美巨乳| 亚洲高清欧美总合| 蜜臀99久久精品久久久久| 国产久久久久久|