SCTP中文标准.docx
- 文档编号:6726195
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:76
- 大小:829.82KB
SCTP中文标准.docx
《SCTP中文标准.docx》由会员分享,可在线阅读,更多相关《SCTP中文标准.docx(76页珍藏版)》请在冰豆网上搜索。
SCTP中文标准
中华人民共和国通信行业标准
流控制传送协议(SCTP)
YD/T1194-2002
前言
本标准是根据RFC2960(2000)建议制定的,它规定了流控制传送协议(SCTP)所使用的消息格式编码和程序。
SCTP协议主要用于在IP网中传送PSTN的信令消息,同时SCTP协议还可以用于其他的信息在IP网内传送。
本标准的附录A、附录B和附录C是资料性的附录。
本标准由信息产业部电信研究院提出并归口。
本标准起草单位:
信息产业部电信传输研究所
深圳市中兴通讯股份有限公司
华为技术有限公司
上海贝尔有限公司
本标准主要起草人:
吕军续合元张宜高峰迮超林铭吕严
中华人民共和国信息产业部2002-06-21发布2002-06-21实施
1范围
本标准规定了流控制传送协议(SCTP)所使用的消息格式编码和程序,SCTP协议主要用于在IP网中传送PSTN的信令消息和IP网内的信令消息。
本标准主要适用于完成No.7信令与IP网互通的信令网关(SG)设备,以及IP网用于呼叫控制的软交换(Soft-Switch)交换机等设备的开发、生产、引进和购买。
2规范性引用文件
下列文件中的条款通过在本标准中引用而成为本标准的条款,凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而鼓励根据本部分达成协议的各方研究是否可以使用这些文件的最小版本。
凡是不注日期的引用文件,其最新版本适用于本标准。
RFC793传送控制协议(TCP)
RFC1191发现通路MTU
RFC1123对Internet主机的要求—应用和支持
RFC1700分配的号码
RFC1750出于安全目的的随机建议
RFC1981用于IPv6的发现通路MTU
RFC1982串号的算法
RFC2373IPv6的地址结构
RFC2401Internet协议的安全结构
RFC2460Internet协议,版本6
RFC2481明确的拥塞通知
RFe258lTCP拥塞控制
RFC2960流传送控制协议(SCTP)
3名词术语和缩略语
3.1定义
SCTP偶联:
SCTP偶联实际上是在两个SCTP端点间的一个对应关系,它包括了两个SCTP端点、以及包括验证标签和传送顺序号码等信息在内的协议状态信息,一个偶联可以由使用该偶联的SCTP端点用传送地址来惟一识别,在任何时候两个SCTP端点间都不会有多于一个的偶联。
SCTP端点:
SCTP端点是SCTP分组中逻辑的接收方或发送方,在一个多归属的主机上,一个SCTP端点可以由对端主机表示为SCTP分组可以发送到的一组合格的目的地传送地址,或者是可以收到SCTP分组的一组合格的起源传送地址。
一个SCTP端点使用的所有传送地址必须使用相同的端口号,但可以使用多个IP地址。
SCTP端点使用的传送地址必须是唯一的。
流:
流是从两个SCTP端点建立的一个单向逻辑通道,对于顺序递交业务,在这个通道中所有的用户消息都必须按照顺序进行递交。
传送地址:
传送地址是用网络层地址、传送层协议和传送层端口号定义的,当SCTP在IP上运行时,传送地址就是由IP地址和SCTP端口号的组合来定义的,这里SCTP就充当传送协议。
3.2缩略语
MAC消息鉴权码
MTU最大的传送单元
RTO重发超时
RTT双向传播时间
RTTVAR双向传播时间变化
SCTP流控制传送协议
SRTT平滑的双向传输时间
TCB传送控制块
TCP传送控制协议
TLV类型-长度-取值的编码格式
TSN传送顺序号
ULP高层协议
4SCTP的功能描述
信令传送中应用的SCTP协议主要用来在无连接的网络上传送PSTN信令消息,该协议可以用来在IP网上提供可靠的数据传送协议,SCTP具有如下功能。
—在确认方式下,无差错、无重复地传送用户数据;
—根据通路的MTU的限制,进行用户数据的分段;
—在多个流上保证用户消息的顺序递交;
—将多个用户的消息复用到一个SCTP的数据块中;
—利用SCTP偶联的机制(在偶联的一端或两端提供多归属的机制)来提供网络级的保证;
—SCTP的设计中还包含了避免拥塞的功能和避免遭受泛播和匿名的攻击的功能。
4.1SCTP的结构
SCTP位于SCTP用户应用和无连接网络业务层之间,这种无连接的网络可以是IP网络或者其他的网络。
本标准规定的SCTP协议主要是运行在IP网络上的。
SCTP协议通过在两个SCTP端点间的建立的偶联,来为两个SCTP用户之间提供可靠的消息传送业务。
SCTP实际上是一个面向连接的协议,但SCTP偶联的概念要比TCP的连接具有更广的概念,SCTP协议提供了在两个SCTP端点间的一组传送地址之间建立偶联的方法,通过这些建立好的偶联,SCTP端点可以发送SCTP分组。
一个SCTP偶联可以包含用多个可能的起源/目的地地址的组合,这些组合包含在每个端点的传送地址列表中。
图1给出了SCTP偶联在IP网络协议中的示意。
图1SCTP偶联的示意
4.2SCTP的功能
SCTP传送业务可以分解成如图2所示的如下几个功能块,各功能块的用途在下节介绍。
图2SCTP传送业务的功能图
4.2.1偶联的建立和释放
偶联的建立是由SCTP用户发起请求来启动的,出于安全性考虑,为了避免遭受恶意的攻击,在偶联的启动过程中采用了COOKIE机制。
SCTP提供了对激活偶联的正常的关闭程序,它必须根据SCTP用户的请求来执行,当然SCTP也提供一种非正常的关闭程序(即:
中止程序),中止程序的执行既可以根据用户的请求来启动,也可以由SCTP协议检出差错来中止。
SCTP不支持半打开状态(类似TCP),即一端可以在另一端结束后继续发送数据。
无论是哪个端点执行丁关闭程序后,偶联的两端都应停止接收从用户发来的新数据,并且只传送队列中的数据。
4.2.2流内消息的顺序递交
SCTP中的流用来指示需要按顺序递交到高层协议的用户消息的序列,在同一个流中的消息需要按照其顺序进行递交。
SCTP用户可以在偶联建立时规定在一个偶联中所支持的流的数量,这个数量是可以进行协商的,用户消息通过流号来进行关联。
在SCTP内部,为每个通过SCTP的SCTP用户消息都分配一个流顺序号码。
在接收端,SCTP保证在给定购流中,消息可以按照顺序递交给SCTP用户。
但当某个流由于等待下一个连续的用户消息造成闭塞时,其他流上的顺序递交不应受影响。
SCTP也提供非顺序递交的业务,接收到用户消息可以使用这种方式立即递交到SCTP用户,而不需要保证其发送时的顺序。
4.2.3用户数据分段
在需要的时候,SCTP在发送用户消息时可以对消息进行分段,以确保发送到低层的SCTP分组长度挎合通路MTU的要求。
在接收方,需要把各分段重组成完整的消息后,再把消息递交给SCTP用户。
4.2.4证实和避免拥塞
SCTP为每个用户数据分段或未分段的消息都分配一个传送顺序号码(TSN),TSN的分配是独立于流一级分配的流顺序号码。
接收方对所有收到的TSN进行证实,尽管此时在接收序列中可能存在接收到的TSN不连续。
采用这种方式,可以使可靠的递交功能可以与流的顺序递交相分离。
证实和拥塞避免功能可以在规定时间内没有收到证实的时候负责对分组的重发。
分组的重发功能可以通过与TCP协议类似的拥塞避免程序来调节的。
4.2.5数据块捆绑
SCTP分组在发送到低层时要包含一个公共的分组头,其后跟着一个或多个数据块。
每个数据块中既可以包含用户数据,也可以包含SCTP控制信息。
SCTP用户具有一个选项,可以请求是否把多于一个的用户消息捆绑在一个SCTP分组中进行发送。
SCTP的这种数据块捆绑的功能可以在发送端生成千个完整的SCTP分组,在接收端负责分解该SCTP分组。
当拥塞出现的时候,尽管用户可能请求SCTP不必进行捆绑,但SCTP的实施仍旧可以执行捆绑功能。
用户禁止进行捆绑只会影响到SCTP实施,即在传送SCTP分组之前产生一个较小的时延。
4.2.6分组的有效性验证
每个SCTP公共分组头中都包含一个必备的验证标签字段和一个32bit长的校验字段。
验证标签的值由偶联的端点在偶联启动时选择,如果收到的分组中未包含期望的验证标签值,则舍弃该分组。
校验码则由SCTP分组的发送方设置,以提供附加的保护,用来避免由网络造成的数据差错。
接收方对包含无效校验码的SCTP分组予以丢弃。
4.2.7通路管理
发送方的SCTP用户能够使用一组传送地址作为SCTP分组的目的地。
SCTP通路管理功能可以根据SCTP用户的指令和当前合格的目的地集合的可达性状态,为每个发送的SCTP分组选择一个目的地传送地址。
当用分组业务量不能完全表明可达性时,通路管理功能可以通过心跳消息来监视到某个目的地地址的可达性,并当任何远端传送地址的可达性发生变化时向SCTP用户提供指示。
通路管理功能也用来在偶联建立时,向远端报告合格的本地传送地址集合,并且把从远端返回的传送地址报告给本地的SCTP用户。
在偶联建立后,需要为每个SCTP端点都定义一个首选通路,用来在正常情况下发送SCTP分组。
在接收端,通路管理功能在处理SCTP分组前,用来验证入局的SCTP分组属于的偶联是否存在。
5SCTP原语定义
SCTP通过接收高层协议(SCTP用户)发送的原语请求,为SCTP的用户提供服务,并且应当可以根据不同事件由SCTP向SCTP用户发送通知。
本节章描述的原语和通知可以作为实施SCTP协议的一个参考,以下描述的高层协议接口原语功能只是一个说明性的内容,并不要求完全按照以下的说明来实现SCTP协议。
不同的SCTP实施可以具有不同的ULP接口,但是SCTP必须提供一个最小集的业务,用来保证所有的SCTP实施都可以支持相同的协议。
5.1高层协议(ULP)向SCTP发送的请求原语
本节对ULP和SCTP之间的功能进行归纳,使用的描述方法采用了高级程序语言所用的过程和函数调用方法。
以下描述的ULP原语规定了在SCTP必须支持的用于互相通信的基本功能。
单独的实施必须按照各自格式进行,对原语详细定义,它可以是在一个调用中使用这些基本功能的子集或者是用这些基本功能的组合来实现。
以下的原语描述使用了如下格式:
原语名(必备属性,[任选属性])
返回结果:
必备属性,[任选属性]
5.1.1INITIALIZE原语
原语格式:
INITIALIZE([本端端口],[本地合格的地址列表])
返回结果:
本地SCTP实例名
这个原语允许SCTP启动其内部的数据结构,并为建立操作环境分配所需的资源,一旦SCTP启动后,则高层协议在与其他SCTP端点直接通信时就不需要再调用该原语。
SCTP将向高层协议返回一个本地SCTP实例名
必备属性:
无
任选属性:
以下属性类型可以通过原语进行传递。
—本地端口:
SCTP端口号,如果高层协议(ULP)希望规定;
—本地合格的地址列表,本地SCTP端点应当绑定的地址列表。
如果未包含地址列表,缺省的,所有分配给主机的所有IP地址应当是作为本地端点(注)。
注:
如果实施支持这个任选属性,则实施应当保证本端点发送的任何SCTP分组中应当包含一个在本地合格的地址列表中规定的IP地址。
5.1.2ASSOCIATE原语
原语格式:
ASSOCIATE(本地SCTP实例名,目的地传送地址,出局的流数量)
返回结果:
偶联ID[,目的地传送地址列表][,出局的流数量]
该原语用来由高层启动一个到特定端点的偶联。
对端点按照在该端点定义的传送地址进行规定,如果本地SCTP实例未启动,则认为该原语是一个差错。
用来进行本地处理SCTP偶联的偶联ID,作为返回结果用来返回偶联是否成功建立。
如果偶联建立不成功,则返回一个差错。
如果偶联成功建立,则返回结果中还应包含到对端的完整的传送地址列表以及本端点的出局的流数量,同时还应从返回的目的地地址中选择一个传送地址作为本地端点向对端发送SCTP分组的首选通路。
返回的“目的地传送地址列表”可以由高层协议用来改变首选通路,或者是向一个特定传送地址强制发送一个分组。
注:
如果ASSOCIATE原语用作模块化的功能调用,则偶联成功建立后,ASSOCIATE原语还可以返回除偶联ID之外的其他偶联参数;如果ASSOCIATE原语是作为一个非模块化的功能调用,则应当只返回偶联ID,其他偶联参数应当用COMMUNICATIONUP进行通知。
必备属性:
—本地SCTP实例名:
从INITIALIZE操作中获得;
—目的地传送地址:
规定了建立的偶联的对端点的一个传送地址;
—出局的流数量,高层协议希望向对端点开放的出局的流的数量。
任选属性:
无
5.1.3SHUTDOWN原语
原语格式:
SHUTDOWN(偶联ID)
返回结果:
结果编码
该原语用来正常地关闭一个偶联,任何已在本地发送队列中的用户数据都将被递交到对端。
该偶联将在收到所有发送的SCTP分组的证实后停止。
返回结果用来指示是否成功地关闭了该偶联,如果成功则返回一个成功关闭偶联编码;如果试图关闭偶联失败,则返回一个差错编码。
必备属性:
—偶联ID:
本地处理的SCTP偶联。
任选属性:
无
5.1.4ABORT原语
原语格式:
ABORT(偶联ID[,原因编码])
返回结果:
结果编码
该原语用来非正常地关闭(中止)一个偶联,本地发送队列中的用户数据将被丢弃,并发送一个ABORT数据块到对端。
返回结果用来指示是否成功地中止了该偶联,如果偶联中止成功,则返回一个成功编码;如果试图中止偶联失败,则返回一个差错编码。
必备属性:
一偶联ID:
本地处理的SCTP偶联。
任选属性:
—原因编码:
传递给对端的中止原因。
5.1.5SEND原语
原语格式:
SEND(偶联ID,缓冲区地址,字节计数[,上下文][,流ID][,存活时间][,目的地传送地址][,无序标志][,无绑定标志][,净荷协议ID])
返回结果:
结果编码
SCTP用户使用该原语通知SCTP发送数据,返回结果用来指示是否成功地发送了数据。
这是通过SCTP发送用户数据的主要方法。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—缓冲区地址:
需要发送的用户消息存储的位置;
—字节计数:
用户数据的字节数。
任选属性:
—上下文:
一个任选的32bit整数,如果这个用户消息传送失败,则在向高层协议通知发送失败时携带。
—流ID:
用来指示数据需要在哪个流上发送,如果末规定,则缺省认为流ID为0。
—存活时间:
规定用户数据的存活时间,用户数据不应在存活时间之后由SCTP发送。
这个参数可以避免传送一个过期的用户消息,如果用户数据不能在存活时间内启动传送(即通过SCTP的SEND原语发送到目的地),则SCTP应当通知高层用户。
如果SCTP已经尝试在存活时间超时前传送数据块,则用户数据就可以认为是被发送了。
注:
为了更好地支持数据块的存活时间选项,发送方可以暂停给一个出局的DATA数据块分配TSN号码。
为了简化实施,一旦TSN号码由发送方分配,则认为这个DATA数据块已经被发送,并且不受这个DATA数据块的存活时间选项的限制了。
—目的地传送地址:
规定了分组要传送到已建立的偶联的对端点的一个传送地址,只要可能,SCTP将使用这个目的地传送地址来发送分组,而不使用当前的首选通路。
—无序的标志:
如果这个标志存在,则指示用户允许把数据按照无序的方式递交给对端(即:
携带这个这个消息的所有DATA数据块的U标志位设置为1)。
—无绑定标志:
指示SCTP不要把这个用户数据同其他出局的DATA数据块捆绑在一个SCTP分组中。
当网络拥塞时,SCTP可以不考虑这个标志位是否存在而直接进行捆绑。
—净荷协议ID:
一个32bit的无符号整数,它用来指示被传送到对端的净荷协议数据的类型,这个值由SCTP作为透明的数据进行传递。
5.1.6SETPRIMARY原语
原语格式:
SETPRIMARY(偶联ID,目的地传送地址,[起源传送地址])
返回结果:
结果编码
高层协议用该原语指示本地SCTP把给定的目的地传送地址作为发送分组的首选通路。
该操作的返回结果用来指示这个操作是否成功执行。
如果规定的目的地传送地址没包含在先前ASSOCIATE原语或COMMUNICATIONUP通知返回的“目的地传送地址列表”中,则返回一个差错。
必备属性:
—偶联ID,本地处理的SCTP偶联;
—目的地传送地址:
规定了分组要传送到已建立的偶联的对端点的一个传送地址,这个地址将作为今后发送分组的首选地址,这个地址将修改本地SCTP地址维护的当前首选地址信息。
任选属性:
—起源传送地址:
一些实施可以允许任选的把放在所有的出局IP数据报中的地址设置为缺省起源地址。
5.1.7RECEIVE原语
原语格式:
RECEIVE(偶联ID,缓冲区地址,缓冲区容量[,流ID])
返回结果:
字节计数[,传送地址][,流ID][,流顺序号码][,部分标志位][,递交号码][,净荷协议ID]
该原语用来把在SCTP队列中的可用的用户消息读到由高层协议规定的缓冲区中。
所读消息的字节数将作为结果返回,如果有可能根据特定的实施,也可以返回其他信息,如发送方的地址、收到的消息的流ID,以及是否有消息可以进行恢复等。
对于顺序的消息,他们的流顺序号码也可以被返回。
根据实施,如果在调用这个原语时,队列中没有消息可用,则可以返回一个这种情况的指示,或者是先禁止执行该调用进程,直到队列中有新消息可用为止。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—缓冲区地址:
高层协议指示的接收的用户消息被存储的内存位置;
—缓冲区容量,将要收到的数据的最太长度,以字节为单位。
任选属性:
—流ID:
用来指示接收到的数据所在的流;
—流顺序号码:
由对端SCTP发送方分配的流顺序号码;
—部分标志位,如果返回的这个标志位设置为1,则这个RECEIVE原语中只包含了整个消息的一部分,如果这个标志位被设置,则流ID和流顺序号码必须也包含在这个RECEIVE原语中,如果这个标志伎设置为0,则表示对这个流顺序号码而言已经没有更多需要递交的内容;
—净荷协议ID:
一个32bit的无符号整数,它用来指示收到的对端的净荷协议数据的类型,这个值由SCTP作为透明的数据进行传递。
5.1.8STATUS原语
原语格式:
STATUS(偶联ID)
返回结果:
状态数据
该原语用来要求SCTP返回一个包含以下信息的数据块。
—偶联连接状态;
—目的地传送地址表;
—目的传送地址的可达性状态;
—当前的接收方窗口大小;
—当前的拥塞窗口大小;
—未确认的DATA数据块的数量;
—收到的DATA数据块的数量;
—首选通路;
—首选通路上最近收到的SRTT;
—首选通路的RTO;
—其他目的地地址的SRTT和RTO等。
必备属性:
—偶联ID:
本地处理的SCTP偶联。
任选属性:
无
5.1.9CHANGEHEARTBEAT原语
原语格式:
CHANGEHEARTBEAT(偶联ID,目的地传送地址,新状态[,周期])
返回结果:
结果编码
高层协议用该原语指示本地端点允许或禁止向指定的目的地传送地址发送心跳消息。
返回原因用来指示该操作的执行情况。
如果可能,当目的传送地址未空闲时,心跳程序也不执行。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—目的地传送地址:
规定了到偶联的对端点的一个传送地址;
—新状态:
用来指示对该目的地传送地址的心跳状态(允许或禁止)。
任选属性:
—周期:
如果该参数存在,且允许对端目的地传送地址进行心跳测试,则用来指示心跳测试的频率,该参数的缺省值为设置值加上到目的地地址的RTO,这个参数对所有目的地起作用。
5.1.10REQUESTHEARTBEAT原语
原语格式:
REQUESTHEARTBEAT(偶联ID,目的地传送地址)
返回结果:
结果编码
高层协议用该原语指示本地端点对给定偶联的特定目的地传送地址执行心跳程序,返回结果用来指示传送给目的地地址的HEARTBEAT数据块是否成功。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—目的地传送地址:
HEABTBEAT消息需要发送去的偶联传送地址。
5.1.11GETSRTTREPORT原语
原语格式:
GETSRTTREPORT(偶联ID,目的地传送地址)
返回结果:
SRTT的取值
高层协议用该原语指示本地SCTP报告对给定偶联上规定的目的地传送地址的当前SRTT测量值,返回结果应当是一个包含最近SRTT的毫秒值(整数)。
必备属性,
—偶联ID:
本地处理的SCTP偶联;
—目的地传送地址:
需要报告的SRTT测量的偶联传送地址。
5.1.12SETFAILURETHRESHOLD原语
原语格式:
SETFAILURETHRESHOLD(偶联ID,目的地传送地址,故障门限)
返回结果:
结果编码
该原语允许本地SCTP定制到给定目的地地址的可达性故障检出的门限“Path.Max.Retrans”,返回结果用来指示该操作是否成功。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—目的地传送地址:
设置故障检出门限的偶联传送地址。
—故障门限:
对该目的地地址的Path.Max.Retrans参数的新取值。
5.1.13SETPROTOCOLPARAMETERS原语
原语格式:
SETPROTOCOLPARAMETERS(偶联ID[,目的地传送地址,]协议参数列表)
返回结果:
结果编码
该原语允许本地SCTP定制协议参数,返回结果用来指示该操作是否成功。
必备属性:
—偶联ID:
本地处理的SCTP偶联;
—协议参数列表:
SCTP用户希望定制的协议参数的名称和取值(如:
Association.Max.Retrans等)。
任选属性:
—目的地传送地址:
针对每个目的地传送地址可以对相关的协议参数进行设置。
5.1.14RECEIVEUNSENTMESSAGE原语
原语格式:
RECEIVE_UNSENT(数据恢复ID,缓冲区地址,缓冲区容量[,流ID][,流顺序号码][,部分标志位][,净荷协议ID])
必备属性:
—数据恢复ID:
在故障(failure)通知中传递绘高层的标识;
—缓冲区地址:
高层协议指示的接收的消息所存储的内存位置;
—缓冲区容量:
将要收到的数据的最太长度,以字节为单位。
任选属性:
—流ID:
这个返回值被设置用来指示数据需要发送到哪个流;
—流顺序号码:
这个值返回用来指示与该消息相关的流顺序号码;
—部分标志位:
如果返回的这个标志位设置为1,则这个Receive原语中只包含了整个消息的一部分,如果这个标志位被设置,则流ID和流顺序号码必须也包含在这个Receive原语中,如果这个标志位设置为0,则表示对这个流顺序号码而言已经没有更多需要递交的内容;
—净荷协议ID:
一个32bit的无符号整数,它用来指示收到的对端的净荷协议数据的类型,这个值由SCTP作为透明的数据进行传递。
5.1.15RECEIVE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SCTP 中文 标准