李振華 王泓懿 李 洋 林 灝 楊昕磊
(清華大學軟件學院 北京 100084)
(lizhenhua1983@tsinghua.edu.cn)
自1969 年誕生以來,互聯網數據傳輸的基本結構一直由風格迥異的兩部分組成:骨干網絡和終端網絡. 前者包含數千萬路由中繼節點,由專業人員實時維護,通常能保持高速穩定;后者作為數據傳輸的“最后一公里”,服務于多樣化動態接入場景,如ADSL 有線電纜、WiFi 4/5/6 熱點和蜂窩2G/3G/4G/5G,對用戶體驗的影響最為直接,但由于規模巨大(近千億節點)并且缺乏專業維護,很容易出現各種問題,看似簡單卻構成絕大多數(99%以上)數據傳輸過程的性能瓶頸[1-3].
長期以來,終端網絡設計一直遵循“實驗研究—原型測試—規模部署—用戶報修”的經典模式. 隨著現代互聯網愈發龐大繁雜、多源異構,經典模式拖沓沉重、弊端重重——實驗研究與原型測試往往面向典型設備和常規環境,難以復現與兼顧終端復雜性,造成嚴重性能落差[4],帶給用戶4 個方面的困惑:
1) 網速困惑. 5G 和WiFi 6 接入網絡都宣稱高達10 Gbps 的帶寬和低至數毫秒的時延,然而用戶實際體驗到的卻相去甚遠[5],甚至連我們日常撥打微信語音電話至今都經常卡頓.
2) 斷連困惑. 作為國家重點投資、市場熱點宣傳的5G 接入網絡,雖然峰值帶寬很高,但信號覆蓋半徑小、穿透能力弱、運營成本高(不少5G 基站夜間會自動關閉),連接中斷的概率顯著增加.
3) 安全困惑. 用戶身邊通常遍布蜂窩基站和看似免費的WiFi 熱點,但很多都存在風險,比如央視3·15 晚會就多次報道犯罪分子利用蜂窩偽基站和WiFi 偽熱點實施電信詐騙的猖獗現象.
4) 代際困惑.5G 手機和流量套餐通常都比4G 要貴,但與之匹配的應用,如自動駕駛和虛擬現實并不成熟,并且5G 基站的總體覆蓋范圍小于4G,導致很多用戶對是否要升級5G 存在疑惑.
更糟糕的是,這些困惑往往長期存在、得不到及時解決,用戶怨聲載道卻又不明就里. 形象地說,終端網絡設備一旦離開生產廠家,就像一個離家流浪闖蕩的孩子,無時無刻不在面對各種未知、異常和風險.
為此,本文作者(以下簡稱“我們”)多年來一直致力于終端網絡基礎設計模式的反思與革新. 我們同終端設備制造商、網絡運營商、操作系統和應用軟件開發商廣泛交流合作,發現想要解決大規模復雜終端網絡的性能落差問題“知易而行難”. 舉一個典型案例,如圖1 所示是安卓11/12/13 操作系統(分別發布于2020/2021/2022 年)共用的一段源代碼,雖只有10 行但意義重大,它控制著安卓設備對蜂窩網絡的優先連接模式. 不難看出,當一臺安卓11/12/13設備附近既有5G 基站又有4G 基站時,這段代碼的處理方式非常簡單:能連5G 就連5G,不能才降到4G,而不考慮具體環境因素,比如信號強度或資源競爭.

Fig.1 Controller code for cellular network priority connected mode in Android 11/12/13 operating systems圖1 安卓11/12/13 操作系統對蜂窩網絡優先連接模式的控制代碼
如果一部安卓5G 手機當前被很弱的5G 信號和很強的4G 信號同時覆蓋,常識告訴我們:此時應該選擇4G 連接更為合理,不幸的是,基于圖1 中的代碼,安卓會直接選擇信號很弱的5G 連接. 更糟糕的是,由于5G 基站附近的安卓手機通常都會優先連接到它,將導致該5G 基站網絡資源被多部手機激烈競爭,而附近廣泛存在的4G 基站卻由于無人問津而長期空閑、浪費充裕的網絡資源,我們稱這一現象為“飽和饑餓”[6]:明明服務方的總體資源是充足的,但客戶方卻得不到或者所得資源太少.
更進一步,我們反思安卓操作系統蜂窩網絡管理模塊的設計者是否知道上述問題?基于常識推斷,他(她)很可能是知道的. 如果確實知道,那他(她)為什么不改進呢?仔細思考這個看似矛盾的狀況,我們發現:即使設計者知道,也很難修改,因為這涉及到動機、平臺、資源與知識層面的四道鴻溝:
1) 動機鴻溝. 終端網絡的軟硬件設計者很多時候并非用戶咨詢和投訴壓力的直接承擔者,沒有足夠強烈的動機來解決問題. 典型案例是安卓操作系統中多個網絡模塊的設計所導致的問題幾乎都被投訴到安卓手機制造商.
2) 平臺鴻溝. 即使設計者有動機解決性能落差問題,也經常因為缺乏平臺支持,無法了解豐富場景下大量終端設備的實際使用情況. 沒有手機制造商的許可和幫助,即便安卓網絡模塊的設計者也很難洞悉用戶在非預設場景下的真實體驗.
3) 資源鴻溝. 假設動機和平臺兼備,大規模復雜終端網絡的設計者還需要承擔十分可觀且不確定的后端資源開銷來進行長期細致的數據采集和分析.值得注意的是,即便在利益相關的大公司內部,所需后端資源也不容易(充分)審批.
4) 知識鴻溝. 即使動機、平臺、資源方面都得到支持,想要妥善解決大規模復雜終端網絡的性能落差問題,設計者還需要具備硬件、信號、頻譜、網絡、用戶心理等多維度全棧知識,這通常是最深也最隱蔽的科研鴻溝.
針對用戶的四重困惑和研發的四道鴻溝,我們多年來一直和終端網絡用戶投訴壓力的直接承擔者(如小米手機研發團隊、“測網速”App 研發團隊以及WiFi 萬能鑰匙研發團隊)緊密合作,以克服動機鴻溝. 同時,這給予我們貼近數億終端網絡設備所處豐富場景的機會,具備細致識別用戶真正痛點問題的客觀條件,從而克服平臺鴻溝. 然而,對于剩下的資源鴻溝和知識鴻溝,工業界合作方通常并不能夠提供充分的支持. 因此,我們的科研工作聚焦于大規模復雜終端網絡的低開銷測量分析與自調控機制設計.
一方面,針對終端網絡設備規模性帶來的調研成本挑戰——用戶上報網絡異常的常規和峰值負載可能相差上萬倍,利用服務器無感知的云原生基礎設施,毫秒級精細取用云端資源,最小化測量分析開銷,在可用、可靠、可信3 個關鍵維度揭示終端網絡經典設計的多處重要缺陷. 具體來說,面對數量可觀而時空不確定的終端網絡異常數據,利用云原生的微服務核心技術以及輕量級容器/沙盒載體,能夠細粒度按需靈活部署及快速回收后端資源,避免傳統云計算平臺中頻繁發生的、由于虛擬機服務器絕大部分時間“空轉”所導致的資源浪費. 在云端為終端網絡營造一個牢固而集約的家,讓終端設備一個都不掉隊.
另一方面,針對終端網絡場景復雜性帶來的定制優化挑戰——非典型場景和非主流用戶普適存在,采用跨層跨代的協同強化方法,整合多層次各方面知識,實現無場景預設的自調控機制設計. 尤其要避免經典設計和理論文獻中看似合理的“震蕩型”片面設計(犧牲較為隱蔽的“長尾”用戶性能,成全更為顯著的典型用戶性能),網絡整體性能提升的同時,不損害非主流長尾用戶的局部性能. 研究成果應用于公安部高速網絡、三百萬小米移動(虛擬運營商)用戶、1 700 萬友聲科技“測網速”App 用戶、七千萬小米手機、一億百度手機衛士用戶以及九億WiFi 終端設備.
如圖2 所示,我們的研究立足終端網絡的3 個關鍵維度:可用(高速傳輸)、可靠(穩定連通)和可信(持久安全),揭示經典設計的多處重要設計缺陷:1)可用性方面,終端網絡測速過程緩慢昂貴,網頁展示過程遲鈍拖沓;2)可靠性方面,斷網修復機制被動等待、無法及時連通,網絡運營市場長期壟斷、阻礙技術創新;3)可信性方面,危險網絡接入點的檢測方式受限隨機、檢測結果很不理想,并且即使檢測成功、防御或反擊策略的效果也往往短暫而表面.

