交换机开发(一)—— 交换机的工作原理

一、交换机的工作原理

     当交换机收到数据时,它会检查它的目的MAC地址,然后把数据从目的主机所在的接口转发出去。交换机之所以能实现这一功能,是由于交换机内部有一个MAC地址表MAC地址表记录了网络中全部MAC地址与该交换机各port的相应信息。某一数据帧须要转发时,交换机依据该数据帧的目的MAC地址来查找MAC地址表。从而得到该地址相应的port。即知道具有该MAC地址的设备是连接在交换机的哪个port上。然后交换机把数据帧从该port转发出去

1.交换机依据收到数据帧中的源MAC地址建立该地址同交换机port的映射,并将其写入MAC地址表中。


2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比較,以决定由哪个port进行转发。


3.如数据帧中的目的MAC地址不在MAC地址表中。则向全部port转发。这一过程称为泛洪(flood
4.广播帧和组播帧向全部的port转发

例:某网络如图1所看到的。

                                                                         图1 交换机地址表

表1port/MAC地址映射表

                MAC地址                   

           port              

00-10-B5-4B-30-85

E0/1

00-10-B5-4B-30-90

E0/2

00-10-B5-4B-30-65

E0/24

如果主机pc1向主机pc7发送一个数据帧,该数据帧被送到交换机后,交换机首先查MAC地址表。发现主机pc7连接在E0/24接口上,就将数据帧从E0/24接口转发出去。


二、MAC地址表的构建过程

       为高速转发报文,以太网交换机须要建立和维护MAC地址表。

交换机採用源MAC地址学习的方法建立MAC地址表

(1)交换机初始状态

交换机的初始状态MAC地址表为空,如图2所看到的。


                                                  图2 交换机地址表初始状态


(2)地址表源MAC地址学习

     当计算机PC1要发送数据帧给计算机PC6时,因此时地址表是空的。交换机将向除PC1连接portE0/1以外的其它全部port转发数据帧。在转发之前,首先检查该数据帧的源MAC地址(00-10-B5-4B-30-85),并在交换机的MAC地址表中加入一条记录(00-10-B5-4B-30-85,E0/1)使之和portE0/1相相应。

(3)计算机PC6接收数据帧

    计算机PC6收到发送的数据帧后。用该数据帧的目的MAC地址和本机的MAC地址比較。发现PC1找的正是它。则接收该数据帧,其它计算机丢弃数据帧。

    计算机PC6回复PC1时,交换机直接从portE0/1转发。并学习到(00-10-B5-4B-30-65)为PC6连接的port。将其加入到地址表中,如图3所看到的。

                                                           图3 地址表源MAC地址学习


       交换机的其它port利用源MAC地址学习的方法在MAC地址表中不断加入新的MAC地址与port号的相应信息。直到MAC地址表加入完整为止。

      为了保证MAC地址表中的信息可以实时地反映网络情况,每一个学习到的记录都有一个老化时间,假设在老化时间内收到地址信息则刷新记录。

对没有收到相应的地址信息的则删除该记录。

比如,计算机PC6停止了和交换机通信。达到老化时间后。交换机会将其相应的记录从MAC地址表中删除。

      也能够手工加入交换机的MAC地址表的静态记录,手工配置的静态记录没有老化时间的限制。

因为MAC地址表中对于同一个MAC地址仅仅能有一条记录,所以假设手工配置了MAC地址和port号相应关系后。交换机就不再动态学习这台计算机的MAC地址了。


三、交换机的三个主要功能 

a -- 学习

      以太网交换机了解每一port相连设备的MAC地址,并将地址同对应的port映射起来存放在交换机缓存中的MAC地址表中.

b -- 转发/过滤

  当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的port而不是全部port(如该数据帧为广播/组播帧则转发至全部port)

c -- 消除回路

      当交换机包含一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同一时候同意存在后备路径。


四、交换机的工作特性 

1.交换机的每个port所连接的网段都是一个独立的冲突域。 

2.交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播(惟一的例外是在配有VLAN的环境中)。

 

3.交换机根据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备(此处所述交换机仅指传统的二层交换设备)。


五、交换机的分类 

   按照交换机处理帧时不同的操作模式,主要可分为两类: 

a -- 存储转发

       交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。

帧通过交换机的转发时延随帧长度的不同而变化。 

b -- 直通式

      交换机仅仅要检查到帧头中所包括的目的地址就马上转发该帧,而无需等待帧所有的被接收,也不进行错误校验。因为以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。


六、二、三、四层交换机对照

多种理解的说法:

1.

二层交换(也称为桥接)是基于硬件的桥接。基于每一个末端网站的唯一MAC地址转发数据包。二层交换的高性能能够产生添加各子网主机数量的网络设计。其仍然有桥接所具有的特性和限制。

三层交换是基于硬件的路由选择。路由器和第三层交换机对数据包交换操作的主要差别在于物理上的实施。 

四层交换的简单定义是:不仅基于MAC(第二层桥接)或源/目的地IP地址(第三层路由选择)。同一时候也基于TCP/UDP应用port来做出转发决定的能力。其使网络在决定路由时可以区分应用。可以基于详细应用对数据流进行优先级划分。它为基于策略的服务质量技术提供了更加细化的解决方式。提供了一种可以区分应用类型的方法。


2.

二层交换机 基于MAC地址
三层交换机 具有VLAN功能 有交换和路由///基于IP。就是网络
四层交换机 基于port,就是应用


3.

二层交换技术从网桥发展到VLAN(虚拟局域网),在局域网建设和改造中得到了广泛的应用。

第二层交换技术是工作在OSI七层网络模型中的第二层,即数据链路层。

它依照所接收到数据包的目的MAC地址来进行转发,对于网络层或者高层协议来说是透明的。

它不处理网络层的IP地址。不处理高层协议的诸如TCPUDP的port地址。它仅仅须要数据包的物理地址即MAC地址。数据交换是靠硬件来实现的,其速度相当快。这是二层交换的一个显著的长处。可是。它不能处理不同IP子网之间的数据交换。

传统的路由器能够处理大量的跨越IP子网的数据包,可是它的转发效率比二层低。因此要想利用二层转发效率高这一长处。又要处理三层IP数据包。三层交换技术就诞生了。

三层交换技术的工作原理

第三层交换工作在OSI七层网络模型中的第三层即网络层,是利用第三层协议中的IP包的包头信息来对兴许数据业务流进行标记,具有同一标记的业务流的兴许报文被交换到第二层数据链路层,从而打通源IP地址和目的IP地址之间的一条通路。这条通路经过第二层链路层。有了这条通路,三层交换机就没有必要每次将接收到的数据包进行拆包来推断路由,而是直接将数据包进行转发,将数据流进行交换


以下看一下具体分析:

1、二层交换技术

      二层交换技术是发展比較成熟,二层交换机属数据链路层设备,能够识别数据包中的MAC地址信息,依据MAC地址进行转发,并将这些MAC地址相应的port记录在自己内部的一个地址表中

  详细的工作流程例如以下:

1) 当交换机从某个port收到一个数据包,它先读取包头中的MAC地址,这样它就知道源MAC地址的机器是连在哪个port上的;

