當前位置:首頁 » 手機網路 » 全球移動網路優化

全球移動網路優化

發布時間: 2024-09-09 05:41:22

A. 移動網路優化實踐

網路優化對於App產品的用戶體驗至關重要,與公司的運營和營收息息相關。這里列舉兩個公開的數據:

「 頁面載入超過3秒,57%的用戶會離開。 」

「 Amazon頁面載入延長1秒,一年就會減少16億美金營收。 」

首先是網路不可用的問題。主要由以下幾種原因導致:

GFW的攔截,原因你懂的。

DNS的劫持,埠的意外封禁等。

偏遠地區網路基礎設施比較差。

其次是網路載入時間長。原因包括: * 移動設備出於省電的目的,發出網路請求前需要先預熱通信晶元。 * 網路請求需要跨網路運營商,物理路徑長。 * HTTP請求是基於Socket設計的,請叢嫌求發起之前會經歷三次握手,斷開時又會進行四次揮手滲辯手。

最後是HTTP協議的數據安全問題。原因有: * HTTP協議的數據容易被抓包。Post包體數據經過加密能夠避免泄露,但協議中的URL和header部分還是會暴露給抓包軟體。HTTPS也面臨相似的問題。 * 運營商數據惡意篡改嚴重。如下圖中,App的網頁中就被運營商插入了廣告。

3

面對上述網路問題,我們首先在HTTP短連請求中進行了一些優化嘗試。

1. 告別 DNS,直接使用 IP 地址

如果是首次發送基於 HTTP 協議的網路服務,第一件事就是進行 DNS 域名解析,我們統計過 DNS 解析成功率只有 98%,剩下 2% 是解析失敗或者運營商 DNS 劫持(Local DNS 返回了非源站 IP 地址),同時 DNS 解析在 3G 下耗時 200 毫秒左右,4G 也有 100 毫秒左右,延遲明顯。我們基於 TCP 連接,直接跳過了 DNS 解析階段,使用內置 IP 列表的方式進行網路連接

 App 內置了一組 Server IP 列表,同時每個 IP 具備權重。每次建立新連接,會選擇權重最高的 IP 地址進行連接。App 啟動時,IP 列表的所有權重是相同的,此時會啟動一組 Ping 的操作,根據 Ping 值的延遲時間來計算 IP 的權重,這么做的原理是 Ping 值越小的 IP 地址,連接後的網路傳輸延遲也應該相對更小。業界也有使用 HTTP DNS 方式來解決 DNS 劫持問題,同時返回最合適用戶網路的 Server IP。然而 HTTP DNS 的開發和部署需要不小的開發成本,我們目前沒有使用。

內置 Server IP 列表也會被更新,每次 App 啟動後會有個 Mobile Config 服務(支持 TCP 和 HTTP 兩種網路類型服務)更新 Server IP 列表,同時支持不同產品線的 Server IP 列表更新。因此,傳統 DNS 解析能夠解決多 IDC 導流的功能也可以通過此方法解決。

2. Socket 連接優化,減少連灶則接時間

和 HTTP 協議中的 Keepalive 特性一樣,最直接減少網路服務時間的優化手段就是保持長連接。每次 TCP 三次握手連接需要耗費客戶端和服務端各一個 RTT(Round trip time)時間才能完成,就意味著 100-300 毫秒的延遲;TCP 協議自身應對網路擁塞的  Slow Start  機制也會影響新連接的傳輸性能。

App 使用了長連接池的方式來使用長連接,長連接池中維護了多個保持和服務端的 TCP 連接,每次網路服務發起後會從長連接池中獲取一個空閑長連接,完成網路服務後再將該 TCP 連接放回長連接池。我們沒有在單個 TCP 連接上實現 Pipeline 和 Multiplexing 機制,而是採用最簡單的 FIFO 機制,原因有二:

簡化 Mobile Gateway 的服務處理邏輯,減少開發成本;

在服務端同時返回多個響應時,如果某個響應報文非常大,使用多個長連接方式可以加快接收服務響應報文速度。

如果發起網路服務時長連接池中的 TCP 連接都正在被佔用,或者 TCP 長連接的網路服務失敗,則會發起一個 TCP 短連接實現網路服務。這里長連接和短連接的區別僅僅是服務完成後是否直接關閉這個 TCP 連接。

附: Pipeline 和 Multiplexing 是有區別的,如 HTTP/1.1 支持 Pipeline,客戶端能否同時發送多個請求,但是服務端返回響應時也要按照請求的發送次序來返回響應;SPDY 和 HTTP/2 協議支持 Multiplexing,即支持響應報文的亂序返回,發送請求和接收響應互不幹擾,因此避免了 HTTP/1.1 Pipeline 也沒能完全解決的 Head of line blocking 問題。

3. 弱網和網路抖動優化

