引言
传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方面的考虑,VLAN(虚拟局域网)技术在网络中大量应用。VLAN技术可以逻辑隔离各个不同的网段、端口甚至主机,而各个不同VLAN间的通信都要经过路由器来完成转发。由于局域网中数据流量很大,VLAN间大量的信息交换都要通过路由器来完成转发,这时候随着数据流量的不断增长路由器就成为了网络的瓶颈。为了解决局域网络的这个瓶颈,很多企业内部、学校和小区建设局域网时都采用了三层交换机。三层交换技术将交换技术引入到网络层,三层交换机的应用也从最初网络中心的骨干层、汇聚层一直渗透到网络边缘的接入层。
一、第三层交换技术
1、三层交换的概念
第三层交换技术也称为IP交换技术或高速路由技术等,是相对于传统交换概念而提出的。众所周知,传统的交换技术是在OSI 网络标准模型中的第二层—数据链路层进行操作的,而第三层交换技术是在网络模型中的第三层实现了数据包的高速转发。简单地说,第三层交换技术就是:第二层交换技术+第三层转发技术,这是一种利用第三层协议中的信息来加强第二层交换功能的机制。一个具有第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件简单地叠加在局域网交换机上。
2、三层交换的原理
从硬件的实现上看,目前,第二层交换机的接口模块都是通过高速背板/总线交换数据的。在第三层交换机中,与路由器有关的第三层路由硬件模块也插接在高速背板/总线上,这种方式使得路由模块可以与需要路由的其他模块间高速地交换数据,从而突破了传统的外接路由器接口速率的限制(10Mbit/s---100Mbit/s)。在软件方面,第三层交换机将传统的基于软件的路由器重新进行了界定
(1) 数据封包的转发:如IP/IPX封包的转发,这些有规律的过程通过硬件高速实现;
(2) 第三层路由软件:如路由信息的更新、路由表维护、路由计算、路由的确定等功能,用优化、高效的软件实现。
假设有两个使用IP协议的站点,通过第三层交换机进行通信的过程为:若发送站点A在开始发送时,已知目的站B的IP地址,但尚不知道它在局域网上发送所需要的MAC 地址,则需要采用地址解析(ARP)来确定B的MAC 地址。A把自己的IP 地址与B的IP 地址比较,采用其软件中配置的子网掩码提取出网络地址来确定B是否与自己在同一子网内。若B 与A 在同一子网内,A 广播一个ARP 请求,B 返回其MAC 地址,A 得到B 的MAC 地址后将这一地址缓存起来,并用此MAC 地址封包转发数据,第二层交换模块查找MAC 地址表确定将数据包发向目的端口。若两个站点不在同一子网内,则A 要向"缺省网关"发出ARP(地址解析)封包,而"缺省网关"的IP 地址已经在系统软件中设置,这个IP 地址实际上对应第三层交换机的第三层交换模块。当A 对"缺省网关"的IP 地址广播出一个ARP 请求时,若第三层交换模块在以往的通信过程中已得到B 的MAC 地址,则向发送站A 回复B 的MAC 地址;否则第三层交换模块根据路由信息向目的站广播一个ARP 请求,B 得到此ARP 请求后向第三层交换模块回复其MAC 地址,第三层交换模块保存此地址并回复给发送站A 。以后,当再进行A 与B 之间数据包转发时,将用最终的目的站点的MAC 地址封包,数据转发过程全部交给第二层交换处理,信息得以高速交换[1] 。
3、第三层交换的特点
突出的特点如下:
(1).有机的硬件结合使得数据交换加速
(2).优化的路由软件使得路由过程效率提高;
(3).除了必要的路由决定过程外,大部分数据转发过程由第二层交换处理;
(4).多个子网互连时只是与第三层交换模块的逻辑连接,不象传统的外接路由器那样需增加端口,保护了用户的投资。
第三层交换的目标是,只要在源地址和目的地址之间有一条更为直接的第二层通路,就没有必要经过路由器转发数据包。第三层交换使用第三层路由协议确定传送路径,此路径可以只用一次,也可以存储起来,供以后使用。之后数据包通过一条虚电路绕过路由器快速发送。
第三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。当然,三层交换技术并不是网络交换机与路由器的简单叠加,而是二者的有机结合,形成一个集成的、完整的解决方案。
二、VLSW4150系列交换机
VLSW4150 系列交换机是为企业提供的高性能、多层次化的解决方案。VLSW 4150也适用于ISP和服务提供商,尤其是对于一些大型的运营商,将能够增强其在IP市场的竞争力。
1、总体设计
VLSW4150交换机有24个RJ45 10/100BASE-TX自适应端口,提供2个可选的光纤10/100BaseTx以太口、100BaseFx快速以太端口或者千兆以太网口(SX,LX,ZX),并另外提供一个串口和一个100M以太网口对交换机进行配置。
VLSW4150交换机的体系结构可以支持最高到11Gbps的速率,多层交换速率达到6.6Mpps;可以支持8,192个MAC地址;为了更好的控制网络流量和网络安全,还支持以1M为步长的速率限制;支持TaggedVLAN和MAC-based的帧过滤以及RIP、OSPF和BGP路由协议。
VLSW4150交换机提供堆栈技术可以以一个逻辑IP地址来管理多个交换机,并可在一个口上镜像其他的数据包,提供基于Web的网管系统以及CLI方式来调试交换机。VLSW4150支持SNMP协议、RMON和Telnet功能来便于管理。
2、硬件结构
VLSW4150三层交换机的硬件结构分为两个部分,处理器模块和交换模块,它们之间通过PCI接口相连,同时配合相应的外围电路形成完整的三层交换机系统,见图1。