2) 再去读取包头中的目的MAC地址。并在地址表中查找对应的port

3) 如表中有与这目的MAC地址相应的port,把数据包直接拷贝到这port上;

4) 如表中找不到相应的port则把数据包广播到全部port上。当目的机器对源机器回应时,交换机又能够学习一目的MAC地址与哪个port相应,在下次传送数据时就不再须要对全部port进行广播了。

        不断的循环这个过程,对于全网的MAC地址信息都能够学习到。二层交换机就是这样建立和维护它自己的地址表

从二层交换机的工作原理能够推知下面三点:

1) 因为交换机对多数port的数据进行同一时候交换,这就要求具有非常宽的交换总线带宽,假设二层交换机有N个port,每一个port的带宽是M,交换机总线带宽超过N×M,那么这交换机就能够实现线速交换;

2) 学习port连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BEFFER RAM,一为MAC表项数值)。地址表大小影响交换机的接入容量;

3) 另一个就是二层交换机一般都含有专门用于处理数据包转发的ASICApplication specific Integrated Circuit)芯片,因此转发速度能够做到很快。因为各个厂家採用ASIC不同。直接影响产品性能。

以上三点也是评判二三层交换机性能优劣的主要技术參数,这一点请大家在考虑设备选型时注意比較。


2、路由技术

       路由器工作在OSI模型的第三层---网络层操作。其工作模式与二层交换相似。但路由器工作在第三层,这个差别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是假设要去某一个地方。下一步应该向那里走,假设能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;假设不能知道下一步走向那里,则将此包丢弃。然后返回一个信息交给源地址。

     路由技术实质上来说只是两种功能:决定最优路由转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径。然后由相对简单直接的转发机制发送数据包。

