精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是SCTP?SCTP是如何加快數據傳輸的?

中興文檔 ? 來源:中興文檔 ? 2023-12-28 17:27 ? 次閱讀

TCP和UDP的優點和缺點都很明顯,總之是:各有千秋、旗鼓相當、難分軒輊、互有短長。

聰明的粉絲是善于思考和發問的:有沒有一種協議,可以將TCP和UDP的優點集于一身?

來吧,今天文檔君就和大家一起了解一下SCTP,解答各位粉絲的疑問吧!

Part1 什么是SCTP?

SCTP(Stream Control Transmission Protocol,流控傳輸協議)的出現,并不是萬丈高樓平地起,而是站在TCP這個巨人肩膀上,讓數據傳輸從“可靠”變得“更快更安全”。

假設有2個主機(Host)之間想要通過IP通信,SCTP在TCP的基礎上,進行了下面的一系列改造:

ffdcf002-a559-11ee-8b88-92fbcf53809c.png

端點 端點位于主機上,是一個邏輯實體。簡單來說,2個主機之間進行數據傳輸的話,端點可以看作是“起點”和“終點”。 1個主機可以有多個IP地址和多個開放端口,IP地址+端口號的組合,稱為傳送地址。 一個傳送地址,例如:100.100.10.1:1000,可以唯一標識一個端點。一個端點,可以擁有多個不同的傳送地址。例如:端點A可以使用的傳送地址包括100.100.10.1:1000、100.100.10.2:1000、100.100.10.1:1001。端點B可以使用的傳送地址包括200.200.20.1:2000、200.200.20.2:2000。那么端點A可以使用傳送地址100.100.10.1:1000、100.100.10.2:1000,與端點B進行數據傳輸。 細心的粉絲應該也發現了,對于同1個目的端點,起始端點的多個傳送地址之間,端口號可以相同,IP地址必須不相同。

如果將網絡世界比作是海洋,主機可以看做是港口,端點就是港口中專營數據進出口的商家,傳送地址就是港口中的一個個碼頭,海量的數據通過碼頭完成了裝載出發和到達卸載。 偶聯(Association) 2個端點之間,通過四步握手機制建立的邏輯聯系或者通道,叫做偶聯。

SCTP規定:在任何時刻的2個端點之間,最多只能建立1個偶聯。 港口A中的本端端點(商家A),要想與港口B中的對端端點(商家B)進行數據傳輸,必須握手四次,成功達成共識,相當于簽訂了一個進行數據傳輸的合同。 只有成功建立偶聯(簽訂合同)后,2個端點之間才可以進行數據的傳輸。

ffe8e6fa-a559-11ee-8b88-92fbcf53809c.png

流(Stream)

流是SCTP協議中的一個特殊術語,主要用來指明數據的序列:1個流中包含了多個消息,而且消息之間是有先后順序的。

在1個偶聯中,包含了多個流,每個流,都是從1個端點到另外1個端點的單向邏輯通道。

每個流都有自己專屬的流ID,不同流之間是相互獨立的,每個流可以單獨發送數據而不受其他流的影響。

數據是如何從一個碼頭傳輸到另外一個碼頭的?

TCP和SCTP各有自己的方式:SCTP采用了流,流中的數據是以塊為基本單位;TCP采用了包,包中的數據以字節為基本單位。

相當于TCP在傳輸數據的時候,一艘貨船上只裝載1件貨物。而STCP在傳輸數據的時候,將多件貨物打包成集裝箱,一艘貨船上可以裝載N多個集裝箱,而且集裝箱之間是有編號的,是順序排列的。

通路(Path) 通路是在一個偶聯中,數據在傳輸過程中所經過的路徑。這個路徑,是可以多條的。通路的數量,取決于一個偶聯中的起始端點、目的端點中使用的傳送地址的數量。 簡單來說,本端端點(商家A)擁有2個碼頭,對端端點(商家B)也擁有2個碼頭,那數據要裝船啟航,就有4條不同的航線可以選擇。

Path0:本端傳送地址1(100.100.10.1:1000)發送SCTP分組到對端傳送地 址1(200.200.20.1:2000)。

Path1:本端傳送地址2(100.100.10.2:1000)發送SCTP分組到對端傳送地 址1(200.200.20.1:2000)。

Path2:本端傳送地址1(100.100.10.1:1000)發送SCTP分組到對端傳送地 址2(200.200.20.2:2000)。

Path3:本端傳送地址2(100.100.10.2:1000)發送SCTP分組到對端傳送地 址2(200.200.20.2:2000)。

一般情況下,兩個端點之間會選擇一條航線,作為首選通路。一旦首選通路出現故障,SCTP可以將航線自動切換到其他備用的通路上。

Part2 SCTP如何加快數據傳輸?

在上述改進的基礎上,SCTP的數據傳輸效率有了飛躍。 SCTP的基本工作步驟如下:

建立偶聯:握手四次,成功達成共識。

打開數據流:在建立偶聯后,發送OPEN消息來打開1個新的數據流。OPEN消息中包含了流的ID、優先級和其他參數

發送數據:一旦數據流打開,就可以在這個流上發送數據,通過發送USER消息來完成。USER消息中包含了流ID和要發送的數據。

關閉數據流:數據都已經傳輸完畢,發送1個CLOSE消息來關閉數據流。CLOSE消息中包含了流ID和其他參數。

關閉偶聯:發送1個SHUTDOWN消息來關閉偶聯。SHUTDOWN消息中包含了關閉連接的原因和其他參數。

在發送數據的環節上,SCTP擁有一些獨特的辦法:

首先,SCTP是面向消息的傳輸,將上層應用傳遞下來的用戶數據以消息的形式傳輸,SCTP提供消息的拆分、綁定、重組功能。

在傳輸側,將用戶數據裝入一個集裝箱,這個集裝箱叫做SCTP分組。 每個SCTP分組包括一個公共頭和多個塊,塊分為控制塊和數據塊,控制塊用于SCTP的連接控制,包括連接的建立、關閉、傳輸路徑的維護等;數據塊包含了應用層的用戶數據。

000ac838-a55a-11ee-8b88-92fbcf53809c.png

而且如果某個用戶數據的長度很短,裝在一個集裝箱內會很浪費空間。SCTP可以將多個用戶數據綁定在一起,裝在同一個集裝箱的數據塊中,大大提高了利用率。

在接收側,SCTP將一個集裝箱的內用戶數據,重新組裝成完整的用戶數據,傳遞給上層應用。

其次,SCTP支持多路復用,即允許在1個偶聯中發送多個流。每個流,都是一艘艘裝載滿數據的貨船,每個貨船都有自己獨特的ID,相互之間互不影響。

001e7086-a55a-11ee-8b88-92fbcf53809c.png

Part3 SCTP如何讓數據傳輸更安全?

SCTP在以下幾個方面,對數據傳輸的安全性、穩定性進行了有效的保障。

只是因為建立連接時,多握了一次手

0022c4d8-a55a-11ee-8b88-92fbcf53809c.png

SCTP的四次握手流程如下:

本端端點(商家A)發送INIT消息到對端端點(商家B),向對端端點(商家B)通知本端端點(商家A)的接收窗口大小、地址列表、初始標記及發送的第一個DATA包的發送序號。

對端端點(商家B)收到INIT消息后,回送INIT ACK消息給本端端點。INIT ACK消息中除了攜帶著與INIT消息相同的自己的連接信息外,還攜帶有狀態的COOKIE信息。

本端端點(商家A)收到INIT ACK消息后。利用消息中的STATE COOKIE生成COOKIE ECHO消息,將COOKIE ECHO消息發到對端端點(商家B),告訴對端端點(商家B)已收到消息。

對端端點(商家B)在收到合法的COOKIE ECHO后,開始進行創建連接TCB(傳輸控制塊)和申請資源的工作,發送COOKIE ACK消息給本端端點,并進入ESTABLISH狀態。對端端點(商家B)在收到COOKIE ACK后,狀態變為ESTABLISH,至此完成連接建立工作。

與TCP的三次握手流程對比,SCTP在第2步和第3步中使用了COOKIE ECHO和INIT ACK消息,這2個消息都包含了對端端點(商家B)的參數信息和Cookie值。 這些參數信息和Cookie值用于驗證對端端點(商家B)的身份,保證連接的安全性。 還因為在傳輸數據時,多了身份的認證。 SCTP提供了無差錯的傳輸服務,靠的是在集裝箱公共分組頭里面,包含了一個驗證標簽(VerificATIon Tag)和一個可選的32位校驗碼(Checksum)。

驗證標簽的值,在建立偶聯(簽訂合同)時,由本端端點(商家A)和對端端點(商家B)共同設置的。 如果收到的集裝箱公共分組頭中如果沒有期望的驗證標簽值,對端端點(商家B)會認為這個集裝箱是危險的或者無效的,將丟棄這個集裝箱。

集裝箱中的校驗碼,是通過ADLER-32算法在數據塊的基礎上計算出來的32位字符串。本端端點(商家A)把計算后的校驗碼放在集裝箱中,是為了給數據塊的一個額外保護,用來避免由網絡造成的數據差錯。

對端端點(商家B)收到集裝箱,也通過ADLER-32算法在數據塊基礎上計算出來1個校驗碼,如果和集裝箱里已有的32位校驗碼一致,說明數據塊是沒有差錯的。 如果兩個校驗碼不一致,說明數據塊出錯了,對端端點(商家B)也會丟棄這個集裝箱。

002a8a06-a55a-11ee-8b88-92fbcf53809c.png

也因為在通路空閑時,多了心跳的檢測。

SCTP通過心跳檢測功能,定期檢查連接的健康狀況,從而及時發現和修復連接問題。

當某條通路空閑時,本端端點(商家A)會要求SCTP生成相應的心跳消息,并通過該通路發送到對端端點(商家B),而對端端點(商家B)必須立即發回對應的心跳確認消息。

通過這樣的方式,SCTP精確測量回路時延RTT(Round Trip Time),達到監控偶聯的可用情況和保持SCTP 偶聯的激活狀態的目的。

Part4 SCTP的發展趨勢如何?

前面講過,SCTP是在TCP的基礎上進行了一些改進。

這是因為TCP在處理多媒體應用時,存在擁塞控制問題和可靠傳輸問題。

所以早在1990年代中期,人們就開始研究SCTP協議,并先后發布了多個版本。

每個新版本,都是對前一個版本的改進,并在2000 年成為 RFC 2960,相關的RFC 3286是介紹性的文檔、RFC 4960(2007)是RFC 2960的替代協議。

為了適應不斷發展變化的網絡標準,SCTP也在不斷進化,比如:增加了端到端的認證功能、改進了心跳機制,優化了調度算法。

004d12ec-a55a-11ee-8b88-92fbcf53809c.png

TCP/UDP有其先發優勢,已經廣泛應用在網絡的各種場景中。

SCTP作為后來者,目前的應用范圍有限,卻也在越來越多的場景中得到應用,比如:多媒體會議、視頻會議。

Part5 今天大家學到了什么?

文檔君為大家總結了一下,你學會了嗎?

站在TCP的肩膀上,SCTP有一些自己的特點,比如:端點、偶聯、流、通路。

消息傳輸、多路復用,讓數據傳輸更加有效率。

多一次握手,驗證標簽和驗證碼,檢測心跳,SCTP就想給數據一些穩穩的安全感。

一項技術都是早早出現、慢慢改進、逐步應用,需要經過時間的檢驗。








審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據傳輸
    +關注

    關注

    9

    文章

    1838

    瀏覽量

    64477
  • RTT
    RTT
    +關注

    關注

    0

    文章

    65

    瀏覽量

    17086
  • SCTP
    +關注

    關注

    0

    文章

    7

    瀏覽量

    8132

原文標題:讓“可靠”變得“更快更安全”的數據傳輸協議:SCTP

