亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        關(guān)于流傳輸協(xié)議SCTP的研究

        2008-12-31 00:00:00
        電腦知識(shí)與技術(shù) 2008年28期

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

        關(guān)鍵詞:流控制傳輸協(xié)議;多地址;多流;關(guān)聯(lián)

        中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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 引言

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

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

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

        1) 內(nèi)建多地址主機(jī)支持:SCTP中的一對(duì)連接稱為關(guān)聯(lián)(Association),關(guān)聯(lián)兩端的主機(jī)節(jié)點(diǎn)(Endpoint)可以有多個(gè)網(wǎng)絡(luò)地址,從而使一個(gè)SCTP關(guān)聯(lián)可以通過多條網(wǎng)絡(luò)路徑進(jìn)行數(shù)據(jù)傳輸,見圖1。

        2) 保留應(yīng)用層消息邊界:SCTP保留上層數(shù)據(jù)信息的邊界,上層數(shù)據(jù)信息稱為“消息”,傳輸?shù)幕締挝粸橛幸饬x的數(shù)據(jù)段。

        3) 單個(gè)關(guān)聯(lián)(Association)多流機(jī)制:SCTP允許用戶在每個(gè)關(guān)聯(lián)中定義子流,數(shù)據(jù)在子流內(nèi)按序傳輸。

        3 SCTP的數(shù)據(jù)包格式

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

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

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

        下面給出SCTP協(xié)議中數(shù)據(jù)的基本載體數(shù)據(jù)塊的格式描述,如圖3。

        SCTP協(xié)議將上層數(shù)據(jù)信息稱為用戶消息(user message),在傳輸中SCTP保留上層數(shù)據(jù)信息的邊界,傳輸?shù)幕締挝粸橛幸饬x的數(shù)據(jù)段。因此SCTP稱為“面向消息”的傳輸協(xié)議。

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

        如圖4所示,節(jié)點(diǎn)根據(jù)應(yīng)用程序的要求維護(hù)不同的發(fā)送隊(duì)列,當(dāng)接到上層的消息后根據(jù)MTU等網(wǎng)絡(luò)情況決定是否拆解并轉(zhuǎn)化為Data Chunk進(jìn)行傳輸。并且將會(huì)設(shè)置Data Chunk中flags字段的相應(yīng)位,flags字段共三位,其中的U位為是否按序遞交用戶消息的標(biāo)志,B,E位分別代表本Data Chunk包含一個(gè)用戶消息的開始或結(jié)束,如果本數(shù)據(jù)塊包含一條完整的用戶消息,則BE都置為1,如包含消息中間的內(nèi)容則都置為0。連接的對(duì)端收到DataChunk后根據(jù)流序號(hào)SSN和flags字段重組用戶消息交給應(yīng)用層。

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

        實(shí)際上,通過引入流和無序遞交機(jī)制,SCTP實(shí)現(xiàn)了嚴(yán)格有序傳輸(類似TCP),部分有序傳輸(部分流內(nèi)無序遞交)和無序傳輸(類似UDP)。

        5 SCTP的基本傳輸機(jī)制

        5.1 連接的建立

        SCTP在傳輸前首先建立連接,稱為一個(gè)關(guān)聯(lián),通過四次握手,兩端SCTP主機(jī)交換地址信息和其他通信狀態(tài)。如圖5所示。

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

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

        5.2 傳輸過程

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

        在SCTP中,TSN保證整個(gè)關(guān)聯(lián)的可靠性,而SID/SSN保證整個(gè)流的有序性,實(shí)現(xiàn)了在傳輸中將數(shù)據(jù)的可靠性與有序性獨(dú)立分開。TSN類似于TCP中的確認(rèn)序號(hào),然而在TCP中,確認(rèn)序號(hào)既用于確認(rèn)保證可靠傳輸,又用于接收方排序,而在SCTP中TSN與SID/SSN各司其職。

        SCTP可以在一個(gè)連接中傳輸多條數(shù)據(jù)流,允許應(yīng)用程序根據(jù)需要傳輸多個(gè)性質(zhì)不同的流,而接收方對(duì)每個(gè)流按其SID/SSN進(jìn)行處理,互不干擾,當(dāng)一個(gè)流正在等待下一個(gè)非順序的用戶消息時(shí),其他流的發(fā)送會(huì)繼續(xù)。

        對(duì)于數(shù)據(jù)包丟失的發(fā)現(xiàn),SCTP即使發(fā)現(xiàn)接收序號(hào)有缺口或順序錯(cuò)亂,仍會(huì)發(fā)送后面的數(shù)據(jù)。從圖6可以看出,當(dāng)序號(hào)為7的數(shù)據(jù)未到達(dá)時(shí),發(fā)送端依然進(jìn)行后續(xù)包的傳送。

        SCTP選擇確認(rèn)的特點(diǎn)還在于SACK Chunk的設(shè)計(jì),實(shí)際上TCP的ACK機(jī)制也能提供一定的選擇確認(rèn)信息,然而SCTP的SACK機(jī)制通過SACK Chunk提供了更多的數(shù)據(jù)確認(rèn)信息。圖7顯示了SACK Chunk的格式。

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

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

        SCTP通過多地址支持實(shí)現(xiàn)傳輸?shù)穆窂饺哂?。?dāng)連接中至少有一個(gè)端點(diǎn)使用多個(gè)IP地址時(shí),就形成了多條可能的傳輸路徑,其中主要使用一條作為主傳輸路徑,其他的作為冗余路徑在必要時(shí)啟用。具體過程如下:

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

        在傳輸?shù)倪^程中定時(shí)利用Heartbeat/HeartbeatACK消息塊來監(jiān)測(cè)和更新主路徑和冗余路徑的路徑狀態(tài)(active或inactive)。具體操作是通過統(tǒng)計(jì)每條路徑上的數(shù)據(jù)傳輸次數(shù)(包括DATA和HEARTBEAT),如果次數(shù)達(dá)到一定的上限,該路徑的狀態(tài)就成為inactive。可以選用另一路徑用于傳輸,實(shí)現(xiàn)了網(wǎng)絡(luò)層的容錯(cuò)。

        在SCTP目前的研究和實(shí)現(xiàn)中多路徑特性只用于網(wǎng)絡(luò)容錯(cuò),也就是主路徑失效時(shí)啟動(dòng)備份路徑,更進(jìn)一步的考慮是利用SCTP的多址特性實(shí)現(xiàn)負(fù)載分擔(dān)(LoadSharing)。

        7 SCTP的可擴(kuò)展性

        作為一個(gè)仍在發(fā)展和改進(jìn)的協(xié)議,SCTP的設(shè)計(jì)者從設(shè)計(jì)之初就充分考慮了協(xié)議的可擴(kuò)展性。下面簡(jiǎn)單分析SCTP的一個(gè)具體擴(kuò)展:確認(rèn)序號(hào)移動(dòng)通告。

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

        在采用PR-SCTP的系統(tǒng)中,發(fā)送方在接收方請(qǐng)求重傳時(shí)將根據(jù)一定的策略,決定是否有必要重傳該數(shù)據(jù),如果發(fā)送方認(rèn)為數(shù)據(jù)不太重要或已經(jīng)過時(shí),則發(fā)送確認(rèn)序號(hào)移動(dòng)通告Fwd-CmTSN,指示接收方修改累計(jì)確認(rèn)序號(hào)Cm-TSN,接收方在收到確認(rèn)序號(hào)移動(dòng)通告時(shí)則會(huì)向前增大Cm-ACK的值,放棄該數(shù)據(jù),不再請(qǐng)求重傳而繼續(xù)后續(xù)數(shù)據(jù)的傳輸。由于STCP中TSN只負(fù)責(zé)重傳保證可靠傳輸,為了通知接收方哪些數(shù)據(jù)已放棄,確認(rèn)序號(hào)移動(dòng)通告中還可以攜帶這些放棄數(shù)據(jù)的流號(hào)和流序號(hào)。

        確認(rèn)序號(hào)移動(dòng)通告保留了確認(rèn)重傳機(jī)制的同時(shí),“跳過”某些(不太重要的)數(shù)據(jù),實(shí)現(xiàn)了部分可靠的傳輸,為某些不需要完全可靠傳輸?shù)膽?yīng)用程序提供了很大的靈活性。

        8 結(jié)束語

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

        隨著SCTP被吸納到2.6版本的Linux內(nèi)核中,現(xiàn)在可以構(gòu)建并部署高可用性、高可靠性的網(wǎng)絡(luò)應(yīng)用程序。作為一種基于IP的協(xié)議,SCTP不但可以無縫地替換TCP和UDP,而且擴(kuò)展了很多新服務(wù),并且對(duì)安全性也有了很大的提高。從發(fā)展的趨勢(shì)來看,SCTP它提供了更加高效和適用的傳輸機(jī)制,有重要的研究意義和廣闊的發(fā)展前景。

        參考文獻(xiàn):

        [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九色极品探花内射| 国产精品久久国产精品99gif| а天堂中文在线官网| 欧性猛交ⅹxxx乱大交| 久久久久久岛国免费网站| 少妇太爽高潮在线播放| 国产一区二区三区免费视| 精品日韩亚洲av无码| 激情内射亚州一区二区三区爱妻| 女性自慰网站免费看ww| 尤物蜜芽福利国产污在线观看| 久久开心婷婷综合中文| 小妖精又紧又湿高潮h视频69| 99精品国产99久久久久久97 | 偷偷夜夜精品一区二区三区蜜桃 | 国产亚洲精品久久久久5区| 久久午夜夜伦鲁鲁片免费无码| 久久久久久久无码高潮| 97色噜噜| 麻豆夫妻在线视频观看| 亚洲综合精品中文字幕| 国产人妻人伦精品1国产盗摄| 中文字幕人妻中文| 在线看高清中文字幕一区| 中文字幕人妻丝袜成熟乱| 亚洲精品中文字幕无码蜜桃| 91精品日本久久久久久牛牛| 国产人妖伦理视频在线观看| 久久人妻无码一区二区| 精品高潮呻吟99av无码视频| 欧美韩国精品另类综合| 国产不卡av一区二区三区| 欧美国产激情二区三区| 国产 国语对白 露脸| 国产精品国产三级国产在线观| 少妇性l交大片免费1一少| 麻豆国产精品va在线观看不卡| 国产精品va在线播放我和闺蜜| 国产熟女av一区二区三区四季| 亚洲一区二区三区精品| 和外国人做人爱视频|