接受数据的下一台路由器按照同样的工作方式继续转发,依次类推,直到数据包到达目的路由器。

    而路由表的维护,也有两种不同的方式。

一种是路由信息的更新。将部分或者所有的路由信息发布出去,路由器通过互相学习路由信息。就掌握了全网的拓扑结构。这一类的路由协议称为距离矢量路由协议;还有一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。

   由于路由器须要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一推断还是对中低端路由器而言。由于高端路由器往往採用分布式处理系统体系设计。


3、三层交换技术

      近年来的对三层技术的宣传,耳朵都能起茧子。到处都在喊三层技术,有人说这是个很新的技术。也有人说。三层交换嘛。不就是路由器和二层交换机的堆叠。也没有什么新的玩意,事实果真如此吗?以下先来通过一个简单的网络来看看三层交换机的工作过程。

     组网比較简单

     使用IP的设备A------------------------三层交换机------------------------使用IP的设备B

     比方A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,推断目的IP是否与自己在同一网段。

     假设在同一网段。但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址。A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块。查找MAC地址表。将数据包转发到对应的port

   假设目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有相应MAC地址条目。就将第一个正常数据包发送向一个缺省网关。这个缺省网关一般在操作系统中已经设好。相应第三层路由模块,所以可见对于不是同一子网的数据。最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包。查询路由表以确定到达B的路由。将构造一个新的帧头。当中以缺省网关的MAC地址为源MAC地址,以主机BMAC地址为目的MAC地址。通过一定的识别触发机制。确立主机ABMAC地址及转发port的相应关系,并记录进流缓存条目表,以后的AB的数据,就直接交由二层交换模块完毕。

这就通常所说的一次路由多次转发。

    以上就是三层交换机工作过程的简单概括,能够看出三层交换的特点:

a -- 由硬件结合实现数据的快速转发

b -- 这就不是简单的二层交换机和路由器的叠加。三层路由模块直接叠加在二层交换的快速背板总线上。突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽。这些是三层交换机性能的两个重要參数。

c -- 简洁的路由软件使路由过程简化。

d -- 大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块快速转发,路由软件大多都是经过处理的高效优化软件,并非简单照搬路由器中的软件。


简单总结:

     二层交换机用于小型的局域网络

这个就不用多言了。在小型局域网中。广播包影响不大。二层交换机的高速交换功能、多个接入port和低谦价格为小型网络用户提供了非常完好的解决方式。

     路由器的长处在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其它网络进行路由信息的交换等等路由器所具有功能。

     三层交换机的最重要的功能是加快大型局域网络内部的数据的高速转发,增加路由功能也是为这个目的服务的。假设把大型网络依照部门,地域等等因素划分成一个个小局域网。这将导致大量的网际互訪,单纯的使用二层交换机不能实现网际互訪;如单纯的使用路由器,因为接口数量有限和路由转发速度慢。将限制网络的速度和网络规模,採用具有路由功能的高速转发的三层交换机就成为首选。

    一般来说,在内网数据流量大。要求高速转发响应的网络中,如所有由三层交换机来做这个工作。会造成三层交换机负担过重,响应速度受影响。将网间的路由交由路由器去完毕,充分发挥不同设备的长处,不失为一种好的组网策略,当然,前提是客户的腰包非常鼓,不然就退而求其次,让三层交换机也兼为网际互连。


