做網(wǎng)站用的什么服務(wù)器嗎廣州seo網(wǎng)站優(yōu)化培訓(xùn)
一、什么是弱網(wǎng)環(huán)境
對于弱網(wǎng)的定義,不同的應(yīng)用對弱網(wǎng)的定義是有一定的差別的,不僅要考慮各類型網(wǎng)絡(luò)最低速率,還要結(jié)合業(yè)務(wù)場景和應(yīng)用類型去劃分。按照移動的特性來說,一般應(yīng)用低于2G速率的都屬于弱網(wǎng),也可以將3G劃分為弱網(wǎng)。除此之外,弱信號的Wifi通常也會被納入到弱網(wǎng)測試場景中。隨著國內(nèi)移動端迅猛發(fā)展,大大增加用戶碎片化使用移動端的概率,用戶可能會在地鐵上,高鐵上,巴士上,甚至是電梯,電梯間,樓梯間,隧道,車庫,大型活動現(xiàn)場等空間使用互聯(lián)網(wǎng)應(yīng)用。
二、音視頻受網(wǎng)絡(luò)限制的原理
Q1:當(dāng)請求從客戶端發(fā)出,最后服務(wù)器響應(yīng)請求并返回,看似簡單的流程,中間經(jīng)過了些什么呢,又是有哪些流程會受到弱網(wǎng)情況的影響呢?
首先,簡要介紹一下傳輸層協(xié)議,TCP/IP協(xié)議族是一個四層協(xié)議系統(tǒng)。
- 從下到上分別為 數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層,每一層都通過若干協(xié)議實現(xiàn)完成不同的功能。
- 其中數(shù)據(jù)鏈路層實現(xiàn)了網(wǎng)卡接口的網(wǎng)絡(luò)驅(qū)動程序,處理數(shù)據(jù)在物理媒介上的傳輸,并隱藏了各個物理媒介之間的區(qū)別,為上層協(xié)議提供了統(tǒng)一的接口;網(wǎng)絡(luò)層 通常網(wǎng)絡(luò)上的兩臺主機(jī)之間不是直接相連接的,兩種之間存在多個中間節(jié)點(路由器)。它的的作用就是在眾多的節(jié)點中選擇中間節(jié)點,使兩臺主機(jī)能夠通信,確定兩臺主機(jī)的的地址管理和路由選擇;傳輸層為兩臺主機(jī)上的應(yīng)用提供端到端(end to end)的通信。與網(wǎng)絡(luò)層不同的是,傳輸層只關(guān)心通信的起始端和目的端的可靠數(shù)據(jù)傳輸,而不在乎數(shù)據(jù)包的中轉(zhuǎn)過程;應(yīng)用層負(fù)責(zé)處理應(yīng)用程序的邏輯(比如文件傳輸、名稱查詢和網(wǎng)絡(luò)管理等)作用于用戶層。而數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層負(fù)責(zé)處理網(wǎng)絡(luò)通信細(xì)節(jié),這部分必須穩(wěn)定而高效,因此它們都在內(nèi)核空間中實現(xiàn)。
- 而剛提到的數(shù)據(jù)通信,從應(yīng)用層發(fā)送一段數(shù)據(jù)時,需要將該數(shù)據(jù)通過協(xié)議棧從上往下依次傳遞,同時每一層協(xié)議都會在上一層數(shù)據(jù)的基礎(chǔ)上加上自己的頭部信息 (比如我們常見的TCP/UDP協(xié)議,在接收到我們要發(fā)送的數(shù)據(jù)時,就會在我們要發(fā)送的數(shù)據(jù)前面加上自己的頭部信息)。完成所有數(shù)據(jù)封裝后,當(dāng)幀達(dá)到目的主機(jī)后,重新沿著協(xié)議棧自低而上依次傳遞,各層協(xié)議依次處理幀中本層負(fù)責(zé)的頭部,獲取到所需信息,并最終將處理后的數(shù)據(jù)分用交給應(yīng)用程序。由此底層經(jīng)過繁瑣的數(shù)據(jù)處理后,完成一次數(shù)據(jù)的直接通信,而不同階段客戶端和服務(wù)器處于不同網(wǎng)絡(luò)環(huán)境,每一層協(xié)議均會受網(wǎng)絡(luò)狀況的影響。
Q2:已知數(shù)據(jù)在網(wǎng)絡(luò)層、數(shù)據(jù)傳輸層、應(yīng)用層等都會受到網(wǎng)絡(luò)影響,那具體會存在哪些網(wǎng)絡(luò)問題呢?又是如何去對抗解決這些網(wǎng)絡(luò)問題呢?
1、影響網(wǎng)絡(luò)傳輸質(zhì)量有很多原因,比如目標(biāo)網(wǎng)站所在的服務(wù)器帶寬不足或負(fù)載過大、網(wǎng)線問題導(dǎo)致網(wǎng)速變慢、防火墻的過多使用、系統(tǒng)資源不足等都會影響網(wǎng)絡(luò)質(zhì)量,其中最主要的是 網(wǎng)絡(luò)擁塞、網(wǎng)絡(luò)丟包、網(wǎng)絡(luò)抖動 等問題,這些問題會是造成音視頻卡頓、實時性不佳的主要原因。
2、解決這些核心網(wǎng)絡(luò)問題,主要由上層 網(wǎng)絡(luò)層(部分網(wǎng)絡(luò)層無法解決,也會由 應(yīng)用層 參與解決)。
其中,網(wǎng)絡(luò)傳輸層主要協(xié)議有 TCP 和 UDP ,傳輸層協(xié)議在 TCP/IP 分層協(xié)議中位于應(yīng)用層之下,一般在操作系統(tǒng)內(nèi)部提供實現(xiàn)。其中,TCP 是面向連接的可靠傳輸協(xié)議,為數(shù)據(jù)傳輸?shù)耐暾院陀行蛐蕴峁┝吮U?#xff1b;UDP 是無連接的不可靠傳輸協(xié)議,數(shù)據(jù)傳輸?shù)目煽啃酝耆挥蓱?yīng)用層處理。
實時音視頻應(yīng)用場景下,UDP 會作為優(yōu)先選擇已經(jīng)是廣泛共識。原因主要包括以下幾點:
1、TCP 協(xié)議并非為音視頻實時應(yīng)用場景設(shè)計,其內(nèi)部的擁塞控制和差錯控制等機(jī)制為了可靠性和高吞吐量而導(dǎo)致延時的增加,在弱網(wǎng)環(huán)境下延時的惡化更為明顯。ITU StandardG.114 對延時的定義是,端到端延時大于 400ms 時,用戶的交互體驗將受到明顯的影響。
2、TCP 的擁塞控制機(jī)制和差錯控制機(jī)制 位于操作系統(tǒng)內(nèi)部實現(xiàn),應(yīng)用層無法優(yōu)化,無法應(yīng)對不同場景需求進(jìn)行調(diào)整,嚴(yán)重 缺乏靈活性。
3、UDP 協(xié)議本身開銷比 TCP 小,傳輸控制策略完全交由應(yīng)用層來實現(xiàn),具有足夠的靈活性。
擁塞問題:
當(dāng)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)流量超過網(wǎng)絡(luò)瓶頸容量,就會產(chǎn)生擁塞問題。
擁塞的直接影響是突發(fā)丟包或者突發(fā)抖動,如果不及時預(yù)測擁塞的發(fā)生,及時降低發(fā)送數(shù)據(jù)量,接收端將會出現(xiàn)卡頓、延時大、畫質(zhì)差等等問題。
擁塞產(chǎn)生的原因有兩點:
接收方容量不夠
網(wǎng)絡(luò)內(nèi)部有瓶頸
那作為測試,我們一是 需要快速準(zhǔn)確地進(jìn)行網(wǎng)絡(luò)擁塞探測;二是 觀測是否可以 避免擁塞以及盡可能快地從擁塞狀態(tài)恢復(fù)。
擁塞探測 根據(jù)觀測數(shù)據(jù)的差異可用分為兩類:
基于丟包的算法(Loss-based):通過丟包事件來檢測網(wǎng)絡(luò)擁塞。
基于延時的算法(Delay-based):通過對延時的測量來判斷網(wǎng)絡(luò)擁塞。
丟包問題:
如上所述,實時交互式媒體傳輸基于 RTP/UDP 協(xié)議,丟包問題由應(yīng)用層處理。
網(wǎng)絡(luò)傳輸方面的對抗丟包技術(shù)手段主要包括 重傳(ARQ)、前向糾錯(FEC)。
信源編碼方面根據(jù)數(shù)據(jù)以及編碼方的不同也可以提供某些特定的抗丟包能力,比如視頻編碼中采用 B 幀降低丟包的影響。
抖動問題:
概括而言,抖動問題就是 網(wǎng)絡(luò)傳輸延時變化問題,抖動越大表示網(wǎng)絡(luò)傳輸延時變化越大。
抖動問題會造成接收端卡頓、播放快進(jìn)等嚴(yán)重影響音視頻溝通體驗的問題。造成抖動問題的原因是多方面的,比如新的流加入造成網(wǎng)絡(luò)資源競爭加劇、源端數(shù)據(jù)發(fā)送速率本身不平穩(wěn)以及其他網(wǎng)絡(luò)原因。
目前處理抖動的通用策略是 接收端建立抖動緩沖區(qū)(JitterBuffer)來消除抖動。接收端通過增加抖動延時來吸收不均勻的延時,達(dá)到均勻播放的目的。
三、弱網(wǎng)測試保障適用場景
- 弱網(wǎng)測試對 直播應(yīng)用 和 音視頻應(yīng)用 都是剛需,他們所面對的網(wǎng)絡(luò)環(huán)境具有較強(qiáng)的 復(fù)雜性、異構(gòu)型,用戶可能會在任何地方任何網(wǎng)絡(luò)條件下進(jìn)行直播或者視頻會議。特別是視頻直播,用戶可能會在地鐵里觀看直播,可能在高鐵上觀看直播,主播有可能在戶外信號弱的地方進(jìn)行推流,也有可能在大型活動的現(xiàn)場進(jìn)行推流。而視頻會議的員工可能在全球的任何地方,有可能當(dāng)?shù)氐木W(wǎng)絡(luò)條件較差。
- 但是直播和視頻會議等實時音視頻應(yīng)用,對視頻的 連續(xù)性、圖像質(zhì)量、音頻質(zhì)量、連接的穩(wěn)定性 要求都是非常高的,在不同環(huán)境下的嚴(yán)重程度也存在很大差異,任何一方面做得不盡人意都可能影響到用戶對產(chǎn)品的使用感受,可能會導(dǎo)致用戶流失。因此非常有必要針對各種可能遇到的弱網(wǎng)環(huán)境,對應(yīng)用的各方面進(jìn)行優(yōu)化和調(diào)整。這樣一來,如何檢測復(fù)雜網(wǎng)絡(luò)下音視頻的體驗,是音視頻測試關(guān)注的重點問題。
四、弱網(wǎng)測試工具分享
- 通過對市面上8種測試工具進(jìn)行調(diào)研,考慮到平臺兼容性、最終選中Charles/Qnet兩種弱網(wǎng)檢測工具。
其中包括 charles、Qnet 兩種弱網(wǎng)檢測工具的使用,測試工具弱網(wǎng)場景的模擬原理了話,就是通過實時將系統(tǒng)接受和發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包攔截下來,人工的造成延遲、掉包和篡改操作后再進(jìn)行發(fā)送。無論是要復(fù)現(xiàn)網(wǎng)絡(luò)異常造成的程序錯誤,還是評估應(yīng)用程序在不良網(wǎng)絡(luò)狀況下的表現(xiàn),都可以在不需額外搭建環(huán)境的情況下,在系統(tǒng)層次達(dá)到想要的效果。
五、弱網(wǎng)參數(shù)設(shè)置參考值
- 在各種各樣的弱網(wǎng)環(huán)境中,網(wǎng)絡(luò)對應(yīng)用的影響因素大致分為:可用帶寬、丟包、時延、時延抖動等。
- 通過對實地網(wǎng)絡(luò)參數(shù)進(jìn)行測速,如電梯、地鐵場景等,參照運營商輸出的14種弱網(wǎng)場景,給出大家對于不同弱網(wǎng)場景,參數(shù)設(shè)定的一個參考值,下面附件中也提供了可直接用于charles導(dǎo)入的網(wǎng)絡(luò)參數(shù)文件。
ps:實地測速使用app端的網(wǎng)絡(luò)測速工具:appstore 測網(wǎng)速
名詞解釋:
上行速率:上行速率是指移動終端給基站發(fā)送信息時的數(shù)據(jù)傳輸速率,
下載速度:比如手機(jī)、筆記本等無線終端給基站傳輸數(shù)據(jù)速率;下行速率是指基站向移動終端發(fā)送信息時的傳輸速率,比如手機(jī)或筆記本等無線終端從基站或者網(wǎng)絡(luò)下載數(shù)據(jù)的速率。
丟包率:丟包率(Loss Tolerance或Packet Loss Rate)是指測試中所丟失數(shù)據(jù)包數(shù)量占所發(fā)送數(shù)據(jù)組的比率。
時延:是指一個報文或分組從一個網(wǎng)絡(luò)的一端傳送到另一個端所需要的時間。它包括了發(fā)送時延,傳播時延,處理時延,排隊時延。(時延=發(fā)送時延+傳播時延+處理時延+排隊時延)一般,發(fā)送時延與傳播時延是我們主要考慮的。
EDGE:由于EDGE是一種介于現(xiàn)有的第二代移動網(wǎng)絡(luò)與第三代移動網(wǎng)絡(luò)之間的過渡技術(shù),因此也有人稱它為"二代半"技術(shù)。
網(wǎng)絡(luò)時延參考自百度百科:
上述數(shù)據(jù)參考自:https://blog.csdn.net/mao834099514/article/details/79456881
六、音視頻的極限網(wǎng)絡(luò)
通過對線上音視頻的競品調(diào)研,探索應(yīng)用于不同場景下音視頻的極限網(wǎng)絡(luò)網(wǎng)端。
快剪輯平臺【抖音,快手,秒剪】
編輯器功能平臺【剪映,快影,度咔,必剪(參考)】
智能成片【秒剪,抖音,快手,度咔,暢片】
1、常規(guī)UI展示:通過對 抖音,快手,秒剪 APP進(jìn)行弱網(wǎng)檢測,【2G弱網(wǎng)】是極端網(wǎng)段。
2、智能成片:通過對 秒剪,抖音,快手,度咔,暢片、粉APP 六種APP 進(jìn)行弱網(wǎng)檢測,【3G弱網(wǎng)】是智能成片功能的極限網(wǎng)段;低于該弱網(wǎng)限制,對應(yīng)功能的高、中、低端機(jī)型,業(yè)務(wù)功能無法正常應(yīng)用。
3、ASR 語音識別+導(dǎo)出等操作:通過對 剪映,快影,度咔,必剪(參考)、粉 六種APP 進(jìn)行弱網(wǎng)檢測,【3G弱網(wǎng)】是ASR功能/導(dǎo)出操作的極限網(wǎng)段,低于該弱網(wǎng)限制,對應(yīng)功能的高、中、低端機(jī)型,業(yè)務(wù)功能無法正常應(yīng)用。
七、弱網(wǎng)用例場景設(shè)計
實際需要進(jìn)行弱網(wǎng)場景覆蓋場景,需根據(jù)業(yè)務(wù) P0 核心場景劃分,以及 新增/產(chǎn)品關(guān)注 業(yè)務(wù)場景進(jìn)行弱網(wǎng)的覆蓋。
八、弱網(wǎng)經(jīng)典問題分享
針對直播、剪輯視頻場景,遇到的客戶端弱網(wǎng)問題、以及對應(yīng)的弱網(wǎng)解決方案進(jìn)行分享:
3、串行接口請求失敗,一個接口失敗導(dǎo)致全部失敗
1、根據(jù)業(yè)務(wù)進(jìn)行排查 / 性能調(diào)優(yōu)
2、根據(jù)素材進(jìn)行素材瘦身
3、拆分減少串行處理的接口,數(shù)據(jù)異步返回后針對性刷新
持續(xù)更新…
九、單位換算分享
冷知識:bps kbps mbps 換算規(guī)則
Mbps 即 百萬位每秒,Kbps 即 千位每秒,bps 位每秒
速度單位,bit即比特,通常用b(小寫)表示,指一位二進(jìn)制位,1Mbps=1000Kbps=1000000bps;
所以1Mbps=1000 000bps;
這是通常用來衡量帶寬的單位,指每秒鐘傳輸?shù)亩M(jìn)制位數(shù)
MB即百萬字節(jié)也稱兆字節(jié);
KB即千字節(jié);
B即字節(jié);
之間關(guān)系為1MB=1024KB=1024*1024B;
1B=8b
附:charles網(wǎng)絡(luò)設(shè)置xml文件(可直接導(dǎo)入)