`

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

阅读更多

 

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差错(没必要)。

 

分享到:
评论

相关推荐

    《TCP/IP详解,卷1:协议》

    第12章 广播和多播 128 第13章 IGMP:Internet组管理协议 136 第14章 DNS:域名系统 142 第15章 TFTP:简单文件传送协议 159 第16章 BOOTP: 引导程序协议 163 第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与...

    TCP-IP详解卷二 TCP-IP详解卷二 TCP-IP详解卷二

    第7章域和协议 第8章IP:网际协议 第9章IP选项处理 第10章IP的分片与重装 第11章ICMP:Internet控制报文协议 第12章IP多播 第13章IGMP:Intemet组管理协议 第14章IP多播选路 第15章插口层 第16章插口VO 第17章插口...

    TCP/IP详解 卷1:协议--源代码

    第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播...

    tcp/ip详解第一卷

    《TCP/IP详解》第一卷是关于网络通信协议TCP/IP的经典入门教材,由W. Richard Stevens撰写。该书深入浅出地讲解了TCP/IP协议族,是网络工程师和相关技术人员必备的参考资料之一。TCP/IP协议族是现代互联网通信的基础...

    TCP/IP详解-TCP/IP详解

    - **IGMP**(Internet Group Management Protocol):用于管理多播组成员资格。 3. **传输层**(Transport Layer):主要为两台主机上的应用程序提供端到端的通信。TCP/IP提供了两种传输协议: - **TCP**...

    TCP/IP详解 卷1完整版

    第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播...

    51CTO下载-TCP-IP详解[卷1-协议].pdf

    TCP/IP网络层中最核心的协议是IP(Internet Protocol),此外还包括ICMP(Internet Control Message Protocol)用于错误报告和控制消息,以及IGMP(Internet Group Management Protocol)用于多播组管理。...

    TCP/IP详解 卷一卷二卷三

    卷一《协议》主要涵盖了网络接口层(如ARP和RARP)、网络层(如IP、ICMP、IGMP)、传输层(包括TCP和UDP)以及应用层的部分协议(如TELNET和FTP)。书中详细解析了这些协议的工作原理、交互过程以及各种控制机制,如...

    TCP/IP详解 卷1

    《TCP/IP详解卷1》深入探讨了TCP/IP协议族的核心概念和运作机制,为读者提供了全面的背景知识,尤其对于那些希望深入了解计算机网络基础的人士来说,这是一部不可或缺的资源。以下是对书中提及的关键知识点的详细...

    TCP-IP详解卷1 -- 协议1

    TCP/IP协议族的名称源自其两个核心协议,即TCP和IP,但还包括许多其他协议,如ICMP用于错误报告和网络探测,IGMP用于多播管理。链路层协议如以太网协议则处理相邻节点间的通信细节,而应用层协议如FTP则处理用户级别...

    TCP/IP详解(卷一)

    第12章 广播和多播 128 第13章 IGMP:Internet组管理协议 136 第14章 DNS:域名系统 142 第15章 TFTP:简单文件传送协议 159 第16章 BOOTP: 引导程序协议 163 第17章 TCP:传输控制协议 170 第18章 TCP连接的建立与...

    对以太网全硬件TCP/IP协议栈的简单认识-w5500以太网协议基本认识.pdf

    传输层**:提供可靠的端到端数据传输服务,主要通过TCP协议实现,此外还有UDP协议支持非连接服务。 **3. 网络层**:负责数据包的路由选择和转发,核心协议是IP协议,同时还包括ICMP(Internet Control Message ...

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    TCP/IP 详解(第二卷)源代码 2011.7.25

    《TCP/IP详解(第二卷)》是网络通信领域的一本经典著作,主要涵盖了TCP/IP协议栈的高级主题,包括TCP、UDP、IP选项、ICMP、ARP、RARP以及网络层和传输层的其他协议。这份2011年7月25日的源代码可能包含了作者对这些...

    TCP/IP详解

    第一卷《TCP/IP详解:协议》主要介绍了TCP/IP的基础知识和核心协议。它详细讲解了网络接口层(如ARP和RARP)、互联网层(如IP、ICMP、IGMP)以及传输层(如TCP和UDP)。在这一卷中,你可以了解到网络分层模型的工作...

    TCP-IP详解卷1:协议

    这些协议分别对应于OSI模型的不同层次,其中IP层负责网络层的数据传输,ICMP用于发送错误消息和操作信息,IGMP管理多播组成员关系,TCP和UDP分别提供面向连接和无连接的数据传输服务,而Telnet、FTP和SMTP则是应用层...

    TCP/IP详解卷1:协议

    第12章 广播和多播 128 12.1 引言 128 12.2 广播 129 12.2.1 受限的广播 129 12.2.2 指向网络的广播 129 12.2.3 指向子网的广播 129 12.2.4 指向所有子网的广播 130 12.3 广播的例子 130 12.4 多播 132 12.4.1 多播...

    TCP/IP详解 第一卷(完整)

    IGMP(Internet Group Management Protocol)则是用于多播组管理的协议,允许主机声明对特定多播组的兴趣,以便路由器可以有效地转发多播数据包,常用于视频流媒体和在线会议等场景。 网络接口层涉及的是物理网络和...

Global site tag (gtag.js) - Google Analytics