译码移动互联网下基于RS编码的文件传输软件设计体系建设

文件传输软件  时间:2021-01-12  阅读:()

移动互联网下基于RS编码的文件传输软件设计体系建设

文件传输是一项非常重要的网络应用。传统的文件传输软件如F TP等通常采用TCP协议 TCP是面向连接的运输层协议它可以实现数据的按序、可靠传输。 TCP最初是针对有线网络设计的该网络的特点是低时延、低误码率。而在移动互联网环境下情形相反大时延高误码率是其特点。 TCP原有的一些设计并不能很好地适应这一新的网络环境导致效率低下。其中 TCP协议的重传机制和拥塞控制机制是导致其在移动互联网环境下效率低下的两个主要原因分析如下。

首先 TCP协议使用重传机制来实现数据的可靠传输。TCP会自动对发送方所发出的数据进行编号并且启动计时器如果在规定的时间内未收到接收方对该数据的ACK便会触发计时器 自动重发数据。如果重传次数超过系统所设定的阈值 TCP协议栈会向上层报告传输失败。对于一次成功的数据传输包括数据发送和ACK成功两个部分缺一不可。对于传统的有线网络来说收发双方的信道质量是有保证的。而对于移动互联网 由于处在无线环境下其误码率大大高于有线环境甚至还会存在信道不对称的情况。TCP 的重传机制会显著增加交互开销从而降低数据传输的成功概率和速率。

针对上述问题提出了多种解决方法常见的方法是对TCP进行优化如TCP网络编码[3-4]、改进拥塞控制[5-7] 。

上述方法的优点是对上层应用透明无需修改即可使用。缺点是需要修改TCP协议栈 由于协议栈与操作系统是紧密结合的。而移动互联网中各种节点上所运行的操作系统型号和版本各不相同需要针对每种系统进行专门的优化从应用的角度来说上述方案可行性较低。

为此该文设计并实现了基于RS编码的文件传输软件。该软件基于UDP协议利用RS编码的特性实现文件分块传输的前向纠错可容忍一定范围内的数据丢失无需重传可有效减少交互开销对超出纠错范围的分片数据利用重传机制保证可靠传输。它具有如下优点首先根除了TCP 拥塞误判所带来的性能下降其次利用RS编码进行前向纠错可有效降低交互开销最后软件独立于操作系统无需修改协议栈可行性高。实验结果表明在高误码率大时延情况下该软件的传输速率明显高于传统的文件传输软件。

1基于RS编码的容错传输机制

1.1 RS编码原理

RS编码是一种常见的纠删码它由Reed I S Solomon G 于1960年提出[8] 。RS算法的基本原理是通过对原始的m个数据进行编码得到n个数据 n>m对于n个编码数据取其中任意的m个数据通过译码操作均可恢复出m个原始数据[9-10] 示意图如下所示基于RS纠删码的信息分散算法 。

RS算法的关键编码和译码过程实际上是一个矩阵的运算过程。假设原始数据为m个则可以视为1行m列的矩阵S1 m与一个m行n列的矩阵Mm n相乘最后的结果为1行n 列的矩阵D 1  n这就是编码过程见式1  。其中Mmn称为生成矩阵它满足这样的一个特性 由该矩阵的任意m 列数据所组成的m*m的方阵M’mm都存在逆矩阵M’-1mm。由编码的过程可以得到下面的公式1  对于方阵M’mm 由式1  可以得到式2 依然成立。又根据生成矩阵的定义对任意的M’mm都存在逆矩阵M’-1mm因此可以得到式3 。由于D1 m是任选的因此式3 即译码过程对于最终剩余的编码数据只要个数大于m个即可从中选择m个组成D1  m 同时选择m个数据在生成矩阵中对应的列组成方阵M’mm计算逆矩阵M’-1m m再运用式1  按照固定的大小对待发送的文件进行分割划分的每个单元称为1个Block每个Block的大小不超过网络的MTU这样做的目的是防止Block在数据链路层进行分片由于分片的传输没有重传机制因此任意一个分片的丢失都会导致上层Block的传输失败需要重传整个Block数据

2 按序对Block进行分组每组Block就是一个编码的基本单元假设一组Block的数量为m m的值可以由上层指定默认为4编码后的Block数量为n默认为6

4发送模块检查当前待发送的Block组根据每个Block 的接收情况确定组内需要发送的Block需要考虑两种情况

一种是该组Block未发送那么直接按序发送组内所有Block第二种情况是该组Block已发送且有部分Block已接收但不满足译码条件此时需要计算要达到译码条件还需要继续发送的Block数并在此基础上加1 例如在m=4 n=8的情况下 已经收到2个Block那么可以计算出还需要译码还需要4-2=2个Block在此基础上再增加1 那么此次发送3个Block只需要收到其中任意2个 即可译码至于待发送的3个Block则从未收到的8-2=6个Block中任意挑选即可

5 发送模块发送完若干组Block数据后会等待接收方的ACK回馈 同时启动定时器。如果超时则会跳到3 重新计算分片序列重新发送。如果接收到ACK清除定时器ACK会包含已收到各组Block的情况如果接收的Block均已满足译码条件则再看该文件的所有数据是否发送完毕如果是则结束如果未完成则跳至3 。如果该组Block 不满足译码条件则跳至3 继续发送。

接收方流程

1  在指定端口监听接收Block组

2 向发送方发送Block接收的ACK

3计算已接收的Block组是否满足译码条件如果不满足跳至1  如果满足则跳至4 

4 对Block组进行译码根据相应的信息将译码得出的Block写入文件对应的偏移处

5 判断文件接收是否完毕如果是则退出如果否

则跳至1  继续接收。

1.3性能分析

