交换机的功能及工作过程

一.交换机概述:

交换机是一种工作在二层的设备,但是随着技术的不断进步,现在已经出现了诸如三层交换机,多层交换机产品。在本篇中讨论的是二层交换机的一些特性。

二.交换机的功能:

1.    地址学习

有些地方也叫做基于源MAC地址学习,这个功能主要就是学习和存储MAC地址。

2.    帧的转发/过滤

数据帧的转发主要是交换机能够根据MAC地址表来转发数据,过滤则是对一些受限制的数据进行阻止或丢弃。

3.    环路避免

由于交换机的某些特性会带来一些问题,比如形成环路,因此为了保证网络上数据的正确传输以及网络的稳定要采取一些措施来避免这些问题,主要是通过STP来实现,稍后会讲到。

三.交换机的工作过程:

交换机在运行的时候要维护几张表,比如CAM表,vlan.data表。CAM表用来保存学到的MAC地址;VLAN.DATA文件用来保存VLAN相关的信息。

1.在交换机初始加电的时候它的MAC地址表是空的,当其他与其相连的设备(PC,交换机,路由器等)向它发送一个信息的时候,交换机就会根据数据的源MAC和目标MAC对数据进行处理,因为发的是第一个包,所以这时候交换机会把源MAC地址和数据从本交换机进来的端口号做关联,然后加上VLAN号保存起来形成一个CAM表条目。因为交换机的MAC地址表现在是空的,所以它不知道数据的目的地在那里,这时候交换机会发送ARP请求把数据从除了数据进来的端口之外的所有端口广播,这个过程称为泛洪,当目标主机收到数据之后会返回一个回应包,告诉交换机自己的MAC地址,这时候交换机又会根据目标主机返回的包把目标主机的MAC地址和进来的端口关联起来加上VLAN号形成一个新的CAM表条目。这个过程就是地址学习。我们通过下面的图来详细了解一下。

现在PC1和PC2要进行通信(比如一个PING包),PC1会发出一个数据包格式大致如下:


源MAC


目标MAC


源IP


目标IP


1111


2222


192.168.1.1


192.168.1.2

当数据从PC1出来到了SW1之后,交换机就会查看目标MAC,如果源MAC:1111不在CAM表中,这时候交换机会做一条记录,他会把源MAC和端口对应关系加上VLAN号保存到CAM表中,如:


MAC地址


端口号


Vlan号


1111.1111.1111


F0/1


1

然后他会看目标MAC,因为此时交换机也没不知道2222怎么走,所以它会向除了从F0/1数据进来的端口之外的F0/2,F0/3转发ARP请求,大致就是询问192.168.1.2的MAC地址是多少。发送之后PC2,PC3都会受到数据包,PC3把包拆开发现不是自己的IP地址,就会把数据丢弃,而PC2收到数据之后发现目标IP是自己,这时候PC2就回发送一个回应。告诉交换机“我是192.168.1.2我的MAC地址是2222。交换机收到回应又会在CAM表中添加一条对应关系。


MAC地址


端口号


Vlan


2222.2222.2222


F0/2


1

这个过程之后SW1已经学习到俩个MAC地址了,如果PC1或者PC2要和PC3通信的时候会重复上述步骤,SW1就能学到PC3的MAC地址。

但是有一点要注意,就是如果PC1和PC2的位置改变,F0/1联接PC2,F0/2联接PC1,这个时候经过一次数据通信和地址学习的过程之后,端口F0/1对应的MAC地址就会变成2222.2222.2222。F0/2对应的MAC地址就会变成1111.1111.1111。这是因为交换机总是以最后学到的MAC地址为准的。

2.当交换机学习到直连的本网段内所有的MAC地址之后,如果再有数据包过来,交换机就会根据CAM表里面的对应条目对数据进行处理,还是上面那个图。PC1要和PC2通信,当数据包进过SW1的时候交换机首先看源和目标MAC地址,然后查看CAM表,因为CAM表里面已经有对应关系PC2的MAC地址2222对应端口F0/2所以直接把数据从F0/2发出去而不用再发到PC3。这就是交换机的数据转发,如果发送方和接收方不在同一网段,或者在不同VLAN,或者在交换机上作了二层ACL,则数据将被过滤掉。

