12 13 广播和多播,IGMP协议

ping过程详细解读 0. 前言 在讲解ping过程之前,我们需要了解以下概念。 1). 何为ping   PING (Packet Internet Groper),因特网包探索器,用于测试网络连通性的程序。   Ping发送一个ICMP(Internet Control Messages Protocol,因特网信报控制协议);回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。   ... 阅读详情

1.单播,多播,广播的介绍

1.1.单播(unicast)

单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据。

1.2.广播(unicast)

广播是主机针对某一个网络上的所有主机发送数据包。这个网络可能是网络,可能是子网,还可能是所有的子网。如果是网络,例如A类网址的广播就是 netid.255.255.255,如果是子网,则是netid.netid.subnetid.255;如果是所有的子网(B类IP)则是则是 netid.netid.255.255。广播所用的MAC地址FF-FF-FF-FF-FF-FF。网络内所有的主机都会收到这个广播数据,网卡只要把 MAC地址为FF-FF-FF-FF-FF-FF的数据交给内核就可以了。一般说来ARP,或者路由协议RIP应该是以广播的形式播发的。

1.3.多播(multicast)

可以说广播是多播的特例,多播就是给一组特定的主机(多播组)发送数据,这样,数据的播发范围会小一些(实际上播发的范围一点也没有变小),多播的MAC地址是最高字节的低位为一,例 如01-00-00-00-00-00。多播组的地址是D类IP,规定是224.0.0.0-239.255.255.255。

虽然多播比较特殊,但是究其原理,多播的数据还是要通过数据链路层进行MAC地址绑定然后进行发送。所以一个以太网卡在绑定了一个多播IP地址之后,必 定还要绑定一个多播的MAC地址,才能使得其可以像单播那样工作。这个多播的IP和多播MAC地址有一个对应的算法,在书的p133到p134之间。可以看到 这个对应不是一一对应的,主机还是要对多播数据进行过滤。

个人的看法:广播和多播的性质是一样的,路由器会把数据放到局域网里面,然后网卡对这些数据进行过滤,只拿到自己打算要的数据,比如自己感兴趣的多 播数据,自己感兴趣的组播数据。当一个主机运行了一个处理某一个多播IP的进程的时候,这个进程会给网卡绑定一个虚拟的多播mac地址,并做出来一个多播 ip。这样,网卡就会让带有这个多播mac地址的数据进来,从而实现通信,而那些没有监听这些数据的主机就会把这些数据过滤掉,换句话说,多播,是让主机 的内核轻松了,而网卡,对不起,您就累点吧。

一些文章也印证了这种想法,最明显的就是局域网监听的原理、实现与防范

2.一些验证性实验

这些实验并不是很复杂,我们只是要ping一下一般的ip和一个广播地址。首先我ping一下自己所在的子网的某一台主机:

Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time=1ms TTL=255

可以看到,机器返回的是一台主机的回应结果,进而推测,如果我ping一个广播地址呢?结果如下

Reply from 192.168.11.9: bytes=32 time=1ms TTL=255
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64
Reply from 192.168.11.218: bytes=32 time<1ms TTL=64
Reply from 192.168.11.174: bytes=32 time<1ms TTL=64

可以看到,ping返回了一些随机的ip的结果,这些ip都是与主机在同一子网内的ip。我们可以看到,广播实际上是给处于子网内的所有ip发信。

再来一个多播的例子,但是要实现这个多播并不容易,因为我不知道网络内有多少个多播组,就只好利用几个特殊的多播地址来验证了。

对于多播地址,有几个特殊的多播地址被占用,他们是

  1. 224.0.0.1--该子网内所有的系统组。
  2. 224.0.0.2--该子网内所有的路由器。
  3. 224.0.1.1--网络实现协议NTP专用IP。
  4. 224.0.0.9--RIPv2专用IP

所以只要ping这几个IP,就应该能得到一些结果,比如说我ping 224.0.0.2。

Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255
Reply from 192.168.11.1: bytes=32 time<1ms TTL=255

我们可以看到,这回ping只返回了一个ip的回应。而这个就是我的网关的地址,这也验证了224.0.0.2是所有路由器的多播(组播)地址

3.IGMP协议

IGMP的作用在于,让其他所有需要知道自己处于哪个多播组的主机和路由器知道自己的状态。一般多播路由器根本不需要知道某一个多播组里面有多少个主机,而只要知道自己的子网内还有没有处于某个多播组的主机就可以了。只要某一个多播组还有一台主机,多播路由器就会把数据传输出去,这样,接受方就会通过网卡过滤功能来得到自己想要的数据。为了知道多播组的信息,多播路由器需要定时的发送IGMP查询,IGMP的格式可以看书,各个多播组里面的主机要根据查询来回复自己的状态。路由器来决定有几个多播组,自己要对某一个多播组发送什么样的数据。

这种查询回应数据报的TTL一般是1,而且就算是出错也不产生ICMP差错(没必要)。


