Linux网络编程一步一步学-网络广播、组播与单播
2008-12-13 20:07
309 查看
这里以下图所示的网络为基础来说明网络通讯的各种方式:
什么是广播?
/*********************************************************************
*filename: Linux网络编程一步一步学-网络广播、组播与单播
*purpose: 说明网络广播、组播与单播
*tidied by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言
*date time:2007-01-25 13:10:00
*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途
* 但请遵循GPL
*Thanks to: Google.com
*Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力
* 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!
*********************************************************************/
广播的缺点:不管主机是否有程序接收广播消息,广播消息一定会被网卡收到并提交给操作系统去处理,所以会造成网络上流量增大,对不接收广播消息的主机造成一定的负担。
什么是单播?
TCP方式和UDP方式都可以实现单播。也是大多数情况下网络通讯所采取的方式。
什么是组播?
注意:按照RFC规定,组播地址范围是D类IP地址,即224.0.0.1-239.255.255.255。
组播IP地址不能用我们平时所有的C类IP地址。
什么是广播?
以前面的文章<Linux网络编程一步一步学-UDP方式广播通讯>为例:就是用下列命令在上图所示的主机192.168.100.xa上运行客户端程序: ./client 192.168.100.255 7838 则上图所示网络上的所有主机,只要其IP地址192.168.100.*与网络掩码(比如255.255.255.0)运算得到的子网(比如192.168.100.0)与192.168.100.xa主机所在的子网是一样的,都会在自己的7838端口收到192.168.xa主机发出来的UDP消息。消息会被复制并发到每个主机的网卡上去,网卡收到消息后提交给操作系统去处理,操作系统发现有程序在7838端口接收UDP数据则把消息转给相应的程序去处理,如果没有程序接收来自7838端口的UDP消息,则操作系统丢弃该消息。 |
*filename: Linux网络编程一步一步学-网络广播、组播与单播
*purpose: 说明网络广播、组播与单播
*tidied by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言
*date time:2007-01-25 13:10:00
*Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途
* 但请遵循GPL
*Thanks to: Google.com
*Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力
* 科技站在巨人的肩膀上进步更快!感谢有开源前辈的贡献!
*********************************************************************/
广播的缺点:不管主机是否有程序接收广播消息,广播消息一定会被网卡收到并提交给操作系统去处理,所以会造成网络上流量增大,对不接收广播消息的主机造成一定的负担。
什么是单播?
以前面的文章<Linux网络编程一步一步学-客户端和服务器端互相收发消息>为例:就是用下列命令在上图所示的主机192.168.100.xa上运行客户端程序: ./client 192.168.100.xf 7838 则消息只会从192.168.100.xa主机发到192.168.100.xf主机上,192.168.100.xf主机的网卡收到消息后转给操作系统去处理,操作系统再把此消息转给相应程序去处理,如果没有程序处理就丢弃该包。 |
什么是组播?
以后面的文章<Linux网络编程一步一步学-UDP组播>为例:就是用下列命令在上图所示的主机192.168.100.xa上运行客户端程序: ./mcastclient 230.1.1.1 7838 则消息只会从192.168.100.xa主机发到加入了组230.1.1.1的主机的7838端口。象广播一样,组播消息一样会被复制发到网络所有主机的网卡上,但只有宣布加入230.1.1.1这个组的主机的网卡才会把数据提交给操作系统去处理。如果没有加入组,则网卡直接将数据丢弃。 要想接收组播消息的主机必须运行命令加入组,如下方式: ./mcastserver 230.1.1.1 7838 |
组播IP地址不能用我们平时所有的C类IP地址。
相关文章推荐
- zigbee网络单播、广播和组播--简单笔记
- 计算机网络的三种通讯模式(单播,广播,组播)小结
- 网络中的三种通讯模式:单播、广播、组播(多播)
- 网络通信中的单播、广播和组播的实现
- Zigbee单播、组播、广播网络通信
- 为什么OSPF在广播网络里面,DD和LSR采用单播,而LSU hello采用组播。
- 网络通信:单播、广播、组播
- 网络通信:单播、广播、组播
- 网络单播、组播(多播)、广播的区别
- udp单播-广播-组播-python例子
- Linux网络编程[网络中的广播]
- Java单播、广播、多播(组播)
- 单播、多播(组播)和广播的区别,搞通信选整明白这三个东东
- (转)单播、多播(组播)和广播的区别
- 组播 广播 单播
- 单播、多播(组播)和广播的区别
- Linux网络编程一步一步学-UDP组播
- 单播、多播(组播)和广播的区别
- 单播(unicast)、组播(multicast)、广播(broadcast)的区别
- [转载] linux udp 单播组播广播实现