交换机的转发有三种方式:

直接转发

存储转发

片段转发

其中直接转发不对数据进行校验,直接把数据从相应端口发送出去。这样容易造成很多无用的数据帧碎片(残帧,坏帧,错误帧等)。

存储转发则是先存储整个数据帧,然后对其进行校验,校验无误后再转发出去。虽然这样做减少了错误帧的问题,但是对每个帧进行整体存储校验这样会占用很多系统资源。

片段转发则综合了直接转发和存储转发的优点,它只检查数据帧的前64个字节,校验通过则进行转发,这样即保证了数据的正确性又能使数据得到比较快速的转发。

当然对于应用环境的不同,上述三种转发方式各有其特点。

3.由于交换机的地址学习和转发功能,会带来一些潜在的问题,如下图所示,PC1要和PC2通信,我们来分析一下数据的流向:

这里会出现俩种情况:

一.当SW1的F0/2收到数据的时候,首先添加一条MAC地址对应关系,地址1111.1111.1111从F0/2学到,然后查看CAM表发现MAC地址2222.2222.2222不在他的CAM表里,这时他会向除了F0/2之外的所有端口转发,于是数据从F0/1转发出去,这里有会有两种情况:

a.PC2正确收到数据,返回一个数据包。

b.SW2收到数据,首先添加一条MAC地址对应关系,地址1111.1111.1111从F1/1学到。然后查看CAM表,发现没有对应的MAC地址则会从除F1/1之外的所有端口即F1/2转发出去,又回到SW1然后就这样一直在SW1和SW2之间传递。形成广播风暴。

二.当SW2的F1/2收到数据的时候,第一步添加一条MAC地址条目,1111.1111.1111从F1/2学到,这时候由于上面一种情况1111.1111.1111是由F1/1学到,这时候会把CAM表里面的对应关系改掉,然后发现MAC地址2222.2222.2222不在他的CAM表里,SW2同样会从F1/1将数据转发出去,这时候也有两种情况:

a.PC2收到数据包,这时候由于之前已经收到一个数据包,此时再受到一个包,这样就出现了重复帧的问题。

b.SW1收到数据包,他会发现MAC地址1111.1111.1111是由F0/1学到的,同样改写自己的CAM表,这样反反复复,CAM表会一直不停的改,造成MAC地址不稳定。

由上可知当存在多链路或者多设备在交换机之间形成环的时候会带来三个问题,即广播风暴、重复帧、MAC地址不稳定。这三个问题的出现是很危险的,因此我们要想办法避免它,通过STP(生成树协议)交换机就可以避免环路。

他的工作过程如下图:

之所以会出现那三种情况是由于在交换机之间形成了一个逻辑的环,如果能打破这个环那么上述三种情况就不会出现了。STP就是基于这个思想在逻辑上把某个端口阻塞掉,如上图把SW2的F1/1端口阻塞掉,这样在SW2上F1/2过来的数据就不会从F1/1转发出去,想从F1/1进来的数据也会被挡在外面进不来。这里介绍的是多链路的情况,如果是多设备的情况也是通过逻辑上阻塞掉某个端口来实现的,使得整个拓扑看上去像棵树一样,树是没有环路的。

这里给大家简单介绍了一些基于MAC地址的二层交换机的工作过程和原理,希望大家看了之后对二层交换机的工作机制有所了解,希望这篇文章能给大家有所收获。

交换机的功能及工作过程,布布扣,bubuko.com

时间: 2024-10-11 06:37:38

交换机的功能及工作过程的相关文章

三层交换机的工作过程

三层交换机工作过程的简单概括,可以看出三层交换的特点: 由硬件结合实现数据的高速转发,前提是客户的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连. 由于各个厂家采用ASIC不同,直接影响产品性能. 以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较.路由技术 路由器工作在OSI模型的第三层---网络层操作,其工作模式与二层交换相似. 但 路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同.工作原理是在路由器

MapReduce程序的工作过程