App 引入了網路質量參數,通過網路類型和端到端 Ping 值進行計算,根據不同的網路質量改變網路服務策略:

調整長連接池個數:例如在 2G/2.5G Egde 網路下,會減少長連接池個數為 1(運營商會限制單個目標 IP 的 TCP 連接個數);WIFI 網路下可以增加長連接池個數等機制。

動態調整 TCP connection、write、read 的超時時間。

網路類型切換時,例如 WIFI 和移動網路、4G/3G 切換至 2G 時,客戶端 IP 地址會發生變化,已經連接上的 TCP Socket 註定已經失效(每個 Socket 對應一個四元組:源 IP、源 Port、目標 IP、目標 Port),此時會自動關閉所有空閑長連接,現有網路服務也會根據狀態自動重試。

4. 數據格式優化,減少數據傳輸量和序列化時間

傳輸數據量越小,在相同 TCP 連接上的傳輸時間越短。攜程 App 曾經使用自行設計的一套數據格式,後來和 Google ProtocolBuffer 對比後發現,特定數據類型下數據包大小會降低 20-30%,序列化和反序列化時間可以降低 10-20%,因此目前核心服務都在逐步遷移到到 ProtocolBuffer 格式。另外 Facebook 曾分享過他們使用  FlatBuffer 數據格式 提高性能的實踐,我們分析後不太適合攜程的業務場景因而沒有使用。

5. 引入重試機制,提升網路服務成功率

受 TCP 協議重傳機制來保證可靠傳輸的機制啟發,我們在應用層面也引入了重試機制來提高網路服務成功率。我們發現 90% 以上的的網路服務失敗都是由於網路連接失敗,此時再次重試是有機會連接成功並完成服務的;同時我們發現前面提到的網路服務生命周期處於 1 建立連接、序列化網路請求報文、發送網路請求這三個階段失敗時,都是可以自動重試的,因為我們可以確信請求還沒有達到服務端進行處理,不會產生冪等性問題(如果存在冪等性問題,會出現重復訂單等情況)。當網路服務需要重試時,會使用短連接進行補償,而不再使用長連接。

實現了上述機制後,攜程 App 網路服務成功率由原先的 95.3%+ 提升為如今的 99.5%+(這里的服務成功率是指端到端服務成功率,即客戶端採集的服務成功數除以請求總量計算的,並且不區分當前網路狀況),效果顯著。

6. 其他網路服務機制 & Tricks

攜程 App 也實現了其他一些網路服務機制方便業務開發,如網路服務優先順序機制,高優先順序服務優先使用長連接,低優先順序服務默認使用短連接;網路服務依賴機制,根據依賴關系自動發起或取消網路服務,例如主服務失敗時,子服務自動取消。

開發過程中我們也發現一些移動平台上的 TCP Socket 開發 tricks:

iOS 平台上的原生 Socket 介面創建連接並不會激活移動網路,這里原生 Socket 介面是指 POSIX Socket 介面,必須使用 CFSocket 或者再上層的網路介面嘗試網路連接時才會激活網路。因此攜程 App 啟動時會優先激活注冊一些第三方 SDK 以及發送 HTTP 請求來激活移動網路。

合理設置 Socket 的幾個參數:SO_KEEPALIVE 參數確保 TCP 連接保持(註:此 KeepAlive 是 TCP 中的屬性,和 HTTP 的 KeepAlive 是兩個場景概念),SO_NOSIGPIPE 參數關閉 SIGPIPE 事件,TCP_NODELAY 參數關閉 TCP Nagle 演算法的影響。

由於 iOS 要求支持 IPv6-Only 網路,因此使用原生 Socket 必須支持 IPv6。

如果使用 select 來處理 nonblocking IO 操作,確保正確處理不同的返回值和超時參數。

保持 TCP 長連接可用性的心跳機制:對於非 IM 類應用而言,心跳機制的作用不大,因為用戶會不斷觸發請求去使用 TCP 連接,尤其在攜程業務場景下,通過數據統計發現使用心跳與否對服務耗時和成功率影響極小,因此目前已經關閉心跳機制。原先的心跳機制是 TCP 長連接池中的空閑 TCP 連接每 60 秒發送一個心跳包到 Gateway,Gateway 返回一個心跳響應包,從而讓雙方確認 TCP 連接有效。

Hybrid 網路服務優化

攜程 App 中有相當比例的業務是使用 Hybrid 技術實現的,運行在 WebView 環境中,其中的所有網路服務(HTTP 請求)都是由系統控制的,我們無法掌控,也就無法進行優化,其端到端服務成功率也僅有 97% 左右(註:這里指頁面中業務邏輯發送的網路服務請求,而非靜態資源請求)。