数据包传输方式:单播、多播、广播、组播、泛播 由于广播域被认为是OSI中的第二层概念,所以Hub,交换机等第一,第二层设备连接的节点被认为都是在同一个广播域。冲突域(Collision Domain):一组与同一条物理介质相连的设备,其中任何两台设备同时访问该介质都将导致冲突,冲突域中同一时间内只有一台机器能够发送数据。第二层设备如交换机和网桥,将网络划分成多个网段,每个网段是一个独立的冲突域,但是相连的所有设备是一个广播域,交换机的每个端口就是一个冲突域。Hub是第一层(物理层)的,用于子网内数据传送,广播的,浪费带宽。,但多对一发送会造成冲突。 阅读详情

相关推荐

TCP/IP详解:协议(UDP,广播和多播)

第11章:UDP:用户数据报协议 UDP不提供可靠性 TCP端口号由TCP来查看,UDP端口号由UDP来查看;TCP端口号与UDP端口号是相互独立的 UDP首部   UDP校验和可选,覆盖UDP首部和UDP数据 如果发送端没有计算检验和而接收端检测到检验和有差错,那么UDP数据报就要被悄悄地丢弃。不产生任何差错报文(当IP层检测到IP首部检验和有差错时也这样做)。 不是所有的以太网数据帧

Jinming Su 2万+

TCP/IP详解学习笔记(7)-广播和多播,IGMP协议

1.单播,多播,广播的介绍1.1.单播(unicast)单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF-FF-FF-FF-FF这样的地址)。现在的具有路由功能的主机应该可以将单播数据定向转发,而目的主机的网 络接口则可以过滤掉和自己MAC地址不一致的数据。

一块积木 2万+

liquibase介绍

1、Liquibase还是Flyway Flyway和Liquibase都支持专业数据库重构和版本控制所需的所有功能,因此您将始终知道要处理的数据库模式的版本以及它是否与软件版本匹配。两种工具都集成在Maven或Gradle构建脚本中以及Spring Boot生态系统中,因此您可以完全自动化数据库重构。 Flyway使用SQL定义数据库更改,因此您可以定制SQL脚本,使其与基础数据库技术(例如Oracle或PostgreSQL)良好地配合使用。另一方面,使用Liquibase,您可以通过使用XML,YA

赶路人儿 7534

IP组播综合实验

本篇是IP组播的综合实验!

坏坏-5的博客 2581

ENVI5.6 Seamless Mosaic多景影像镶嵌色差问题

多景影像无缝镶嵌色差问题拟解决方法

Matchaya的博客 7703

基于Flink的风控系统

可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。在Flink中,可以使用Flink-Stream进行数据流的处理,或者使用Flink-Kafka进行Kafka数据流的消费和处理。Flink的运行时本身也支持迭代算法的执行。可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。

m0_68231587的博客 1875

ICMP,IGMP和SNMP(协议区别)

ICMP,IGMP和SNMP(协议区别):软考网工知识点总结

weixin_69884785的博客 6977

深入CRSF协议数据包:手撕STM32代码,教你像调试串口一样分析ELRS遥控数据流

本文深入解析CRSF协议数据包,通过手撕STM32代码,教你如何像调试串口一样分析ELRS遥控数据流。从硬件准备到数据包捕获状态机设计,再到高级数据分析技巧和实战应用,全面覆盖CRSF协议的解析与优化,帮助开发者构建稳定可靠的通信系统。

weixin_29194693的博客 337

概说《TCP/IP详解 卷2》第12章 IP多播

原文链接:https://mp.weixin.qq.com/s/ckh1n9tgKwhNytyRa0l47A 本文要点 引言 多播数据结构 以太网多播地址 ether_multi结构 in_multi结构 ip_moptions结构 多播插口选项与TTL值 ip_setmoptions函数 ...

记录技术成长之路 1324

SNAP计算哨兵二号的叶面积指数(LAI)

