二,三,四层交换机的区别

二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地
址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地
址表中。具体的工作流程如下:
(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道
源MAC地址的机器是连在哪个端口上的;
(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应
时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所
有端口进行广播了。
不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和
维护它自己的地址表。
从二层交换机的工作原理可以推知以下三点:
(1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,
如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换
机就可以实现线速交换;
(2) 学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:
一为BEFFER RAM,一为MAC表项数值),地址表大小影响交换机的接入容量;
(3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Applicati
on 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/I
P协议栈实现中,这些端口号是相同的。除了“熟知”端口外,标准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 端口相
关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服
务器之间重新影射和转发,直到交换机发现会话为止。
  在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规
则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。
如何选用合适的第四层交换
  a,速度
  为了在企业网中行之有效,第四层交换必须提供与第三层线速路由器可比拟的性能。也
就是说,第四层交换必须在所有端口以全介质速度操作,即使在多个千兆以太网连接上亦
如此。千兆以太网速度等于以每秒1488000 个数据包的最大速度路由(假定最坏的情形,即
所有包为以及网定义的最小尺寸,长64字节)。
  b,服务器容量平衡算法
  
  依据所希望的容量平衡间隔尺寸,第四层交换机将应用分配给服务器的算法有很多种,
有简单的检测环路最近的连接、检测环路时延或检测服务器本身的闭环反馈。在所有的预
测中,闭环反馈提供反映服务器现有业务量的最精确的检测。
  c,表容量
  应注意的是,进行第四层交换的交换机需要有区分和存贮大量发送表项的能力。交换机
在一个企业网的核心时尤其如此。许多第二/ 三层交换机倾向发送表的大小与网络设备的
数量成正比。对第四层交换机,这个数量必须乘以网络中使用的不同应用协议和会话的数
量。因而发送表的大小随端点设备和应用类型数量的增长而迅速增长。第四层交换机设计
者在设计其产品时需要考虑表的这种增长。大的表容量对制造支持线速发送第四层流量的
高性能交换机至关重要.
  d,冗余 文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 浅谈JavaScript中等号、双等号、 三等号的区别

    一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false. === 判断规则 如果类型不同,就[不相等]  如果两个都是数值,并且是同一个值,那么[相等]:(!例外)的是,如果其中至少一个是NaN,那么[不相等].(判断一个值是否是NaN,只能用isNaN()来判断)  如果两个都是字符串,每个位置的字符都一样,那么[相等]:否则[不相等].  如果两个值都是true,或者都是false,那么[相等].  如果两个值都引用同一个对象或函数,那么[相等]:否则[

  • 二,三,四层交换机的区别

    二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中.具体的工作流程如下:(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的:(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口:(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上:(4) 如表中找不到相应的端口则把数据包广

  • 二层交换机,三层交换机,四层交换机的区别

    (一)二层交换 二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中.具体的工作流程如下: (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的:(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口:(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上: (4) 如表中找不到相

  • 二层、三层、四层交换机的区别详解

    二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中.具体的工作流程如下: (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的; (2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口; (3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上; (4) 如表中找不到相应的端口则把

  • C语言与java语言中关于二维数组的区别

    目录 C语言数中二维数组的定义格式 Java语言中二维数组的定义与初始化 静态初始化 动态初始化 下面给出两者的对比截图 C语言中的数组元素分布 Java中的数组元素分布 数组是编程语言中常用的数据结构,然而在不同的环境下,其定义及初始化的方式也不尽相同.下面来讲述一下C和Java中对于二维数组定义的区别以及其背后的原理. 在C语言中,二维数组的初始化可以省略行数,但不能省略列数:而在java中却是正好相反的,即列数可以省略,而行数是不能省略的.为什么会是这样呢?首先我们来回顾一下C和Java中

  • php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)

    一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用透明代理服务器的情况:Transparent Proxies REMOTE_ADDR = 最后一个代理服务器 IP HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163,

  • JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别

    一.JavaScript"=="的作用 1.当==两边的内容是字符串时,则比较字符串的内容是否相等. 2.当==两边的内容是数字时,则比较数字的大小是否相等. 3.当==两边的内容是对象或者是对象的函数属性时,则比较内存地址是否相等. 二.==和===的区别 ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase. 举例说明: <script type="text/javascript">

  • C#中析构函数、Dispose、Close方法的区别

    一.Close与Dispose这两种方法的区别 调用完了对象的Close方法后,此对象有可能被重新进行使用:而Dispose方法来说,此对象所占有的资源需要被标记为无用了,也就是此对象要被销毁,不能再被使用.例如常见.Net类库中的SqlConnection这个类,当调用完Close方法后,可以通过Open重新打开一个数据库连接,当彻底不用这个对象了就可以调用Dispose方法来标记此对象无用,等待GC回收. 二.三者的区别如图 析构函数 Dispose方法 Close方法 意义 销毁对象 销毁

  • Mabitis中的#与$符号区别及用法介绍

    一.介绍 mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = "Jack"; 上述 sql 中,我们希望 name 后的参数 "Jack" 是动态可变的,即不同的时刻根据不同的姓名来查询用户.在 Mapper.xml文件中使用如下的 sql 可以实现动态传递参数 name: select * from u

  • Mybatis下动态sql中##和$$的区别讲解

    一.介绍 mybatis 中使用 Mapper.xml里面的配置进行 sql 查询,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = "Jack"; 上述 sql 中,我们希望 name 后的参数 "Jack" 是动态可变的,即不同的时刻根据不同的姓名来查询用户.在 Mapper.xml文件中使用如下的 sql 可以实现动态传递参数 name: select * from u

随机推荐