一. 理论根底
本项目针对现有TCP协议在丢掉率较高的网络环境下所表现出的糟糕功用,提出依据网络编码的改造,以TCP-Vegas为根底经过修正其源代码(逻辑上在TCP层与IP层之间参加全新的网络编码层)完成在发送方对原始TCP报文段编码,在接纳方解码,并针对网络实时丢掉率调整编码报文段的发送冗余,以抵达向TCP层掩盖丢掉的意图;一起参加处理器同享技能,该技能旨在用一个适宜的初始速率来替代TCP的慢发动进程。终究进步网络吞吐量和牢靠性,缩短数据流完结时刻。
1.网络编码:
2000年,以香港中文大学信息工程系为主的研讨人员针对通讯网络的瓶颈问题,提出了网络编码理论,以网络编码器替代路由器,在网络中传输包的线性组合,在接纳端经过解码恢复出原始数据包。
网络编码的概念能够经过蝴蝶拓扑图来进行简略的阐明,如图1-1所示:
假定上图中每条途径单位时刻内只能传输1比特,则选用路由方法,UV链路会成为传输瓶颈,即只能传输a和b中的一个信息。若UV链路传输音讯b,则信宿P能收到音讯a和b,而信宿Q只能收到音讯b;若UV链路传输音讯a,则信宿Q能收到音讯a和b,而信宿P只能收到音讯a。两者状况下,均匀每个信宿节点的吞吐量为1.5比特。
相同的条件下,若选用网络编码,即UV链路上传输的是音讯a和b的编码,则信宿P能够承受音讯a且译码出音讯b,信宿Q能够承受音讯b且译码出音讯a。这样,均匀每个信宿节点的吞吐量为2比特。
从中能够得出,网络编码能够抵达多播网络的最大容量,而路由却或许达不到。
网络编码自诞生以来,得到了敏捷的开展。短短几年,宣布了几百篇学术论文,并对许多相关学科发生了深远的影响,NC的理论研讨规模包含信息论及通讯的简直每个范畴,如随机编码,线性编码,非线性编码,静态码,群码,卷积码,Alphabet码,算法协议,码构建,有环网络,链路失效及其网络办理,无向网络,别离理论,密码学,过错检测和纠错码,多信源编码,Cost Criteria,多-单播编码,非均匀需求,最大流/刮集界,相关信源编码,叠加编码,网络互连,路由寻觅,无线及卫星网络,Ad hoc网络,传感网络,数据存储及散布,矩阵理论,复杂性理论,图论,随机图论,,多种物流(Multicommodity flow),游戏理论,矩阵胚理论(Matriod theory),信息论不等式,排队论剖析,树装箱(Tree Packing)率失真(rate-distortion)可逆网络,多用户信道,联合网络信道编码,P2P网络等。
国外多所闻名大学如普林斯顿大学、麻省理工、瑞士EPFL 学院等和多家IT 公司的研讨中心,包含微软研讨院、贝尔实验室、AT &T 的香农信息实验室等都在积极开展对网络编码理论和运用的研讨。最近国内学者也开端研讨网络编码,如清华大学、西安电子科大、电子科技大学、北京邮电大学、中国科学技能大学、复旦大学、上海大学等。
2.TCP协议:
传输操控协议(TCP)是一种面向衔接的、牢靠的、依据字节省的运送层(Transport layer)通讯协议。在简化的计算机网络OSI模型中,它完结第四层传输层所指定的功用。
TCP运用端口号,供给进程到进程的通讯,是一种面向流的协议(如图1-2)。它把在每一个方向传送的数据字节都进行编号。编号不必定从0开端,而是在之间发生一个随机数作
为第一个字节的号码。当字节都被编上号后,TCP就给每一个报文段指使一个序号(该序号为报文段中第一个字节数据的编号,见图1-3)。接纳方接到报文后,要运用承认号对它已收到的字节进行承认,承认号是累计的,在数值上等于希望接纳的下一个字节的编号。
在实践传输中,为了防止信道拥塞,咱们完全能够只发送一个字节的数据,然后在发送下一个字节之前等候承认。但假如信源和信宿之间的间隔很大,那么信源就要在等候承认时一向处于闲暇状况,信道吞吐率很低。为了完结流量操控,TCP运用滑动窗口协议。
滑动窗口如图1-4所示,它能够打开、合拢和缩短,但这三种运动受接纳端而不是发送端操控。
打开窗口表明窗口右沿向右移动,答应从缓存中发送更多新的字节。合拢窗口表明窗口左沿向右移动,某些字节现已被承认,发送端能够不用再保存。缩回窗口表明窗口右沿向左移动,一般在现实状况中不被答应。
在现实状况中,常常会遇到报文段丢掉,为了重传丢掉的报文段,TCP运用了重传计时器,来处理重传超时。当TCP发送一个报文段时,它就创立这个特定报文段的重传计时器。这或许会发生两种状况[1]:
若计时器截止时刻到之前收到了对这个特定报文段的承认,则吊销这个计时器。
若在收到了对这个特定报文段的承认之前计时器截止期到,则重传这个报文段,并把计时器复位。
TCP处理拥塞的一般战略是依据三个阶段:慢开端,拥塞防止和拥塞检测。在慢开端阶段,发送端从十分慢的发送速率开端,但很快就把速率增大到一个门限。当抵达门限时,数据率的增加就怠慢以防止拥塞。终究假如检测到拥塞,发送端就又回到慢开端或拥塞防止阶段。
3.FPGA及Linux体系:
Spartan-6具有USB2 port,VGA,10/100 Ethernet端口和设备,满意本项目对网络环境设置的要求。
Linux操作体系具有开源、高效、移植性强等特色,能够经过修正其源码把新式的TCP协议潜入其间,终究经过硬件实验直观的展示新协议的长处。
二. 项目可行性剖析
本项目团队成员具有长时刻的网络编码研讨经历,并各有所长,别离通晓用户界面规划、Linux源码开发、FPGA与嵌入式体系规划,因而具有了人员根底。辅导老师李挥教授是网络编码理论研讨的专家,在整个项目进程中会给咱们尽心辅导。
1.理论条件:
本项目组在网络编码与TCP协议交融方面已有了必定的研讨根底,形成了自己的一套理论,并现已在NS-2仿真渠道进步行了开端实验。Linux操作体系的共同长处能够把理论运用到实践的点到点传输环境中。
2.软硬件条件:
实验室已具有相关软硬件条件:
NS-2仿真渠道;
装载CentOS 5.5操作体系的主机若干台;
NetFPG若干;
网线;
USB-UART数据线;
三. 规划原理
本项目研讨目标为点对点网络通讯,首要立异点为选用了网络编码和新式的TCP传输协议,终究目标是完成网络传输在数据丢掉状况下的高牢靠性和高吞吐量。项意图收拾架构如下(图3-1)。
两台主机别离充任通讯体系的信源和信宿,其间的传输协议已改为新式的TCP协议。界面会显现相应的网络传输参数以及直观的展示传输数据(如视屏)的效果。传输网络由FPGA组树立而成,首要完成网络丢掉环境设置,数据存储转发,信号显现等使命。
1.网络编码层规划:
网络编码层规划是本项意图中心,是整个体系的魂灵。
各模块阐明如下:
报文段裁定器1
坐落TCP与NC层之间的裁定器。具有判别2种类型数据的才能:
1.来自TCP的数据报文段;
2.来自TCP的用于衔接等操控信号的报文段。
假如是1,则将其放入输入缓存;假如是2则直接送往IP层。报文段裁定器2
坐落IP与NC层之间的裁定器。具有判别3种类型数据的才能:
1.来自IP的已编码报文段;
2.来自IP的用于衔接等操控信号的报文段;
3. NC_ACK信号。
假如是1,则将其放入输入缓存;假如是2则直接送往TCP层;假如是3,则交由NC_ACK判定器。
编码模块
NC_ACK判定器
用于判定NC_ACK信号,奉告编码窗口应删去哪一个或哪几个原始报文段,一起其担任“假造”ACK发给上层TCP。
输入缓存
保存来自TCP的数据报文段,由于编码窗口每次仅读取一个原始报文段,输入缓存用来保存还未来得及处理的原始报文段。
编码窗口
保存原始报文段,每次从输入缓存读取一个原始报文段,收到NC_ACK判定器发来的信号后即删去相应报文段。
随机数发生器
发生0~255的随机系数,不过在运用时应防止0。
编码器
运用随机数发生器发生的随机系数对编码窗口中存在的报文段编码,若当时编码窗口只要一个报文段,则直接交给组成器,不进行编码。
组成器
将包头发生器传来的NC包头和已编码的报文段组成一个完好的NC层报文段,交给输出缓存。
输出缓存
接纳组成器传来的NC报文段,在此处设置输出缓存也可起到操控发送速率的效果。
系数表
收发两边在树立衔接时由发送方传递给接纳方的系数表,整个会话进程中系数表不变。依据系数偏移读出相应的系数。
包头增加模块
报文段编码状况
即本次有多少报文段参加了编码,这个在解码时有必要知道。
系数偏移
指示本次所运用的系数在系数表中开端的方位。
包头发生器
将报文段编码状况模块和编码系数模块传来的信息封装陈规定格局的NC包头,再由组成器与相应已编码报文段组成NC报文段。
解码模块
输入缓存
保存来自IP的数据报文段。
包头处理
将包头和负载别离,经过包头中的系数偏移和编码状况恢复出编码系数。
系数缓存
寄存编码系数,并履行高斯消元,确认新看见的报文段,若发现新的报文段则向NC_ACK发生器发送信号,不然丢掉这一组编码系数并告诉解码缓存及报文段编码模块一起删去这一组数据。
报文段编码状况
和包头增加模块中一样,存储报文段参加的信息。
解码缓存
寄存编码报文段数据,履行与系数缓存相同的高斯消元,在解码时从报文段编码状况模块获取报文段编码状况信息。
NC_ACK发生器
NC层独有的ACK,收到系数缓存传来的信号,便发生一个ACK并把它传递给编码模块的输出缓存,用来奉告发送方自己所看到的报文段状况,一起向ACK发生器发送信号。
输出缓存
解码的报文段按本来的次序寄存在这里,然后传给TCP,相同能够进行速率操控。
2.处理器同享技能的交融:
关于短流继续时刻比其所需时刻更长的状况,处理器同享(Processor Sharing)机制能够很好应对,它的中心思维便是模仿处理器的资源在各线程间公正分配的特色,把路由器每个线卡的输出链路带宽均匀分配给那些正在进行的一切信息流。在树立衔接时,每一跳路由依据当时线卡运用状况及发送方的希望发送速率分配给其一个适宜的初始速率,缩短以慢发动方法抵达合理同享速率的时刻。