SCTP 流媒體控制傳輸協(xié)議

2020-06-12 15:25 更新

一、簡介

1.內(nèi)容

SCTP ( Stream Control Transmission Protocol ),即流媒體控制傳輸協(xié)議,是一種可靠的基于無連接數(shù)據(jù)包網(wǎng)絡(luò)如IP網(wǎng)絡(luò)之上傳輸協(xié)議。他被設(shè)計(jì)用來在IP網(wǎng)絡(luò)上傳輸PSTN在窄帶信令消息,同時(shí)也能支持寬帶信令消息的傳輸。

SCTP可以看作OSI層次結(jié)構(gòu)中的傳輸層,它的上層作為SCTP用戶應(yīng)用,下層為分組網(wǎng)絡(luò)IP層。\

二、報(bào)文

1.協(xié)議棧結(jié)構(gòu)

2.報(bào)文格式

三、協(xié)議對比

1.TCP通常是單路徑傳輸,SCTP可以多路徑傳輸

TCP的兩端都只能用一個(gè)IP來建立連接,連接建立之后就只能用這一對IP來相互收發(fā)消息了。如果這一對IP之間的路徑出了問題,那這條TCP連接就不可用了。

SCTP不一樣的地方是,兩端都可以綁定到多個(gè)IP上,只要有其中一對IP能通,這條SCTP連接就還可以用。

2. TCP是單流有序傳輸,SCTP可以多流獨(dú)立有序/無序傳輸

一條SCTP連接里面,可以區(qū)分多條不同的流(stream),不同的流之間的數(shù)據(jù)傳輸互不干擾。這樣做理論上的好處是,如果其中某一條流由于丟包阻塞了,那只會(huì)影響到這一條流,其他的流并不會(huì)被阻塞。但是實(shí)際上,如果某一條流由于丟包阻塞,其他的流通常也會(huì)丟包,被阻塞,最后導(dǎo)致所有的流都被阻塞,SCTP連接中斷。

3.TCP是單流有序傳輸,SCTP可以多流獨(dú)立有序/無序傳輸

一條SCTP連接里面,可以區(qū)分多條不同的流(stream),不同的流之間的數(shù)據(jù)傳輸互不干擾。這樣做理論上的好處是,如果其中某一條流由于丟包阻塞了,那只會(huì)影響到這一條流,其他的流并不會(huì)被阻塞。但是實(shí)際上,如果某一條流由于丟包阻塞,其他的流通常也會(huì)丟包,被阻塞,最后導(dǎo)致所有的流都被阻塞,SCTP連接中斷。

4. TCP連接的建立過程需要三步握手,SCTP連接的建立過程需要四步握手

TCP連接建立過程,容易受到DoS攻擊。在建立連接的時(shí)候,client端需要發(fā)送SYN給server端,server端需要將這些連接請求緩存下來。通過這種機(jī)制,攻擊者可以發(fā)送大量偽造的SYN包到一個(gè)server端,導(dǎo)致server端耗盡內(nèi)存來緩存這些連接請求,最終無法服務(wù)。

SCTP的建立過程需要四步握手,server端在收到連接請求時(shí),不會(huì)立即分配內(nèi)存緩存起來,而是返回一個(gè)COOKIE。client端需要回送這個(gè)COOKIE,server端校驗(yàn)之后,從cookie中重新獲取有效信息(比如對端地址列表),才會(huì)最終建立這條連接。這樣,可以避免類似TCP的SYN攻擊。

應(yīng)用程序?qū)Υ烁兄坏剑瑢?yīng)用程序來說,不管是TCP還是SCTP,都只需要在server端listen一個(gè)socket,client調(diào)用connect()去連接到一個(gè)server端。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號