<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jack Jiang

    我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
    posts - 494, comments - 13, trackbacks - 0, articles - 1

    本文原始內(nèi)容由愛(ài)奇藝技術(shù)產(chǎn)品團(tuán)隊(duì)原創(chuàng)分享,本次有修訂和改動(dòng)。

    1、引言

    由于移動(dòng)網(wǎng)絡(luò)的復(fù)雜性特點(diǎn),編寫(xiě)高質(zhì)量、體驗(yàn)好的具備網(wǎng)絡(luò)通信能力的移動(dòng)端應(yīng)用(尤其是即時(shí)通訊這類(lèi)網(wǎng)絡(luò)質(zhì)量高度敏感的應(yīng)用)有很大的挑戰(zhàn)性。

    我們平時(shí)看到的移動(dòng)網(wǎng)絡(luò)主要有如下三個(gè)典型特點(diǎn):

    1)移動(dòng)狀態(tài)網(wǎng)絡(luò)信號(hào)不穩(wěn)定,高時(shí)延、易抖動(dòng)丟包、通道狹窄;

    2)移動(dòng)狀態(tài)網(wǎng)絡(luò)接入類(lèi)型和接入點(diǎn)變化頻繁;

    3)移動(dòng)狀態(tài)用戶(hù)使用高頻化、碎片化、非WIFI流量敏感。

    (▲ 上述文字,引用自《移動(dòng)端IM開(kāi)發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”》)

    正是由于上述特點(diǎn),移動(dòng)端應(yīng)用在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)通信時(shí)會(huì)面臨各種復(fù)雜多變的問(wèn)題。

    無(wú)論后面的技術(shù)有多復(fù)雜,但對(duì)于普通用戶(hù)使用APP來(lái)說(shuō),能順暢的完成網(wǎng)絡(luò)請(qǐng)求,是理所當(dāng)然的事。換句話(huà)說(shuō),APP網(wǎng)絡(luò)請(qǐng)求成功率,重要性直接體現(xiàn)在它能直接決定APP服務(wù)的可用性,直接影響到數(shù)據(jù)通信、視頻播放、廣告展現(xiàn)、支付便捷等服務(wù)質(zhì)量。

    本文將以愛(ài)奇藝的iOS端APP為例,分享對(duì)移動(dòng)網(wǎng)絡(luò)請(qǐng)求成功率優(yōu)化方面的技術(shù)實(shí)踐之路。

    本文將同時(shí)發(fā)布于“即時(shí)通訊技術(shù)圈”公眾號(hào),歡迎關(guān)注:

    (本文已同步發(fā)布于:http://www.52im.net/thread-2981-1-1.html

    2、相關(guān)文章

    現(xiàn)代移動(dòng)端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請(qǐng)求速度、弱網(wǎng)適應(yīng)、安全保障

    移動(dòng)端IM開(kāi)發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”》(* 必讀好文

    移動(dòng)端IM開(kāi)發(fā)者必讀(二):史上最全移動(dòng)弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)

    全面了解移動(dòng)端DNS域名劫持等雜癥:技術(shù)原理、問(wèn)題根源、解決方案等

    美圖App的移動(dòng)端DNS優(yōu)化實(shí)踐:HTTPS請(qǐng)求耗時(shí)減小近半

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(一):DNS優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(二):網(wǎng)絡(luò)連接優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(三):移動(dòng)端弱網(wǎng)優(yōu)化篇

    3、導(dǎo)致移動(dòng)端網(wǎng)絡(luò)請(qǐng)求失敗的因素

    想要優(yōu)化移動(dòng)端網(wǎng)絡(luò)請(qǐng)求成功率,先來(lái)了解移動(dòng)端網(wǎng)絡(luò)請(qǐng)求全鏈條可能導(dǎo)致請(qǐng)求失敗的環(huán)節(jié)有哪些。

    這些環(huán)節(jié)往往由以下兩類(lèi)因素導(dǎo)致:

     
     

    第一類(lèi):不可改善因素:

    1)iOS系統(tǒng)對(duì)APP的網(wǎng)絡(luò)訪(fǎng)問(wèn)權(quán)限控制、飛行模式或者無(wú)網(wǎng)絡(luò)連接。檢測(cè)和識(shí)別這三種情況,通過(guò)適當(dāng)方式提示用戶(hù);

    2)路由器故障。

    第二類(lèi):可以改善因素:

    1)蜂窩/Wifi信號(hào)的強(qiáng)弱、連接擁堵的假連接狀態(tài);

    2)DNS故障(比如DNS劫持等);

    3)運(yùn)營(yíng)商局部節(jié)點(diǎn)故障;

    4)自有運(yùn)營(yíng)負(fù)載均衡故障;

    5)業(yè)務(wù)服務(wù)器故障:HTTP響應(yīng)錯(cuò)誤,對(duì)應(yīng)APM的HTTP響應(yīng)錯(cuò)誤率;

    6)業(yè)務(wù)邏輯錯(cuò)誤:監(jiān)控子類(lèi)解析結(jié)果,對(duì)應(yīng)APM的解析錯(cuò)誤率監(jiān)控。

    對(duì)于不可改善因素:目前只能通過(guò)網(wǎng)絡(luò)診斷識(shí)別出故障類(lèi)型,引導(dǎo)用戶(hù)手動(dòng)去授權(quán)訪(fǎng)問(wèn)網(wǎng)絡(luò)或者連接可用網(wǎng)絡(luò)。

    其中,如果是路由器故障,可以引導(dǎo)用戶(hù)重啟路由器或者切換4G。通過(guò)愛(ài)奇藝APP的數(shù)據(jù)監(jiān)控,大致可以看到用戶(hù)無(wú)網(wǎng)連接的時(shí)長(zhǎng)占比有3.8%左右,這說(shuō)明提供好的無(wú)網(wǎng)提示變得十分重要,而從用戶(hù)使用蜂窩信號(hào)的弱信號(hào)(0格和1格信號(hào))時(shí)長(zhǎng)占比有9%左右時(shí)長(zhǎng),也可以看出移動(dòng)端網(wǎng)絡(luò)環(huán)境的復(fù)雜性。

     
     

    針對(duì)可以改善的因素,解決方法可大致分為三類(lèi):

    1)網(wǎng)絡(luò)層錯(cuò)誤,對(duì)應(yīng)因素1到4。主要體現(xiàn)為超時(shí)報(bào)錯(cuò);

    2)HTTP響應(yīng)錯(cuò)誤,對(duì)應(yīng)因素5。HTTP狀態(tài)碼為400及以上;

    3)解析錯(cuò)誤,對(duì)應(yīng)因素6。由基線(xiàn)網(wǎng)絡(luò)庫(kù)定義的重載接口進(jìn)行監(jiān)控。

    為了提高網(wǎng)絡(luò)請(qǐng)求成功率,首先需要建立監(jiān)控體系,從而使得基線(xiàn)網(wǎng)絡(luò)庫(kù)能夠通過(guò)網(wǎng)絡(luò)統(tǒng)計(jì)模塊向APM投遞各種維度的網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)。有了APM的數(shù)據(jù)統(tǒng)計(jì)后,才能有效的發(fā)現(xiàn)導(dǎo)致端上網(wǎng)絡(luò)失敗的原因,進(jìn)而解決問(wèn)題。

    除此之外,由于端上網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)巨大,存儲(chǔ)空間的限制使得APM只能采樣2%的用戶(hù),因此針對(duì)重點(diǎn)業(yè)務(wù)的網(wǎng)絡(luò)請(qǐng)求(比如首頁(yè))則進(jìn)行了全量采集,從而對(duì)成功率的優(yōu)化實(shí)現(xiàn)更客觀(guān)全面的評(píng)估。

    4、在基線(xiàn)網(wǎng)絡(luò)庫(kù)這一層針對(duì)不同業(yè)務(wù)提供不同的補(bǔ)償思路

    在優(yōu)化之前,通過(guò)APM的歸類(lèi)分析可以得出:請(qǐng)求失敗的主要報(bào)錯(cuò)是超時(shí)(-1001)的占比達(dá)到九成,與此同時(shí)SSL錯(cuò)誤,DNS解析錯(cuò)誤占比緊隨其后。根據(jù)這一數(shù)據(jù)統(tǒng)計(jì),重試成為最主要的請(qǐng)求成功率優(yōu)化的措施。

    經(jīng)過(guò)不斷探索和實(shí)踐總結(jié),基線(xiàn)網(wǎng)絡(luò)庫(kù)針對(duì)不同業(yè)務(wù)需求提供了四種不同的重試手段。

    1)IP直連重試,通過(guò)配置直連IP數(shù)來(lái)控制重試次數(shù):

    Scheme不變,Host改為直接使用IP(消除域名解析風(fēng)險(xiǎn))。由于此舉需要各個(gè)業(yè)務(wù)線(xiàn)自己提供直連的IP,目前接入的業(yè)務(wù)主要是登錄等強(qiáng)制要求HTTPS連接的業(yè)務(wù)。

    2)超級(jí)管道重試,可以配置1~3次重試:

    公司自研基于HTTP的網(wǎng)關(guān)代理服務(wù)(類(lèi)似于遠(yuǎn)程charles代理)。Host改為代理IP(消除域名解析風(fēng)險(xiǎn)),Scheme改為HTTP(消除SSL風(fēng)險(xiǎn),h2降級(jí)為HTTP1.1)。由于該措施需要付出流量成本,目前接入的業(yè)務(wù)都是關(guān)鍵核心業(yè)務(wù),比如首頁(yè)等。

    3)HTTP重試,可以配置1~3次重試:

    Scheme修改為HTTP(消除SSL風(fēng)險(xiǎn),h2降級(jí)為HTTP1.1),其他不變。鑒于其為普惠性重試手段,目前接入非關(guān)鍵核心的一般業(yè)務(wù)。

    4)原url重試,可以配置1~3次重試:

    Scheme和host等都不變,通常意義上理解的重試,單純的再請(qǐng)求一次。此舉目前不是推薦重試手段,由業(yè)務(wù)方自主決定。

     
     

    除了單個(gè)重試手段可以重試多次,基礎(chǔ)網(wǎng)絡(luò)庫(kù)也支持多種重試手段的組合,四種重試手段的優(yōu)先次序?yàn)椋篒P直連重試 > 超級(jí)管道重試 > HTTP重試 > 原URL重試。扣除無(wú)網(wǎng)情況,首頁(yè)推薦頁(yè)CARD接口成功率通過(guò)組合重試在2020第一季度末達(dá)到了99.76%。

     

    5、其它影響移動(dòng)端網(wǎng)絡(luò)請(qǐng)求成功率的因素

    除了重試,還有以下因素對(duì)網(wǎng)絡(luò)請(qǐng)求成功率有直接影響。

    1)HTTP/2 vs HTTP/1.1:推薦的請(qǐng)求策略是首次請(qǐng)求走H2,當(dāng)失敗重試時(shí)走HTTP/1.1:

    HTTP/2對(duì)HTTP/1.1最大改進(jìn)是共用一個(gè)TCP連接(詳見(jiàn)《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》),其在網(wǎng)絡(luò)順暢時(shí),為HTTP/2帶來(lái)了速度上的優(yōu)勢(shì)。但當(dāng)網(wǎng)絡(luò)變壞時(shí),TCP包的絕對(duì)順序編號(hào)會(huì)導(dǎo)致一個(gè)包的丟失而堵住后面所有的請(qǐng)求。這樣單TCP連接反而擴(kuò)大了擁堵,增大了請(qǐng)求失敗的可能性。

    NSURLSession是HTTP協(xié)議自適應(yīng)的,不能控制請(qǐng)求使用HTTP/2或者HTTP/1.1。不過(guò)由于業(yè)界事實(shí)上的標(biāo)準(zhǔn)要求HTTP/2必須是HTTPs的,這樣通過(guò)將URL Scheme改為HTTP可以間接降級(jí)到HTTP/1.1。

    2)適當(dāng)?shù)某瑫r(shí)設(shè)置是一個(gè)重要影響因素:

    NSURLSession的超時(shí)實(shí)際上是TCP的包間超時(shí),并不是整體請(qǐng)求耗時(shí)的超時(shí)。

     

    推薦的超時(shí)設(shè)置策略是:首次請(qǐng)求的超時(shí)可以小一點(diǎn),而重試的超時(shí)應(yīng)該大一些。

    3)接口請(qǐng)求過(guò)于密集并發(fā)可能降低請(qǐng)求成功率:

    比如播放記錄的upload接口在加上多次重試后,成功率仍然只有98.2%。APM監(jiān)控此接口在IPv4環(huán)境失敗率只有0.47%,而IPv6失敗率高達(dá)7.07%。通過(guò)端上優(yōu)化請(qǐng)求策略,降低接口的并發(fā)密度后,IPv6環(huán)境和IPv4環(huán)境同時(shí)提高到99.85%的成功率。

    4)接口數(shù)據(jù)體積越小,請(qǐng)求成功率越高:

    HTTP/2和HTTP/1.1都是基于TCP連接的,接口數(shù)據(jù)體積越小,需要傳輸?shù)腡CP包越少,傳輸失敗的概率也就降低了。目前愛(ài)奇藝APP正在從gzip轉(zhuǎn)向壓縮率更高的br(指的是Brotli壓縮算法,詳見(jiàn):《啟用 Brotli 壓縮算法,對(duì)比 Gzip 壓縮 CDN 流量再減少 20%)。

    6、提高魯棒性并防止故障的優(yōu)化措施

    在經(jīng)過(guò)各種優(yōu)化措施提高網(wǎng)絡(luò)成功率后,我們還通過(guò)下面幾個(gè)措施成功的防止線(xiàn)上故障造成的成功率瞬時(shí)下降,提高了網(wǎng)絡(luò)請(qǐng)求的魯棒性。

    1)超級(jí)管道本身的魯棒性:

    下面案例顯示使用了超級(jí)管道重試的接口錯(cuò)誤率只有3.95%,而沒(méi)有使用超級(jí)管道重試的接口錯(cuò)誤率高達(dá)28.96%。這個(gè)案例的時(shí)間點(diǎn)還沒(méi)有使用異地容災(zāi)IP,在疊加異地容災(zāi)IP之后,錯(cuò)誤率曲線(xiàn)幾乎可以抹平。

     
     

    2)HTTP重試和原URL重試在v4v6雙棧環(huán)境下,優(yōu)先IPv4:

    由于IPv6仍在建設(shè)中,有些接口在IPv6的表現(xiàn)弱于IPv4,那么可以指定重試走IPv4。

    3)TLS1.3– 1RTT的節(jié)省:

    TLS1.3將SSL握手2個(gè)RTT降為1個(gè)RTT,降低了SSL握手失敗的概率。iOS12.2開(kāi)始,NSURLSession支持TLS1.3。只需要服務(wù)器升級(jí)支持TLS1.3即可,端上無(wú)須改動(dòng)。

    4)IP復(fù)合連接競(jìng)速:

    使用TCP連接測(cè)速,目的是剔除壞IP,選擇最優(yōu)IP,從而提高請(qǐng)求的成功概率。

    經(jīng)上述措施的持續(xù)優(yōu)化,愛(ài)奇藝APP在2020Q1末,扣除無(wú)網(wǎng)情況后,業(yè)務(wù)成功率達(dá)到了99.7%,而網(wǎng)絡(luò)層成功率達(dá)到了99.77%。

    ▲ 業(yè)務(wù)成功率 = 網(wǎng)絡(luò)層成功率+HTTP響應(yīng)成功率+解析成功率

    在完成優(yōu)化后,愛(ài)奇藝APP基礎(chǔ)網(wǎng)絡(luò)庫(kù)的構(gòu)成如下:

     

    如上圖所示,基礎(chǔ)網(wǎng)絡(luò)庫(kù)各模板的功能作用如下:

    1)統(tǒng)一網(wǎng)絡(luò)庫(kù):提供一個(gè)網(wǎng)絡(luò)接口層,所有業(yè)務(wù)接口都對(duì)接使用網(wǎng)絡(luò)接口層;

    2)統(tǒng)一網(wǎng)絡(luò)庫(kù):提供一個(gè)網(wǎng)絡(luò)封裝層,對(duì)接了iOS系統(tǒng)網(wǎng)絡(luò)層NSURLSession、ASIHTTPRequest(基于CFNetwork)、和公司自研的長(zhǎng)連接網(wǎng)關(guān);

    3)網(wǎng)絡(luò)統(tǒng)計(jì)模塊:將從業(yè)務(wù)調(diào)用開(kāi)始到回調(diào)給業(yè)務(wù)方的各個(gè)環(huán)節(jié)的耗時(shí)及狀態(tài)值,變成統(tǒng)計(jì)數(shù)據(jù),上傳到APM匯合;

    4)網(wǎng)絡(luò)診斷模塊:對(duì)關(guān)鍵業(yè)務(wù)進(jìn)行診斷,包括dns解析,ping,tcpconnect,trace等工具對(duì)具體IP進(jìn)行分析,分析結(jié)果上傳到APM匯合;

    5)弱網(wǎng)檢測(cè)模塊:通過(guò)借鑒Facebook的弱網(wǎng)檢測(cè)是基于網(wǎng)速擬合的網(wǎng)絡(luò)等級(jí)分級(jí),分為網(wǎng)絡(luò)情況非常差(2G或者無(wú)網(wǎng))、網(wǎng)絡(luò)情況較差(3G)、網(wǎng)絡(luò)情況一般、網(wǎng)絡(luò)情況較好、網(wǎng)絡(luò)情況非常好五個(gè)等級(jí);

    6)HTTPDNS模塊:有效的解決了運(yùn)營(yíng)商劫持問(wèn)題;

    7)超級(jí)管道重試:基于HTTP的網(wǎng)關(guān)代理,具有異地容災(zāi)代理能力;

    8)ipv4/ipv6模塊:識(shí)別端上是ipv4 only環(huán)境、v4/v6雙棧還是ipv6 only環(huán)境;

    9)復(fù)合連接模塊:可以在server IP緩存池選出最佳IP,手段包括目標(biāo)IP連接競(jìng)速,IP歷史請(qǐng)求統(tǒng)計(jì)數(shù)據(jù)排序;

    10)網(wǎng)絡(luò)日志模塊:記錄了最近發(fā)生的失敗網(wǎng)絡(luò)請(qǐng)求詳細(xì)數(shù)據(jù)和網(wǎng)絡(luò)診斷數(shù)據(jù)。隨反饋一并提交,可以便捷的排查線(xiàn)上網(wǎng)絡(luò)問(wèn)題。

    7、未來(lái)的目標(biāo)與可能的優(yōu)化措施

    為了持續(xù)優(yōu)化網(wǎng)絡(luò)成功率,下一步目標(biāo)是扣除無(wú)網(wǎng)情況,重點(diǎn)業(yè)務(wù)成功率達(dá)到99.9%。后續(xù)考慮的優(yōu)化措施如下。

    1)Multipath:

    當(dāng)Wifi假連接的時(shí)可以走蜂窩流量,iOS 7開(kāi)始支持Multipath特性(詳見(jiàn):《揭開(kāi) iOS 7 之 Multipath TCP 的面紗》)。

    2)QUIC:

    QUIC是基于UDP的,由于運(yùn)營(yíng)商對(duì)UDP有針對(duì)性的丟包,實(shí)測(cè)QUIC并沒(méi)有體現(xiàn)出優(yōu)勢(shì)。然而,考慮到libcurl在2019已提供完整QUIC能力,NSURLSession不久也會(huì)支持QUIC。隨著運(yùn)營(yíng)商對(duì)UDP包的干擾減少,QUIC的優(yōu)勢(shì)將得到體現(xiàn)。

    如果對(duì)QUIC協(xié)議感興趣,可以讀一讀下面這些文章:

    網(wǎng)絡(luò)編程懶人入門(mén)(十):一泡尿的時(shí)間,快速讀懂QUIC協(xié)議

    技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解

    讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享

    七牛云技術(shù)分享:使用QUIC協(xié)議實(shí)現(xiàn)實(shí)時(shí)視頻直播0卡頓!

    3)智能調(diào)度并發(fā):

    更精準(zhǔn)更靈敏的弱網(wǎng)識(shí)別,弱網(wǎng)下對(duì)關(guān)鍵核心業(yè)務(wù)進(jìn)行傾斜。

    4)HTTPDNS的push能力:

    HTTPDNS打通APM的質(zhì)量監(jiān)控體系后,通過(guò)push及時(shí)下線(xiàn)故障IP。

    關(guān)于移動(dòng)端DNS問(wèn)題上的優(yōu)化,業(yè)內(nèi)已經(jīng)有了很多總結(jié),有興趣可以深入研究:

    全面了解移動(dòng)端DNS域名劫持等雜癥:技術(shù)原理、問(wèn)題根源、解決方案等

    美圖App的移動(dòng)端DNS優(yōu)化實(shí)踐:HTTPS請(qǐng)求耗時(shí)減小近半

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(一):DNS優(yōu)化篇

    移動(dòng)端網(wǎng)絡(luò)優(yōu)化之HTTP請(qǐng)求的DNS優(yōu)化

    附錄:更多網(wǎng)絡(luò)通信方面的技術(shù)資料

    TCP/IP詳解 - 第11章·UDP:用戶(hù)數(shù)據(jù)報(bào)協(xié)議

    TCP/IP詳解 - 第17章·TCP:傳輸控制協(xié)議

    TCP/IP詳解 - 第18章·TCP連接的建立與終止

    TCP/IP詳解 - 第21章·TCP的超時(shí)與重傳

    技術(shù)往事:改變世界的TCP/IP協(xié)議(珍貴多圖、手機(jī)慎點(diǎn))

    通俗易懂-深入理解TCP協(xié)議(上):理論基礎(chǔ)

    通俗易懂-深入理解TCP協(xié)議(下):RTT、滑動(dòng)窗口、擁塞處理

    理論經(jīng)典:TCP協(xié)議的3次握手與4次揮手過(guò)程詳解

    理論聯(lián)系實(shí)際:Wireshark抓包分析TCP 3次握手、4次揮手過(guò)程

    計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議關(guān)系圖(中文珍藏版)

    UDP中一個(gè)包的大小最大能多大?

    P2P技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡(jiǎn)介

    P2P技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解(基本原理篇)

    P2P技術(shù)詳解(三):P2P中的NAT穿越(打洞)方案詳解(進(jìn)階分析篇)

    P2P技術(shù)詳解(四):P2P技術(shù)之STUN、TURN、ICE詳解

    通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理

    高性能網(wǎng)絡(luò)編程(一):?jiǎn)闻_(tái)服務(wù)器并發(fā)TCP連接數(shù)到底可以有多少

    高性能網(wǎng)絡(luò)編程(二):上一個(gè)10年,著名的C10K并發(fā)連接問(wèn)題

    高性能網(wǎng)絡(luò)編程(三):下一個(gè)10年,是時(shí)候考慮C10M并發(fā)問(wèn)題了

    高性能網(wǎng)絡(luò)編程(四):從C10K到C10M高性能網(wǎng)絡(luò)應(yīng)用的理論探索

    高性能網(wǎng)絡(luò)編程(五):一文讀懂高性能網(wǎng)絡(luò)編程中的I/O模型

    高性能網(wǎng)絡(luò)編程(六):一文讀懂高性能網(wǎng)絡(luò)編程中的線(xiàn)程模型

    Java的BIO和NIO很難懂?用代碼實(shí)踐給你看,再不懂我轉(zhuǎn)行!

    不為人知的網(wǎng)絡(luò)編程(一):淺析TCP協(xié)議中的疑難雜癥(上篇)

    不為人知的網(wǎng)絡(luò)編程(二):淺析TCP協(xié)議中的疑難雜癥(下篇)

    不為人知的網(wǎng)絡(luò)編程(三):關(guān)閉TCP連接時(shí)為什么會(huì)TIME_WAIT、CLOSE_WAIT

    不為人知的網(wǎng)絡(luò)編程(四):深入研究分析TCP的異常關(guān)閉

    不為人知的網(wǎng)絡(luò)編程(五):UDP的連接性和負(fù)載均衡

    不為人知的網(wǎng)絡(luò)編程(六):深入地理解UDP協(xié)議并用好它

    不為人知的網(wǎng)絡(luò)編程(七):如何讓不可靠的UDP變的可靠?

    不為人知的網(wǎng)絡(luò)編程(八):從數(shù)據(jù)傳輸層深度解密HTTP

    不為人知的網(wǎng)絡(luò)編程(九):理論聯(lián)系實(shí)際,全方位深入理解DNS

    網(wǎng)絡(luò)編程懶人入門(mén)(一):快速理解網(wǎng)絡(luò)通信協(xié)議(上篇)

    網(wǎng)絡(luò)編程懶人入門(mén)(二):快速理解網(wǎng)絡(luò)通信協(xié)議(下篇)

    網(wǎng)絡(luò)編程懶人入門(mén)(三):快速理解TCP協(xié)議一篇就夠

    網(wǎng)絡(luò)編程懶人入門(mén)(四):快速理解TCP和UDP的差異

    網(wǎng)絡(luò)編程懶人入門(mén)(五):快速理解為什么說(shuō)UDP有時(shí)比TCP更有優(yōu)勢(shì)

    網(wǎng)絡(luò)編程懶人入門(mén)(六):史上最通俗的集線(xiàn)器、交換機(jī)、路由器功能原理入門(mén)

    網(wǎng)絡(luò)編程懶人入門(mén)(七):深入淺出,全面理解HTTP協(xié)議

    網(wǎng)絡(luò)編程懶人入門(mén)(八):手把手教你寫(xiě)基于TCP的Socket長(zhǎng)連接

    網(wǎng)絡(luò)編程懶人入門(mén)(九):通俗講解,有了IP地址,為何還要用MAC地址?

    網(wǎng)絡(luò)編程懶人入門(mén)(十):一泡尿的時(shí)間,快速讀懂QUIC協(xié)議

    網(wǎng)絡(luò)編程懶人入門(mén)(十一):一文讀懂什么是IPv6

    技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解

    讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享

    現(xiàn)代移動(dòng)端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請(qǐng)求速度、弱網(wǎng)適應(yīng)、安全保障

    聊聊iOS中網(wǎng)絡(luò)編程長(zhǎng)連接的那些事

    移動(dòng)端IM開(kāi)發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”

    移動(dòng)端IM開(kāi)發(fā)者必讀(二):史上最全移動(dòng)弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)

    IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(上篇)

    IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(下篇)

    從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路

    腦殘式網(wǎng)絡(luò)編程入門(mén)(一):跟著動(dòng)畫(huà)來(lái)學(xué)TCP三次握手和四次揮手

    腦殘式網(wǎng)絡(luò)編程入門(mén)(二):我們?cè)谧x寫(xiě)Socket時(shí),究竟在讀寫(xiě)什么?

    腦殘式網(wǎng)絡(luò)編程入門(mén)(三):HTTP協(xié)議必知必會(huì)的一些知識(shí)

    腦殘式網(wǎng)絡(luò)編程入門(mén)(四):快速理解HTTP/2的服務(wù)器推送(Server Push)

    腦殘式網(wǎng)絡(luò)編程入門(mén)(五):每天都在用的Ping命令,它到底是什么?

    腦殘式網(wǎng)絡(luò)編程入門(mén)(六):什么是公網(wǎng)IP和內(nèi)網(wǎng)IP?NAT轉(zhuǎn)換又是什么鬼?

    腦殘式網(wǎng)絡(luò)編程入門(mén)(七):面視必備,史上最通俗計(jì)算機(jī)網(wǎng)絡(luò)分層詳解

    腦殘式網(wǎng)絡(luò)編程入門(mén)(八):你真的了解127.0.0.1和0.0.0.0的區(qū)別?

    以網(wǎng)游服務(wù)端的網(wǎng)絡(luò)接入層設(shè)計(jì)為例,理解實(shí)時(shí)通信的技術(shù)挑戰(zhàn)

    邁向高階:優(yōu)秀Android程序員必知必會(huì)的網(wǎng)絡(luò)基礎(chǔ)

    全面了解移動(dòng)端DNS域名劫持等雜癥:技術(shù)原理、問(wèn)題根源、解決方案等

    美圖App的移動(dòng)端DNS優(yōu)化實(shí)踐:HTTPS請(qǐng)求耗時(shí)減小近半

    Android程序員必知必會(huì)的網(wǎng)絡(luò)通信傳輸層協(xié)議——UDP和TCP

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(一):通信交換技術(shù)的百年發(fā)展史(上)

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(二):通信交換技術(shù)的百年發(fā)展史(下)

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(三):國(guó)人通信方式的百年變遷

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(四):手機(jī)的演進(jìn),史上最全移動(dòng)終端發(fā)展史

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(五):1G到5G,30年移動(dòng)通信技術(shù)演進(jìn)史

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(六):移動(dòng)終端的接頭人——“基站”技術(shù)

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(七):移動(dòng)終端的千里馬——“電磁波”

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(八):零基礎(chǔ),史上最強(qiáng)“天線(xiàn)”原理掃盲

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(九):無(wú)線(xiàn)通信網(wǎng)絡(luò)的中樞——“核心網(wǎng)”

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十):零基礎(chǔ),史上最強(qiáng)5G技術(shù)掃盲

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十一):為什么WiFi信號(hào)差?一文即懂!

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十二):上網(wǎng)卡頓?網(wǎng)絡(luò)掉線(xiàn)?一文即懂!

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十三):為什么手機(jī)信號(hào)差?一文即懂!

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十四):高鐵上無(wú)線(xiàn)上網(wǎng)有多難?一文即懂!

    IM開(kāi)發(fā)者的零基礎(chǔ)通信技術(shù)入門(mén)(十五):理解定位技術(shù),一篇就夠

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(一):DNS優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(二):網(wǎng)絡(luò)連接優(yōu)化篇

    百度APP移動(dòng)端網(wǎng)絡(luò)深度優(yōu)化實(shí)踐分享(三):移動(dòng)端弱網(wǎng)優(yōu)化篇

    技術(shù)大牛陳碩的分享:由淺入深,網(wǎng)絡(luò)編程學(xué)習(xí)經(jīng)驗(yàn)干貨總結(jié)

    可能會(huì)搞砸你的面試:你知道一個(gè)TCP連接上能發(fā)起多少個(gè)HTTP請(qǐng)求嗎?

    知乎技術(shù)分享:知乎千萬(wàn)級(jí)并發(fā)的高性能長(zhǎng)連接網(wǎng)關(guān)技術(shù)實(shí)踐

    5G時(shí)代已經(jīng)到來(lái),TCP/IP老矣,尚能飯否?

    愛(ài)奇藝移動(dòng)網(wǎng)絡(luò)優(yōu)化實(shí)踐分享:網(wǎng)絡(luò)請(qǐng)求成功率優(yōu)化篇(iOS端)

    >> 更多同類(lèi)文章 ……

    歡迎關(guān)注我的“即時(shí)通訊技術(shù)圈”公眾號(hào):

    (本文已同步發(fā)布于:http://www.52im.net/thread-2981-1-1.html



    作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github)
    出處:http://www.52im.net/space-uid-1.html
    交流:歡迎加入即時(shí)通訊開(kāi)發(fā)交流群 215891622
    討論:http://www.52im.net/
    Jack Jiang同時(shí)是【原創(chuàng)Java Swing外觀(guān)工程BeautyEye】【輕量級(jí)移動(dòng)端即時(shí)通訊框架MobileIMSDK】的作者,可前往下載交流。
    本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處(也可前往 我的52im.net 找到我)。


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
    主站蜘蛛池模板: 久久国产精品免费专区| 特色特黄a毛片高清免费观看| 一级看片免费视频囗交| 97国产免费全部免费观看| 亚洲va久久久噜噜噜久久| 日本激情猛烈在线看免费观看| 成年女人午夜毛片免费看| 91天堂素人精品系列全集亚洲| CAOPORM国产精品视频免费| 色吊丝最新永久免费观看网站| 亚洲高清视频免费| 无码专区AAAAAA免费视频| 国产aⅴ无码专区亚洲av麻豆| 蜜桃传媒一区二区亚洲AV| 小小影视日本动漫观看免费| 67194在线午夜亚洲| 国语成本人片免费av无码| 亚洲AV无码不卡无码| 亚洲成av人片天堂网| 久久精品国产亚洲av天美18| 青青操视频在线免费观看| 亚洲精品国产美女久久久| 久久九九全国免费| 67194在线午夜亚洲| 破了亲妺妺的处免费视频国产 | 免费播放春色aⅴ视频| 午夜在线亚洲男人午在线| 亚洲一区二区三区AV无码| 野花香高清在线观看视频播放免费| 久久久亚洲欧洲日产国码aⅴ| 四虎免费影院ww4164h| 男人和女人高潮免费网站| 亚洲乳大丰满中文字幕| 1000部啪啪毛片免费看| 激情五月亚洲色图| 亚洲毛片网址在线观看中文字幕| 精品一区二区三区免费毛片爱 | 麻豆视频免费播放| 九九久久国产精品免费热6| 亚洲国产美女视频| 国产精品亚洲mnbav网站|