对于哨兵二号数据以及LANDSAT8数据,SNAP提供已经集成好的模块计算LAI。在Optical->Thematic Land Processing->Biopyhsical Processor目录下面。 对于经过Sen2Cor处理好的数据,需经过重采样才可进行计算。重采样工具在Raster->Geometric->Resampling。 如果选择Biopyhsical Processor S2_10m进行计算,需要将所有的波段都重采样为10米(哨兵二号的第二波段为10米,可据此波

gxwwww的博客 9417

VS2017配置PCL1.9.1 for win10(超详细)

准备工作 VS2017 自行下载 PCL1.9.1 点击链接跳转Github下载,根据自己的环境选择 win64或win32,作者下载的是:PCL-1.9.1-AllInOne-msvc2017-win64.exepcl-1.9.1-pdb-msvc2017-win64.zip 安装PCL 双击点开PCL-1.9.1-AllInOne-msvc2017-win64.exe,选择Add PCL to the system PATH for all users, 更改安装路径,E:\Progra

malapoa的博客 1146

TCP/IP详解学习笔记(5)-广播和多播,IGMP协议

目录(?)[-] 1单播多播广播的介绍 11单播unicast 12广播unicast 13多播multicast 2一些验证性实验 3IGMP协议1.单播,多播,广播的介绍 1.1.单播(unicast) 单播是说,对特定的主机进行数据传送。例如给某一个主机发送IP数据包。这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说,就是网卡的MAC地址(不是FF-FF

311

【Zephyr电源与功耗专题】13_PMU电源驱动介绍

本文介绍的PMU芯片包含2路DCDC和6路LDO,在Zephyr实时操作系统下实现了完整的电源管理解决方案。

zero的博客 842

tcp/ip详解卷一(笔记2:UDP及相关的协议)

文章目录11.UDP11.1 关于ip分片11.2 udp限制本地、远端ip地址11.2.1 限制本地ip地址11.2.2 限制远端ip地址12.广播与多播13.14. 11.UDP 11.1 关于ip分片 在ip首部中,下面这些字段用于分片过程。对应发送端发送的每份ip数据报来说,其标识字段都包含一个唯一的值。该值在数据报分片时被复制到每个分片中。标志字段用其中一个bit来表示“更多的片”。除了...

随心的专栏 461

网络安全与黑客攻防常见设备:前置机、跳板机、堡垒机与肉鸡

前置机、跳板机、堡垒机和肉鸡,这些看似冷僻的技术名词,实则是网络安全与黑客攻防战中的关键角色。它们有的守护着企业的数字Pltform,保卫网络安全;有的则成为黑客的跳板,游走于灰色地带。

网络技术联盟站 962

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

udp多播

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

weixin_46539107的博客 739

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ICMP和IGMP,ping实现原理

ICMP ICMP全称Internet Control Message Protocol(网际控制信息协议)。属于TCP/IP体系中的网络层,是IP协议的一个补充,主要用于在主机与路由器之间传递控制信息,包括差错报告和查询信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。ICMP报文是在IP数据报内部传输的。 ICMP报文格式 ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和,8位类型和8位代码字段一起决定了ICMP报文的类型和功能: 类型(Type):一个8位类

m0_45861545的博客 3792

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

UDP组播相关知识

UDP组播概念与创建流程

qq_40854508的博客 1772

计算机网络导论 ARP RARP ICMP IGMP

ARP 只知道目的的IP地址,发送一个广播地址询问目的的MAC地址 这个地方其实是有点疑惑的。假如我要访问www.qq.com,我通过DNS解析,获取到www.qq.com的112.53.27.101地址。那我需不需要ARP来知道112.53.27.101的MAC地址呢? 其实是不需要的,我只要知道我路由器的MAC地址就可以了,我的IP包写的是 我的IP地址 和 112.53.27.101,Ethernet包写的是我的MAC地址 和 路由器的MAC,我只需要知道路由器MAC地址 所有ARP就是来知道局域网里

csjue的博客 288

多播路由技术深度解析:从PIM-SM原理到生产环境部署实战

多播(组播)是一种高效的一对多网络通信模型,其核心原理是通过构建分发树,将单一数据源的信息同时传递给多个接收者,从而大幅节省网络带宽和服务器资源。该技术基于IP多播地址和IGMP协议实现组成员管理,并通过多播路由协议动态维护最优传输路径。在技术价值上,多播能有效解决大规模实时数据分发场景下的网络拥堵问题,显著提升传输效率。其典型应用场景包括金融行情分发、在线直播、视频会议和数据中心内部通信等。本文以当前主流的PIM-SM协议为例,深入剖析了稀疏模式多播的工作机制,并提供了从基础配置、状态验证到生产环境高可用

weixin_34314962的博客 358

[笔记] Microsoft Windows网络编程《三》网际协议

本章讲述网际协议(IP)。第1章讨论到,要通过 Winock 建立通信,必须了解如何针对特定协议(已在第1中以IPv4为例作了说明)为工作站寻址本章要讨论IP4 和IPV6,第4 章将叙述 Windows平台上最常见的协议。IPv4 是一种用于Internet 的网络协议,已经广为人知。IP 可广泛用于人多数计算机操价系统上也可用于大多数局域网(LAN,例如办公室小型网络)和广域网(WAN,例如Internet)。随着Interet中计算机数量的爆炸式增长,IPv4 的局限性越来越明显。

二次元怪兽的博客 552

组播、广播、单播

组播(Multicast)传输: 在发送者和每一接收者之间实现点对多点网络连接。 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。 单播、组播、广播的差别可以看下图: 单播(unicast): 是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。 组播(multicast): 也叫多播, 多点广播或群播。

liqingtx的专栏 3495

TCP/IP详解——笔记2

第12章 广播和多播 广播和多播仅用于UDP,TCP是一个面向连接的协议,是在两主机的两进程间存在一条连接。 广播:一个主机向网上的所有其他主机发送帧 多播:介于单播和多播之间,将帧传送给属于多播组的多个主机 多播地址用十六进制表示01:00:00:00:00:00 主机对由信道传送过来帧的过滤过程 多播的出现减少了对应用不感兴趣主机的处理负荷 网卡知道主机属于哪个多播组,仅接受

day day up 330
上一篇: 11 UDP协议
下一篇: 14 DNS域名系统
otuhacker
博客等级 码龄18年 21粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值