【來源申明】本文引用了微信公眾號“鮮棗課堂”的《坐高鐵手機沒信號?原因遠比你想的要復雜!》文章內容。為了更好的內容呈現,本文在引用和收錄時內容有改動,轉載時請注明原文來源信息,尊重原作者的勞動。
1、系列文章引言
1.1適合誰來閱讀?
本系列文章盡量使用最淺顯易懂的文字、圖片來組織內容,力求通信技術零基礎的人群也能看懂。但個人建議,至少稍微了解過網絡通信方面的知識后再看,會更有收獲。如果您大學學習過《計算機網絡》這門課,那么一定不要錯過本系列文章。
特別推薦即時通訊開發者來閱讀,因為針對移動弱網的問題,確實可以找到很多有價值的答案。
友情提示:本系列文章可能涉及以下通信技術范疇,如您有興趣,也可自行系統地學習:

- 移動端IM開發入門文章:《新手入門一篇就夠:從零開發移動端IM》
- 開源IM框架源碼:https://github.com/JackJiang2011/MobileIMSDK(備用地址點此)
1.2本系列文章的初衷
作為即時通訊(IM、消息推送等應用場景)相關技術的開發者人員來說,似乎了解跨專業的通信技術(這是大學通信工程專業類學生的學習內容),有點過于深入和底層了,因為一般來說熟練掌握邏輯層的TCP\IP相關協議、網絡編程相關的應用技術就差不多能勝任這方面的本職工作了。
沒錯,確實是這樣。但在開發IM、推送這類應用系統時,尤其在移動網絡下,各種弱網問題,讓人非常痛苦。
典型的弱網問題,比如:
- 1)頻繁掉線;
- 2)丟包嚴重;
- 3)網絡抖動;
- 4)網絡延遲;
- ........
那么,針對以上現象,怎么才能有底氣的跟老板、客戶、產品經理地解釋以下問題?
- 1)導致這些現象的根本原因到底是什么?
- 2)怎么跟老板解釋,要搞定在高鐵上用好音視頻聊天功能很困難?
- 3)怎么跟客戶解釋P2P在3G、4G甚至5G網絡下的成功率問題?
- 4)怎么向客戶說明,商場或人多場合下,明明信號很好,但你的APP確用不了?
- .......
你說這些都是網絡問題,APP代碼無能為力。那么,你倒是講講到底是什么樣的網絡問題?能把人講信服了,就可以甩鍋給網絡,不然只能是APP代碼背鍋了。現實吧!
所以,我們還是老老實實花點功夫來研究研究通信技術吧(通信技術直面的是網絡通信物理層),至少遇到問題,不說給別人,至少給自已找到一個說的過去的解釋。這才是一個優秀程序員的修養!
1.3本系列文章的價值
網上能找到的通信技術資料都太過專業或太不專業,要么都是搞網絡工程方面的內行人編寫的(內容專業但很枯燥難懂),要么就是外行的IT開發人員寫的(很少見,且價值不大,因為不夠專業,所以內容并不準確,參考價值很有限)。
既能讓外行的普通程序員看懂,還能準確地講明白通信技術知識,這樣的資料簡直比找金礦還難。因為普通程序員能接觸到的網絡編程、網絡通信方面的資料多針對數據通信的邏輯層(比如:tcpip、socket等知識范疇),而通信技術涉及的是數據通信的物理層(交換機、路由器、天線、網絡制式等),某種意義上來說,這是完全不同的技術方向。
好消息是,經過長時間的資料搜集,終于有了本系列文章,希望能給你帶來幫助。
1.4拓展閱讀
即時通訊網之前已經整理過《移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”》、《移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結》、《現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障》這幾篇初涉通信層的文章,但都因技術廣度和深度有限,能帶給讀者的幫助比較局限。如果您看過這幾篇文章,那么一定不要錯過本次的《IM開發者的零基礎通信技術入門》系列文章。
另外,如果您對最基本的程序員本該掌握的網絡編程知識都還不怎么了解的話,建議首先閱讀《網絡編程懶人入門系列文章》、《腦殘式網絡編程入門系列》,以及更高深一點的《不為人知的網絡編程系列文章》。
1.5番外:通信技術女神鎮樓

