SCTP协议详解.docx

上传人:b****8 文档编号:12948382 上传时间:2023-06-09 格式:DOCX 页数:12 大小:75.59KB
下载 相关 举报
SCTP协议详解.docx_第1页
第1页 / 共12页
SCTP协议详解.docx_第2页
第2页 / 共12页
SCTP协议详解.docx_第3页
第3页 / 共12页
SCTP协议详解.docx_第4页
第4页 / 共12页
SCTP协议详解.docx_第5页
第5页 / 共12页
SCTP协议详解.docx_第6页
第6页 / 共12页
SCTP协议详解.docx_第7页
第7页 / 共12页
SCTP协议详解.docx_第8页
第8页 / 共12页
SCTP协议详解.docx_第9页
第9页 / 共12页
SCTP协议详解.docx_第10页
第10页 / 共12页
SCTP协议详解.docx_第11页
第11页 / 共12页
SCTP协议详解.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SCTP协议详解.docx

《SCTP协议详解.docx》由会员分享,可在线阅读,更多相关《SCTP协议详解.docx(12页珍藏版)》请在冰点文库上搜索。

SCTP协议详解.docx

SCTP协议详解

SCTP»«ff解

SCTP被視为一个传输层协SL它的上层为SCTP用户应用•下层作为分组网络。

在SIGTRAN应用中,SCTP上层用户是S信令的适配模ft{»M2UA.M3UA)9下层是IP网。

•SCTP相关术培

•sctpa能

•SCTP基本信令潼程

耳三JS

SCTP相关术培

1.传送地址

传送堆址由IP堆址、传输层协放类型和传输层端口号定义。

由于SCTP在IP上传输,所以一个SCTP传送览址由一个IP堆址加一个SCTP竭口号决定oSCTP常口号就是SCTP用来识别同一堆址上的用户•和TCP端口号是一个H念。

比如IP%址10.105.28.92和SCTP竭口号1024标识了一个传送地址,而10.105.28.93和1024剧标识了另外一个传送地址,同祥,10.105.28.92和鶴口号1023也标识了一个不同的传送览址。

2.主机和舞点

主机(HOST)主机配有一个或多个IP地址,是一个典型的精理实体。

端点(SCTPEndpoint)

端贞是SCTP的基本逻辑様念,是数据报的逻辑发送者和接收者,是一个興型的逆辑实体。

一个传送堆址(IP堆址+SCTP竭口号)唯一标识一个竭点。

一个靖点可以由多个传送堆址进行定义,但对于同一个目的常戌而言,这些传送堆址中的IP堆址可以配置成多个.但必须便用相同的SCTP端口。

例联(ASSOCIATION)(8联就是两个SCTP鶴点通过SCTP协仪规定的4步握手机卸建立起来传注的逻辑联系或者通道。

SCTP廉放規定在任何时刻两个甫点之同能且仅能建立一个例联。

由于備联由两个端点的传送地址来定义,所以通U数据配置本堆IP堆址、本itSCTP端口号、对端IP堆址、对SSCTP端口号等四个参数,可以唯一标识一个SCTP假联。

正因为如此,在GTSOFTX3000中,假联可以被看成是一条M2UA讎路或M3UAfifto

潼(Stream)灌是SCTP协玫的一个箝色术培。

SCTP偎联中的流用来指示需要按顺序递交到高的用户消息的序刃,在同一个流中的消息需要按照其触序进打递交。

严格地说,“沆”就是一个SCTP倒联中,从一个竭点對另一个常贞的单向逆Si£o-个假联是由多个单向的流组成的。

各个«20相对微立,使用流ID进fiSiH,每个浹可以单菽发送数据而不受其他浦的影咽。

4.通路(Path)和首选通路(PrimaryPath)

)1路(Path)通路是一个端点稱SCTP分组发送到对竭常康特定目的传送堆址的路由。

如果分组发送到对竭竭虑不同的目的传送览址时,不需要配置单独的通路。

首选通B(PrimaryPath)首选通路是在KikffiXT,目的堆址、浪堆址在SCTP分组中发到对酬貝的通路。

如果可以便用多个目»1«址作为到一个竭点的目的堆址,團这个SCTP竭点为多HMo如果发出SCTP分组的端点U于多归厲节贞时,如果定义了目的地址、««址,能够更好控胃响应数据挟返回的埴路利数据內被发送的接口。

