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