▲ 史上最高顏值科學雜志封面,人物為 “CDMA之母”——海蒂·拉瑪(一個被演藝事業耽誤的科學女神)
2、本系列文章目錄
《IM開發者的零基礎通信技術入門(一):通信交換技術的百年發展史(上)》
《IM開發者的零基礎通信技術入門(二):通信交換技術的百年發展史(下)》
《IM開發者的零基礎通信技術入門(三):國人通信方式的百年變遷》
《IM開發者的零基礎通信技術入門(四):手機的演進,史上最全移動終端發展史》
《IM開發者的零基礎通信技術入門(五):1G到5G,30年移動通信技術演進史》
《IM開發者的零基礎通信技術入門(六):移動終端的接頭人——“基站”技術》
《IM開發者的零基礎通信技術入門(七):移動終端的千里馬——“電磁波”》
《IM開發者的零基礎通信技術入門(八):零基礎,史上最強“天線”原理掃盲》
《IM開發者的零基礎通信技術入門(九):無線通信網絡的中樞——“核心網”》
《IM開發者的零基礎通信技術入門(十):零基礎,史上最強5G技術掃盲》
《IM開發者的零基礎通信技術入門(十一):為什么WiFi信號差?一文即懂!》
《IM開發者的零基礎通信技術入門(十二):上網卡頓?網絡掉線?一文即懂!》
《IM開發者的零基礎通信技術入門(十三):手機信號差?一文即懂!》
《IM開發者的零基礎通信技術入門(十四):高鐵上無線上網有多難?一文即懂!》(* 本文)
《IM開發者的零基礎通信技術入門(十五):理解定位技術,一篇就夠》
3、本文內容概述
眾所周知,我們國家有目前世界上最發達的高速鐵路網絡。高鐵,拉近了城市之間的時間距離,徹底改變了我們的生活。
可是,高鐵千好萬好,有一點卻始終困擾著乘客,那就是高鐵上面的手機信號難題。
乘坐高鐵的時候,漫漫旅途,寂寞難耐,你一定會掏出手機,以此來打發時間。

不過,你經常會發現,手機信號很不穩定,時好時壞,甚至有時候干脆徹底無信號。
在這種信號質量下使用手機,只能勉強聊聊微信,看看網頁。看視頻的話,會頻繁出現卡頓。
此時要是玩游戲就更別想了,一定會坑死隊友:

這種情況下,對于IM程序員來說,被用戶、產品經理、老板抱怨:“為什么我們的APP不能在高鐵上好好聊?”,貌似是再正常不過的事了。。。

好吧,那么你到底有沒有認真考慮過,為什么在高鐵上手機信號會這么差?這個無線通信難題真的無法解決嗎?今天,作為通信老司機的筆者,就詳細和大家聊聊這個問題。
4、背景知識鋪墊
首先,我們把目光聚焦在十年之前的2008年。這一年很重要,可以說具有劃時代的意義。
從通信的角度來看:2008年之前,我們長期處于2G時代,使用的是GSM和CDMA網絡。智能手機剛剛起步,我們的通信方式,還是以電話和短信為主。
從鐵路的角度來看:2008年之前,我們還沒有高鐵,鐵路出行,基本上都是乘坐普速列車,也就是我們常說的綠皮車、紅皮車、藍皮車。

▲ 普速列車,運行速度基本上在80-120km/h左右
2008年8月1日,中國第一條真正意義上的高鐵——京津城際,正式開通,時速350公里。由此,正式宣告中國進入高鐵時代。

不久之后,通信這邊也發生巨變,2009年1月7日,工信部正式發放3G牌照,中國進入3G時代。