一个SCTP例联的两个SCTPS点aniua置多个IP览址,沁样一个働联的两个竭点之间具有多条通路,这就是SCTPfl联的多览址性。

SCTP偶联的多堆址性是SCTP与TCP最大的不同。

一个備坎可U0g多条通路,但只有一个首选通路。

如图1所示,MGC(如GTSOFTX3000)一个端贞包插两个传送堆址(10.11.23.14:

2905和10.11.23.15:

2905),而SG一个鵡点也0SH个传送堆址(10.11.23.16:

2904#10.11.23.17:

2904)。

图1SCTPjRflH

lit两个SI胃决定了一个例联,该条通路(PathO、Path仁Path2和Path3)o根摇数据配置可以績定此4条通路的选聲方式,如图2所示。

图中定义了4条通路.而且首览通路为PathO:

PathO:

本竭传送堆址1(10.11.23.14:

2905)发送SCTP分组到对鶴传送堆址1(10.11.23.16:

2904)o

Pathl:

本竭传送堆址1(10.11.23.14:

2905)发送SCTP分组到对竭传送堆址2(10.11.23.17:

2904)o

Path2:

本端传送堆址2(10.11.23.15:

2905)发送SCTP分组到对竭传送堆址1(10.11.23.16:

2904)o

Path3:

本端传送览址2(10.11.23.15:

2905)发送SCTP分组男对竭传送堆址2(10.11.23.17:

2904)0

端贞发送的SCTP工作原理为:

本竭点传送堆址A发送的SCTP0jiS首选ii路发8對对端端点。

当首选通路出aaiB后,SCTP可以自动切換男其他备用通路上,优先切换对肃竭点的传送堆址,再次切換本竭38虑的传送堆址。

SCTP定义了0践消息(HeartBeat)。

当某条通路空用时,本SSCTP用户娶来SCTP生成相应的o践消息并通asi路发送到对常曙点,而对竭竭点必须立即发回对应的心践爾汰消息。

这种机胃放用来精簡濾量回路时1RTT(RoundTripTime)F而且可以随时监视假尿的可用情加和保持SCTPIB联的澈活状态。

图2谕定通路览择方式曲数据配置

5.TSN和SSN

传输K序号TSN(TransmissionSequenceNumber)SCTP使用TSN机胃实现敷据的请从传输。

