移動(dòng)網(wǎng)絡(luò)下的性能優(yōu)化之網(wǎng)絡(luò)篇

《圖解HTTP》這本書真的很簡(jiǎn)潔猫妙,應(yīng)付工作XX 足夠了吧

移動(dòng)網(wǎng)絡(luò)延遲高的原因

喚醒延遲

在移動(dòng)網(wǎng)絡(luò)下,手機(jī)要接入網(wǎng)絡(luò)卤橄,必須先向控制平臺(tái)發(fā)送申請(qǐng)乳附。只有當(dāng)控制平臺(tái)將手機(jī)切換到Active狀態(tài),手機(jī)才能進(jìn)行通信色罚,這一過(guò)程在3G網(wǎng)絡(luò)下消耗的時(shí)間一般在500-2500ms之間碰缔,我們稱之為喚醒延遲。這是一個(gè)造成移動(dòng)網(wǎng)絡(luò)延遲的原因戳护。

HTTP延遲

在APP開發(fā)中金抡,我們會(huì)經(jīng)常用到HTTP協(xié)議,HTTP延遲就是在使用這個(gè)協(xié)議時(shí)產(chǎn)生的腌且。
pasted-image

一個(gè)HTTP請(qǐng)求從客戶端發(fā)送到服務(wù)端的過(guò)程中梗肝,需要進(jìn)行域名查詢,這時(shí)客戶端就會(huì)發(fā)起一個(gè)DNS Query铺董。這個(gè)過(guò)程所需的時(shí)間和ISP(互聯(lián)網(wǎng)服務(wù)供應(yīng)商)巫击、請(qǐng)求頁(yè)面知名度、是否存在緩存以及服務(wù)器的響應(yīng)時(shí)間都有關(guān)系精续“用蹋客戶端在拿到解析出的IP后,還要經(jīng)過(guò)我們熟知的TCP三次握手重付,這個(gè)過(guò)程需要耗時(shí)幾百毫秒顷级,甚至可能達(dá)到幾秒。TCP握手完成后确垫,還需發(fā)送HTTP請(qǐng)求傳遞我們的參數(shù)弓颈,取得服務(wù)器返回的數(shù)據(jù)拣凹。如果是HTTPS協(xié)議的話還需要進(jìn)行TLS握手,這就又要增加兩輪的延遲等待恨豁。

所有的這些都需要消耗時(shí)間嚣镜,再加上RRC控制平臺(tái)喚醒手機(jī)到Active狀態(tài)所要消耗的時(shí)間,形成以下3G網(wǎng)絡(luò)和4G網(wǎng)絡(luò)的對(duì)比圖橘蜜。

image.png

從表中我們可以看到:在沒有計(jì)算服務(wù)器反應(yīng)時(shí)間的情況下菊匿,3G網(wǎng)絡(luò)下一條HTTP請(qǐng)求需要600-3500ms,4G網(wǎng)絡(luò)下大概也需要0.5s计福。

核心網(wǎng)絡(luò)延遲

下圖是在移動(dòng)網(wǎng)絡(luò)下跌捆,一個(gè)手機(jī)向服務(wù)器傳輸數(shù)據(jù)的完整過(guò)程。

首先象颖,手機(jī)需要切換到Active狀態(tài)才能正常通信佩厚。手機(jī)向無(wú)線接入網(wǎng)絡(luò)發(fā)送一條通信請(qǐng)求,無(wú)線接入網(wǎng)絡(luò)收到后说订,給手機(jī)分配通信資源抄瓦。這一步驟在3G網(wǎng)絡(luò)最多需要花費(fèi)2s,手機(jī)切換到Active狀態(tài)后陶冷,開始向無(wú)線接入網(wǎng)絡(luò)傳輸數(shù)據(jù)钙姊,基站無(wú)線接入網(wǎng)絡(luò)收到后把數(shù)據(jù)發(fā)送給服務(wù)網(wǎng)關(guān),服務(wù)網(wǎng)關(guān)將數(shù)據(jù)傳給數(shù)據(jù)網(wǎng)關(guān)埂伦,數(shù)據(jù)網(wǎng)關(guān)再傳輸給服務(wù)器煞额。

我們?cè)倏纯捶?wù)器收到數(shù)據(jù)后給手機(jī)返回?cái)?shù)據(jù)的通信過(guò)程,如圖所示:

