应用程序多播的最佳教程? [英] Best tutorial for application multicasting?

查看:125
本文介绍了应用程序多播的最佳教程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近意识到IP多播(显然在公共互联网上效果不佳)和应用程序多播(显然在IRC和PSYC中使用, http://en.wikipedia.org/wiki/Multicast )。

I've recently become aware that there's a distinction between IP multicasting (which apparently doesn't work that well on the public internet) and application multicasting (which is apparently used in IRC and PSYC, per http://en.wikipedia.org/wiki/Multicast).

有没有关于实现应用程序级多播的好教程?

Is there a good tutorial on implementing application-level multicasting?

我认为多播的重点是减少普通网段的带宽,所以很难让我了解应用程序级多播的作用。

I thought the whole point of multicast was to reduce bandwidth for common network segments, so it's hard for me to understand what application-level multicast does.

推荐答案

IP级别多播的目的是减少公共网段的带宽许多用户希望收到相同的流量。它通常仅限于一个特定的子网,而IP路由器不会将多播传播到子网之外。这是出于可扩展性原因而做的 - 允许一个主机发起传播到互联网上每个IP地址的多播数据包并不是一个好主意。

The purpose of IP level multicasting is to reduce bandwidth for common network segments where many users wish to receive the same traffic. It's usually limited to one particular subnet and an IP router won't propagate the multicast beyond the subnet. This is done for scalability reasons - it wouldn't be a good idea to allow one host to originate multicast packets which are propagated to every IP address on the internet.

那里是不同的方式来思考应用程序级别多播。一种方法是使用参与多播的主计算机来构建多播树。 Dijkstra的算法可以用来做到这一点(维基百科对此有一个合理的描述)。但是,如果主机以很大的速率加入和离开网络,维护参与计算机的列表 - 并使树保持最新 - 可能是相当多的工作。并且您可能没有对应用程序级别的可用跳跃成本进行良好估计。

There are different ways to think of "application level" multicasting. One approach is to build a multicast tree using the host computers participating in the multicast. Dijkstra's algorithm could be used to do this (Wikipedia has a reasonable description of this). However, maintaining the list of participating computers - and keeping the tree up to date - can be a fair amount of work if hosts are joining and leaving the network at a substantial rate. And you probably don't have a good estimate of hop cost available at the application level.

您应该检查的另一种方法是Gnutella网络的查询路由中使用的泛洪算法协议。 (维基百科也对此有了很好的描述。)这种方法减少了构建组播树的需要,但它具有产生更多网络流量的缺点。事实上,随着流量随着节点数的平方增长而增加的网络流量,即O(n ** 2)。

Another approach you should review is the flooding algorithm used in the Gnutella network's query routing protocol. (Wikipedia also has a good description of this.) This approach alleviates the need to build a multicast tree, but it has the downside of generating more network traffic. In fact, a LOT more network traffic, as the traffic grows with the square of the number of nodes, i.e. O(n**2).

这篇关于应用程序多播的最佳教程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