• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Bugs

            MMORPG game develop.

            SCTP vs. TCP

             

            1 流控制傳輸協議(SCTP)發展簡介


              隨著IP網向多業務網發展,尤其是目前IP電話、IP視頻會議等業務的發展,在IP網中傳送信令信息成為必然。目前IP網中信令消息的交換通常是使用TCP或UDP完成,但是這兩個協議都不能滿足電信運營網中信令承載的要求。


              為適應IP網成為電信運營核心網的發展趨勢,IETF 的信令傳輸工作組(SIGTRAN)一直在研究和制定IP網新一代的傳輸協議,并在IETF RFC 2960中定義了流控制傳輸協議(SCTP,Stream Control Transmission Protocol)。SCTP是面向連接的可靠傳送協議,它向上層應用提供了下列服務:


              · 應用數據的無錯誤無重復的可靠傳輸;


              · 根據檢測到的MTU長度進行數據包分段處理,避免IP層的分段;


              · 在多個流間的用戶消息有序遞交,及單用戶消息按到達順序遞交的選項;


              · 通過支持關聯的多宿主機特性,實現網絡級容錯。


              SCTP是為傳輸信令業務流而制定的,它本身所具有的、優于TCP的一些先進協議機制,如選擇性重傳、無序遞交和支持多種網絡特性等,使得SCTP能夠在一定程度上滿足高性能傳輸的需求。而且,SCTP采用了類同TCP的流量控制機制,不存在類似基于UDP的實時媒體流對TCP性能造成的劣化干擾問題和公平性問題。因此,SCTP將有可能取代TCP,成為下一代IP網上面向連接的可靠傳送層協議。


            2 TCP的不足


              TCP是目前Internet上應用最廣泛的面向連接的傳送層協議,它為通信的兩端提供了可靠的數據傳輸,而且提供了流量控制和擁塞控制功能。由于原來IP網提供的是“盡力而為(best-effort)”的服務,因此TCP存在許多不足之處:


              · TCP是面向字節流的。這意味著消息的描述必須由應用來完成,而且要在消息結束時顯示通知TCP以迫使其立即發送相應的數據。


              · 許多應用只需要信令信息的部分有序,例如屬于同一呼叫或同一會話的消息就是這樣。而TCP只提供嚴格的數據按序傳輸,這會導致不必要的隊頭擁塞并使消息的傳輸時延增大。


              · TCP連接直接由一對傳送層地址(IP地址和端口號)識別,無法提供對多宿主機的透明支持。


              · 典型的TCP實現不允許高層應用設定協議控制參數。但是一些應用可能會需要調節傳送層協議的屬性以滿足其要求,例如某些應用有較高的時延要求,而另一些則只要求較高的可靠性。


            3 連接與關聯


              TCP中的連接是指兩個TCP端點通過“三次握手”過程建立的由一對傳送層地址(IP地址和端口號)識別的傳送通道。


              在SCTP中, TCP中的連接被引申為關聯(associ-
            ation)。一個關聯的兩個SCTP端點都向對方提供一個SCTP端口號和一個IP地址列表,這樣每個關聯都由兩個SCTP端口號和兩個IP地址列表來識別。在一個關聯內的擁塞控制機制與TCP連接的擁塞控制機制類似。


              一個關聯是由多個單向的流組成的。各個流之間相對獨立,可以單獨發送數據而不受其他流的影響,也可以共同實現用戶數據的有序遞交。流的建立和拆除過程相對獨立、簡單。而關聯的建立過程相對而言就比較復雜,是個“四次握手”過程,而且其中要用到“cookie”的概念。所謂“cookie”實際就是一個含有端點初始信息和加密信息的數據塊,它在關聯建立時被通信的兩端處理并交換。


            4 SCTP的多宿主機特性及應用


              SCTP支持傳送層的多宿主機服務。當網絡發生故障時,多宿主機服務可以增強網絡的健壯性(robustness)。在某些應用場合,這個特性非常重要。SCTP對多宿主機服務的支持要求關聯的一端或兩端在不同的網絡接口上分配有多個IP地址。


              一般來說,要在通信的兩端實現真正的故障彈性恢復,每個端點都需要有一個以上的IP網絡接口,以支持多宿主機服務。在這種情況下,路徑使用的數量就是所有端點的網絡接口的最小數,此時端點要正確選擇自己的源地址才能獲得最佳路徑。但是,如果端點總是使用同一個源地址,那么端點就同樣會出現單點故障。因為當端點選擇一個源地址時,它總是選擇數據包的源地址來對應網絡接口的IP地址,而在網絡接口上數據包將受到綁定地址的限制。換句話說,由于綁定地址的限制,端點永遠都不能選擇不屬于該SCTP關聯的源地址,同時對端端點也必須認可該SCTP關聯使用的任何一個源地址。


              當端點在一個多宿主機上時,如果關聯的兩端綁定有多個地址,SCTP關聯的可用性將大大增強。利用多宿主機這個特性可以在兩個SCTP端點間建立冗余的路徑,這對那些一直尋求在網絡的傳送層次就能提供容錯機制的應用特別有用。要在SCTP的兩個端點間建立冗余路徑,要求兩個端點的設備都必須有多個接口,并分配多個地址,而且必須配置好路由。


              因此,通過“多宿主機”特性,SCTP提供了較TCP強大得多的路徑狀態監控功能。SCTP可以監測遠端地址的可達性,當遠端地址不可達時,它能通過使用備用地址替換主用地址實現故障的自動恢復,而且這一過程不需要上層協議的干預。也就是說,“多宿主機”特性可以使一個關聯可以在多個傳輸路徑間選擇和切換,從而提高了網絡級容錯的能力。


            5 TCP與SCTP的安全比較


              1. TCP的安全問題


              一些TCP應用被公認會受到DoS攻擊。例如,攻擊者可以通過發送大量的連接建立請求(TCP-SYN數據包)來攻擊目的地,有可能來自偽裝的IP地址。被攻擊主機將不停地發送SYN-ACK數據包來回復,并進入SYN-received狀態,甚至SYN隊列將被擠滿(例如,等待建立的連接數會達到一個極限),而且它將拒絕新的連接建立請求。


              另外,偽裝連接是對TCP的另一個潛在威脅。通過猜測有效的序列號,攻擊者將可能偽裝成一個合法連接。但是,通過使用一個安全的Hashsum算法,對目前SYN-cookie進行偽裝的攻擊的可能性只有1/224。例如當使用SYS-cookie時,要成功作為一個偽裝的連接時,攻擊者將不得不發送224個數據包。


              2. SCTP的安全機制


              SCTP在設計時就充分考慮了TCP的不足。為防止攻擊者發送偽裝的SCTP數據包到現有的連接中,SCTP的兩端都使用一個稱為“認證標記”的32bit數據來確保數據包真正屬于現有的連接。因此,除了合并屬于一個連接的源端口和目的端口的地址外,一個有效的SCTP數據包還必須有一個正確的標記。


              跟TCP不同的是,SCTP要求在連接建立時必須使用“cookie”。對服務器來說,必須交換3個信息包(INIT、INIT-ACK、COOKIE-ECHO),才能建立一個完整的新連接。“cookie”是個長度可變的,包含所有和在服務器端初始化TCB的相關數據,加上使用HMAC來確保它的安全。HMAC是在cookie中用來計算的,是一個保密、服務器所擁有的key。引入這種機制的目的在于增強協議的安全性,防止DoS攻擊和偽裝等潛在的攻擊。


              同使用SYN-cookie的TCP相比較,SCTP被攻擊者偽裝的可能性大大降低。因為,攻擊者不得不去猜測包含在cookie中的HMAC值。可能性小于2128。


              值得注意的是,SCTP僅僅試圖來增強網絡的可用性,它沒有包含任何直接和用戶信息認證、完整性和保密功能的協議機制,因為這些特性主要取決于IPSec協議和應用層協議的安全特性。


            6 SCTP與TCP的功能及應用比較


              由于SCTP也是一個面向連接的協議,可提供所有TCP能夠提供的傳送層服務。因此,現有的許多Internet應用將面臨選擇使用TCP或SCTP,來滿足他們對傳送層服務的需求。需要注意的是,對處理成本比較敏感的應用,在使用SCTP或TCP得到的服務是不一樣的,SCTP可以為應用提供一個單獨定制的流傳輸,而TCP為應用提供的是一對地址。


              當然,SCTP還具有一些TCP所不具備的功能,這樣,在某些應用場合,選擇SCTP實現傳送層服務將是更好的選擇。SCTP在一個連接中可以支持多個獨立用戶信息流的發送。正確使用該功能,可以有效減少所謂的“head-of-line-blocking”問題帶來的影響,在TCP中出現該問題,主要是因為數據包的發送有嚴格的順序控制。因此,對那些需要在一個連接中同時支持多個邏輯上獨立的信息流傳送的應用,SCTP就特別有用。
              SCTP保留有應用信息的邊界。當應用數據不是連續的字節流,而是要接收端單獨處理大塊的數據包時,該功能就非常有用。相反,TCP在提供可靠數據流傳送的同時,并不能指出應用中包含的大塊數據包。


              SCTP支持沒有指明應用類別的用戶信息的傳送,而且能夠保證數據的可靠傳送。對那些需要發送沒有順序的可靠信息流的應用,或者喜歡使用自身的信息排序機制的應用,SCTP的這個功能就特別有用。

            posted on 2008-06-26 11:28 Bugs 閱讀(3674) 評論(0)  編輯 收藏 引用

            国产精品久久一区二区三区| 思思久久99热只有频精品66| 人人狠狠综合久久88成人| 久久精品国产2020| 久久99热国产这有精品| 久久久国产精品| 色狠狠久久AV五月综合| 2020最新久久久视精品爱| 日产久久强奸免费的看| 久久久精品国产sm调教网站| 国产日韩欧美久久| 久久久久亚洲av无码专区| 老司机午夜网站国内精品久久久久久久久 | 国产精品99久久久久久宅男小说| 99久久国产精品免费一区二区| …久久精品99久久香蕉国产| 欧美国产精品久久高清| 精品久久久久久久久中文字幕| 波多野结衣久久| 久久精品无码一区二区三区日韩| 国产精品一区二区久久国产| 午夜精品久久影院蜜桃| 国产2021久久精品| 嫩草影院久久国产精品| 久久精品亚洲中文字幕无码麻豆| 久久精品桃花综合| 午夜视频久久久久一区| 久久久久亚洲?V成人无码| 久久综合丁香激情久久| 久久99热国产这有精品| 2020久久精品国产免费| 国产精品久久国产精品99盘| 久久香综合精品久久伊人| 亚洲伊人久久大香线蕉综合图片| 久久精品视频一| 欧美日韩久久中文字幕| 伊人久久大香线蕉综合影院首页| 理论片午午伦夜理片久久| 色青青草原桃花久久综合| 久久99热这里只有精品66| 97精品国产97久久久久久免费|