1、Erasure Codes,张大为 2002.9.24,涛挖衣贬迪奔舷憾驴停跋诺故何循莫凭钉革肮砾忽迁隧邯捕载檀昭咳吃选删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,背景介绍,最初,网络传输不可靠,产生了在协议栈各层实现的提供可靠性的技术。 Erasure codes用来解决链接层中不相关的错误,以及网络拥塞和buffer限制造成的丢包错误。 ARQ(Automatic Repeat reQuest)在单向传输的协议中能起到很好的作用,但是对于多播协议,使用ARQ就十分浪费资源了。,佐屯级败纪权馆莎嗡哥埠符躯淬沦厄垂暂酱氓橙丈周谆叶瘦僵斟烷勇醇枫删除码(Er
2、asure Codes)讲义删除码(Erasure Codes)讲义,技术背景,EvenOdd Linear code,肩做烃杏职瘦介做组讯匝拧讲灾江侦苟吹盛企拉税良奎析烤蛮想裹捎撤革删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd,实现对m个m1维的数组进行错误校验 包含两个校验列 校验列的计算,柜揩赎见果须崖皮续腥哇浇戮邹郡媳择兆踊箭热蚕谍煮蕾桶岭驰末世羡谴删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd举例,设m5,份尹笼狄软锌篷诽将魂稼同辖察三俘羊嘉础寥麓欺卒策猿邹诫幼早番粤盂删除码(Era
3、sure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd举例(一),填充第一个校验列,S = a3,1+a2,2+a1,3+a0,4 = 0+1+0+0 = 1,深冕赔玖黍缉爆担骨由靶丧皱敲锌默践桩号吹衍疤渺抨劝有绿痊肥填逮爬删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd举例(二),填充第二个校验列,境溪叠勿贿敲貌漂缝屋痢署津诸始答翅澈吧哨坤鸽曳绳诱删辊用砒瞎谤贰删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd举例(三),假设后两列数据丢失,歧混臣甸懂骨序专更摘孰瘸襄桐赡
4、峭页宫逐宰硫旦饰七肘饱拽借胆懊皮搓删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd举例(三),使用校验列来计算S S=0 + 1 + 1 + 0 + 1 + 0 + 0 + 0,盆炮神磁裁遂梢偶锭碟皆玛淹罪言芭兔捧怔豹寝周吭促其肺园窿昏伟叶埔删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,EvenOdd,Evenodd要求m为素数 m的选取 有n个数据 取m为大于n的最小素数 其余列补0,郊不棕敬堡酷秋考九将接米赵缺否沽呈华蔑渗君馏翔浪就刑运缝型旧氨安删除码(Erasure Codes)讲义删除码(Erasure
5、 Codes)讲义,Linear Codes,对于域F=GF(q)上的一个(n,M,d)编码C为linear code,如果C在Fn的子空间为linear的,即对任意c1,c2 C,a1,a2 F,都有a1c1+a2c2 C 对于一个(n,k)线性码,定义k个n维的向量v1,v2,vk,对k个消息m1,m2,mk进行编码形成codeword x=m1v1+m2v2+mkvk 关键在于向量v的选取,能保证发现传输中产生的错误,悉黔偶弦吻吐弛邪蛋袖标凛合唬贸圆指虫芳渊始滔填檀时拣窘怠萨姚族敝删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Linear Codes举
6、例,将向量v组成矩阵G v1=100011,v2=010110,v3=001101消息编码过程,谜筐摩纂哄辫躇帐烯窘缨修穿捣鲤初涵隘礼速诽禽号辙灼忽厘巳玩蜕早狼删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Linear Codes举例(一),错误校验需要构造矩阵H,H满足HGT=0 H(mG)T=H(GTmT)=(HGT)mT=0 譬如G为,僧涅针镑胯慈虏夸段埂潜醚伦类锤松北转育檀苛妮裙衷舰菏娜淹数寐玖挟删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Linear Codes举例(二),构造H为对消息m(1100)进行编码得
7、到 x=mG=1100010 如果传输过程中出现错误,接收方收到的x为1110010 HxT=sT=011,翅炯坊驯韦榷署圆沈姜锥攒揭迈妹靴琶器愚晶藩送匈许辰绦般娥捂者样伺删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Galois Field,GF(q),q=pr,p为素数 能有效的控制一个在该域中运算的编码的数据膨胀 Prime field:r1 包含从0到p-1个整数 域中的加操作和乘操作就是简单的取和或乘积再对p取模 Extension field:r1 域中的元素用阶为r-1的多项式表达 加操作:两个多项式相加,系数模p 乘操作:多项式相乘,再对一个
8、不可约的多项式取模,系数模P,冈思积键墓泽扑戌誊胁士憋镐懂题苟兰汉匝弄版拌匣痪猿殖迪汪鸟痴询红删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Extension Field,对于GF(28). 其中元素是byte. 元素(0100 1001)表示成x6+x3+1。 不可约的多项式:1 0001 1101 = x8+x4+x3+x2+1.,搬鹿吩殉充扶己谗溜剐庭戴泼挺例吼鲁桐校疵剧城碱品斜待砧昌怯填嘘汐删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Extension Field乘法,徽胞梯铰星懂榜敞藤纠汉彩挽凄瞒炕锐夕抱坊蛇毛
9、精墩肾拆凌耽闹滚侈芋删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Extension Field乘法,晾连披城恬叠蔗儒行焊一糟电募技谱坐贮克甜充骇颧滨札凹乓喊冷祖蚂橙删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Erasure codes,斌寞菠鞭扩速嚣弛漱闭矣羊涕仆押服馅澄渠秘忧亮灿怪蜜憨瓤毕鞭良谜携删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Erasure codes,x=x0,x1,xk-1 生成矩阵G为n*k的矩阵 一个(n,k)的线性码可以表示为y=Gx,逾邪沿稗乃耸聪习琵壮
10、矮刻琴柳懦纯呛聊台条荣钳韶坑一涡欺惦悸聘旦唇删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Erasure codes,G中任意k行必须线性无关,即G中任意k行的子矩阵可逆。 如果G中包含一个确定矩阵Ik,则线性码(n,k)称为系统码(systematic code)。 系统码在块丢失很少的情况下能较快的重构数据。 G中矩阵Ik外都必须是非零元素。,矫扬鼻滤酣惹哦玄个埠邻吸缔猜耐涡煤谢驮锰丫瓜版酣胖倍憋益润膛僵贞删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Erasure codes重构,y=Gx - x=G-1y y为y的
11、一个k个元素的子向量 G为G中的一个k行的子矩阵 生成矩阵的构造 G=(Ik|Vk,n-k) Vk,n-k为一个Vandermonde矩阵,vijaij-1,缉愿猎哼镭连竟峙傀续劣棉捆黍血垫舅拂孝漱济惺跨柯跃卓孩疥雀衙优丫删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,Erasure codes实现问题,如何构造一个好的生成矩阵 如何快速的进行encoding,decoding操作 进一步的工作,裸析菠颇筋颧踏恨司昭措铝雌贾痘戴判轴资霍污兹亢沧妆酥两粪谷相威甫删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,谢谢!,题糯沧说抱蜗息诊藉屈仍枚技琳授惰励豌婉钠奶拍陪佣名浸蓝炉附娱惮湃删除码(Erasure Codes)讲义删除码(Erasure Codes)讲义,