与TCP重传机制相比采用RS编码的容错传输机制可以有效提升数据发送的成功概率。假设Block在发送过程中成功率为p待传输的Block数为m编码后的Block数为nn>m 为简化模型不考虑接收方到发送方信道质量的影响 即发送方总能收到ACK。RS编码译码模块是RS算法的实现模块向上提供以字节为单位的RS编码和译码接口。生成矩阵的构建是RS算法实现的一个关键常用的是范德蒙矩阵和柯西矩阵。 由于柯西矩阵的特性译码时对于原始的数据无需译码 因此相对范德蒙矩阵效率高。此外不管是范德蒙矩阵还是柯西矩阵在进行译码时都需要进行矩阵的逆运算 由于实数域的运算都将存在无法整除的可能 因此将矩阵的运算转移到伽罗华域在进行编码和译码时都采用伽罗华域的运算一次编码和一次译码正好实现最终的数据回归到实数域此外伽罗华域的运算还将实数域的加法转换为异或、乘法转换为加、除法转换为减转换后的运算非常适合在计算机上进行优化从而提高效率。

异常处理模块主要是对程序中所遇到的各种异常情况进行进行分类、分级的处理并且写入相应的日志信息。

2.2多线程任务处理框架

按照设计需求传输软件需要支持多任务并行处理包括同时支持发送任务和接收任务 以及多个发送任务或多个

接收任务且任务的执行、操作、状态显示三者都需要并行处理。这就要求软件必须支持任务的异步执行而且底层传输任务的处理与界面的显示和操作之间要有良好的处理接口。为此设计了基于任务队列的多线程处理框架来解决上述问题。

4结束语

本文针对移动互联网环境下误码率高、时延大的特点设计了基于RS编码的文件传输软件利用RS编码进行前向纠错 同时

结合重传机制保证超出纠错范围的数据的可靠传输。实验结果表明在高误码率、大时延情况下该软件在文件传输的成功率和速度上明显优于传统的文件传输软件。该文中所涉及的文件传输协议和基于RS传输的相关技术同样可应用于其它无线环境下传输软件的设计。

参考文献

[1]Holland G Vaidya N.Analysis of TCP performance over mobile ad hoc networks[J].Wireless Networks 2002 8

2/3  275-288.

[2]Xylomenos G Polyzos G CMahonen P et al.TCP performance issues over wireless links[J].Communications Mag azi ne IEEE 2001  39 4  52-58.

[3]Sundararaj an J K Shah DMédard M et al.Network coding meets TCP Theory and implementation[J].Proceedings

of the IEEE 201 1  99 3  490-512.

[4]Juan LWeimin G Junke W et al.Enhanced Network Coding for TCP in Wireless Networks[C].7th International Conference on Wireless Communications Networking and Mobile Computing.Wuhan China 201 1  1-4.

[5]El Rakabawy S M Lindemann C.A practical adaptive pacing scheme for TCP in multihop wireless networks[J].EEE ACM Trans.  Netw 201 1  19 4  975-988.

[6]Dunaytsev RMoltchanov D Koucheryavy Y et al.Modeling tcp sack performance over wireless channels with completely reliable arq/fec Int.J.Communication

Systems[J].201 1  24 12  1533-1564.

[7]Shin K Kim J Choi S B.Loss Recovery Scheme for TCP Using MAC MIB over Wireless Access Networks[J].IEEE Communications Letters 201 1  15 10  1059-1061.

[8]Reed I S Solomon G.Polynomial codes over certain finite fields[J].Journal of the Society for Industrial and Applied Mathematics 1960 8 2  300-304.

[9]罗象宏舒继武.存储系统中的纠删码研究综述[J].计算机研究与发展 2013 49 1   1-1 1.

DiyVM:499元/月香港沙田服务器,L5630*2/16G内存/120G SSD硬盘/5M CN2线路

DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,其中VPS主机基于XEN架构,支持异地备份与自定义镜像,VPS和独立服务器均可提供内网IP功能。商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;独立服务器开设在香港沙田电信机房,CN2线路,自动化开通上架,最低499元/月起。下面以...

特网云(1050元),IP数5 个可用 IP (/29) ,美国高防御服务器 无视攻击

特网云特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。官方网站:https://www.56dr.com/ 10年老品牌 值得信赖 有需要的请联系======================特网云美国高防御...

Sharktech:无限流量服务器丹佛,洛杉矶,荷兰$49/月起,1Gbps带宽哦!

鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主打高防产品,独立服务器免费提供60Gbps/48Mpps攻击防御。机房提供1-10Gbps带宽不限流量服务器,最低丹佛/荷兰机房每月49美元起,洛杉矶机房最低59美元/月起。下面列出部分促销机型的配置信息。机房...

文件传输软件为你推荐
虚拟主机服务什么是虚拟主机服务免费虚拟主机哪个网站可以申请免费虚拟主机空间?php虚拟主机php程序在虚拟主机上怎么运行服务器租赁服务器租赁怎么回事的?免费虚拟主机申请谁有1年免费的虚拟主机申请地址吖?免费国内空间网站免费空间(国内的)那里有?域名注册服务万网域名注册服务怎么样?美国网站空间我想买个国外的网站空间,那家好,懂的用过的来说说网站空间价格我想自己弄个小网站,但我不会懂域名和买空间价格,便宜一点的一共要多少钱?北京网站空间自己弄一个简单的网站,大概需要办理什么,大概需要多少钱?
vps推荐 赵容 highfrequency webhosting 512m内存 好看的桌面背景图 大容量存储 hnyd dux 国外免费全能空间 已备案删除域名 域名接入 nerds 佛山高防服务器 银盘服务是什么 xuni 贵州电信 phpinfo 塔式服务器 时间服务器 更多