Fig.2 Cloud native reinforced design for large-scale complex terminal networks: main research contents and innovations圖2 大規模復雜終端網絡的云原生強化設計:主要研究內容和創新點
針對這3 個缺陷,我們面向大規模復雜終端網絡,運用云原生強化設計的核心思想,結合(全協議棧)跨層跨代協同強化的關鍵理念,從廣大用戶體驗痛點出發,以點帶面漸進修復設計缺陷,最終突破網絡整體性能邊界,并在多個代表性工業系統中部署應用. 研究創新性主要體現在3 個方面:
1) 軟硬件及人類行為因素的綜合考量. 不同于一般的強化學習過程,終端網絡的設計不是一個簡單抽象的數學模型(往往很難以公式來形式化),涉及復雜的軟硬件及人類行為因素,很多時候還要考慮工業界接受程度和對互聯網整體生態系統的影響,因此需要大規模用戶配合眾包測量、大數據關聯分析以及網絡跨層協同設計.
2) 云原生微服務技術的雙重有效支撐. 大規模復雜終端網絡的測量分析往往涉及數量可觀而時空不確定的后端存儲和計算資源開銷,作為云原生的核心技術,微服務構建于輕量級容器或沙盒之上,如果設計合理、部署得當能夠精細粒度按需靈活部署及快速回收,從而大幅度降低調研成本;同時,通過服務器無感知的開發模式,有效降低網絡研究者利用云計算技術的知識門檻[7].
3) 面向長尾用戶體驗的普適性能改進. 終端網絡的經典設計面向主體用戶、主流環境,其優化升級通常能夠提升網絡主體性能,但同時不可避免地損害部分用戶局部性能,這種“犧牲小我、成全大我”的方式對現代互聯網產業而言并不可取. 與此相反,我們的研究注重細致周全的終端網絡設計,從長尾用戶的體驗痛點出發,以點帶面,最終促成網絡整體的完善和進化.
基于上述云原生強化設計新模式,我們對多個大規模復雜終端網絡工業系統開展全面測量、深度分析和謹慎改造. 在可用、可靠、可信3 個關鍵維度所研發的6 項代表性關鍵技術及其應用效果簡介如下:
1) 提出模糊拒絕采樣理論,首次實現亞秒級網速測量. 網絡帶寬(即網速)的準確測量是保障諸多網絡應用服務質量的重要前提,而影響準確性的關鍵因素是信道噪音. 主流工業系統(如Ookla Speedtest和Google FAST)所采用的經典測速技術致力于從時間或空間角度減少噪音,導致測量過程緩慢拖沓、流量開銷高昂. 我們采取迥異于前人的解決思路:不再從時空角度減少噪音,而是從統計分析角度利用噪音. 基于計算幾何學和離散控制論研發“模糊拒絕采樣”雙向強化測速技術,同時達成快速、輕量、準確這3 個傳統意義上看似矛盾的目標[8-9]. 此外,自適應部署和回收跨運營商的(瞬時)容器和(長時)虛擬機作為測試服務器,將平均測速時間降到1 s 以內,即“亞秒級”[5],同時將平均測速開銷(主要是網絡流量)降低為原來的1/10. 該技術成果應用于公安部第三研究所高速網絡以及擁有1 700 萬移動終端用戶的友聲科技“測網速”App.
2) 設計累積反饋調度算法,提升網頁可視內容加載速度. 絕大部分互聯網流量以Web 網頁形式傳輸和展現,但經典網頁加載方式并不契合實際用戶體驗,往往加載很多資源而頁面并無(關鍵)可視內容,浪費網絡流量和用戶時間. 我們將可視化速度指標(speed index)融合進網頁加載過程,創新設計“累積反饋調度”算法[10],通過云端(微)服務器和客戶端瀏覽器的協同交互,以漸進反饋方式應對網絡狀態、瀏覽器執行以及視窗大小在加載過程中的不確定性,不斷累積優化網絡資源的調度下載順序,使得可視內容的展現速度提高40%以上,而給服務器端帶來的計算開銷少于5%. 該技術成果部分應用于“測網速”App 的網頁加載過程.
3) 構建時變非齊次連接管理模型,最優化蜂窩網絡故障的診斷和修復時機. 從2G 到5G,蜂窩網速越來越高、服務密度越來越高、時延越來越低,然而手機異常斷網的發生概率卻越來越大. 我們同小米手機操作系統(MIUI)團隊合作定制安卓操作系統,連續8 個月跟蹤測量34 個型號共計7 000 萬部小米手機的異常斷網故障,總共收集到20 億條故障事件日志. 通過服務器無感知的日志存儲和分析,發現安卓蜂窩通信模塊多處不為人知的重要設計缺陷,是導致手機異常斷網的主要根源. 從而構建基于“時變非齊次馬爾可夫過程”的連接管理模型,在統計意義上最優化蜂窩網絡故障的診斷和修復時機,將所有手機斷網時長縮短36%、5G 手機斷網次數減少40%.對應論文[11]獲得ACM SIGCOMM 2021 會議唯一最佳學生論文獎,這也是亞洲科研院校歷史上首次獲頒該獎項.
4) 運用人工智能結合統計建模方法,優化與凈化移動虛擬運營生態系統. 受電信資源充分利用和激發良性市場競爭的雙重驅動,移動虛擬運營商(簡稱“移動虛商”)近年來迅速流行,為用戶提供靈活優惠的入網服務. 另一方面,移動虛商的發展也面臨多重挑戰,比如網絡性能歧視、套餐轉售利潤微薄、計費不準確以及詐騙電話多等問題. 我們同擁有300 萬用戶的移動虛商“小米移動”合作,基于較低的預算為移動用戶建立云原生月度時序數據庫,運用微觀人工智能結合宏觀統計建模的方法,解決移動虛商所面臨的一系列挑戰問題[12-13]. 尤其是融合多種數據清洗和機器學習算法,準確預測用戶網絡流量、離網概率和風險系數[14],幫助小米移動提高運營利潤60%、降低用戶流失61%、減少詐騙電話94%.
5) 通過多源數據關聯審查,普適識別和準確定位偽基站. 移動運營商部署合法基站的同時,不法分子也部署了大量非法偽基站,使用極高信號強度誘使移動設備錯誤連接,趁機發送垃圾或詐騙短信. 我們同百度手機衛士團隊合作研發“偽基站雷達”系統[15],云端收集并關聯分析來自上億手機的非隱私多維數據,平均每天識別過濾數百萬條偽基站短信,定位偽基站的中值誤差低至11 m,該精度已足夠支持執法機構實時跟蹤偽基站的裝載車輛. 偽基站雷達系統一直工作、維護和優化至今,其識別和定位結果為公安部持續提供關鍵信息,幫助公安干警每月抓捕偽基站犯罪人員數十名、收繳偽基站設備數百臺.
6) 設計主被動結合的跨層誘捕方法,準確識別并自動溯源WiFi 網絡攻擊. WiFi 熱點(即WiFi 路由器)承載移動互聯網大部分終端流量,不可避免地成為各種安全威脅的攻擊目標. 為全面了解全國范圍的WiFi 安全威脅,我們與擁有9 億用戶的“WiFi 萬能鑰匙”App 團隊合作搭建WiFi 安全檢測系統[16]. 云端定制彈性IP 地址及合成網頁內容,以個性化微服務方式對1 900 萬WiFi 熱點實施攻擊行為誘捕與主被動跨層檢測,從而宏觀把握WiFi 安全威脅的普遍性(至少4%的WiFi 熱點存在安全威脅)、風險性和技術特征. 最重要地,我們首次揭示WiFi 攻擊背后的地下黑色廣告產業,并發現第三方Web 分析平臺(通常合法運營但并不知情)是其盈利鏈條的關鍵環節.據此向國內主要Web 分析平臺檢舉報告,使得基于WiFi 的廣告攻擊減少接近一半.
用戶對終端網絡的第一訴求是可用(usability),能夠以應用所需要的速度接收來自互聯網的數據包,并且能夠看到這些數據包的直觀效果. 就接收速度而言,可用性要求數據的高速傳輸,通常稱為“高網速”或者“高帶寬”. 同等帶寬前提下,不同的數據傳輸方式,如先傳誰、后傳誰、怎么傳則會產生不同的直觀效果,這突出地表現在Web 網頁的展示上,而Web 網頁是今天絕大多數移動應用的呈現形態.
網絡帶寬的準確測量是保障諸多網絡應用服務,如微信語音、視頻直播和在線會議質量的重要前提[17-18]. 網絡帶寬觀測數據經常被政府報告、商業新聞和運營商廣告所引用,直接或間接地影響網絡用戶的選擇和決策[19]. 實際上,在新冠疫情期間,網絡帶寬測量(簡稱“測網速”)一度成為家庭網絡最熱門的服務,因為居家辦公的網民非常關心其帶寬情況[20]. 因此,移動虛擬運營商用戶對帶寬也十分重視,他們很擔心被實體運營商區別對待而導致服務質量降級. 此外,移動網絡的興盛使得帶寬隨環境而劇烈變化,因而測網速服務的需求頻率大幅度提升[21-22].安卓11 操作系統甚至專門提供API 幫助5G 應用粗略評估網絡帶寬.
影響帶寬測量準確性的關鍵因素是信道噪音,它來源于擁塞控制和信道共享等諸多因素. 長期以來,主流工業系統(如Ookla Speedtest、Google FAST和友聲科技“測網速”App)所采用的帶寬測量技術均致力于從時間或空間的角度來降低信道噪音的影響,要么像Google FAST 那樣延長測量時間直到噪音變得很弱,要么像Ookla Speedtest 那樣使用空間鄰近的測量服務器(全球范圍已經分布式部署16 000 多臺服務器,幾乎能給任何一個測速終端分配一臺)以直接避免絕大多數噪音. 前者使測量過程緩慢拖沓,后者使測量系統成本高昂,并且這些缺點伴隨高速無線網(如5G 和WiFi 6E)的普及而急劇惡化. 如果一臺5G 手機當前下行帶寬約1 Gbps,那么使用Speedtest測速一次就需要持續15 s、消耗1.4 GB 左右的蜂窩流量——前者尚可忍耐,后者極難接受,因為1.4 GB蜂窩流量一般需要花費好幾塊錢!
針對這一領域瓶頸問題,我們采取迥異于前人的解決思路:不再從時間或空間的角度降低或避免噪音,而是從統計分析的角度容納和利用噪音. 該創新思路來自一個關鍵發現:雖然噪音經常導致帶寬瞬時采樣的顯著波動,卻幾乎從不影響帶寬關鍵區間的存在和位置. 如圖3 所示,在測速過程的任一時刻,帶寬的關鍵區間都包含數量眾多的采樣點,并且這些采樣點密集地聚攏在一起(Vx和Vy之間). 隨著時間的推移,新出現的采樣點可能上下跳躍,甚至成為離群值(outlier),但新計算的關鍵區間則只會微調,即便是離群值的出現也只會反向強化關鍵區間的穩定.