經過十年的發展,從京津城際,到武廣客專,再到京滬高鐵,新的高鐵線路不斷開通,如今中國高鐵運營里程已經接近3萬公里。
而通信方面,經過短暫的3G時代,中國很快邁入了4G時代。現在,4G網絡已經基本實現了全國覆蓋。
以上是背景知識鋪墊。接下來,進入具體分析。
5、影響信號的最主要因素之一:基站數量
首先我們來看看影響信號的最主要因素之一——基站數量。
2008年,全國基站總數大約是641100個。
看上去這個數量很多,但實際上,按面積平均一下,就不多了——平均每平方公里僅0.07個基站。
而且,這些基站主要集中在城區和村鎮。鐵路所經過的區域,多為人煙稀少地區,基站密度更小。尤其是山區,受地形影響,信號會更差。

2008年之后,進入高鐵時代和3G/4G時代,我國基站數量大幅增長。根據2017年底的數據,我國基站總數是604萬個,其中3G/4G基站總數為447萬個。平均每平方公里0.63個基站,是2008年的9倍。

所以,除了極少數非常偏僻的地區之外,大部分鐵路沿線,我們也都實現了信號的覆蓋。

▲ 在山區修建和維護基站,不是一件容易的事情
而且,如果說普速鐵路運營商不太重視的話,高速鐵路的信號質量,運營商是不敢不重視的。
很簡單,作為國家名片、地區名片的高鐵,它上面的信號質量,不僅代表經濟效益,更意味著社會影響。如果高鐵上自家信號不好,不僅影響用戶的滿意度,也會影響品牌聲譽。
所以,運營商是愿意為高鐵信號改善投入資金的。
6、高鐵基站不同于普通基站
問題的關鍵在于,有些事情,光靠砸錢建基站,不一定有用。
高鐵基站的建設,和普通基站有很大不同。
高鐵沿線的網絡覆蓋,主要有兩種方式:
- 1)公網方式;
- 2)專網方式。
公網方式:是將高鐵沿線的覆蓋,融入周邊大網統一規劃和考慮。也就是說,利用周邊已有的基站進行覆蓋,只不過稍加優化和調整。
專網方式:采用的是單獨組網,即高鐵專網和周邊大網分開,除車站外,高鐵專網基站和周邊大網基站不設鄰區關系,避免發生切換。

▲ 公網方式(紅色為周邊常規基站)

▲ 專網方式(綠色為高鐵專用基站)
7、什么叫基站的鄰區和切換?
這里解釋一下,什么叫鄰區和切換。
我們在走路或坐車時,是處于運動狀態。從一個區域,移動到另一個區域。也就會從一個基站范圍,到另一個基站范圍。
如果你正在打電話,或者正在上網追劇,為了不讓你的電話或網劇中斷,系統會進行自動切換。
看這個圖,就明白了:

切換分為軟切換和硬切換,涉及的技術有點復雜,今天不深入研究。總之大家只需要記住,一切都是為了讓你“不掉線”。
如果用公網方式,好處是節約了投資。壞處的話,就是即使做了優化,效果也很有限,容易受公網其它基站的影響,導致掉線。(簡單從技術角度來說,就是所有基站的頻點都是一樣的,手機容易“跳來跳去”。)
專網就不一樣了,可以理解為獨立的一張網絡,享受VIP服務。因為專網和公網的頻點都不一樣,系統上也會做配置,不允許你去“勾搭”外面的公網基站,所以你必須老老實實待在專網里面,掉線的概率會大幅降低。

▲ 專網下的高鐵信號(藍色塊=高鐵列車行駛模擬)
8、影響高鐵信號的最關鍵因素:行駛速度
上面的內容說過,高鐵上的手機信號,需要在高鐵行進時在基站間進行頻繁切換。而切換的成功率,受很多方面的影響。其中很重要的因素,就是速度。

我們來看一組數據:一個普通WCDMA基站的覆蓋范圍(1950Hz,郊區,天線掛高45米),是979米。

▲ WCDMA 天線掛高對應覆蓋半徑(郊區)
人走路的速度,每小時6公里(每分鐘100米);
汽車的速度,就算是高速公路吧,每小時120公里(每分鐘2000米);
高鐵的速度,每小時差不多是350公里(每分鐘5833米)。

按人的運動速度,跨區切換的時間是充足的。汽車也問題不大。但是,高鐵的話,根據切換算法時間的估算,3~6秒就要發生一次切換。這樣的頻率,是非常考驗系統覆蓋和性能的。

