Tech Talk 让技术发出声音
RSS

读懂交换机的参数

什么是交换机

什么是交换

交换(switching)是按照通信两端传输信息的需要,用人工或设备自动完成的方法,把要传输的信息送到符合要求的相应路由上的技术的统称。交换机有多个端口,每个端口都具有桥接功能,可以连接一个局域网或一台高性能服务器或工作站。实际上,交换机有时被称为多端口网桥。

交换机核心功能

交换机工作于OSI参考模型的第二层,即数据链路层。 1. 交换机内部会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。 1. 在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。 1. 交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

交换机如何实现的

交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。当目的MAC若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的MAC地址,并把它添加入内部MAC地址表中。 使用交换机也可以把网络“分段”,通过对照IP地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的减少冲突域,但它不能划分网络层广播,即广播域。

交换机和路由器的区别

交换机

我们经常说到的以太网交换机实际是一个基于网桥技术的多端口第二层网络设备,它为数据帧从一个端口到另一个任意端口的转发提供了低时延、低开销的通路。 交换机内部核心处有一个交换矩阵,为任意两端口间的通信提供通路,或是一个快速交换总线,以使由任意端口接收的数据帧从其他端口送出。

路由器

而路由器是OSI参考模型的网络层中的分组交换设备(或网络层中继设备),路由器的基本功能是把数据(IP报文)传送到正确的网络,二层转发能力有限。

路由器支持广域网连接,丰富的广域网接口,包括serial、atm等等,支持多种不同有线传输介质,包括串行线缆、光纤、电话线、专线等等,并且接口上支持广域网连接的封装类型,支持HDLC、FR、ATM、PPP、ISDL封装。

在主干网上,路由器的主要作用是路由选择。主干网上的路由器,必须知道到达所有下层网络的路径。这需要维护庞大的路由表,并对连接状态的变化作出尽可能迅速的反应。路由器的故障将会导致严重的信息传输问题。

三层交换机

三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。 对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。 三层交换机就是二层交换技术+三层转发技术。传统交换机是在OSI网络标准模型第二层数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。 但是三层交换机依然无法取代路由器,三层交换机,它只是提供简单的路由功能及一些三层过滤功能。

PPS,背板带宽和无阻塞交换机

什么是PPS

pps的意思是Packet Per Second,每秒钟传输的数据包的数,也就是我们说的 包转发率。

如何计算PPS

假定我们是1个10Mbps的网络端口,那么我们就有以下的算式了,

10M/[(64+12+8)*8]=14.881Kpps 

其中64代表以太网最小包,12代表以太网祯间隙,第一个8代表以太网帧头大小,第二个8代表1 byte = 8 bit。

PPS有什么用

PPS代表在这条线路上,最大的转发速度是多少,这里可以看出10Mpbs的网卡接口最大转发速度每秒钟不能超过15K,同时这是我们计算交换机背板带宽和交换机包转发率的一个重要参数。

交换机的PPS

交换机的PPS代表交换机转发数据包能力的大小。我们可以通过,所有类型端口PPS*该类型端口数量之和的2倍这个方式计算出。 例如 : 1个千兆+4个百兆的端口的交换机,达到全双工无阻塞需要的包转发率如下:

(1.488Mpps + 4 * 0.1488Mpps) * 2 = 4.1664Mpps

什么是背板带宽

背板带宽是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力。

如何计算背板带宽

方法很简单,可以通过所有类型端口传输*该类型端口数量之和的2倍这个方式计算出交换机的背板带宽。 例如一个1个千兆+4个百兆的端口的交换机,达到全双工无阻塞的需要的背板带宽如下:

(1Gbps+ 4 * 0.1Gbps) * 2 = 2.8Gbps

无阻塞全双工交换机

我们依然使用 1个千兆+4个百兆的端口的交换机为例子,当我们看到交换机数据指标中背板带宽>= 2.8Gbps,PPS(包转发率) >= 4.1664Mpps,就可以认为该交换机是无阻塞全双工的交换机。

交换方式

什么是交换方式

交换方式代表一个以太网包通过端口A转发到端口B时,交换机内部是如何处理的。常见的交换方式有,直通式,存储转发式,碎片隔离式。

常见交换方式

直通式

顾名思义,就是从端口A直接转发到端口B,除了读取下以太网帧的头直接找出目的端口B是谁,直接将包发给端口B。

存储转发式

交换机先将输入端口到来的数据包缓存起来,先检查数据包是否正确,并过滤掉冲突包错误,确定包正确后,取出目的地址,通过查找表找到想要发送的输出端口地址,然后将该包发送出去。

碎片隔离式

该模式则是介于直通式和存储转发式之间的一种解决方案,在这个模式下如果发现一个以太网帧小于64字节,则会被丢弃,从而确保碰撞碎片不通过网络传播,能够在很大程度上提高网络传输效率。

交换方式的差异

直通式,传输时延非常小,但是当出现千兆端口向百兆端口转发的时候,由于速率不匹配容易出现丢包现象,同时由于只读取了目标地址而不进行包完整性和正确性检测,很容易出现碰撞碎片在网络上传播。 存储转发的方式解决了直通方式的问题,但是带来的问题是增加了时延。 碎片隔离式,避免了长时延和碰撞碎片在网络上传播,但是缺少存储的过程,依然无法解决高速端口向低速端口转发丢包的情况。

如何选择一款好的交换机

根据RFC 894的说明,以太网封装IP数据包的最大长度是1500字节,也就是说我们可以得出,一个完整的以太网传输为12字节帧间隙 + 8字节帧头 + 6字节的目的MAC + 6字节的源MAC + 2字节的帧类型 + 1500 + 4字节的FCS。因此根据RFC 894和1秒钟业务数据包所承载的数据量,可以计算出我们要求交换机的PPS至少为下面的大小:

 端口速率/(20+平均ip包大小+12+8) = Xpps

如果我们的应用在1秒钟发数据包的量要求的PPS > X的时候,就会产生丢包重传的可能性,就会出现我们的系统完全满跑的时候,瓶颈出现在了交换机上,网络时延变大。 因此,不言而喻,我们不单单要选择百兆还是千兆,还要看懂交换机的各项参数。

总结

不要认为所有的交换机都是一样的,在轻负载的时候也许没问题,当你系统满载的时候,就会出现瓶颈吞吐反而一落千丈和自己的估算值相差甚远的情况。因此,在选择交换机的时候,不单单要看是百兆的还是千兆的,更要看背板带宽和包转发率。