以太网交换机

 
什么是交换机?
交换机是一种基于 MAC (网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机可以 学习 ”MAC 地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
 
交换机与集线器的区别
  现在,交换机已经替代了我们原来比较熟悉的网络设备集线器,又称 Hub 。但是这并不意味着,我们不需要了解 Hub 的基本知识。集线器( HUB )属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。集线器工作在局域网 (LAN) 环境,像网卡一样,应用于 OSI 参考模型第一层,因此又被称为物理层设备。集线器内部采用了电器互联,当维护 LAN 的环境是逻辑总线或环型结构时,完全可以用集线器建立一个物理上的星型或树型网络结构。在这方面,集线器所起的作用相当于多端口的中继器。其实,集线器实际上就是中继器的一种,其区别仅在于集线器能够提供更多的端口服务,所以集线器又叫多口中继器。
交换机与集线器的本质区别:用集线器组成的网络称为共享式网络,而用交换机组成的网络称为交换式网络。 共享式以太网存在的主要问题是所有用户共享带宽,每个用户的实际可用带宽随网络用户数的增加而递减。这是因为当信息繁忙时,多个用户可能同时 争用 一个信道,而一个信道在某一时刻只允许一个用户占用,所以大量的用户经常处于监测等待状态,致使信号传输时产生抖动、停滞或失真,严重影响了网络的性能。
OSI 层上看,集线器工作在物理层,只是对物理信号的放大传输,而交换机工作在链路层,将收到的数据送往正确的地方。
交换机工作原理
交换技术是一个具有简化、低价、高性能和高端口密集特点的交换产品,体现了桥接技术的复杂交换技术在 OSI 参考模型的第二层工作。与桥接器一样,交换机按每一个包中的 MAC 地址相对简单地决策信息转发。而这种转发决策一般不考虑包中隐藏的更深的其他信息。与桥接器不同的是交换机转发延迟很小,工作接近单个局域网性能,远远超过了普通桥接互联网络之间的转发性能。交换技术允许共享型和专用型的局域网段进行带宽调整,以减轻局域网之间信息流通出现的瓶颈问题。现在已有以太网、快速以太网、 FDDI ATM 技术的交换产品。交换机能经济地将网络分成小的冲突网域,为每个工作站提供更高的带宽,利用专门设计的集成电路可使交换机以线路速率在所有的端口并行转发信息,提供了比传统桥接器高得多的 * 作性能。专用集成电路技术使得交换器在更多端口的情况下以上述性能运行,其端口造价低于传统型桥接器。
三种交换技术:
1、端口交换
端口交换技术最早出现在插槽式的集线器中,这类集线器的背板通常划分有多条以太网段(每条网段为一个广播域),不用网桥或路由连接,网络之间是互不相通的。以大主模块插入后通常被分配到某个背板的网段上,端口交换用于将以太模块的端口在背板的多个网段之间进行分配、平衡。根据支持的程度,端口交换还可细分为:
  模块交换:将整个模块进行网段迁移。
  端口组交换:通常模块上的端口被划分为若干组,每组端口允许进行网段迁移。
  端口级交换:支持每个端口在不同网段之间进行迁移。这种交换技术是基于 OSI 第一层上完成的,具有灵活性和负载平衡能力等优点。如果配置得当,那么还可以在一定程度进行客错,但没有改变共享传输介质的特点,自而未能称之为真正的交换。
 
2、帧交换
帧交换是目前应用最广的局域网交换技术,它通过对传统传输媒介进行微分段,提供并行传送的机制,以减小冲突域,获得高的带宽。一般来讲每个公司的产品的实现技术均会有差异,但对网络帧的处理方式一般有以下几种:
  直通交换:提供线速处理能力,交换机只读出网络帧的前 14 个字节,便将网络帧传送到相应的端口上。
  存储转发:通过对网络帧的读取进行验错和控制。
  前一种方法的交换速度非常快,但缺乏对网络帧进行更高级的控制,缺乏智能性和安全性,同时也无法支持具有不同速率的端口的交换。因此,各厂商把后一种技术作为重点。
  有的厂商甚至对网络帧进行分解,将帧分解成固定大小的信元,该信元处理极易用硬件实现,处理速度快,同时能够完成高级控制功能(如美国 MADGE 公司的 LET 集线器)如优先级控制。
3、信元交换
ATM 技术代表了网络和通讯技术发展的未来方向,也是解决目前网络通信中众多难题的一剂 良药 ATM 采用固定长度 53 个字节的信元交换。由于长度固定,因而便于用硬件实现。 ATM 采用专用的非差别连接,并行运行,可以通过一个交换机同时建立多个节点,但并不会影响每个节点之间的通信能力。 ATM 还容许在源节点和目标、节点建立多个虚拟链接,以保障足够的带宽和容错能力。 ATM 采用了统计时分电路进行复用,因而能大大提高通道的利用率。 ATM 的带宽可以达到 25M 155M 622M 甚至数 Gb 的传输能力。

局域网交换机的种类与选择
局域网交换机根据使用的网络技术可以分为:
  以大网交换机;
  令牌环交换机;
   FDDI 交换机;
   ATM 交换机;
  快速以太网交换机等。

如果按交换机应用领域来划分,可分为:
  台式交换机;
  工作组交换机;
  主干交换机;
  企业交换机;
  分段交换机;
  端口交换机;
  网络交换机等。
几个值得注意的问题
1.            交换机网络中的瓶颈问题
     
交换机本身的处理速度可以达到很高,用户往往迷信厂商宣传的 Gbps
级的高速背板。其实这是一种误解,连接入网的工作站或服务器使用的网络是以大网,它遵循 CSMA CD 介质访问规则。在当前的客户/服务器模式的网络中多台工作站会同时访问服务器,因此非常容易形成服务器瓶颈。有的厂商已经考虑到这一点,在交换机中设计了一个或多个高速端口(如 3COM Linkswitch1000 可以配置一个或两个 100Mbps 端口),方便用户连接服务器或高速主干网。用户也可以通过设计多台服务器(进行业务划分)或追加多个网卡来消除瓶颈。交换机还可支持生成树算法,方便用户架构容错的冗余连接。

2.            网络中的广播帧
目前广泛使用的网络 * 作系统有 Netware Windows NT 等,而 Lan Server
的服务器是通过发送网络广播帧来向客户机提供服务的。这类局域网中广播包的存在会大大降低交换机的效率,这时可以利用交换机的虚拟网功能(并非每种交换机都支持虚拟网)将广播包限制在一定范围内。
  每台文交换机的端口都支持一定数目的 MAC 地址,这样交换机能够 记忆 住该端口一组连接站点的情况,厂商提供的定位不同的交换机端口支持 MAC 数也不一样,用户使用时一定要注意交换机端口的连接端点数。如果超过厂商给定的 MAC 数,交换机接收到一个网络帧时,只有其目的站的 MAC 地址不存在于该交换机端口的 MAC 地址表中,那么该帧会以广播方式发向交换机的每个端口。
3.            虚拟网的划分
    虚拟网是交换机的重要功能,通常虚拟网的实现形式有三种:
   (1) 静态端口分配
  静态虚拟网的划分通常是网管人员使用网管软件或直接设置交换机的端口,使其直接从属某个虚拟网。这些端口一直保持这些从属性,除非网管人员重新设置。这种方法虽然比较麻烦,但比较安全,容易配置和维护。
   (2) 动态虚拟网
  支持动态虚拟网的端口,可以借助智能管理软件自动确定它们的从属。端口是通过借助网络包的 MAC 地址、逻辑地址或协议类型来确定虚拟网的从属。当一网络节点刚连接入网时,交换机端口还未分配,于是交换机通过读取网络节点的 MAC 地址动态地将该端口划入某个虚拟网。这样一旦网管人员配置好后,用户的计算机可以灵活地改变交换机端口,而不会改变该用户的虚拟网的从属性,而且如果网络中出现未定义的 MAC 地址,则可以向网管人员报警。
   (3) 多虚拟网端口配置
  该配置支持一用户或一端口可以同时访问多个虚拟网。这样可以将一台网络服务器配置成多个业务部门(每种业务设置成一个虚拟网)都可同时访问,也可以同时访问多个虚拟网的资源,还可让多个虚拟网间的连接只需一个路由端口即可完成。但这样会带来安全上的隐患。虚拟网的业界规范正在制定当中,因而各个公司的产品还谈不上互工作性。 Cisco 公司开发了 Inter Switch Link ISL )虚拟网络协议,该协议支持跨骨干网( ATM FDDI Fast Ethernet )的虚拟网。但该协议被指责为缺乏安全性上的考虑。传统的计算机网络中使用了大量的共享式 Hub ,通过灵活接入计算机端口也可以获得好的效果。
 