Fig.3 Existing sampling points of the bandwidth at a certain time as well as their crucial interval圖3 某一時刻帶寬的現存采樣點及其關鍵區間
在上述創新思路和關鍵發現的指導下,我們基于計算幾何學和離散控制論研發“模糊拒絕采樣”[8-9]雙向強化帶寬測量技術:正常采樣點被接受,正向強化關鍵區間;異常噪音點被拒絕,反向強化關鍵區間;關鍵區間往往在測速剛開始的幾秒就已經十分明顯,并不需要拖沓冗長地再測十幾秒.
由于我們的帶寬測量技術對噪音不敏感,并不需要距離用戶終端很近的測速服務器,因此可以使用廉價彈性的公有云虛擬機和容器構建測速(微)服務器池,在幾乎不影響測速性能的前提下,能夠將經典設計的基礎設施開銷降低數十倍. 具體來說,如果測網速系統服務用戶較少,則完全使用容器微服務、按需瞬時部署測速服務器,測試完畢馬上回收;反之,如果測網速系統服務用戶較多且地理位置隨機,則更適合使用常駐虛擬機作為測速服務器,并且盡量分散部署在核心互聯網流量交換點①以中國大陸為例,存在8 個核心IXPs,分別位于北京、上海、廣州、南京、沈陽、武漢、成都和西安.(Internet eXchange points,IXP)附近,從而兼顧成本和性能.
通過模糊拒絕采樣結合云原生測試服務器部署,能夠同時達成快速、輕量、準確這3 個在傳統意義上看似矛盾的目標. 基于Web 的技術實現,其架構如圖4 所示,能將網絡帶寬的測量時間從主流工業系統的10~30 s 降低到3~5 s,相關代碼全部開源②https://FastBTS.github.io. 還部署了在線原型系統③http://FastBTS.thucloud.com一鍵測速,對應技術應用到公安部第三研究所的高速網絡帶寬檢測工作中,取得預期效果:平均測量時長為2.4 s,流量消耗為1.2 GB;相比Ookla SpeedTest,平均測量時長縮短6.2 倍,流量消耗減少9.1 倍.

