基于局域网内部文件交换的可靠多播技术分析
2011-08-15张应征成新红
张应征 成新红
(湖南工程职业技术学院,湖南 长沙 410004)
基于局域网内部文件交换的可靠多播技术分析
张应征 成新红
(湖南工程职业技术学院,湖南 长沙 410004)
目前,各职业院校教学使用的计算机房都建立了局域网,但对于局域网内部的文件传输而言,如何保证文件传输可靠、快速是一个值得研究的课题。文章主要针对机房局域网的可靠多播技术进行了分析,具有一定的参考价值。
可靠多播技术;局域网;机房管理
一、需求分析
随着网络技术的普及,各学校都建立了局域网,在教学当中利用局域网,老师先讲、演示,然后学生操作,这样能够达到最佳的教学效果。但对于机房管理及技术人员来说,如何保证局域网内部文件传输可靠、快速是值得研究的课题。
可靠多播主要是针对局域网内部进行文件传输的有效方案,在局域网内部进行文件传输具有传输范围小、接收端数目有限的特点,一般局域网内部不需要连接路由器;多播文件传输对实时性要求并不严格,但必须保证传输数据100%的可靠性。
二、可靠多播模式的选择
IP多播是一种基于UDP协议的不可靠的传输方式,由于其缺少对于数据可靠性的支持:它可能会产生数据包丢失和数据包乱序等错误,因此它在网络音频/视频广播、AOD/VOD、网络视频会议等方面应用比较常见;但在可靠性要求很高的文件传输中比较少见。基于TCP协议的传输方式能够保证高可靠性,但它不能进行多播传输,对网络的带宽和服务器要求比较高。为保证可靠性,必须在UDP传输服务之上应用层完成数据的可靠性处理,目前可靠多播主要集中在以下三个方面进行研究:
1.基于NAK消息机制的协议
其主要思想是由接收端检测数据包丢失情况,当检测到有数据丢失时,等待一定的时间后向服务器发送一个NAK消息,请求服务器重新传输丢失的数据包,以此来保证传输的可靠性。该类协议设计比较简单,适合中、小型规模传输应用。
2.基于树形的ACK/NAK协议
这类协议在传输网络中组建一个树状的、层次结构的控制节点群,利用这种结构把网络分成若干区域,每个区域都存在一个管理者,每一个多播节点都属于某个区域,当本区域内发现有节点发生数据包丢失时,由该管理者在区域内进行数据修复,仅当本区域无法处理时才向上级管理者发送请求,在区域间进行数据修复,因此一般情况下不会要求服务来承担重发工作,从而降低服务器的负担。该类协议适合大型规模传输应用。
3.基于自主纠错编码的协议
这类协议主要应用于单向链路中,其基本思想是在数据发送前,通过算法加入一定的冗余信息,接收端先对数据包进行校验,如果没有产生错误,直接提取有效信息,如果信息有误,则根据冗余信息进行数据修复。这类协议的优点是实现比较简单,服务端仅负责数据封装和发送,不要进行数据重发工作。但接收到的数据不能保证100%的可靠性。
三、数据丢包的检测与恢复
1.数据丢包的检测方法
作为文件传输系统,必须保证其高可靠性,首先要做的就是如何发现数据包丢失的情况,只有发现数据丢失了,才能想办法对数据包进行修复或者重传处理。目前检测丢包有序列号模式和计时器模式两种:
序列号模式即基于序号间隔的序列号模式。该模式下所有数据包都进行统一编号,发送方按编号顺序进行发送,接收方接收到数据包后对序号进行检测。其缺点是除非发生多个连续的数据包丢失或者网络完全中断时,则很难预测下一数据包到达的时间。
计时器模式即基于时间间隔的计时器模式。在该模式下,发送方定时进行数据发送,正常情况下,接收方等待在某一时间段内会到达的数据包。其缺点是当有时仅仅是网络阻塞而超过了接收时间,并不是发生数据丢失的情况,也会被错误判断为数据包丢失,因此需要双方重新协商等待时间。
2.丢包问题由谁来检测
根据由谁来检测丢包,可靠多播可以分为基于发送方的丢包检测方法和基于接收方的丢包检测方法两大类。
基于发送方的差错检测方法是由发送者负责多播数据的可靠性检测,发送者在数据传输进程中判断是否出现差错,一旦发现差错就启动重传机制对出错的数据包进行重传。该方法通常使用基于时间间隔的计时器模式来发现差错,具体实现时规定:所有接收节点接收到数据包后,都要马上向发送方回复一个ACK信息(肯定确认信息)。具体做法是:发送者发送数据后,启动一个时间片,如果在该时间片内收到了某一接收者发回的ACK信息,说明数据包已经到达接收方;如果该时间片消耗完毕,还没有收到某结点的ACK信息,说明发送到该接收节点的数据包丢失;这一方法的优点是实现算法比较简单;但常常会造成反馈内陷(Feedback Implosion)问题;
基于接收者的差错检测方法是由接收方负责多播数据的可靠性检测,每一个接收者负责自己的数据检测,一旦发现数据丢失,就启动重传机制,这样,把可靠性检测分布在各个接收端处理,减轻了服务器的负担。该方法在具体实现方面,使用上述的序列号模式和计时器模式均可;如果采用序列号模式,当接收的数据包的序号不连续,或者采用计时模式,在约定的时间内没有接收到数据包时,均认为数据包丢失,由接收端向服务器发送数据包不可到的NAK信息(否定确认信息),要求发送方启动数据重传机制,重新获得丢失的数据包。在数据传输过程中,通常发生丢包的几率是很小的,所以网络中的NAK信号比ACK信号要少得多,因此本方法可以减少Feedback Implosion问题的发生。
3.如何恢复数据包
检测数据丢包的目的是要保证数据的完整性,检测到差错后,要采取一定的手段来进行修复,目前通常采用重新发送的方法进行数据的修复,即发现数据出错后,启动相应的机制,把这部分数据进行重传来纠正这些错误。解决这一问题的方法按恢复的方式分,可以分为单播重传和多播重传。
单播重传:当接收方启动重传机制时,由发送者(不一定是多播服务器)与该接收端进行一对一的数据传输。这种方式在网络状况好、丢包几率低的环境中比较适合,但当丢包的接收者比较多时,这种方式占用较多的网络带宽,最坏的情况就是所有的接收方的数据包都出错,重传就等同于传统的传输方式。
多播重传:当发生数据包丢失时,重新向所有接收者(或某些接收者)以广播的方式进行数据重发。当大多数接收者接收到的数据是正确的,不需要进行重传时,这种方式比较浪费资源;它适合于网络出现故障时,大部分接收者不能正常接收到数据包,此时的效率比单播重传要高。目前应用中通常采用这两种方式的组合,由接收者的数目来选择重传的方式:要求重传的节点比较多,则采用多播重传,要求重传的节点比较少,则采用单播重传。
按恢复的实施者来分,可以分为集中式恢复和分布式恢复。
集中式重传:这种方式中,启动重传机制时,由发送方(多播服务器或多播服务器群)向接收方以多播或单播的方式重新发送数据包。其优点是算法实现简单,缺点是发送方的负担加重,因为同一个数据包可能要发送多次。
分布式重传:为减轻集中式重传中发送方的负担,重发工作可以由某一个已经接收到完整数据包的接收者来完成,通常在树状多播传输中使用,并且还可以在多个分支内部选取一个接收者对出错接收者进行重传,这样效率更快。
本文分析了局域网内部文件交换的可靠多播技术,对其中的IP多播技术、丢包检测方法和包数据恢复进行了详细分析,对于广大的高校机房管理人员而言具有十分重要的参考和应用价值。
[1]王丽群.IP组播及其应用[J].教育信息化,2002,(8).
[2]王际洲,赖隽文,杨寿保.可靠组播的差错控制技术研究[J].计算机应用,2000,20(9):45~48.
2011-02-07
张应征(1970-),男,湖南工程职业技术学院讲师,硕士,研究方向:计算机应用、数据库。