4.            高速局域网技术的应用
快速以太网技术虽然在某些方面与传统以大网保持了很好的兼容性,但 100BASE-TX 100BASAE-T4 100BASE-FX 对传输距离和级连都有了比较大的限制。通过 100Mbps 的交换机可以打破这些局限。同时也只有交换机端口才可以支持双工高速传输。
  目前也出现了 CDDI FDDI 的交换技术,另外该 CDDI FDDI 的端口价格也呈下降趋势,同时在传输距离和安全性方面也有比较大的优势,因此它是大型网络骨干的一种比较好的选择。
   3COM 的主要交换产品有 Linkswitch 系列和 LANplex 系列; BAY 的主要交换产品有 LattisSwitch2800 BAY stack workgroup System3O00 5000 (提供某些可选交换模块); Cisco 的主要交换产品有 Catalyst 1000 2000 3000 5000 系列。
   三家公司的产品形态看来都有相似之处,产品的价格也比较接近,除了设计中要考虑网络环境的具体需要(强调端口的搭配合理)外,还需从整体上考虑,例如网管、网络应用等。随着 ATM 技术的发展和成熟以及市场竞争的加剧,帧交换机的价格将会进一步下跌,它将成为工作组网的重要解决方案。
 
交换机技术的发展
    我们耳熟能详的就是二层交换三层路由,所以大多数人认为交换机还是工作在七层 OSI 模型中的第二层,随着技术的发展,主要是硬件技术的发展,交换机的功能已经不仅仅限于二层数据交换了,所以有了三层交换机,四层交换机,现在来逐步认识下:
