精华内容
下载资源
问答
  • 106-多播地址 千次阅读
    2017-06-04 17:35:46

    1. 多播地址

    多播地址,类似“QQ群号”,它是 D 类 IP 地址(224.0.0.0~239.255.255.255)。

    D 类 IP 地址的首 4 位总是 2 进制 1110 开头,因此,可用的范围就只剩下后 28 位。这 28 位称为 group id——多播组 ID,完整的 32 位称为 group address——组地址

    2. 多播地址转换成 mac 地址

    2.1 思考

    在单播中,我们知道可以使用 arp 协议将查找 ip 地址(A、B、C类 ip 地址)对应的接口 mac 地址(物理网卡地址)。只有目标 mac 地址与自己匹配的单播帧,主机才会接收。

    在广播中,因为数据帧要发给链路中的所有主机,约定目标 mac 地址为 ff:ff:ff:ff:ff:ff,链路上的所有主机,都应无条件的接收该广播帧。

    那么问题来了,多播介于单播和广播之间,目标 mac 地址该如何约定?看起来似乎是一个挺困难的问题。在这里,你应该稍微停下几分钟的时间思考一下,交给你来办,要怎么做呢?

    我们借鉴 QQ 群的思路,它本身就是一种多播手段,只有加入 QQ 群的同学才会收到群消息,没加入 QQ 群的,是收不到消息的。如果某个网卡想接收某个组的消息,也应该加入该组。下面我们加入 230.2.2.2 这个组为例:

    网卡显然是不认 IP 地址的,只认 mac 地址。RFC1112 制定了一套规则,将多播 IP 地址按照固定算法计算出一个 mac 地址(这是算出来的,实际上并没有任何网卡的 mac 地址能匹配上)

    比如说,多播地址 230.2.2.2,通过固定算法计算出的 mac 地址为 01:00:5e:02:02:02,这样一来,如果网卡已经加入了 230.2.2.2 这个组,一旦遇到到目标 mac 地址为 01:00:5e:02:02:02 的帧后,就直接接收。如果没有加入该组,遇到该帧,直接丢弃。

    2.2 多播地址转 mac 地址的算法

    计算公式:

    // 括号中的计算含义表示取 ip 地址的低 23 位。
    macaddr = 01:00:5e:00:00:00 + (ipaddr & 00.7f.ff.ff)
    • 例 1:

    多播 ip 地址为 224.128.64.32,先转换为 16 进制,为 e0.80.40.20,然后取低 23 位:

    e0.80.40.20 & 00.7f.ff.ff = 00.00.40.20

    所以有:

    macaddr = 01:00:5e:00:00:00 + 00.00.40.20 = 01:00:5e:00:40:20

    • 例 2:

    多播 ip 地址为 224.0.64.32,经过上面的公式计算后,得到的 mac 地址为 01:00:5e:00:40:20,结果和例 1 中的一样。

    上面的例子可能会引起一个问题,主机只想接收 224.0.64.32 这个组的消息,但是网卡却收了 224.80.64.32 的帧,怎么办?

    对于组播 mac 地址来说,有些网卡使用 hash 算法,计算出 hash 码,如果 hash 码相同,则认为匹配上了。即使不同的 mac 地址,也可能计算出相同的 hash 码。这种问题被称为不完备过滤(imperfect filtering)。还有一些网卡,根本不支持多播过滤,只要有多播帧来了,统统接收,这被称为 多播混杂模式(multicast promiscuous)

    如果网卡能完全匹配组播 mac 地址(即 mac 地址和 hash 码是一一对应的关系),则称为完备过滤(perfect filtering)

    上面的例子中我们知道,即使网卡实现了完备过滤,仍然需要在 ip 层加入过滤,看是否真的加入了 224.80.64.32 这个组,如果没有,仍然会丢弃该数据报,我们将此称为完备过滤(perfect filtering)

    尽管多播 ip 地址与 mac 地址之间的映射存在着这种不足,但是多播仍然比广播好。

    • 例 3:

    最后,再来看一个现实中的例子:


    这里写图片描述
    图1 抓取的多播数据包,观察其目标 mac 地址

    3. 特殊的多播 ip 地址

    224.0.0.0 ~ 224.0.0.255 之间的地址,称为链路局部的(link local)多播地址。多播路由器从不转发以这些地址为目的地址的数据报。

    这些地址中,还有一些是有特殊用途的。例如:

    • 224.0.0.0 基地址(保留)
    • 224.0.0.1 本子网内的所有主机(all-hosts)组。子网上所有具有多播能力的设备(主机、路由器、打印机等)必须在所有具备多播能力的接口上加入该组。
    • 224.0.0.2 本子网内的所有路由器(all-routers)组。
    • 224.0.0.3 未指派
    • ……

    • 224.0.1.0 ~ 238.255.255.255 是全球范围都可使用的多播地址
    • 239.0.0.0 ~ 239.255.255.255 限制在一个组织的范围

    4. 总结

    • 掌握多播地址转换为 mac 地址的方法
    • 不完备过滤与完备过滤的含义
    更多相关内容
  • 先看这张图,组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的取值范围是224~~239。 2、这些IP地址用来做什么 224.0.0.0~224.0.0.255为预留的组播地址(永久组...

    1、是什么

    在这里插入图片描述

    先看这张图,组播地址是分类编址的IPv4地址中的D类地址,又叫多播地址,他的前四位必须是1110,所以网络地址的取值范围是224~~239。


    2、这些IP地址用来做什么

    • 224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用

    • 224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet

    • 224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效

    • 239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效

    组播地址列表如下:
    • 224.0.0.0 基准地址(保留)
    • 224.0.0.1 所有主机的地址 (包括所有路由器地址)
    • 224.0.0.2 所有组播路由器的地址
    • 224.0.0.3 不分配
    • 224.0.0.4 dvmrp路由器
    • 224.0.0.5 该地址被OSPF协议所使用,所有使用OSPF协议的路由器都是这个地址
    • 224.0.0.6 OSPF DR/BDR
    • 224.0.0.7 st路由器
    • 224.0.0.8 st主机
    • 224.0.0.9 rip-2路由器
    • 224.0.0.10 Eigrp路由器
    • 224.0.0.11 活动代理
    • 224.0.0.12 dhcp 服务器/中继代理
    • 224.0.0.13 所有pim路由器
    • 224.0.0.14 rsvp封装
    • 224.0.0.15 所有cbt路由器
    • 224.0.0.16 指定sbm
    • 224.0.0.17 所有sbms
    • 224.0.0.18 vrrp
    展开全文
  • 单播、广播和多播IP地址

    万次阅读 2018-12-11 13:46:48
    播地址是IP网络中最常见的。包含单播目标地址的分组发送给特定主机,一个这样的例子是,IP地址为192.168.1.5(源地址)的主机向IP地址为192.168.1.200(目标地址)的服务器请求网页,如图 要发送和接收单播分组...

    除地址类别外,还可根据传输的消息特征将IP地址分为单播、广播或多播。主机使用IP地址进行一对一(单播)、一对多(多播)或一对所有(广播)的通信。

    1.单播

    单播地址是IP网络中最常见的。包含单播目标地址的分组发送给特定主机,一个这样的例子是,IP地址为192.168.1.5(源地址)的主机向IP地址为192.168.1.200(目标地址)的服务器请求网页,如图

    要发送和接收单播分组,IP分组报头中必须有一个目标IP地址,而以太网帧报头中必须有相应的目标MAC地址。IP地址和MAC地址一起将数据传输到特定的目标主机。

    提 示:如果目标IP地址属于另一个网络,则在帧中使用的目标MAC地址将为与源IP地址位于同一个网络中的路由器接口的MAC地址。

    2.广播

    广播分组的目标IP地址的主机部分全为1,这意味着本地网络(广播域)中的所有主机都将接收并查看该分组。诸如ARP和DHCP等很多网络协议都使用广播。

    例如:

    C类网络192.168.1.0的默认子网掩码为255.255.255.0,其广播地址为192.168.1.255,其主机部分为十进制数255或二进制数11111111(全为1);

    B类网络172.16.0.0的默认子网掩码为255.255.0.0,其广播地址为172.16.255.255;

    A类网络10.0.0.0的默认子网掩码为255.0.0.0,其广播地址为10.255.255.255。

    在以太网帧中,必须包含与广播IP地址对应的广播MAC地址。在以太网中,广播MAC地址长48位,其十六进制表示为FF-FF-FF-FF-FF-FF。下图所示的是一个广播IP分组

    3.多播

    多播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个多播组IP地址,多播地址范围为224.0.0.0~239.255.255.255。由于多播地址表示一组设备(有时被称为主机组),因此只能用作分组的目标地址。源地址总是为单播地址。

    远程游戏就是一个使用多播地址的例子,很多玩家通过远程连接玩同一个游戏;另一例子是通过视频会议进行远程教学,其中很多学生连接到同一个教室。还有一个例子是硬盘映像应用程序,这种程序用于同时恢复众多硬盘的内容。

    同单播地址和广播地址一样,多播IP地址也需要相应的多播MAC地址在本地网络中实际传送帧。多播MAC地址以十六进制值01-00-5E打头,余 下的6个十六进制位是根据IP多播组地址的最后23位转换得到的。一个MAC多播地址是01-00-5E-0F-64-C5,如图所示。每个十六 进制位相对于4个二进制位。

    转自:http://www.cnblogs.com/therock/articles/2798653.html

    展开全文
  • 多播地址基础

    千次阅读 2017-08-10 16:32:58
    局部链接多播地址、预留多播地址和管理权限多播地址 三类: 1) 局部链接多播地址 范围在 224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包; ...

    转载至:http://blog.csdn.net/tennysonsky/article/details/44493407

    一、概述

    单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。


    IP 多播(也称多址广播或组播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的 TCP/IP 网络技术。多播是 IPv6 数据包的 3 种基本目的地址类型之一,多播是一点对多点的通信, IPv6 没有采用 IPv4 中的组播术语,而是将广播看成是多播的一个特殊例子


    多播作为一点对多点的通信,数据的收发仅仅在同一分组中进行,是节省网络带宽的有效方法之一。在网络应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。


    IP 多播应用大致可以分为三类:点对多点应用多点对点应用多点对多点应用

    1)点对多点应用是指一个发送者,多个接收者的应用形式,这是最常见的多播应用形式。典型的应用包括:媒体广播、媒体推送、信息缓存、事件通知和状态监视等。

    2)多点对点应用是指多个发送者,一个接收者的应用形式。通常是双向请求响应应用,任何一端(多点或点)都有可能发起请求。典型应用包括:资源查找、数据收集、网络竞拍、信息询问等。

    3)多点对多点应用是指多个发送者和多个接收者的应用形式。通常,每个接收者可以接收多个发送者发送的数据,同时,每个发送者可以把数据发送给多个接收者。典型应用包括:多点会议、资源同步、并行处理、协同处理、远程学习、讨论组、分布式交互模拟(DIS)、多人游戏等。


    二、多播地址

    IP 多播通信必须依赖于 IP 多播地址,在 IPv4 中它是一个 D 类 IP 地址,范围从 224.0.0.0 到 239.255.255.255,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类:

    1)局部链接多播地址范围在 224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;

    2)预留多播地址为 224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;

    3)管理权限多播地址为 239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有 IP 地址,不能用于 Internet,可限制多播范围。


    一些多播组地址被 IANA 确定为知名地址,它们也被当作永久主机组,这和 TCP 及 UDP 中的知名端口相似。同样,这些知名多播地址在 RFC 最新分配数字中列出,注意这些多播地址所代表的组是永久组,而它们的组成员却不是永久的。这些地址如下:

    224.0.0.1    所有组播主机

    224.0.0.2    所有组播路由器

    224.0.0.4    DRMRP 路由器

    224.0.0.5    所有 OSPF 的路由器

    224.0.0.6    OSPF 指派路由器

    224.0.0.9    RPIv2 路由器

    224.0.0.10  EIGRP 路由器

    224.0.0.13  PIM 路由器

    224.0.0.22  IGMPv3

    224.0.0.25  RGMP

    224.0.1.1    NTP 网络时间协议


    多播地址与 MAC 地址的映射

    使用同一个 IP 多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。


    这个我们可以这样理解,多播地址就类似于 QQ 群号,多播组相当于 QQ 群,一个个的主机就相当于群里面的成员


     IPv4 的 D 类地址是多播地址。IEEE 把一块以太网多播组地址分给 IANA 以支持IP多播。块的地址都以 01:00:5e 开头,第 25 位为 0,低 23 位为 IPv4 多播地址( D类地址 )的低 23 位。IPv4 多播地址与 MAC 地址的映射关系如图所示:



    由于多播地址( D类地址 )中的最高 5bit 在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。32 个不同的多播组号被映射为一个以太网地址。例如,多播地址 224.128.64.32(十六进制 e0.80.40.20)和 224.0.64.32(十六进制 e0.00.40.20)都映射为同一以太网地址 01:00:5e:00:40:20。


    既然地址映射是不唯一的,那么设备驱动程序或 IP 层就必须对数据报进行过滤。因为网卡可能接收到主机不想接收的多播数据帧,如下图,假如主机 1 加入的多播为 224.128.64.32, 主机 2 加入的多播为 224.0.64.32,我们想给 224.0.64.32 所在的多播组 ( 主机 2 ) 发送信息,数据经过网卡时,224.128.64.32 (主机 1 ) 和 224.0.64.32 (主机 2 ) 所在多播组的网卡都会收到数据,因为它们的 MAC 地址都是 01:00:5e:00:40:20。这时候,如果网卡不提供足够的多播数据帧过滤功能,设备驱动程序就必须接收所有多播数据帧,然后对它们进行过滤,这个过滤过程是网络驱动或IP层自动完成。


    Linux多播编程

    套接口选项

    int setsockopt( int sockfd, int level,int optname,   

    const void *optval, socklen_t optlen );



    成功执行返回0,否则返回-1


    选项 IP_ADD_MEMBERSHIP 和 IP_DROP_MEMBERSHIP

    加入或者退出一个多播组,通过选项 IP_ADD_MEMBERSHIP 和 IP_DROP_MEMBERSHIP,对一个结构 struct ip_mreq 类型的变量进行控制,struct ip_mreq 原型如下:

    struct in_addr
    {

    in_addr_t s_addr;

    }


    struct ip_mreq          

    struct in_addr imn_multiaddr; // 多播组 IP,类似于 QQ 群号

    struct in_addr imr_interface;   // 将要添加到多播组的 IP,类似于QQ 成员号

    };


    多播只能用 UDP 或原始 IP 实现,不能用 TCP。

    展开全文
  • 对于一个以计算机网络连接的视频监控系统,一个需要解决的问题是个站点视频监控的网络通信问题,要求做到传输时延尽可能小,尽可能少地占用现有的...组源把数据包发送到特定组组,而只有属于该组组的地址才能接
  • 多播地址

    千次阅读 2017-01-19 15:33:51
    使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以...
  • 捕获广播或多播地址数据MAC地址数据端口应用程序数据Wireshark网络分析实例集锦大学霸Wireshark网络分析实例集锦大学霸3.8.3 捕获广播或多播地址数据广播地址就是当IP地址的网络和主机位全为1时,就是广播地址255....
  • 除地址类外,还可根据传输的消息特征将IP地址分为单播、广播或多播。主机使用IP地址进行一对一...单播地址是IP网络中最常见的。包含单播目标地址的分组发送给特定主机,一个这样的例子是,IP地址为192.168.1.5(源...
  • 为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。正如下图所示48位的MAC地址中的高25位是...
  • ip 多播地址 和mac多播地址隐射

    千次阅读 2016-12-15 14:02:42
    以下内容转载自: ...为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。正如
  • MA网络:也称为路访问网络,所谓的路访问网络是指一条物理信息可以发生给同一个网络上的其他路由器。...OSPF的组播地址:OSPF有两个组播地址一个是224.0.0.5[发生给所有的OSPF路由器];224.0.0.6[发生给所有的OSP
  • 然后将每个块转换为由冒号符号分隔的4位十六进制数字,如: 2001:0000:3238:00E1:0063:0000:0000:FEFB每一块个前导的0可以省略,一个块全为0可以简写为一个0,,个块为连续0的话可以简写为:: (地址表示中仅能有...
  • 第12章 多播多播路由选择协议

    千次阅读 2019-06-29 16:02:25
    第12章 多播多播路由选择协议 单播:只有一个源点网络和一个终点网络。...在这种类型通信中,源地址是一个单播地址,而目的地址则是一个组地址,在这个组中包含了一个或多个目的网络,且在这些目的网络中...
  • 为什么要使用IPv6地址由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6地址长度为128位,是v4长度的4倍。现有标准IPv4只支持大概40亿(4×109)个网络地址,而IPv6支持3.4 ×1038个,这...
  • 网络层(7.IP多播)

    千次阅读 2022-04-11 15:09:16
    现在IP多播属于互联网热点,例如:直播、实时信息交付(股票、新闻)、软件更新等。 多播可以大大节约互联网资源: 例如视频服务器要向90台主机发送相同的视频。 ①单播: 采用单播方式, 向 90 台主机传送同样的...
  • 文章目录6.1 链路本地单播地址6.1.1 链路本地地址的配置方式有6.1.2 链路本地单播地址格式6.1.3 链路本地单播地址范围6.1.4 链路本地单播地址其他信息1.动态链路本地地址:EUI-642.随机生成的接口ID3.静态链路本地...
  • IP组播(多播)简介

    千次阅读 2020-09-23 19:59:53
    是主机间一对一的通讯模式,网络中的设备根据网络报文中包含的目的地址选择传输路径,将单播报文传送到指定的目的地,只对接收到的数据进行转发,不会进行复制。它能够针对每台主机及时的响应,现在的网页浏览...
  • 什么是MAC多播地址

    千次阅读 2015-09-08 14:42:57
    多播就是给一组特定的主机(多播组)发送数据,这样,数据的播发范围会小一些, ...多播的MAC地址是最高字节的低位为一,例 如01-00-00-00-00-00。 多播组的地址是D类IP,规定是224.0.0.0-239.255.255.255。
  • 上一篇文章提到单播、多播。但是这是什么意思?接下来我们看一下。未完待续!!!
  • IPv4、IPv6地址、组播地址及子网掩码详解一 一、IPv4地址 1、IP地址的定义 IP地址是分配给IP网络中每台机器的数字标识符,它指出了设备在网络中的具体位置。由 32 位二进制数组成。IP地址是软件地址,而不是硬件地址...
  • 播地址分类 Cyrus

    千次阅读 2020-04-24 08:30:37
    一、组播地址分类 Multicast地址:224.0.0.0-239.255.255.255第一组八位元组为1110 Multicast地址也分为:预留的局部链路地址、全球范围地址、限制范围地址和GLOP地址。 >预留的局部链路地址(reserved link ...
  • 文章目录前言点到多点应用的发展与部署传统点到点应用点到多点应用用单方式部署点到多点应用用广播的方式部署点到多点网络组方式部署点到多点应用组基本概述组基本架构组源到路由器组IP地址MAC地址...
  • IPv6的组播地址

    千次阅读 2020-01-20 20:51:44
    理解IPV6的组播地址 IPv6的组播地址通常是为IPv6的组播服务,而IPv6通信的核心大量的使用了组播,IPv6不再使用广播,这与IPv4的通信不同,然而要理解IPv6的组播,首先需要明白三个关键点: 第一、任何节点都能够成为...
  •  单播地址是IP网络中最常见的。包含单播目标地址的分组发送给特定主机,一个这样的例子是,IP地址为192.168.1.5(源地址)的主机向IP地址为192.168.1.200(目标地址)的服务器请求网页,如下图所示。 、  
  • socket之UDP组播(多播

    千次阅读 2021-08-13 17:22:14
    1. 概述 1.1 单播用于两个主机间单对单的通信 1.2广播用于一个主机对整个局域网上所有主机上的数据通信 ...1.6多播是 IPv6 数据包的 3 种基本目的地址类型之一,多播是一点对多点的通信, IPv6 没有采用 IPv
  • IP地址 = 网络号+主机号。 分为A、B、C三类及特殊地址D...例如A类网络适合1600万台机器的大型网络,B类6万,C类只有256台。 划分规则 IP地址分为公网IP地址和私有IP地址。 公网IP是在Internet使用的IP地址,而私...
  • 单播 多播(组播) 广播区分

    千次阅读 2018-09-02 12:23:35
    2.首个字节低4位为奇数表示为组播地址:71XX-XXXX-XXXX,一般可通过mac_addr[0]&x01 来区分 3.除上述1、2以外的,为单播MAC地址   IP地址区分: 1.多播IP:使用D类地址,即224.0.0.0至239.255.255.255...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,115
精华内容 23,246
关键字:

多播地址属于