Answers
使用TCP/IP中的 多播协议 吧,这样一个具有几百万粉丝的用户只用向路由器 发送一份数据 ,路由器自动向几百万粉丝转发(路由器发送给与之相连的路由器和主机)。不用发送几百万份数据,大大提供系统性能和网络吞吐率。
背景:
1.IP多播技术被
广泛应用
在网络视音频广播、网络视频会议、远程实时教育等方面。
2.多播不同于
广播
,广播协议向每个用户发送数据报,而多播指向
加入多播组
的用户发送报文。降低了网络流量,使得不想接收数据的用户不用处理。
3.各个路由器使用IGMP(Internet群组管理)协议得知被连入主机是否加入多播组,从而对发送源的数据进行转发。各个路由器之间的组播通知也相同。由于IGMP也有对流量的优化算法,比如路由器只用关心与之相连的主机或路由器是否还有一个在多播组里。这样路由器发送IGMP查询后,只要一台与之相连的主机发送应答后,其它的主机不用再发送,大大减小了网络流量。
4.
对于路由器,我们也无需担心其是否承受得起几百万粉丝的流量
,因为路由器只担当转发的工作。且有大量的科学家在研究路由算法,基于多播的路由算法也层出不穷,比如DVMRP、MOSPF、PIM-DM、CBT、PIM-SM等。
使用:
1.
发送者和接收者都必须加入一个相同的多播组(且端口号相同)
,多播组地址为:224.0.0.0到239.255.255.255。其中224.0.0.0到224.0.0.255属于局域网中使用的组播地址。224.0.1.0到238.255.255.255属于全球范围使用的组播地址。239.0.0.0到239.255.255.255是组织内部申请的组播地址。而多播地址又分为
永久地址和临时地址
。永久地址是为特殊用途而保留的。比如,244.0.0.0根本没有使用(也不能使用),244.0.0.1代表子网内的所有系统(主机),而244.0.0.2代表子网内的所有路由器。
2.
通过设置socket套接字中的选项加入多播组
。具体参考一个完整的多播实现代码:http://www.zxbc.cn/a/vcnet/20100520155129.html 看完这个,你会加强对组播的印象。