二层交换技术
二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的 MAC 地址信息,根据 MAC 地址进行转发,并将这些 MAC 地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
(1)                  当交换机从某个端口收到一个数据包,它先读取包头中的源 MAC 地址,这样它就知道源 MAC 地址的机器是连在哪个端口上的;
(2)                  再去读取包头中的目的 MAC 地址,并在地址表中查找相应的端口;
(3)                  如表中有与这目的 MAC 地址对应的端口,把数据包直接复制到这端口上;
(4)                  如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的 MAC 地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。  
不断的循环这个过程,对于全网的 MAC 地址信息都可以学习到,二层交换机就是这样
建立和维护它自己的地址表。
从二层交换机的工作原理可以推知以下三点:
(1)                 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有 N 个端口,每个端口的带宽是 M ,交换机总线带宽超过 N×M ,那么这交换机就可以实现线速交换;
(2)                 学习端口连接的机器的 MAC 地址,写入地址表,地址表的大小 ( 一般两种表示方式:一为 BEFFERRAM ,一为 MAC 表项数值 ) ,地址表大小影响交换机的接入容量;
(3)                 还有一个就是二层交换机一般都含有专门用于处理数据包转发的 ASIC (Application specific Integrated Circuit) 芯片,因此转发速度可以做到非常快。由于各个厂家采用 ASIC 不同,直接影响产品性能。    
以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选
型时注意比较。
附:路由技术
路由器工作在 OSI 模型的第三层 --- 网络层操作,其工作模式与二层交换相似,但路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所表示的是如果要去某一个地方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源地址。
路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达目的路由器。
而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设计。
三层交换技术
近年来的对三层技术的宣传,耳朵都能起茧子,到处都在喊三层技术,有人说这是个非常新的技术,也有人说,三层交换嘛,不就是路由器和二层交换机的堆叠,也没有什么新的玩意,事实果真如此吗?下面先来通过一个简单的网络来看看三层交换机的工作过程。  
  组网比较简单
