网络编码层对数据包的编解码方法

文档序号:7877707阅读:1600来源:国知局
专利名称:网络编码层对数据包的编解码方法
技术领域
本发明涉及计算机网络领域,具体涉及一种针对TCP协议优化的网络编码层对数据包的编解码方法,所述网络编码层应用于TCP协议与IP协议之间。
背景技术
随着移动通信3G,WIFI等多种无线技术和智能移动终端的迅猛发展,各种各样的移动互联应用逐渐渗透到人们生活的各个方面,移动互联网扮演着越来越重要的角色。同时移动互联网应用也对无线网络的传输效率提出了更高的要求,因此如何提高无线网络的传输效率、改善传输质量、提高用户体验成为如今网络研究中一个备受关注的热点问题。而针对网络传输层中占主导地位的TCP协议的优化就成为提高网络传输效率的主要手段之一。TCP协议是一种面向连接的可靠的传输控制协议,最初它是面向有线网络而设计的。而有线链路的传输质量较好,有线网络中的丢包一般是网络拥塞造成的,而很少是由链路错误引起的。无线网络中丢包有可能是拥塞,也有可能是链路误码造成的,而传统的TCP无法区分不同的丢包情况,总是视为拥塞而减小发送端的速率,结果造成在无线环境下的TCP传输效率不高。针对无线环境的高误码率,已经提出了许多改进的方法,主要有显示拥塞通知机制方法(ECN, Explicit Congestion Notif ication),分段连接TCP等方案。其中ECN方法需要中间路由器特殊支持,与现有网络的互操作性不强;分段TCP方案将TCP分为无线段和有线段传输,破坏了 TCP端到端的语义。美国麻省理工学院(MIT)提出一种基于网络编码的TCP优化方法(TCP/NC方法),TCP/NC方法在TCP与IP层之间定义新的网络编码层,TCP发送端产生的数据包不再以单个数据包的形式进行转发,而是在网络编码层按一定的冗余率R进行随机线性编码后以线性组合的形式发往接收端,利用网络编码的信息冗余特性,使得无线网络的非拥塞丢包对发送端隐藏。接收端收到编码包后,在网络编码层进行解码并将解码后的包交给TCP接收端。TCP/NC方法引入可见包机制:如果一个节点收到足够的编码包,能够计算出形如(pk+q)的线性组合,其中q = 21>kalPl,且对所有14有&1 e Fq (F,是大小为q的有限域),则称接收端看见了包pk,Pk就成为了这个节点的可见包。当接收端判断看见一个包Pk时,就可以立即发送一个ACK响应给发送端,而不必等到此包完全解码。可见包机制的引入了解决了解码时延所产生ACK响应不及时的问题,使得网络编码能够很好的适应基于流的TCP协议;可见包机制可以屏蔽TCP丢包次序,因此能够较好的避免TCP RENO算法中的因链路误码丢包所触发的错误的拥塞控制。在网络编码层中,所有要发送的数据包都需要放在编码矩阵中进行编码后才能发送给接收端,并在接收到对端发送的确认包ACK后删除编码矩阵中的相应数据包。因此编码矩阵的大小W就决定了发送端与接收端之间的网络编码通道的容量。如果W过小,就会导致网络编码通道的容量小于物理路径的实际容量,成为传输路径上的瓶颈。但如果W过大,每次线性编码产生的组合包将需要携带更多系数导致每个包的有效载荷变小,降低传输效率;同时大的W也会大幅度增加两端编解码的计算量;因此在高容量的无线链路上,上述的网络编码方法将无法有效提高TCP的吞吐量。

发明内容
针对现有技术中的上述问题,本发明实施例提供一种网络编码层对发送的数据包进行编码的方法,以及一种网络编码层对接收到的数据包进行解码的方法。在第一方面,本发明实施例提供一种所述编码方法,该方法包括:步骤1,初始化网络编码层,设置用于对发送的数据包进行编码的两个或两个以上的编码矩阵,每个编码矩阵的大小为W,选择所述两个或两个以上的编码矩阵中的第一编码矩阵作为当前编码矩阵,所述W即该编码矩阵的所有矩阵元素的个数之和;步骤2,网络编码层收到传输控制协议TCP层发送给接收端的数据包时,判断当前编码矩阵的剩余空间是否大于零,如果是,进入步骤4,否则进入步骤3,所述当前编码矩阵的剩余空间即该编码矩阵中未存数据包的矩阵元素数目;步骤3,选择两个或两个以上的编码矩阵中的第二编码矩阵作为当前矩阵,返回步骤2 ;步骤4,将数据包P放入当前编码矩阵,并对编码矩阵中的所有η个数据包按式

