发明名称 一种实现流控制传输协议的动态流创建方法
摘要 一种实现流控制传输协议的动态流创建方法,其特征在于,该方法包括下列步骤:形成初始协商参数;形成请求块的各字段;形成应答块的各字段;形成协商;请求端进行相应处理;以及应答端进行相应处理。本发明减少了应用在使用标准SCTP时等待空闲流的时延,降低了应用在SCTP流调度时的复杂度,完善了现有标准SCTP。
申请公布号 CN101534297B 申请公布日期 2011.11.09
申请号 CN200910078887.5 申请日期 2009.03.05
申请人 北京交通大学 发明人 杨冬;薛淼;张宏科;董平;苏伟;董振辉;宋飞;王泼
分类号 H04L29/06(2006.01)I;H04L12/56(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 北京王景林知识产权代理事务所 11320 代理人 王景林;梁波
主权项 一种实现流控制传输协议的动态流创建方法,其特征在于,该方法包括下列步骤:a)形成初始协商参数,初始协商参数包括以下几个字段:类型、长度和初始序列号,类型字段为16比特,表明动态流创建初始协商参数的类型,长度字段为16比特,表明动态流创建初始协商参数以字节计数的长度,初始序列号字段为32比特,表明动态流创建初始协商参数的发送端的第一个动态流创建的请求块使用的序列号;b)形成请求块的各字段,请求块包括以下几个字段:类型、标识、长度、序列号、请求流数目和若干请求流ID,类型字段为8比特,表明动态流创建的请求块的类型,标识字段为8比特,区分动态流创建的请求块和动态流创建的应答块及其它扩展应用,长度字段为16比特,表明动态流创建的请求块以字节计数的长度,序列号字段为32比特,表明在一个关联中唯一标识一个动态流创建的请求块,请求流数目字段为16比特,表明该动态流创建的请求块请求新创建的输出流数目,请求流ID为16比特,表明动态流创建的请求块请求创建的输出流ID;c)形成应答块的各字段,应答块包括以下几个字段:类型、标识、长度、序列号、应答流数目和若干应答流ID,类型字段为8比特,表明动态流创建的应答块的类型,标识字段为8比特,区分动态流创建的请求块和动态流创建的应答块及其它扩展应用,长度字段为16比特,表明动态流创建的应答块以字节计数的长度,序列号字段为32比特,表明该动态流创建的应答块是对哪一个动态流创建的请求块的应答,应答流数目字段为16比特,表明该动态流创建的应答块应答新创建的输入流数目,应答流ID为16比特,表明动态流创建的应答块应答创建的输入流ID;d)形成协商,具体为:端点A向端点B发起建立关联的请求块INIT,INIT中携带表明端点A支持动态流创建的参数;端点B如果支持动态流创建功能,则INIT ACK中携带支持动态流创建的参数,否则INIT ACK中携带Unrecognized Parameters类型的ERROR参数;e)请求端进行相应处理,具体为:接收上层请求,请求端的端点A创建动态流创建的请求块,在端点A创建动态流创建的请求块时,端点A先计算请求创建的流数目与当前关联内存在的出流数目及待创建流数目之和是否大于65536,如果大于65536,则向上层调用返回出错信息;如果小于65536,则为动态流创建的请求块分配一个序列号,序列号的初值在关联建立时在INIT块和INIT ACK块动态流创建参数中协商,序列号严格按照加1递增分配给新创建的动态流创建的请求块;如果在端点A该关联的输出方向上没有正在发送或未确认的动态流创建的请求块,发送构建好的动态流创建的请求块;否则,将该动态流创建的请求块放入待发送动态流创建的请求块队列,等待之前发送的动态流创建的请求块被确认或发生超时;动态流创建的请求块发送后,为其启动重传定时器,超时重传时间采用动态流创建的请求块传输路径的超时重传时间;当端点A收到一个动态流创建的应答块来确认一个动态流创建的请求块后,端点A停止为动态流创建的请求块启动的重传定时器,同时清零关联错误计数器和对应的路径错误计数器;如果端点A收到动态流创建的应答块,则按照应答中创建的流字段的值更新端点A对应的关联的输出流数目,开始使用新的输出流号传输数据;如果端点A收到由动态流创建的请求块引起的对端发送的错误类型为Unrecognized Chunk Type的ERROR块,则端点A禁止再发送动态流创建的请求块,并将现有的为动态流创建的请求块启动的重传定时器关闭;如果端点A收到一个乱序的动态流创建的应答块,如果应答块的序列号大于端点A已发送的最大的动态流创建的请求块的序列号,则丢弃该动态流创建的应答块;如果应答块的序列号小于端点A已收到的连续的确认的最大的动态流创建的请求块的序列号,则丢弃该动态流创建的应答块;以及,当端点A发送动态流创建的请求块后,直到对应的动态流创建的应答块返回,对应关联才使用新增加的流号;f)应答端进行相应处理,具体为:应答端的端点B判断接收的动态流创建的请求块,查询自己的配置是否支持动态流创建,如果不支持,返回错误类型为Unrecognized Chunk Type的ERROR块,跳过对该请求块的处理;如果支持,端点B在对应的关联中维持一个期望收到的动态流创建的请求块的序列号的值ESN,同时保存一个最近发送的动态流创建的应答块,如果接收到的动态流创建的请求块的序列号为ESN‑1,则重发保存的动态流创建的应答块;如果收到的动态流创建的请求块的序列号小于ESN‑1或者大于ESN,丢弃该动态流创建的请求块;如果收到的动态流创建的请求块的序列号等于ESN,则端点B创建一个新的动态流创建的应答块,将动态流创建的请求块的序列号字段的值拷贝到动态流创建的应答块的序列号字段,同时分配资源生成其他字段依次填充,向端点A发送该动态流创建的应答块,同时将更新保存的最近发送的动态流创建的应答块;端点B如果受资源限制不响应动态流创建的请求块,则生成错误类型为Out of Resource的ERROR块,并发送到端点A。
地址 100044 北京市海淀区上园村3号