多播与广播

 
IP Multicast Internet 中针对一对多通信的协议标准,多数的客户 / 服务器系统都采用此协议。它是 Internet 协议簇的延伸,是 TCP/IP 协议层中的网络层。它与传统的 IP 协议的不同之处就在于它更适用于支持客户 / 服务器系统的多媒体应用。

   
传统的 TCP/IP 网络中,发送者将数据包发向网络,网络中的其他站点都会检测到它的存在。但是只有当包的目的地址与站点的地址相符时,才能被接收。如果发送者想将包发给多个接收者(一对多会话),他只能有两个选择:
   
将数据包分别发给每个接收者。这种情形下,每次都需要特别指定接收者的地址。如果一个发送者发出一个 1Mbps 的数据流,将给每个接收者带来 1Mbps 的数据量。不难想象,一个多媒体节目广播给几百个接收者时,网络将很快达到饱和。
   
指定一群广播地址,将数据发向它们,不管收端是否愿意接收。不仅网络中的每个站点会收到数据,与网络相连的其他外部网同样也会收到(除非与外部网相连的网关、网桥、路由器设置了滤除广播数据流的功能)。这还是一个数据流,但是却被额外发向了一些无接收要求的目的地。
以上两种方式都将浪费大量的网络资源。

    IP
多播使多媒体应用软件的发端仅须发送一次数据。数据流被所有想接收数据的用户接收,却并不必为每个收端单独发送。应用软件仅须将 D IP 地址放在数据包的目的地址区内。想接收数据的用户会接受此类具有 D IP 地址的数据包,其它用户仅须忽略。这样,数据流就不会造成不必要的网络拥塞了。

    D
IP 地址的范围是 224.0.0.0 239.255.255.255. 此范围内的子集 239.0.0.0 239.255.255.255 被单独划出用做本地网使用,叫做管理范围的 IP 多播地址( administratively scoped IP Multicast address )。

   
具有 IP 多播功能的网间路由器允许音频 / 视频数据在本地网以外传输,包括 Internet 。通过限制多播会话的有效地址范围,能够确保数据在恰当的本地网或广域网上传,而不是整个全球网。路由器的路径剪切功能( pruning capability )会进一步减少不必要的数据量产生。

   
如果网络路由器应用了剪切 (pruning) 算法, IP 多播数据流的传输将会更高效。 Pruning 是减少非必要数据包传播的一种方法。例如网络 A 到网络 E 之间存在着多路径,通向无定订阅意向的用户的网络路径被剪切。定阅多播会话 (session) 的用户采用 IGMP 协议 , IGMP 将有关订阅者的信息传送给接收网络的路由器。               

   
有几种限制多播数据包行程范围的方法。包括对会话中的每个包分配 TTL (Time-to-Live) ;在 mrouted 主机或具 IP 多播功能的路由器上设置 TTL 门限值;利用 D IP 地址子集的有关特性。

    TTL
值决定了一个包能够 跳跃 hop )多少次(即数据包被路由器最终拒传之前,能够转换多少个路由器)。如果你所使用的多播会话分配应用软件允许设定会话( session )的 TTL 值,你应为你的网络拓扑结构设置合适的 TTL.

   
例如,对于 MBONE 会话,你可以将 TTL 值设在四个预先指定行程中的任意一个之内,或者设定一个具体值。它们是: Local(1 hop),Site(15hops),Region(63 hops) Worldwide(127 hops). 这些值是针对 MBONE 网的。对于不同的网络环境,将使用不同的值。但须注意的是,在包含 Internet 接点的复杂拓扑结构的网络中,将 TTL 值设为相对较小值并不能保正多播数据包不被传送到 Internet 上。 TTL 参数应和 TTL 门限 ,  限定的 IP 多播地址范围相结合使用。

    TTL
门限是一个路由器性能,对 mrouted IP 路由器都适用。当 TTL 门限值被设定之后,只有当数据包的 TTL 值大于门限值时才能被传送。因此,通过将门限设为比本网最大 hop 数还大的值 , 或将包的 TTL 值设为小于或大于最大 hop 数,你就可阻止数据包流出本网。

   
管理范围内( administratively Scoped )的 IP 多播地址是 D IP 地址的子集,即将 239.0.0.0 239.255.255.255 。这些地址被看做是本地地址。要使用此类地址来限制多播会话的行程,你应做如下几点:
   
将会话的多播地址设在上述地址范围之内。
   
设置构成边界的路由器,使路由器不将数据包传出边界。
   
   
以上步骤预先假定了你所用的软件允许你对会话设定多播地址(如 Cisco 公司的 IP/TV 软件),且你的路由器具有设置地址边界的功能。 

    IP
多播综合了几种不同的路径协议,如:
    Protoclo Independent Multicasting (PIM), supported by Cisco Systems and Bay Networks
    Distance Vector Multicast Routing Protoclo(DVMRP),supported by Cisco Systems ,Bay Networks and 3Com
    Multicast Open Shortest Path First(MOSPF) ,supported by Proteon and 3Com   
 
广播
1~126.255.255.255  (A 类网广播地址)
128~191.XXX.255.255 (B
类网广播地址)
192~254.XXX.XXX.255 (C
类网广播地址) 
LocalIP 为本地 IP
广播 IP 地址为 :

procedure SetBroadCastIp;
var
  i,j,iHead:Integer;
  sHead,s:String;
  ai:array [1..3] of integer;
begin
j:=1;
for i:=0 to Length(LocalIP) do
  begin
  if LocalIP[i]='.' then
    begin
    ai[j]:=i;
    Inc(j);
    end;
  if j>3 then break;
  end;
sHead:=Copy(LocalIp,1,ai[1]-1);
iHead:=StrToInt(sHead);
if iHead<128 then  //A
类网
  begin
  BroadCastIP:=sHead+'.255.255.255';
  end
else
  begin
  if iHead<192 then //B
类网
    begin
    s:=Copy(LocalIP,1,ai[2]-1);
    BroadCastIP:=s+'.255.255';
    end
  else  //C
类网
    begin
    s:=Copy(LocalIP,1,ai[3]-1);
    BroadCastIP:=s+'.255';
    end;
  end;
end;  
 
 
發送 Packet: Source Address: 你自己的 MAC address
Direction Address: EE EE EE EE EE EE
MAC 全部置 1, 成為局域网廣播地址
這樣就根本不用管你要發送消息的目的 IP 是多少了 .
順便說一下 : 你的廣播封包只能在一個廣播域里傳播 , 通過路由器會被屏蔽掉 .
.255 结尾的地址是广播地址沒錯 , 但是不以 . . .255 結尾的 IP 也同樣可以是廣播地址
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值