SCTP协议算法

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SCTP协议分析算法
1.丢包:
1)首先确定指定方向报文的流向。

2)遍历该单向报文,如果满足:SCTP序号(DATA数据块的TSN)逆向跳变、IPID正向增加,也就是发生了重传的条件下,查看上游是否能找到相同的SCTP序号的报文。

如果找到,说明抓包点下游丢包,认为是重传;如果
抓包点之前查询未找到相同序号的报文,说明在上游丢包,这种情况下认
为是丢包。

3)当前向查找没有找到相同序号报文时,记录该丢失的报文信息。

2.重传:
1)先确定报文的流向。

统计该方向报文的个数。

2)遍历该单向报文,如果SCTP序号减小、IPID正向增加,在向前或向后查找时找到相同序号的报文,此时说明报文发生了重传。

查找的范围是以
当前遍历的报文为基准,向前或向后查找2000个数据包。

为了提高查找
效率,在查找的过程中,由于先前丢包导致了重传,在确定丢包点的位
置时,就不用再向前遍历。

考虑两种情况:a. 当查找的报文序号出现间
断,且间断序号是重传的报文序号时,间断点之前相邻的报文是TSN序
号正常连续增大的报文,未发生重传,该位置是丢包点,则此次遍历结
束;b. 间断点之前的报文也发生了重传,为非正常报文,说明该间断点
还不是真正的丢包点,仍要向前查找,直到满足a条件为止。

3)把遍历查找到重传包和SACK中duplicate的重传包求并集,即是所有重传包。

4)找到相同序号报文时记录重传报文信息,同时统计重传报文的个数。

3.乱序:
1)单方向考察报文,统计该方向报文个数。

2)遍历该单方向报文,两两比较,如果SCTP序号减小、IPID也减小,说明该报文发生了乱序,正常报文是SCTP序号连续增大,IPID也增大。

发现
乱序时记录该乱序报文。

3)置换该相邻乱序包,继续下一次两两比较。

4.时延抖动:
1)单方向考察报文,统计该方向报文个数。

2)遍历该单向报文,确定是否是DATA数据块,如是DATA,根据五元组(源IP、目的IP、源端口、目的端口、DSCP)查找与之对应的SACK,找到这样的DATA和SACK时,计算两者的时间差,DATA和SACK是源和目的相反
的。

记录时延信息。

5.校验和:
分为IP头校验和SCTP校验,由于预处理时已经计算了校验和,只需判断即可。

如果校验和判断数据包有错,记录该数据包。

统计总的错包数量。

6.分片:
根据SCTP协议的B比特和E比特来判断:
B比特
分段开始比特。

如果该比特被设置,则指示这是用户消息的第一个分段。

E比特
分段结束比特。

如果该比特被设置,则指示这是用户消息的最后一个分段。

10 用户消息的第一个分段
00 用户消息的中间分段
11 用户消息的最后一个分段
7.接收时间窗:
根据SCTP协议SACK数据块中的a_rwind字段。

8.流量:
单向遍历报文,分别计算每一秒的流量值。

与TCP流量算法相同。

相关文档
最新文档