Fig.4 Architecture of Web-based Fast BTS system based on fuzzy rejection sampling圖4 基于模糊拒絕采樣的Web 快速輕量帶寬測量系統架構
更進一步,基于移動App 的技術實現應用到國內最大規模的“測網速”App④http://uuspeed.uutest.cn,絕大部分情況下能在亞秒級(即少于1 s)時間內準確測量移動終端的網絡帶寬[5],相關代碼和數據已開源⑤https://MobileBandwidth.github.io.
在“測網速”App 研發團隊的大力支持下,我們順利邀請到354 萬移動手機用戶開展為期4 個月(2021 年8 月至11 月)的“深度”帶寬測量,總共收集到2 360萬條深度測量數據,每一條對應一次帶寬測量所涉及到的物理層、鏈路層、網絡層、傳輸層和應用層的豐富信息,但不包含任何用戶隱私數據. 從這些數據中我們發現一個令人驚訝和沮喪的事實:從2020 年和2021 年,盡管WiFi 6 路由器和5G 基站被不斷部署,WiFi 數據傳輸的平均帶寬基本保持不變,2020 年為132 Mbps,2021 年為137 Mbps,4G/5G 數據傳輸的平均帶寬甚至還下降了,2020 年分別為68 Mbps 和343 Mbps,2021 年分別為53 Mbps 和305 Mbps.
仔細分析各項深度信息,我們發現WiFi 帶寬主要受制于其上游固定寬帶的接入帶寬,而接入帶寬最近幾年停滯不前. 4G 帶寬下降主要因為它原先擁有的3 個高帶寬頻段被“重耕”給5G 使用,但這些頻段對5G 來說又過于狹窄、不夠高速. 此外,還發現建筑物林立的城市中心區域雖然密集部署了大量5G基站(因此手機端接收信號很強),但由于建筑物多徑干擾、用戶之間負載均衡以及密集基站之間糟糕的切換問題,強信號卻往往對應較低的接入帶寬[23].上述根因分析基本上解釋了本文開頭提到的“網速困惑”.
絕大部分互聯網流量以Web 網頁形式傳輸和展現,但經典的網頁加載方式并不契合實際用戶體驗,往往加載很多資源而頁面并無關鍵可視內容,浪費網絡流量和用戶時間,如圖5(a)所示. 為此,我們將近年來廣受關注的可視化速度指標引入網頁加載過程,以量化頁面被可視內容填充的速度(當然越快越好),如圖5(b)所示. 雖然速度指標的直觀效果簡單清晰,但其積分計算方式卻十分復雜,所以此前一直被學術界和工業界用來回顧式地評估已發生的網頁加載過程[24-29],并不適合用做顯式啟發來指導即將發生的網頁加載過程.

Fig.5 Different loading processes of a typical web page(CCTV homepage) under the same network environment圖5 同等網絡環境下一個典型網頁(央視網主頁)的不同加載過程
深度分析使用速度指標啟發指導網頁加載調度的實際困難,我們發現其主要來自3 方面不確定性:1)網絡環境;2)瀏覽器執行環境;3)用戶端視口(viewport). 首先,使用同一設備加載相同的靜態頁面,在不同的網絡環境下會產生顯著的速度指標差異.事實上,即使此操作是在非常類似的受控網絡環境下重復執行,仍會出現相當大的速度指標差異,原因在于為加載頁面而分配的計算資源可能隨時間而變化. 此外,考慮到不同的用戶端視口大小,即便同一頁面的關鍵元素也是不確定的. 即便客戶端知道視口大小,很多時候也無法執行速度指標最優化的網頁加載調度,因為在網頁加載完成之前它并不知道哪些元素是“重要”的,特別是許多現代網站采用“流動式”布局來自動調整網頁元素的大小和位置. 這些不確定性使得我們不可能提前或一次性地獲得速度指標最優化的網頁元素加載調度方案.
為克服上述困難,我們從經典分布式調度理論出發,結合速度指標的積分特性,創新設計“累積反饋調度”算法[10],以微服務漸進反饋方式應對網絡環境、瀏覽器執行環境以及視窗大小在網頁加載過程中的不確定性,不斷累積優化網絡資源的調度下載順序,從而接近最大速度指標. 首先為網頁在不同窗口下創建預加載微服務,離線提取元素位置和資源依賴并保存;客戶端訪問網頁時,向服務端查詢可見元素. 隨后,為每個客戶端創建專有的傳輸微服務負責雙端通信,客戶端據此利用依賴信息生成基本的資源加載順序. 傳輸微服務和客戶端協同監聽網絡和JavaScript 引擎的不確定事件,實時調整以接近最優加載順序. 相比傳統整體式架構,基于微服務的調度架構可以利用雙端信息更準確地調控加載過程,并且獨立于網頁原有服務,不會對Web 系統產生整體性影響.
多主流網站、多網絡場景下的實驗結果表明:可視內容的展現速度能提高40%以上,介于30%到50%之間,平均41%. 創新調度算法運行1 次平均只需要12 ms,僅為網頁加載時間的0.3%,具體時間復雜度為O(n·logn)、其中n表示網頁中的元素數目.給服務器端帶來的額外計算開銷通常少于5%,具體內存開銷通常低于400 MB,而具體網絡流量開銷一般在12 KB 左右. 值得一提的是,我們所開發的“累積反饋調度”協作模塊適用于當前所有主流Web(微)服務器,并可通過簡單配置動態加載,相關的所有代碼和數據均已開源①https://SipLoader.github.io.
值得一提的是,上述快速網頁加載技術已經部分應用于“測網速”App 的網頁加載過程,視覺效果上進一步加速了2.1 節所述網絡帶寬的快速測量過程.
解決了終端網絡的可用性問題,用戶基本上能夠體驗到期待的數據傳輸性能,此時網絡設計者的研究通常會朝著縱向或橫向繼續努力,縱向努力進一步提高傳輸帶寬或降低傳輸時延[30],橫向努力則致力于大規模擴展或大面積覆蓋[31]. 然而,在終端網絡領域真實的工業實踐中,當基本可用性得到保證之后,用戶的訴求往往并不在于縱向或橫向的無止境提高,而是更關注一個隱藏維度——可靠性(reliability),即可用性的長時間大面積保障. 一種帶寬時延極優但時不時斷網、無故扣費甚至被惡意攻擊的網絡服務,對比另一種帶寬時延能接受、同時穩定規范安全的網絡服務,對于普通終端用戶來說,幾乎都會選擇后者——并不夸張地說:“網絡不可靠,則性能無意義!”
人們每天都使用手機上網,從2G、3G、4G 到5G,網速越來越高、時延越來越低、單位覆蓋面積的服務密度越來越大[32]. 然而,根據小米手機團隊近年來的運維經歷,手機異常斷網的發生概率卻越來越高.這里“異常斷網”指的是手機有信號且基站未過載、但依然無法接入互聯網,導致蜂窩連接十分不可靠,小米手機用戶投訴和吐槽激烈. 具體來說,安卓操作系統將蜂窩異常斷網故障分為3 類.
1)數據連接錯誤(Data_Setup_Error). 用戶設備可以接收到附近基站的信號,卻無法和它建立數據連接,并且該基站當前并未過載、還有服務能力.
2) 無服務(Out_of_Service). 用戶設備和基站成功建立數據連接,但收不到蜂窩數據.
3)數據阻塞(Data_Stall). 用戶設備可以從基站接收到數據,但突然發生長時間停滯:有發出的數據包、卻沒有接收的數據包;如果停滯時間超過1 min,安卓就認為發生了數據阻塞故障.
為了深度理解并有效解決該痛點問題,我們同小米手機團隊合作,基于定制化MIUI 操作系統(其架構如圖6 所示)連續8 個月跟蹤測量34 個型號共計7 000 萬部小米手機的異常斷網事件. 和小米手機(而不是蘋果手機、三星手機或者華為手機)研發團隊開展合作并非偶然,而是受到本文開頭所述“動機鴻溝”的強烈驅使:蘋果手機如果異常斷網,用戶通常認為是移動運營商的問題,因為蘋果手機昂貴“高端”;華為手機如果異常斷網,用戶一般認為是鴻蒙操作系統的問題,畢竟鴻蒙相比安卓還很不成熟;但小米手機如果斷網,大多數用戶都傾向認為是手機本身的問題,因為小米手機向來廉價“低端”,不得不成為用戶投訴壓力的直接承擔者,這只“替罪羊”有足夠強烈的動機來分析和解決蜂窩網絡的可靠性問題.

