《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP
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
《TCP/IP详解 卷一》读书笔记-----广播&多播&IGMP的更多相关文章
- 《TCP/IP详解》读书笔记
本书以UNIX为背景,紧贴实际介绍了数据链层.网络层.运输层 一.整体概念 1.各层协议的关系,只讨论四层 各层常见的协议: 网络层协议:IP协议.ICMP协议.ARP协议.RARP协议. ...
- TCP/IP详解 卷一学习笔记(转载)
https://blog.csdn.net/cpcpcp123/article/details/51259498
- TCP/IP详解 卷一(第十三章 IGMP:Internet组管理协议)
本章将介绍用于支持主机和路由器进行多播的Internet组管理协议(IGMP) 它让一个物理网络上的所有系统知道主机当前所在的多播组.多播路由器需要这些信息以便知道多播数据报应该向那些接口转发. 跟I ...
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 【TCP/IP详解 卷一:协议】第二章:链路层
2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...
- 『TCP/IP详解——卷一:协议』读书笔记——02
2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...
- 『TCP/IP详解——卷一:协议』读书笔记——15
2013-08-25 13:39:40 第6章 ICMP:Internet控制报文协议 6.1 引言 ICMP经常被认为是IP层的一个组成部分.它传递差错报文以及其他需要注意的信息.ICMP报文同通常 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
随机推荐
- Csharp: read excel file using Open XML SDK 2.5
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 线段树——Ultra-QuickSort
题目网址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109331#problem/A Description In this prob ...
- [moka收藏]php正则表达式验证
手机号验证规则[['mobile'], 'match','pattern' =>"/^1[34578]\\d{9}$/"], [['sendmail_limit'],'mat ...
- javascript 之注意url特殊字符限制
引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...
- [vim] vim入门
1. 概述 工欲善其事 必先利其器.vim是非常好用的文本编辑器,可以将它看作是vi的进阶.绝大多数Unix系统都会内置vi编辑器,vi是文本编辑器,vim是程序编辑器.相比vi,它可以根据文件的类型 ...
- Sass学习之路(3)——Sass编译
Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤,因为".sass"和".scss"文件并不能直接使用<link>标签引用,最终其实还 ...
- Mybatis学习记录(六)----Mybatis的高级映射
1.一对多查询 1.1 需求 查询订单及订单明细的信息. 1.2 sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders. ...
- Fresco 使用笔记(一):加载gif图片并播放
项目总结 --------------------------------------------------------------------- 前言: 项目中图文混合使用的太多太多了,但是绝大部 ...
- iOS NSNumber转化NSString之description
我们经常需要把一个数字转成字符串,当你不需要配合其他字符串的时候可以用description. /** description属于NSObject 值是NSNumber时候,不用stringWithF ...
- E/AndroidRuntime(1636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.***.app.wx.MainActivity} : android.view.InflateException: Binary XML file line #51 :
类中加载的xml中,所自定义组件的包名错误(xml中51行错误:自定义组件包名写错了).