广播与多播1.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广播与多播1

课程目标 广播的概念与实现 多播的概念与实现 单播广播与多播 之前学习使用UDP与TCP处理的都是单播。 单播只允许一台主机进程与另一台主机一对一地通信. 如果一台主机需要与多台主机一对多地通信,就要使用多广播与多播. 简单地说,单播是一台主机向另外一台主机发送数据;广播是一台主机向本子网内的所有主机发送数据;多播是在单播和广播之间提供一种折衷方案,数据只发往网络中的部分主机. TCP只支持单播. 利用UDP可以实现广播与多播. 广播的用途 假定服务器主机在本地局域网上,但不知道它的单播IP地址时对它进行定位,即进行资源发现。 当有多个客户和单个服务器通信时,减少局域网上的数据流量。 使用广播的因特网应用的例子: ARP协议通过链路层广播定位具有指定IP地址的主机的MAC地址 主机通过广播向DHCP服务器申请IP地址 广播地址 子网广播地址 所有主机号全为1的IP地址是子网广播地址。 向子网广播地址发送的数据报,子网内的所有主机都能收到。 子网广播数据报不会被路由器转发。 受限广播地址 255.255.255.255地址为受限广播地址。 受限的意思是路由器不会转发该地址的IP数据报。 BOOTP和DHCP服务器就是利用这个地址为发出IP地址广播申请的主机分配IP地址 。 链路层广播地址 MAC地址全1的地址,即FF:FF:FF:FF:FF:FF。 带有这样目的MAC地址的帧经过任何该子网上的主机时,都会被其链路层接收。 ARP就是利用这个地址发出广播来确定具有指定IP地址对应主机的MAC地址。 广播过程 广播的实现 广播只需要更改UDP客户端。 UDP客户端广播包跟发送普通的UDP包没有什么区别,但是要注意两点: 发送前,要设置广播选项 发送地址不是某一台机器的IP,而是整个网络的广播地址(如192.168.0.255) UDP广播客户端实例 多播的用途 单播和广播是两个极端,要么一个,要么全部。 多播提供一种折衷方案,多播数据报仅由对该数据报感兴趣的接口接收。 广播一般局限于局域网。 而多播既可以用于局域网也可以跨越广域网。 加入多播组 主机要接收多播数据必须预先加入多播组。 IP多播组由特定IP地址来区分。 进程通过把UDP套接字(SOCK_DGRAM类型)绑定到一个多播组的IP地址,并设置相应的套接字选项,就可以加入这个多播组。 设置套接字选项通知网络接口该多播地址上到来的消息应该被传送给这个套接字。 如果同一台机器上有多个进程加入该组,则网络接口会把每个消息复制给所有这些进程。 多播地址 多播是通过D类地址进行的。 D类地址的前4位是1110,后面28位是多播的组标识。 多播地址范围是224.0.0.0 ~ 239.255.255.255。 224.0.0.1为全主机组,支持多播的主机必须加入全主机组。 224.0.0.2为全路由组,支持多播的由器必须加入全路由组。 多播组按照多播范围(多播的消息会从源开始被传送多远)被分为四类: 链路-本地多播地址:224.0.0.0 ~ 224.0.0.255 这些地址是给那些在网络拓扑的最底层相连的机器的。 多播路由器不会转发这些地址的多播消息。 全局多播地址:224.0.1.0 ~ 238.255.255.255 该地址范围内的消息应该被所有多播路由器传播。 管理范围内的多播地址:239.0.0.0 ~ 239.255.255.255 这些地址用在专门组织内部,并且不应该被传递到组织范围之外。 多播IP地址与多播MAC地址的转换 多播MAC地址前24位固定为00000000 多播MAC地址第25为固定为0 多播MAC地址后23位取多播IP地址后23位 多播过程 多播的实现 多播只需要更改UDP服务器 UDP服务器需要接收某个多播组的多播数据必须预先加入该多播组: 多播选项 IP_ADD_MEMBERSHIP 加入一个多播组 IP_DROP_MEMBERSHIP 离开一个多播组 加入多播组 struct ip_mreq mltaddr; mtladdr.imr_multiaddr.s_addr = inet_addr(224.0.1.1); mtladdr.imr_interface.s_addr = htonl(INADDR_ANY); setsockopt(udpfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, mltaddr, sizeof(mcaddr)); 离开多播组 setsockopt(mltfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, m

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档