Fig.6 Architecture of the monitoring infrastructure for cellular connection failures in the customized MIUI Android operating system圖6 定制化MIUI 安卓操作系統的蜂窩連接故障監測架構
7 000 萬小米手機8 個月內總共向MIUI 系統后臺上報了20 億條異常斷網事件,這個數字(20 億)看上去很大,但平攤到每部手機則很小:每部手機平均每天僅異常斷網0.12 次,對于MIUI 系統后臺屬于相對較小的日志數據,所以后臺并沒有給我們分配專門的日志數據庫和分析服務器,只提供服務器無感知的日志存儲和分析功能. 這對我們來說既是挑戰又是機遇:挑戰在于需要仔細設計異常斷網數據的分析邏輯,避免時間復雜度太高;機遇則在于無需維護任何軟硬件基礎設施,將所有精力聚焦于分析邏輯本身.
通過對異常斷網事件大數據的綜合分析,我們發現實際情況比用戶吐槽上報的還要糟糕:雖然每部手機平均每天僅異常斷網0.12 次,但一旦發生異常斷網,其平均持續時間則長達3.1 min:想象一下如果是義務急救或者火災報警等極端場景,3 min 的網絡斷連意味著多大的風險和損失!更重要的是,將表觀現象和系統源代碼關聯到一起,我們發現安卓操作系統的蜂窩網絡管理模塊中存在多項不為人知的重要軟件設計缺陷,是損害蜂窩連接可靠性、導致手機異常斷網的主要根源;反過來,小米手機本身的軟硬件設計基本上不會加劇異常斷網的發生. 一個代表性案例如本文開頭圖1 所示,安卓11/12/13 操作系統盲目優先5G 連接、完全不考慮附近可用的4G 連接以及5G 資源的競爭程度,導致“飽和饑餓”現象[6,33].
另一個代表性案例如圖7 所示,每當安卓操作系統探測到終端設備發生數據阻塞故障時,將啟動三階段恢復機制來解決:首先清除當前建立的數據連接,然后等待1 min;如果故障未能解決,則重新注冊蜂窩網絡,可能會改變基站甚至運營商的選擇,再等待1 min;如果故障還是未能解決,則重啟整個無線模塊. 三階段所采取的解決措施從輕量級到重量級,直觀地模仿了普通用戶處理數據阻塞故障時的三階段行為:首先重啟網絡應用,然后重置蜂窩連接,實在不行就重啟手機(自然重啟整個無線模塊),絕大多數情況下效果顯著,但耗時較長,因為它沒有考慮到普通用戶在三階段中的耐心遞減——根據小米手機團隊的用戶調研,幾乎沒有人能等待3 min 之久,用戶希望能合理提前觸發每個階段,不必等滿1 min.

Fig.7 The three-stage recovery mechanism for cellular data stall in the Android operating system圖7 安卓操作系統對蜂窩數據阻塞的三階段恢復機制
針對上述問題,我們對經典的馬爾可夫過程實施動態化改造,讓狀態轉移概率隨時間的流逝而逐漸增大,從而提出基于“非齊次時變馬爾可夫過程”的最優化方法,將蜂窩連接修復的傳統被動等待策略革新為自適應的主動觸發策略,從而最小化手機斷網持續時間. 具體來說,圖7 所示的三階段恢復機制本質上是一個時間確定的狀態轉換過程,其步驟合理但等待時間固定,導致每一步驟均被低效觸發.為此,我們不對3 個階段等同看待(非齊次),基于收集到的數據阻塞故障恢復日志,用馬爾可夫過程重新建模整個恢復機制,從而根據實際情況自適應主動提前觸發每個階段,既不拖延又不倉促. 該方法在2 800 萬部小米手機上真實部署應用,我們觀察到所有手機異常斷網的持續時間縮短了36%.
針對“飽和饑餓”問題,我們基于收集到的數據連接錯誤和無數據連接故障日志,量化在各種不同信號強度下(0 格至5 格)5G 和4G 接入互相切換所導致的異常斷網概率變化,從統計意義上最優化5G終端設備的5G/4G 接入選擇. 考慮到統計意義最優不代表單次選擇最優,還引入穩定性兼容的4G/5G(控制平面[34])雙連接機制[35],在不降低數據傳輸率的前提下,實現蜂窩連接的高可靠平滑切換. 該方法同樣在2 800 萬部小米手機上真實部署應用,將5G 手機異常斷網的次數減少了40%.
上述研究工作所對應的論文[11]的相關測量、分析和增強代碼均已開源①https://CellularReliability.github.io. 值得一提的是,該論文被錄用后的指導評審人(Shepherd)是ACM SIGMOBILE主席、微軟亞洲研究院副院長邱鋰力教授,她為本文撰寫了近600 字的公開評審意見②https://dl.acm.org/doi/10.114 5/3 452 296.347 290 8,認為我們的工作“非常及時,是迄今最大規模的蜂窩測量研究. 為蜂窩網絡特別是5G 的發展做出多方面重要貢獻,包括有用的蜂窩斷網連續監控工具、多方面令人驚奇的科學發現以及行之有效的解決方案. 是SIGCOMM 2021 會議最高分論文之一,為優秀的網絡測量研究樹立了榜樣. ”
受電信資源充分利用和激發良性市場競爭的雙重驅動,移動虛擬運營商(簡稱“虛商”)近年來迅速流行[36],依靠傳統電信運營商(簡稱“實商”)提供的網絡基礎設施,為用戶提供更加靈活優惠的上層服務. 另一方面,虛商發展也面臨多重挑戰,比如網絡性能歧視、套餐轉售利潤微薄、計費不準確[37]、缺乏實體店認證[38](因此詐騙號碼很多)等. 如圖8 所示,虛商處在一個復雜而龐大的生態系統中,需要考慮上下游客戶和處理多種業務,尤其是關注用戶的痛點投訴. 到目前為止,這一新興市場的相關文獻很少,切實可用的解決方案更少,但其潛力是令人期待的.

