网络中数据转发主要由交换机和路由器完成,路由器属于网络七层结构的网络层(第三层),交换机一般属于数据链路层(第二层)设备(也有三层交换机和四层交换机,分别属于网络层和传输层设备),路由器负责在不同的局域网内进行数据转发,比如你要访问百度的服务器,百度的服务器与你的客户端肯定不在同一个局域网下,你的访问请求就需要通过路由器转发到百度服务器所在的局域网的网关里,关于路由器数据转发的原理可以参考这篇文章。
而百度的网关与百度服务器在同一个局域网下,此时的数据转发工作就由交换机接手,也就是说交换机负责在同一个局域网下的数据转发。打个比方,一圈人围着一个人在中间,这一圈人中两个人或者多个人想要传递悄悄话,但又不想让其他人知道悄悄话的内容,他们便采取一种方法,就是写一个纸条给中间的那个人,把要传递的悄悄话内容,以及要给谁传递都写在纸条上,然后让中间那个人把纸条转给对应的人,这样就实现了即说了悄悄话,也不让别人听见。这个例子里面这一圈人就可以对应一个VLAN,围着的一圈人对应客户机,中间那个人就相当于VLAN里的交换机。
VLAN概念及其划分
广播域(LAN):广播域输数据链路层的概念,是能接收同一个广播报文的的结点集合,如设备的ARP报文能接收到的设备都处于一个广播域。二层交换机是无法隔离广播域的,隔离广播域需要第三层设备,如路由器,三层交换机等。
VLAN即虚拟局域网,基于二层交换机,可以把一个广播域划分为多个子网,每个子网就是一个VLAN,不同的VLAN之间无法直接通信,需要借助三层设备,如路由器或者三层交换机。
VLAN划分方式:VLAN划分有多种方式,一般常用的有以下五种,需要说明的是并不是所有的交换机都支持这五种划分方式
- 根据端口划分:根据交换机端口划分VLAN是最常用的方式,属于静态划分,例如交换机的1-12号端口划分为一个VLAN,根据端口划分VLAN并不仅仅局限于一台交换机,比如A交换机的1-5号端口和B交换机的5-10号端口可以属于同一个VLAN。
- 根据MAC地址划分,这种划分方法根据主机的MAC地址划分,即对每个主机的MAC地址都配置其属于哪一个VLAN,属于动态划分VLAN。这种划方式既有优点也有缺点。
优点就是当设备移位的时候不需要重新配置VLAN,一台设备的MAC地址一般不会改变。
缺点就是这种划分方法会导致交换机端口可能存在多个VLAN组成员,无法限制广播包,从而导致广播太多,影响性能。
- 根据网络层上层协议划分:根据网络层地址或者协议类型划分,属于动态划分。
优点与第二种方法一样,同时可以根据网络协议划分,这对于网络管理者来说很重要;
缺点是效率低,因为检查一个设备的网络地址需要消耗处理时间,交换机芯片会自动读取数据包上的以太网帧头,但是让芯片检查IP帧头需要更高的技术,也更费时。
- 根据IP组播划分VLAN:这种方法认为一个组播组就是一个VLAN,这种方法将VLAN扩展到广域网,因此这种方法具有更好的灵活性,但是不适合局域网,主要还是因为效率不高。
- 基于策略的VLAN:根据管理员事先制定好的VLAN规则,自动将加入到网络中的设备划分到正确的VLAN中。
以上五种划分VLAN的方法最常用的为第一种和第二种。
交换机基本参数
包转发率:指单位时间内网络中通过数据包的数量,对于交换机而言,要实现满负荷运行,最小吞吐量计算公式如下:
包转发率(Mp/s)=万兆端口数量x14.88Mp/s+千兆端口数量x1.488Mp/s+百兆端口数量x0.1488Mp/s。
这里的14.88是通过固定数据速率初一最小帧长得到,结果实际就是单位时间发送64byte数据包的个数。
背板带宽:指交换机接口处理器和总线间所能吞吐的最大数据量,全双工交换机背板带宽计算公式如下:
背板带宽(Mp/s)=万兆端口数量 x 10000Mp/s x 2+千兆端口数量x1.488Mp/s x 2+百兆端口数量x0.1488Mp/s x 2+其他端口x端口速率 x 2
交换机端口:主要分为光纤端口和以太网端口,光口类型有GBIC,SFP等
光纤端口:
- 100Base-FX光纤端口,速率为100Mp/s,接多模光纤。
- 1000Base-SX光纤端口,速率1000Mp/s,接多模光纤。
以太网端口。
- 100Base-TX以太网端口,速率为100Mp/s,接双绞线。
- 1000Base-T以太网端口,速率为1000Mp/s,接双绞线。
GBIC:指将千兆位电信号转换为光信号的接口器件,是千兆以太网连接标准。GBIC在设计上可以为热插拔使用,目前GBIC基本被SFP取代。只要使用GBIC模块就可以连接双绞线,多模光纤,单模光纤等介质
SFP:是GBIC的升级版本,是小型的新的千兆接口标准。
万兆模块:万兆模块是万兆的接口标准。
具体选择何种型号的交换机来构建网络结构,要根据交换机的用途以及实际需求来确定,比如用于数据中心的核心交换机,要求有较大的的数据处理速度和较小的延迟,就要选择背板带宽和包转发率都较大的交换机型号;用于接入层,与客户端连接,一般不需要较大的出局处理能力,但是一个交换机要连接很多台设备,这就需要交换机上有充足的的以太网接口。
同时也要根据实际使用需求来选型,如果只要求100Mp/s的接入速率,显然选择支持1000Mp/s接口的交换机作为接入层交换机是不合理的,成本过高。
交换机工作原理
ARP:ARP即地址解析协议,是一种将IP地址解析为MAC地址的协议。
ARP请求过程如下:
此处定义a主机需要获取b主机的MAC地址
- a主机发送ARP广播,包含a的MAC地址,a的IP地址,以及b的IP地址,此处发送方式以广播形式,一个广播域内所有的主机都会收到a发送的ARP报文。
- b收到广播后发送自己的MAC地址给a,此处以单播的方式发送
- 此时a已经收到b的MAC地址,a收到b的回信后发送真正的IP包
- a与b都知道对方的MAC地址,此后的交互便不再需要ARP广播
- MAC地址与IP地址的映射关系被每台主机存储下来,形成地址映射表
- 每对映射会有一个计时器,计时器到时之前没有捕捉到更新,则映射关系失效
二层交换机工作流程:
- 数据包的以太网帧中包含了源IP,源MAC地址,目标IP,目标MAC地址
- 首先交换机读取源MAC地址,知道源MAC地址连接在哪个端口
- 读取目的MAC地址,通过地址表查询对应的端口
- 表中有对应的MAC地址,将数据包复制到该端口,完成一次数据的转发
- 如果表中没有对于的端口,则向所有VLAN所有主机发送该数据包,MAC地址可以为空,为空则表示将数据发送到所有主机。
- 如果事先不知道对应主机的MAC地址,则主机先发送ARP报文,获取对方主机MAC地址,然后发送真正的数据包给交换机。
- 如果在VLAN中找不到目标主机对应的MAC地址,则将数据包发送到VLAN的网关,一般网关为普通路由器,由网关把数据包发送到网络中,这就是第三层的数据通信了。
三层交换机:三层交换机在二层交换机的基础上增加了路由转发的功能,在同一个VLAN下通信流程与二层交换机一直,当源主机与目标主机不在同一个VLAN下,三层交换机可以完成路由转发的功能,不需要再将数据包发送到网关路由器,通过路由器完成路由转发。
以上就是交换机学习总结,交换机作为数据链路层设备,一般只负责同一个VLAN下的数据转发,结构概念相对于路由器来说要简单的多,与路由器共同实现网络中路由转发功能。