龙空技术网

SCTP通用报文格式

哏号叭 118

前言:

现时朋友们对“sctp默认端口号”大体比较讲究,你们都想要知道一些“sctp默认端口号”的相关资讯。那么小编在网上汇集了一些关于“sctp默认端口号””的相关文章,希望咱们能喜欢,咱们一起来学习一下吧!

2021/4/7 SCTP通用报文格式

1/4

SCTP通用报文格式

SCTP ( Stream Control Transmission Protocol ),即流媒体控制传输协议,是一种可靠的基于无连接数据包网络如IP网络之上传输协议。他被设计用来在IP网络上传输PSTN在窄带信令消息,同时也能支持宽带信令消息的传输。

SCTP可以看作OSI层次结构中的传输层,它的上层作为SCTP用户应用,下层为分组网络IP层。

图1 SCTP所处的协议栈结构

SCTP报文格式

一个SCTP分组含了一个公共的分组头(Common Header)和若干数据块(Chunk),每个数据块中既可以包含控制信息,也可以包含用户数据。

除了INIT、INIT ACK和SHUTDOWN COMPLETE数据块外,其他类型的多个数据块可以捆绑在一个SCTP分组中,以满足对MTU大小的要求。当然,这些数据块也可以不与其他数据块捆绑在一个分组中。如果一个用户消息不能放在一个SCTP分组中,这个消息可以被分成若干个数据块。

图2 SCTP报文格式

字段 长度 描述

Source PortNumber

16比特的无符号整数

源端口号,识别SCTP发送端点的SCTP端口号。接收方可以使用源端口号、源IP地址、目的端口号和目的IP地址标识该SCTP分组所属的偶联。

2021/4/7 SCTP通用报文格式

2/4

字段 长度 描述

DestinationPortNumber

16比特的无符号整数

目的端口号,为目的端点的SCTP端口号。接收主机可以使用目的端口号将SCTP分组复用到正确的端点或应用中。

VerificationTag

32比特的无符号整数

验证标签是偶联建立时,本端端点为这个偶联生成一个随机标识。偶联建立过程中,双方会交换这个TAG,到了数据传递时,发送端必须在公共分组头中带上对端的这个TAG,以备校验。

包含INIT数据块的分组中验证标签必须为0。在包含SHUTDOWN-COMPLETE数据块且设置了T比特的分组中,验证标签必须要从包含 SHUTDOWN-ACK数据块的分组中复制。在包含ABORT数据块的分组中,验证标签必须要从触发这个ABORT发送的分组中复制。

Checksum 32比特的无符号整数

SCTP通过对用户数据使用ADLER-32算法,计算出一个32位的校验码,带在数据报中,在接收端进行同样的运算,通过检查校验码是否相等来验证用户数据是否遭到破坏。

2021/4/7 SCTP通用报文格式

3/4

字段 长度 描述

Chunk Type 8比特的无符号整数

块类型定义在块值(Chunk Value)中消息所属的类型。包括:INIT、INIT ACK、SACK、ABORT、ERROR、SHUTDOWN、COOKIE ACK等13种数据块类型。该参数的取值范围为0~254,255留作今后的扩展。数据块类型字段的编码分配如下:

0:净荷数据(DATA)1:启动(INIT)2:启动证实 (INIT ACK)3:选择证实 (SACK)4:Heartbeat请求(HEARTBEAT)5:Heartbeat证实(HEARTBEAT ACK)6:中止 (ABORT)7:关闭(SHUTDOWN)8:关闭证实(SHUTDOWN ACK)9:操作差错(ERROR)10:状态Cookie(COOKIE ECHO)11:Cookie证实(COOKIE ACK)12:为明确拥塞通知响应(ECNE)预留13:为降低拥塞窗口(CWR)预留14:关闭完成(SHUTDOWN COMPLETE)15~62:IETF预留63:IETF定义的数据块扩展64~126:IETF预留127:IETF定义的数据块扩展128~190:IETF预留191:IETF定义的数据块扩展192~254:IETF预留255:IETF定义的数据块扩展

Chunk type的高两位bit指示了收端不认识对应的chunk type的处理原则:

00:停止处理数据报并丢弃,不再处理报中的其他Chunk。01:与00相同处理外,还要在ERROR或INIT ACK中上报,原因为不认识的参数类型。10:忽略该Chunk ,继续处理数据报中的其他Chunk。11:同10相同处理外,还要在ERROR中上报,原因为不认识的Chunk类型。

ChunkFlags

8比特的无符号整数

块标志位用法由块类型决定。除非被置为其他值,块标记在传送过程中会被置0而且接收端点会忽视块标记。

ChunkLength

16比特的无符号整数

块长度用来表示包括块类型、块标记、块长度和块值在内的字节数,长度使用二进制表示。

ChunkValue

变长 块值字段是在该数据块中真正传送的信息,内容由数据块类型决定。块值的长度为不定长。

SCTP报文交互流程

2021/4/7 SCTP通用报文格式

4/4

图3 Association建立流程

图4 Association关闭流程(Ungraceful)

图5 Association关闭流程(Graceful)

图6 数据包的发送和确认流程

参考标准

标准 描述

RFC 2960 Stream Control Transmission Protocol

父主题: SCTP报文格式

本资料收集于互联网2016 © 重庆网管博客

标签: #sctp默认端口号