您的位置:首页 > 理论基础 > 计算机网络

广播机制相关内容整理

2011-11-17 10:51 387 查看
1.   介绍 

在高速局域网中使用广播是一种通常的作法。因为IP中未指出广播的通用标准,因此协议实现者也就无法使用它了。

这里我们考虑的是不可靠的,非串行的,包可重复的广播。我们假设数据链路层支持有效的广播,通常的网络如以太网

,令牌网都支持广播。我们不能假设广播传输是可靠的,因为这样做代价太大,但我们假定主机发出的广播大部分还是

能够到达目的地的。因为广播会对网络造成过大的负担,因此不能无限制地使用。 

2.   为何采用广播 

广播在主机不知道消息发送者的位置时是有用的,广播在主机需要为许多机器提供数据时也有作用。主机需要的信息可能

在它的邻居中,它可以一一询问而得知,而把这些主机的地址固定存储是不合适的,因为主机的邻居可能会变化,这对管理

是一个学生的负担。而对所有邻居的地址进行一一询问简直不可能,因为需要询问的主机的数目会太多。使用广播就不会

出现这种问题。在主机需要邻居的信息时广播有用,当主机有信息需要向邻居传送时广播也很有用,例如网关就可以通过

广播告知邻近的网关它的存在。我们会认为组播可能会代替广播,但是广播在硬件一层(或低层是进行的),而上层软件

将不必要的信息过滤掉达到的效果就是组播。 

3.   广播级别 

有下面几种IP广播: 

在本地网上进行单目的地广播:发送主机知道目的机地址,但在数据链路层进行广播,这是可能是为了避免进行路由。

因为不是IP广播,所以IP层不需要介入。   

在本地网上对所有主机进行广播:IP的主机号部分可以指定一个特定的值,这个值指出是广播。接收IP必须能够识别

这个地址和它本身原有的地址。这是最常用的一种广播形式,它也是ARP,名字服务器,时间服务器等运作的基础。   

对远程网的所有主机进行广播:它的机制和本地广播差不多,数据报在到达此网的网关前还是象平常一样传输,到达

网关后再进行广播。   

多子网广播:可以使用IP地址子网号表示这种广播。它的工作原来和对一个远程网进行广播相同,不过是对多个子网而已。   

向整个Internet广播:这种广播可能根本没有用,而且也不会有人使用。   

因为安全和效率的考虑,网关可以不转发广播,在自治系统中最好不要转发广播。 

4.   广播方法 

主机的IP接收层必须能够支持广播。有了广播机制,主机必须能够对接收到的数据报中的目的地址进行比较,看和自己

的IP地址是不是一样,而且还必须能够知道这个地址是不是个广播地址,如果是也要接收。因为在数据链路层已经解决

了广播问题,所以IP层主机如果需要广播只要发出带有广播地址的包就行了。网关上的算法要复杂一些。 

  

但是在有子网的网络内进行广播可能比较麻烦。即使如此,也有相应的算法解决这个问题,而且不怎么费事。一个好的

广播方法要达到下面几个条件: 

不改变IP数据报格式   

在进行多复本传输和路由选择时代价不能太大   

对网关的改变要小   

传输机制一致   

对于算法来说,RPF(Reverse   Path   Forwarding)比较合适。RPF在代价和可靠性上是中等的,易于实现,而且不需要

,对网关修改也比较少。 

5.   网关与广播 

在网关接收到本地广播时,它需要做一些工作,虽然简单,可如果处理不好会造成无限循环。正确处理有赖于下面几项:

子网,目标网络,网关地址。 

基本的方法就是不要向接收到广播的硬件地址再发广播了,可是这还不够   ,如果一个网络中有多个网关,可能会造成

广播永远不会停止   

如果数据报在硬件网络(也就是低层)上被接收,不应该转发,网关应该把自己看做是数据报的目的地。   

如果数据报未在硬件网络上被接收,而且数据报地址来自于网关相邻的网络上,网关应该在数据链路层上进行广播,

网关自己应该被看作是数据报接收的目的地   

如果数据报的目的地在远方网络,网关只需要象平常一样转发这个包到下一个网关就是了   

6.   IP广播地址规范 

如果不同的IP实现能够兼容,必须有规则可以区别所有主机和所有子网。因为本地网络层可以映射IP地址到数据链

路层地址,选择IP广播主机号则是比较直接的。简单起见,可以把一个别的机器不用的地址用于广播主机号。

全1地址可以。全部子网号也是全1的,因为主机在发送广播到远程网络时并不关心那个网络分不分子网。

而255.255.255.255表示本地硬件地址广播,不能进行转发。因此,一台在网络号为36的网络上的主机可以 

向255.255.255.255发包达到向相邻主机广播的目的   

向36.255.255.255发包达到向36网络上所有子网进行广播的目的   

一个好的应用程序应该首先向第一个地址进行广播,如果没有回应,再向第二个地址进行广播。全1地址指广播,

那么全0地址指本地,如36.0.0.0指网络36,而36.255.255.255指网络36上的所有主机。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息