4、四层交换机

  第四层交换的一个简单定义是:它是一种功能。它决定传输不只根据MAC地址(第二层网桥)或源/目标IP地址(第三层路由),并且根据TCP/UDP(第四层)应用port号

第四层交换功能就象是虚IP。指向物理server。它传输的业务服从的协议多种多样。有HTTPFTPNFSTelnet或其它协议。这些业务在物理server基础上。须要复杂的载量平衡算法。在IP世界,业务类型由终端TCPUDPport地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCPUDPport共同决定。

  在第四层交换中为每一个供搜寻使用的server组设立虚IP地址(VIP),每组server支持某种应用。在域名server(DNS)中存储的每一个应用server地址是VIP,而不是真实的server地址。

  当某用户申请应用时,一个带有目标server组的VIP连接请求(比如一个TCP SYN包)发给server交换机。server交换机在组中选取最好的server,将终端地址中的VIP用实际server的IP代替,并将连接请求传给server。这样,同一区间全部的包由server交换机进行映射,在用户和同一server间进行传输。

第四层交换的原理 

  OSI模型的第四层是传输层。传输层负责端对端通信,即在网络源和目标系统之间协调通信。在IP协议栈中这是TCP(一种传输协议)和UDP(用户数据包协议)所在的协议层。
  在第四层中,TCPUDP标题包括port号(portnumber),它们可以唯一区分每一个数据包包括哪些应用协议(比如HTTPFTP等)。

端点系统利用这样的信息来区分包中的数据,尤其是port号使一个接收端计算机系统可以确定它所收到的IP包类型。并把它交给合适的高层软件。

port号和设备IP地址的组合通常称作插口(socket

  1255之间的port号被保留。他们称为熟知port。也就是说,在全部主机TCP/IP协议栈实现中。这些port号是同样的。除了熟知port外。标准UNIX服务分配在2561024port范围,定制的应用一般在1024以上分配port号.

   分配port号的近期清单能够在RFc1700”Assigned Numbers”上找到。TCPUDPport号提供的附加信息能够为网络交换机所利用。这是第4层交换的基础。 

"熟知"port号举例

应用协议         port号 

FTP                         20(数据)
           21(控制)

TELNET                 23
SMTP                     25
HTTP                      80
NNTP                     119
NNMP                    16
                               162SNMP traps) 

     TCP/UDPport号提供的附加信息能够为网络交换机所利用,这是第四层交换的基础。

  具有第四层功能的交换机可以起到与server相连接的虚拟IP”(VIP)前端的作用。

     每台server和支持单一或通用应用的server组都配置一个VIP地址。这个VIP地址被发送出去并在域名系统上注冊。

  在发出一个服务请求时。第四层交换机通过判定TCP開始。来识别一次会话的開始。然后它利用复杂的算法来确定处理这个请求的最佳server。

一旦做出这样的决定。交换机就将会话与一个详细的IP地址联系在一起,并用该server真正的IP地址来取代server上的VIP地址。

  每台第四层交换机都保存一个与被选择的server相配的源IP地址以及源TCPport相关联的连接表。然后第四层交换机向这台server转发连接请求。

全部兴许包在客户机与server之间又一次影射和转发。直到交换机发现会话为止。

  在使用第四层交换的情况下,接入能够与真正的server连接在一起来满足用户制定的规则,诸如使每台server上有相等数量的接入或依据不同server的容量来分配传输流。


posted @ 2017-08-12 09:25  jzdwajue  阅读(1302)  评论(0编辑  收藏  举报