1、ICS 33.040.30 M 12 中华人民ft -、不日GB 国国家标准GB/T 28510-2012 流控制传送协议。CTP)Technical specification of stream control transmission protocol (IETF RFC 2960: 2000 , Stream control transmission protocol , NEQ) 2012-06-29发布中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会2012-10-01实施发布GB/T 28510-2012 目次前言.皿1 范围-2 规范性引用文件.3 术语和定义、缩
2、略语13. 1 术语和定义3.2 缩略语24 SCTP的功能描述24.1 概述24.2 SCTP的结构34.3 SCTP的功能35 SCTP原语定义55.1 概述55.2 高层协议(ULP)向SCTP发送的请求原语55.3 SCTP向高层协议发送的通知原语116 SCTP分组的格式以及参数定义136.1 SCTP分组格式136.2 SCTP数据块的格式四7 SCTP端点的维护的参数和相关建议值307.1 概述307.2 对应每个SCTP实例所需的参数 30 7.3 对应每个偶联SCTP端点所需的参数 m 7.4 对应每个传送地址所需的参数317.5 需要的通用参数327.6 SCTP参数的建议
3、值328 SCTP的程序n8.1 概述.328.2 偶联的建立程序328.3 数据的传递程序398.4 拥塞控制程序478. 5 故障管理程序518. 6 偶联关闭程序M附录A(资料性附录)SCTP的状态转移图57附录B(资料性附录)SCTP程序示例60B.1 偶联正常建立和数据发送的示例 60 B.2 偶联重新启动的示例 61 GB/T 28510-2012 B.3 延时证实的示例 m B.4 使用SACK报告间隔的示例62B.5 定时器应用的示例 m 附录C(资料性附录)明确的拥塞通知64参考文献H G8/T 28510-2012 前言本标准按照GB/T1. 1一2009给出的规则起草。本
4、标准使用重新起草法参考IETFRFC 2960: 2000(流传送控制协议CSCTP)编制。本标准与IETFRFC 2960的一致性程度为非等效,主要差异如下:一按照汉语习惯对一些编排格式进行了修改;一一将SCTP的状态转移图和SCTP程序调整为资料性附录;一一一未采纳IETFRFC 2960中第11章安全考虑、第13章IANA考虑的内容。本标准由中华人民共和国工业和信息化部提出。本标准由中国通信标准化协会归口。本标准起草单位:工业和信息化部电信研究院、中兴通讯股份有限公司、华为技术有限公司、上海贝尔股份有限公司。本标准主要起草人:吕军、续合元、张宜、高峰、肖缸、林铭、吕严、李海花、王妮娜。m
5、皿G/T 28510-2012 流控制传送协议CSCTP)1 范围本标准规定了信令流控制传送协议(SCTP)的功能、原语、SCTP分组的格式以及参数定义、SCTP端点的维护的参数及相关建议值及SCTP的程序。本标准主要适用于完成NO.7信令与IP网互通的信令网关设备,以及IP网用于呼叫控制的软交换交换机等设备。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。IETF RFC 1191 通路中最大传送单元(MTU)的发现(PathMTU discovery) IETF R
6、FC 1123对互联网主机的要求应用和支持(Requirementsfor Internet Hosts-Appli-cation and support) IETF RFC 1750 出于安全目的的随机建议(Randomnessrecommendations for security) IETF RFC 1981 用于IPV6的通路MTU的发l!ll(PathMTU Discovery for IP version 6) IETF RFC 2104 HMAC:消息鉴权的关键字散列法(HMAC:Keyed-Hashing for message au thentication) IETF RF
7、C 2460 网际互联协议版本6的规范(Internetprotocol , version 6 (IPv6) Specification) IETF RFC 2481 在IP层中增加明确地拥塞通知(ECN)的建议(Aproposal to add explicit con gestion notification (ECN) to IP) IETF RFC 2581 TCP拥塞控制(TCPcongestion controD 3 术语和定义、缩略语3. 1 术语和定义下列术语和定义适用于本文件。3. 1. 1 SCTP偶联SCTP association 在两个SCTP端点间的一个对应关系,
8、它包括了两个SCTP端点,以及包括验证标签和传送顺序号码等信息在内的协议状态信息,一个偶联可以由使用该偶联的SCTP端点用传送地址来唯一识别,在任何时候两个SCTP端点间都不会有多于一个的偶联。3.1.2 SCTP端点SCTP endpoint SCTP分组中逻辑的接收方或发送方,在个多归属的主机上,一个SCTP端点可以由对端主机表示为SCTP分组可以发送到的一组合格的目的地传送地址,或者是可以收到SCTP分组的一组合格的起源传送地址。一个SCTP端点使用的所有传送地址应使用相同的端口号,但可以使用多个IP地址。SCTP端点使用的传送地址应是唯一的。GB/T 28510一20123. 1.3
9、流stream从两个SCTP端点建立的一个单向逻辑通道,对于顺序递交业务,在这个通道中所有的用户消息都应按照顺序进行递交。3. 1.4 传迭地址transport address 用网络层地址,传送层协议和传送层端口号定义的,当SCTP在IP上运行时,传送地址就是由IP地址和SCTP端口号的组合来定义的,这里SCTP就充当传送协议。3.2 缩略语下列缩略语适用于本文件。CWR ECNE ID MAC MTU M2UA M2PA M3UA NAT PMTU! RTO RTT RTTV SCTP SIP SRTT SUA TCB TCP TLV TSN ULP 4 SCTP的功能描述4.1 概述信
10、令传送中应用的SCTP协议主要用来在无连接的网络上传送PSTN信令消息,该协议可以用来在IP网上提供可靠的数据传送协议。SCTP具有如下功能:2 一一在确认方式下,无差错、无重复地传送用户数据;一一一根据通路的MTU的限制,进行用户数据的分段;在多个流上保证用户消息的顺序递交;一一将多个用户的消息复用到一个SCTP的数据块中;一一利用SCTP偶联的机制(在偶联的一端或两端提供多归属的机制)来提供网络级的保证;GB/T 28510-2012 一-SCTP的设计中还包含了避免拥塞的功能和避免遭受泛播和匿名的攻击。SCTP的结构SCTP位于SCTP用户应用和元连接网络业务层之间,这种元连接的网络可以
11、是IP网络或者其他的网络。本标准规定的SCTP协议主要是运行在IP网络上的。SCTP协议通过在两个SCTP端点间的建立的偶联,来为两个SCTP用户之间提供可靠的消息传送业务。SCTP实际上是一个面向连接的协议,但SCTP偶联的概念要比TCP的连接具有更广的概念,SCTP协议提供了在两个SCTP端点间的一组传送地址之间建立偶联的方法,通过这些建立好的偶联,SCTP端点可以发送SCTP分组。一个SCTP偶联可以包含用多个可能的起源/目的地地址的组合,这些组合包含在每个端点的传送地址列表中。图l给出了SCTP偶联在IP网络协议虫岐孟立4.2 飞飞飞!门J川SC呻叮叮点吃吧艺艺;二二;二4V?兰:fU
12、1/f:、叫叫斗牛卢书功阳叫4概述4.3 4.3.1 SCTP用户应用证实和避免拥塞偶联的建立和释放数据块捆绑分组有效性验证通路管理3 SCTP传送业务的功能图图2GB/T 28510-2012 4.3.2 偶联的建立和释放偶联的建立是由SCTP用户发起请求来启动的,出于安全性考虑,为了避免遭受恶意的攻击,在偶联的启动过程中采用了COOKIE机制。SCTP提供了对激活偶联的正常的关闭程序,它应根据SCTP用户的请求来执行,当然SCTP也提供一种非正常的关闭程序(即中止程序),中止程序的执行既可以根据用户的请求来启动,也可以由SCTP协议检出差错来中止。SCTP不支持半打开状态(类似TC凹,即一
13、端可以在另一端结束后继续发送数据。无论是哪个端点执行了关闭程序后,偶联的两端都应停止接受从用户发来的新数据,并且只传送队列中的数据。4.3.3 流内消息的顺序递交SCTP中的流用来指示需要按顺序递交到高层协议的用户消息的序列,在同一个流中的消息需要按照其顺序进行递交。SCTP用户可以在偶联建立时规定在一个偶联中所支持的流的数量,这个数量是可以进行协商的,用户消息通过流号来进行关联。在SCTP内部,每个通过SCTP的SCTP用户消息都分配一个流顺序号码。在接收端,SCTP保证在给定的流中,消息可以按照顺序递交给SCTP用户。但当某个流由于等待下一个连续的用户消息造成闭塞时,其他流上的顺序递交不应
14、受影响。SCTP也提供非顺序递交的业务,接收到用户消息可以使用这种方式立即递交到SCTP用户,而不需要保证其发送时的顺序。4.3.4 用户数据分段在需要的时候,SCTP在发送用户消息时可以对消息进行分段,以确保发送到低层的SCTP分组长度符合通路MTU的要求。在接收方,需要把各分段重组成完整的消息后,再把消息递交给SCTP用户。4.3.5 证实和避免拥塞SCTP为每个用户数据分段或未分段的消息都分配一个传送顺序号码CTSN),TSN的分配是独立于流一级分配的流顺序号码。接收方对所有收到的TSN进行证实,尽管此时在接收序列中可能存在接收到的TSN不连续。采用这种方式,可以使可靠的递交功能可以与流
15、的顺序递交相分离。证实和拥塞避免功能可以在规定时间内没有收到证实的时候负责对分组的重发。分组的重发功能可以通过与TCP协议类似的拥塞避免程序来调节的。4.3.6 数据块捆绑SCTP分组在发送到低层时要包含一个公共的分组头,其后跟着一个或多个数据块。每个数据块中既可以包含用户数据,也可以包含SCTP控制信息。SCTP用户具有一个选项,可以请求是否把多于一个的用户消息捆绑在一个SCTP分组中进行发送。SCTP的这种数据块捆绑的功能可以在发送端生成一个完整的SCTP分组,在接收端负责分解该SCTP分组。当拥塞出现的时候,尽管用户可能请求SCTP不必进行捆绑,但SCTP的实施仍旧可以执行捆绑功能。用户
16、禁止进行捆绑只会影响到SCTP实施,即在传送SCTP分组之前产生一个较小的时延。4.3.7 分组的有效性验证每个SCTP公共分组头中都包含一个必备的验证标签字段和一个32比特长的校验宇段。验证标签的值由偶联的端点在偶联启动时选择,如果收到的分组中未包含期望的验证标签值,则舍弃该分组。4 回国-一GB/T 28510-2012 校验码则由SCTP分组的发送方设置,以提供附加的保护,用来避免由网络造成的数据差错。接收方对包含无效校验码的SCTP分组予以丢弃。4.3.8 通路管理发送方的SCTP用户能够使用一组传送地址作为SCTP分组的目的地。SCTP通路管理功能可以根据SCTP用户的指令和当前合格
17、的目的地集合的可达性状态,为每个发送的SCTP分组选择一个目的地传送地址。当用分组业务量不能完全表明可达性时,通路管理功能可以通过心跳消息来监视到某个目的地地址的可达性,并当任何远端传送地址的可达性发生变化时向SCTP用户提供指示。通路管理功能也用来在偶联建立时,向远端报告合格的本地传送地址集合,并且把从远端返回的传送地址报告给本地的SCTP用户。在偶联建立后,需要为每个SCTP端点都定义一个首选通路,用来在正常情况下发送SCTP分组,用来在正常情况下发送SCTP分组。在接收端,通路管理功能在处理SCTP分组前,用来验证入局的SCTP分组属于的偶联是否存在。5 SCTP原语定义5. 1 概述S
18、CTP通过接收高层协议CSCTP用户)发送的原语请求,为SCTP的用户提供服务,并且应当可以根据不同事件由SCTP向SCTP用户发送通知。本节章描述的原语和通知可以作为实施SCTP协议的一个参考,以下描述的高层协议接口原语功能只是一个说明性的内容,并不要求完全按照以下的说明来实现SCTP协议。不同的SCTP实施可以具有不同的ULP接口,但是SCTP应提供一个最小集的业务,用来保证所有的SCTP实施都可以支持相同的协议。5.2 高层协议CULP)向SCTP发迭的请求原语5.2.1 概述本节对ULP和SCTP之间的功能的进行归纳,使用的描述方法采用了高级程序语言所用的过程和函数调用方法。以下描述的
19、ULP原语规定了在SCTP应支持的用于互相通信的基本功能。单独的实施应按照各自格式进行对原语详细定义,它可以是在一个调用中使用这些基本功能的子集或者是用这些基本功能的组合来实现。以下的原语描述使用了如下格式:原语名(必备属性,任选属性)。返回结果:必备属性,任选属性。5. 2. 2 INITIALIZE原语原语格式:INITIA LIZE C 本端端口,本地合格的地址列表)。返回结果:本地SCTP实例名。这个原语允许SCTP启动其内部的数据结构,并为建立操作环境分配所需的资源,一旦SCTP启动后,则高层协议在与其他SCTP端点直接通信时就不需要再调用该原语。SCTP将向高层协议返回一个本地SC
20、TP实例名。必备属性:元。任选属性:以下属性类型可以通过原语进行传递z5 GB/T 28510一2012一一一本地端口:SCTP端口号,如果高层协议(ULP)希望规定;一一-本地合格的地址列表:本地SCTP端点应当绑定的地址列表。如果未包含地址列表,缺省的,所有分配给主机的所有IP地址应当是作为本地端点。如果实施支持这个任选属性,则实施应当保证本端点发送的任何SCTP分组中应当包含一个在本地合格的地址列表中规定的IP地址。5.2.3 ASSOCIATE原语偶联ID:本地处理的SCTP偶联。任选属性:无。5.2.5 ABORT原语原语格式:ABORT(偶联ID,原因编码J)。返回结果:结果编码。
21、该原语用来非正常地关闭(中止)一个偶联,本地发送队列中的用户数据将被丢弃,并发送一个ABORT数据块到对端。返回结果用来指示是否成功的中止了该偶联,如果偶联中止成功,则返回一个成功编码,如果试图中止偶联失败,则返回一个差错编码。必备属性:偶联ID:本地处理的SCTP偶联。6 GB/T 28510一2012任选属性:原因编码:传递给对端的中止原因。5.2.6 SEND原语原语格式:SEND (偶联ID,缓冲区地址,字节计数,上下文,流ID,存活时间,目的地传送地址,无序标志,无绑定标志,净荷协议ID)。返回结果:结果编码。SCTP用户使用该原语通知SCTP发送数据,返回结果用来指示是否成功的发送
22、了数据。这是通过SCTP发送用户数据的主要方法。必备属性:5. 2. 7 SET PRIMARY原语原语格式:SETPRIMARY(偶联ID,目的地传送地址,起源传送地址)。返回结果:结果编码。高层协议用该原语指示本地SCTP把给定的目的地传送地址作为发送分组的首选通路。该操作的返回结果用来指示这个操作是否成功执行。如果规定的目的地传送地址没包含在先前在ASSOCIATE原语或COMMUNICATION UP通知返回的目的地传送地址列表中,则返回一个差错。必备属性:一一一偶联ID:本地处理的SCTP偶联;一一目的地传迭地址:规定了分组要传送到已建立的偶联的对端点的一个传送地址,这个地址将作GB
23、/T 28510-2012 为今后发送分组的首选地址,这个地址将修改本地SCTP地址维护的当前首选地址信息。任选属性:一一起源传送地址:一些实施可以允许任选的把放在所有的出局IP数据报中的地址设置为缺省起源地址。5.2.8 RECEIVE原语原语格式:RECEIVE(偶联ID,缓冲区地址,缓冲区容量,流ID)。返回结果:宇节计数.传送地址,流ID,流顺序号码,部分标志位,递交号码,净荷协议ID0 该原语用来把在SCTP队列中的可用的用户消息读到由高层协议规定的缓冲区中。所读消息的字节数将作为结果返回,如果有可能根据特定的实施,也可以返回其他信息,如发送方的地址、收到的消息的流ID,以及是否有消
24、息可以进行恢复等,对于顺序的消息,他们的流顺序号码也可以被返回。根据实施,如果在调用这个原语时,队列中没有消息可用,则可以返回一个这种情况的指示,或者是先禁止执行该调用进程,直到队列中有新消息可用为止。必备属性:偶联ID:本地处理的SCTP偶联;一一缓冲区地址:高层协议指示的接收的用户消息存储的内存位置;一一缓冲区容量:将要收到的数据的最大长度,以字节为单位。任选属性:流ID:用来指示接收到的数据所在的流;一一流顺序号码.由对端SCTP发送方分配的流顺序号码;一一一部分标志位:如果返回的这个标志位设置为1,则这个RECEIVE原语中只包含了整个消息的一部分,如果这个标志位被设置,则流ID和流顺
25、序号码应也包含在这个RECEIVE原语中,如果这个标志位设置为0,则表示对这个流顺序号码而言已经没有更多需要递交的内容;一一净荷协议ID:一个32比特的无符号整数,它用来指示收到的对端的净荷协议数据的类型,这个值由SCTP作为透明的数据进行传递。5.2.9 STATUS原语8 原语格式:STATUS(偶联ID)。返回结果状态数据。该原语用来要求SCTP返回一个包含以下信息的数据块:一一偶联连接状态;一一目的地传送地址表;一目的传送地址的可达性状态;一一一当前的接收方窗口大小;一一当前的拥塞窗口大小;一未确认的DATA数据块的数量;一收到的DATA数据块的数量;首选通路;一一-首选通路上最近收到
26、的SRTT;一一-首选通路的RTO。其他目的地地址的SRTT和RTO等。必备属性:GB/T 28510-2012 偶联ID:本地处理的SCTP偶联。任选属性:元。5. 2. 10 CHANGE HEARTBEAT原语原i吾格式:CHANGEHEARTBEA T(偶联ID,目的地传送地址,新状态,周期J)。返回结果:结果编码。高层协议用该原语指示本地端点允许或禁止向指定的目的地传送地址发送心跳消息。返回原因用来指示该操作的执行情况。如果可能,当目的传送地址未空闲时,心跳程序也不执行。必备属性:一一偶联ID:本地处理的SCTP偶联;一一目的地传送地址:规定了到偶联的对端点的-个传送地址;一一新状态
27、:用来指示对该目的地传送地址的心跳状态(允许或禁止)。任选属性:周期:如果该参数存在,且允许对端目的地传送地址进行心跳测试,则用来指示心跳测试的频率,该参数的缺省值为设置值加上到目的地地址的RTO,这个参数对所有目的地起作用。5.2.11 REQUEST HEARTBEAT原语原语格式:REQUESTHEARTBEA T(偶联ID,目的地传送地址)。返回结果:结果编码。高层协议用该原语指示本地端点对给定偶联的特定目的地传送地址执行心跳程序,返回结果用来指示传送给目的地地址的HEARTBEAT数据块是否成功。必备属性:一一偶联ID:本地处理的SCTP偶联;一一目的地传送地址:HEARTBEAT消
28、息需要发送去的偶联传送地址。5. 2. 12 GET SRTT REPORT原语原语格式:GETSRTTREPORT(偶联ID,目的地传送地址)。返回结果:SRTT的取值。高层协议用该原语指示本地SCTP报告对给定偶联上规定的目的地传送地址的当前SRTT测量值,返回结果应当是一个包含最近SRTT的毫秒值(整数)。必备属性:偶联ID:本地处理的SCTP偶联;目的地传送地址:需要报告的SRTT测量的偶联传送地址。5.2.13 SET FAILURE THRESHOLD原语原语格式:SETF AILURETHRESHOLD(偶联ID,目的地传送地址,故障门限)。返回结果:结果编码。该原语允许本地SC
29、TP定制到给定目的地地址的可达性故障检出的门限Path.Max. Retrans,返回结果用来指示该操作是否成功。必备属性:一一偶联ID:本地处理的SCTP偶联;一一目的地传送地址:设置故障检出门限的偶联传送地址;一一故障门限:对该目的地地址的Path.Max. Retrans参数的新取值。9 G/T 28510-2012 5.2.14 SET PROTOCOL PARAMETERS原语原语格式:SETPROTOCOLPARAMETERS(偶联ID,目的地传送地址,协议参数列表)。返回结果:结果编码。该原语允许本地SCTP定制协议参数,返回结果用来指示该操作是否成功。必备属性:一一一偶联ID:
30、本地处理的SCTP偶联;一一协议参数列表:SCTP用户希望定制的协议参数的名称和取值(如:Association. Max. Retrans等)。任选属性:目的地传送地址:针对每乍一一数据恢复ID:在故障(failure)通知中传递给高层的标识;一缓冲区地址:高层协议指示的接收的消息存储的内存位置;一一缓冲区容量:将要收到的数据的最大长度,以字节为单位。任选属性:一一流ID:这个返回值它被设置用来指示数据需要发送到哪个流;一一一流顺序号码:这个值返回用来指示与该消息相关的流顺序号码;一一部分标志位:如果返回的这个标志位设置为1,则这个Receive原语中只包含了整个消息的一部分,如果这个标志位
31、被设置,则流ID和流顺序号码应也包含在这个Receive原语中,如果这个标志位设置为0,则表示对这个流顺序号码而言已经没有更多需要递交的内容;一一一净荷协议ID:一个32比特的无符号整数,它用来指示收到的对端的净荷协议数据的类型,这个值由SCTP作为透明的数据进行传递。10 5. 2. 17 DESTROY原i吾原语格式:DESTROY(本地SCTP实例名)。必备属性:GB/T 28510一2012本地SCTP实例名:这个值是在initialize原语中传递给应用的,它用来指示哪个SCTP实例要进行破坏。5.3 SCTP向高层协议发迭的通知原语5.3.1 概述假定SCTP提供了一种由把特定的信
32、息传递给UL原语格式:NETWORK ST A TUS CHANGE(偶联ID.目的地传送地址,新状态)。返回结果:元。在该通知原语中应包含以下必备属性:偶联ID:本地处理的SCTP偶联;一一目的地传送地址:它用来指示由于状态变化而受影响的对端点的目的地传送地址;一-新状态:用来指示新的状态。5. 3. 5 COMMUNICA TION UP通知原语SCTP用该原语通知高层协议本地SCTP已经准备好发送或接收用户数据,或者是一个丢失通信G/T 28510一2012的端点又已经恢复。具体实施时,如果ASSOCIATE是作为一个模块化功能调用,则偶联参数都作为ASSOCIATE原语的返回结果,在这
33、种情况下,COMMUNICATIONUP通知原语作为偶联的发起方是任选的。原语格式:COMMUNICA TION UPC偶联ID,状态,目的地传送地址列表,出局的流数量,入局流数量)。返回结果:元。在该通知原语中应包含以下必备属性:一一偶联ID:本地处理的SCTP偶联;一一状态:用来指示发生了哪种类型的事件;一一目的地传送地址列表:对端点的一个完整的传送地址集合;一一出局的流数量:偶联高层允许使用的最大的流数量;一一入局流数量:对端点对该偶联所请求的流数量(这个值可以与出局的流数量的取值不同)。5.3.6 COMMUNICATION LOST通知原语当SCTP完全丢失了到一个端点的通信时(用心
34、跳消息),或者是检出端点已经执行了中止操作,则SCTP将使用该原语通知高层协议。原语格式:COMMUNICA TION LOSTC偶联ID,状态,数据恢复ID,最后证实的TSN,最后发送的TSN)。返回结果:元。在该通知原语中应包括以下必备属性:一一偶联ID:本地处理的SCTP偶联;一一状态:用来指示发生了哪种类型的事件。状态可以指示故障或者是响应SHUTDOWN或ABORT请求的正常的中止事件。在该通知原语中可以包括以下任选属性:一一数据恢复ID:用来恢复未发送或未证实数据的表示;一一最后证实的TSN:I对端点最后证实的TSN;一最后发送的TSN:发送到对端的最后一个TSN。5.3.7 CO
35、MMUNICATION ERROR通知原语当SCTP从对端收到了一个ERROR数据块,并且确定需要向高层协议通知时,才使用该通知原语。原语格式:COMMUNICA TION ERRORC偶联ID,错误信息)。返回结果:元。在该通知原语中应包括以下必备属性:一一偶联ID:本地处理的SCTP偶联;一一一错误信息:用来指示错误类型并且可以任选地包含一些从ERROR数据块中收到的附加信息。5.3.8 RESTART通知原语当SCTP检出其对端已经重新启动时,则可以用该原语通知高层协议。原语格式:RESTARTC偶联ID)。返回结果:元。在该通知原语中应包括以下必备属性:偶联ID:本地处理的SCTP偶联
36、。-一-GB/T 28510-2012 5. 3. 9 SHUTDOWN COMPLETE通知原语当SCTP已经完成了关闭程序后,则用该原语通知高层协议。原语格式:SHUTDOWN COMPLETE(偶联ID)。返回结果:无。在该通知原语中应包括以下必备属性:偶联ID:本地处理的SCTP偶联。6 SCTP分组的格式以及参数定义6.1 SCTP分组格式6. 1. 1 概述SCTP分组由公共的分组头和若干数据块组成,每个数据块中既可以包含控制信息,也可以包含用户数据。除了INIT,INITACK,和SHUTDOWNCOMPLETE数据块外,其他类型的多个数据块可以捆绑在一个SCTP分组中,当然应满
37、足偶联对MTU的要求。当然这些数据块也可以不与其他数据块捆绑在一个分组中。如果一个用户消息不能放在一个SCTP分组中,则这个消息可以被分成若干个数据块。SCTP分组的格式如图3所示。2 3 o 1 2 3 4 5 6 1 8 9 0 1 2 3 4 5 6 1 890 1 234 5 6 1 8 901 公共的分组头数据块#1 : 数据块#n 图3SCTP分组的格式6. 1. 2 SCTP公共分组头字段的格式SCTP公共分组头宇段的格式如图4所示。o 1 2 3 o 1 2 3 4 5 6 1 8 9 0 1 2 3 4 5 6 1 8 9 0 1 234 5 6 1 8 9 0 1 起源端口
38、号目的地端口号分组有效性验证标签校验码图4SCTP公共分组头的格式SCTP公共分组头的各宇段含义如下所述:起源端口号(16比特的无符号整数):该端口号用来识别SCTP发送方的端口号码,接收方使用起源端口号和起源IP地址,以及目的地端口号和可能的目的地IP地址来识别属于某个偶联的分组。13 GBjT 28510一2012目的端口号(16比特的无符号整数):该SCTP端口号用来确定分组的去向。接收方主机将利用该端口号把SCTP分组解复用到正确的接收端点或应用。验证标签(32比特的元符号整数):接收到分组的接收方使用验证标签来判别发送方的这个SCTP分组的有效性。在发送方该验证标签应设置为在偶联启动
39、阶段中从对端点收到的启.动标签中的值,以下情况除外:一包含INIT数据块的分组中验证标签应为0,携带INIT块的SCTP的分组中不能包含其他数据块;在包含SHUTDOWN-COMPLETE数据块且设置了T比特的分组中,验证标签应从包含AU-nLqu qqJA吐Fhu户。巧,aOOQd1i1i1i1i选择证实(SACK); Heartbeat请求(HEARTBEAT); Heartbeat i正实(HEARTBEATACK); 中止(ABORT); 关闭(SHUTDOWN); 关闭证实(SHUTDOWNACK); 操作差错(ERROR); 状态Cookie(COOKIE ECHO); Cooki
40、e i正实(COOKIEACK) ; 为明确拥塞通知响应(ECNE)预留;(注:明确拥塞通知的描述参见附录。为降低拥塞窗口(CWR)预留;14 14 15 to 62 63 64 to 126 127 128 to 190 191 192 to 254 255 进行计算。关闭完成(SHUTDOWNCOMPLETE); IETF预留;IETF定义的数据块扩展;(注:具体参见IETFRFC 2434) IETF预留;IETF定义的数据块扩展;(注:具体参见IETFRFC 2434) IETF预留;IETF定义的数据块扩展;(注:具体参见IETFRFC 2434) IETF预留;IETF定义的数据块
41、扩展。(注:具体参见IETFRFC 2434) 2 GBjT 28510-2012 3 o 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 234 567 890 1 参数类型参数长度参数值图6任选/可变长参数格式数据块的参数类型(16比特无符号整数):参数类型宇段用来识别参数的类型,取值范围可以从0到65534065535预留给IETF进行扩展。数据块的参数长度(16比特无符号整数):参数长度宇段包含参数类型、参数长度和参数取值宇段GB/T 28510一2012在内所有字段的字节数。因此一个参数的取值字段为0,则该长度宇段应设置为4。参数长度字段不计算填充
42、字节。数据块的参数值:可变长度,参数取值宇段包含在该参数中传送的实际信息。参数的总长度(包括类型、长度和取值字段)应是4字节的整数倍,如果该长度不是4字节的整数倍,则发送方应当向数据块中填充全0的字节,这些填充的字节不计入参数长度宇段。发送方填充的字节数应不超过3个字节,接收方忽略所有的填充字节。采用这种方式编码,可以使用参数类型宇段中高两位的比特指示当端点收到不识别参数类型时所要采取的特定动作。00:表示停止处理该分组并舍弃该分组,不处理分组中任何随后的数据块;01:表示停止处理该分组并舍弃该分组,不处理分组中任何随后的数据块,并在ERROR或INITACK的不识别的参数类型字段中报告不识别
43、的参数类型;10:跳过该参数并继续处理;11:跳过该参数并继续处理,在ERROR或INITACK的不识别的参数类型字段中报告不识别的参数类型。6.2 SCTP数据块的格式6.2.1 概述本节定义了SCTP协议使用的所有数据块的格式。6.2.2 净荷数据(DATA)数据块的格式DATA数据块的格式如图7所示。2 3 o 1 2 3 4 5 6 7 890 1 2 3 4 567 890 1 2 3 4 567 890 1 类型=0备用rLBIEJ TSN 流识别符净荷协议标识符用户数据图7DATA数据块格式DATA数据块中各字段含义如下所述z备用比特(5比特):应当设置为全0,在接收方忽略。数据
44、块长度流顺序号码U比特(1比特):称为非顺序比特。如果该比特设置为1,则指示这是一个非顺序的DATA数据块。则不需要给该数据块分配流顺序号码。所有接收方应忽略流顺序号码。在重新组装完成后(如果需要),非顺序的数据块不需要尝试任何重新排序的过程,可以由接收方直接递交到高层;如果一个非顺序的用户消息被分段,则消息的每个分段中的U比特应被设置为1。B比特(1比特):称为分段开始比特,如果该比特被设置,则指示这是用户消息的第一个分段。E比特(l比特):称为分段结束比特。如果该比特被设置,则指示这是用户消息的最后一个分段。一个未分段的用户消息应当把所有的B和E比特设置为1。如果B,E比特都设置为0,则表
45、明这是一个分16 回-一-GB/T 28510-2012 段的用户消息的一个中间分段。当用户消息被分段到多个数据块中,接收方需要使用TSN对消息进行重组,这意味着给分段的用户消息的每个分段都应使用连续的TSNoBE比特的取值含义如表1所述。表1B/E比特的取值含义B E 表示的含义1 0 用户消息的第一个分段。用户消息的中间分段o 1 用户消息的最后一个分段I l 未分段的消息长度(16比特的无符号整数):该字段用来指示DATA数据块从类型宇段开始到用户数据宇段结束之间的字节数,但不包含任何填充字节,如果DATA数据块的用户数据宇段为0则长度字段设为160TSN(32比特无符号整数):该值表示该数据块的TSN,TSN的有效值从0到23210TSN的值达到4294967295后将回转到0。流标识符(16比特元符号整数):该字段用来识别用户数据属于的流。流顺序号码(16比特无符号整数):该值用来表示所在流中的用户数据的