当前位置:首页 > 消费电子 > 消费电子
[导读]一. 理论基础本项目针对现有TCP协议在丢失率较高的网络环境下所表现出的糟糕性能,提出基于网络编码的改造,以TCP-Vegas为基础通过修改其源代码(逻辑上在TCP层与IP层之间加

一. 理论基础

本项目针对现有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层。[!--empirenews.page--]

报文段仲裁器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)机制可以很好应对,它的核心思想就是模拟处理器的资源在各线程间公平分配的特点,把路由器每个线卡的输出链路带宽平均分配给那些正在进行的所有信息流。在建立连接时,每一跳路由根据当前线卡使用情况及发送方的期望发送速率分配给其一个合适的初始速率,缩短以慢启动方式达到合理共享速率的时间。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