我們採用了名為『TCP Tunnel for Hybrid』的技術方案來優化 Hybrid 網路服務,和傳統 HTTP 加速產品的方法不同,我們沒有採用攔截 HTTP 請求再轉發的方式,而是在攜程 Hybrid 框架中的網路服務層進行自動切換。

如圖所示,該技術方案的流程如下:

如果 App 支持 TCP Tunnel for Hybrid,Hybrid 業務在發網路服務時,會通過 Hybrid 介面轉發至 App Native 層的 TCP 網路通訊層,該模塊會封裝這個 HTTP 請求,作為 TCP 網路服務的 Payload 轉發到 TCP Gateway;

TCP Gateway 會根據服務號判斷出是 Hybrid 轉發服務,解包後將 Payload 直接轉發至 HTTP Gateway,此 HTTP 請求對 HTTP Gateway 是透明的,HTTP Gateway 無需區分是 App 直接發來的還是 TCP Gateway 轉發來的 HTTP 請求;

後端業務服務處理完成後,HTTP 響應會經 HTTP Gateway 返回給 TCP Gateway,TCP Gateway 將此 HTTP 響應作為 Payload 返回給 App 的 TCP 網路通訊層;

TCP 網路通訊層會再將該 Payload 反序列化後返回給 Hybrid 框架,最終非同步回調給 Hybrid 業務調用方。整個過程對於 Hybrid 業務調用方也是透明的,它並不知道 TCP Tunnel 的存在。

採用該技術方案後,攜程 App 中 Hybrid 業務的網路服務成功率提升至 99% 以上,平均耗時下降了 30%。

海外網路服務優化

攜程目前沒有部署海外 IDC,海外用戶在使用 App 時需要訪問位於國內的 IDC,服務平均耗時明顯高於國內用戶。我們採用了名為『TCP Bypass for Oversea』的技術方案來優化海外網路服務性能,主要是使用了 Akamai 的海外專屬網路通道,同時在攜程國內 IDC 部署了局端設備,使用專用加速通道的方式來提升海外用戶體驗。

海外用戶啟動 App 後先通過 Akamai 定製域名獲取 Server IP,所有網路服務優先走 Akamai 通道;如果 Akamai 通道的網路服務失敗並且重試機制生效時,會改走傳統 Internet 通道進行重試。相比只用傳統 Internet 通道,在保持網路服務成功率不變的情況下,使用 Akamai 通道 Bypass 技術後平均服務耗時下降了 33%。

其他網路協議探討

過去兩年我們的網路服務優化工作都是基於 TCP 協議實現的,基本達到了優化目標。不過這兩年來新的應用層網路協議 SPDY 和 HTTP/2 逐步邁入主流,基於 UDP 的 QUIC 協議看起來也非常有趣,值得跟進調研。

SPDY & HTTP/2

SPDY 是 Google 基於 TCP 開發的網路應用層協議,目前已經停止開發,轉向支持基於 SPDY 成果設計的 HTTP/2 協議,HTTP/2 協議的核心改進其實就是針對 HTTP/1.x 中影響延遲性能的痛點進行優化:

Header 壓縮:壓縮冗餘的 HTTP 請求和響應 Header。

支持 Multiplexing:支持一個 TCP 連接上同時實現多個請求和響應。

保持長連接(比 HTTP/1.x 更徹底):減少網路連接時間。

支持推送:可以由服務端主動推送數據到客戶端。

官方性能測試結果顯示使用 SPDY 或者 HTTP/2 的頁面載入時間減少 30% 左右,不過這是針對網頁的測試結果,對於 App 中的網路服務,具體優化效果我們還在進行內部測試,不過其優化手段看和目前我們使用 TCP 協議的優化手段類似,因此性能優化效果可能不會很顯著。

QUIC

QUIC 是 Google 基於 UDP 開發的應用層協議,UDP 協議無需連接,不存在重傳機制,因此應用層需要保證服務的可靠性。目前國內騰訊有針對弱網路嘗試過 QUIC 協議,我們也在進行測試,最終是否會採用還需要看測試的結果。

綜述

技術只是手段,最終還是要反映在業務效果上。我們已經實現除靜態資源等需要訪問 CDN 的網路請求外,其他 App 網路服務使用統一的 TCP 通道,從而具備更好的性能調優和業務監控能力。攜程目前基於 TCP 協議的各種 App 網路服務優化,也是各種技術方案的平衡,雖然目前 HTTP/2 等新協議逐步成熟,但是 TCP 協議自身的靈活性支持有針對性的性能優化,還是具備其特別的優勢,希望我們的實踐總結能對國內無線技術從業者有一些借鑒價值。

B. 要做中國電信或總中國移動的網路優化需要哪些資質