Fig.8 Ecosystem architecture of a typical light mobile virtual network operator圖8 典型的輕型移動虛擬網絡運營商所處的生態系統架構
針對上述挑戰,我們同擁有300 萬用戶的商業虛商“小米移動”①https://10046.mi.com深度合作研究,通過大數據分析深入理解商業虛商生態系統各方面的關鍵特征,并采用云端機器學習結合統計建模的方法解決虛商痛點問題. 具體來說,為合理降低預算,將采集到的用戶話單計費數據預處理為月度時序數據;為保證強一致性、高可靠性與可擴展性,基于小米云平臺建立存儲與計算分離、讀寫分離的云原生月度時序數據庫. 其各項服務相互獨立的特點也提高了用戶數據的安全性. 此外,云原生支持數據庫管理和部署過程的靈活編排,便于簡潔高效的查詢、更新與分析.
針對網絡性能痛點,通過大規模采樣測量澄清了虛商客戶所反饋的帶寬時延歧視問題,發現小米移動用戶接入互聯網數據服務的上行/下行帶寬、端到端時延與實商用戶并無本質差別,所謂歧視主要來自新聞媒體的誤導宣傳以及用戶因此形成的心理暗示[12].
針對流量預測痛點,考慮到虛商從實商批量購買網絡流量時僅部分套餐有折扣(大部分套餐以原價購入),虛商需要對用戶每月使用的流量進行精準預測,才有可能在轉售流量套餐時盈利. 通過分析小米移動用戶的月度流量數據,發現絕大部分用戶“兩極分化”——要么流量套餐大量剩余,要么嚴重超出套餐額度. 此外,還發現不少流量異常(由系統計費bugs 導致)和缺失現象(用戶入網時間過短導致). 基于這些基本觀察,我們調研并實驗對比了多種數據異常檢測算法和缺失插值算法,最終采用格魯布斯檢驗法結合近鄰平均插值法開展有效的數據清洗[13].對于清洗后的高質量數據,我們使用SVR-RBF 機器學習算法結合統計不確定建模方法(利用多用戶宏觀模型修復個別用戶的機器學習預測誤差),將預測準確率提升到 93.3%,最終使得小米移動的盈利提高了60%.
針對流失預測痛點,對小米移動來說,維護一位老客戶的費用相比獲取一位新客戶的成本要低很多,因此需要準確預測本月最可能流失(也稱“離網”)的用戶來提前挽留. 我們首先采用隨機森林方法達到94.45%的召回率和95.52%的精度(召回率比精度更重要),也就是說仍然存在5.55%的離網用戶遺漏. 通過對遺漏用戶數據的仔細分析,發現錯誤預測主要是由數據集的類別不平衡導致,于是調研并實驗對比了多種基于重采樣的不平衡數據集處理方法[13],發現采用“單邊選擇”方法[39]能夠將離網預警模型的召回率提高到97.8%、精度提高到96.3%,最終使得小米移動的用戶流失率降低了61%.
針對詐騙檢測痛點,很多不法分子利用在線身份認證的漏洞購買虛商SIM 卡撥打詐騙電話,導致虛商用戶中詐騙號的比例高達0.37%,遠大于實商的0.1%. 一開始,我們直接求助實商成熟的監管服務來獲取詐騙號碼列表,但由于虛商缺少兩類關鍵數據:實體店現場身份認證數據和用戶信令建立數據,導致實商的監管服務無能為力. 實際上,虛商基本上只能獲得通信會話層信息,無論用什么機器學習方法,識別效果都不盡如人意. 另一方面,通過仔細分析被標注詐騙用戶的表層行為和深層動機,發現兩者存在強烈關聯——詐騙行為幾乎總是受(潛在)暴利的驅動才可能發生,是有組織、按計劃、成規模的. 從而以攻擊經濟學為基礎提出利用詐騙電話時空特征的新型檢測方法[14],取得意想不到的效果——將虛商的詐騙用戶比例大幅度降低16 倍(低至0.023%),遠低于實商在充分信息前提下所達到的0.1%.
在避免上述方案被破解的前提下,相關代碼和數據已部分開源②https://mvno-optimization.github.io. 值得一提的是,在3.1 節我們對小米手機蜂窩連接可靠性的深度研究和事實澄清,也有效幫助到小米移動團隊解決虛商客戶所反饋的帶寬時延歧視問題.
第3 節我們說過:“網絡不可靠,則性能無意義!”,本節我們繼續套用這一句式:“網絡不可信,則性能副作用!”一個網絡一旦被黑客入侵甚至控制,其網絡性能越高(高可用)、連接越穩定(高可靠),對用戶產生的危害越大. 今天的終端設備接入互聯網主要通過蜂窩基站和WiFi 熱點,所以下文我們聚焦于惡意的蜂窩基站和WiFi 熱點兩方面研究工作.
近年來全球移動電信產業蓬勃發展,運營商不斷部署4G/5G 蜂窩基站提升服務性能. 同時,也出現了大量的非法偽基站設備,通過使用極高的信號強度,誘使周圍的移動設備斷開與合法基站的連接,從而連接到偽基站,趁機向用戶發送垃圾或詐騙短信,并且往往使用權威號碼(如10086 和95588)使用戶放松警惕、容易上當受騙[40]. 據報道,我國手機用戶接收到至少數百億條偽基站短信,造成經濟損失數百億元.
偽基站之所以成為可能,是利用了GSM(2G)蜂窩網絡協議簡單而著名的“單向認證”漏洞——只要求基站認證用戶、卻不要求用戶認證基站. 雖然之后的3G/4G/5G 蜂窩網絡協議都改成了雙向認證,但由于2G 基站歷史悠久、數量龐大且覆蓋范圍最廣,終端蜂窩設備通常都保留2G 通信模塊以備不時之需.實際上,即使終端蜂窩設備附近存在可以連接的3G/4G/5G 基站,“高端的”偽基站依然能夠通過發送干擾信號強迫這些設備以2G 模式連接到自身.
為及時有效地檢測偽基站、同時保護手機用戶的安全,我們同擁有上億手機用戶的“百度手機衛士”①https://shoujiweishi.baidu.com團隊合作,研發大規模偽基站識別與定位系統“偽基站雷達”[15]. 如圖9 所示,通過云端收集并關聯分析來自上億手機的非隱私多維數據建立(短信分類)大語言模型,能夠利用SVM 機器學習集群和可信電話號碼列表快速準確識別偽基站短信. 此外,基于用戶報告的消息日志、蜂窩基站位置數據庫和WiFi 熱點位置數據庫開展內容無關分析,特別是信號強度檢查、基站ID 合法性檢查、基站-WiFi 熱點地址一致性分析以及基站交接速度評估,也能夠識別絕大多數(98%)偽基站短信,同時最大程度地保護用戶隱私.

Fig.9 Architecture of FBS-Radar system integrated by Baidu PhoneGuard圖9 百度手機衛士集成的“偽基站雷達”系統架構
偽基站雷達系統平均每天為用戶識別過濾數百萬條偽基站短信(用戶上報的可疑短信中至少4.7%來自偽基站),識別準確率高達99.95%,定位偽基站的中值誤差僅為11 m,該精度已足夠支持執法機構實時跟蹤偽基站的裝載車輛. 該系統一直工作、維護和優化至今,其識別和定位結果為公安部持續提供關鍵信息支持, 幫助公安干警每月抓捕偽基站犯罪人員數十名、收繳偽基站設備數十至數百臺.
WiFi 熱點(也稱WiFi 路由器)承載移動互聯網75%以上的“最后一公里”流量,同時不可避免地成為各種安全威脅的攻擊目標. 犯罪分子利用WiFi 熱點的安全漏洞來竊聽無線流量,通過DNS 劫持發起釣魚攻擊,甚至通過挖礦劫持直接獲利. 實際上,攻擊者不僅會操控他人的WiFi 熱點,還會自行部署完全以攻擊為目的的WiFi 熱點. 目前,基于WiFi 的攻擊已經成為全國性的安全威脅(央視3·15 晚會多次報道),損害數億終端用戶的上網體驗和安全隱私.
為全面了解全國范圍的WiFi 安全威脅,我們與擁有9 億用戶的WiFi 熱點發現和管理應用“WiFi 萬能鑰匙”②https://www.wifi.com合作,搭建WiFi 安全檢測系統[16]. 如圖10所示,以個性化微服務方式實施攻擊行為誘捕與主被動跨層探測——云端定制彈性IP 地址(其中大部分被故意設置為不可達地址,只有惡意WiFi 熱點才會有所反饋)及合成網頁內容(其中隱藏防篡改簽名,從而準確檢測惡意WiFi 熱點對網頁內容的更改),每臺WiFi 熱點設備被檢查的方式及相關參數不盡相同,取決于具體設備配置和網絡環境.

