路由器与交换机的工作原理( 二 )


交换机拥有一条很高带宽的背部总线和内部交换矩阵 。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的mac(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中 。
使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机 。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突 。
交换机在同一时刻可进行多个端口对之间的数据传输 。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用 。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接 。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps 。
总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备 。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址
说明二层交换机、三层交换机和路由器的基本工作原理和三者之间的主要区别 。
1.二层交换技术
二层交换机是数据链路层的设备,它能够读取数据包中的MAC地址信息并根据MAC地址来进行交换 。
交换机内部有一个地址表,这个地址表标明了MAC地址和交换机端口的对应关系 。当交换机从某个端口收到一个数据包,它首先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的,它再去读取包头中的目的MAC地址,并在地址表中查找相应的端口,如果表中有与这目的MAC地址对应的端口,则把数据包直接复制到这端口上,如果在表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了 。
二层交换机就是这样建立和维护它自己的地址表 。由于二层交换机一般具有很宽的交换总线带宽,所以可以同时为很多端口进行数据交换 。如果二层交换机有N个端口,每个端口的带宽是M,而它的交换机总线带宽超过N×M,那么这交换机就可以实现线速交换 。二层交换机对广播包是不做限制的,把广播包复制到所有端口上 。
二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快 。
2.路由技术
路由器是在OSI七层网络模型中的第三层——网络层操作的 。
路由器内部有一个路由表,这表标明了如果要去某个地方,下一步应该往哪走 。路由器从某个端口收到一个数据包,它首先把链路层的包头去掉(拆包),读取目的IP地址,然后查找路由表,若能确定下一步往哪送,则再加上链路层的包头(打包),把该数据包转发出去;如果不能确定下一步的地址,则向源地址返回一个信息,并把这个数据包丢掉 。
路由技术和二层交换看起来有点相似,其实路由和交换之间的主要区别就是交换发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层 。这一区别决定了路由和交换在传送数据的过程中需要使用不同的控制信息,所以两者实现各自功能的方式是不同的 。
路由技术其实是由两项最基本的活动组成,即决定最优路径和传输数据包 。其中,数据包的传输相对较为简单和直接,而路由的确定则更加复杂一些 。路由算法在路由表中写入各种不同的信息,路由器会根据数据包所要到达的目的地选择最佳路径把数据包发送到可以到达该目的地的下一台路由器处 。当下一台路由器接收到该数据包时,也会查看其目标地址,并使用合适的路径继续传送给后面的路由器 。依次类推,直到数据包到达最终目的地 。
路由器之间可以进行相互通讯,而且可以通过传送不同类型的信息维护各自的路由表 。路由更新信息主是这样一种信息,一般是由部分或全部路由表组成 。通过分析其它路由器发出的路由更新信息,路由器可以掌握整个网络的拓扑结构 。链路状态广播是另外一种在路由器之间传递的信息,它可以把信息发送方的链路状态及进的通知给其它路由器 。


推荐阅读