Chinaunix首页 | 论坛 | 博客
  • 博客访问: 431746
  • 博文数量: 72
  • 博客积分: 1583
  • 博客等级: 上尉
  • 技术积分: 775
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-23 09:36
文章分类

全部博文(72)

文章存档

2011年(72)

我的朋友

分类: 网络与安全

2011-02-16 23:41:00

如现在有一台交换机连着四台主机,分别为A、B、C、D。假设现在主机A要发一个数据包给主机D。当交换机收到主机A发过来的数据帧之后,该如何处理呢?

1、若交换机中没有主机A或者主机D的MAC地址信息

如果这个网络是刚刚组建,又或则出于某种原因,网络管理员把交换机重置后,则交换机的转发/过滤表会被清除。此时,由于主机A的MAC地址不在转发/过滤表中,所以,交换机会将主机A的MAC地址和端口添加到自己的MAC数据库中,然后再把帧转发到主机D中。但是,如果主机D的MAC地址不在交换机的MAC数据库中,则交换机会将帧转发到除了主机A连接的接口之外的其他所有接口中。也就是说,在交换机不知道目的主机MAC地址的时候,则交换机上的除了本台设备之外的其他任何设备,如主机B、C、D都将收到主机A发出的数据包。很明显,此时交换机的一些带宽就会被浪费掉。在这种情形下,转发过滤技术并不能够带来多大的益处。

2、若交换机知道目的主机的MAC地址

假设交换机通过ARP等机制,在自己的MAC地址库中已经知道了所连接设备的MAC地址,如主机A、B、C、D的MAC地址。要了解这些信息不难。只要这个网络存在一定时间,则通过地址学习功能,交换机可以记录相关设备的MAC地址信息。

在交换机已经了解了其相邻设备的MAC地址后,当交换机接收到主机A发过来的数据帧之后,会如何处理呢?交换机首先会读取数据帧中的目的MAC地址。然后在自己的MAC地址库中进行查找。发现有匹配的MAC地址后,就从MAC地址库中查询中对应的交换机出口。然后再把数据帧从这个出口转发出去。从这个转发的过程中,我们可以看到数据帧是一进一出。而不像集线器一样,是一进多出;或者像上面提到的不知道目的MAC地址那样,也是一进多出。在这种情形下,交换机直接把数据帧准确无误的转发到对应的接口上。很明显,此时就不会对其他网段的带宽带来不利的影响。

通过这种转发过滤技术,就可以在最大限度内避免冲突域的产生,从而在很大程度上提高网络性能。

在利用二层交换机来隔离冲突域时,要注意一个问题。当交换机不知道目的MAC地址的话,则交换机并不能够起到隔离冲突域的作用。因为此时,交换机仍然会把数据帧转发到所有的交换机接口中。故当网络管理员利用交换机组建比较大型的网络时,不要频繁的重复启动交换机等网络设备。因为重新启动后,其MAC地址库中的内容可能会丢失。如此的话,交换机就又要重零开始学习MAC地址以及MAC地址与端口的对应表。

PS: 冲突域与广播域
冲突域(物理分段):在OSI模型中,冲突域被看作是第一层的概念,连接同一冲突域的设备有Hub,Reperter或者其他进行简单复制信号的设备。也就是说,用Hub(集线器)或者Repeater(中继器)连接的所有节点可以被认为是在同一个冲突域内,它不会划分冲突域。而第二层设备(网桥,交换机)第三层设备(路由器)都可以划分冲突域的,当然也可以连接不同的冲突域。简单的说,可以将Repeater等看成是一根电缆,而将网桥等看成是一束电缆。
广播域 接收同样广播消息的节点的集合。如:在该集合中的任何一个节点传输一个广播帧,则所有其他能收到这个帧的节点都被认为是该广播帧的一部分。由于许多设备都极易产生广播,所以如果不维护,就会消耗大量的带宽,降低网络的效率。由于广播域被认为是OSI中的第二层概念,所以象Hub,交换机等第一,第二层设备连接的节点被认为都是在同一个广播域。而路由器,第三层交换机则可以划分广播域,即可以连接不同的广播域。

阅读(3798) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~