網路交換器
網路交換器(英語:)是一种网络硬件,通过报文交换接收和转发数据到目标设备,它能够在计算机网络上连接不同的设备。一般也简称为交换机。
交换机是一种多端口的网桥,在数据链路层使用MAC地址转发数据。通过引入路由功能,一些交换机也可以在网络层转发数据,这种交换机一般被称为三层交换机或者多层交换机。
以太网交换机是网络交换机最常见的形式。第一个以太网交换机由Kalpana公司(1994年被思科收购)推出。在其他类型的网络中,交换机也普遍存在,如光纤通道、异步传输模式和InfiniBand。
中继器会在其所有端口转发相同的数据,让设备自行判断哪些是自己需要的数据,交换机则不然,它只会将数据转发到需要接收的设备。
工作原理
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一張MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
交换机对数据包的转发是建立在MAC地址——物理地址基础之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和信宿机的IP地址,只需知其物理地址。
交换机在操作过程当中会不断的收集资料去建立它本身的一个地址表,这个表相当简单,它说明了某个MAC地址是在哪个端口上被发现的,所以当交换机收到一个TCP/IP 封包时,它便会查看该数据包的目的MAC地址,核对自己的地址表以确认应该从哪个端口把数据包发出去。由于这个过程比较简单,加上这功能由一崭新硬件进行——ASIC,因此速度相当快。一般只需几十微秒,交换机便可决定一个IP封包该往哪里送。
如果目的地MAC地址不能在地址表中找到时,交换机会把IP 封包「扩散」出去,即把它从每一个端口中送出去,就如交换机在处理一个收到的广播封包时一样。二层交换机的弱点正是它处理广播封包的手法不太有效,比方说,当一个交换机收到一个从TCP/IP工作站上发出来的广播封包时,他便会把该封包传到所有其他端口去,哪怕有些端口上连的是IPX或DECnet工作站。这样一来,非TCP/IP节点的带宽便会受到负面的影响,就算同样的TCP/IP节点,如果他们的子网跟发送那个广播封包的工作站的子网相同,那么他们也会无缘无故地收到一些与他们毫不相干的网络广播,整个网络的效率因此会大打折扣。
工作方式
当一台交换机安装配置好之后,其工作过程如下:
- 收到某网段(设为A)MAC地址为X的计算机发给MAC地址为Y的计算机的数据包。交换机从而记下了MAC地址X在网段A。这称为学习(learning)。
- 交换机还不知道MAC地址Y在哪个网段上,于是向除了A以外的所有网段转发该数据包。这称为泛洪(flooding)。
- MAC地址Y的计算机收到该数据包,向MAC地址X发出确认包。交换机收到该包后,从而记录下MAC地址Y所在的网段。
- 交换机向MAC地址X转发确认包。这称为转发(forwarding)。
- 交换机收到一个数据包,查表后发现该数据包的来源地址与目的地址属于同一网段。交换机将不处理该数据包。这称为过滤(filtering)。
- 交换机内部的MAC地址-网段查询表的每条记录采用时间戳记录最后一次访问的时间。早于某个阈值(用户可配置)的记录被清除。这称为老化(aging)。
对于全交换(full-switch)局域网,交换机每个端口只连接一台设备,因此不会发生碰撞。交换机也不需要做过滤。
工作在OSI不同层级的交换技术
现代商业交换机主要使用以太网接口。提供多端口的二层桥接是以太网交换机的核心功能,而很多交换机也提供其他层级的服务,这种不仅仅提供了桥接功能的交换机也被称为多层交换机。多层交换机可以在许多层级上学习拓扑结构,也可以在一层或多层上进行转发。
一层
一层网络设备传输数据而不控制任何流量,比如集线器。任何进入端口数据包会被转发到除进入端口之外的其他所有端口。具体而言,即每个比特或码元被转发时是原封不动的。由于每个数据包被分发到所有端口,其冲突会影响到整个网络,进而限制了它的整体的能力。 到21世纪初,集线器和低端交换机的价格差异很小。[1]对于特定应用,集线器在一段时间内还是能够发挥作用的,比如给数据包分析器提供网络流量的副本。网络分流器还有交换机的端口镜像也可以实现同样功能。
二层
二层交换机依据硬件地址(MAC 地址)在数据链路层(第二层)传送网络帧。 二层交换机对于路由器和主机是“透明的”,主要遵从802.1d 标准。该标准规定交换机通过观察每个端口的数据帧获得源MAC 地址,交换机在内部的高速缓存中建立MAC 地址与端口的映射表。当交换机接受的数据帧的目的地址在该映射表中被查到,交换机便将该数据帧送往对应的端口。如果它查不到,便将该数据帧广播到该端口所属虚拟局域网(VLAN)的所有端口,如果有回应数据包,交换机便将在映射表中增加新的对应关系。当交换机初次加入网络中时,由于映射表是空的,所以,所有的数据帧将发往虚拟局域网内的全部端口直到交换机“学习”到各个MAC 地址为止。这样看来,交换机刚刚启动时与传统的共享式集线器作用相似的,直到映射表建立起来后,才能真正发挥它的性能。这种方式改变了共享式以太网抢行的方式,如同在不同的行驶方向上铺架了立交桥,去往不同方向的车可以同时通行,因此大大提高了流量。从VLAN的角度来看,由于只有子网内部的节点竞争带宽,所以性能得到提高。主机1 访问主机2 同时,主机3 可以访问主机4 。当各个部门具有自己独立的服务器时,这一优势更加明显。但是这种环境正发生巨大的变化,因为服务器趋向于集中管理,另外,这一模式也不适合Internet的应用。不同VLAN之间的通讯需要通过路由器来完成,另外为了实现不同的网段之间通讯也需要路由器进行互连。
三层
三层交换机则可以处理第三层网络层协议,用于连接不同网段,通过对缺省网关的查询学习来建立两个网段之间的直接连接。
三层交换机可以实现路由器的全部或部分功能,但只能用于同一类型的局域网子网之间的互连。这样,三层交换机可以像二层交换机那样通过MAC地址标识数据包,也可以像传统路由器那样在两个局域网子网之间进行功能较弱的路由转发,它的路由转发不是通过软件来维护的路由表,而是通过专用的ASIC芯片处理这些转发;
七层
更加智慧的交换器,可以充分利用頻宽资源来过滤,识别和处理应用层数据转換的交换设备。