一不小心,切換就失敗了,你也就掉線了。
高鐵的高速度,除了會帶來頻繁的切換之外,還有一個很要命的,就是多普勒效應。

▲ 多普勒和多普勒效應公式
最痛恨公式,我就不介紹了哈!簡單來說,多普勒效應的意思,就是手機運動的速度太快,信號都追不上了。。。當信號到達的時候,已經錯位了。。。

速度越快,多普勒效應越明顯,頻率越高,多普勒效應越明顯。針對高鐵+4G場景(4G的頻率高于2G),這簡直就是要了老命。
以 350km/h 的時速為例,在 GSM 900MHz 頻段,多普勒頻移能夠達到300Hz;在 WCDMA 2000MHz 頻段,多普勒頻移最高能夠達到 650Hz。
尤其是LTE采用的OFDM正交頻分復用技術,對載波頻率偏移更加敏感。
我畫了幾個圖,方便大家理解。

▲ 不是OFDM的情況下,就是這樣

▲ OFDM的情況下,是這樣
大家交錯分開,占用的空間更小(提高頻譜利用率),但是還是能分清對象(提取有效數據)。

▲ But,如果因為多普勒效應,開始錯位,就很難看清楚人了(錯誤增加)
除了多普勒效應之外,還有多徑效應等,也影響信號的傳輸。
雖然3G/4G會通過專門算法對這些效應進行抑制,但是效果有限。
不過,好消息是,到了5G時代,情況就不一樣了。5G的性能指標里面,明確指出,可以支持終端最高移動速度為500km/h。除非是超級高鐵(時速1000km/h),不然5G都能hold住。

9、高鐵基站的選址
除了基站數量和密度之外,站址的選擇,也是很大的一門學問。高鐵線路,呈狹長帶狀分布,區域跨度大,沿途經過車站、地面、高架橋、地塹、隧道和橋梁等多種地形、地貌。

在明確具體的覆蓋方案之前,需要結合地形場景、指標要求、列車速度,進行鏈路預算,確定站址以及站距。
10、高鐵基站是不是離列車越近越好呢?
架設基站,是不是離列車越近越好呢?并不是,離得越遠,信號的入射角越大,穿透損耗越小。垂直入射時,損耗最小。

高鐵車廂都是金屬合金,無線信號的衰減很大。
所以,基站和鐵軌之間的距離,要保持在50米以上,最佳間距是100-500米。

天線的高度也有講究,不能太低,也不能太高,一般是天線高出軌面15米,保證天線與軌面視通,保證天線朝向正對車窗。

現在大家明白為什么坐高鐵的時候,總是能看到基站天線了吧。它們就是故意這么架設的,方便信號能到達你的手機。
在直線軌道路段,相鄰站點宜交錯分布于軌道的兩側,呈“之”字狀分布。在彎道路段,站點宜設置在彎道的內側,提高入射角,保證覆蓋的均衡性。

11、高鐵在隧道中如何保證信號覆蓋呢?
最后一個問題,在山區或丘陵地帶,會有大量的隧道,那么,隧道中如何保證信號覆蓋呢?

如果是短隧道,可以通過隧道口的天線,向隧道內進行定向輻射,進行覆蓋。
如果是長隧道,就需要用到“泄漏電纜”。
就是下面這個:

▲ 隧道電纜的高度,一般和高鐵的中部窗口平齊
泄漏電纜結構與普通的同軸電纜基本一致,由內導體、絕緣介質和開有周期性槽孔的外導體三部分組成。電磁波在泄漏電纜中縱向傳輸的同時,通過槽孔向外界輻射電磁波;外界的電磁場也可通過槽孔感應到泄漏電纜內部,并傳送到接收端。

▲ 泄露同軸電纜
泄漏電纜的信號效果還是不錯的,即使在非隧道環境下,也可以考慮使用(前提是不差錢,因為還要修擋風墻或屏蔽罩)。

▲ 擋風墻
在隧道里,通常也有小型機房,里面有RRU和一些信號中繼設備。