Fig.10 Architecture of WiFi security detection system integrated by WiFi Master圖10 “WiFi 萬能鑰匙”集成的WiFi 安全檢測系統架構
WiFi 安全檢測系統6 個月內從1 400 萬用戶設備上收集到1 900 萬個WiFi 熱點的安全檢查數據,使得我們能宏觀把握WiFi 安全威脅的普遍性(至少4%的WiFi 熱點存在安全威脅)、風險性(90%以上HTTPS 網頁依然能被劫持)和隱蔽性(插入網頁廣告的概率僅為17%). 更重要的是:首次揭示大多數WiFi 安全攻擊由地下黑色廣告產業驅動,而第三方Web 分析平臺是其盈利鏈條瓶頸. 因此,我們向國內主要Web 分析平臺舉報地下黑色產業,使得基于WiFi 安全攻擊發出的廣告減少接近一半.
雖然終端網絡的存在形態多種多樣,但對普通用戶日常生活影響最大的只是蜂窩網絡和WiFi 網絡,蜂窩網絡側重服務室外環境,WiFi 網絡側重服務室內環境,兩者最容易被安全攻擊的環節都是互聯網接入點. 4.1 和4.2 節分別面向蜂窩基站和WiFi 熱點的安全保護,將兩者結合到一起,大幅度提升互聯網接入點的可信性.
前面4 節所講述的研究工作,雖然都在大規模工業系統中取得顯著效果,但是都需要真實用戶設備的參與,導致研究門檻較高、不利于其他研究者重現或復用. 更大的限制在于“后動性”:總是等到終端網絡實際部署應用之后才能發現其中的設計缺陷,此時已有相當一部分用戶設備已經承受了這些缺陷所帶來的不利影響,并且某些缺陷即使發現也很難修復.
針對上述兩方面限制,我們近年來一直構思“前動性”的研究方案,依然運用云原生思想進行終端網絡的強化設計,但研究客體從真實用戶終端設備轉變為虛擬化終端模擬器. 相比真實終端設備,終端模擬器成本低、易維護、擴展性強,云計算數據中心部署到地球的哪個角落,終端模擬器就能跟隨部署到哪里,而且也能接入到特定終端網絡(已有不少云平臺提供網絡接入的定制服務),從而快速便捷地模擬出地理分散的大規模多樣化終端網絡場景,讓終端網絡的設計“生于云、長于云”.
主要研究內容和創新點如圖11 所示,從云端模擬器的3 個核心屬性(效率、兼容、安全)出發,首先研究能讓每個屬性達標的經典技術當前所具備的優缺點. 初步考察發現:每種經典技術目前都存在較大設計缺陷,難以匹配終端網絡前瞻性研究的應用場景,尤其是極端終端環境(比如低端個人電腦)和應用類型(比如重型移動應用)的需求. 具體地,針對直接安卓模擬技術強人工、低健壯的缺陷,研發間接圖形映射的創新解法,使得重型三維安卓應用也能在低端個人電腦上流暢運行. 針對動態二進制翻譯技術低保真、弱封閉的缺陷,探索云原生軟件蜜罐的移動場景適配,從而支持物聯網終端的前瞻性設計. 針對常規虛擬化執行易暴露、常循環的缺陷,重點關注智能事件生成機制,使其能在移動應用市場規模化部署和維護. 下文簡要介紹每個方面的前期工作基礎和近期工作重點.

Fig.11 Proactive design for terminal networks based on mobile emulators: main research contents and innovations圖11 基于移動模擬器的終端網絡前瞻設計:主要研究內容和創新點
移動模擬器讓移動操作系統和應用無縫運行在個人電腦和服務器之上,對整個移動生態起基礎性支撐作用. 過去二十多年中,為適應強交互、重渲染的應用場景,各種工業移動模擬器要么選擇疊加高硬件兼容、強安全的圖形渲染框架和虛擬層(如VMware 和谷歌安卓模擬器),要么拋棄抽象、直接模擬(如騰訊手游助手),因此始終是在模擬效率、安全和兼容3 個關鍵維度折中妥協.
3 個維度中最難提升的是模擬效率,因為移動設備和桌面設備在CPU 指令集、操作系統和互動控制3 個方面都存在巨大差異. 經典的動態二進制翻譯[41-42]、類虛擬化[43-44]、硬件輔助虛擬化[45-46]技術很難填補這道鴻溝. 強人工定制化的庫函數虛擬化技術(很多人認為這屬于非虛擬化技術)理論上有能力填平鴻溝,但實際上由于人為性太強、工程量太大,只能部分填補、無法面向普適場景,比如微軟公司著名的第一代Windows Subsystem on Linux(簡稱WSL)[47-48],一直停留在命令行黑窗口階段,無法支持圖形化移動應用,實際上即使是命令行支持也不全面.
移動模擬效率的突破首先發生在移動游戲場景.隨著移動設備的普及,移動游戲越來越流行,已經成為游戲市場的主體. 相比于移動設備,個人電腦具有較大的顯示屏、較高的分辨率以及更精準的鍵盤/鼠標操控,因此近年來在個人電腦上使用模擬器運行移動游戲漸成潮流. 工業界傳統的移動游戲模擬器,如“藍疊”“雷電”和“逍遙”采用的都是常規AOVB軟件加速虛擬化技術,導致重型三維游戲,如“和平精英”運行流暢度很差,對用戶來說很難甚至無法忍受. 為突破模擬效率瓶頸,我們研發面向重型移動應用的“直接安卓模擬”(direct Android emulation)技術[49],實現x86 架構Windows 操作系統上直接運行安卓應用的可執行文件,從而消除了常規虛擬化技術帶來的額外計算開銷,并且不依賴使用門檻較高的硬件虛擬化技術,如Intel VT. 該技術被“騰訊手游助手”①https://syzs.qq.com產品實際采用,活躍用戶量超過2 000 萬,運行重型三維移動應用超過8 000 個,模擬運行流暢度持平或接近高端手機直接運行. 對應系統還獲得國際移動計算領域重要會議International Conference on Mobile Computing and Networking (MobiCom) 2019 的最佳系統展示獎.
雖然直接安卓模擬技術效率很高,但其本質上依然屬于庫函數虛擬化,而且面向游戲市場,所以兼容性和安全性依然不足,不少安卓應用無法支持,“騰訊手游助手”每次運行前需要首先啟動騰訊殺毒軟件來“清理”環境. 那么,有沒有可能實現效率、安全和兼容同時具備的理想化“三位一體”移動模擬器呢?如圖12 所示,我們提出“間接圖形映射”[50]虛擬化渲染技術,將99.93%以上的虛擬機-宿主機間圖形交互操作,特別是上下文圖形調用和資源圖形調用消融或緩存于虛擬機內部,同時設計出輔助配合的彈性控制流調度機制和自適應數據流傳送機制,從而大幅度降低虛擬化上下文切換開銷、并且高效復用宿主機顯卡的計算能力,在國際上實現3 個關鍵維度同時兼顧的“三位一體”移動模擬器. 平均模擬效率1.4 倍于騰訊手游助手、2.8 倍于谷歌安卓模擬器,而兼容性和安全性與谷歌安卓模擬器持平.

