多播

本文介绍多播的概念、优势、缺点及应用,并通过实验详细讲解如何在广域网中实现多播,包括创建多播server和client,以及多播的编程实现和应用实例。
摘要由CSDN通过智能技术生成

Prac 4. 多播

实验中的全部代码托管在Github上,请通过 fork + pull request 方法来帮助改进项目。


导语:

单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网所有主机上的数据通信。单播和广播室两个极端,要么对一个主机进行通信,要么对整个局域网进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。
多播,也叫组播,将网络中统一业务类型的主机进行了逻辑分组,进行数据收发的时候其数据仅仅在同一个分组中进行,其他的主机没有加入次分组不能收发相应的数据。

一,实验内容

目标:尝试实现一个多播,完成以下功能:
创建一个多播server进程,用于发送多播消息给多播接收程序。多播IP地址是239.1.2.3 端口号为1234。
创建多个多播client进程,用于接收多播消息并显示消息。

二,多播的概念

2.1 广域网的多播

多播的地址是特定的,D类地址用于多播,即224.0.0.0到239.255.255.255之间的IP地址,并被划分为局部连接多播地址、预留多播地址和管理权限多播地址3类。

2.2 多播的优势

相对于传统的一对一的单播,多播有如下优势:
- 具有通中业务的主机加入同一数据流,共享同一通道,节省了贷款和服务器的优点,具有广博的优点而又没有广播所需要的带宽;
- 服务器的总带宽不受客户端的限制。由于组播协议由接受者的需求来确定是否进行数据流的转发,所有服务器端的带宽是常量,与客户端的数量无关;
- 与单播一样,多播是允许在广域网上进行传输的,而广播仅仅在同一局域网才能进行。

2.3 多播的缺点:

  • 多播和单播相比没有纠错机制,当错误发生的时候难以弥补,但是可以再应用层来实现此种功能。
  • 多播的网络支持存在缺陷,需要路由器和网络协议栈的支持。

2.4 多播的应用

多播的应用主要有网上视频,网上会议等。

三,多播的编程

3.1 编程选项

多播的程序设计使用setsockopt()函数和getsockopt()来实现,多播的选项是IP层的。

getsockopt()/setsockopt()的选项 含义
IP_MULTICAST_TTL 设置多播数据的TTL值
IP_ADD_MEMBERSHIP 在指定接口上加入多播组
IP_DROP_MEMBERSHIP 推出多播组
IP_MULTICAST_IF 获取默认接口或默认设置
IP_MULTICAST_LOOP 禁止组播数据回送

3.2多播程序设计框架

多播程序框架主要包含套接字初始化、设置多播超时时间、加入多播组、发送数据、接收数据以及从多播组离开几个方面。其步骤如下:

  1. 建立一个Socket
  2. 然后设置多播的参数,例如超时时间TTL、本地回环许可LOOP等
  3. 加入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值