还记得2.5年前就搭建好了Hadoop伪分布式集群,安装好Eclipse后运行成功了WordCount.java,然后学习Hadoop的步伐就变得很慢了,相信有很多小伙伴和我一样.自己对MR程序(特指Hadoop 1.x版本)的工作过程一直都不是很清楚,现在重点总结一下,为MR编程打好基础.由于MapReduce是基于HDFS的操作,因此要想深入理解MapReduce(解决的是分布式计算问题),首先得深入理解HDFS(解决的是分布式存储问题). 一. HDFS框架组成 HDFS采用master/

Zookeeper的功能以及工作原理

1 Zookeeper的基本概念 1.1 角色 Zookeeper中的角色主要有以下三类,如下表所示: 系统模型如图所示: 1.2 设计目的 1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能. 2 .可靠性:具有简单.健壮.良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受. 3 .实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息.但由于网络延时等原因,Zook

交换机的简介及数据通信过程,子网掩码及路由基础

交换机 1.什么是交换机? 交换机(Switch)意为"开关"是一种用于电(光)信号转发的网络设备.它可以为接入交换机的任意两个网络节点提供独享的电信号通路.最常见的交换机是以太网交换机. 简单地说:交换机用来共享一根网线,路由器用来共享一个IP.也就是说,如果一根网线上想接几个电脑,就必须用,交换机:如果你只有一个IP,想几个电脑上网,就要用路由器来解决.比如宽带路由器就可以让家里的几台电脑共享同一个账号上网:在已经共享上网的情况下,某房间只有一根网线,有多台电脑要上网,用交换机.

Nginx reopen reload作用及工作过程

http://www.iigrowing.cn/nginx-reopen-reload-zuo-yong-ji-gong-zuo-guo-cheng.html Nginx reopen reload作用及工作过程 2012-12-05  categories:nginx  author:sch 原创文章,转载请指明出处并保留原文url地址 一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Ngin

开发人员怎样减轻工作过程中遇到的压力

1.经常锻炼身体 身体是革命的本钱,如果身体不好,会影响工作的效率,即使你能力再强,如果身体不好,时不时的出现身体不舒服的问题,对工作效率也是会有影响的,所以经常锻炼身体显得特别重要. 运动时,不仅能分散注意力.忘掉不快,还能促进大脑分泌多巴胺.内腓肽等物质,它们是人体的“快乐因子”,有助于缓解不适.产生愉悦的情绪反应. 心情烦闷时,无论跑步或快步行走,只要出出汗,压力也会随着汗水,“溜”出你的身体. 另外要养成早睡早起的习惯,晚上11点以前睡觉比较好,再晚也尽量不要晚于12点,睡觉越晚,会越影

基于YARN的Spark程序工作过程

一. YARN的理解 YARN是Hadoop 2.x版本的产物,它最基本的设计思想是将JobTracker的两个主要功能,即资源管理,作业调度和监控分解成为两个独立的进程.再详细介绍Spark程序工作过程前,先简单的介绍一下YARN,即Hadoop的操作系统,不仅支持MapReduce计算框架,而且还支持流式计算框架,迭代计算框架,MPI并行计算框架等,实现时采用了基于事件的驱动机制. YARN的架构图,如下所示: 1. ResourceManager ResourceManager类似JobT

【转】MapReduce程序的工作过程

原文链接 http://www.cnblogs.com/shengshengwang/p/4852927.html 还记得2.5年前就搭建好了Hadoop伪分布式集群,安装好Eclipse后运行成功了WordCount.java,然后学习Hadoop的步伐就变得很慢了,相信有很多小伙伴和我一样.自己对MR程序(特指Hadoop 1.x版本)的工作过程一直都不是很清楚,现在重点总结一下,为MR编程打好基础.由于MapReduce是基于HDFS的操作,因此要想深入理解MapReduce(解决的是分布

编译器的工作过程和原理

转帖: http://www.codeceo.com/article/compiler-process.html#0-youdao-1-33675-32553cecb956bf88a1550052113e506a 码要运行,必须先转成二进制的机器码.这是编译器的任务. 比如,下面这段源码(假定文件名叫做test.c). #include <stdio.h> int main(void) { fputs("Hello, world!\n", stdout); return 0