广播、多播和IGMP的一点记录
广播和多播:仅应用于UDP
广播分为:
1.受限的广播(255.255.255.255)
2.指向网络的广播(eg:A类网络 netid.255.255.255)主机号为全1的地址
3.指向子网的广播:主机号为全1且有特定子网号的地址
4.指向所有子网的广播:(eg: 128.1.255.255 而subnet mask为 255.255.255.0)
IP多播提供两类服务:
1.向多个目的地址传送数据。如:向多个接收者分发邮件
2.客户对服务器的请求。
多播地址范围: 224.0.0.0~239.255.255.255 即28位多播组ID,IP地址的高四位为1110
由“多播”引发的血案:IGMP(Internet组管理协议)
IGMP的目的是让一个物理网络上的所有系统知道主机当前所在的多播组。IGMP和ICMP一样,都被当作IP层的一部分,通过IP数据报传输。IGMP报文长度固定,为8字节。
多播的基础就是一个进程的概念,该进程在一个主机的给定接口上加入了一个多播组。主机通过组地址和接口来识别一个多播组。
IGMP报告和查询:
多播路由器向子网内的所有系统组发送IGMP的查询报文格式以及主机向多播路由器发送IGMP报告的格式如下:
注:由于路由器希望主机对它加入的每个多播组均发回一个报告,所以将IGMP组地址设为0,此外,当进程离开一个组时,主机不会主动向多播路由器发送IGMP报告,即便是最后一个进程离开。而对于多播路由器来说,它仅仅想知道在给定的接口上的多播组中是否还至少有一个主机。关于TTL值,在上图中,TTL值均为1,其目的是使多播数据报仅局限在同一子网内传送。规定:从224.0.0.0~224.0.0.255的特殊地址空间的TTL值必须为1 。
224.0.0.1是“所有主机组地址”,当接口初始化后,同一物理网络中的所有具备多播能力接口上的主机均自动加入这个多播组,这个组的成员无需向多播路由器发送IGMP报告。
由P140多播路由器例子的一点总结:
当多播路由器选路的守护进程启动后,它发的所有查询IGMP报文的地址都是224.0.0.1,在多播路由表还为空时,多播路由器会频繁的发送IGMP查询消息,例子中的开始时间间隔是5秒,其目的就是要将多播路由表尽快建立起来;当多播路由表建立起来之后,查询时间间隔大概2分钟;主机每次回复IGMP报告的顺序是不一致的,每个报告仅包含一个组地址,因为主机在收到IGMP query的消息后会在0~10秒的随机时间延时后回复多播路由器。
广播、多播和IGMP的一点记录的更多相关文章
- 广播,多播,IGMP:网际组管理协议
广播,多播,IGMP:网际组管理协议 1.概述 IP有三种地址:单播地址, 广播地址,多播地址. 广播和多播仅应用于UDP. 每个以太网帧包含源主机和目的主机的以太网地址 ...
- 关于Java8:StreamAPI的一点记录
关于 Stream ,Functional Interface 的一点记录 stream对于集合操作的便捷度提升: import java.util.ArrayList; import java.ut ...
- 对Integer类中的私有IntegerCache缓存类的一点记录
对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127. // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可 ...
- 从symbol link和hard link 到 unlink函数的一点记录
之前一直对Linux的文件类型中的 “l” 类型的了解不是很深入,最近经过“圣经”指点,略知一二,在此先记录一下,以便以后查阅,之后会对文件和目录.文件I/O这部分再扩充. 首先需明确,Unix在查阅 ...
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
1.单播,多播,广播的介绍 1.1.单播(unicast) 单播是说,对特定的主机进行数据传送.例如给某一个主机发送IP数据包.这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说 ...
- 7.广播和多播,IGMP协议
1.单播,多播,广播的介绍 1.1.单播(unicast) 单播是说,对特定的主机进行数据传送.例如给某一个主机发送IP数据包.这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说 ...
- 《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP
1.广播和多播都只适用于UDP,因为TCP是面向连接的,需要将两台主机的两个进程绑定在一起,即IP地址和端口对 2.通常,网卡能看到网络中的每一个数据帧,但是往往它只接受目的地址与自己MAC地址相同的 ...
- TCP/IP详解学习笔记(9)-- 广播,多播,IGMP:网际组管理协议
1.概述 IP有三种地址:单播地址, 广播地址,多播地址. 广播和多播仅应用于UDP. 每个以太网帧包含源主机和目的主机的以太网地址.通常每个以太网帧发往单个目的主机,目 ...
- 关于删除MySQL Logs的一点记录
五一前,一个DBA同事反馈,在日常环境中删除一个大的slow log文件(假设文件大小10G以上吧),然后在MySQL中执行flush slow logs,会发现mysqld hang住. 今天尝试着 ...
随机推荐
- AC日记——青蛙的约会 poj 1061
青蛙的约会 POJ - 1061 思路: 扩展欧几里得: 设青蛙们要跳k步,我们可以得出式子 m*k+a≡n*k+b(mod l) 式子变形得到 m*k+a-n*k-b=t*l (m-n)*k-t ...
- Hotspot JVM下,parallel与concurrent的区别
转载于知乎 作者:Ted Mosby链接:https://www.zhihu.com/question/21535747/answer/144884632来源:知乎著作权归作者所有.商业转载请联系作者 ...
- UVA 272 TEX Quotes【字符串】
https://vjudge.net/problem/UVA-272 [分析]:标记一下. [代码]: #include <bits/stdc++.h> using namespace s ...
- iOS9.0 友盟分享详细过程
一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了.然后在这个方法里面设置Key - (BOOL)application:( ...
- Wildcard Matching - LeetCode
Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...
- eclipse中修改JDK版本
eclipse中,一个java项目依赖的JDK,需要进行绑定,但绑定的地方会有多个,类似层级结构. 1. eclipse的window -> preferences -> java com ...
- Python模拟浏览器上传文件脚本(Multipart/form-data格式)
http协议本身的原始方法不支持multipart/form-data请求,这个请求由原始方法演变而来的. multipart/form-data的基础方法是post,也就是说是由post方法来组合实 ...
- linux系统故障分析与排查
在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点.“对 ...
- ASP.NET Web API是如何根据请求选择Action的?[上篇] 【转】
http://www.cnblogs.com/leo_wl/p/3316548.html ASP.NET Web API是如何根据请求选择Action的?[上篇] Web API的调用请求总是针对定义 ...
- 利用js实现table增加一行
简单的方法: 用jquery插件,比如设置该table的id为mytable <table id="mytable"> <tr> <td> 第一 ...