真是巧了,現在我正在四川電信技術支援中心做有關網優的實習。
個人認為要做網優並不需要很多的資質,但是要有起碼的關於通信工程的基本知識和概念,對移動網路的運行有個明確的認識。而且並不一定是只有通信工程專業的人才能做,像學計算機,軟體的只要加以培訓,通常也能去做網優,我本次的實習中就有好幾個學軟體,計算機的。
做網優,技術固然重要,但是個人一般的素質也是不可或缺的。比如,做事踏實,認真,耐得住苦累,肯於鑽研等,有了這些素質,做網優會更如魚得水。這些都在我現在做的phs和CDMA網路中得到驗證的。
樓主如果真的想做網優,希望多多加強技術,畢竟這是靠技術吃飯的活,再加上上面所說的素質,基本上就可以滿足網優的要求了,加油 !

C. 移動通信系統網路優化的常用工具有哪些,詳細說明一下,謝謝

不同廠家所用工具不同,不通的專業所用的工具也不通,簡要說下比較相通的:MCOM MapInfo OSS OMC-R ALEX UEdit winfiol 處理話統數據的一些工具,如EOES、BO等;處理路測數據的,如鼎利的Pioneer、Navigator萬禾的ANT華星的FlyWireLess日訊的NTAS惠捷朗的CDS愛立信的TEMS等等。其他還有很多很多。詳細內容你自己去網上找吧,都寫完這里篇幅不夠。此回答不要分。

D. 如何做好移動通信網的網路優化

移動通信近年來發展速度驚人,在市場需求的驅動下,移動網路不斷擴容,網路的規劃也一再隨之調整。建設周期短,發展速度快,前後工期的重疊進行,網路的建設無論在規劃階段以及後續的擴建工程中,均存在著一些質量問題,造成整個通信網路的各種資源不能得到合理的應用,資源大大浪費,還使得通話質量下降,服務水平低,網路運行效率低。
為使得網路資源能夠合理配置和應用,移動通信網路的網路優化工作已經成為移動通信運營商提高服務水平,保障通信質量的重要工作內容。
網路優化工作,就是對整個網路的資源根據需求和發展的情況進行調配,達到合理的運用。同時,對於網路運行中存在的諸如覆蓋不好、話音質量差、掉話、網路擁塞、切換成功率低、未開通某些新功能等問題時,也需要對網路進行優化。因此,網路優化是一個長期的過程,貫穿於網路發展的全過程。 網路優化,不僅對於當前的GSM900MHz網路而言,對於還在發展的GSM1800MHz和CDMA800MH也是同樣重要的。
2 網路優化的內容
網路優化既然是對網路資源的重新調配,那麼,有哪些資源是可以應用的呢?
2.1 網路資源
頻率資源:無線通信的頻率資源是寶貴的,移動通信的頻率資源尤其珍貴,頻率資源包括可用的頻段(900MHz/1800MHz,對運營商而言)、可用的方式(固定、跳頻)、覆蓋的區域、單站的頻率覆蓋方式、相鄰小區的頻率復用方式等。
地域資源:移動通信網要完成網路覆蓋,覆蓋的地域非常重要,合理的分布站址無疑可以取得更好的覆蓋效果,即使是經濟不發達地區,有時也要有相應的投入。
業務資源:移動通信網是隨業務的發展而設立的,只有滿足不斷變化的業務需求,才能充分利用好網路資源,網路中的移動業務,在不同的區域分布是不均勻,需求也不一樣。網路的設置要充分吸收各種業務量,尤其是對於新增業務如簡訊息、信息廣播、數據業務等都需要合理的安排。

E. 移動網路優化

移動通信網路優化是高層次的維護工作,是通過採用新技術手段以及優化工具對網路參數合理調整,從而提高網路質量的維護工作。

移動通信網路優化的步驟 如下:

1、無線網路調查和測試。
無線網路的實際調查和測試是網路優化不可缺少的步驟。重要的手段是話務統計和DT和CQT,為網路優化提供有力支持。

2、無線參數檢查和標准化

在一般的網路優化方法中,都包含了數據的一致性檢查,利用軟體對無線參數進行全面的檢查,生成詳細的檢查報告。同時利用以往的網優經驗,將無線參數的經驗值錄入經驗資料庫,將某些無線參數的值與經驗值做標准化比較,在此基礎上進行分析和優化。

3、無線功能檢查

在網路優化過程中,根據實際情況詳細考察網路無線功能的開啟情況,如跳頻、動態功率控制、CLS等等,以使網路能得到最佳性能。

4、頻率優化

頻率優化是網路優化中重要的一環。當前網路的實際狀況表明,由於頻率資源緊張,頻率復用困難帶來的網路性能下降的情況已經成為提高網路性能的瓶頸。因此頻率優化是網優的一個重點。要詳細考察網路的頻率使用情況,如復用辦法、干擾情況、地理環境影響等,在此基礎上利用相關軟體產生頻率優化方案,採用滾動的方法對頻率進行優化。