一、引言
SS7(Signaling System No.7)網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)是兩個(gè)獨(dú)立的網(wǎng)絡(luò),SS7用于傳輸電話信令,而Internet是基于分組交換的,用來傳輸數(shù)據(jù)業(yè)務(wù)。隨著IP網(wǎng)絡(luò)和SS7信令網(wǎng)各自業(yè)務(wù)的擴(kuò)展,信令在IP網(wǎng)上的傳輸已經(jīng)成為了關(guān)鍵問題,而信令傳輸具有高可靠性低時(shí)延的要求。在IP網(wǎng)絡(luò)中,大部分的業(yè)務(wù)都是通過UDP或TCP來傳送的。UDP是無連接的傳輸協(xié)議,它能滿足低延遲的要求,但是它卻無法保證可靠傳輸。TCP能保證數(shù)據(jù)可靠傳輸,但是它也不能完全符合信令傳輸?shù)囊?TCP套接字不支持多宿性;TCP是面向比特流的,將數(shù)據(jù)傳輸當(dāng)作是沒有結(jié)構(gòu)的字節(jié)序列。
因此,為了滿足信令傳輸?shù)囊?IETF的SIGTRAN(Signaling Transport Group)組提出了一種新的傳輸層協(xié)議─SCTP(Stream Control Transport Protoco1)。
二、SCTP基本概念
1.多宿性
多宿是指一個(gè)SCTP 端點(diǎn)可以通過多個(gè)IP地址到達(dá),這樣兩個(gè)SCTP端點(diǎn)在建立了偶聯(lián)后,數(shù)據(jù)可以通過不同的物理通路進(jìn)行傳送。
ATM 交換機(jī)偶聯(lián)的兩個(gè)端點(diǎn)A和B各自綁定兩塊不同的IP地址的接口卡,通過衛(wèi)星電路和ATM兩種方式連接。其中一個(gè)地址被置為首選,另一個(gè)則作為可選,當(dāng)首選通路出現(xiàn)錯(cuò)誤時(shí)可以通過可選通路繼續(xù)進(jìn)行數(shù)據(jù)傳輸而不會(huì)導(dǎo)致傳輸中斷,直到首選通路恢復(fù)。上層應(yīng)用可以顯式聲明使用可選通路,丟包重傳也可以在可選通路上進(jìn)行。
2.多流性
SCTP通過數(shù)據(jù)傳輸和數(shù)據(jù)遞交相互獨(dú)立來實(shí)現(xiàn)多流特性。每個(gè)DATA數(shù)據(jù)塊在協(xié)議中使用兩套順序號:傳送順序號TSN和流順序號SSN。當(dāng)一個(gè)用戶消息被分段后,必須在該消息的每個(gè)分段中帶有相同的SSN,這樣才能從一個(gè)流中分辨出不同的消息。當(dāng)用戶消息被分段到各個(gè)DATA塊中,接收方就要使用TSN對消息進(jìn)行消息重組,即被分段的用戶消息的各段必須使用連續(xù)的TSN。SCTP允許數(shù)據(jù)接收端確定TSN是否出現(xiàn)間隔,以及在間隔后收到的消息是否屬于同一個(gè)被影響的流中。如果TSN出現(xiàn)間隔,SSN也出現(xiàn)相應(yīng)的間隔,則收到的消息就在被影響的流中,否則SSN不會(huì)出現(xiàn)相應(yīng)間隔。接收方可以繼續(xù)在未受影響的流中傳送消息,僅緩沖被影響的流直到被重傳,各流相互獨(dú)立,解決了在TCP單流中容易出現(xiàn)的隊(duì)頭阻塞現(xiàn)象。
3.阻塞控制機(jī)制
SCTP阻塞控制同樣是基于速率自適應(yīng)窗口的機(jī)制,通過重傳的方式提供可靠的數(shù)據(jù)傳輸。SCTP和TCP的阻塞控制機(jī)制有幾點(diǎn)不同:
(1)SCTP采用與TCP相似的基于SACK間隔報(bào)告的快速重傳機(jī)制,但SCTP沒有一個(gè)顯式快速恢復(fù)階段,借助SACK塊SCTP自動(dòng)進(jìn)入快速恢復(fù)。
(2)SCTP強(qiáng)制使用SACK,在TCP中SACK的使用是可選的。在遇到單個(gè)數(shù)據(jù)窗口發(fā)生連續(xù)丟包時(shí),SCTP更為健壯,避免了耗時(shí)的慢啟動(dòng)階段,節(jié)省了帶寬,同時(shí)提高了吞吐量。
(3)SCTP在慢啟動(dòng)或阻塞避免時(shí),阻塞窗口大小隨著確認(rèn)字節(jié)增加,而TCP中則是隨著接收到的確認(rèn)字段增加。SCTP改善了在長傳輸延遲的環(huán)境下(如衛(wèi)星鏈路)的傳輸性能。
(4)SCTP在阻塞避免時(shí),阻塞窗口只有在整個(gè)窗口被充分利用才增加其大小。此外,如果SCTP端點(diǎn)保持一個(gè)低的發(fā)送速率,而沒有充分利用阻塞窗口,這時(shí)網(wǎng)絡(luò)不會(huì)產(chǎn)生丟包指示,阻塞窗口不斷增大,此時(shí)發(fā)送端突然發(fā)送一個(gè)超過阻塞窗口的突發(fā)數(shù)據(jù)流,結(jié)果會(huì)造成網(wǎng)絡(luò)更加阻塞。
(5)SCTP規(guī)定發(fā)送端收到4個(gè)重復(fù)確認(rèn)后開始快速重傳,而在TCP中是3個(gè)。
4.安全機(jī)制
傳輸協(xié)議可用于傳輸像計(jì)費(fèi)或信令消息這樣的敏感信息,SCTP中提出了服務(wù)的可用性和消息的完整性兩個(gè)目標(biāo)。
對服務(wù)的可用性而言,常見的威脅是拒絕服務(wù),根源就在于目標(biāo)主機(jī)為每個(gè)未決的連接在內(nèi)存中保留了大量無用的狀態(tài)信息,最終耗盡系統(tǒng)資源。SCTP采用“四次握手”的連接建立方式和COOKIE機(jī)制消除了SYN攻擊的威脅,解決了為未決的連接保留狀態(tài)信息的問題。服務(wù)器端只有在收到COOKIE ECHO消息后才從關(guān)閉狀態(tài)進(jìn)入建立狀態(tài),此前的關(guān)閉狀態(tài)不為客戶端的請求保留任何狀態(tài)信息。Cookie放在INIT ACK和COOKIE ECHO消息中在端點(diǎn)間傳送,服務(wù)器能夠從COOKIE ECHO中提取出建立正常偶聯(lián)要求的所有信息。Cookie機(jī)制設(shè)立的主要用意是將狀態(tài)信息存儲(chǔ)在客戶端或者網(wǎng)絡(luò)上,而非服務(wù)器內(nèi)存中,它的使用將服務(wù)器資源預(yù)留的時(shí)間推遲到了Cookie帶回完整的鑒別信息后。這是一種簡單有效的防御DoS攻擊的方法。
如果攻擊的目的是信息的完整性和機(jī)密性,那么SCTP載荷將是攻擊的目標(biāo)。SCTP用IPSec(IP Security)或傳輸層安全(Transport Layer Security,TLS)來保護(hù)載荷。
三、問題與挑戰(zhàn)
作為一種相對新型的協(xié)議,SCTP仍然面臨著許多問題要解決,下面簡單介紹一下:
(1)No.7信令傳輸有嚴(yán)格的可靠性需求,但至今沒有大規(guī)模利用SCTP協(xié)議在IP網(wǎng)上傳輸No.7消息的可信的結(jié)果報(bào)告,仍有許多的仿真和實(shí)驗(yàn)工作要做。
(2)SCTP假定所有的數(shù)據(jù)丟失都是由阻塞引起的,而且RTT也在逐漸慢速變化。
(3)不中斷數(shù)據(jù)傳輸即能動(dòng)態(tài)增刪地址對一些關(guān)鍵應(yīng)用或移動(dòng)環(huán)境很有益,但需要增加新的塊定義和參數(shù)類型,目前正處于IETF草案階段,而且又引入了額外的風(fēng)險(xiǎn):流量重定向攻擊。
四、結(jié)束語
雖然SCTP最初是作為一種為了在IP網(wǎng)絡(luò)上傳輸信令消息而設(shè)計(jì)的,但它與生俱來的新特性使越來越多的人認(rèn)為SCTP將會(huì)是一種新型通用傳輸協(xié)議,甚至可能會(huì)替代現(xiàn)有的TCP協(xié)議成為下一代網(wǎng)絡(luò)主要的傳輸協(xié)議。
目前,SCTP已被3GPP采納,許多設(shè)備廠商都已經(jīng)完成了各自的協(xié)議和互通測試,但大規(guī)模應(yīng)用的仿真工作仍在進(jìn)行,SCTP在無線互聯(lián)網(wǎng)下的應(yīng)用及性能評估也在進(jìn)一步研究中。
參考文獻(xiàn)
1 Randall R.Stewart .Stream Control Transmission Protocol[S].IETF RFC 2960,2000.10.
2 Randall R.Stewart .流控制傳輸協(xié)議SCTP參考指南(影印版). 清華大學(xué)出版社,2003.1
3 于林.SS7 over IP的關(guān)鍵技術(shù)SCTP概述.江西通訊科技,2002.12
4 賀羽中.SCTP協(xié)議的研究。山西電子技術(shù),2005.5
5 葉凌偉.SCTP 與TCP 的功能對比及應(yīng)用分析.中國數(shù)據(jù)通信,2003.1