首页 > 代码库 > 《网络编程》广播和多播
《网络编程》广播和多播
概述
主机可採用的通信方式有例如以下三种:
- 单播:单台主机与单台主机之间的数据通信;
- 广播:单台主机向网络中全部主机发送数据报的过程;
- 多播:单台主机向选定的一组主机发送数据报的过程;
在网络协议中 IP 地址有三种方式,即为单播地址、广播地址 以及 多播地址。如果多个主机上的共享信道网络是以太网,每一个以太网帧包括源主机和目的主机的以太网地址。
若目的地址仅指定单个接收接口,则称为单播。在单播方式下,随意两台主机之间的通信不会干扰网内其它主机。若目的地址包括网上的全部主机的接收接口时,即一个主机要向网上全部主机发送帧,则称为广播。若一个主机把帧发送给属于多播组的多个主机,则称为多播。广播和多播仅应用于 UDP。能够将数据报文同一时候传给多个接收者,而 TCP 是一个面向连接的字节流协议。意味着仅仅能执行于两个主机(由 IP 地址确定)内的两个进程(由port号确定)之间的一条连接。
首先了解下信道传送的帧在主机的过滤过程。例如以下图所看到的:
信道传送的帧在主机的过滤过程:
- 首先,网卡查看由信道传送给来的帧,确定是否接收该帧,对该帧进行检验和。若检验和出错。则将其丢弃,若检验和正确。则将其传送给设备驱动程序。
- 设备驱动程序也对来自接口卡的帧进行过滤,首先确认该帧指定的协议类型。然后进行多播过滤检測该主机是否属于多播地址说明的多播组,若帧的指定协议类型为 IP 协议。则将其传给 IP 层。
- 在 IP 层中依据 IP 地址中的源地址和目的地址进程过滤检測。若正常则将其传送给下一层,如果是 UDP 层。
- 每次 UDP 接收来自 IP 传送来的数据报,再依据port号进行数据报过滤,若当前没有使用该port号的进程。则将其丢弃。并产生一个 ICMP 不可达报文,若是检验和错误,则直接将其丢弃;
广播
广播可分为两大类:定向的广播 和 受限的广播
- 受限的广播:受限的广播地址是 255.255.255.255。该地址用于主机配置过程中 IP 数据报的目的地址。此时。主机并不知道它所在的网络掩码,甚至它的 IP 地址都不知道。不论什么情况下。路由器都不能转发目的地址为受限的广播地址的数据报,因此。受限的广播地址的数据报仅仅能出如今本地网络中。
- 定向的广播:定向广播是将数据包发送到向本网络之外的特定网络全部主机。定向广播的目的地址是定向网络的广播地址。
- 指向网络的广播:指向网络的广播地址是主机号全为 1 的地址。比如 A 类网络广播地址是netid.255.255.255,当中 netid 是 A 类网络的网络号。路由器必须转发指向网络的广播。
- 指向子网的广播:指向子网的广播地址为主机号全为 1 且有特定子网号的地址。作为子网直接广播地址的 IP 地址须要了解子网掩码。
- 指向全部子网的广播:指向全部子网的广播也须要连接目的网络的子网掩码,以便与指向网络的广播区分开来。
指向全部子网的广播地址的子网号即主机全是 1。
多播
多播也称为组播,组播是向指定的一组主机发送数据包。
与单播相比,提高了发送数据包的效率。与广播相比。降低了网络流量。与广播不同的是。要实现组播须要在接受组播的客户机上安装对应的client程序。
能接收发送一个特定多播组地址数据的主机集合称为主机组。
IP 多播提供两类服务:
- 向多个目的地址传送数据。
- 客户对server的请求;
总结
单播是将数据报发给特定的单台主机,广播是将数据报发送给网络中全部的主机,而多播是将数据报发送给网络的一个主机组。广播的缺点是网络中的全部主机都必须处理数据报。而多播不须要,降低了网络流量。
《TCP/IP 具体解释》
《网络编程》广播和多播