第九章 广播和本地组播(IGMP和MLD)
距离项目开启已经过去了一段时间,这段时间内自己学习的内容也算挺多的,但是也较容易遗忘,之后应该在空余的时间内多翻翻博客,更加清楚传统计算机网络的运作。
由于51要出去玩,更要好好利用好最近的时间。完成自己的每周规划。
并且考虑到最近身体比较虚弱…,应该更加早睡早起!
加油!
广播和本地组播(IGMP和MLD)
在引言中有下面一些比较重要的概念:
广播和组播为应用程序提供了两种服务
- 数据分组交付至多个目的地 //顾名思义
- 通过客户端请求/发现服务器 //类似于DHCP
一个广播请求会影响在广播范围内所有可以到达的主机,而组播只影响那些可能对该请求有兴趣的主机
注意,在广播的更高开销和简单性以及组播的效率改善和更多的复杂性之间存在一种平衡。
广播
广播是指将报文发送到网络中的所有可能的接收者。很容易的能够理解广播的概念,就像你拿着大喇叭对所有人喊话一样。所以它并不需要ARP请求来确定每个目的地的MAC地址。
一般而言,使用广播的应用程序使用UDP协议,然后调用一组普通的API来发送流量。并且我们在打算发送广播数据报的时候,要加上一些特殊的标志,这样确认后可以防止误操作而产生大量的广播流量,造成网络拥塞。
组播
组播的意思就是向一个组发送流量。
组播状态必须由主机和路由器来保持,定期的进行更新和删除操作,这样就能够很好的维护一个组。那他是如何更新的呢?我们下面的协议会讲到~
主机地址过滤
过滤发生在每个主机的网络接口卡(NIC)上,
NIC指接收目的地址是接口的硬件地址或者广播地址的那些帧,如果涉及到组播帧,情况会更复杂。它往往被分成两类:
- 执行基于组播硬件地址的散列值的过滤 //存在散列冲突
- 侦听组播地址的一张有限表 //超过表所能容纳的更多组播地址时,NIC进入“组播混杂”模式,即所有的流量都会交给主机软件。
组播地址和48位的硬件地址的映射是不唯一的,所以进一步的过滤还是必须的。
这两种类型说到底还是会有一些不必要的数据报被接受,所以还需要设备驱动程序或者高层软件执行检查。
如下图所示:

当NIC接收到帧的时候,它首先会检查是否接收该帧(即检查CRC,MAC地址等),然后交付给设备驱动程序,设备驱动程序查明该帧的类型,例如IP数据包,他就传递到IP层。IP层过滤完成后,便传到TCP或UDP等。然后就查询端口号。其实就是数据报在Internet主机上分解的过程, 如下图:

互联网组管理协议和组播侦听发现协议
两个协议都用于允许组播路由器了解附近主机感兴趣的组,区别在于IPv4使用的是互联网组管理协议(IGMP),而IPV6使用的是组播帧听发现协议(MLD)
如何运作:
组播路由器定期向每个连接的子网发送IGMP(MLD)请求。主机则会响应这个请求,告诉路由器那些组和源是感兴趣的。如果成员资格变动,主机也可以发送主动提供的报告。

第九章 广播和本地组播(IGMP和MLD)的更多相关文章
- 《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)
我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(m ...
- TCP/IP 笔记 - 广播和本地组播
在之前第二章介绍IP寻址的时候有介绍到,IP地址有4种:单播.组播.广播.任播. 单播,客户端与服务器之间点到点连接通信: 组播,在发送者和多个接收者(如某个特定的分组)之间实现点对多点的连接通信: ...
- Java单播、广播、多播(组播)---转
一.通信方式分类 在当前的网络通信中有三种通信模式:单播.广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点. 单播:单台主机与单台主机之间的通信 广播:当台主机与网络中的所有主机通信 ...
- Java单播、广播、多播(组播)
一.通信方式分类 在当前的网络通信中有三种通信模式:单播.广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点. 单播:单台主机与单台主机之间的通信 广播:当台主机与网络中的所有主机通信 ...
- apue第九章之孤儿进程组
1. 为什么会有孤儿进程组的概念,APUE没直接写,但是GNU有规定: 孤儿进程组不可以获得终端,这是为了保证控制进程死掉后他的终端可以安全分配给新session.posix要求向新孤儿进程组中停止状 ...
- 组播和广播的概念,IGMP的用途
1.组播和广播的概念 1) 组播 主机之间的通讯模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据. 主机可以向路由器请求加入或退出某个 ...
- MAC地址的介绍(单播、广播、组播、数据收发)
MAC地址组成 网络设备的MAC地址是全球唯一的.MAC地址长度为48比特,通常用十六进制表示.MAC地址包含两部分:前24比特是组织唯一标识符(OUI,OrganizationallyUniqueI ...
- 组播基本概念、IGMP、IGMP监听学习笔记
前言 一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作.这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识.组播占了计算机网络的一大部分,特别 ...
- Android设备一对多录屏直播--(UDP组播连接,Tcp传输)
原文:https://blog.csdn.net/sunmmer123/article/details/82734245 近期需要学习流媒体知识,做一个Android设备相互投屏Demo,因此找到了这 ...
随机推荐
- 第24章 SPI—读写串行FLASH—零死角玩转STM32-F429系列
第24章 SPI—读写串行FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- JavaScript的变量命名规则和关键字的介绍
变量的名字 就像 人的名字一样,不能乱起. 你的代码不是只有你一个人看,变量既然是名字,那就这个名字就要有特殊的意义: 举个栗子:翠花,我们能从这个名字中得到什么信息?(这个 ...
- 1816: [Cqoi2010]扑克牌
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2737 Solved: 1082[Submit][Status][Discuss] Descripti ...
- docker-compose 构建mongodb并导入基础数据示例
使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...
- Linux终端显示控制字符
在Linux中, 我们时常要将一个命令的输出作为另外一个命令的输入进行下一步处理操作. 有时, 如果一个命令的输出中有不可见的控制字符时, 有可能会导致后续操作出错. 而这些控制字符很可能是不可打印的 ...
- windows和linux上mysql的安装
mysql基于多平台,多版本的安装 mysql.tar.gz 链接:https://pan.baidu.com/s/1lG9BNL1mG4qbjM8xLHtrjQ 密码:s4tk MySQL 是一个 ...
- 如何理解MVVM?
随着前端页面越来越复杂,用户对于交互性要求也越来越高,MVVM模型应运而生. MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,V ...
- 【js】【跨域问题】前后端分离的跨域问题
最近在研究nodejs,php的前后端分离相关东西,在调用接口的时候碰到一些跨域的问题,经过一段时间的摸索,总结出来的一些东西 php采用的是yii框架,登录的机制或者调用接口都需要前端传递cooki ...
- day1_作业(账户登录检测)
#!/usr/local/bin/python3 # -*- coding:utf-8 -*- f=open('/users/zhangyu/PycharmProjects/s14/day1/Home ...
- 笔记-git-协作开发
笔记-git-协作开发 1. git协作开发 git协作的典型做法是,创建一个git服务器,被多个人操作. 示意图如下: 一般来说协作分为如下几个步骤: 创建一个git裸服务器 (git i ...