一个(S联的一幫为本曙发送的毎个数据块ii序分配一个基于初始TSN的32位顺序号,以便对常收到时进TSN是基于护的。

液IS序号SSN(StreamSequenceNumber)

SCTP为本端在这个潼中发送的毎个数据块H序分配一个16位SSN,以便保if潼的顺序传递。

衽假联建立时,所有流中的SSN褂是从0开始。

当SSN81465535后,剧接下来的SSN为0。

TSN和SSN的分配是相互独立的。

6.拥塞窗口CWND(ConoestionWindow)

SCTP也是一个滑动窗口»«,捌塞窗口是针对每个目的览址錐护的,它会根据网络状况调节。

当目的堆址的发送未址实消息长figil其CWND时,竭胃葡停止向这个览址发送8So

7.接收窗口RWND(ReceiveWindow)

RWND用来描述一个(8联对竭的接收媛冲区大小。

假联建立垃程中,双方僉交换披ft的初始RWND。

RWND会根据数摒发送、证实的情况即时划变化。

RWND的大小限制了SCTP可以发送的数据的大小。

当RWND等于0时,SCTP还可以发送一个数据报,以便通iiil实消息得知对方缓冲区的变化,直到ISaCWND的限匍。

8.传输控HftTCB(TransmissionControlBlock)

TCB是一种部数据结构,是一个SCTP漏点为它与其他常点之同巳经启动的每一个假联生成的。

TCBggS点的所有状态、操作信息,便于维护和管理相瓯的假联。

SCTPft能

如图所示,SCTP的功能主耍包詰:

例联的建立和关团、流消息顺序递交.用户数据分段.证实和邀免JI塞、消息块绑定、分组的有效性和通路管理。

流内顺序递交

偶联的建立和关闭

用户数据分段

证实和谨免拥塞

数据块绑定

分组的有效性

通路管理

SSCTP功能示意图

仁例联的建立利关閒

(S联的建立是由SCTP用户(JDM2UA、M3UA等)发起靖*来启动的。

而且建立fi程相对于TCP连接而言比较复杂,是个“皿次提手”过程,并用對了“COOKIE”的机胃。

COOKIE是一个含有端点初始信息和91密信息的数据块,通信的双方在关联建立时需娶处理并交换,从而flttftsi的安全性,防止拒鋭股务和伪装等漕在曲攻击。

sctp提供了对ASflS的正常的关闲程序,它必须根据SCTP用户的堵求来执行.当懿SCTP也提桃一种菲正常(即中止)程序,中止程序的执打质可以根ffiSCTP用户的鎮来来启动,也可以由SCTP林放检査出差错来中止。

SCTP不支持半扌J开狀态(即一常可以在另一甫结東后址续发送S«)o无论是耶个竭点执行了关团程序・例联的两第部应停止接受从SCTP用户发来球求原垮。

2、流消息顺序递交

SCTP提Staffi报的顺序传递,顺序传連的数据报助须放在一个“ST中传递。

潼是

K序传1S的基石。

通08,sctp稱数据的iUfl传输的有序递交分fit两种不同IISosctp使用TSNJi羁实STSffi的确汰传输,使用流号和SSN(S«序号)剧实a®ffi的有序递交。

当SCTP收到数据的SSN连续的时候,SCTP聽可以將数据向SCTP用户递交.而不用等到数摒的TSN号连续以后才fiSCTP用户迪交。

当一个蘆被团塞时,期里的下一个连续的SCTP用户消息可以从另外的液上进行递交。

SCTP也提供非顺序递交的业务,接收男的用户消息可以便用这神方衣立即递交到SCTP用户,而不需娶保证其接收JI序。

3s用户数据分段

SCTPitit对传JSSBlt大PMTU(PathMaximumTransmissiONUnit)的检澳,实现在SCTP层将超大用户数据分片打內,魅免在IP层的多次分片、重组,可以减少IP层的数据负担。

在发送竭,SCTP可以对大的用户数据报进打分片以爾保SCTP数据报传递到低层时适合通路MTU(MaximumTransmissionUnit)©

在按收竭,SCTP稱分片重组为完整的用户数据报,然后传递给SCTP用户。

4、证实和厳免拥塞

证实和重传是»«8证传«nJR性的第略,SCTP也一样。

证实机制是SCTP保证传输可靠性的基石。

避免册塞(0袭了TCP的窗口机制,递行合适的潼II控劃。

?

?

SCTP在1?

数ffi(SS分片或未分片的用户数据报)发送给麻层之前顺序堆为之分配一个发送Iff#(TSNh

TSN和SSN($R序号)是相互独立的,TSN用于保11传输的可靠性,SSN用于保证流消息的II序传递。

TSN和SSN在功能上使可靠传迪和H序传递分开。

接收端11实所有收到的TSNs,即使其中有些尚未收到。

內重发功能负贾TSN的证实,还负贡拥塞消険。

5、消息块绑定

如果长度很短的用户很大一个SCTP消恩头,其传递效率会很低,因此,SCTP將几个用户数竭绑定在一个SCTP报文里面传输,以提髙带宽的利用率。

SCTP分组由公共分组头和一个/多个18息块组成,信息块可以是用户数据,也可以是SCTP控胃信息。

SCTP用户能侈可选堆使用議绑助能,决定是否将多个用户数据报攔绑在一个SCTP分组中。

为提高效率,拥塞/重发时,攔绑助能可能仍彼执行,即便用户巳经禁止H绑。

6、分组的有效性

分组的有效性是SCTP提供无差第传输的基石。

SCTP分组的公共分组头包含一个验证标签(VerificATIonTag)和一个可选的32位校验码(Checksum)。

验证标签的值由僧联两肃在例联启动时选择。

如果收男的分组中如果没有期望的骏if标签值,按收幫将丢弃这个分组,以阻止攻击和失效的SCTP分组。

校验玛由SCTP分组的发送方按置,以提供附10的保护,用来避免由网络造质的数据差策。

接收竭将丢弃內含无效的SCTP分组。

7s通路管理

发送端的SCTP用户能鸟使用一组传送地址作为SCTP分组的目的览。

SCTP管理ft能可以根据SCTP用户的指令和当甫合格的目的堆集合的可这性狀矗,为每个发送的SCTP分组选择一个目的堆传送览址。

当其他分组业务量不能完全表明可迭性时,通路管理功能可以逋址心践消息来监视對某个目的地堆址的可达性,并当任何对甫传送堆址的可达性发生变化时.向SCTP用户提通路功能也用来在IS联建立时.向对舞报告合格的本竭传送堆址集合,并扭从对竭返回的传送堆址报告给本堆的SCTP用户。

在假联建立BL为毎个SCTPis点定义一个首选通路,用来正常情况下发送SCTP分组。

在接收常,通路管理功能在处理SCTP分组前,用来動证入同的SCTP分组)8于的fl联是否存在。

SCTP基本信令浦程

1例联的建立和发送潼程

SCTP常点A启动建立債欢,并向端点B发送一个用户消息,H后箱点B向A发送两个用户消息。

(假定这些消息没有關绑和分段)。

信令沆程如图1所示。

图1倒坎建立st程消息交互图

(1)SSA必建一个数据结构TCB(传输控制块)来越述即将发起的这个假联(包含基本信息),於后向常点B发gINIT数据块。

INIT数据块中主要內詰如下參敬:

启动标签(InitiateTag):

对删证标签,如设为Tag_AoTajA是All34294967295中的一个廠机数。

输岀浹数量(OS):

本靖点期望的最大出局潼的数量。

输入SSI(MIS):

本常贞允幷入局潼的最大数量。

(2)幫点B收SINIT消息后,立即用INITACK应。

INITACK数据块中劫须

带有如下参数:

目曲堆IP堆址:

按置ffilNIT数竭块的起源IP地址。

启动标签(InitiateTag):

按置成Tag_Bo

狀态COOKIE(STATECOOKIE):

根摇例联的基本信息生fij—个TCB,不过这个TCB是一个WTCBofi个TCB生成以后,将其中的必要信息(包含一个COOKIE生成的时同戳、COOKIE的生命期)和一个本端的密钥通过RFC2401描述的算法廿算fit—个32MAC(这种廿算是不可逆的)。

功要信息和MAC组合成STATECOOKIE参数。

本常点传送堆址。

最大入局滝的数量。

最大岀局這的数量。

(3)SSA收到INITACK后,首先停止INIT定WJfCOOKIE-WAIT状去,S

后发送COOKIEECHO数据块,稠收到INITACK数据块中的STATECOOKIE参数原封带回。

最后竭点A启动COOKIE定时器并进入COOKIE-ECHOED状态。

(4)端点B收到COOKIEECHOfi据块后,进UCOOKIE»So»STATECOOKIE中的TCB部分利本端密钥根ffiRFC2401«MAC算法进打廿算.得出的MAC和STATECOOKIE中携带的MAC进行比较。

如果不同U丢弃这个消息;如果相同,J8取出TCB部分的时间欲,和当看时间是否巳经讯过TCOOKIE的生命期。

如果是,同样丢弃。

否)1根ffiTCB中的信息建立一个和端A的例联。

端点B務状态旺入ESTABLISHED,并发出COOKIEACK8据块。

竭点B0SCTP用户发送SMUNCIATIONUP通知。

(5)端戌A向螺点B发送一个DATA启3T3-RTS定时器。

DATA数据块中

必痕带有如下参数:

TSN:

DATA数据块的初始TSN。

滝标观符(StreamIdentifier,:

用户于的流,假坦澹标识符为0。

隕序鸥(StreamSequenceNumber):

所在浦中的用户数据的触序。

垓字段从0S65535o

用户数竭(UserData):

携带用户荷。

(6)端点B收SDATA数摇块后,®0SACK数抿块。

SACK数据块中必须带有如下参数:

累积证实TSN标签(CumulativeTSNAck):

竭点A的初始TSN。

间隔块(GapAckBlock):

此値为0。

甫点A收9SACK數据块后,停止T3-RTX定时器。

(7)端贞B向端贞A发送第一个DATA数据块。

DATA中必须带有如下参ft:

TSN:

常贞B发岀DATA的初始TSN。

潼标iR(StreamIdentifier):

用户于的流,标观符为0。

it隕序雪(StreamSequenceNumber):

gj在流中的用户数摒的顺序。

序玛为0。

用户数霍(UserData):

携带用户数摇曲荷。

(8)端点B向端贞A发送第二个DATA败据块。

DATA数据块中必须带有如卞参ft:

TSN:

甫点B发出DATA数摇块的初始TSN+1。

潼标Mff(StreamIdentifier):

用户XKfl于的流,标识符为0。

汕序B(StreamSequenceNumber):

R在it中的用户序。

JltHXK序玛为1。

用户数Jg(UserData):

携带用户荷。

(9)端胃A收SDATA数据块后,£0SACK数据块。

SACK数据块中必须带有如下tft:

累稅证实TSN标签(CumulativeTSNAck):

竭点B的初始TSN。

同隔块(GapAckBlock):

比值为0。

2例联关BJiS程

一个竭点退出IS务时,需要停止它的例联。

例联的停止使用S»»g:

假联的中止»程(非正常关冈)和假联的正常关冈潼程。

例联的中止(非正常关ffl)nJ以在任何未完fit期同进行,IS联的两竭蜀舍弃数据并且不提交到对端。

就种方法不考虏数摇曲安全。

的中止步骤比较简单:

发起38点向对甫曙点发送ABORT敬据块,发送的SCTP分组中助须填上对端竭虑的险证标签,而且不在ABORT数据块中搁绑任何DATA数摇;接收端点收到ABORT»据块后,进行验加标签的检査。

如果验证标签与本鶴骏证标签相同,接收常点从记录上渭除该U联,并向SCTP用户报告例联的停止。

例联的正常关团:

任何一个端点执fiiE®关0)程序时,假联的两58將停止接受从其SCTP用户发来的新数掘.并且在发送或接收到SHUTDOWN数据块时,JC分组中的数据迪交SSCTP用户。

例联的关血可以保证所有两竭的未发送、发送未证实数据得到发送和证实后再冥jtflSo

Erxipoint

(1)SHUTDOWN"

w⑵SHUTDOWNACK

⑶SHUTDOWNCOMPLETE

ErxipcMntA

图2備坎正常关团消息交互图

例联的正常关团步«®T:

(1)假联关团发起竭点A的SCTP用户BSCTP发送萌求SHUTDOWN原因。

SCTPfl联UESTABLISHED状SffASHUTDOWN-PENDING状态。

在这个状&SCTP不接受SCTP用户在这个債联上的任何数摒发送JJ求。

同Bt等待曙点A所有发送未ii实曲数竭得舅端克B的证实。

当所有幫点A发送未证实数据得男证实•!

!

旬竭胃B发送SHUTDOWN数据块。

常点A启动T2-shutdown定时器进入SHUTDOWN-SENT状态。

启3T2-shutdown定时器的目的是等待竭贞B发回的SHUTDOWN-ACK数据块,如果定时器超时,剧端点A必须重新发送SHUTDOWNSSfto

(2)常贞B收到SHUTDOWN消息后,进入SHOUTDOWN-RECEIVED状&不再接收从SCTP用户发来的的新数据.并且检査SStt的累积TSNACK字段,验证所有未完成的DATA数据块已经»SHUTDOWN的发送方接收。

当常点B所有未发送数据和发送未址实数据得到发送和证实后,发送SHUTDOWNACK数据块并启动本$T2-SHUTD0WN定时器,并且进入SHUTDOWN-ACK-SENT状杏。

如果定时器讯时了,端点BJS重新发送SHUTDOWNACK数掘块。

(3)鶴点A收到SHUTDOWNACK消息后,停止T2-shutdown定时器,并且向期点B发送SHUTDOWNPLETE数据块,并清除例联的所有圮录。

常点B收到SHUTDOWNPLFE9据块后,吻证是否处于SHUTDOWN-ACK-SENT状态。

如果不是处于垓状奈,剧丢弃该数据块;如果常点处于SHUTDOWN-ACK-SENT状态■端点B则停止T2-shutdown定时器并清除例联的所有记录,进入CLOSED狀态。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2