冲突是指在同一个网段上,同一个时刻只能有一个信号在发送,否则两个信号相互干扰,即发生冲突。冲突会阻止正常帧的发送。冲突域是指能够发生冲突的网段。冲突域大了,有可能导致一连串的冲突,最终导致信号传送失败。
单播和广播是两种主要的信息传送方式,广播方式是指一台主机同时向网段中所有的其他计算机发送信息,广播方式会占用大量的资源。广播域是指广播能够到达的网段范围。因此,广播域的大小要有一定的限制。
不同的网络设备对降低冲突域和广播域所起的作用不同。
例如中继器和集线器可以放大信号,但是它不区分有效信号与无效信号,因此会扩大冲突域。网桥和交换机、路由器不会传递干扰和无效帧,因此可以降低冲突域。路由器和三层交换机不传递广播数据包,所以可以降低广播域;其他设备传递广播数据包,所以扩展了广播域。
注:一个VLAN是一个广播域,VLAN可以隔离广播,划分VLAN的其中的一个目的就是隔离广播。
网络设备通俗的比喻来帮助理解:
局域网好比一栋大楼,每个人(好比主机)有自己的房间(房间就好比网卡,房号就是物理地址,即MAC地址),里面的人(主机)人手一个对讲机,由于工作在同一频道,所以一个人说话,其他人都能听到,这就是广播(向所有主机发送信息包),只有目标才会回应,其他人虽然听见但是不理(丢弃包),而这些能听到广播的所有对讲机设备就够成了一个广播域。而这些对讲机就是集线器(HUB),每个对讲机都像是集线器上的端口,大家都知道对讲机在说话时是不能收听的,必须松开对讲键才能收听,这种同一时刻只能收或者发的工作模式就是半双工。而且对讲机同一时刻只能有一个人说话才能听清楚,如果两个或者更多的人一起说就会产生冲突,都没法听清楚,所以这就构成了一个冲突域。
广播域(Broadcast domain):网络中的一组设备的集合。即同一广播包能到达的所有设备成为一个广播域。当这些设备中的一个发出一个广播时,所有其他的设备都能接收到这个广播帧。HUB和SWITCH的所有端口都是在一个广播域里,路由器上的每个端口自成一个广播域。
有一天楼里的人受不了这种低效率的通信了,所以升级了设备,换成每人一个内线电话(交换机SWITCH,每个电话都相当于交换机上的一个端口),每人都有一个内线号码(逻辑地址即IP地址)。(这里要额外说一下IP地址和MAC地址转译的问题,常见的二层交换机只识别MAC地址,它内置一个MAC地址表,并不断维护和更新它,来确定哪个端口对应那台主机的MAC地址,而我们所用的通信软件都是基于IP的,IP地址和MAC地址的转换工作,就由ARP地址解析协议来完成。)在最开始时,没人知道哪个号码对应哪个人,所以要想打电话给某个人得先广播一下:“xxx,你的号码是多少?”“我的号码是xxxx”。这样你就有了目标的号码,所有的内线号码就是通过这种方式不断加入电话簿中(交换机的MAC地址表),下次可以直接拨到他的分机号码上去而不用广播了。大家都知道电话是点对点的通信设备,不会影响到其他人,起冲突的只会限制在本地,一个电话号码的线路相当于一个冲突域,只有再串连分机时,分机和主机之间才会有冲突的发生,这个冲突不会影响到外面其他的电话。而电话号码就像是交换机上的端口号,也就是说交换机上每个端口自成一个冲突域,所以整个大的冲突域被分割成若干的小冲突域了。而且,电话在接听的同时可以说话,这样的工作模式就是全双工。这就是交换机比集线器性能更好的原因之一。
3种网络设备的特点
HUB的所有端口都在一个冲突域和一个广播域
SWITCH的所有端口都在一个广播域,每个端口是一个冲突域,只有在划分VLAN之后才能分割广播域
ROUTER的每个端口是一个冲突域也是一个广播域
广播帧的产生:网络中存在有广播帧是不可避免的,比如开启了DHCP服务器, 每次请求, 都会有以”FF.FF.FF.FF.FF.FF”的帧格式出现.它向所有端口转发.假设主机A与B在同一个网络内,当主机A要向主机B发送信息,那么需要知道主机B的IP地址和MAC地址,这里面我们假定A只知道B的IP地址,而不知道 B的MAC地址,那么这时A就需要向网络中发送一个ARP请求,来获取B的MAC地址,这个ARP请求实际上就是一个广播包.
而泛洪和MAC列表相关, 在缓存中是存在的, 有确定的MAC地址. 只是在MAC表中找不到具体转发的端口和MAC的配对,才开始泛洪处理.但是泛洪并不是广播帧(FF.FF.FF.FF.FF.FF).
广播是有一个具体的行为,它的对象是整个网络, 在ARP时往往需要有特定的主机来响应,当然太多的广播对于网络是有害的, 容易造成广播风暴. 总的来说, 主要有以下两点区别:
泛洪操作广播的是普通数据帧而不是广播帧
广播是向同一子网内所有的端口(包括自己的那个端口)发送消息; 泛洪只是在所有的端口中不包括发送消息的(自己的)那个端口发送消息.
广播和洪泛
一.泛洪的产生:
MAC地址表显示了主机的MAC地址与以太网交换机端口映射关系,指出数据帧去往目的主机的方向。当以太网交换机收到一个数据帧时,将收到数据帧的目的MAC地址与MAC地址表进行查找匹配。如果在MAC地址表中没有相应的匹配项,则向除接收端口外的所有端口广播该数据帧,有人将这种操作翻译为泛洪(Flooding,泛洪操作广播的是普通数据帧而不是广播帧)。在我们测试过的交换机中,有的除了能够对广播帧的转发进行限制之外,也能对泛洪这种操作进行限制。
*交换机的老化时间设置不当,也会引起泛洪处理.因为,交换机的MAC学习也是需要一定数量的帧;重新建立MAC表也是需要时间的.(试交换机性能而定).
*频繁地调换PC机与交换机的端口的连接也是原因之一.
注意:广播帧和组播帧是直接向所有端口转发.
二.广播帧的产生:
网络中存在有广播帧是不可避免的,比如开启了DHCP服务器,每次请求,都会有以"FF.FF.FF.FF.FF.FF"的帧格式出现.它向所有端口转发.如果,局域网内的网卡有故障有时也会有广播帧出现,如果大量的这种帧出现,外在表现为网络速度变慢.
三.广播包的产生:
往往伴随着ARP而产生.
假设主机A与B在同一个网络内,当主机A要向主机B发送信息,那么需要知道主机B的IP地址和MAC地址,这里面我们假定A只知道B的IP地址,而不知道B的MAC地址,那么这时A就需要向网络中发送一个ARP请求,来获取B的MAC地址,这个ARP请求实际上就是一个广播包.
当主机A:172.168.0.1:XXXX.XXXX.XXXX向B:172.168.0.3请求MAC地直.
请求的是172.16.0.3这个IP的MAC地址,在ARP请求里,目的MAC地址是0000.0000.0000
这是一个MAC的广播地址,目的是要发送一个广播.
使本地网络内的其他主机都接收这个请求,然后除了目标方(即172.1680.3)作出回应之外,其他机均会丢弃这个请求帧.
其目的,是让172.168.0.3这台机将自己的MAC发过来.
泛洪和MAC列表相关.在L2中存在.是有确定的MAC地址的,只是在MAC表中找不到具体转发的端口和MAC的配对,才开始泛洪处理.但是泛洪并不是广播帧(FF.FF.FF.FF.FF.FF).
广播是有一个具体的行为,它的对象是整个网络.
在ARP时往往需要有特定的主机来响应.
当然太多的广播对于网络是有害的.
容易造成广播风暴.