组播

最近偶然的研究了一下组播。看到这个词,我脑海里只有广播,以为大同小异,其实大不相同。

广播:发送信息,网内所有用户都接受到信息
组播:发送信息,只有本组内的用户接受到信息

下面只关注IP组播

组播的好处:服务器发送信息,只需要发一份,所有成员都可以收到,减少了服务器端的网络流量
组播的缺点:ip组播使用udp协议,不能保证可靠传输
组播的原理:基于IGMP协议,我的理解是这样的,服务器发送信息到他相邻的机器,那个机器再将信息发送到相邻的组成员。这样发送信息的任务分交到每个组成员,减少了服务器的负担。

组播应用:网络视频点播,不使用组播,服务端无法胜任超大流量,同时对数据丢包可以容忍。p2p我认为也是组播的一种。

组播开发:用java.net.MulticastSocket可以方便实现IP组播功能,但是对于传文件,文件只能切分为小块,通过发送数据包来传输。
http://blog.csdn.net/coolriver/archive/2004/09/13/102420.aspx 这个地址有应用的例子,但没有大文件切分组合。文件切分简单的实现就是每个数据包中都包含文件名,包编号,在客户端,可以首先创建空文件,然后对收到的数据直接写到相应的地址。最后统计收到的包编号判断是否接受文件成功。

经测试,大文件(200M)传输会有明显丢包现象。

数据包的大小:According to "UNIX Network Programming", all TCP/IP implementations must support a minimum IP datagram size of 576 bytes, regardless of the MTU. Assuming a 20 byte IP header and 8 byte UDP header, this leaves 548 bytes as a safe maximum size for UDP messages. The maximum size is 65516 byte
可以看出使用548byte的包大小最安全

IP组播地址和组播组 :IP组播通信必须依赖于IP组播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为局部链接组播地址、预留组播地址和管理权限组播地址三类。其中,局部链接组播地址范围在224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;预留组播地址为224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;管理权限组播地址为239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制组播范围。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值