图1 硬件结构
(1)处理器模块
如图2所示,处理器部采用一款MOTOROLAPowerQUICCIICPU,同一些外部存储设备以及一些外围电路构成三层交换机的处理器部分。处理器模块主要是运行嵌入式操作系统,配置系统和路由表的维持,而不是数据转发通路的组成部分。CPLD 保存一些CPU初始化的一些配置以保证上电后CPU正常启动,Flash 芯片用于存储三层交换机的所需要的所有软件和相关配置,SDRAM在系统启动之后载入FLASH中的程序,保证系统正常运行。处理器模块一方面提供一个快速以太网接口和一个异步口,用于对交换机进行配置和调试;另一方面通过PCI接口和交换模块相连,通过PCI接口对交换模块进行控制,并进行数据传输[2] 。

图2 处理器模块的硬件组成
(2)交换模块
如图3所示,交换模块采用了BROADCOM公司的BCM5645作为ASIC芯片,通过PCI接口与处理器模块进行通信完成数据传输,通过5645提供的内存接口,可以给交换模块提供一个64M的外部SDRAM,从而提高交换机的吞吐量和交换速度。5645通过MII接口和GMII接口分别连接24个百兆以太网和2个千兆以太网[3]。

图3 交换模块的硬件组成
3、软件结构
VLSW4150三层交换机的软件系统采用了模块化、分布式的设计方法,基于实时多任务操作系统。软件系统的结构呈层次结构,一层建立在另一层的基础上,每一层都使用近邻它的下一层所提供的服务,并且为它上面一层提供更高一级的服务,其优点是:可以向上层软件屏蔽底层操作,提高上层软件的可移植性,提高软件的可维护性。
(1)驱动层
驱动程序将上层软件和硬件系统进行了连接,把上层软件的路由更新、管理及配置命令转化为硬件系统所能识别的格式,从而达到更新其内部数据结构如路由表,地址表等,控制及管理硬件交换系统的目的;同时设备驱动程序把底层硬件收到的路由更新报文、控制管理帧及收到的各种信息传递给上层软件处理;
(2)协议栈
实现了TCP/IP、802.1D和802.1Q等协议,为上层的应用程序提供良好的接口;
(3)应用层
主要包括路由模块和网管模块,路由模块实现了RIP和OSPF等协议,即实现第三层路由的主要功能;网管模块实现了SNMP和RMON等网管模块,使三层交换机具有部分网管功能,保证三层交换机更好地正常运转。

图4 软件结构
三、第三层交换机的应用
第三层交换机的主要用途是代替传统路由器作为网络的核心,因此,凡是没有广域连接需求,同时又需要路由器的地方,都可以用第三层交换机来代替。在企业网和校园网中,一般会将第三层交换机用在网络的核心层,用第三层交换机上的千兆端口或百兆端口连接不同的子网或VLAN。第三层交换机解决了局域网VLAN必须依赖路由器进行管理的局面,解决了传统路由器速度低、复杂所造成的网络瓶颈问题。利用三层交换机在局域网中划分VLAN,可以满足用户端多种灵活的逻辑组合,防止了广播风暴的产生,对不同 VLAN 之间可以根据需要设定不同的访问权限,以此增加网络的整体安全性,极大地提高网络管理员的工作效率,而且第三层交换机可以合理配置信息资源,降低网络配置成本,使得交换机之间连接变得灵活。
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:
我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails
我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow
我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的