基于网络编码的传输控制协议的改进方法技术

技术编号:8273414 阅读:369 留言:0更新日期:2013-01-31 05:59
本发明专利技术提供了一种基于网络编码的传输控制协议的改进方法。在传输层修改了TCP协议的反馈机制,增加一个网络编码窗口,即传输层维护两个窗口:TCP窗口和网络编码窗口。数据由应用层产生,并自上而下传递到TCP窗口,网络编码窗口接受TCP窗口数据包将其缓存到缓存区。当网络编码窗口收到若干数据包后,产生指定数目编码数据包,将其传递到网络层,最后底层发送。这样能明显降低数据包重传的次数,从而提高了网络的吞吐量。

【技术实现步骤摘要】
本专利技术涉及传输控制协议的改进方法。
技术介绍
网络编码(Network Coding)是网络通信领域的一项前沿科技,网络编码理论一经提出,就引起了学术界、工业界广泛的关注。网络编码是一种融合编码和路由的信息交换技术,在传统存储转发的路由方法基础上,接收节点对接收的多个数据包进行编码,增加单次传输的信息量,从而提高网络整体性能。网络编码可以广泛应用于Ad Hoc网络(自组织网络),传感器网络、P2P (端到端)内容分发、分布式文件存储和网络安全等领域。TCP (传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP在保证可靠性上,采用超时重传和捎带确认机制。 由于无线链路的网络状况比较差,丢包率比较高,应用传统的TCP协议,需要重传大量的数据包,有时某些数据包已经被信宿收到了,但是从信宿传到信源的ACK (确认字符)传输失败,信源需要重传同样的数据包,浪费了带宽。因此在无线网络中应用TCP协议效果并不好,为了改善TCP协议的质量,在传输层采用网络编码进行数据包的传输。通过在传输层增加一个编码窗口,可以改善网络吞吐量,减少网络传输的次数。
技术实现思路
为了解决现有技术中问题,本专利技术提供了一种基于网络编码的传输控制协议的改进方法。一种基于网络编码的传输控制协议的改进方法,包括协议模型和协议描述 协议模型 在传输层,修改TCP协议的反馈机制,提出一种传输层网络编码算法。该算法在传输层增加一个网络编码窗口,即传输层维护两个窗口 TCP窗口和网络编码窗口。网络编码窗口接受TCP窗口数据包将其缓存到缓存区。当网络编码窗口收到若干数据包后,产生指定数目编码数据包,将其传递到网络层。这样明显降低数据包重传的次数,从而提高了网络的吞吐量。编码数据包包括NCheader、TCP header>DATA mixed,其中,NC header为网络编码报头,TCP header为正常的TCP报头,DATA mixed为编码数据; 网络编码报头包括Start、End > Num> Coefficient,其中,Start表示参与编码的原始数据包的起始序列号,End表示参与编码的最后一个原始数据包的下一个数据包的序列号,Num表示这段数据已经发送编码数据包的次数,Coefficient表示编码向量; 二、协议描述 应用联合分块网络编码,定义编码窗口的大小为B,B=m*k,其中m表示数据块分成的小块的个数,k表示每个小块包含的数据包数,每个小块最多传输t次,其中t = n/m,规定η=Β/ρ,ρ为从信源到信宿的丢包率;信源端在网络编码窗口产生一个编码数据包传递给网络层,最终发送到信宿端,当信宿端收到了这个编码数据包,提取NC header,然后,计算编码矩阵的秩,并将秩作为Num域,连同start和end作为ACK的一部分发送出去,作为对刚收到的编码数据包的反馈;当信宿端网络编码窗口某些块的数据包能够解码时,传递给TCP窗口,同时清空网络编码窗口中的数据包,否则继续缓存编码数据包。作为本专利技术的进一步改进,当传输t次后,某小块仍然不能解码,令这个小块的数据包和下一个小块的数据包一起进行编码,当传输2t次后,如果这两个小块也不能解码,则将前三个小块的数据包一起进行编码,传输3t次,以此类推,直至m个小块也不能进行解码,以后就发送这m个小块的编码数据包。作为本专利技术的进一步改进,如果某个或某些小块能够解码,解码后,发送下一个数据块,此时,更新数据包序列号,设置Start=end, end = end+m, Num=O,重新发送新的数据块。作为本专利技术的进一步改进,信源端处理来自信源的数据包,来自接收端的ACK,`计算发送数据包的起始序列号SEQ和Start的差值为Differ ; 1.设置Start= O, End = k, Num = O, k是每个小块包含的数据包数; 2.当如下事件发生时,处理事件,否则,等待; 3.来自TCP源的要发送的数据; (a)如果是请求连接的控制数据包,把它传递给网络层,继续等待; (b)如果是要传输的原始数据包,将该原始数据包存储到网络编码窗口的缓存区; 4.如果网络编码窗口的缓存区中的数据包个数η彡End- Start,并且Num〈End-Start-I进行如下操作,否则等待; (a)生成一个从Start到End的原始数据包的线性组合的编码数据包; (b)Num++;并将Start、End和Num以及编码系数组成一个编码数据包报头,将该报头附到TCP报头上,作为一个TCP数据包传输到网络层; 5.如果网络编码窗口的缓存区中的数据包个数η彡End-Start,并且Num彡End-Start-I;(a)Start 不变,End = End+k ; (b)返回4;6.如果是来自接收端的ACK,提取出Start,End和Num,查看接收端的系数矩阵的秩Num; (a)如果Num〈End- Start将TCP buffer中的序列号为Start + differ的原始数据包清除,返回4;(b)如果Num = End - Start; (i)清空网络编码窗口的缓存区中从Start到End的数据包; (ii)清除TCPbuffer中的序列号为start + differ原始数据包;(iii)Start = End , End =End + k,返回 4。作为本专利技术的进一步改进,信宿端 I.如果有来自信宿的ACK; 如果是控制数据包,用于连接管理,则直接传递给网络层,继续等待;2.如果是来自信源的packet; (a)提取网络编码报头中的Start,End,编码向量; (b)将编码向量加入到编码矩阵中,求出编码矩阵的秩; (C)如果编码矩阵的秩不变,丢弃该数据包,同时从编码矩阵中将该数据包的编码系数删除,向信源发送一个ACK; (d)如果编码矩阵的秩Num增加I; (i)如果Num〈End- Start,将编码数据包的数据部分加入到编码窗口; (ii)如果Num= End - Start ,将编码数据包的数据部分加入到编码窗口,应用高斯消去法,获得原始数据包,将原始数据包传递给TCP窗口,然后清空编码窗口 ; (iii)向网络层发送一个ACK,生成的ACK包括序列号和NCheader,其中Num域是编码矩阵的秩。本专利技术的有益效果是 I.当丢包率固定时,发送不同数目原始数据包,应用TCP和联合分块网络编码的重传数据包分布图,如图3所示可以看出,当丢包率固定时,应用网络编码明显能降低传输的次数。2.当发送节点发送原始数据包数目固定时,发送不同数目原始数据包,应用TCP和联合分块网络编码的重传数据包分布图,如图4所示可以看出,传输固定数目的原始数据包,应用网络编码明显能降低传输的次数。通过上述分析,应用网络编码后,能明显降低数据包重传的次数,从而提高了网络的吞吐量。附图说明图I是含网络编码窗口的网络模型; 图2是网络编码窗口传输数据模型; 图3是本专利技术固定丢包率,TCP和网络编码重传数目分布 图4是本专利技术固定原始数据包,TCP和网络编码重传数目分布图。具体实施例方式下面结合附图对本专利技术做进一步说明。对传输层的传输本文档来自技高网...

【技术保护点】
一种基于网络编码的传输控制协议的改进方法,其特征在于:在传输层修改TCP协议的反馈机制,增加一个网络编码窗口,即传输层维护两个窗口:TCP窗口和网络编码窗口;网络编码窗口接受TCP窗口数据包将其缓存到缓存区,当网络编码窗口收到若干数据包后,产生指定数目编码数据包,将其传递到网络层;?编码数据包包括:NC?header、TCP?header、DATA?mixed,其中,NC?header为网络编码报头,TCP?header?为正常的TCP报头,DATA?mixed为编码数据;网络编码报头包括:Start、?End?、Num、?Coefficient,其中,Start表示参与编码的原始数据包的起始序列号,End表示参与编码的最后一个原始数据包的下一个数据包的序列号,Num表示这段数据已经发送编码数据包的次数,Coefficient表示编码向量;编码窗口的大小为B,B=m*k,其中m表示数据块分成的小块的个数,k表示每个小块包含的数据包数,每个小块最多传输t次,其中t?=?n/m,?规定n?=?B/p?,p为从信源到信宿的丢包率;信源端在网络编码窗口产生一个编码数据包传递给网络层,通过网络发送到信宿端,当信宿端收到了这个编码数据包,提取NC?header,然后,计算编码矩阵的秩,并将秩作为Num域,连同start和end作为ACK的一部分发送出去,作为对刚收到的编码数据包的反馈;当信宿端网络编码窗口某些块的数据包能够解码时,传递给TCP窗口,同时清空网络编码窗口中的数据包,否则继续缓存编码数据包。...

【技术特征摘要】
1.一种基于网络编码的传输控制协议的改进方法,其特征在于 在传输层修改TCP协议的反馈机制,增加一个网络编码窗口,即传输层维护两个窗口 TCP窗口和网络编码窗口 ;网络编码窗口接受TCP窗口数据包将其缓存到缓存区,当网络编码窗口收到若干数据包后,产生指定数目编码数据包,将其传递到网络层; 编码数据包包括NC header、TCP header>DATA mixed,其中,NC header为网络编码报头,TCP header为正常的TCP报头,DATA mixed为编码数据; 网络编码报头包括Start、End > Num> Coefficient,其中,Start表示参与编码的原始数据包的起始序列号,End表示参与编码的最后一个原始数据包的下一个数据包的序列号,Num表示这段数据已经发送编码数据包的次数,Coefficient表示编码向量; 编码窗口的大小为B,B=m*k,其中m表示数据块分成的小块的个数,k表示每个小块包含的数据包数,每个小块最多传输t次,其中t = n/m,规定η = Β/ρ,ρ为从信源到信宿的丢包率; 信源端在网络编码窗口产生一个编码数据包传递给网络层,通过网络发送到信宿端,当信宿端收到了这个编码数据包,提取NC header,然后,计算编码矩阵的秩,并将秩作为Num域,连同start和end作为ACK的一部分发送出去,作为对刚收到的编码数据包的反馈; 当信宿端网络编码窗口某些块的数据包能够解码时,传递给TCP窗口,同时清空网络编码窗口中的数据包,否则继续缓存编码数据包。2.根据权利要求I所述的基于网络编码的传输控制协议的改进方法,其特征在于当传输t次后,某小块仍然不能解码,令这个小块的数据包和下一个小块的数据包一起进行编码,当传输2t次后,如果这两个小块也不能解码,则将前三个小块的数据包一起进行编码,传输3t次,以此类推,直至m个小块也不能进行解码,以后就发送这m个小块的编码数据包。3.根据权利要求2所述的基于网络编码的传输控制协议的改进方法,其特征在于如果某个或某些小块能够解码,解码后,发送下一个数据块,此时,更新数据包序列号,设置Start=end, end = end+m, Num=O,重新发送新的数据块。4.根据权利要求I所述的基于网络编码的传输控制协议的改进方法,其特征在于信源端处理来自信源的数据包,来自接收端的ACK,计算发送数据包的起始序列号SEQ和Start的差值为Differ ; 1.设置Start= O, End = k, ...

【专利技术属性】
技术研发人员:秦阳钟晓雄
申请(专利权)人:哈尔滨工业大学深圳研究生院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1