服務(wù)器將數(shù)據(jù)傳給數(shù)據(jù)網(wǎng)關(guān)沾谜,數(shù)據(jù)網(wǎng)關(guān)把數(shù)據(jù)交給服務(wù)網(wǎng)關(guān)膊毁,這時(shí)服務(wù)網(wǎng)關(guān)并不知道這設(shè)備在哪,只有把這個(gè)任務(wù)交給無(wú)線接入網(wǎng)絡(luò)基跑,無(wú)線接入網(wǎng)絡(luò)找到設(shè)備后將手機(jī)切換到Active狀態(tài)準(zhǔn)備接受數(shù)據(jù)婚温,然后告訴服務(wù)網(wǎng)關(guān)可以發(fā)送數(shù)據(jù)了,服務(wù)網(wǎng)關(guān)收到指令后將數(shù)據(jù)交給無(wú)線接入網(wǎng)絡(luò)涩僻,無(wú)線接入網(wǎng)絡(luò)再將數(shù)據(jù)發(fā)給手機(jī)缭召。這樣一次通信才算是最終完成。

我們只想完成一次請(qǐng)求逆日,而在這傳輸過(guò)程中我們卻不得不忍受各種各樣的延遲,包括路由選擇延遲萄凤、喚醒延遲室抽、控制平臺(tái)延遲、骨干網(wǎng)絡(luò)延遲靡努、用戶平臺(tái)延遲等坪圾。

如何降低延遲

提前喚醒

如果對(duì)速度要求很高晓折,我們可以提前喚醒手機(jī),并使其一直處于喚醒狀態(tài)兽泄,當(dāng)然這是以損耗電池為代價(jià)的漓概。另外從用戶體驗(yàn)上來(lái)說(shuō),對(duì)于超過(guò)2s的請(qǐng)求都應(yīng)該給一個(gè)進(jìn)度狀態(tài)病梢。

數(shù)據(jù)緩存

最快的請(qǐng)求就是不請(qǐng)求胃珍。網(wǎng)絡(luò)通信的延遲是不可以避免的,但是對(duì)于已經(jīng)請(qǐng)求過(guò)的數(shù)據(jù)請(qǐng)務(wù)必緩存下來(lái)蜓陌,在下次再次訪問(wèn)時(shí)直接從本地獲取觅彰。這樣不僅能讓用戶有更流暢的操作,即使是在斷網(wǎng)的情況下也能使用APP钮热。

壓縮資源

GZIP壓縮資源填抬。GZIP壓縮一般對(duì)純文本內(nèi)容可壓縮到原大小的40%,這樣可以有效減少服務(wù)器帶寬占用隧期,提高我們我們的請(qǐng)求速度飒责。

使用WebP圖片格式

使用合適的圖片格式。一般圖片資源至少占整個(gè)APP數(shù)據(jù)量的50%以上仆潮,所以壓縮圖片大小對(duì)提高性能也是非常重要的读拆。這里推薦使用WebP圖片格式,在質(zhì)量相同的情況下鸵闪,WebP格式圖片的體積要比JPEG格式圖片小40%檐晕。

使用不同策略

現(xiàn)在2G,3G蚌讼,4G網(wǎng)絡(luò)并存辟灰,網(wǎng)絡(luò)速度差距也很大,針對(duì)每種網(wǎng)絡(luò)應(yīng)該有不同的應(yīng)對(duì)策略篡石。比如2G網(wǎng)絡(luò)不自動(dòng)打開圖片芥喇,3G,4G網(wǎng)絡(luò)詢問(wèn)是否播放視頻等凰萨。

使用CDN

在全國(guó)各地多布設(shè)CDN加速節(jié)點(diǎn)继控,特別是網(wǎng)絡(luò)流量比較大的區(qū)域,也能有效緩解核心網(wǎng)絡(luò)所帶來(lái)的延遲胖眷。

-END-

原文鏈接:blog.wilddog.com

本站內(nèi)容采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議進(jìn)行許可武通。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市珊搀,隨后出現(xiàn)的幾起案子冶忱,更是在濱河造成了極大的恐慌,老刑警劉巖境析,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囚枪,死亡現(xiàn)場(chǎng)離奇詭異派诬,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)链沼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門默赂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人括勺,你說(shuō)我怎么就攤上這事缆八。” “怎么了朝刊?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵耀里,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拾氓,道長(zhǎng)冯挎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任咙鞍,我火速辦了婚禮房官,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘续滋。我一直安慰自己翰守,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布疲酌。 她就那樣靜靜地躺著蜡峰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朗恳。 梳的紋絲不亂的頭發(fā)上湿颅,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音粥诫,去河邊找鬼油航。 笑死,一個(gè)胖子當(dāng)著我的面吹牛怀浆,可吹牛的內(nèi)容都是我干的谊囚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼执赡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镰踏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起搀玖,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤余境,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后灌诅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芳来,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年猜拾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了即舌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挎袜,死狀恐怖顽聂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盯仪,我是刑警寧澤紊搪,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站全景,受9級(jí)特大地震影響耀石,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜爸黄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一滞伟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炕贵,春花似錦梆奈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鳖轰,卻和暖如春清酥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脆霎。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工总处, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睛蛛。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓鹦马,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親忆肾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子荸频,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容