标题:【菜鸟学网络六】网络学习笔记
只看楼主
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
结帖率:73.33%
 问题点数:0 回复次数:0 
【菜鸟学网络六】网络学习笔记
这次我们讲一下IP协议里的广播与多播,然后介绍涉及到多播协议的IGMP协议,该协议也是在网络层哦。

    什么是广播呢?广播就是一次性向某个网络内的所有主机发送数据包。与其对应的是单播,单播就是一对一主机对主机的传送。

    对于IP协议,我们只需要将IP数据包的目的地址设置为广播地址即可,我们在第二节的IP协议讲过,如果设置IP地址的所有位全为1,则这个地址表示本网络内的广播,该广播数据到了路由器处是不会对外转发的哦,所以其只是本地的转发。

    但是,不要以为广播只能本地网络内使用哦,当然,如果想对某个外网内的所有主机进行广播,则需要通过路由器,并指定该网络的网络地址,我们知道,一个对外的网络地址由三部分组成:网络类型,网络ID,主机ID,这个时候对于某个网络如211.11.11.00,我们只需要将IP数据包的目的地址填写为211.11.11.255即可。因为这是一个C类地址,其主机ID为最后8位。发送这个包到路由器之后,路由器会寻找路由来发送该IP包到目的网络的路由器上,然后由后者对其网络进行广播。

    此外,还有一个问题,那么无论是路由器到主机,还是主机到主机,在物理层面上,是如何做到物理地址的判别呢?其实,以以太网卡为例,其可以接受两种数据帧:本地物理网卡地址与广播地址,对于长度为48位的网卡ID,FF:FF:FF:FF:FF:FF就为其广播的物理层地址,任何一个网卡都是如此。

    广播很简单,在IP层面上,广播地址只能作为目的地址,其还有的问题是,广播消耗的资源非常多且很可能浪费,因为很多主机可以接收广播,但是往往舍弃掉。

================================================================================================================================
    针对广播对网络资源浪费的问题,多播模式出现了。
    在广播中,所有网内的主机都只能被动的去接受广播信息,这里就有了一个需求的问题了,广播只能一棒子打死,无论你需不需要该数据,我都向你发送该数据包,至于接不接受,是实际接到后判别并舍弃的问题。
    而对于多播,其引入了组的概念,比如:主机A只想对主机B,C发送IP报文而不想让D知道,但是单独多次的单播发送很浪费资源,所以这个时候可以建立一个组,B与C选择加入该组群内,然后A再对一个类似与广播地址的多播地址发送数据,这个时候B,C可以收到,而主机D收不到该数据。

    那么主机A是如何做到组的“建立”呢?我们知道一个以太网卡可以设置多个多播地址以建立多个组(这是因为可能同时对B,C发送消息M,而对D,E发送消息N),主机A设置好自己的网卡的多播地址,比如224.123.123.1后(这个地址就是IP地址中的D类地址,如224.0.0.1是一个所有主机组地址)就完成了一个多播组的建立,这个时候A会向224.0.0.1发送数据包(主要目的是向多播路由器更新组信息)。然后B,C也将自己的网卡设置成相同的多播地址,就表示A,B,C加入了同一组(所谓的建立指的是加入,如果没有人加入该组,则该组会在多播路由器内消失),接下来,A、B、C中的任何一个主机向目的地址224.123.123.1发送IP数据包的时候,都会被其他两个主机接收到。

    刚才提到,A加入(第一个加入为建立,B,C加入时也会发送)的时候会通知多播路由器,为什么要这样做呢?
    因为,多播也是可以对外网使用的哦,一个多播组内的成员,不单单只能是本网内的主机,也可以来自其他网络,类似于视频会议、QQ群等这样的聊天方式,就是这样实现的。
    这样就需要一个路由器对网内主机组群的管理协议:IGMP。
    IGMP,网络组管理协议。其数据包依赖于IP协议,共8个字节。具有两种模式:
    一个是多播路由器要使用的查询数据包,这个包用于更新网络网络的多播组信息(包括如何到达的路由信息,由多播路由器发送),该包的IGMP多播地址设置为它0.0.0.0。而IP包的目的地址则设定为224.0.0.1,因为使用该地址可以想网内所有的多播组发送数据。当参与多播的主机接收到查询数据包后,就会发送报告数据包给多播路由器,其多播地址设置为他加入的多播网络,IP目的地址则设定为224.0.0.1(也可以使路由器的IP地址),然后路由器收到后更新自己网内的组群路由信息,并对外共享组群信息,以方便网外主机加入。
    一个是主机发出的报告数据包,该报告数据包用来向路由器报告自己的当前加入组群。其实路由器并不关心有多少主机加入某个组群,它只关注是否还有1个主机在某个组群当中,否则删除该条组群信息。

    好了,到此为止,我们将网络层上的协议就基本学习了一遍。接下来,我们将研究传输层上的UDP与TCP协议,这是我们最常用的两个协议,IOI!!
搜索更多相关主题的帖子: 网络 IP协议 IP地址 数据包 
2013-04-08 20:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-403367-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084840 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved