单播,广播和组播

Posted by LuJiangBo on December 25, 2017

介绍

互联网上的每个接口必须由一个唯一的Internet地址,也被称作IP地址,而IP地址又被分为3大类即:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)

单播

每次只有两个实体相互通信,发送端和接收端都是唯一确定的。

广播

一个主机向网上的所有其他主机发送帧,这就是广播。
广播又分为以下4类:

  • 受限的广播: 地址为:255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址.在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中
  • 指向网络的广播: 指向所有网络的广播地址是主机号为全1的地址,例如A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号
  • 指向子网的广播: 指向子网的广播地址为主机号为全1且有特定子网号的地址(和指向网络的广播区别在于它有子网划分),作为子网直接广播地址的IP地址需要了解子网掩码,例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。
  • 指向所有子网的广播: 指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全 1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播

多播

多播处于单播和广播之间,多播的帧仅传送给属于多播组的多个主机. D类ip地址 在D类IP地址中,分配的28bit用作多播组号而不再表示其它。
多播组地址包括为 1110的最高4 bit和多播组号。它们通常可表示为点分十进制数,范围从224.0.0.0到239.255.255.255。
能够接收发往一个特定多播组地址数据的主机集合称为主机组 (host group)。一个主机组可跨越多个网络。主机组中成员可随时加入或离开主机组。主机组中对主机的数量没有限制,同时不属于某一主机组的主机可以向该组发送信息。
一些多播组地址被IANA确定为知名地址。它们也被当作永久主机组,这和TCP及UDP中的熟知端口相似。同样,这些知名多播地址在RFC最新分配数字中列出。这些多播地址所代表的组是永久组,而它们的组成员却不是永久的。
例如,224.0.0.1代表“该子网内的所有系统组”,224.0.0.2代表“该子网内的所有路由器组”。多播地址224.0.0.2用作网络时间协议NTP,224.0.0.9用作RIP-2.

协议栈各层对收到帧的过滤过程

了解广播和多播同时需要知道主机对由信道传送过来的帧的过滤过程。 下图是协议栈各层对收到帧的过滤过程 协议栈各层对收到帧的过滤过程

  • 首先,网卡查看由信道传送过来的帧,确定是否接收该帧,若接收后就将它传往设备驱动程序。通常网卡仅接收那些目的地址为网卡物理地址或广播地址的帧。
  • 如果如果将被传送给设备驱动程序(如果帧检验和错,网卡将丢弃该帧)。设备驱动程序将进行另外的帧过滤。首先,帧类型中必须指定要使用的协议( IP、ARP等等)。其次,进行多播过滤来检测该主机是否属于多播地址说明的多播组
  • 设备驱动程序随后将数据帧传送给下一层,比如,当帧类型指定为IP数据报时,就传往IP层。IP根据IP地址中的源地址和目的地址进行更多的过滤检测。如果正常,就将数据报传送给下一层(如TCP或UDP)
  • 每次U D P收到由IP传送来的数据报,就根据目的端口号,有时还有源端口号进行数据报过滤。如果当前没有进程使用该目的端口号,就丢弃该数据报并产生一个ICMP不可达报文(TCP根据它的端口号作相似的过滤)。如果UDP数据报存在检验和错,将被丢弃.