• 集线器 交换机 和 路由器 的区别


    转载:http://www.360doc.com/content/13/1224/09/7467291_339674605.shtml

    举例说明一下集线器 交换机 和 路由器 的区别

    最近好像在龙卷风上看到有人问集线器交换机和路由器的区别。我想举个例子简单地解释一下这三种设备的区别。

    偶的知识有限,如果有什么不正确的地方,还是老鸟们多我指正,偶也好及时修正,以免被人骂“误人子弟”。:P

    首先我们假设一个网络拓朴环境。假设有8台机子,
    前三台用集线器连接,IP分别是

    192.168.0.1                192.168.0.2                    192.168.0.3                           192.168.0.4
    MAC分别是:

    00:00:00:00:00:01    00:00:00:00:00:02       00:00:00:00:00:03               00:00:00:00:00:04
    后三台用交换机连接:IP分别是

    192.168.1.1                         192.168.1.2                         192.168.1.3                          192.168.1.4
    MAC分别是:

    00:00:00:00:01:01            00:00:00:00:01:02           00:00:00:00:01:03                 00:00:00:00:01:04

    这两个子网之间用一个路由器连接,路由器的两个IP分别是192.168.0.5和192.168.1.5,分别通过路由器的ETH0接口和ETH1接口接入。
    为了方便理解,我们把它个环境想像成一楼房,一楼住着0001 0002 0003 0004四个人,有一个楼管(集线器)。二楼是通讯中心(路由器),三楼住着0101 0102 0103 0104四个人,有一个楼管(交换机)。一楼和二楼之间有一个楼梯(ETH0),二楼和三楼之间有一个楼梯(ETH1)。

    现在,一楼的0001要说一句话给0003听,于是他把这句话告诉楼管(集线器),可是楼管也不知道这些房里哪个是0003,于是打开广播,把这句话喊出来。所有一楼的人都听到这句话了,可是只有0003做出响应,回复楼管说“我就是0003,什么事”,这时楼管也不知道0001住在哪了,于是又打开广播,喊“0001注意了,0003问你什么事。”此时同样是所有人都听到了,但是只有0001做出响应。

    这就像集线器。当00:01发送一个封包给00:03时,实际上拷贝成多的数据封包通过广播方式发送到了集线器的所有端口。所有的网卡都接到了这个封包,可是只有对应MAC地址的网卡做出响应。但是这样一来,效率就低了。假设同时有有两个封包传来:0001到0003,0002到0004。此时只能先把0001的广播出去,再把0002的广播出去。占用了两个时间单位。然后,三楼的0102要说一句话给0104听,于里他也把这句话告诉楼管(交换机),这个楼管就比一楼那个要强多了。他那里有一张列表(MAC地址与端口对应列表)他一查,发现0104住在4号房(接在第四个端口),于是把这句话转到4个房,其它房就不用管了。4号房听到了再回复0102,这时楼管只把话转到2号房。

    这就像交换机,当01:02发送一个封包给01:04时,交换机里面有一个地址缓冲,它只把封包发送到对应的端口。这样效率高多了。假设同时有有两个封包传来:0101到0103,0102到0104。

    此时只要把0101的转到0103,同时把0102的转到0104。就只占用一个时间单位。
    现在发生一种情况,一楼的0003要找三楼的0104有事,0003知道0104和他不在一层楼,于是要求通讯中心转达。一楼的楼管当然不管三七二十一就把消息广播出去,二楼的通讯中心当然也听到了,一查表(路由表):什么,你要找三楼的人有事啊,那通过这个楼梯(ETH1)把消息送上去吧,于是三楼的楼管得到了消息,一查表,送到了0104那里。

    这就是路由器的功能,通过路由表连接两个网段。我们刚才举的例子,只要路由表里有两条就可以了:

               网络目标            子网掩码                网关                      接口
           192.168.0.0     255.255.255.0       192.168.0.5             ETH0
           192.168.1.0     255.255.255.0       192.168.1.5             ETH1

    大家注意了,刚才说到集线器和交换机的时候,都是基于MAC地址的。所以集线器和交换机

    是工作在第一层(物理层)的。可是大家可以看到,路由器是基于IP地址工作的。所以路由器

    是基于TCP/IP协议工作在第三层(网络层)的。


    当一个封包过来的时候,路由器计算其走向。例如一个包过来,要去向192.168.1.4。这时路

    由器把192.168.1.4和255.255.255.0进行AND运算,得到192.168.1.0于是通过ETH1发送出去。
    其实每一台电脑都是一个小的路由器,在Windows下,大家可以用route print命令来查看你的

    路由表:我的路由表如下:

    ===========================================================================
    Interface List
    0x1 ........................... MS TCP Loopback interface
    0x10003 ...00 c0 26 XX XX XX ...... Realtek RTL8139/810x Family Fast Ethernet NIC
    ===========================================================================
    ===========================================================================
    Active Routes:
    Network Destination         Netmask                Gateway                  Interface               Metric
               0.0.0.0             0.0.0.0              192.168.1.101         192.168.1.20             20
             127.0.0.0           255.0.0.0              127.0.0.1                127.0.0.1                 1
           192.168.1.0        255.255.255.0          192.168.1.20           192.168.1.20             20
          192.168.1.20     255.255.255.255       127.0.0.1                127.0.0.1                 20
         192.168.1.255      255.255.255.255       192.168.1.20          192.168.1.20             20
             224.0.0.0           240.0.0.0                  192.168.1.20           192.168.1.20             20
       255.255.255.255    255.255.255.255       192.168.1.20          192.168.1.20              1
    Default Gateway:      192.168.1.101
    ===========================================================================
    Persistent Routes:
       None

    可以看到第一条的掩码是0.0.0.0,也就是说,如果我要访问的不是我们内网

    (192.168.1.0/255.255.255.0)的信息,则通过我的网卡接口,从我们的网关

    (192.168.1.101)将数据包发出。下一个接收数据包的路由器叫下一跳。比如我要访问

    202.103.96.XXX,那么我的数据包就先发到下一跳192.168.1.101,这个路由器再通过查路由

    表将数据发出,至到发到目的地为止。大家在Ping一台机子的时候可能看到有个TTL(Time to 

    Live)值,这个值是用来计算通过的路由器的数量的。当路由器把数据转发出去时,把TTL值

    减1。当TTL=0时,路由器就把这个包丢弃了。

    后面的Metric意为耗费,理解为到达下一跳所需要的花费就可以了。当一个数据包同时有几种

    方式发出时,走花费最小的那条路。

    我们的个人电脑只有一个很小的路由表。电信局的核心路由器可能有很多接口和成千上万条信

    息组成的路由表。那样的话计算量就不可小视了。

     

    ---------------------------

        说到交换机和路由器有的则根本搞不清楚它们各自到底有什么用,而有的则是弄不清它们之间的到底有什么区别,特别是在各媒体大肆宣扬三层交换机的“路由”功能的背景下。其实说到这里,我自己也不得不承认,现在交换机与路由器区别是越来越模糊了,它们之间的功能也开始相互渗透。

      不仅三层交换机具有了部分原来独属于路由器的“路由”功能,而且现在宽带和高端企业级路由器中也开始兼备交换机的“交换”功能了。可谓是相互渗透,于是有人就预言,将来交换机和路由器很可能会合二为一,笔者也坚信这一点。

      因为现在从技术上看,实现这一目标根本没有太大难度,同时对用户来说也是迫切需求的。一方面可以简化网络结构,另一方面用户不必购买两种价格那么昂贵的设备,何乐而不为呢?但就目前来说,它们之间还是存在着较大区别的,当然这不仅体现在技术理论上,更主要体现在应用上。本文就要全面向大家解读交换机与路由器在应用的主要区别。

      一、 交换机的星形集中连接

      我们知道,交换机的最基本功能和应用就是集中连接网络设备,所有的网络设备(如服务器、工作站、PC机、笔记本电脑、路由器、防火墙、网络打印机等),只要交换机的端口支持相应设备的端口类型都可以直接连接在交换机的端口,共同构成星形网络。基本网络结构如图1所示。在星形连接中,交换机的各端口连接设备都彼此平等,可以相互访问(除非做了限制),而不是像许多刚涉入网管行列的朋友那样,认为连接在交换机的服务器是最高级的。

      二、交换机的级联与堆栈


    拓扑图

      上图所示的仅是一个最基本的星形以太网架构,实际的星形企业网络比这可能要复杂许多。这复杂性不仅表现在网络设备如何高档,配置如何复杂,更重要的是表现在网络交换层次比较复杂。企业网络中的路由器和防火墙通常只需配备一个,但交换机通常不会只是一个(除了只有20个用户左右的小型网络)。如果用户数比较多,如上百个,甚至上千个,就必须依靠交换机的级联或者堆栈扩展连接了。但级联技术和堆栈技术也有所不同,它们的应用范围也不同。
      交换机级联就是交换机与交换机之间通过交换端口进行扩展,这样一方面解决了单一交换机端口数不足的问题,另一方面也解决离机房较远距离的客户端和网络设备的连接。因为单段交换双绞以太网电缆可达到了100米,每级联一个交换机就可扩展100米的距离。但这也不是说可以任意级联,因为线路过长,一方面信号在线路上的衰减也较多,另一方面,毕竟下级交换机还是共享上级交换机的一个端口可用带宽,层次越多,最终的客户端可用带宽也就越低(尽管你可能用的是百兆交换机),这样对网络的连接性能影响非常大,所以从实角度来看,建议最多部署三级交换机,那就是核心交换机-二级交换机-三级交换机。 

      这里的三级并不是说只能允许最多三台交换机,而是从层次上讲只能三个层次。连接在同一交换机上不同端口的交换机都属于同一层次,所以每个层次又能允许几个,甚至几十个交换机级联。层级联所用端口可以是专门的UpLink端口,也可以是普通的交换端口。有些交换机配有专门的级联(UpLink)端口,但有些却没有。如果有专门的级联端口,则最好利用,因为它的带宽通常比普通交换端口宽,可进一步确保下级交换机的带宽。如果没有则只能通过普通交换端口级联了。

      通过级联端口进行级联的方法如下图所示;


      通过级联端口进行级联

      而通过普通端口所进行的级联方法如下图所示。


      通过普通端口所进行的级联

      注意它们之间不仅所用端口不同,所采用的电缆也不一样:采用级联端口进行的级联,需采用普通直通线;而采用普通端口进行的级联电缆为交叉电缆,就像两台主机对连一样。

      至于交换机的堆栈,就不是所有交换机都可以的,而是要具有堆栈模块的。交换机的堆栈不是通过交换端口进行的,而是通过专门的背板堆栈模块,采用专门的堆栈电缆进行的连接。而且要注意的是,因为交换机堆栈通常是放在同一位置,连接电缆也较短,所以交换机的堆栈的目的主要是用于扩充交换端口,而不是用于扩展距离的。

      同时,交换机堆栈还可提高各实际使用的交换机端口可用带宽,因为它是把堆栈在一起的交换机的背板带宽聚集在一起,这样交换机堆栈的总背板带就是几台堆栈交换机的背板带宽之和。背板带宽提高后,如果交换机的每个端口都用上了,这一优势就不是很明显(也是有效果的,因为不可能每时每刻每个端口都同时通信),但如果有交换机端口空余,效果会更明显,因为它可充分利用交换机的所有带宽。

      堆栈连接如下图所示。


      堆栈连接

      交换机的堆栈连接端口通常是又排D形插孔的,一个交换机有两个这样的端口,分别标有“UP”和“DOWN”字样(如上图所示),表示对应用于向上和向上堆栈连接的,不能接错。

      三、三层交换机的路由连接 

      前面我们介绍到,三层交换机也具有一定的“路由”功能,可以实现不同子网的连接。但要注意的是,它的路由功能相对路由器来说还是要弱许多的。三层交换机的路由功能只能用于同一类型的网络互联,而且通常只是局域网子网之间的互联,并不能把局域网与广域网,或者互联网连接起来,因为三层交换机所支持的路由协议非常有限,毕竟这不是它的主要功能。

      我们知道,在局域网上,二层的交换机通过源MAC 地址来标识数据包的发送者,根据目的MAC 地址来转发数据包。对于一个目的地址不在本局域网上的数据包,二层交换机不可能直接把它送到目的地,需要通过路由设备(比如传统的路由器)来转发,这时就要把交换机连接到路由设备上。如果把交换机的缺省网关设置为路由设备的IP 地址,交换机会把需要经过路由转发的包送到路由设备上。

      路由设备检查数据包的目的地址和自己的路由表,如果在路由表中找到转发路径,路由设备把该数据包转发到其它的网段上,否则,丢弃该数据包。专用路由器昂贵、复杂、速度慢、易成为网络瓶颈,因为它要分析所有的广播包并转发其中的一部分,还要和其它的路由器交换路由信息,而且这些处理过程都是由CPU 来处理的(不是专用的ASIC )。

      第三层交换机既能像二层交换机那样通过MAC 地址来标识转发数据包,也能像传统路由器那样在两个网段之间进行路由转发。传统路由器采用软件来维护路由表,而三层交换机是通过专用的ASIC芯片来处理路由转发的。与传统路由器相比,第三层交换机的路由速度一般要快十倍或数十倍。

      三层交换机的路由连接如下图所示。


      三层交换机的路由连接


      路由器的局域网连接

      大家都知道,路由器可以连接企业局域网和广域网(如因特网),但却忽略了一路由器的另一个应用,那就是它的局域网连接功能。路由器的广域网连接可参见拓扑图图和三层交换机的路由连接图。

      路由器的作用因不同的路由器类型而定,我们常说的路由器通常是指边界路由器,就是位于不同类型网络的边界,如拓扑图图和三层交换机的路由连接图所示。还有一种路由器,它设计的目的就不是用于不同类型网络的连接,而是用于同为局域网的不同局域网或不同子网之间的连接,这就是“中间节点路由器”。它的网络结构如下图所示。它与三层交换机的路由连接图相比,只是用中间节点路由器接替了原来的三层交换机。


      中间节点路由器连接

      “边界路由器”处于网络边界的边缘或末端,用于不同网络路由器的连接,这也是目前大多数路由器的类型。如前面介绍的互联网接入路由器和后面要介绍的VPN路由器都属于边界路由器。这类路由器所支持的网络协议和路由协议比较广,背板带宽非常高,具有较高的吞吐能力,以满足各类不同类型网络(包括局域网和广域网)的互联。

      而“中间节点路由器”则处于局域网的内部,通常用于连接不同局域网,起到一个数据转发的桥梁作用。中间节点路由器更注重MAC地址的记忆能,要求较大的缓存。因为所连接的网络基本上是局域网,所以所支持的网络协议比较单一,背板带宽也较小,这些都是为了获得最高的性价比,适应一般企业的随能力。

      它与三层交换机的路由功能相比,在路由功能上肯定比三层交换机的强,但在局域网这种数据交换频繁的网络中,采用中间节点路由器来进行局域网的连接,网络性能可能会受到一定影响。总的来说,如果所连接的局域网或子网较多、网络互访不是很频繁、路由较复杂的环境中,最好采用中间节点路由器连接方案。但在少数子网连接、网络间互访频繁的环境中,最好还是采用三层交换机连接方式。而且还可节省设备投资,因为三层交换机不仅具有满足应用需求的路由功能,还可当作交换机用,连接许多网络设备。

      交换机的VPN应用

      现在许多交换机设备厂商都开始提供支持VPN通信的交换机,在这其中又以3COM公司的隧道交换机VPN方案最为典型,功能也最为强大。它的网络结构如下图所示。

  • 相关阅读:
    [MongoDB] Remove, update, create document
    [AngularJS + RxJS] Search with RxJS
    [Redux] Passing the Store Down with <Provider> from React Redux
    [Redux] Passing the Store Down Implicitly via Context
    [Redux] Passing the Store Down Explicitly via Props
    [Cycle.js] Generalizing run() function for more types of sources
    [Redux] Extracting Container Components -- Complete
    [Redux] Redux: Extracting Container Components -- AddTodo
    视觉暂留:视觉暂留
    人物-发明家-贝尔:亚历山大·贝尔
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/3489994.html
Copyright © 2020-2023  润新知