第4章_sctp协议内容摘要:

DATA ARRIVE 当一个用户消息被成功接收,并且 准备向 SCTP 用户递交时, SCTP 使用该原语通知高层用户。 如下信息会被传递: -偶联 ID:本地处理的 SCTP 偶联 -流 ID:用来指示数据从哪个流上接收到的。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 411 原语名 功能 SEND FAILURE 当一个消息不能递交时, SCTP 使用该原语通知 SCTP 用户。 如下信息会被传递: -偶联 ID:本地处理的 SCTP 偶联 -数据恢复 ID:用来恢复未发送和未证实数据的标识。 -原语编码:用来指示不能递交的原因,如长度过长、消息存活时间过期等。 NETWORK STATUS CHANGE 当目的地传送地址被标为未激活(如 SCTP 检测出故障)或标记为激活时( SCTP 检测出故障恢复), SCTP 使用该原语通知 SCTP 用户。 如下信息会被传递: -偶联:本地处理的 SCTP 偶联 -目的地传送地址:指示由于状态变化而影响的对端端点的目的地传送地址。 -新状态:指示新的状态。 COMMUNCIATION UP SCTP 用该原语通知 SCTP 用户,指示本地 SCTP 已经准备好发送或接收SCTP 分组,或者时一个丢失通信的端点又已经恢复。 如下信息会被传递: -偶联 ID:本地处理的 SCTP 偶联 -状态:指示发生了哪种类型的事件 -目的地传送地址列表:对 端端点的传送地址列表 -出局流数量: SCTP 用户允许使用的最大的流数量 -入局流数量:对端端点对该偶联所请求的流数量,此值可以与出局的流数量取值不同。 COMMUNICATION LOST 当 SCTP 完全丢失了到某一个端点的通信时(用心跳消息),或者是检测出端点已经执行了操作, SCTP 使用该原语通知 SCTP 用户。 如下信息会被传递: -偶联 ID:本地处理的 SCTP 偶联 -状态:指示发生了哪种类型的事件。 状态可以指示故障或者是响应SHUTDOWN或 ABORT 请求原语的中止事件。 -数据恢复 ID:用来指示恢复 未发送或证实数据 -最后证实的 TSN:对对端端点最后证实的 TSN -最后发送的 TSN:发送到对端端点最后一个 TSN HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 412 原语名 功能 COMMUNICATION ERROR 当 SCTP 从对端端点收到了一个 ERROR 数据块,并且确定需要通知高层用户时,才使用该通知原语。 如下信息会被传递: -偶联 ID:本地处理的 SCTP 偶联 -错误信息:指示错误类型并且可以任选地包含一些从 ERROR 数据块中收到的附加信息。 RESTART 当 SCTP 检测出对端端点已经重新启动时,使用该原语通知 SCTP 用户。 偶联 ID 会被传递。 SHUTDOWN COMPLETE 当本地 SCTP 已经完成了偶联关闭后,是使用此原语通知 SCTP 用户。 本地处理的 SCTP 偶联 ID 会被传递。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 413 SCTP协议消息 消息结构 每个 SCTP 分组结构如所 图 44示。 Chunk Type Chunk Flags Chunk LengthChunk ValueChunk Type Chunk Flags Chunk LengthChunk ValueChecksumVerification TagSource Port Number Destination Port Number16 bits 16 bitsCommonHeaderChunk 1Chunk n 图 44 SCTP分组结构 一个 SCTP分组含了一个公共的分组头( Common Header)和若干数据块( Chunk),每个数据块中既可以包含控制信息,也可以包含用户数据。 除了 INIT、 INIT ACK 和SHUTDOWN COMPLETE数据块外,其他类型的多个数据块可以捆绑在一个 SCTP分组中,以满足对 MTU 大小的要求。 当然,这些数据块也可以不与其他数据块捆绑在一个分组中。 如果一个用户消息不能放在一个 SCTP分组中,这个消息可以被分成若干个数据块。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 414 1. 公共分组头的格式 SCTP 公共分组头中包括了源端口号( Source Port Number)、目的端口号( Destination Port Number)、 验证标签 ( Verification Tag)和校验码( Checksum)。  源端 口号( 16 bits) 源端口号识别 SCTP 发送端点的 SCTP 端口号。 接收方可以使用源端口号、源 IP地址、目的端口号和目的 IP 地址标识该 SCTP 分组所属的偶联。  目的端 口号( 16 bits) 目的端口号为目的端点的 SCTP 端口号。 接收主机可以使用目的端口号将 SCTP 分组解复用到正确的端点或应用中。  验证标签( 32 bits) 验证标签是偶联建立时,本端端点为这个偶联生成一个随机标识。 偶联建立过程中,双方会交换这个 TAG,到了数据传递时,发送端必须在公共分组头中带上对端的这个 TAG,以备校验。  校验码( 32 bits) SCTP 通过 对用户数据使用 ADLER32 算法,计算出一个 32 位的校验码,带在数据报中,在接收端进行同样的运算,通过检查校验码是否相等来验证用户数据是否遭到破坏。 2. 数据块字段的格式 数据块包括了块类型( Chunk Type)、块标志位( Chunk Flags)、块长度( Chunk Length)和块值( Chunk Value )。  块类型( 8 bits) 块类型定义在块值( Chunk Value)中消息所属的类型。 表 43列出了主要的块类型。 表 43 SCTP数据块消息 类型 ID 块类型 说明 0 DATA( 净数据 ) 传输的用户数据块。 1 INIT 用于发起两个端点之间的 SCTP 偶联。 2 INIT ACK 用来确认 SCTP 偶联 的发起消息( INIT)。 3 SACK 该数据块送至对端,以确认收到 DATA块,并且通知对端 DATA的接收顺序间隙。 4 HEARTBEAT 端点发送该数据块至对端,以检测当前 偶联 中定义的某一目的地址的可达性。 5 HEARTBEAT ACK 响应 HEARTBEAT 消息。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 415 ID 块类型 说明 6 ABORT 关闭偶联。 7 SHUTDOWN 偶联中的 一个端点对其偶联发起一个 GRACEFUL 关闭。 8 SHUTDOWN ACK 响应 SHUTDOWN消息,关闭程序完成时发出。 9 ERROR 通知对端, SCTP 偶联发生某种错误。 10 COOKIE ECHO 仅用于偶联发起过程,它由偶联的发起者发送至对端以完成发起程序。 11 COOKIE ACK COOKIE 证实,相对于 COOKIE ECHO 12 ECNE 保留,应用于外部环境拥塞发布回声 13 CWR 保留,应用于降低拥塞窗口 14 SHUTDOWN COMPLETE 用于关闭程序完成 时对 SHUTDOWN ACK 消息进行确认 如果接收端点不能识别块类型时,块类型最高位 2bit用于标识需要进行的各种操作,比特组合含义如 表 44所示。 表 44 接收端点不能识别块类型时,块类型最高 2bit含义 Bits(最高两位) 含义 00 停止 处理并丢弃此 SCTP 分组,不再处理该 SCTP 分组中的其他消息块。 01 停止 处理并丢弃此 SCTP 分组,不再处理该 SCTP 分组中的其他消息块,并且在“ ERROR”或“ INIT ACK”中向发起端点返回不能识别的参数。 10 跳过此数据块并继续执行。 11 跳过此数据块并继续执行,并且在“ ERROR”或“ INIT ACK”中向发起端点返回不能识别的参数。  数据块标志位( 8bit) 块标志位用法由块类型决定。 除非被置为其他值,块标记在传送过程中会被置 0 而且接收端点会 忽视 块标记。  块长度( 16bit) 块长度包括 块类型( Chunk Type)、块标记( Chunk Flags)、块长度( Chunk Length)和块值( Chunk Value),长度使用二进制表示。  块值(可变长度) 块值的内容在块中传送实际的信息,内容 由消息块类型决定。 块值的长度为不定长。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 416  说明: 数据块的总长度(包括类型、长度和取值长度)必须是 4 字节的整数倍,如果该长度不是 4字节的整数倍,则发送方应当向数据块中填充全 0的字节,这些填充的字节不计入数据块长度字段。 发送方填充的字节数应不超过 3个字节,在接收方忽略所有的填充字节。 3. 任选 /可变长参数的格式 SCTP 控制数据块(除 DATA 数据块外)的内容取值包含了数据块类型特定的数据块头所要求的字段,随后是一个或多个参数。 这些包含在一个数据块中的任选 /可变长参数都是按照参数类型、参数长度和参数取值的方式 定义的,其格式如 图 45所示。 P a r a m e t e r V a l u eP a r a m e t e r L e n g t h1 6 b i ts 1 6 b i tsP a r a m e t e r T y p e 图 45 任选 /可变长参数格式  数据块的参数类型( 16bit) 参数类型字段用来识别参数的类型,取值范围从 0 到 65534。 65535 预留给 IETF进行扩展。 如果接收端点不能识别参数类型时,参数类型中最高位 2bit用于标识需要进行的各种操作,比特组合含义如 表 45所示。 表 45 接收端点不能识别块参数类型时,参数类型最高 2bit含义 Bits(最高两位) 含义 00 停止 处理并丢弃此 SCTP分 组,不再处理该 SCTP分组中的其他消息块。 01 停止 处理并丢弃此 SCTP分组,不再处理该 SCTP分组中的其他消息块,并且在“ ERROR”或“ INIT ACK”的“不识别的参数类型”字段中报告不识别的参数类型。 10 跳过此数据块并继续执行。 11 跳过此数据块并继续执行,并且在“ ERROR”或“ INIT ACK”的“不识别的参数类型”字段中向发起端点返回不能识别的参数类型。 HUAWEI MSOFTX3000 移动软交换中心 技术手册 信令与协议分册 第 4章 SCTP 协议 417  数据块的参数长度( 16bit) 参数长度字段包含参数类型、参数长度和参数取值字段在内所有字段的字节数。 因此一个参数的取值字 段为 0,则该长度字段应设置为 4。 参数长度字段不计算填充字节。  数据块的参数值(可变长度) 参数取值字段包含在该参数中传送的实际信息。  说明: 参数的总长度(包括类型、长度和取值字段)必须是 4字节的整数倍。 如果该长度不是 4字节的整数倍,则发送方应当向数据块中填充全 0的字节,这些填充的字节不计入参数长度字段。 发送方填充的字节数应不超过 3个字节,接收方忽略所有的填充字节。 SCTP数据块的格式 1. 净荷( DATA)数据块的格式 DATA数据块格式如 图 46所示。 SSNT y p e = 00 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1R e s e r v e U B E L e n g t h T SNStr e a m I DP a y l o a d Pr o t o c o l I d e n ti f i e rU s e r D a t a0 1 2 3 图 46 DATA数据块格式  数据块类型为 0  备用比特( 5bit):设置全为 0,在。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。