繆洪兵
(南京熊貓通信科技有限公司,南京 210000)
隨著5G 時(shí)代的來(lái)臨及4G 時(shí)代的成熟發(fā)展,基于4G 或5G小基站的使用越來(lái)越廣泛,由于小基站控制面?zhèn)鬏斒腔赟CTP協(xié)議的,SCTP 在實(shí)際使用過(guò)程中在正常連接一段時(shí)間后可能會(huì)出現(xiàn)各種原因的斷鏈,SCTP 一旦斷鏈很可能在短時(shí)間內(nèi)無(wú)法恢復(fù)正常,無(wú)疑會(huì)影響用戶體驗(yàn),怎樣盡可能減少SCTP斷鏈的發(fā)生,進(jìn)而提升小基站性能和改善用戶體驗(yàn)無(wú)疑是一項(xiàng)值得研究和推進(jìn)的重要工作。
SCTP 為流控制傳輸協(xié)議(Stream Control Transmission Protocol),在RFC4960中被定義,該協(xié)議通常在移動(dòng)通信網(wǎng)絡(luò)(3G,4G,5G 等)中被廣泛使用,用于基站與核心網(wǎng)間控制面的通信傳輸。是IP 層之上的傳輸層協(xié)議,與TCP,UDP 同等層級(jí),SCTP 是提供基于相關(guān)不可靠傳輸業(yè)務(wù)的一種面向連接的可靠的數(shù)據(jù)報(bào)流傳輸協(xié)議,它可以在收發(fā)兩端之間提供有序的和穩(wěn)定的數(shù)據(jù)傳輸。我們也可將其看做一種改進(jìn)型的TCP 協(xié)議,但比TCP 更適合移動(dòng)通信網(wǎng)絡(luò),比如該協(xié)議比TCP 要多一種握手(handshake)確認(rèn)機(jī)制(TCP 3次,SCTP 4次),并且SCTP 采取了更合適的擁塞控制處理(支持多流multi-stream)、更佳的實(shí)時(shí)性等諸多優(yōu)異之處,因此被選擇為移動(dòng)通信中控制面的傳輸協(xié)議,在網(wǎng)絡(luò)架構(gòu)的位置如圖1所示。
圖1 SCTP在移動(dòng)網(wǎng)絡(luò)通信層中的位置
盡管SCTP 優(yōu)點(diǎn)如此之多,但在實(shí)際應(yīng)用中,由于移動(dòng)通信網(wǎng)絡(luò)的復(fù)雜性,SCTP 在正常建立連接一段時(shí)間后仍有時(shí)會(huì)斷鏈(本文不討論通信雙方剛開(kāi)始就無(wú)法建立SCTP 鏈路的情況),通常會(huì)表現(xiàn)為最終用戶的移動(dòng)終端在某一段時(shí)間內(nèi)無(wú)法接入網(wǎng)路,并使得相關(guān)業(yè)務(wù)無(wú)法進(jìn)行。本人根據(jù)基站側(cè)多年的實(shí)踐經(jīng)驗(yàn)總結(jié)出部分可能原因并給出可能的因應(yīng)方法如下:
(1)網(wǎng)絡(luò)的延時(shí)和抖動(dòng)。網(wǎng)絡(luò)的延時(shí)和抖動(dòng)也可能會(huì)引起SCTP 斷鏈,可用最常用的ping 包加以鑒別,網(wǎng)絡(luò)的延時(shí)和抖動(dòng)會(huì)導(dǎo)致網(wǎng)絡(luò)丟包,同一網(wǎng)絡(luò)環(huán)境下若丟包率較長(zhǎng)時(shí)間內(nèi)較高,則會(huì)引起SCTP 斷鏈。若發(fā)生這種情況,應(yīng)對(duì)相應(yīng)的網(wǎng)絡(luò)加以優(yōu)化,盡量減少這方面問(wèn)題得發(fā)生。
(2)設(shè)備硬件地址是否合法,設(shè)備內(nèi)硬件地址是否存在沖突。設(shè)備的硬件地址(或者叫物理地址,通常為MAC)首先應(yīng)檢查是否為被合法分配的地址,若是非法地址則不能保證通信的正常,有可能和公網(wǎng)上的其他設(shè)備相沖突,在硬件地址合法的前提下,還應(yīng)檢查設(shè)備內(nèi)是否有多個(gè)硬件地址,這些地址內(nèi)部是否有沖突。一旦出現(xiàn)設(shè)備內(nèi)或與公網(wǎng)上其他設(shè)備的MAC 地址沖突,這會(huì)引起圖1數(shù)據(jù)鏈路層通信的問(wèn)題,進(jìn)而會(huì)引起承載其上的各層通信包括SCTP 的通信異常,并可能會(huì)影響SCTP 的斷鏈。這種情況下應(yīng)及時(shí)重新調(diào)整分配設(shè)備的MAC 地址,保證該地址的惟一性及合法性,則這方面的沖突導(dǎo)致的SCTP 斷鏈將不會(huì)再發(fā)生。
(3)與安全網(wǎng)關(guān)的通信問(wèn)題。安全網(wǎng)關(guān)側(cè)出問(wèn)題或與安全網(wǎng)關(guān)的交互也可能會(huì)導(dǎo)致SCTP 斷鏈,由圖1可看出移動(dòng)通信網(wǎng)絡(luò)中在IP 層與SCTP 層之間還有一個(gè)IPSEC 層,由于在Internet上,如果不做相關(guān)處理則所有的信息傳輸是不安全的,業(yè)界通常在小基站與核心網(wǎng)(或相關(guān)業(yè)務(wù)網(wǎng)關(guān))之間加了一個(gè)安全網(wǎng)關(guān)對(duì)IP 層級(jí)通信進(jìn)行加密(security)處理,在工程調(diào)測(cè)中一般要注意小基站與安全網(wǎng)關(guān)的相關(guān)參數(shù)配置是否一致,舉例:比如兩端配置文件(ipsec.conf)中的reauth 和rekey 是否都為”yes”或都為”no”?如果不能看到安全網(wǎng)關(guān)的配置,其實(shí)在IPSEC 的相關(guān)LOG中一般情況下也可判斷配置上是否有異常。如果配置不一致,上例則會(huì)引起應(yīng)進(jìn)行身份驗(yàn)證(reauthenticate the peer)但沒(méi)進(jìn)行身份驗(yàn)證,從而導(dǎo)致安全網(wǎng)關(guān)分配給小基站的虛IP 地址(virtual IP address)失效,并從而會(huì)導(dǎo)致籍之建立的SCTP 連接必然斷鏈。
圖2 安全網(wǎng)關(guān)與IPSEC
另外,由于通信的復(fù)雜性,安全網(wǎng)關(guān)本身也可能存在一定概率的故障,如果可判斷多臺(tái)小基站同時(shí)斷鏈,或相關(guān)友商的設(shè)備也同時(shí)斷鏈,則可斷定安全網(wǎng)關(guān)側(cè)出問(wèn)題了。這種情況下可向運(yùn)營(yíng)商或安全網(wǎng)關(guān)廠商及時(shí)反饋并盡快加以解決。
(1)SCTP 通信兩端的配置問(wèn)題。SCTP 通信兩端的相關(guān)配置也可能導(dǎo)致正常通信一段時(shí)間后會(huì)斷鏈,典型的有MTU(最大傳輸單元Maximum Transmission Unit)設(shè)置過(guò)小或過(guò)大都可能導(dǎo)致SCTP 鏈路異常,這時(shí)重新將MTU 調(diào)整至合適的值即可。
(2)其他可能原因。其他相關(guān)原因也可能導(dǎo)致SCTP 斷鏈,設(shè)備本身或通信對(duì)端的軟件BUG 也可能導(dǎo)致SCTP 斷鏈,這種SCTP 斷鏈并不是SCTP 或SCTP 關(guān)聯(lián)協(xié)議層通信原因造成的,這種情況下區(qū)分排查清楚即可。另外,圖1中承載SCTP 的各層如物理層、數(shù)據(jù)鏈路層、網(wǎng)路層,IPSec 層以及SCTP 層本身若出現(xiàn)相關(guān)問(wèn)題也很可能會(huì)導(dǎo)致SCTP 斷鏈,在具體通信工程問(wèn)題中,相關(guān)的問(wèn)題還得具體問(wèn)題進(jìn)行具體分析,結(jié)合相關(guān)的抓包工具和設(shè)備的相關(guān)LOG,按圖索驥并逐步縮小問(wèn)題范圍,總會(huì)找出問(wèn)題原因并加以解決。
導(dǎo)致SCTP 鏈路在正常運(yùn)行一段時(shí)間后再斷鏈的原因可能多種多樣,本文僅分析了部分可能的原原因并給出可能的解決辦法,以期拋磚引玉。