@ceyes
>> 255.255.255.255 这是受限的广播地址,它不被路由,但会被送到相同物理网络段上的所有主机。这就是主机dhcp过程中发出的广播。
这里有问题,“相同物理网络段”指的是什么,192.168.1.0/24这个算是逻辑上的吧,[0]这个解释的我不是很明白,看得见摸得着的设备连接起来的网络,这全世界的网络不都是看得见摸得着的设备连接的么...
[0]
goophile 2014-04-10 22:35:18 +08:00
@Eigrp 恕我愚钝,不懂EIGRP,我就问一下在你家的协议里255.255.255.255怎么“三层”广播、怎么路由?
goophile 2014-04-11 22:37:40 +08:00 ♥ 3
@pyKun 我解释起来也很混乱的。。。
首先,交换机是二层设备,根据报文的MAC地址来转发,转发时不改变报文的MAC地址;路由器是三层设备,根据报文的IP地址转发,转发时会改变报文的MAC地址。
交换机自己维护一张 MAC-端口 表,记录了哪个端口对应着哪些MAC地址。交换机某个端口收到一个报文时,先记录下源MAC和端口的对应关系,然后根据其目的MAC转发,如果是全1,即广播地址,就从其他所有端口转发出去。如果不是,那么在 MAC-端口 表中查询这个报文的目的MAC,如果有,就从对应的端口发送出去;如果没有,就从其他所有端口发送出去。
用若干交换机连接起来的一个网络,即一个二层网络,如果没有划分VLAN,可以称之为一个广播网络,这个广播网中的所有主机共处一个广播域。因为根据交换机的转发机制,任何一个广播报文都会传播到所有交换机的所有端口连接的主机。如果多个交换机连接成了一个环,那么同一个广播报文会不停地在这些交换机之间来回转发,随着主机发出的广播报文比如ARP或者DHCP越来越多,就引发了广播风暴。(STP可解决环路的问题。)即使没有环路,如果网络中有恶意攻击者,大量发送广播报文,也会导致整个二层网络拥塞。
二层网络很大的时候,大量广播是个严重问题。广播风暴怎么办呢?划分VLAN。
所谓VLAN,简单地说,就是把交换机的端口做个分组,只有同一个组的端口之间才能做二层转发,这个组就是一个VLAN,拥有一个VLAN号码。交换机发送和接收报文时,可以在报文的MAC地址后插入一个VLAN标签,接收的交换机检查这个标签,和当前端口的VLAN号一致才进行转发,否则直接丢弃。相当于交换机原来的 MAC-端口 表项变成了 VLAN-MAC-端口 表项,增加了VLAN检查。这样就把一个大的广播域划分为多个小的广播域,每个VLAN是一个广播域。
VLAN之间通信,或者两个二层网络的主机之间通信,就得进行三层转发,得靠路由器。路由器根据三层的IP地址转发,并且不转发目的IP是广播地址的报文,所以路由器天然就是隔离广播域的设备。这么看的话,广播其实就是个二层的概念,因为只在同一个二层网络中发生。
然后,其实现在交换机和路由器之间的差距已经越来越小了,交换机可以配置IP地址,可以做三层转发,可以跑路由协议;路由器也可以做二层转发。
自顾自打了这么多字,希望有些帮助。
pyKun 2014-04-11 23:52:29 +08:00
@goophile
追问些
>> 然后根据其目的MAC转发,如果是全1
dhcp发的包实际上是因为包里的mac地址全是1,所以才会让广播域的所有机器都收到这个包是吧?
另一个关于掩码的问题,掩码发明原因说是为了增加ip空间(书上说的),但其实也起到了隔离的作用。在一个二层能到的位置(同一广播域),主机a收到主机b的包,通过计算里面的ip和掩码来判断把这个包丢掉还是处理。所以dhcp中,发的是全为1的mac地址,然后为了确保不会被三层的机制让这个包被丢掉,所以才有的255.255.255.255吧?
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39079-2.html
啊啊啊啊啊啊啊
虽然这次中国有点示弱