使用 IP 的设备 A------------------------ 三层交换机 ------------------------ 使用 IP 的设备 B
比如 A 要给 B 发送数据,已知目的 IP ,那么 A 就用子网掩码取得网络地址,判断目的 IP 是否与自己在同一网段。如果在同一网段,但不知道转发数据所需的 MAC 地址, A 就发送一个 ARP 请求, B 返回其 MAC 地址, A 用此 MAC 封装数据包并发送给交换机,交换机起用二层交换模块,查找 MAC 地址表,将数据包转发到相应的端口。
如果目的 IP 地址显示不是同一网段的,那么 A 要实现和 B 的通讯,在流缓存条目中没有对应 MAC 地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在 MAC 表中放的是缺省网关的 MAC 地址;然后就由三层模块接收到此数据包,查询路由表以确定到达 B 的路由,将构造一个新的帧头,其中以缺省网关的 MAC 地址为源 MAC 地址,以主机 B MAC 地址为目的 MAC 地址。通过一定的识别触发机制,确立主机 A B MAC 地址及转发端口的对应关系,并记录进流缓存条目表,以后的 A B 的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。  
以上就是三层交换机工作过程的简单概括,可以看出三层交换的特点: 
由硬件结合实现数据的高速转发。
这就不是简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背板总线上,突破了传统路由器的接口速率限制,速率可达几十 Gbit/s 。算上背板带宽,这些是三层交换机性能的两个重要参数。
简洁的路由软件使路由过程简化。
大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。
结论一
二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。  
路由器的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。
三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是客户的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连。
第四层交换的一个简单定义是:它是一种功能,它决定传输不仅仅依据 MAC 地址 ( 第二层网桥 ) 或源 / 目标 IP 地址 ( 第三层路由 ), 而且依据 TCP/UDP( 第四层 ) 应用端口号。第四层交换功能就象是虚 IP ,指向物理服务器。它传输的业务服从的协议多种多样,有 HTTP FTP NFS Telnet 或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡(负载均担)算法。在 IP 世界,业务类型由终端 TCP UDP 端口地址来决定,在第四层交换中的应用区间则由源端和终端 IP 地址、 TCP UDP 端口共同决定。
在第四层交换中为每个供搜寻使用的服务器组设立虚 IP 地址 (VIP) ,每组服务器支持某种应用。在域名服务器 (DNS) 中存储的每个应用服务器地址是 VIP ,而不是真实的服务器地址。
当某用户申请应用时,一个带有目标服务器组的 VIP 连接请求 ( 例如一个 TCP SYN ) 发给服务器交换机。服务器交换机在组中选取最好的服务器,将终端地址中的 VIP 用实际服务器的 IP 取代,并将连接请求传给服务器。这样,同一区间所有的包由服务器交换机进行映射,在用户和同一服务器间进行传输。
 
第四层交换的原理
OSI 模型的第四层是传输层。传输层负责端对端通信,即在网络源和目标系统之间协调通信。在 IP 协议栈中这是 TCP( 一种传输协议 ) UDP( 用户数据包协议 ) 所在的协议层。
在第四层中, TCP UDP 标题包含端口号 (portnumber) ,它们可以唯一区分每个数据包包含哪些应用协议 ( 例如 HTTP FTP ) 。端点系统利用这种信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所收到的 IP 包类型,并把它交给合适的高层软件。端口号和设备 IP 地址的组合通常称作 " 插口 (socket)" 1 255 之间的端口号被保留,他们称为 " 熟知 " 端口,也就是说,在所有主机 TCP/IP 协议栈实现中,这些端口号是相同的。除了 " 熟知 " 端口外,标准 UNIX 服务分配在 256 1024 端口范围,定制的应用一般在 1024 以上分配端口号 . 分配端口号的最近清单可以在 RFc1700"Assigned Numbers" 上找到。 TCP/UDP 端口号提供的附加信息可以为网络交换机所利用,这是第 4 层交换的基础。
" 熟知 " 端口号举例:
应用协议     端口号
FTP         20( 数据 )
21( 控制 )
TELNET         23
SMTP         25
HTTP        80
NNTP         119
NNMP         16
162(SNMP traps)
TCP/UDP 端口号提供的附加信息可以为网络交换机所利用,这是第四层交换的基础。
具有第四层功能的交换机能够起到与服务器相连接的 " 虚拟 IP"(VIP) 前端的作用。
每台服务器和支持单一或通用应用的服务器组都配置一个 VIP 地址。这个 VIP 地址被发送出去并在域名系统上注册
  在发出一个服务请求时,第四层交换机通过判定 TCP 开始,来识别一次会话的开始。然后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一个具体的 IP 地址联系在一起,并用该服务器真正的 IP 地址来代替服务器上的 VIP 地址。 每台第四层交换机都保存一个与被选择的服务器相配的源 IP 地址以及源 TCP 端口相关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服务器之间重新影射和转发,直到交换机发现会话为止。在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。
实践结合理论
以上这些东东是我刚入公司是搜索到的一些资料,因为之前我从未接触过这方面的开发与研究,我的研究生方向是模式识别与智能系统,本以为还有点算法可派上用场,可是真的到了实践,发现差距很远,即便是再精妙的算法在实际经验面前,还是要地下头,虔诚的听取教训。
细细算来,离到公司整一年还差一个月吧,无论得与失,成与败自己都应该理理头绪,对于交换机整个系统而言,其实涉及是很多得,从开发得角度去看,有硬件设计,驱动和平台等,这里所说的平台实际上只是一种给予嵌入式系统开发得应用程序而已,比如 VxWorks ,基于 VxWorks 开发出来得一套应用程序,平台是系统运行得根本,没有这个平台,交换机什么也干不了,就是一堆芯片电路单板得堆叠,平台为了完成交换和路由等任务,会基于 VxWorks 建立一套自己得定时器、内存分配等机制,以一个简单得二层协议 STP 为例,为了实现对冗余链路得裁减,平台需要驱动提供协议使能等操作,于是驱动层实现平台得需求,完成 STP 协议得使能和状态值输出等接口函数,驱动层会调用芯片相关得 SDK 函数实现真实得功能,平台得 STP 相关功能在驱动层的协助下完成对芯片表项的设置以及协议功能的实现。
驱动开发在原本看来是很有趣的一项工作,到了岗位才知道系统之大,并非自己所想,不是象在学校那样,搞个 USB 驱动的开发,环境设备驱动都是自己一个人搞,找不着北的时候总是很多。现在感觉自己最多不是一个嵌入式的 C 语言编程人员而言,能够值得一说的就是驱动软件架构,嵌入式 C 编码风格,一些二层或三层协议的特征及基本原理等,作为一名驱动开发工程师,没必要象应用程序的开发人员那样,考虑界面的美观,考虑简便的操作性等,注重效率和功能的实现,效率又和开发的平台有关,比如我们使用的 VxWorks ,功能又和芯片相关,我相信,当我在一条路上走的明白了,其他的路不会很难走的。
 
 
 
   一点感慨,牢骚不算,权做借酒,欣慰不少。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值