Cisco私有路由协议EIGRP所实现的组播可靠传输可以拿来借鉴。
EIGRP工作原理
1)在以太网广播网段使用组播地址224.0.0.10发送hello,发现所有的邻居,建立neighbor list table
2)发送路由更新(大块数据)到224.0.0.10这个地址,neighbor list 里所有邻居接收到路由更新之后,都需要发送ACK给源路由器,如果源路由器接收到所有邻居的ACK,说明一切OK,继续发送;
如果没有接收到某些路由器的ACK(丢包、路由器挂了),则启动超时等待,如果定时器超时还没有收到ACK,则用单播重传给 NON-ACK 所有路由器,直到接收到ACK为止。
通过以上的组播发送/确认,单播重传/确认的方式保证传输的可靠性。
如果想使用现有的工具,使用P2P软件是一个不错的选择,刚开始可能有点慢,因为数据源只有一个,但一旦别的主机有了文件的copy,也成为数据源,将会有多个P2P、P2MP辐射,传输速度会越来越快。
无论组播传输、还是P2P,最终的瓶颈是交换机,也就是说,交换机的转发性能(一秒钟可以转发多少G的数据)将是传输速率的最终极限。
咱们先看看如果用FTP传输的瓶颈在哪里,服务器的物理接口带宽是瓶颈,最终交换机传输的数据为50*50 = 2500 M;采用组播,交换机最终传输的数据也是2500M(交换机replicate给50个客户端),但速度肯定比FTP要快;采用P2P最终也是传输2500M数据,但由于有多个数据源,即多个物理链路带宽,所以也会比FTP采用单个物理带宽速度快。