以太网交换机一般使用缓冲技术来存储和发送数据包到合适的端口或者多个端口。这个用来临时存放数据的地方就叫做存储器缓冲区。存储器缓冲区一般是通过两种方式在转发数据包。
基于端口的存储缓冲期与基于共享存储器缓冲区。假设现在有个太网交换机,其只有A、B、C三个接口。现在假设从交换机的 A端口有个数据需要发送到C端口,这个存储缓冲区该如何工作呢?
若交换机采用的是基于端口的存储缓冲器中,则数据包将存储在与特定的进入端口相连的队列中。也就是说,当数据包从交换机的端口A中进入,向从端口C出去时,则数据先会依次存储在端口A的存储器缓冲区里面,而不是直接被转发给发出端口C的存储器缓冲区里面。
交换机需要先判断一下,端口A所在的存储器缓冲区里面,在这个数据包前面是否有其他的包存在。根据先来后到的原则,只有等到其前面的数据包全部发送完毕后,这个数据包才会被发送到C端口的存储器缓冲区里面,然后再进行排队等候。
等到其前面的数据全部发送出去之后,这个数据包才会在C端口上被发送出去。所以,这很可能导致数据的延迟,当一个C端口或者A端口比较繁忙时,这种延迟的现象就会比较严重。
而且,这个存储器缓冲区的的大小一般是受到端口限制的。如此的话,若把数据从100M/S的端口发送到10 M/S的端口上去的时候,数据的丢包现象就会比较严重。所以,基于端口的存储缓冲器,一般常用于对称交换机上,而不用于不对称交换机。
不对称交换机一般多用的是基于共享的存储缓冲器中。共享存储缓冲器是指在交换机上,有专门一块地方,用来临时存放这些数据包。而这块地方又是共享的,交换机的各个端口都可以访问。
这个基于端口的存储缓冲器有本质的区别。后者的话,各个存储缓冲器是各自独立的,端口之间不能相互访问存储缓冲器,而只有端口主动进行数据包的发送。另外一个区别就是,基于端口的存储缓冲器一般来说,其容量都是固定的;
而基于共享的端口缓冲期,其存储的容量则是根据端口的需求不同,而进行动态分配的。如现在交换机的一个100M/S的端口需要发送一个数据给10M/S的端口,则此时,共享存储缓冲器就会给其分配足够大的存储器容量。
让其能够一次性把数据包都进来,然后再共享存储缓冲器中进行等待,通过10M/S的端口发送出去。这么做的好处就是可以极大的减少数据丢包的现象。这对于不对称交换机进行正常工作时非常有用的,使得100M/S速度的端口中的包能够被成功发送到10M/S的端口上去。
每台太网交换机都保存一个与被选择的服务器相配的源IP地址以及源TCP端口相关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服务器之间重新影射和转发。
直到交换机发现会话为止。在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。
***的太网交换机是如何解决这一问题的?主要是通过两个途径:一是将控制通道和数据转发通道进行分离,二是在各个接口模块上使用高性能的CPU参与。控制通道和数据转发通道的分离就是在交换机上实现两个不同的并行交叉矩阵。
这样,我们所说的背板容量将完全用于数据通道的使用,同时也保障了万兆交换机硬件的安全性,而本地高性能的CPU参与使得中央管理模块永远不会处理涉及各个接口数据的转发,实现真正意义上的分布式体系结构。
当然,万兆以太网的体系结构还有很多因素参与,比如大容量的SDRAM 和TCAM(能够在一秒钟实现10亿次以上搜索),比如本地路由方式是否采用基于拓扑结构驱动。
【编辑推荐】