网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

SCTP数据包结构

更新时间:2026年03月27日   作者:spoto   标签(Tag):

先决条件:SCTP,以及SCTP与TCP之间的区别

流控制传输协议(SCTP)是一种面向连接的网络协议,用于在两个已建立连接的端点之间同时传输多个数据流。

SCTP数据包字段

传输序列号:在TCP传输控制协议中,数据的单位就是“数据包”。字节因为这是一种以字节为单位的协议。因此,TCP通过为数据单元分配序列号来控制数据的传输。不过,SCTP中的数据单元是以……为单位来处理的。数据块它可能与发送过程产生的消息之间存在一一对应的关系,也可能不存在这种关系。(这种情况是由于数据分片导致的。)因此,在SCTP中,数据块是通过编号来标识的。传输序列号(TSN)为了控制数据传输,每个TSN都是一个唯一的32位数字,该数字被存储在数据块的头部中。TSN的值介于(2^32 - 1)之间。

2. 流标识符 (SI):在SCTP中,每个关联中都有多个数据流。每个数据流都需要通过一个流标识符来标识。这个流标识符是一个16位的数字,从0开始计数。该标识符被存储在相应数据块的头部中。这样,在接收数据块后,就可以将其正确地放入对应的数据流中。因此,SCTP使用流标识符来区分不同的数据流。

3. 流序列号:SSNSCTP使用流序列号来区分属于同一流的各个数据块。在目的地,接收到的数据块会按照正确的顺序被传递给相应的流。之所以能够实现这一点,是因为SCTP为每个数据块都分配了一个流序列号,除了SI之外。

4. 数据包:SCTP数据包的设计与TCP完全不同。在SCTP中,数据以数据块的形式进行传输,而控制信息则作为独立的控制块来传输。下图展示了SCTP数据包的架构。

 

SCTP数据包的作用与TCP数据包相同。在SCTP中,控制信息并不包含在头部中,而是被包含在控制数据块中。这些控制数据块有不同类型。在SCTP中,数据并不是作为一个整体来处理的,而是以多个数据块的形式存在,每个数据块可以属于不同的流。与TCP不同,SCTP中没有选项部分。因此,我们需要定义新的数据块类型来处理SCTP中的选项。

在SCTP中,通用头部的长度为12字节,而TCP中的长度为20字节。 在SCTP中,校验和的长度为32位,而TCP中的校验和长度则仅为16位。 在SCTP数据包中,验证标签字段被用作关联标识符。 每个关联实体都由一个独特的验证标签来标识。 在 SCTP 中,我们可以通过使用不同的 IP 地址来实现多宿主功能。 在SCTP数据包中,会包含多个不同的数据块。每个数据块都由TSN、IS和SSN来标识。 在SCTP中,控制信息和数据信息被分别以不同的块形式进行传输。 在SCTP中,TSN、IS和SSN这些标识符仅用于标识数据块。 这些控制块从不使用这三个标识符。 在SCTP中,数据被存储在数据块、流和数据包中。

这三者之间的关系如下:

  • 一个协会可以发送很多这样的信息/文件。数据包。
  • 每一个数据包/信息包可能包含许多大块或片段。
  • 这些块可能属于不同的类别/类型。流。

5. 致谢编号:在TCP中,确认号是以字节为单位的,它们实际上指的是序列号。而在SCTP中,确认号则是以数据块为单位来处理的,它们所代表的实际上是TSN。在SCTP中,控制数据块负责携带控制信息。这些控制数据块并不需要TSN来进行标识。这些控制数据块会被另一种适当类型的数据块来确认。因此,对于SCTP中的控制数据块来说,序列号或确认号其实是不必要的。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料