1、广播和多播都只适用于UDP,因为TCP是面向连接的,需要将两台主机的两个进程绑定在一起,即IP地址和端口对

2、通常,网卡能看到网络中的每一个数据帧,但是往往它只接受目的地址与自己MAC地址相同的或者为广播地址的帧(现在有些也能接收多播地址),然后将它传输给设备驱动

3、广播的问题在于它给那些对广播数据不感兴趣的主机增加了处理负担(需要通过网卡,驱动,IP等一层层的判断),而多播的出现恰好解决了这些问题。通常一台主机会被指定加入一个或多个多播组,网卡也会被告知自己属于哪几个多播组,于是只有属于那几个组的多播数据帧才会被接受,从而大大降低了处理的开销

4、广播地址类型:

1)limited broadcast:255.255.255.255,这个地址用于在主机配置期间,即主机可能还不知道自己的子网掩码甚至IP地址的时候,作为IP数据报中的目的地址,将想要发送的数据发送到本网段中的每台主机。需要注意的是,在任何情况下,它都不会被路由器转发。

2)Net-directed Broadcast:此类地址的主机号字段全置为1,网络号字段为目的网络的网络地址。用于将数据报发送给指定网络的每台主机

3)Subnet-directed Broadcast:此类地址的主机号字段全为1,并且需要知道对应子网的子网掩码,因为子网掩码不同,可能就不再是一个广播地址了。用于将数据发送到指定子网的每台主机

4)All-subnets-directed Broadcast:与Subnet-directed Broadcast不同的是,该广播地址的子网字段也全部置1,表示将数据发送到该网络的所有子网,但是现在一般都不使用这类地址

5、IP地址分类中的D类地址就是多播地址,用点分十进制表示就是224.0.0.0~239.255.255.255,通常那些监听同一个多播地址的主机构成的集合称为host group。host group 中的主机可以跨越多个网络,并且主机可以随时选择加入或退出host group。即使一台主机不属于该host group,也能向group发送信息。

6、类似于TCP/IP中的众所周知的端口,多播地址中也有众所周知的地址用于特定的服务

7、以太网中的MAC地址对应IP多播地址的部分为01:00:5e:00:00:00~01:00:5e:7f:ff:ff,通常在发送一个多播的IP数据报,进入链路层需要确定目的MAC地址时,通常就将IP地址的右23位嵌入到相应的MAC地址中即可,如下图所示。从图中可以看出,IP地址和MAC地址并不是一一对应的,因为IP地址的第5~9位是不确定的。因此在网卡接受完数据帧后,设备驱动层和IP层仍然需要进行筛选操作。

8、多播过程:发送进程将目的地址定为一个组播地址,源主机的设备驱动将其转换成相应的MAC地址并且将其发送。接收端的进程需要告诉它的IP层它想要接受某个组播地址的数据,相应的设备驱动就设置能够接受相应MAC地址的数据帧。这样就完成了通信双方的设置,而这个过程叫做“joining a multicast group”。与UDP不同的是,通常一个多播的IP数据报能够被传输给同一台主机的多个进程,只要它们都加入了上文所说的multicast group就行

9、IGMP(Internet Group Management Protocol):该协议的作用简而言之就是支持多播的路由器为了知道将多播数据报发往哪些端口,所以它需要定期从各个端口发送询问报文,等待主机回答它们各自属于哪些multicast group,由此构建出一张端口和多播地址的关联表,从而能够对多播数据进行分发,解决了跨网段的多播问题。

10、通常主机需要维护一张用于多播的表,表中的内容有组播地址以及对应的网络接口(组播地址与网络接口绑定)以及加入相应组播的进程数目。每当有进程加入一个新的group时,主机就会从相应的网络接口发送一个通知告知组播路由器和其他组播主机,但是以后的进程再加入以及任何进程的退出都不再播报通知。

11、地址224.0.0.1被称为all-hosts group address,询问IGMP报文的目的地址就是它。它的多播组的成员为所属物理网络中所有参与多播的主机(即有进程在参与多播的主机)和路由器。地址在224.0.0.0~224.0.0.255的多播地址要求多播的距离不能超过一跳,即多播路由器不能转发该地址的多播IP数据报,即使该数据报中的TTL不为0

转载于:https://www.cnblogs.com/YaoDD/p/4892928.html

