從手機撥出電話到接聽的那幾秒內,發生了什麼?
如何駕駛戰鬥機? - 監聽員1379 的回答這個答案里說了開走一架F16戰鬥機的大概流程,看著還蠻有趣的,其實打一通電話所需要的流程一點也不比開走一架戰鬥機的流程少~我們以一次WCDMA網路下的語音呼叫為例,簡單的說說。
首先就是建立RRC連接,上圖是流程。圖中的UE為手機(包括USIM卡),NodeB為基站,SRNC則是主服務
首先就是建立RRC連接,上圖是流程。圖中的UE為手機(包括USIM卡),NodeB為基站,SRNC則是主服務RnC_百度百科的意思,NodeB和RNC構成了我們叫UTRAN(UMTS Terrestrial Radio Access Network),即無線接入網。RRC(Radio Resource Control,無線資源控制)就是建立手機和無線接入網的點對點連接,用於傳送信令。RRC顧名思義,主要就是用於網路側對無線資源進行一個控制和管理,比如通話過程中手機上報周邊基站信號的測量報告(Measurement Report,MR)給RNC,然後RNC要進行判決和下發切換(HandOver)等等信令的傳送都需要通過RRC來進行。建立完RRC後就需要進行正式的呼叫流程:- 第1~3步中主要是建立手機和核心網(Core Network,圖中的MSC即是CN核心網的一個網元)之間的連接,也是用來傳信令的。比如手機得告訴核心網它的業務請求,是打電話啊,還是上網啊等等之類的消息,這裡就是打電話的業務請求。
- 第4~12步則是鑒權加密過程。鑒權簡單說就是手機(USIM卡)驗證下這個網路是不是合法的,同時網路也驗證下這個手機(USIM卡)是不是合法的。加密就是使用密鑰和加密演算法對用戶數據進行轉換,好比前些日子上映的《智取威虎山》里的「天王蓋地虎」、「寶塔鎮河妖」那樣,如果你不知道「黑話」的規律(密鑰和加密演算法),那自然就聽不懂「加密」後的意思了。
- 第13~16步則是呼叫信息的傳遞和呼叫處理,比如手機得告訴核心網它所呼叫的號碼是多少,並且核心網確認這是個正確的號碼後,會告訴手機正在進行該呼叫號碼的路由查找和尋呼等等。
- 第17~27步則是建立RAB(Radio Access Bearer,無線接入承載)的過程,上面的第1到3步完成了手機和核心網的信令連接,而這個RAB則是完成了手機和核心網的用戶數據連接,比如我們接電話說「喂?」,這個「喂?」就是用戶數據,就需要通過RAB來承載。
- 第28~29步則是振鈴(Alerting)了,這是說明已經接通了所要呼叫的號碼,對方的手機已經開始響鈴聲,同時主叫的手機也開始聽到「嘟~」或者彩鈴的聲音了。
- 第30~33步則是被叫電話已經按下了接聽鍵,此時正式開始進行通話了!(手機君表示好累,總算是接通了。。。)
- 上面主要是主叫流程,如果是被叫的還會多一些監聽尋呼、響應尋呼發起隨機接入流程等等,不再啰嗦了,有興趣的百度谷歌維基吧。這裡面的每一個步驟都不能出錯,一旦有一個出錯,就有可能導致呼叫、被叫失敗,從而無法建立起正常通話。
- 如果是LTE的話,由於其目前不支持語音通話業務,採用CSFB方案的手機還需要發起CSFB流程(如果採用雙待方案的手機則不需要),一開機就需要聯合附著,呼叫時也需要啟動CSFB流程回落到2G/3G中實現語音業務。
上圖則為LTE呼叫時CSFB的一個簡單流程圖(主要是第1~5步,第6步時已經回落到2G/3G中,第7~8步則是通話結束後的了),完成了這些個流程後才能回落到2G/3G中,然後再發起2G/3G呼叫流程實現語音通話的功能。同樣的,如果是被叫也需要發起CSFB流程,返回到2G/3G網路中,然後進行被叫建立流程建立通話。
上圖則為LTE呼叫時CSFB的一個簡單流程圖(主要是第1~5步,第6步時已經回落到2G/3G中,第7~8步則是通話結束後的了),完成了這些個流程後才能回落到2G/3G中,然後再發起2G/3G呼叫流程實現語音通話的功能。同樣的,如果是被叫也需要發起CSFB流程,返回到2G/3G網路中,然後進行被叫建立流程建立通話。
而以上的這一切流程,都是在按下撥號鍵到和對方正式建立通話之間短短的數秒鐘內完成的~
長文慎入!(加黑的都是通俗易懂的類比,不想看專業內容的,可以直接找黑體)
===========================================================
我力求通俗易懂、簡潔明了的給非專業人士講明白。下面以最普通的2G也就是GSM呼叫為例,那麼需要先了解下我們需要用到的網路側設備、及網路架構。
MS----BTS----BSC---------MSC/VLR-------HLR
MS: 手機
BTS: 基站 類比為公交車站(其實這個類比不是很合理)
BSC: 基站控制中心 可以理解為公車樞紐中心,不斷有人到達這裡又不斷轉車離去,具有牛叉的調度指揮所有公交車的能力。BSC+BTS合稱BSS,基站子系統,也就是公交系統。
MSC/VLR: 移動交換中心/訪問位置寄存器 在現實網路中,這兩個功能體是集成在同一個物理實體中的。可以理解為你目前的暫住地街道辦,以及給你發暫住證的派出所
HLR: 歸屬位置寄存器,可以理解為你戶口所在地,給你發身份證的派出所,就是你老家
將打電話類比為:一個「有暫住證但是出行受到當地派出所管制的」地下室青年,在當地派出所的允許和協助下,坐公交車去找另一個「有暫住證但是出行同樣受當地派出所管制的」基友玩耍的艱辛歷程!對,我準備寫一個愛情故事。
=========================================
註:以下引用的圖片有多處信令標示錯誤,如MAP標成MTP
1、接入階段:
當用戶輸入被叫號碼完畢按下撥打按紐後:
1、MS在RACH(隨機接入信道,如其字面意,大家都可以接入這個信道)向BSS發送信道請求消息,申請一個SDCCH(專用信道,只有你一個人用的信道)
2、BSS立即指配信道,並且在AGCH(接入允許信道) 通過立即分配消息通知MS為其分配的SDCCH,MS—BSS之間建立起固定的連接
3、MS通過剛分配的SDCCH發送CM消息(業務請求消息),MSC通知VLR處理該接入請求
這一階段完成後MS和BSS建立起暫時固定的連接
可以理解為你上了一輛公交車,且給你分配了一個專用座位,你坐到這個專用座位後,到了街道辦/派出所,並提出要出門玩耍的申請,希望得到批准。
2、鑒權加密階段:
1、VLR向主叫HLR/AUC發送鑒權參數請求
2、HLR回送鑒權參數
3、VLR向MSC—&>BSC—&>MS下發鑒權請求
4、MS利用SIM卡中IMSI和鑒權演算法得出鑒權結果,回送鑒權結果給VLR
5、VLR核對鑒權結果,鑒權成功後VLR向MSC下發加密命令
6、VLR—&>MSC—&>BSC--&>MS接入請求已通過
7、MSC向MS下發加密命令
8、MS回送加密完成消息
這一階段完成後,主叫用戶的身份得到確認,認為主叫是一個合法用戶,允許處理該呼叫
可以理解為街道辦派出所收到你的出行申請後,馬上聯繫了你老家派出所,即你的戶口所在地,身份證發證機關,請求他們核實你的信息,將你提供的信息與你老家派出所提供的信息對比後,信息一致。發現你近期遵規守法、表現良好、沒有拖欠黨費,核實無誤後,給予放行。
3、TCH(業務信道)指配階段:
1、MS向MSC發送set up消息(攜帶被叫號碼、主叫標識)
2、MSC收到set up消息後,向VLR查詢該用戶業務類型
3、VLR核對用戶請求業務類型和開戶時申請業務信息,決定呼叫是否繼續
4、若可以繼續,VLR通過完成呼叫消息向MSC回送用戶數據
5、MSC—BSC-MS通過呼叫繼續消息,通知MS呼叫正在處理中
6、根據A口電路情況,MSC向BSC發送指配請求消息,選定A口電路
7、BSC向BTS、MS指配空中介面無線資源
8、MS佔用成功後,並回送BSS、MSC分配完成消息
該階段完成後標誌著空中介面無線資源和A介面電路均成功分配。
可以理解為你告知了街道辦/派出所,你要找的那個基友的信息。之后街道辦派出所讓你回家等,不久,派出所告訴你他們快要查出你基友的所在地了,讓你先出門,等你到派出所時,他們就可以查到了。並且又給你指配了公交路線、以及座位,你成功趕上了這趟公交並坐到這個座位上。
4、被叫漫遊號碼階段:
1、MSC分析被叫號碼,定址到被叫HLR,發送路由信息請求消息
2、HLR找到被叫所在的VLR,請求被叫漫遊號碼
3、VLR收到請求漫遊號碼消息後,為被叫分配漫遊號碼MSRN,回送漫遊號碼給HLR
4、HLR發送路由信息響應消息(攜帶被叫漫遊號碼)給MSC
5、MSC分析對被叫漫遊號碼路由分析,得到被叫所在的局向,向其發送IAI(初始地址消息)消息
可以理解為你所在的街道辦派出所根據你剛才提供的基友信息聯繫到了你基友戶口所在地的派出所,也就是你基友的老家。並且向他們請求協助,要求得到你基友現在的暫住地,例如住哪個城市哪個區哪個街道幾棟幾單元幾號房哪張床。在聯繫了基友暫住地的街道辦/派出所後,基友老家的派出所將基友位置發回給你的暫住地街道辦/派出所。並且基友所在的街道辦派出所知道了他即將有客來訪,準備好了你基友的檔案,並開始等你到達。隨後,你的派出所又給你指配了路線、座位、目的地,你的公交車又出發了,不過這次也可能要出遠門,可能是長途大巴。但是你最終還是到了他們基友暫住地派出所。
5、被叫接入階段
1、被叫MSC收到IAI消息後,向VLR查詢被叫用戶信息
2、VLR查詢該用戶未關機而且允許接收呼叫,VLR向MSC發送尋呼命令消息(含被叫位置區號LAI)
3、MSC查詢控制該位置的BSC,並下發尋呼命令
4、BSC通知所控制的BTS在尋呼信道PCH下發尋呼消息
5、MS一直監聽PCH,收到尋呼自身消息後,在隨機接入信道RACH向MSC發送尋呼響應消息
6、MSC向VLR發送處理接入請求消息
可以理解為你到了基友所在的派出所後,派出所說你要找的人確實在我們這,你稍等。然後一查基友住的地下室在某某小區,馬上開啟了該小區的高音喇叭,開始廣播找人:XXX,在不在,有人找!你基友聽力正常,在確定找的人就是他之後,馬上回答:我在呢!
6、被叫鑒權加密階段
1、VLR向被叫叫HLR/AUC發送鑒權參數請求
2、被叫HLR向VLR回送鑒權參數響應(鑒權三參數)
3、VLR向MSC—BSC—MS下發鑒權請求
4、MS利用SIM卡中IMSI和鑒權演算法得出鑒權結果,回送鑒權結果給VLR
5、VLR核對鑒權結果
6、鑒權成功後,VLR向MSC下發接入請求接受消息
7、VLR通過完成呼叫消息向MSC回送用戶信息
可以理解為基友所在地的街道辦派出所嚴格執法,向基友老家請求核實基友信息,同樣發現你基友近期也遵規守法、表現良好、沒有拖欠黨費,核實無誤後,發放了通關文牒。
7、被叫TCH(業務信道)指配階段:
1、MSC收到呼叫完成消息後,向BSS--MS發送set
up消息,提示將建立呼叫
2、MS向MSC回送呼叫證實消息
3、MSC選擇相應A口電路,向BSC發送指配請求消息(含A口電路)
4、BSC向BTS、MS指配空中介面無線資源
5、MS佔用成功後,回送BSS、MSC指配完成消息
6、MS開始振鈴,同時向MSC回振鈴消息
7、被叫MSC向主叫MSC回地址全消息
8、主叫MSC向主叫發送被叫振鈴消息,此時主叫聽到回鈴音
9、被叫按接聽鍵,手機翻譯此動作為CONECT消息,向被叫MSC發送
10、被叫MSC向主叫MSC發送應答消息
11、主叫MSC向主叫MS發送連接建立請求消息
12、主叫MS向主叫MSC回送連接證實消息
13、主叫連接證實消息經被叫MSC回送至被叫MS,通話開始
可以理解為你基友回答了尋人廣播後,派出所馬上通知你基友,即將給他指配公交路線、座位。之後就真的指配了公交路線及座位,且你基友成功上了車坐到了座位上,併到達了派出所,你基友到了派出所後,表示現在萬事俱備了,可以在親切友好的氣氛下和你談話了。
這個故事我實在是編不下去了...讓我們結束吧
【漂洋過海歷盡艱辛後,這時候你基友的電話鈴終於開始響了:你是我的小啊小蘋果..基友的電話響鈴的同時,你開始聽到回鈴音,就是嘟...嘟...嘟,如果你基友恰好辦了彩鈴,那你聽到的將會是:蒼茫的天涯是我的愛...無論如何,你基友按下接聽鍵後,會被手機翻譯為connect消息,發送出去,表示接聽了,之後你們之間一條信令通道+語音傳輸資源建立起來了,直到你們一方掛機】
寫到一半感覺用寄快遞來做比喻可能更恰當一些的,算了,就這樣吧。
謝謝邀請。
已經有兩位把信令流程圖貼出來了,從技術層面說的很清楚了,我設想題主還要邀請我回答,應該是還不完全理解這個過程?或者說對信令流程圖不能全部理解。我也從手機上轉戰到PC端來說一下,力圖說我自己的理解。
首先,明確一下撥出到接聽的時間長度,2/3G是7-8秒,4G是10秒,未來的Volte是2秒。這個過程的專業名稱是呼叫時延。
其次,通話接通的主要因素,主要兩個方面,信令和業務。
信令面主叫是發起信道請求,不論2/3/4G通過空口發出一個request,告訴系統我要發起呼叫,具體會攜帶一些通話的信息,這裡面包括主叫/被叫,以保證自己能夠通過鑒權和尋找對端。同時為申請業務資源做準備。
被叫會佔用更長的時間,因為裡面有一個尋呼過程,很多被叫失敗或者延長就是因為尋呼失敗而啟動二次甚至三次。尋呼過程是在效率和能力之間尋找一個平衡。最高效的尋呼是在一個最大範圍內發送尋呼消息,這樣用戶不會被遺漏,但是佔用的系統資源也最大,所以必然調節到一個相對可以接受的範圍內,這樣失敗的可能性也增大。
另外,當尋呼到了被叫,被叫實際的過程和主叫是幾乎相同的,也發起請求,準備業務資源。
業務層面,在所有信令都握手通過後,無線信道、核心網資源就都準備就緒,這裡也有一個平衡的過程。前面說過,通話的過程實際是有可能失敗的,就像做飯,在洗菜切菜的準備同時,燒水燒油肯定是最快的,但是萬一洗菜發現了蟲子,切菜刀工失誤,那麼是不是水就白燒了,煤氣就浪費了?所以這裡面有一個先後策略的問題。如果要通話快速建立,那麼各方面資源同時建立;如果要節省資源,那麼就後面的等著前面成功的指示再實施,但是時延就長。
額外說一下4G,CSFB是一個非常特殊的過程,但是原理也是和以上類似,只是手機從4G到2g會多一些參數傳遞和配置,目前能夠做到10秒就非常不錯了。Volte因為已經是純PS通話了,所以機制又有不同,這個具體原理我也要半年後搞清楚。
最後,說了這麼多,其實我是想闡明一個觀點,任何系統都是一個平衡的過程,單純追求某一項指標的提升都是片面的。
我很好奇題主為什麼要問這個問題,因為這段時間內受到邀請也是千奇百怪,我很想知道提問的人都是出於什麼背景或者動機。希望在回答後面評論裡面說一下。我覺得知乎如果給題主這麼一個評價或者背景介紹項目,可能也會有意思。短短的幾秒,可我們用了一學期來理解。
一個2G時代的呼叫流程的動畫,可以看一下:
一次完整呼叫的流程 by Nokia一輩子都記不住的信令流程(╥﹏╥)
發生了信息工程這個專業
附近基站接收信號,發送至通訊衛星,雲處理尋找接受基站,連通被接收手機,通話
說到底是比特流的流動,比特流調製到模擬信號上通過電磁波傳播過去。電話接通之前傳遞的是大家定好的比特流數據序列,當你說話時候傳播的是你的語音編碼加保證傳遞可靠的比特流
給你反悔的機會。
手機把信息發給附近基站,基站把數據發給伺服器,然後一級一級傳遞,伺服器找到目標用戶對應編碼,再一級一級傳遞,把呼叫訊息發給目標用戶手機所在基站位置,建立連接,大概就這樣
內心千迴百轉 卻又不發一言
我負責CSFB優化,有什麼要問的?
你的期待透過電波傳達到她的手機
上學期導論課的老頭似乎有講過 ....
發生了什麼?!
振鈴
居然有人問這問題,就一個信令流程
整個世界都沉默了,除了手機
你撥出的電話號碼在空中自由飛翔,去找它所對應的那個電話
推薦閱讀: