999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于流傳輸協議SCTP的研究

2008-12-31 00:00:00
電腦知識與技術 2008年28期

摘要:流控制傳輸協議(Stream Control Transmission Protocol,SCTP)是一種可靠的傳輸協議,它在兩個端點之間提供穩定、有序的數據傳遞服務,并且可以保護數據消息邊界。與TCP和UDP不同,SCTP通過多地址主機(Multi-homing)和多流(Multi-streaming)功能提供這些收益,這兩種功能均可提高可用性。

關鍵詞:流控制傳輸協議;多地址;多流;關聯

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)28-0067-03

The Research of Stream Control Transport Protocol

XIONG Wei1,2

(1.Department of Computer Engineering,Chongqing University,Chongqing 400044,China;2.Network and Information Security Center,Chongqing Institute of Communication,Chongqing 400035,China)

Abstract: SCTP(Stream Control Transport Protocol),standardized by the Internet Engineering Task Force(IETF)is a new general-purpose transport protocol which fit to transmit stream media because of it’s new advantages such as multi-stream transport, unordered deliver and so on. In this issue, we describe the design an operation of SCTP, includes the basic datagram format and the concept of Chunk, Association, Stream, etcetera.

Key words: SCTP; multi-homing; mulit-streaming; association

1 引言

隨著高速網絡的發展和新需求的出現,現代網絡面臨的核心問題是多媒體數據業務和實時通信量的傳輸,以及如何為這些業務提供相應的服務質量保證。基于IP的包交換網絡為了支持多媒體等流式通信量采用了多種技術:如采用高性能的交換機和路由器提升網絡容量、IP多播傳輸、允許用戶預留網絡容量,并為各種業務類型分配優先級以及新的運輸層協議等,前三者都是網絡層的功能,而運輸層協議則是通過運輸層通信端點之間的協作來為多媒體網絡應用服務。傳統的傳輸層協議TCP由于嚴格的順序遞交和確認重傳帶來了額外的傳輸流量和較大的時延,UDP又因為過于簡單,缺少必要的可靠傳輸保證,容易導致網絡擁塞甚至崩潰。流控制傳輸協議SCTP(Stream Control Transport Protocol),作為一種新的協議,利用其新特性在可靠服務和傳輸效率之間取得平衡,達到應用所期望的性能。

2 SCTP(Stream Control Transport Protocol)的基本特性

SCTP是在IP網絡上使用的一種可靠的通用傳輸層協議。盡管SCTP協議最初是為發送電話信號而設計的(RFC 2960),但帶來了一個意外的收獲:它通過借鑒 UDP 的優點解決了TCP的某些局限。經過不斷的研究和擴展,SCTP已經逐漸發展成為一種通用的傳輸層協議,并在許多網絡操作系統如BSD,Linux中得到了初步實現。SCTP除了具有TCP同樣的功能之外,還具有更新的設計思想和更靈活的數據包格式,能更好的擴展以滿足某些應用的需求。其主要特征如下:

1) 內建多地址主機支持:SCTP中的一對連接稱為關聯(Association),關聯兩端的主機節點(Endpoint)可以有多個網絡地址,從而使一個SCTP關聯可以通過多條網絡路徑進行數據傳輸,見圖1。

2) 保留應用層消息邊界:SCTP保留上層數據信息的邊界,上層數據信息稱為“消息”,傳輸的基本單位為有意義的數據段。

3) 單個關聯(Association)多流機制:SCTP允許用戶在每個關聯中定義子流,數據在子流內按序傳輸。

3 SCTP的數據包格式

SCTP提供了靈活的數據塊格式,每個SCTP數據報都由一個Common Header(基本首部)和若干Chunk(數據塊)組成。

圖2左邊顯示了SCTP的基本數據報文格式。其中基本首部提供了源端口和目的端口,用于完成典型的傳輸層協議端口復用功能,驗證標記對一個SCTP連接提供安全驗證,保存著在SCTP通過握手建立連接時第一次交換的初始標簽的值。在一次連接中,任何SCTP數據包若不包含這樣一個標簽,到達時會被接收端丟棄。校驗和是對整個數據包的校驗。在首部后是一系列Chunks(塊)。Chunk是組成SCTP報文的基本結構,有多種類型,不同類型的塊可用來傳輸不同的控制信息或數據;同時首部中的flags標記字段提供了額外的控制信息。豐富的Chunk類型使SCTP可以采用不同類型的Chunk實現各種傳輸控制機制。

4 SCTP的消息(message)和流(stream)

下面給出SCTP協議中數據的基本載體數據塊的格式描述,如圖3。

SCTP協議將上層數據信息稱為用戶消息(user message),在傳輸中SCTP保留上層數據信息的邊界,傳輸的基本單位為有意義的數據段。因此SCTP稱為“面向消息”的傳輸協議。

SCTP提出了數據流的概念,如圖4所示,每個數據塊中不僅有傳輸序號TSN,還攜帶了流標識SID(Stream ID)和流序號SSN(Stream Sequence Number)。用戶可以在一個連接中建立多個流,每個流分配一個SID,每個流隊列中的用戶數據由流序號SSN表明順序。在SCTP中引入一個連接多個流的機制解決了使用TCP傳輸時出現的隊首阻塞問題。允許某些應用程序根據需求將邏輯上不相關的數據分離為多個流進行傳輸往往很有意義,如一個多媒體視頻會議系統中的多路語音信號在各自的流中傳輸,彼此之間不會互相阻塞。

如圖4所示,節點根據應用程序的要求維護不同的發送隊列,當接到上層的消息后根據MTU等網絡情況決定是否拆解并轉化為Data Chunk進行傳輸。并且將會設置Data Chunk中flags字段的相應位,flags字段共三位,其中的U位為是否按序遞交用戶消息的標志,B,E位分別代表本Data Chunk包含一個用戶消息的開始或結束,如果本數據塊包含一條完整的用戶消息,則BE都置為1,如包含消息中間的內容則都置為0。連接的對端收到DataChunk后根據流序號SSN和flags字段重組用戶消息交給應用層。

SCTP提供按序遞交和無序遞交兩種選擇,Data Chunk中的flags字段中的U位就表明了該數據所需要的服務是按序遞交或是無序遞交。當采用無序遞交時,SCTP就具有了類似UDP的一些特征,能夠盡快的將數據發往上層,適用于一些實時應用。

實際上,通過引入流和無序遞交機制,SCTP實現了嚴格有序傳輸(類似TCP),部分有序傳輸(部分流內無序遞交)和無序傳輸(類似UDP)。

5 SCTP的基本傳輸機制

5.1 連接的建立

SCTP在傳輸前首先建立連接,稱為一個關聯,通過四次握手,兩端SCTP主機交換地址信息和其他通信狀態。如圖5所示。

請求連接者發出INIT請求,INIT消息的接收端不必保存任何狀態信息或者分配任何資源,這樣就可防范SYN Flooding等DoS攻擊。它在發送響應INIT的INIT-ACK消息時,采用了一種機制—“狀態Cookie”,該Cookie具有發送端要建立連接所需的全部信息。

INIT和INIT-ACK都必須包含建立初始狀態所需的參數:一組IP地址,初始TSN,被接收的SCTP包中必須含有的初始標簽,每一端請求發出的流數目和每一端能支持接收的流數目。交換完這些消息之后,INIT的發送端以COOKIE-ECHO消息的方式發送回狀態Cookie。接收端根據所接收到的COOKIE-ECHO中的狀態Cookie,完整地重建自己的狀態,并回送COOKIE-ACK來確認關聯已建立。注意COOKIE-ECHO和COOKIE-ACK都可將用戶數據消息綁定到各自的包中,可以加快數據的發送。

5.2 傳輸過程

在建立連接以后,接收方收到數據要發回確認,接收方維護一個累計已確認數據序號Cm-TSN(Cumulative Transport Sequence Number),定時器到期未收到確認則重傳數據包,因此SCTP和TCP一樣,可以提供有連接的可靠傳輸服務。通過對數據攜帶的一個傳輸序號TSN(Transport Sequence Number)進行選擇確認(Selective ACK)。如圖6。

在SCTP中,TSN保證整個關聯的可靠性,而SID/SSN保證整個流的有序性,實現了在傳輸中將數據的可靠性與有序性獨立分開。TSN類似于TCP中的確認序號,然而在TCP中,確認序號既用于確認保證可靠傳輸,又用于接收方排序,而在SCTP中TSN與SID/SSN各司其職。

SCTP可以在一個連接中傳輸多條數據流,允許應用程序根據需要傳輸多個性質不同的流,而接收方對每個流按其SID/SSN進行處理,互不干擾,當一個流正在等待下一個非順序的用戶消息時,其他流的發送會繼續。

對于數據包丟失的發現,SCTP即使發現接收序號有缺口或順序錯亂,仍會發送后面的數據。從圖6可以看出,當序號為7的數據未到達時,發送端依然進行后續包的傳送。

SCTP選擇確認的特點還在于SACK Chunk的設計,實際上TCP的ACK機制也能提供一定的選擇確認信息,然而SCTP的SACK機制通過SACK Chunk提供了更多的數據確認信息。圖7顯示了SACK Chunk的格式。

如圖7所示,在SCTP SACK確認塊中包含了在一定的時間內盡可能多的信息,將已收到的連續數據稱為Gap,通過若干包含起始和終止傳輸序號(TSN)的Gap字段表示那些已收到的連續數據塊,通過若干Duplicate TSN字段表示每個重復收到的數據包,當對方端點接收到SACK Chunk后就可以根據這些信息做出是否重傳或調整發送窗口,清空緩存等工作。

6 SCTP的多地址和多路徑支持

SCTP通過多地址支持實現傳輸的路徑冗余。當連接中至少有一個端點使用多個IP地址時,就形成了多條可能的傳輸路徑,其中主要使用一條作為主傳輸路徑,其他的作為冗余路徑在必要時啟用。具體過程如下:

通信方在發送的INIT或INIT-ACK消息中列出自己所具有的IP地址,通過一定的機制選擇特定的一對地址形成的地址對(pair)作為主路徑進行數據傳輸,其余可能的地址對作為冗余路徑。

在傳輸的過程中定時利用Heartbeat/HeartbeatACK消息塊來監測和更新主路徑和冗余路徑的路徑狀態(active或inactive)。具體操作是通過統計每條路徑上的數據傳輸次數(包括DATA和HEARTBEAT),如果次數達到一定的上限,該路徑的狀態就成為inactive。可以選用另一路徑用于傳輸,實現了網絡層的容錯。

在SCTP目前的研究和實現中多路徑特性只用于網絡容錯,也就是主路徑失效時啟動備份路徑,更進一步的考慮是利用SCTP的多址特性實現負載分擔(LoadSharing)。

7 SCTP的可擴展性

作為一個仍在發展和改進的協議,SCTP的設計者從設計之初就充分考慮了協議的可擴展性。下面簡單分析SCTP的一個具體擴展:確認序號移動通告。

多媒體數據的特點是可以允許少量數據的丟失,對重傳引入的延時和效率問題十分敏感。例如在流媒體視頻傳輸中,遲到的重傳數據往往已經無效,重傳就沒有必要。為在可靠性和實時性之間取得平衡,SCTP引入了一種新的Chunk類型(見圖8),稱為“確認序號移動通告”(Forward Cumulative TSN chunk)。

在采用PR-SCTP的系統中,發送方在接收方請求重傳時將根據一定的策略,決定是否有必要重傳該數據,如果發送方認為數據不太重要或已經過時,則發送確認序號移動通告Fwd-CmTSN,指示接收方修改累計確認序號Cm-TSN,接收方在收到確認序號移動通告時則會向前增大Cm-ACK的值,放棄該數據,不再請求重傳而繼續后續數據的傳輸。由于STCP中TSN只負責重傳保證可靠傳輸,為了通知接收方哪些數據已放棄,確認序號移動通告中還可以攜帶這些放棄數據的流號和流序號。

確認序號移動通告保留了確認重傳機制的同時,“跳過”某些(不太重要的)數據,實現了部分可靠的傳輸,為某些不需要完全可靠傳輸的應用程序提供了很大的靈活性。

8 結束語

總之,作為一種新的傳輸層協議,SCTP和傳統協議相比有更多的優點。從2000年10月份才成為RFC規范以后,開始進入所有的主流操作系統,包括 GNU/Linux、BSD和Solaris。在Microsoft?誖 Windows?誖 操作系統上也有第三方的商業包可以使用。在獲得高可用性的同時,應用程序也已經開始使用SCTP作為自己的主要傳輸機制。諸如FTP和HTTP之類的傳統應用程序已經在SCTP的特性基礎上進行了構建。其他一些協議也正在開始使用SCTP,例如會話初始化協議(Session Initiation Protocol,SIP)和通用通道信號系統7(SS7)。在商業領域中,也可以在Cisco的IOS中找到SCTP的影子。

隨著SCTP被吸納到2.6版本的Linux內核中,現在可以構建并部署高可用性、高可靠性的網絡應用程序。作為一種基于IP的協議,SCTP不但可以無縫地替換TCP和UDP,而且擴展了很多新服務,并且對安全性也有了很大的提高。從發展的趨勢來看,SCTP它提供了更加高效和適用的傳輸機制,有重要的研究意義和廣闊的發展前景。

參考文獻:

[1] Stewart R.Stream Control Transmission Protocol[Z].RFC 2960,2000.

[2] Stewart R,Xie QB.Stream Control Transmission Protocol[Z].A Reference Guide.

主站蜘蛛池模板: 国产极品美女在线播放| 亚洲成人在线网| 91蝌蚪视频在线观看| 国产肉感大码AV无码| 国产精品久久久久久久伊一| 亚洲狼网站狼狼鲁亚洲下载| 久久精品日日躁夜夜躁欧美| 国产成人a在线观看视频| 国产成人AV男人的天堂| 男女男免费视频网站国产| 5388国产亚洲欧美在线观看| 久久不卡国产精品无码| 亚洲成人播放| 欧美在线免费| 四虎在线观看视频高清无码| 99精品福利视频| 亚洲中文久久精品无玛| 亚洲美女操| 国产精品久久久精品三级| 亚洲人成网18禁| 欧美日韩在线国产| 高清无码一本到东京热| 国产丰满大乳无码免费播放| 在线精品亚洲一区二区古装| 亚洲天堂视频网站| 亚洲日韩国产精品综合在线观看| 国产经典免费播放视频| 喷潮白浆直流在线播放| av在线5g无码天天| v天堂中文在线| 天天躁狠狠躁| 国产一区二区网站| 99热6这里只有精品| 亚洲天堂视频在线免费观看| 激情六月丁香婷婷四房播| 四虎成人在线视频| 国产美女无遮挡免费视频网站| 亚洲欧美成人综合| 免费在线a视频| 欧美精品成人| 婷婷六月在线| 激情综合婷婷丁香五月尤物| 91蜜芽尤物福利在线观看| 天天视频在线91频| 91po国产在线精品免费观看| 国产成人久久综合777777麻豆| 国产小视频在线高清播放 | 波多野结衣无码中文字幕在线观看一区二区 | 亚洲成人精品久久| 在线a视频免费观看| 亚洲国产91人成在线| 国产国模一区二区三区四区| 乱系列中文字幕在线视频| 国产综合精品一区二区| 精品久久久久成人码免费动漫| 99久久精品久久久久久婷婷| 欧美日韩激情在线| 国产精品理论片| 伊人成人在线| P尤物久久99国产综合精品| 国产黄在线免费观看| 在线观看国产网址你懂的| 日韩毛片在线视频| 国产AV无码专区亚洲A∨毛片| 素人激情视频福利| 国产国产人成免费视频77777 | 久久人搡人人玩人妻精品| 久久精品无码专区免费| 国产美女在线免费观看| 日韩中文字幕亚洲无线码| 欧美日韩高清| 国产第一页第二页| 亚洲欧美日韩视频一区| 久久国产高清视频| 国产69精品久久| 99在线观看视频免费| 亚洲欧美国产五月天综合| 在线亚洲小视频| 又爽又大又黄a级毛片在线视频| 亚洲国产欧美国产综合久久| 波多野结衣一二三| 黄色网站在线观看无码|