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

ARTICLE DETAIL

資訊詳情

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

ICE流程拆解:candidate屬性詳解與實(shí)戰(zhàn)避坑指南

ICE流程拆解:candidate屬性詳解與實(shí)戰(zhàn)避坑指南 1. 從一次線上事故說(shuō)起為什么 candidate 屬性值得單獨(dú)拎出來(lái)講去年冬天團(tuán)隊(duì)里一個(gè)剛接手 ICE 流程的同學(xué)在聯(lián)調(diào)時(shí)遇到一個(gè)詭異現(xiàn)象兩端明明都拿到了對(duì)方的地址連接卻始終卡在 checking 狀態(tài)日志里看不到任何報(bào)錯(cuò)。排查了大半天最后發(fā)現(xiàn)問(wèn)題出在 candidate 的 foundation 字段上——兩臺(tái)設(shè)備因?yàn)榫W(wǎng)絡(luò)環(huán)境相似生成的 foundation 值撞車(chē)了導(dǎo)致 ICE 引擎誤判為同一組候選地址直接跳過(guò)了本該發(fā)起的連通性檢查。這件事讓我意識(shí)到很多人對(duì) ICE 的理解停留在收集候選地址、配對(duì)、檢查連通性這個(gè)粗線條的流程上但真正決定 ICE 能不能跑通、跑得快、跑得穩(wěn)的恰恰是 candidate 屬性這一層的細(xì)節(jié)。標(biāo)題里說(shuō)的ICE 流程1我理解是把 candidate 屬性作為整個(gè) ICE 流程拆解的第一站這個(gè)切入點(diǎn)選得很準(zhǔn)因?yàn)楹竺嫠械呐鋵?duì)、優(yōu)先級(jí)排序、連通性檢查全部建立在 candidate 屬性之上。這篇文章面向的是正在做實(shí)時(shí)音視頻、實(shí)時(shí)通信、P2P 傳輸相關(guān)開(kāi)發(fā)的工程師也適合對(duì)網(wǎng)絡(luò)穿透機(jī)制感興趣、想搞清楚底層原理的技術(shù)人。我會(huì)把 candidate 的每一個(gè)屬性字段拆開(kāi)講清楚它是什么、為什么需要它、實(shí)際生成時(shí)怎么算、踩過(guò)哪些坑。讀完之后你應(yīng)該能獨(dú)立排查大部分跟候選地址相關(guān)的連接問(wèn)題而不是對(duì)著日志干瞪眼。2. candidate 屬性到底是什么先建立整體認(rèn)知2.1 候選地址在 ICE 流程中的位置要理解 candidate 屬性得先知道 candidate 在 ICE 流程里扮演什么角色。ICE 的全稱(chēng)是 Interactive Connectivity Establishment直譯過(guò)來(lái)就是交互式連接建立。它的核心任務(wù)很簡(jiǎn)單讓兩個(gè)位于不同網(wǎng)絡(luò)環(huán)境下的端點(diǎn)找到一條能互相發(fā)送數(shù)據(jù)的路徑。這個(gè)過(guò)程分幾個(gè)階段。第一階段是收集候選地址每個(gè)端點(diǎn)會(huì)從自己的網(wǎng)卡、系統(tǒng)接口、中繼服務(wù)等地方收集所有可能用于通信的地址每一個(gè)地址就是一個(gè) candidate。第二階段是交換候選地址兩端通過(guò)信令通道把各自的候選列表發(fā)給對(duì)方。第三階段是配對(duì)與連通性檢查把本地的候選和遠(yuǎn)端的候選兩兩組合成 candidate pair逐個(gè)發(fā)送檢查包看哪一對(duì)能通。第四階段是提名與選定從能通的配對(duì)里選出一對(duì)最優(yōu)的作為正式傳輸通道。candidate 屬性貫穿了第一階段到第四階段。收集階段決定了屬性的初始值交換階段把這些屬性原樣傳遞配對(duì)和檢查階段則完全依賴(lài)這些屬性來(lái)做優(yōu)先級(jí)排序和去重判斷。可以說(shuō)candidate 屬性就是 ICE 流程的身份證每一個(gè)字段都在后續(xù)環(huán)節(jié)里被反復(fù)讀取和使用。2.2 一個(gè) candidate 的完整結(jié)構(gòu)長(zhǎng)什么樣先看一個(gè)典型的 candidate 描述長(zhǎng)什么樣這是從實(shí)際日志里抓出來(lái)的candidate:1 1 UDP 2130706431 192.168.1.100 54321 typ host candidate:2 1 UDP 1694498815 203.0.113.45 12345 typ srflx raddr 192.168.1.100 rport 54321 candidate:3 1 UDP 16777215 198.51.100.20 3478 typ relay raddr 203.0.113.45 rport 12345這三行分別代表了三種典型候選主機(jī)候選、服務(wù)器自反候選、中繼候選。每一行里除了開(kāi)頭的candidate:標(biāo)簽后面跟著一串用空格分隔的字段。這些字段就是我們要重點(diǎn)拆解的 candidate 屬性。從結(jié)構(gòu)上看一個(gè) candidate 由基礎(chǔ)字段和擴(kuò)展字段兩部分組成?;A(chǔ)字段是每個(gè) candidate 都必須有的包括 foundation、component-id、transport、priority、connection-address、port、candidate-type。擴(kuò)展字段則是可選的根據(jù) candidate 類(lèi)型不同而不同比如 raddr、rport、tcptype 等。理解這個(gè)結(jié)構(gòu)很重要因?yàn)樵趯?shí)際開(kāi)發(fā)中你經(jīng)常需要手動(dòng)構(gòu)造 candidate 字符串或者在日志里解析這些字段。字段順序是固定的不能隨意調(diào)換否則解析會(huì)出錯(cuò)。我見(jiàn)過(guò)有同學(xué)在拼接 candidate 時(shí)把 priority 和 port 的位置寫(xiě)反了結(jié)果對(duì)端解析出來(lái)的地址完全錯(cuò)亂排查了很久才發(fā)現(xiàn)是格式問(wèn)題。2.3 為什么這些屬性缺一不可有人可能會(huì)想不就是個(gè) IP 加端口嗎為什么要搞這么多字段這個(gè)問(wèn)題問(wèn)得好答案在于 ICE 要解決的是一個(gè)非常復(fù)雜的工程問(wèn)題在成千上萬(wàn)種網(wǎng)絡(luò)組合下快速找到一條可用的路徑。如果只有 IP 和端口你無(wú)法判斷兩個(gè)候選是不是來(lái)自同一個(gè)網(wǎng)卡去重問(wèn)題無(wú)法決定先檢查哪一對(duì)優(yōu)先級(jí)問(wèn)題無(wú)法知道這個(gè)地址是怎么來(lái)的類(lèi)型問(wèn)題也無(wú)法處理多網(wǎng)卡、多協(xié)議、多中繼的復(fù)雜場(chǎng)景。每一個(gè)屬性字段都是為了解決一個(gè)具體的工程問(wèn)題而存在的。舉個(gè)例子foundation 字段看起來(lái)只是個(gè)簡(jiǎn)單的字符串但它的作用是讓 ICE 引擎快速識(shí)別這兩個(gè)候選來(lái)自同一個(gè)基礎(chǔ)地址從而避免重復(fù)檢查。如果沒(méi)有 foundationICE 就得逐個(gè)比對(duì) IP、端口、類(lèi)型效率會(huì)低很多。再比如 priority 字段它是一個(gè) 32 位整數(shù)編碼了候選類(lèi)型、本地優(yōu)先級(jí)、組件 ID 等多層信息讓排序可以在一個(gè)整數(shù)比較里完成而不是多字段逐一比較。3. 逐個(gè)拆解candidate 核心屬性詳解3.1 foundation候選地址的指紋foundation 是一個(gè)字符串通常是一個(gè)短整數(shù)或者字母數(shù)字組合。它的核心作用是標(biāo)識(shí)一組共享同一基礎(chǔ)地址的候選。什么叫共享同一基礎(chǔ)地址簡(jiǎn)單說(shuō)如果兩個(gè)候選是從同一個(gè)網(wǎng)卡的同一個(gè) IP 上收集來(lái)的只是端口或協(xié)議不同它們的 foundation 就應(yīng)該相同。為什么需要這個(gè)因?yàn)?ICE 在連通性檢查時(shí)如果已經(jīng)檢查過(guò)某個(gè) foundation 的候選對(duì)就不需要再檢查同 foundation 的其他候選對(duì)了。這能大幅減少檢查次數(shù)。想象一下一臺(tái)機(jī)器有 3 個(gè)網(wǎng)卡每個(gè)網(wǎng)卡收集了 UDP 和 TCP 兩種候選那就是 6 個(gè)候選。如果沒(méi)有 foundation 去重兩兩配對(duì)就是 36 對(duì)有了 foundation可能只需要檢查 9 對(duì)。foundation 的生成規(guī)則在不同實(shí)現(xiàn)里略有差異但核心邏輯是一致的把基礎(chǔ) IP、傳輸協(xié)議、候選類(lèi)型這幾個(gè)因素組合起來(lái)做一個(gè)哈?;蛘咧苯悠唇?。RFC 5245 里建議的算法是把基礎(chǔ)地址、協(xié)議、候選類(lèi)型、以及相關(guān)的擴(kuò)展屬性比如 relay 的服務(wù)器地址拼成一個(gè)字符串然后取一個(gè)穩(wěn)定的哈希值。這里有個(gè)坑要注意foundation 必須在整個(gè) ICE 會(huì)話期間保持穩(wěn)定。也就是說(shuō)同一個(gè)候選在多次信令交換中foundation 不能變。我見(jiàn)過(guò)有實(shí)現(xiàn)每次生成 foundation 時(shí)用了隨機(jī)數(shù)導(dǎo)致對(duì)端每次收到的 foundation 都不一樣去重邏輯完全失效檢查次數(shù)暴增連接建立時(shí)間從幾百毫秒漲到了好幾秒。提示如果你在排查連接慢的問(wèn)題先看日志里 foundation 的分布。如果同一個(gè) IP 上的候選 foundation 各不相同大概率是生成邏輯有問(wèn)題。3.2 component-id區(qū)分?jǐn)?shù)據(jù)流通道component-id 是一個(gè)正整數(shù)從 1 開(kāi)始。它用來(lái)標(biāo)識(shí)同一個(gè)候選地址上的不同數(shù)據(jù)流通道。在最早的 ICE 設(shè)計(jì)里component-id 主要服務(wù)于 RTP 和 RTCP 的區(qū)分component-id 為 1 的候選用于傳輸 RTP 媒體流component-id 為 2 的候選用于傳輸 RTCP 控制流。雖然現(xiàn)在很多實(shí)現(xiàn)把 RTP 和 RTCP 復(fù)用在一個(gè)通道上也就是只用一個(gè) component-id但 component-id 這個(gè)字段依然保留著因?yàn)樗诙嗤ǖ缊?chǎng)景下仍然是必要的。比如某些實(shí)時(shí)通信場(chǎng)景需要同時(shí)傳輸音視頻和數(shù)據(jù)可能就會(huì)用到多個(gè) component。component-id 的關(guān)鍵特性是同一個(gè) foundation 下不同 component-id 的候選必須使用不同的端口。這是 ICE 的基本約束因?yàn)橥粋€(gè) IP 加同一個(gè)端口不可能同時(shí)承載兩個(gè)獨(dú)立的通道。如果你在構(gòu)造候選時(shí)違反了這條規(guī)則對(duì)端在配對(duì)時(shí)會(huì)直接丟棄這些候選。實(shí)際開(kāi)發(fā)中component-id 最常見(jiàn)的坑是兩端不一致。比如一端只支持 component-id 1另一端卻發(fā)了 component-id 1 和 2 的候選配對(duì)時(shí) component-id 2 的候選找不到匹配白白浪費(fèi)了檢查資源。所以在信令交換階段最好先協(xié)商好 component 的數(shù)量。3.3 transport傳輸協(xié)議的選擇transport 字段指定了候選使用的傳輸層協(xié)議常見(jiàn)的有 UDP 和 TCP。在實(shí)時(shí)音視頻場(chǎng)景里UDP 是絕對(duì)主力因?yàn)樗难舆t低、抖動(dòng)小適合媒體流傳輸。TCP 通常作為備選用在 UDP 被完全阻斷的網(wǎng)絡(luò)環(huán)境里。UDP 和 TCP 在 ICE 里的行為差異很大。UDP 的連通性檢查就是發(fā)一個(gè)綁定請(qǐng)求收到響應(yīng)就算通。TCP 則復(fù)雜得多因?yàn)?TCP 是面向連接的檢查過(guò)程涉及到握手、連接建立、連接保持等一系列狀態(tài)。而且 TCP 候選還分主動(dòng)和被動(dòng)兩種模式通過(guò) tcptype 擴(kuò)展字段來(lái)標(biāo)識(shí)。tcptype 有三個(gè)取值active、passive、so。active 表示這個(gè)候選會(huì)主動(dòng)發(fā)起 TCP 連接passive 表示它會(huì)等待對(duì)方來(lái)連so 表示可以同時(shí)作為主動(dòng)和被動(dòng)。配對(duì)時(shí)active 必須和 passive 配對(duì)或者 so 和任意一方配對(duì)兩個(gè) active 或兩個(gè) passive 是配不上的。這里有個(gè)實(shí)操經(jīng)驗(yàn)如果你的場(chǎng)景需要 TCP 候選盡量讓一端發(fā) active、另一端發(fā) passive而不是兩端都發(fā) so。因?yàn)?so 雖然靈活但在某些 NAT 環(huán)境下同時(shí)嘗試雙向連接會(huì)導(dǎo)致?tīng)顟B(tài)混亂反而降低成功率。3.4 priority決定檢查順序的核心字段priority 是整個(gè) candidate 屬性里最復(fù)雜、也最關(guān)鍵的字段。它是一個(gè) 32 位無(wú)符號(hào)整數(shù)取值范圍從 0 到 4294967295。ICE 引擎會(huì)按照 priority 從高到低排序候選對(duì)優(yōu)先檢查高優(yōu)先級(jí)的配對(duì)。priority 的計(jì)算公式在 RFC 5245 里有明確定義priority (2^24) * type_pref (2^8) * local_pref (2^0) * (256 - component_id)這個(gè)公式把三種信息編碼進(jìn)了一個(gè)整數(shù)。type_pref 是候選類(lèi)型的偏好值host 類(lèi)型最高srflx 次之relay 最低。local_pref 是本地優(yōu)先級(jí)通常根據(jù)網(wǎng)卡的重要程度來(lái)設(shè)置比如有線網(wǎng)卡比無(wú)線網(wǎng)卡高。component_id 則通過(guò)256 - component_id的方式反向編碼讓 component-id 小的候選優(yōu)先級(jí)略高。具體數(shù)值上host 的 type_pref 通常是 126srflx 是 100relay 是 0。這樣算下來(lái)host 候選的 priority 大約在 2130706431 左右srflx 在 1694498815 左右relay 在 16777215 左右。這個(gè)差距非常大確保了 host 候選永遠(yuǎn)優(yōu)先于 srflxsrflx 永遠(yuǎn)優(yōu)先于 relay。為什么這么設(shè)計(jì)因?yàn)?host 候選是直連延遲最低、帶寬最大、最可靠srflx 需要經(jīng)過(guò) NAT 映射多了一跳relay 要經(jīng)過(guò)中繼服務(wù)器延遲最高、成本也最高。ICE 的設(shè)計(jì)哲學(xué)就是能直連就直連直連不行再中繼priority 就是這個(gè)哲學(xué)的數(shù)值化體現(xiàn)。注意priority 是本地生成的但交換后對(duì)端會(huì)原樣使用。也就是說(shuō)你生成的 priority 會(huì)影響對(duì)端的檢查順序。所以不要隨意設(shè)置 priority要按照標(biāo)準(zhǔn)公式來(lái)算否則可能導(dǎo)致連接建立變慢。3.5 connection-address 和 port實(shí)際的通信端點(diǎn)connection-address 就是候選的 IP 地址port 就是端口號(hào)。這兩個(gè)字段看起來(lái)最簡(jiǎn)單但實(shí)際踩坑最多。先說(shuō) IP 地址。在 IPv4 環(huán)境下就是點(diǎn)分十進(jìn)制的形式比如 192.168.1.100。在 IPv6 環(huán)境下是冒號(hào)分隔的十六進(jìn)制形式。這里有個(gè)細(xì)節(jié)IPv6 地址在 candidate 字符串里通常不帶方括號(hào)直接寫(xiě)地址本身。但如果在其他上下文里引用可能需要加方括號(hào)來(lái)區(qū)分端口。再說(shuō)端口。端口號(hào)的范圍是 1 到 65535但實(shí)際可用的端口受操作系統(tǒng)限制。在 Linux 上1024 以下的端口需要 root 權(quán)限所以 ICE 候選通常使用 1024 以上的端口。另外很多企業(yè)防火墻會(huì)限制某些端口范圍如果你的候選端口恰好落在被封鎖的范圍里連通性檢查就會(huì)失敗。這里有個(gè)實(shí)操技巧在收集候選時(shí)盡量多收集幾個(gè)端口。因?yàn)槟承?NAT 設(shè)備會(huì)對(duì)不同端口做不同的映射策略多試幾個(gè)端口能提高穿透成功率。我見(jiàn)過(guò)一個(gè)案例某運(yùn)營(yíng)商的 NAT 對(duì) 50000 以上的端口映射很穩(wěn)定但對(duì) 30000 以下的端口映射經(jīng)常失敗多收集端口后成功率從 60% 提升到了 95%。3.6 candidate-type候選的來(lái)源分類(lèi)candidate-type 標(biāo)識(shí)了候選的來(lái)源常見(jiàn)的有四種host、srflx、prflx、relay。host 是主機(jī)候選直接從本地網(wǎng)卡上收集到的地址。這是最原始的候選沒(méi)有經(jīng)過(guò)任何 NAT 映射或中繼。在局域網(wǎng)內(nèi)host 候選通常能直接連通。srflx 是服務(wù)器自反候選通過(guò) STUN 服務(wù)器獲取。端向 STUN 服務(wù)器發(fā)送請(qǐng)求服務(wù)器返回它看到的源地址這個(gè)地址就是端在 NAT 上的公網(wǎng)映射地址。srflx 候選能穿透大部分 NAT是公網(wǎng)通信的主力。prflx 是對(duì)等自反候選不是在收集階段生成的而是在連通性檢查過(guò)程中發(fā)現(xiàn)的。當(dāng)端收到一個(gè)來(lái)自未知地址的檢查請(qǐng)求時(shí)會(huì)把那個(gè)地址作為一個(gè) prflx 候選加入列表。prflx 主要用于處理 NAT 映射變化的情況比如對(duì)稱(chēng) NAT 下不同目標(biāo)的映射端口不同prflx 能捕捉到這種變化。relay 是中繼候選通過(guò) TURN 服務(wù)器分配。端向 TURN 服務(wù)器申請(qǐng)一個(gè)中繼地址所有數(shù)據(jù)都通過(guò)這個(gè)地址轉(zhuǎn)發(fā)。relay 的延遲最高、成本最大但穿透能力最強(qiáng)幾乎能應(yīng)對(duì)所有網(wǎng)絡(luò)環(huán)境。ICE 的原則是最后才用 relay所以 relay 的 priority 最低。這四種類(lèi)型的優(yōu)先級(jí)順序是host srflx prflx relay。實(shí)際實(shí)現(xiàn)里prflx 的優(yōu)先級(jí)通常和 srflx 相當(dāng)或略低因?yàn)樗彩枪W(wǎng)地址只是發(fā)現(xiàn)方式不同。3.7 擴(kuò)展字段raddr、rport 與 tcptype除了基礎(chǔ)字段candidate 還可以帶一些擴(kuò)展字段用來(lái)補(bǔ)充描述候選的來(lái)源信息。raddr 是 related address表示這個(gè)候選的相關(guān)地址。對(duì)于 srflx 候選raddr 是本地的主機(jī)地址也就是 NAT 映射前的地址。對(duì)于 relay 候選raddr 是中繼服務(wù)器看到的端的地址。rport 則是相關(guān)的端口。這兩個(gè)字段的主要作用是診斷和優(yōu)化。比如在排查 NAT 類(lèi)型時(shí)對(duì)比 raddr 和 connection-address 就能看出 NAT 做了什么樣的映射。如果 raddr 相同但 connection-address 不同說(shuō)明是對(duì)稱(chēng) NAT如果 raddr 和 connection-address 的端口也相同說(shuō)明是錐形 NAT。tcptype 是 TCP 候選特有的擴(kuò)展字段取值 active、passive、so。前面講 transport 時(shí)已經(jīng)提過(guò)這里補(bǔ)充一點(diǎn)tcptype 只在 transport 為 TCP 時(shí)出現(xiàn)UDP 候選沒(méi)有這個(gè)字段。如果你在解析 candidate 時(shí)看到 UDP 候選帶了 tcptype那肯定是格式錯(cuò)誤。4. 實(shí)操生成、解析與調(diào)試 candidate4.1 手動(dòng)構(gòu)造一個(gè)合法的 candidate 字符串理解了各個(gè)字段的含義現(xiàn)在來(lái)實(shí)際構(gòu)造一個(gè) candidate。假設(shè)我們要構(gòu)造一個(gè) host 類(lèi)型的 UDP 候選IP 是 192.168.1.100端口 54321component-id 為 1。先算 priority。type_pref 取 126local_pref 取 65535最大值component_id 為 1priority (2^24) * 126 (2^8) * 65535 (256 - 1) 16777216 * 126 256 * 65535 255 2113929216 16776960 255 2130706431然后 foundation 可以取一個(gè)基于 IP 和類(lèi)型的哈希值這里簡(jiǎn)化為 1。最終字符串是candidate:1 1 UDP 2130706431 192.168.1.100 54321 typ host再構(gòu)造一個(gè) srflx 候選公網(wǎng)地址是 203.0.113.45端口 12345相關(guān)地址是 192.168.1.100:54321candidate:2 1 UDP 1694498815 203.0.113.45 12345 typ srflx raddr 192.168.1.100 rport 54321注意字段順序foundation、component-id、transport、priority、connection-address、port、typ、candidate-type然后是擴(kuò)展字段。這個(gè)順序不能亂解析器是按位置讀取的。4.2 從日志里解析 candidate 的實(shí)用方法實(shí)際調(diào)試時(shí)你拿到的往往是一大串 candidate 字符串需要快速提取關(guān)鍵信息。用正則表達(dá)式是最方便的方式。下面這個(gè) Python 片段可以解析標(biāo)準(zhǔn)格式的 candidateimport re def parse_candidate(line): pattern rcandidate:(\S) (\d) (\S) (\d) (\S) (\d) typ (\S)(.*) match re.match(pattern, line.strip()) if not match: return None foundation, component_id, transport, priority, addr, port, ctype, ext match.groups() result { foundation: foundation, component_id: int(component_id), transport: transport, priority: int(priority), address: addr, port: int(port), type: ctype, } # 解析擴(kuò)展字段 for kv in ext.strip().split(): if kv in (raddr, rport, tcptype): result[kv] True ext_parts ext.strip().split() for i in range(0, len(ext_parts) - 1, 2): result[ext_parts[i]] ext_parts[i 1] return result這個(gè)解析器能處理大部分標(biāo)準(zhǔn)格式的 candidate。實(shí)際使用時(shí)你可能需要根據(jù)具體實(shí)現(xiàn)的格式做微調(diào)比如有些實(shí)現(xiàn)會(huì)在 candidate 前面加a前綴這是 SDP 格式解析前先去掉即可。4.3 用 priority 排序驗(yàn)證候選質(zhì)量拿到候選列表后第一件事是按 priority 排序看看高優(yōu)先級(jí)的候選是不是符合預(yù)期。正常情況下host 候選應(yīng)該排在最前面然后是 srflx最后是 relay。如果發(fā)現(xiàn) relay 候選的 priority 比 srflx 還高那說(shuō)明 priority 計(jì)算有問(wèn)題。常見(jiàn)原因是 type_pref 設(shè)置錯(cuò)了比如把 relay 的 type_pref 設(shè)成了 100 而不是 0。這種錯(cuò)誤會(huì)導(dǎo)致 ICE 優(yōu)先嘗試中繼路徑連接延遲大幅增加。另一個(gè)檢查點(diǎn)是同一類(lèi)型候選之間的排序。比如有兩個(gè) host 候選一個(gè)來(lái)自有線網(wǎng)卡一個(gè)來(lái)自無(wú)線網(wǎng)卡有線網(wǎng)卡的 local_pref 應(yīng)該更高priority 也應(yīng)該更高。如果排序反了ICE 會(huì)優(yōu)先嘗試無(wú)線網(wǎng)卡可能帶來(lái)不必要的延遲和抖動(dòng)。4.4 連通性檢查失敗的排查思路連通性檢查失敗是最常見(jiàn)的問(wèn)題表現(xiàn)是 candidate pair 一直處于 waiting 或 in-progress 狀態(tài)最終超時(shí)。排查時(shí)按以下順序檢查第一看候選是否真的交換成功了。有時(shí)候信令通道有問(wèn)題對(duì)端根本沒(méi)收到候選列表或者收到的列表是空的。檢查信令日志確認(rèn)雙方都發(fā)送和接收了 candidate。第二看 foundation 是否有重復(fù)。如果兩個(gè)不同的候選 foundation 相同ICE 會(huì)認(rèn)為它們是同一組可能跳過(guò)必要的檢查。檢查 foundation 的生成邏輯確保不同基礎(chǔ)地址的候選 foundation 不同。第三看端口是否被防火墻阻斷。用 telnet 或 nc 命令測(cè)試候選的 IP 和端口是否可達(dá)。如果不可達(dá)說(shuō)明中間有防火墻或 NAT 設(shè)備阻斷了流量。第四看 transport 是否匹配。如果一端只發(fā) UDP 候選另一端只發(fā) TCP 候選那永遠(yuǎn)配不上對(duì)。檢查雙方的 transport 配置確保至少有一種共同的協(xié)議。第五看 component-id 是否一致。前面提過(guò)component-id 不匹配的候選無(wú)法配對(duì)。檢查雙方的 component 配置。5. 常見(jiàn)問(wèn)題速查與避坑經(jīng)驗(yàn)5.1 candidate 屬性相關(guān)的高頻問(wèn)題下面這張表整理了實(shí)際開(kāi)發(fā)中最常遇到的 candidate 屬性問(wèn)題以及對(duì)應(yīng)的排查方向問(wèn)題現(xiàn)象可能原因排查方向連接卡在 checkingfoundation 重復(fù)導(dǎo)致去重錯(cuò)誤檢查 foundation 生成邏輯連接建立慢priority 排序錯(cuò)誤先檢查了低優(yōu)先級(jí)候選驗(yàn)證 priority 計(jì)算公式部分候選被丟棄component-id 或 transport 不匹配檢查雙方配置一致性srflx 候選缺失STUN 服務(wù)器不可達(dá)或返回錯(cuò)誤測(cè)試 STUN 服務(wù)器連通性relay 候選無(wú)法使用TURN 服務(wù)器認(rèn)證失敗或配額不足檢查 TURN 憑證和配額IPv6 候選解析失敗地址格式不正確確認(rèn) IPv6 地址不帶方括號(hào)TCP 候選配不上對(duì)tcptype 組合不合法確保 active 配 passive5.2 三個(gè)我踩過(guò)的坑第一個(gè)坑foundation 用了隨機(jī)數(shù)。前面提過(guò)某次實(shí)現(xiàn)里 foundation 每次生成都不同導(dǎo)致對(duì)端每次收到的 foundation 都不一樣去重完全失效。表現(xiàn)是連接建立時(shí)間從 300 毫秒漲到了 5 秒以上。修復(fù)方法很簡(jiǎn)單把 foundation 改成基于基礎(chǔ)地址的確定性哈希。第二個(gè)坑priority 的 local_pref 設(shè)成了 0。有一次為了簡(jiǎn)化把 local_pref 統(tǒng)一設(shè)成了 0結(jié)果所有同類(lèi)型候選的 priority 都一樣ICE 無(wú)法區(qū)分有線網(wǎng)卡和無(wú)線網(wǎng)卡隨機(jī)選擇路徑。表現(xiàn)是連接質(zhì)量不穩(wěn)定有時(shí)延遲很低有時(shí)抖動(dòng)很大。修復(fù)方法是根據(jù)網(wǎng)卡類(lèi)型設(shè)置不同的 local_pref。第三個(gè)坑raddr 和 rport 填反了。在構(gòu)造 srflx 候選時(shí)把 raddr 和 rport 的位置寫(xiě)反了導(dǎo)致對(duì)端解析出來(lái)的相關(guān)地址完全錯(cuò)誤。雖然不影響連通性檢查因?yàn)闄z查用的是 connection-address 和 port但在診斷 NAT 類(lèi)型時(shí)得到了錯(cuò)誤結(jié)論。修復(fù)方法是嚴(yán)格按照字段順序拼接。5.3 一個(gè)容易被忽略的細(xì)節(jié)候選的生存時(shí)間candidate 不是永久有效的。每個(gè)候選都有一個(gè)生存時(shí)間超過(guò)這個(gè)時(shí)間后候選會(huì)被標(biāo)記為失效不再參與連通性檢查。生存時(shí)間的長(zhǎng)度取決于候選類(lèi)型host 候選通常很長(zhǎng)因?yàn)楸镜氐刂凡粫?huì)變srflx 候選取決于 NAT 映射的保持時(shí)間通常幾十秒到幾分鐘relay 候選取決于 TURN 服務(wù)器的分配策略通常幾分鐘到幾十分鐘。實(shí)際開(kāi)發(fā)中如果 ICE 會(huì)話持續(xù)時(shí)間很長(zhǎng)需要定期刷新候選否則可能出現(xiàn)連接突然中斷的問(wèn)題。刷新方式是重新收集候選并交換或者通過(guò) STUN 綁定請(qǐng)求保持 NAT 映射。我見(jiàn)過(guò)一個(gè)案例某應(yīng)用在通話 10 分鐘后突然斷線排查發(fā)現(xiàn)是 srflx 候選的 NAT 映射過(guò)期了而應(yīng)用沒(méi)有及時(shí)刷新。提示如果你的應(yīng)用需要長(zhǎng)時(shí)間保持連接建議在 ICE 配置里設(shè)置候選刷新間隔通常取 NAT 映射保持時(shí)間的一半比較穩(wěn)妥。6. 從 candidate 屬性看 ICE 的設(shè)計(jì)哲學(xué)把 candidate 屬性全部拆完回頭再看 ICE 的整個(gè)設(shè)計(jì)會(huì)發(fā)現(xiàn)一個(gè)很清晰的思路用豐富的元數(shù)據(jù)換取決策效率。每一個(gè)屬性字段都是為了在某個(gè)環(huán)節(jié)減少計(jì)算量或提高準(zhǔn)確性。foundation 用于快速去重priority 用于快速排序candidate-type 用于快速分類(lèi)raddr 用于快速診斷。這些字段在收集階段一次性生成之后在整個(gè) ICE 流程里被反復(fù)使用避免了重復(fù)計(jì)算。這種設(shè)計(jì)思路在實(shí)際工程里很有借鑒意義。很多系統(tǒng)在設(shè)計(jì)時(shí)喜歡按需計(jì)算用到什么算什么但 ICE 選擇了提前計(jì)算、冗余存儲(chǔ)的路子。代價(jià)是候選字符串變長(zhǎng)了交換的數(shù)據(jù)量變大了但換來(lái)的是檢查階段的高效和穩(wěn)定。在實(shí)時(shí)通信這種對(duì)延遲極度敏感的場(chǎng)景里這個(gè)取舍是值得的。另一個(gè)值得注意的點(diǎn)是 ICE 對(duì)漸進(jìn)式降級(jí)的支持。host 不行用 srflxsrflx 不行用 relay每一層都有對(duì)應(yīng)的候選類(lèi)型和優(yōu)先級(jí)。這種設(shè)計(jì)讓 ICE 能在各種網(wǎng)絡(luò)環(huán)境下工作從最簡(jiǎn)單的局域網(wǎng)到最復(fù)雜的多層 NAT都能找到一條可用的路徑。candidate 屬性里的 type_pref 和 priority 就是這個(gè)降級(jí)策略的數(shù)值化表達(dá)。我在實(shí)際項(xiàng)目里體會(huì)最深的一點(diǎn)是不要試圖繞過(guò)標(biāo)準(zhǔn)去優(yōu)化 candidate 屬性。曾經(jīng)有團(tuán)隊(duì)為了減少候選數(shù)量手動(dòng)過(guò)濾掉了所有 relay 候選結(jié)果在部分嚴(yán)格 NAT 環(huán)境下完全連不上。也有團(tuán)隊(duì)為了提高優(yōu)先級(jí)把 relay 的 type_pref 調(diào)高結(jié)果正常網(wǎng)絡(luò)下也走了中繼延遲翻倍。標(biāo)準(zhǔn)里的每一個(gè)數(shù)值都是經(jīng)過(guò)大量實(shí)踐驗(yàn)證的除非你有非常明確的理由和充分的測(cè)試否則老老實(shí)實(shí)按標(biāo)準(zhǔn)來(lái)。最后分享一個(gè)小技巧在調(diào)試 ICE 問(wèn)題時(shí)把雙方的 candidate 列表按 priority 排序后并排打印出來(lái)一眼就能看出配對(duì)的可能性。高優(yōu)先級(jí)的 host 對(duì) host 如果能配上連接就是最優(yōu)的如果只能靠 relay 對(duì) relay那就要考慮網(wǎng)絡(luò)環(huán)境是不是太苛刻了。這個(gè)簡(jiǎn)單的對(duì)比方法幫我快速定位過(guò)很多次連接質(zhì)量問(wèn)題。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩一级二级| 69久久久久久久久久久久久| 福利在线观看一区二区| 蜜臀99久久精品久久久久| 超碰在线974| 日本色色色视频| 韩国一级做a久久久久| 亚州久久9| 静品嫩模一区二区| 伊人亚洲国产一成人久久精品,久久| 多毛小伙内射老太婆| 女人天堂av在线播放| 久久久九精品| 美女毛片999| 日韩丝袜人妻AV| 国产高潮AA片免费看| 亚欧毛片基地国产毛片基地| 久久久亚洲| 中出20p| 快播久久人人aV| 操亚州| 欧美中文字幕一区| 精品久久在线区一区| 97色色婷婷| 国产成人手机视频激情| 黄色电影在线播放综合网站| 亚洲āv网址在线观看| …亚洲黄色厕厕女女在线播…| 蜜桃狠狠色伊人亚洲综合 | 91n免费处女| 在线人妻熟女一区二区三区四区五区| 精品久久久久久亚洲| 另类天堂| 中文字幕日韩国产传媒欧美精品| 99操| 香蕉免费一区二区三区不读| 欧美一品道| 97这里只精品| 人人妻人人色一区二区三区| 蜜桃狠狠色伊人亚洲综合网站| 国产精品久久久久久久久久久久久久| 亚洲人综合19| 国产9区| 亚洲少妇在线观看| 人人么人人操| 欧美日韩成人在线| 91亚·色| 熟女高潮合集-永久久久-成人AV | 九九人妻| AV天堂因数| 蜜臀99精品国产高清在线观看| 久艹免费| J?P?NESEHD熟女熟妇伦| 日本无码1| 色9999日韩国产| 五月天激情小说| 久久综合婷婷| 国产农村妇女精品1区二区| 97视频在线免费看| 亚州男人的天堂| 欧美后入式| 综合色好色| 欧美精品精品一区二区| 97任你吞精| 国产精品一区人妻精品阁在线| 国产超碰国产97| AV在线资源| 福利五区| 综合久久久久久久久91| 老司机老司机午夜影院| 麻豆天美国美国产| 蜜桃狠狠色伊人亚洲综合 | 中国熟女91| 国产精品福利视频| 欧亚性爱视频免费看| 99热精品在线| 啊啊啊慢点| 大香蕉免费3| 亚洲一卡2卡3卡4卡乱码网站| 亚洲欧洲另类| 天天综合网~91综合网| 久久大黄片| 色婷婷狠狠18禁| 男生女生啊啊啊啊| 欧美精品宗合| 亚洲色五月| 国产精品久久久999| 亚洲午夜精品久久久中文影院| 99e久久国产精品| 99精品久久久久久久婷婷蜜桃| 内射中出日韩在线观看视频| 四虎AV在线播放| 一级黄色性爱A级片| 啪啪视频mP4| 老熟女综合| 免费黄色A片| 久久久久久久六六| 国产乱伦亚洲色图高清无码| 欧插网站| 久久啊啊啊| 婷婷综合网站| 国产精品人妻免费精品| 欧美72网页| 夜夜骑夜夜操| 丝袜美腿欧美| 天天夜夜rb| 国产女人成人精品视频| 无卡一区=区| 超碰成人最新最好看| 91撸色网 玖玖网 欧美| 免费人成毛片乱码| 久久久久9久久久久| 91久久国产精品| 18禁美女裸体无遮挡啪啪| 少妇69中文| 亚洲欧美国产va在线播放频| 色哟哟-国产专区| 丝袜足交视频| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 无码一区二区精品视频久久久春药 | 精品免费1| 国产免费内射视频| 91 手机在线播放 绯色| 久久久久久久9| 大稥蕉免费视频这里只有精品| 亚洲资源一区| 黄色污污污污污污网站| 成人精品一区二区91毛片不卡| 96AV久久久| 欧美精品成人一区二区在线观看| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 中文在线久久字幕| 国产一进一出视频网站| 国产性爱欧美性爱在线| 日韩在线观看字幕精品| 亚洲第一男人天堂| 鲁鲁色综合网| 2018天天干在线视频| 北京美女一区二区| 二色av| 欧美成人性活片| 黑丝少妇麻豆| 中国国产精品一区视频| 亚洲色阁| 另类av天堂| 26uuu性物| 欧美成人国产精品| 欧美夜夜狠| 影音先锋少妇| 色香天天| 日韩78m视频| 日本视频在线观看污污污| 青青草女人天天干| 91亚·色| 夜夜草网站| 亚洲婷婷丁香在线| 九九热只有精品| 色999人与兽| 日逼国产| 自拍偷拍第26| 夜夜嗨一区二区三区直播内容| 91精品电影18| 噜噜噜无码AV一级一级久久影院| 国产无码三级视频在线观看| 国产自制av蜜乳| 99re在线视频| 99xav| 五月综合久久| 亚洲 一区二区 自拍| 欧美亚洲系列| 91色伦| 欧美色图私拍91| 中文字幕性感少妇av| 三上悠亚在线毛片91| 香蕉免费一区二区三区不读| 精品91摸| 久久女人一区二区三区| 操逼www.| 性爱视频免费网址| 高清有码一区二区| 韩日欧亚a级| 亚洲男人的天堂网| 肉丝网站91| 欧美精品四区| 91色综| 婷婷五月天福利| 天天搞在线综合网| a v网站在线播放| 人妻铁牛TV| 玖日综合网| 中出后入| 94色色电影网| 密臀在线一区尤物| 蜜汁欧美| 天美av在线| 激情小说亚洲图片| 夜夜操一区二区| 亚洲黄日韩无码专区| 精品妇女一区二区三区| 欧美日韩成人在线| 美国美女AV在线| www.99热| 天天舔天天| 殴美牲| 国产女人高潮视频| 白丝1区2区3区| 久久色人体| 台湾佬中文娱乐网久久久久久久久久com | 亚洲色图欧美另类在线| 中文字幕加勒比海高清无码免费视频| 亚洲AV无码| 亭亭丁香激情| 二对二中文字幕。| 亚洲中文字幕日产无码久久| 91天天c| 区一二区日韩亚洲乱码av电影| 玖色AV| 亚洲色偷偷色噜噜狠狠99网| 欧洲射精91| 肥臀熟女福利视频一区二区| 午夜欧美J进J出白浆流出久久久 | 中文字幕乱亚洲美女精品一区| 黄页网站成人免费| 亚洲图片欧美色图| 国产操逼视频在线观看| 久久毛卡| 男人天堂2019亚洲| 精品二999| 茄子社区国产精品| 日韩人妻丝袜中文字幕| 啪啪啪精品| 国产又粗又长又爽又色| 成人欧美一区二区三区黑人一| 天天综合网国产| 99热在线不卡| 日本黄色精品| 收看日本人日bb| 精品v日韩欧美国产| 被体育老师抱着c到高潮| 久99| 五月天色电影| 97超碰美女| 久久精品国产亚洲妲己影视| 欧美色棕合| 天天摸夜夜操视频| 九九九九九九九九九国产精品| 2024年最新色情网站在线观看| 一个国产在线综合网站| 亚洲精品 大香蕉| 亚热日本熟女| 欧美91在线| 亚洲无码?第一页| 亚洲激情综合| 久久一区二区加油站| 久久东京热成人| 亚洲导航深夜福利| 人人手机欧洲亚洲国产人妻| 青青青草伊人精品| 日本潮催一卡操| 在线人人人人人人精品超 | 天天干18禁| 成人八戒网站| 97伪v| 一区二区影视| 在线v中文字幕一区二区三区| 色狠狠综合噜一二三区| 91美女片在线| 亚洲黄网在哪免费看| av婷婷色网| 熟女少妇视频| 一区二区三区激情在线观看| 东北女人操比视频| 国产精品亚洲无码| 欧美色天堂网在线视频| 免费成人在线观看91| 色999;丁香五月| 天堂亚洲精品久久老牛| 欧美一区二区福利在线| 国产AV天美| 欧美人妻少妇| 久久国产精品一级二级三级| 成人久久久| 激情综合五月婷婷| 欧美性爱一区二区三区| 色婷婷五月天| 久久午夜色播影院免费高清| 亚洲综合五月天| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 96精品久久久| 国产超碰在线| 精品国产乱码久久久A| 天天色综亚洲91污| 亚州欧美总和| 国产视频一区二区免费| JuliaAnnXXX888| 超碰国产在线| 久久久久九九九| 久久日韩毛| 亚洲国产综合视频| 青青操少妇| 中文字幕日韩专区精品系列| 国产精品亚洲四五区在线观看| 91社区伊人| 国产精品情侣啪啪| 欧美一区二区三区互相| 大乔未久88一区| 欧美人妻一区| aV中文麻| 看看小穴| 国产精品免费视频人成| 国内一级精品| 91肏屄网| 国产亚洲精品农村妇女| 久久精品无码熟妇一区二区三区视频导航 | 超碰av在线| 天美传媒AV在线播放| 97精彩视频网站| 操操逼视频| 中文熟女五十乱码在线| 99热在线播放| 一级特黄aaa大片在线观看成人一级片在线观看| 18一区二区三区| 欧美亚洲一级在线观看| 97国产精选| 淫妻综合网| 爱妃国产亚洲视频中文字幕| 福利大香蕉| 色五月综合网| 国产一区二区三三视频| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场| 另类在线| 欧美性爱伊人| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 欧美黄色手机在线观看| 老鸭窝日丰县女人| 999日韩中文精品观看视频。| 澳门黄片一香蕉视频| 亚洲一二三四区在线免费看视频 | av中亚| 中文字幕诱惑制服人妻丝袜美丝袜美| 久久女人一区二区三区| 亚洲成人久久一区二区| 97超碰超碰| 中文字幕欧美日本乱码一线二线 | 一中国女人毛片水真多| 超碰人妻久久| 人妻熟女一区二区| 尤物av网站| 狠狠色婷婷7777久| 综合影视国产无码| 园内精品自拍视频在线播放| 91在线秘 男同| www.91视频网| 国产后入清纯| 天天色怡春院| 日日干夜夜操视频h| 日韩中文字幕二区| 亚洲九月丁香| 日本欧美韩国国产在线| 日本精品一区二区三区四区的功能| 欧美玖玖爱免费玖玖| 亚洲国产一区二区三区在线 | 韩国三级色呦呦| 亚洲97网站| 最新av在线| 欧美日韩资源在线| 91丨国产丨白浆| 超碰在线91| 国产AV激情无码久久无码 | 亚91亚洲网| 屌逼麻豆| 99精品网| 96AV精品| 欧美日韩黄色片一区二区三区四区人与兽做爱| 99色在线观看| 久久久久免费少妇| 一品道视频一区二区三区| 懂色AV蜜臀无码精品APP | 久久久精品久久| 久久久久78| 久久男人网| 久久中文色图| 欧美亚洲美少妇一区二区| 97综合在线观看| 嗯啊不要啊啊在线观看视频| 成人久久无码www| 人妻密肉在线观看| 99re69| 9久精品视频在线观看| 欧美色日本| AV99热18这里只有精品| 欧美男人亚洲天堂| 日本幼女18+| 少妇的嫩逼图片| 免费视频一二三区| 日本人妻丰满熟妇久久久久久| 无码人妻精品酒店| 懂色中文一区二区三区 | 无码人妻精品一区二区三区九九 | 熟女精品va中文字幕| 久久久精品视频免费观看| 中文字幕亚韩| 久操99| 国产传媒美日韩av| 国产超碰97| 91欧美色| 被男人吃奶很爽的毛片| 人人看人人摸人人色| 97精品综合久久| 91人人看| 97热视频在线观看| 久久97超碰| 国产亚洲精品久久久久小| 国产精品呦一区二区三区| 日本肏逼视频在线观看| 插老姨肥穴| 亚洲骚男同com| 亚洲综合电影| 一级久久性爱视频| 97色欧州| 日本三级精品| 99国产精品视频尤物| 亚洲啪啪性视频| 国产免费大片| sewuyueav| www.yeyecao| 激情综合五| 手机久操欧美综合色码| 欧美天天干| 中文字幕亚洲永久精品| 免费观看欧美日韩操逼视频| 性交一区二区在线播放| 国内偷拍精品一区二区| 丁香九月激情| 国产自啪精品视频网站黑丝| 久久免费99精品久久久久久| 久久,精品一二三| a人片中文字幕一区二区| 欧美人妻少妇| 午夜免费福利视频一区| 日本天天干天天搞一区| 免费人成毛片乱码| 九九热精品| 亚洲素人综合| 精品一区二区综合熟妇| 粉嫩少妇自慰在线| 一级二级三级黑人无码| 欧洲无码一区二区| 欧美97爱| 婷婷色色五月天| 蜜臀无码一区二区| 干日本人少妇午夜寂寞影院| 欧美激情超碰777| 国产一二三在线视频五十路| 自偷自拍的亚洲视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美久久婷婷| 免费a v| 久7色| 热热色91| 久久五月份| 九九热av| 91狠狠色丁香婷婷综合久久精品| 超碰在线成人电影| 亚洲超碰AV| 久久99深爱久久99精品| 手机在线A片| 欧美亚洲日韩16色| 免费看国产曰批40分钟怎么下载| 超碰98综合网| 久久肏大逼| 呻吟 欧美 日本 中出| 欧美一区二区三区入口| 四虎在线免费视频| 久青草影院| 69精品| 亚洲天天艹| 日本成人在线不卡一区二区三区 | 亚洲色天| 久久精品老司| 欧美极品性爱天天射| 欧洲亚洲天堂精品| 欧美精品日韩一区二区| 青草成人免费视频一COm| 久久精品国产精品亚洲艾通辽熟妇| 精品免费囯产一区二区三区| 久操B网| 熟女激情综合网| 91高跟美女在线播放| 久久成人国产| 婷婷激情四射| 啊啊啊啊啊在线视频| 大香蕉一区二区在线观看.| 欧美综合网1| 国产超碰| 国产 日韩,欧美 自拍| 国产精品色哟哟| 日本Xx性爱| 男人天堂新在线| 亚洲男人的天堂一区二区| 无码国产Av| 天天影视综合色| 精品久久久久,69国产成人精| 男插女青青影院| 91男同| 日韩草久视频| 亚洲AV无码AV吞精久久久久| 99热销国产这里有精品| 亚洲丝袜色图| 天天日天天操心| 99这里只有精品国产| 中文字幕精品三级久久久| 翘臀vidoes| 丰满少妇乱子伦精品无| 碰碰97| 肉丝中文无码高清| 欧美日韩免费专区在线| 丁香色五月 97干| 人妻一区二区三区视频| 在线二区不卡| 91久久久老司机| 欧美成人精品A片免费一区99| 久操操AV电影| 日韩一级欧美一级国产一级台湾| 国产AV天美传媒一区二区三区 | 国产精品久久天天干| 欧美色爱综合| 亚洲激情色片| 97 亚洲 日韩 欧美 在线| 亚洲精品中文字幕一区在线视频 | 999狠狠综合| 在免费jIzzjIzz在线视频| 最新亚洲黄色免费电影| 狠狠爱夜夜| 九热超碰| 久久精品高清无码一区| 欧美aⅴ99久久黑人专区| 综合五月天| 精品一区二区人妖| 久久黄色视频一区二区三区| 国产女同在线观看视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 午夜福利区| av在线人气| 男人的天堂2018东京热啪啪啪| 免费作爱一级视频| 高清无码 国产精品| 久久青青草原免费视频| 日本人妻伦在线中文字幕| 东京热男人的天堂| 久久91| 五月丁香激情四射| 97国产精品| 亚洲爽图| 综合影院永久入口国产| 日本人妻最新在线中| 亚洲欧美电影| A级片日韩欧美国产欧美视频精选观看 | 家庭乱伦国产精品| 国产无码久久高清| 69av一区二区三区| 国产一在线观看| www.99中文字幕| 91c色| 家庭乱伦网站国产| www.99在线| 欧洲色色| 欧美狠狠操| 天美传媒AV国产在线| a片亚洲一本通视频| 精品一区二区久久| 哈哈操电影| 97精品久久| 手机在线免费看的av| 成人免费看吃奶视频网站| 亚洲AV无码翔田千里网站| 韩国黄片aaaa| 久久久com| 嗯啊不要啊啊在线观看视频| 欧美伦乱爱| 精品妇操一区二区三区| 亚州欧美在线| 久久久久久99AV无码免费网站| 欧美激情性爱视频网站| 911粉嫩人妻| 好吊色在线观看| 欧美页片| 91热| 被男人添B超爽视频| 人、人、摸,人、人、草| 中文字幕一区av| 日日AV加勒比| 日韩无码第3页| 国产在线综合网| 国产精品蜜乳AV| 啊啊啊不要好疼视频| 国产丰满少妇久久久精品影院| 男人的天堂日韩| 日韩欧美加勒比| 99re国产精品视频| 96精品在线| 豆1无夜无码| 久久久久久精| 手机在线看片免费人成视频| 91女在线观看| 国产精品一区在线播放| 日韩高清黄片| 在线黄页看毛片| 亚洲诱惑天堂 | 色成人Www精品永久观看| 麻豆国产尤物AV| 超碰久在线天天做| 久草精品国产99| 色色色综合网| q2午夜理论片夜色av| 国产精品成久久久久午夜午夜| 强奸乱亚洲| 欧洲小说色图视频另类| 青春草莓视频在线观看网址| 99热国产| 91精品国| 欧美性爱视频免费一区一A| 综合亚洲情色| 黄片www视频免费| 99九九精品| 男人天堂免费| 国产久久av| 久久鲁夜| 国产中文字幕在线点播| AV天天综合| 天天cao在线| 91狠狠综合久久久久久| 久久久三区二区一区| 天天色天天干天天射| 欧美 传媒 麻豆 日韩 偷拍| 国产操逼网站亚洲一级黄色| 美女刺激久久国产欧美| 久久这里只| 在线国产探花| 99热在线只有精品| 91久久久久久久久18| 久草这里只有精品| 神马午夜久久久| 中文伊人大香蕉视频| 啊嗯嗯啊好大好爽| 青椒国产97在线熟女| www.99热在线只有精品| 日本黄大片在线观看视频| 亚洲成人av色网| 精品日日人妻| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产h片在线观看视频| 熟妇艹鸡八| 在线综合 亚洲 欧美中文字幕| 91色五月俺来也| 欧美一级黄色免费专区| 麻豆精品A片免费观看| 久久久久久一日韩字幕无码| 婷婷美人网| 国产精品一级特黄aaa大片在线观看| 亚洲无限观看| 五月丁香社区婷婷日韩欧美精品影院 | 亚洲凸凹超碰成人| 91强热人妻| 校园春色 亚洲| 五月丁香色综合| 91综合色噜噜| 好好的日:com久久九九| 亚洲乱码国产乱码精网站| 亚洲情色综合网| 丁香五月天堂| av毛片aaaaa免费看| 精品97久久综合| 亚洲中文字母在线播放| 久久系列| 秋霞一区二区三区四区五区六区七区| 日本操嫩b网| 久区视频| 大香蕉欧美伊| 欧美精品日韩一区二区| 乱欲视频| 嫩草 我啊~嗯~在线| 日本三级中国三级99人妇网站| 欧美组图日韩亚洲中文字幕| 久久婷婷欧美| 日韩精品区二区三区不卡| 黄片qw| 日天天九九天堂666| 国产精品久久发布| 人人干人人搞人人摸| 啊啊啊啊啊啊好多水| 性爱AV天堂| www99热| 中国少妇XXXX做受| 精品久| 中出在线视频| 久久天天躁日日躁狠狠躁 | 欧美久久久| 中文高清一区二区的| 国产成人精品无码久久| 97日韩欧美| 欧美日日人人天天| 中文字幕88av在线| 国产精品麻豆成人AV艾秋| 国产一区二区a毛片| 91老熟妇| 天天综合网在线91| 少妇色综合| 强奸少妇AV导航网| 久久ww| 国产家庭乱伦网址| 精品成人无码| 亚洲综合欧美| 大色网久久| 久久精品视| 熟女中出视频| 东京太热久久久| AV九九| 精品一二三区久久AAA片| A级片日韩欧美国产欧美视频精选观看| 久久久一二三四区| 操淫穴亚洲五月丁香| 色老汉色| 骚乳在线| 伊人久久国产免费观看视频| 性色一线| 999狠狠综合| 五月婷婷激情| 婷婷色综合| 色色五月天婷婷| 五月丁香综合啪啪| 色啪网| 亚洲成人网站在线观看| 久久久久国产一区二| 国产精品视频一区二区三区八戒| 九九热久久99精品re| 亚洲春色欧美激情自拍| 亚洲无码com| 日韩啊V| 国产乱伦视频污| 中文AV制服乱伦| 一级AV性爱| 久久伊人亚洲AV无码网站| 国产兽交视频在线播放| 欧美亚洲国产91在线| 在线播放成人高清免费视频| 亚洲无码超碰免费| 日韩人妻有码免费视频| 另类小说综合网| 园内精品自拍视频在线播放| 日韩乱伦影音先锋| 国产精选三级在线观看| 91人妻Pr| 亚洲五月丁香花狠狠干一区二区三区 | 男人下部插入女人下部| 欧美黑人与女人91~| 精品国产一区二区三区久久久蜜臀 | 97天天在线| 精品免费成人久久| 超碰人妻97| 天天看精品动漫视频一区| 日韩操p| 欧美日韩香蕉| www99热| 顶级少妇BT天堂| 粉嫩小泬久久久一区二区| 97久久国产亚洲精品超碰热| 天躁夜夜躁2021| V A在线| 岛国在线一区二区三区| 偷看洗澡一二三区美女| 欧美极品女人的天堂| 欧美天堂日韩三级国产传媒| 九九九九九九九九九九精品视频| 亚洲骚男同com| 久久久久久久97| 免费自拍三级综合| 久久性视频| 嗯嗯啊啊用力视频免费| 国产丸一视频| 百度百度日本操逼| 亚洲综合精品国产一区| 国产精品女同| 欧美一区二区三区成人性生活| www欧美91| 草草影院最新网址| 天天干少妇| 久久草视频污视频| 97亚洲在线| 色色福利| 欧美狠狠弄| 国产一区二区精品久久久不卡蜜臀| 91欧美亚洲| 黄在线| 色 婷97| 哈哈操电影| 日本午夜操逼| 一区二区三区四区姦女| 超碰吊日色| 中文字幕亚洲永久精品| 九九热免费国产视频婷婷伊人五月 | 最新精品久久蜜桃 | 欧美日韩中国x| www久久国产精品| 狠狠干综合| 久久久久国产精品人妻aⅴ天堂| 精品亚洲| 久久婷婷五月天| 91激情国产| 一起草日韩| 18岁禁 茉莉成人久久| 嗯嗯啊啊操我| 亚洲婷婷五月天| 欧美肥臀在线| 午夜精品探花| 国产和美国毛片| 欧美日韩免费性爱| 亚洲AV资源| 校园春色五月天| 色婷婷五月综合| 91精品91久久久久77777| 亚洲精品无码久久AV| 久久免费看高潮毛片韩国| 国产熟妇 码视频户外直播| 六月丁香婷| 成人三级片一区二区三区视频| 国产成人免费观看在线视频| 熟女网站最新| av在线观看不卡网站| 色诱avtt| 成人一级性爱| 一区二区国产视频在线观看| www.91人妻.com| 东北女人| 亚州操逼图| 欧亚揄拍偷拍精品视频| 色色福利| 黄久久| 婷婷五月综合在线| 黄色成年| 欧美亚州手机在线| 伊人热综合| 久久99手机免费视频| 无码免费在线观看黄色片| 热久久九九热| 狠狠操夜夜| 久久偷偷色综合蜜桃| 精品国产乱码久久久久久口爆网站| 乱码人妻一区二区三区| 国语av最新自产拍在线观看| 婷婷五月天色网| 久久丁香| 偷拍 欧美 日韩| 国产九区| 亚洲图片偷拍视频区| 欧美性高潮| 一区久久久二区| 强奸国产精品视频| 情色五月天就去干| 人妻av在线| 国产白丝精品在线观看| 99九九久久| 亚洲一区二区精品福利| 91女日逼| 99操| 午夜免费福利视频一区| 丰满少妇一区二区三区免费看| 精品人妻一区二区三区-国产| 免费av高清无码| 精品无码产区一区二| 激情五月天婷婷| 欧美18 在线观看| 天天影视网色欲色香| 在线 制服丝袜中出 人妻| 午夜亚洲WWW湿好大| 97视频新免费| 97超级久久强资源| 亚洲最新中文字幕免费| 91n欧美| 国产精品天干天干综合网麻豆| 欧美亚洲中文字幕| 亚洲精品久久久久毛片A片拉屎| 国产美女口爆吞精| 婷婷五月天色| 操操操日本的逼| 97免费在线观看| 操少妞在线视频| 男人天堂.AB| 国产日本久久免费精品| 青青操网| 亚州性色| 亚洲久久东京热一二三四五区视频| 欧美久久九九| 一个人免费HD91视频| 1769成人国产精品视频| 久久九九精品一区二区| 精品国产99| 国产欧美伊人| 亚卅熟女乱色| 精品国产一区二区三区四区在线看| 久久久啊啊啊| 国产99999久久精品| 91+欧美| 九九九九九九九精品视频| 乱伦日本色图AⅤ| 妇女性内射冈站HDWWWCOM| 嗯嗯啊啊啊好爽| 丰满丝袜少妇AV| 色欲人妻一区二区在线| 夂久色| 丁香五月性| 亚洲少妇综合在线播放| gogogo免费高清看中国国语| 欧美一二三| 欧美综合中文| 精品无码一区二区三区| 熟女高潮合集-永久久久-成人AV | 东京热综合久久一区二区| 国产精品久久久久999| 国产极品久久久| 人妻美腿丝袜制服诱惑综合天堂-| 丁香五月激情婷婷| 伊人色综合网电影| 人人操人人摸人 | 亚洲综合69| 日韩人妻精品中文字幕| 九热大香蕉| 97色爱| 2025亚洲男人天堂| 国产怡红院| 九九九九九九亚洲| 奸色色 男人天堂 天天射| 黑丝少妇| 小草三级久久观看| 人人喜人人妻| 免费农村成人少妇人妻Aa一区二区视频 | 婷婷五月天无码 | AV中文字幕三四五| 青青草大香蕉视频| 97国产精品一区| 超碰人妻97| 亚洲av青草久久一区二区| av激情亚洲五月天| 日本爽爽爽爽爽爽免费视频| 国产又粗又大硬免费色网视频| 婷婷色综合欧美日韩| 日韩性爱啪啪视频| 青草草免费网站av| 91精品女厕偷拍视频| 波多野结衣先锋影音| 凸凹视频在线观看| 五月婷婷综合网| 久久这里都是精品| 九九成人精品| 91亚洲欧美综合高清在线| 天天综合站| 日本媚薬中文字幕在线| 欧美色欧美| 2017人人操,人人摸| 视频国产精品未满十八禁止在线观看| 综合影视国产无码| 五月丁香综合激情| 日本加靬比网站发布页| 国产和美国毛片| 98久久超碰| 日韩免费中文字幕视频| 亚洲天堂一区二区久久| 日本欧美亚洲高清在线看| h在线看免费版在线看| 久久99国产综合精品女同| 欧美人妻色| av影院十区| 青娱乐福利99| 亚洲欧洲国产综合av| 亚洲 图片 综合91| 一区二区三区色综合| 亚洲一区二区av| 一二三四视频中文字幕在线看| 竹菊影视国产一区二区| 中文字幕二区日韩天堂| 色大香蕉97N| 91n处女在线观看| 国产探花日韩援交| 狠狠色综合网| 97视频在| 一本久道久久综合狠狠爱一密臀精| 欧美激情性久久久久久| 久久这里只精品99re66图| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 青青操在线视频| 综合av社区| 99热这里只有精| 色天欧美| 亚洲乱码精品一区二区| 国产福利影视| 艳尻美人妻| 欧美大片91| 久久香蕉国产线看观看猫咪av| 密臀在线免费观看| 亚洲精品国产拍免费91在线| 91人妻精华帖| 国产suv精品一区二区四| 四虎免费在线播放| 强奸乱伦亚洲第一页| 91精品电影18| 日日躁夜夜躁狠狠躁超爽| 最新中文字幕精品在线| 91欧美长吊| 久久9久| 丁香五月天堂网| 国产精品毛片| 97人妻免费中文字幕| 日夜久久久九九九久| 五月丁香激情四射| 一区二区日韩欧美久久| 99精品在线| 黄片免费久久久久久久| 青青草伊人久久| 国产精品福利资源在线尤物| 视频二区美腿丝袜制服人妻欧美| 啊啊啊啊,啊啊好多水| www.av在线视频| 欧美中字二区| 国产精品ⅴ无码大片在线看.| 亚洲情色第一页| 91成人无码| 亚洲熟妇极品| 欧美色视| 精品精品精品| 国产精品扒开腿做爽爽爽视频| 99久久综合网| 日韩天天综合| 久久久久久久久久8888| 少妇高潮九九九九九九九| 亚洲精品日日夜夜52| 国产熟女高潮一区二区三区| 逼逼逼逼操操操操操操操操操午夜剧场| 午夜天堂网| 欧美不卡在线一区二区| 亚洲一区二区三区麻豆传媒| 国产精品无码成人精品| 密臀AV在线| 国产51色综合久久免费| 久日综合网| 国产一区二区啪啪视频| 蜜臀99久久精品| 久久久com| 午夜毛片亚洲精品片国产久久久| 天天爽爽爽爽| 激情综合网激情综合| 日韩丝袜人妻AV| 五月丁香六月综合缴清无码 | 日韩欧美成人午夜福利| 人妻少妇精品久久久| 强奸乱伦中文字幕AV| 久久精品操| 97色伦欧美| 人妻精品免费一二三区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 日韩一区二区精彩视频| 超碰夫妻97| 免费看久久久性性| 老熟妇91| 青青草大香蕉在线视频| 亚洲成人一区二区精品| av2014 日韩在线中文字幕| 男人天堂2019亚洲| 色综合V| 综合大香蕉美。| 男人兔费天堂| 不卡av在线中文字幕| 日本高清视频在线观看黄已三辽| 狠狠操狠狠插| 日韩欧美午夜一区二区| 日韩丨制服丨中文|在线| 国产亚洲一黄| 午夜激情成人在线观看| 久久熟女嫩草成人片免费| 国产一区二区三区中文字幕| 精品国产无码中文| 亚洲久久天堂| 日本九九久久99播| 1769一区二区| 欧美欧美啪啪视频| 综合色久欲| 久久9久9久99久9久9| 日韩成人精品视频自拍| 欧美日韩中文字幕人妻| 91天射| 亚码激情| 久久高清欧美国产| 狠狠操狠狠操操| 国产又长又大又粗的视频| 久久色激情一区二区三区| 嫩草影院在线观看精品| 一级一性爱免费视频| …中文字幕亚洲乱,97人妻无码费视…| 国色天香av| 亚洲第一无码播放立川理惠| 精品一区二区三区国产| 国产精品69久久久久久久| 一区,二区,三区网站| 亚洲精品亚洲人成人网| 国产 日韩 欧美高清| 9999久久久| 999热日韩精品| 天天干人妻| 国内精品不卡无毒99999| 超碰在线成人| 国产区性爱在线视频秋霞豆| 一个人免费视频观看在线WWW| 欧美综合色,www| 久艹99| 中文字幕精品久久久久人妻红杏ⅰ| 混色激情av| 丁香婷婷色五月| 五月天黄色激情视频| 秋霞成人一级在线观看| 亚洲一区二区三区春色| 亚洲资源站| 欲色综合| 99这里只有精品| 色香91| 少妇人妻激情四射| 久久爱超碰网| 99蜜桃臀亚洲成人在线观看| 久视频在线观看| 色女女女导航| 日本三级韩三级99久久| 亚洲夜夜欢无码一区二区| A 天堂在线观看视频| 3D污黄视频在线观看| 超碰在线观看av不卡| 日本黄色大片一级视频免费麻豆| 久草尤物| 欧美特大AA级黄片| 91人妻人人澡人人爽人人精品| 人人操我人人干| 激情小说日韩无码| 国产精品福利资源在线尤物| 97在线视频观看| 亚洲九九九| 老司机福利青青草| 欧美乱伦专区| 欧美视频一| 中文字幕美女91| 天天躁日日躁AAAAXXXX国产| 国产精品久久妻无码网站| 91精品人妻偷情| 一本色道久久天天射天天干| 九九热久久99精品re| 亚洲 自拍偷拍 欧美| 强奸乱伦Av网| 自拍偷拍2025在线观看| 亚洲成?V人片在线观看福利| 丁香九月激情啪| 亚洲欧美大| 狠狠热这里都是精品| 国产第11页| 精品超碰色|