距离项目开启已经过去了一段时间,这段时间内自己学习的内容也算挺多的,但是也较容易遗忘,之后应该在空余的时间内多翻翻博客,更加清楚传统计算机网络的运作。

由于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)的更多相关文章

  1. 《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)

    我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(m ...

  2. TCP/IP 笔记 - 广播和本地组播

    在之前第二章介绍IP寻址的时候有介绍到,IP地址有4种:单播.组播.广播.任播. 单播,客户端与服务器之间点到点连接通信: 组播,在发送者和多个接收者(如某个特定的分组)之间实现点对多点的连接通信: ...

  3. Java单播、广播、多播(组播)---转

    一.通信方式分类 在当前的网络通信中有三种通信模式:单播.广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点. 单播:单台主机与单台主机之间的通信 广播:当台主机与网络中的所有主机通信 ...

  4. Java单播、广播、多播(组播)

    一.通信方式分类 在当前的网络通信中有三种通信模式:单播.广播和多播(组播),其中多播出现时间最晚,同时具备单播和广播的优点. 单播:单台主机与单台主机之间的通信 广播:当台主机与网络中的所有主机通信 ...

  5. apue第九章之孤儿进程组

    1. 为什么会有孤儿进程组的概念,APUE没直接写,但是GNU有规定: 孤儿进程组不可以获得终端,这是为了保证控制进程死掉后他的终端可以安全分配给新session.posix要求向新孤儿进程组中停止状 ...

  6. 组播和广播的概念,IGMP的用途

    1.组播和广播的概念 1) 组播 主机之间的通讯模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据. 主机可以向路由器请求加入或退出某个 ...

  7. MAC地址的介绍(单播、广播、组播、数据收发)

    MAC地址组成 网络设备的MAC地址是全球唯一的.MAC地址长度为48比特,通常用十六进制表示.MAC地址包含两部分:前24比特是组织唯一标识符(OUI,OrganizationallyUniqueI ...

  8. 组播基本概念、IGMP、IGMP监听学习笔记

    前言 一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作.这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识.组播占了计算机网络的一大部分,特别 ...

  9. Android设备一对多录屏直播--(UDP组播连接,Tcp传输)

    原文:https://blog.csdn.net/sunmmer123/article/details/82734245 近期需要学习流媒体知识,做一个Android设备相互投屏Demo,因此找到了这 ...

随机推荐

  1. 用keytool制作证书并在tomcat配置https服务(三)

    用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(四) 模 ...

  2. 创建git及其初始化

    创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit 初始化一个 ...

  3. js中this的运用

    this 永远指向函数运行时所在的对象,而不是函数创建时所在的对象 匿名函数和不处于任何对象中的函数,This指向window call, apply, with指的This是谁就是谁. 普通函数调用 ...

  4. web的监听器,你需要知道这些...

    一.简介 Listener是Servlet规范的另一个高级特性,它用于监听java web程序的事件,例如创建.修改.删除session,request,context等,并触发相应的处理事件,这个处 ...

  5. LeetCode706. Design HashMap

    题目  不使用任何内建的哈希表库设计一个哈希映射 具体地说,你的设计应该包含以下的功能 put(key, value):向哈希映射中插入(键,值)的数值对.如果键对应的值已经存在,更新这个值. get ...

  6. java后台输入数据的2种方式

    java后台输入数据的2种方式 (1) import java.io.BufferedReader; import java.io.InputStreamReader; public class 输入 ...

  7. MySQL选择的执行计划性能底下原因分析--实战案例分析

    MySQL是自动会选择它认为好的执行划,但是MySQL毕竟是程序,还没有达到像人类思考这么智能,还是通过一些按部就班的算法实现最优执行计划(基于cost)的选择.下面就是一个真实的案例,带你来看看My ...

  8. shell 脚本入门

    shell script 是一个程序化脚本,使用shell语法跟linux命令完成的一个程序. 注意事项: 文件开头: #!/bin/bash 文本以enter符号作为开始执行该行语句,用跳脱符 \e ...

  9. Manacher算法:求解最长回文字符串,时间复杂度为O(N)

    原文转载自:http://blog.csdn.net/yzl_rex/article/details/7908259 回文串定义:"回文串"是一个正读和反读都一样的字符串,比如&q ...

  10. 在CentOS VPS上通过SSH安装 MySQL

    输入 yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入s ...