我最近想到一个东西,想起的缘由是校园网内 FTP 经常因为人数太多而登陆不上。再想到现在有线电视的架构,从来不会因为用户更多而导致线路堵塞,因为它是广播式的。有线电视的带宽大小只取决于电视数目的多少,而不在于用户数目的多少。
那么如果我要共享一个很热门的文件,希望在一个局域网内(不考虑转发和路由,假设所有电脑都在一个集线器上)将这个文件尽快地共享出去,那广播文件应该是最快的吧。我觉得最主要的意义是:当很多人都需要这个文件的时候,只需要广播一次就可以分发完毕,看起来广播很耗费资源,但是一个文件在不同时间传送给 N 个人的话资源其实耗费更大。
或者不拿文件为例,当我们在局域网看 NBA 的时候,一旦在线观看人数越多,那么网络就越堵塞。当前的视频播放软件都是基于点对点来设计的,就算是 bt 协议,也是点和点之间的传送,而没有发挥到局域网天生的具有广播的性质。
根据当前局域网的相关知识,当 A 发送文件给 B 时,所有用户都是能监听到这个文件的发送,只是因为目的 mac 地址不是自己的,所以才抛弃掉这个包。那么如果是组播技术的话应该可以实现这样的广播式文件分发吧?目前想到的方法是用组播 IP 地址将这个文件分发出去。但是看起来很简单的事情,我查阅了一下 Google 却没找到相关的资料。不知道可不可行呢?
目前想到的困难有以下这些:
- 传送文件时候,用户接受有先来后到,后面到的人可能没接收到前面文件的信息。这个可以通过断点续传技术来实现,循环广播就可以了。
- 有的用户收到帧可能是破坏的,这个可以提交到上一层协议来处理。
- 就算是上面的都可以不理,假设我要在局域网广播一套电视节目,这样就不用考虑上述第一点和第二点(电视缺少几个像素不成什么问题)了。我觉得这个是最初最简单的雏形了,但是这样的软件我该怎么设计呢?
PS: 上文是我向老师提问的一个问题。其实最多的缘由还是 Eileen 同学老叫我帮下电影,害得我不得不想这么一个问题(做没有挑战的却又不得不花时间的事情我很无奈)。Anyone can help me?
再次 PS: 不好意思.. 我发现我还是错了。校园网的构架其实同一层楼中每台主机都连接到交换机上,然后通过交换机来广播询问哪台机器在哪里,其实还是通过点对点的。因此我上面那个方案其实是不可行的,既然没有意义,无谓再研究下去了..