Fig.12 Basic idea of indirect graphics projection is to construct a projection space in the virtual machine圖12 間接圖形映射的基本思想:在虛擬機中構造映射空間
“三位一體”模擬器已被華為公司采用,替換原先的谷歌安卓模擬器,作為其DevEco Studio 集成開發環境②https://DevEcoStudio.huawei.com的重要組成部分,解決我國基礎軟件領域的卡脖子問題. 相關代碼和數據已開源③https://TrinityEmulator.github.io. 雖然已經突破關鍵技術瓶頸,但該模擬器目前還存在不少功能性瑕疵和穩定性漏洞,我們一直在和華為公司合作探索系統性的檢測和修復方案.
分布于人們日常生活方方面面的物聯網終端設備數量龐大、功能繁雜,同時也面臨嚴峻安全威脅,因為物聯網設備通常廉價,異構與簡化的設計導致適配服務器和個人電腦的傳統安全措施收效甚微——物聯網設備幾乎都不能安裝和運行常見的殺毒軟件或防火墻. 蜜罐(honeypot)技術是互聯網上發展成熟、廣泛應用的研究已知或未知安全攻擊的重要工具,但由于物聯網設備架構多樣、外設連接方式復雜,經典的互聯網蜜罐難以適用. 國際上對物聯網蜜罐的研發尚處于起步探索階段,在保真性、完整性、封閉性等方面差強人意,規模化部署管理的開銷也比較高昂,所以始終停留在小范圍實驗室階段.
致力于以較低基礎設施和人力成本開展全面系統的物聯網安全研究,基于兼容性最強的動態二進制翻譯技術(更具體地是QEMU 模擬器)研發“云原生蜜罐”[51],具備3 個方面的特色:1) 硬件測量驅動軟件設計,以小規模物聯網硬件蜜罐實測結果指導模擬器軟件蜜罐的科學設計,兼具保真性、完整性和封閉性;2) 在跨越全球的多個公有云上自動化部署軟件蜜罐,大幅度降低規模化管理維護的成本,同時將每個蜜罐收集到的攻擊信息實時上傳到后端云存儲;3) 關注強隱藏性的“無痕攻擊”(也稱“無文件攻擊”),在文件系統無修改、Shell 命令未執行的不利條件下,依然能夠實現較為準確的攻擊畫像與追根溯源.
如圖13 所示,我們研發的云原生軟件蜜罐原型系統已在全球8 個公有云(亞馬遜EC2、微軟Azure、谷歌云、DigitalOcean、Linode、Vultr、阿里云和騰訊云)上開展了長周期(12 個月)、中規模(108 節點)、低成本(6 美元/節點/月)的實戰檢驗,收集到上億次安全攻擊的詳細數據,發現近600 種有痕攻擊和8 種無痕攻擊,相關代碼和收集到的各種數據已開源①https://HoneyCloud.github.io.同時我們也發現:8 個公有云對軟件蜜罐的支持性和友好度差異很大,比如亞馬遜云的IP 地址范圍全網公開、阿里云會攔截外部流量,需要靈活調整比例、彈性部署,并進一步降低維護成本,這些都是亟待解決的系統性問題.

Fig.13 Prototype system deployment for cloud native software honeypots圖13 云原生軟件蜜罐的原型系統部署
移動應用市場是當前移動應用分發的主要渠道,同時也成為惡意應用快速散播的便捷途徑. 過去十幾年里,人工智能技術被廣泛用于惡意應用檢測,但是至今依然缺少面向移動應用市場的惡意應用智能檢測系統. Google Play Store 據說采用了相似的技術方案,但從未對外公布任何技術細節和性能數據,研究者只能通過黑盒基準測試窺其一斑. 為了搞清楚構建此類系統的關鍵挑戰,與騰訊應用市場②https://sj.qq.com合作,研發基于行為特征(主要包括應用編程接口、申請權限和消息傳遞對象)和常規AOVB 虛擬化技術的安卓應用智能安全檢測系統[52-53],其工作流程如圖14 所示.
研發經驗揭示成功開發此類系統的5 個關鍵點:1)特征選擇;2)特征工程;3)應用分析速度;4)開發者參與;5)模型進化. 其中任何一點失敗將會導致整個系統因“木桶效應”而失敗. 更重要地,影響多數關鍵點的一項核心技術稱為“智能事件生成”,在經典的谷歌Monkey 終端用戶事件生成工具的基礎上增加了針對執行死循環、事件冗余、頻率單調、易被識別等原始設計缺陷的多項重要優化機制[54-55]. 最終實現的系統稱為APIChecker,因為安卓軟件開發工具包(SDK)所提供的大量APIs 是我們分析安卓應用行為的最基本特征,實際部署并長期運行于騰訊應用市場,僅使用單臺商品化服務器(價格不超過10 萬元的普通配置服務器)就可以完成每天1 萬多個互聯網新上傳安卓應用的安全檢測任務,準確率和召回率都超過98%,單個應用平均分析時間僅為1.3 min,遠低于Google Play Store 所需的5 min. 我們的實踐工作為人工智能和云計算技術系統性落地移動應用安全檢測場景提供了第一手經驗,相關代碼和數據已開源①https://APIChecker.github.io.
基于上述經驗,進一步和字節跳動公司開展延伸科研合作,解決通用模擬器和多版本安卓SDK、異構互聯網流媒體編碼協議以及圖形渲染接口(比如OpenGL 和OpenGL ES)之間的自適應兼容性問題,幫助字節跳動公司多款移動應用(比如抖音、今日頭條和西瓜視頻)發現未知的設計缺陷和安全漏洞,有效增強它們的運行時可靠性[56-57]. 在此過程中,我們還發現谷歌安卓模擬器在解碼特定格式視頻時存在的重要缺陷,分析缺陷原因并提出合理解法,上報谷歌官方論壇后,得到其研發團隊的肯定與接受②https://issuetracker.google.com/issues/262 255 458.
未來我們計劃將這一系列技術成果推廣到更為普適以及前沿的場景,特別是增強現實、虛擬現實、混合現實、元宇宙類資源消耗極高且其設計缺陷對用戶體驗影響極大的移動應用[58-59].
正如光是宇宙間最快速普適的信息載體,互聯網是人類在這個星球上最快速普適的信息傳輸工具;光具有波粒二象性,互聯網則由差異極大的骨干網絡和終端網絡兩部分構成. 相對于直觀、簡潔、穩定的光來說,互聯網深邃、復雜、多變;對普通用戶來說,終端網絡是互聯網唯一直觀可見的部分,卻又是最捉摸不定、瓶頸故障最多的部分. 本文以云原生強化設計的方法研究大規模復雜終端網絡,力圖通過“生于云、長于云”(簡潔)和“泛在場景、普適改進”(穩定)將其設計得更加可用、可靠、可信,在多個工業系統中取得明顯效果,造福十億網民.
然而,我們的研究成果并不徹底、也不完整,因為封閉神秘的骨干網對我們來說一直是個“黑洞”.雖然它只導致1%的性能瓶頸,卻是解決互聯網諸多問題的必然途徑和最終歸宿,很多看似終端網絡的問題只有同時訴諸骨干網絡才能找到完備答案. 因此,我們一直在尋求“雙網合璧”的寶貴研究機會,期望能從更為深廣的層次洞悉互聯網問題的本質.
此外,第5 節所介紹的基于移動模擬器的前瞻網絡設計,目前在嚴密性和可操作性2 個方面還存在較大提升空間. 首先,移動模擬器雖然在軟件功能上能夠仿真移動終端網絡節點,但在硬件(信號和功耗)和性能上卻很難實現高保真性,前瞻設計可能遺漏或者衍生的問題還需要從理論和實驗上嚴密分析論證. 此外,移動模擬器的配置和使用對普通網絡研究者來說難度較大,需要科學系統的教材、深入淺出的教程和清晰易懂的界面來幫助降低操作門檻.
作者貢獻聲明:李振華總結科研成果、構思并撰寫全文;王泓懿負責部分繪圖并完善參考文獻;李洋、林灝、楊昕磊負責部分技術內容補充和參考文獻整理.