一、概述
流量控制傳輸協(xié)議(SCTP,Stream Control Transmission Protocol)主要用于在IP網(wǎng)中傳送公用交換電話網(wǎng)(PSTN)的信令消息和IP網(wǎng)內(nèi)的信令消息。是互聯(lián)網(wǎng)(Internet)上一個(gè)非常重要的傳輸協(xié)議。
1、SCTP協(xié)議的由來
我們知道,在互聯(lián)網(wǎng)的傳輸協(xié)議中,最早使用的是傳輸控制協(xié)議(TCP,Transmission Control Protocol),稱之為TCP/IP協(xié)議。TCP (最早于1980年1月由IETF發(fā)布的RFC 761規(guī)定)作為IP網(wǎng)絡(luò)中可靠數(shù)據(jù)傳輸?shù)闹匾侄危呀?jīng)完成了大量的服務(wù)。然而,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來越多的應(yīng)用發(fā)現(xiàn)TCP限制太大(可參見下表1-1-1的描述),并在UDP(RFC 768)之上合并了自己的可靠數(shù)據(jù)傳輸協(xié)議。 因此需要開發(fā)一種新的傳輸協(xié)議來繞過這些限制,這就導(dǎo)致了流量控制傳輸協(xié)議(SCTP)的出現(xiàn)。在SCTP成為標(biāo)準(zhǔn)之后,IETF致力于把它作為一種通用的協(xié)議推廣。
表 1-1-1:TCP的限制因素
欲具體了解TCP協(xié)議介紹的請(qǐng)進(jìn)入。
在IP網(wǎng)絡(luò)上傳輸PSTN信令是TCP所有這些限制都相關(guān)的應(yīng)用。雖然這個(gè)應(yīng)用直接推動(dòng)了SCTP的開發(fā),但其他應(yīng)用可能會(huì)發(fā)現(xiàn)SCTP很好地滿足了它們的需求。
由此,在互聯(lián)網(wǎng)傳輸協(xié)議中,SCTP、TCP、UDP是IP網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)娜N傳輸協(xié)議。它們處于同一層次,使用下層網(wǎng)絡(luò)層的無連接包轉(zhuǎn)發(fā)服務(wù),并向上層應(yīng)用層提供端到端的傳輸服務(wù)。傳輸控制協(xié)議(TCP,Transmission Control Protocol)用于對(duì)數(shù)據(jù)的可靠傳輸,但是其局限問題限制了數(shù)據(jù)的遞交;用戶數(shù)據(jù)報(bào)協(xié)議(UDP,User Datagram Protocol)提供非可靠數(shù)據(jù)傳輸,對(duì)TCP不友好,容易造成網(wǎng)絡(luò)擁塞;流量控制傳輸協(xié)議(SCTP,Stream Control Transmission Protocol)的功能特點(diǎn)規(guī)定了它的適用性:適于無序和有序消息的可靠傳輸,同時(shí)通過對(duì)多穴主機(jī)的支持實(shí)現(xiàn)網(wǎng)絡(luò)級(jí)的容錯(cuò)。下表1-1-2給出了SCTP、TCP、UDP這3種傳輸協(xié)議的特點(diǎn)比較;下表1-1-3進(jìn)一步給出了SCTP與TCP間的特性簡(jiǎn)單對(duì)比。
表1-1-2:SCTP、TCP、UDP這3種協(xié)議的特點(diǎn)比較
表 1-1-3:SCTP與TCP間的特性對(duì)比
2、SCTP協(xié)議的版本情況
于是,互聯(lián)網(wǎng)工程任務(wù)組(IETF)在2000年10月發(fā)布了RFC 2960《Stream Control Transmission Protocol》標(biāo)準(zhǔn),設(shè)計(jì)用于在IP網(wǎng)絡(luò)傳輸PSTN信令消息,但也能夠有更廣泛地應(yīng)用,例如Web RTC。目前,RFC 2960在2002年9月被RFC 3309進(jìn)行了部分更新;RFC 2960在2007年9月被RFC 4960進(jìn)行了替代更新;而后RFC 4960在2022年6月又被RFC 9260進(jìn)行了第二次替代更新。RFC 9260取代了RFC 4960. 并結(jié)合了RFC 6096中塊標(biāo)志注冊(cè)表的規(guī)范和RFC 7053中I比特DATA塊的規(guī)范。上述SCTP各版本的內(nèi)容變化情況匯總于下表1-2中。
表 1-2:SCTP協(xié)議版本的內(nèi)容變化情況
欲更多了解IETF的RFC文檔情況介紹的請(qǐng)進(jìn)入。
二、SCTP協(xié)議
1、簡(jiǎn)述
SCTP最先用于傳送信令,其多流特性對(duì)電話信令的傳輸尤其適合,因?yàn)椴皇撬械男帕钕⒍夹枰獓?yán)格有序。只有那些與相同資源相關(guān)的信令(如同一呼叫,同一信道)才需要有序,而且由于其網(wǎng)絡(luò)級(jí)容錯(cuò)特點(diǎn)(類似于提供迂回路由),可以保證信令傳輸?shù)母呖煽啃浴R驗(yàn)?/span>SCTP能實(shí)現(xiàn)TCP及其各種主流改進(jìn)版本的所有功能,并且彌補(bǔ)了TCP、UDP的一些不足,同時(shí)還具備一些更適宜數(shù)據(jù)健壯傳輸?shù)男绿攸c(diǎn),所以獲得了泛的應(yīng)用。同時(shí),SCTP協(xié)議本身也在不斷完善和擴(kuò)充,其作為一種通用傳輸協(xié)議的優(yōu)點(diǎn)正在越來越多地顯現(xiàn)出來。
和TCP類似,SCTP是面向連接、端到端、全雙工、帶有流量和擁塞控制的可靠傳輸協(xié)議。SCTP的連接稱為關(guān)聯(lián)。SCTP的關(guān)聯(lián)通過4次握手建立。相對(duì)于TCP的3次握手建立連接,SCTP的關(guān)聯(lián)能夠抵御拒絕服務(wù)(DoS)攻擊,從而提高了安全性。數(shù)據(jù)只有在關(guān)聯(lián)建立之后與關(guān)聯(lián)關(guān)閉之前才可發(fā)送。SCTP的關(guān)聯(lián)通過3次握手關(guān)閉,不支持類似TCP的半關(guān)閉連接。也就是在任何一方關(guān)閉關(guān)聯(lián)后,對(duì)方即不再發(fā)送數(shù)據(jù)。
SCTP是一種面向消息的傳輸協(xié)議,從上層應(yīng)用傳遞下來的數(shù)據(jù)以消息的形式傳輸。SCTP提供消息的定界功能。在接收端,數(shù)據(jù)以消息的形式遞交。為便于傳輸,SCTP提供消息的拆分和組裝,以及消息的捆綁傳輸功能。SCTP的一個(gè)主要特點(diǎn)是支持多穴主機(jī)。SCTP關(guān)聯(lián)的每個(gè)端點(diǎn)都可以擁有多個(gè)網(wǎng)絡(luò)層地址。SCTP的另一主要特點(diǎn)是多流。SCTP消息在不同的流內(nèi)發(fā)送,這也是流傳輸控制協(xié)議名稱的由來。從發(fā)送端到接收端可以有多個(gè)流,在同一流內(nèi)發(fā)送的消息有序,而不同流之間的消息無序,因此不同流之間的消息傳輸是相對(duì)獨(dú)立的。在某一個(gè)流內(nèi)由于數(shù)據(jù)傳輸失敗而引起的阻塞不會(huì)影響其他流的消息遞交。SCTP仍然采用類似TCP的流量控制和擁塞控制機(jī)制,但又有所增強(qiáng)。整個(gè)傳輸分為慢啟動(dòng)階段和擁塞避免階段。
2、關(guān)于SCTP的偶聯(lián)機(jī)制
偶聯(lián)機(jī)制是SCTP的一大突出功能。SCTP 偶聯(lián)實(shí)際上是在兩個(gè) SCTP 端點(diǎn)間的一個(gè)對(duì)應(yīng)關(guān)系,它包括了兩個(gè) SCTP 端點(diǎn)、以及包括驗(yàn)證標(biāo)簽和傳送順序號(hào)碼等信息在內(nèi)的協(xié)議狀態(tài)信息,一個(gè)偶聯(lián)可以由使用該偶聯(lián)的 SCTP 端點(diǎn)用傳送地址來惟一識(shí)別,在任何時(shí)候兩個(gè) SCTP 端點(diǎn)間都不會(huì)有多于一個(gè)的偶聯(lián)。利用 SCTP偶聯(lián)的機(jī)制(在偶聯(lián)的一端或兩端提供多歸屬的機(jī)制)來提供網(wǎng)絡(luò)級(jí)的保證。
SCTP 實(shí)際上是一個(gè)面向連接的協(xié)議,但 SCTP 偶聯(lián)的概念要比 TCP 的連接具有更廣的概念,SCTP 協(xié)議提供了在兩個(gè) SCTP 端點(diǎn)間的一組傳送地址之間建立偶聯(lián)的方法,通過這些建立好的偶聯(lián),SCTP 端點(diǎn)可以發(fā)送 SCTP 分組。一個(gè) SCTP偶聯(lián)可以包含用多個(gè)可能的起源/目的地地址的組合,這些組合包含在每個(gè)端點(diǎn)的傳送地址列表中。下圖 2-2 給出了 SCTP 偶聯(lián)在 IP 網(wǎng)絡(luò)協(xié)議中的示意。
圖 2-2:SCTP 偶聯(lián)在 IP 網(wǎng)絡(luò)協(xié)議中的示意
3、SCTP協(xié)議內(nèi)容
SCTP的一些主要功能詳見下表2-3。若要詳細(xì)了解RFC 9260標(biāo)準(zhǔn)具體內(nèi)容的請(qǐng)查詢下附件2。
表 2-3:SCTP的主要功能
附件 2:RFC 9260(06/2022)《Stream Control Transmission Protocol》
三、SCTP協(xié)議的國內(nèi)轉(zhuǎn)化情況
我國在2002年6月參照RFC 2960標(biāo)準(zhǔn)轉(zhuǎn)化為國內(nèi)的標(biāo)準(zhǔn),即YD/T 1194-2002《流控制傳送協(xié)議(SCTP)》,它規(guī)定了流控制傳送協(xié)議(SCTP)所使用的消息格式、編碼和程序。該協(xié)議主要用于在IP網(wǎng)中傳送PSTN的信令消息和IP網(wǎng)內(nèi)的信令消息;主要適用于完成No.7信令與IP網(wǎng)互通的信令網(wǎng)關(guān)(SG)設(shè)備,以及IP網(wǎng)用于呼叫控制的軟交換(Soft-Switch)交換機(jī)等設(shè)備的開發(fā)、生產(chǎn)、引進(jìn)和購買。YD/T 1194-2002目前沒有進(jìn)一步的更新,但仍然有效。若要詳細(xì)了解該通信行業(yè)標(biāo)準(zhǔn)具體內(nèi)容的可查詢下附件3。
附件 4:YD/T 1194-2002《流控制傳送協(xié)議(SCTP)》
欲進(jìn)一步了解因特網(wǎng)協(xié)議介紹的請(qǐng)進(jìn)入。