▲ 隧道機房
12、最后
好啦!洋洋灑灑說了那么多,相信大家一定對高鐵上無線上網的技術難度有了初步了解。正如文章所說,高鐵的移動信號優化,是一項非常復雜的工作,既要投入大量的資金,還要克服很多技術困難,無論是技術投入還是資金投入,都遠比我們想象的要復雜。
以后老板要是再對你唧唧歪歪:“為什么我們的IM不能在高鐵上實時視頻聊天?”,你就把本文扔給他,讓他有種自已寫代碼吧。。。

附錄:更多網絡編程干貨文章
《技術往事:改變世界的TCP/IP協議(珍貴多圖、手機慎點)》
《通俗易懂-深入理解TCP協議(下):RTT、滑動窗口、擁塞處理》
《理論聯系實際:Wireshark抓包分析TCP 3次握手、4次揮手過程》
《P2P技術詳解(一):NAT詳解——詳細原理、P2P簡介》
《P2P技術詳解(二):P2P中的NAT穿越(打洞)方案詳解》
《P2P技術詳解(三):P2P技術之STUN、TURN、ICE詳解》
《高性能網絡編程(一):單臺服務器并發TCP連接數到底可以有多少》
《高性能網絡編程(二):上一個10年,著名的C10K并發連接問題》
《高性能網絡編程(三):下一個10年,是時候考慮C10M并發問題了》
《高性能網絡編程(四):從C10K到C10M高性能網絡應用的理論探索》
《高性能網絡編程(五):一文讀懂高性能網絡編程中的I/O模型》
《高性能網絡編程(六):一文讀懂高性能網絡編程中的線程模型》
《不為人知的網絡編程(一):淺析TCP協議中的疑難雜癥(上篇)》
《不為人知的網絡編程(二):淺析TCP協議中的疑難雜癥(下篇)》
《不為人知的網絡編程(三):關閉TCP連接時為什么會TIME_WAIT、CLOSE_WAIT》
《不為人知的網絡編程(七):如何讓不可靠的UDP變的可靠?》
《網絡編程懶人入門(五):快速理解為什么說UDP有時比TCP更有優勢》
《網絡編程懶人入門(六):史上最通俗的集線器、交換機、路由器功能原理入門》
《網絡編程懶人入門(八):手把手教你寫基于TCP的Socket長連接》
《網絡編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?》
《技術掃盲:新一代基于UDP的低延時網絡傳輸層協議——QUIC詳解》
《現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障》
《移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”》
《移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結》
《從HTTP/0.9到HTTP/2:一文讀懂HTTP協議的歷史演變和設計思路》
《腦殘式網絡編程入門(一):跟著動畫來學TCP三次握手和四次揮手》
《腦殘式網絡編程入門(二):我們在讀寫Socket時,究竟在讀寫什么?》
《腦殘式網絡編程入門(三):HTTP協議必知必會的一些知識》
《腦殘式網絡編程入門(四):快速理解HTTP/2的服務器推送(Server Push)》
《腦殘式網絡編程入門(五):每天都在用的Ping命令,它到底是什么?》
《腦殘式網絡編程入門(六):什么是公網IP和內網IP?NAT轉換又是什么鬼?》
《以網游服務端的網絡接入層設計為例,理解實時通信的技術挑戰》
《全面了解移動端DNS域名劫持等雜癥:技術原理、問題根源、解決方案等》
《美圖App的移動端DNS優化實踐:HTTPS請求耗時減小近半》
《Android程序員必知必會的網絡通信傳輸層協議——UDP和TCP》
>> 更多同類文章 ……
(本文已同步發布于:http://www.52im.net/thread-2419-1-1.html)
作者:Jack Jiang (點擊作者姓名進入Github)
出處:http://www.52im.net/space-uid-1.html
交流:歡迎加入即時通訊開發交流群 215891622
討論:http://www.52im.net/
Jack Jiang同時是【原創Java
Swing外觀工程BeautyEye】和【輕量級移動端即時通訊框架MobileIMSDK】的作者,可前往下載交流。
本博文
歡迎轉載,轉載請注明出處(也可前往 我的52im.net 找到我)。