《TCP/IP详解 卷一》读书笔记-----广播多播IGMP相关推荐

  1. TCP/IP详解卷一读书笔记一

    TCP/IP详解卷一:第一章 一.分层   1.网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能.   疑点 介质访问控制方法   多个主机需要通过一条"共享介质"发送 ...

  2. [读书笔记]TCP/IP详解V1读书笔记-3

    IP: 无连接:数据报到达没有先后顺序,处理先后发送的数据报之间没有关联. 不可靠:数据报丢失后没有处理,简单向源地址发送 ----------------------------- -------- ...

  3. 《TCP/IP详解》读书笔记

    1. 网络协议的分层,有四个层次,从下向上分别是: 链路层:也称作数据链路层或网络接口层.主要处理物理接口的细节 网络层:也称作互联网层,处理分组在网络中的活动.在TCP/IP协议族中网络层协议包括I ...

  4. [读书笔记]TCP/IP详解V1读书笔记-4 5

    IP地址与以太网地址之间的关系 R P发送一份称作A R P请求的以太网数据帧给以太网上的每个主机.这个过程称作广播,在32 bit的I P地址和采用不同网络技术的硬件地址之间提供动态映射 ----- ...

  5. [读书笔记]TCP/IP详解V1读书笔记-1

    TCP数据单元:tcp segment UDP数据单元:udp datagram IP数据单元:IP datagram 链路层单元:frame ---------------------------- ...

  6. 《TCP/IP详解》读书笔记(18章)-TCP连接的建立与中止

    TCP是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须在双方之间建立一条连接.这种两端间连接的建立与无连接协议UDP不同,UDP向另一端发送数据报时,无需任何预告的握手. 1.建立连接的协 ...

  7. 《TCP/IP详解卷一》读书笔记九:IGMP和MLD

    由于工作需要和知识储备,重新系统地学习网络方面的知识,先从<TCP/IP详解卷一>开始,对看书的大体内容进行简单整理,在这里进行记录.记录只是对知识的整理过程,并不追求面面俱到. 概念 I ...

  8. 《TCP/IP详解卷一》学习笔记

    <TCP/IP详解卷一>学习笔记 第1章 概述 第3章 IP:网际协议 第6章 ICMP:internet控制报文协议 第7/8章 Ping/Traceroute程序 第9/10章 IP路 ...

  9. 《TCP/IP详解》学习笔记(五):IP选路、动态选路

    静态 IP 选路 1一个简单的路由表 选路是 IP 层最重要的功能之一.前面的部分已经简单的讲过路由器是如何根据 IP 数据包的 IP 地址来选择路由的. 这里就不重复了. 首先来看看一个简单的系统路 ...

最新文章

  1. 想搞自动识别系统的应用程序,希望能跟有志于此的朋友交流
  2. Java软件研发工程师转行之深度学习(Deep Learning)进阶:手写数字识别+人脸识别+图像中物体分类+视频分类+图像与文字特征+猫狗分类
  3. Boost:在boost:array上使用constexpr进行测试
  4. 实现OC与JS的交互
  5. c#web服务器 虚拟目录,C#建立自己的Web服务器
  6. Voovan网络编程介绍
  7. Spring Boot JDBC 使用教程
  8. [leetcode]241. 为运算表达式设计优先级
  9. python - 日期处理模块
  10. discuz手机版常见问题
  11. utf-8 html转chm,把ANSI格式的TXT文件批量转换成UTF-8文件类型
  12. qlikview连接mysql_QlikView 通过ODBC 连接IBM DB2
  13. 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)解决
  14. 基于特征点检测的人脸融合
  15. msf常用模块功能整理
  16. 玩具车c语言控制程序,蓝宙电子:八岁的小朋友可以这样编程控制小汽车
  17. CSS 实现图片翻转
  18. 《因果学习周刊》第13期:ICLR 23因果推断高分论文
  19. 成功解决:curl: (7) Failed connect to github-production-release-asset-2e65be.s3.amazonaws.com:443; 拒绝连接
  20. 宾大数学计算机本科,力压宾大,挤进全美大学排名TOP10,凭什么?

热门文章

  1. 群体结构分析软件Structure使用步骤
  2. opencv_IplImage未定义的标识符解决
  3. linux 中samba账号登录密码,ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录...
  4. python抓取简单网页_【Python3 爬虫】01_简单页面抓取
  5. java odbc dbf,什么是Java的最佳开源dbf驱动程序?
  6. java实现 k nn算法_数据挖掘(二)——Knn算法的java实现
  7. pointnet 结果可视化_PointNet论文复现及代码详解
  8. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)
  9. 危机边缘第一季/全集Fringe迅雷下载
  10. 数据库读取image类型发送到前端显示图片