权利要求
1.一种网络编码层对发送的数据包进行编码的方法,所述网络编码层应用于发送端的TCP协议与IP协议之间,其特征在于,所述方法包括: 步骤1,初始化网络编码层,设置用于对发送的数据包进行编码的两个或两个以上的编码矩阵,每个编码矩阵的大小为W,选择所述两个或两个以上的编码矩阵中的第一编码矩阵作为当前编码矩阵,所述W即该编码矩阵的所有矩阵元素的个数之和; 步骤2,网络编码层收到传输控制协议TCP层发送给接收端的数据包时,判断当前编码矩阵的剩余空间是否大于零,如果是,进入步骤4,否则进入步骤3,所述当前编码矩阵的剩余空间即该编码矩阵中未存数据包的矩阵元素数目; 步骤3,选择两个或两个以上的编码矩阵中的第二编码矩阵作为当前矩阵,返回步骤2; 步骤4,将数据包P放入 当前编码矩阵,并对编码矩阵中的所有η个数据包按式子η 厂I进行线性编码,其中系数% e F,,其中Fq是大小为q的有限域,产生一个线性编码Z=I组合包,组合包的包头中包括本次线性编码的系数、编码矩阵的索引号,以及所述数据包的序号。
2.根据权利要求1的方法,其特征在于,所述步骤2还包括:如果收到与所述发送端对应的接收端反馈的确认包则进入步骤5 ;所述方法中还包括:步骤5,从所述确认包中提取矩阵索引和数据包序号,根据矩阵索引号获得相应的编码矩阵,根据数据包序号获得矩阵中相应的数据包,最后从编码矩阵中删除该数据包。
3.根据权利要求1的方法,其特征在于,所述步骤3还包括:如果所述两个或两个以上的编码矩阵中的所有编码矩阵被选为当前矩阵时,其未存数据包的矩阵元素数目均小于1,则将欲发送的数据包缓存,暂缓对该数据包的编码。
4.根据权利要求1的方法,其特征在于,所述方法还包括:查看是否有暂缓发送的数据包,如果有则判断当前编码矩阵的剩余空间是否大于零,如果是,进入步骤4,否则进入步骤3。
5.根据权利要求1所述的方法,其特征在于,所述步骤3中选择两个或两个以上的编码矩阵中的第二编码矩阵作为当前矩阵,具体为,从所述两个或两个以上的编码矩阵中的除所述第一编码矩阵以外的其余所有或部分编码矩阵中随机或者按照次序选择一个作为当前矩阵。
6.一种网络编码层对接收到的数据包进行解码的方法,所述网络编码层应用于接收端的TCP协议与IP协议之间,其特征在于,所述方法包括: 步骤1,初始化网络编码层,设置用于对接收到的数据包进行解码的两个或两个以上的解码矩阵,每个编码矩阵的大小为W,所述两个或两个以上的解码矩阵与发送端对数据包进行编码的两个或两个以上的编码矩阵相对应,所述W为该解码矩阵的所有矩阵元素的个数之和; 步骤2,接收端的网络编码层接收到发送端发送的经过编码矩阵编码过的数据包时,从该数据包中提取矩阵索引号,根据索引号获得对应的解码矩阵; 步骤3,如果所述解码矩阵的剩余空间大于零,进入步骤4,否则释放该编码包,返回步骤2,所述解码矩阵的剩余空间为该解码矩阵中未存数据包的矩阵元素数目; 步骤4,将所述数据包放入获得的所述解码矩阵中使用高斯消元迭代方法进行解码。
7.根据权利要求6所述的方法,其特征在于,所述步骤4包括:通过高斯消元迭代计算判断所述数据包是否能够增加所述解码矩阵的秩,如果能,进入步骤5 ;否则释放该数据包,返回步骤2 ;所述方法包括步骤5,产生一个用于反馈给发送端的确认包,所述确认包中包括所述解码矩阵的序号。
8.根据权利要求7所述的方法,其特征在于,所述,所述序号为所述获得的所述解码矩阵中第一个未确认数据包的 序号。
全文摘要
本发明涉及用于网络编码层对发送的数据包进行编码的方法,以及网络编码层对接收到的数据包进行解码的方法。所述网络编码层应用于TCP协议与IP协议之间。编码方法包括设置若干个编码矩阵;网络编码层收到传输控制协议TCP层发送给接收端的数据包时,判断当前编码矩阵的剩余空间是否大于零,如果是,将数据包放入当前编码矩阵,进行线性编码,产生一个线性编码组合包,组合包的包头中包括本次线性编码的系数、编码矩阵的索引号,以及所述数据包的序号;否则选择两个或两个以上的编码矩阵中的第二编码矩阵作为当前编码矩阵,再次尝试编码。解码方法大致与编码方法对应。本发明借助多矩阵并行编解码,提高了高容量无线环境下的TCP传输吞吐量。
文档编号H04L29/06GK103200192SQ20131010334
公开日2013年7月10日 申请日期2013年3月28日 优先权日2013年3月28日
发明者唐鼎, 周旭, 秦小伟, 覃毅芳, 赵志军, 慈松, 谭红艳 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1