文章出處:【微信號:ztedoc,微信公眾號:中興文檔】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【飛凌嵌入式OKMX8MP-C 開發板試用體驗】SCTP通信

    SCTP通信是區別于TCP通信和UDP通信外的一種傳輸層協議通信,兼具了TCP和UDP的部分優點,比如SCTP不是以字節為單位傳輸,而是以數據
    發表于 12-08 00:43

    數據傳輸

    通信工程叢書--數據傳輸 這資料還是不錯的,可供參考學習哦!
    發表于 03-25 00:53 ?29次下載

    數據傳輸介質

    2.5  數據傳輸介質      傳輸介質是通信網絡中連接計算機的具體物理設備和數據傳輸物理通路。傳輸介質的特性包括物理描述
    發表于 06-27 21:47 ?0次下載

    基于SCTP 協議的偶聯管理系統設計

    在通信網絡一切基于IP 的驅動下,SCTP(流控傳輸協議)在通信控制領域的應用變得越來越廣泛,保證SCTP 偶聯的性能成了整個系統的關鍵。設計的偶聯管理系統能夠對SCTP 偶聯運
    發表于 08-31 10:24 ?20次下載

    基于SCTP協議的偶聯管理系統設計

    在通信網絡一切基于IP 的驅動下,SCTP(流控傳輸協議)在通信控制領域的應用變得越來越廣泛,保證SCTP 偶聯的性能成了整個系統的關鍵。設計的偶聯管理系統能夠對SCTP 偶聯運
    發表于 12-30 14:28 ?5次下載

    IDE數據傳輸模式

    IDE數據傳輸模式 隨著技術的發展,產品對數據傳輸速度要求的提高,IDE接口硬盤的數
    發表于 12-25 14:58 ?401次閱讀

    Modem數據傳輸標準

     Modem數據傳輸標準 數據傳輸標準是指MODEM的
    發表于 12-28 13:29 ?1010次閱讀

    數據傳輸,數據傳輸的工作方式有哪些?

    數據傳輸,數據傳輸的工作方式有哪些? 將數據從一個地方傳輸到另一個地方的方法多得令人難以置信。 數
    發表于 03-18 14:41 ?6011次閱讀

    數據傳輸速率是什么意思

    數據傳輸速率是什么意思 數據傳輸速率是通過信道每秒可傳輸的數字信息量的量度。數據傳輸速率也稱為吞吐率。數據傳輸速率由很
    發表于 03-18 14:45 ?4986次閱讀

    流控制傳輸協議(SCTP),SCTP的結構和內容是什么?

    流控制傳輸協議(SCTP),SCTP的結構和內容是什么? 隨著IP網向多業務網的發展,尤其是近年來VoIP的發展,在IP網中傳遞信令消息成為必然
    發表于 03-20 15:08 ?7183次閱讀

    SCTP在軍事通信網絡中的應用研究

    SCTP是INTERNET標準化組織提出的一個新的傳輸層協議,是新一代構架于IP層之上的提供可靠傳輸的通用IP傳輸協議。與TCP、UDP相比,SCT
    發表于 03-15 22:26 ?15次下載

    SCTP在工業以太網通信技術中的應用

    SCTP作為新一代基于IP層的通用傳輸協議,更能滿足工業以太網通信的需要。但是,還應該認識到將SCTP應用到工業以太網通信中并不能解決目前面臨的所有信息安全問題
    發表于 04-06 11:37 ?1377次閱讀
    <b class='flag-5'>SCTP</b>在工業以太網通信技術中的應用

    基于dMAX和EMIF接口的數據傳輸

    本文介紹了基于C6727B的dMAX的基本結構以及基于dMAX的嵌入式FIFO軟硬件設計,設置通用GPIO引腳作為中斷,為了加快FIFO的傳輸速率,使用突發讀寫方式進行數據傳輸
    發表于 05-12 10:00 ?1857次閱讀
    基于dMAX和EMIF接口的<b class='flag-5'>數據傳輸</b>

    SCTP流控制傳輸協議簡析

    SCTP(Stream Control Transmission Protocol,流控制傳輸協議,RFC 2960、RFC 3286、RFC 3309)是一個 IP 協議之上的、可靠的、面向控制信令的、傳輸層協議。
    的頭像 發表于 07-25 10:02 ?2072次閱讀
    <b class='flag-5'>SCTP</b>流控制<b class='flag-5'>傳輸</b>協議簡析

    讓“可靠”變得“更快更安全”的數據傳輸協議:SCTP

    SCTP(Stream Control Transmission Protocol,流控傳輸協議)的出現,并不是萬丈高樓平地起,而是站在TCP這個巨人肩膀上,讓數據傳輸從“可靠”變得“更快更安全”。
    的頭像 發表于 12-28 17:25 ?1351次閱讀
    讓“可靠”變得“更快更安全”的<b class='flag-5'>數據傳輸</b>協議:<b class='flag-5'>SCTP</b>