网络通信 频道

另眼讨论:讨论三层交换和路由的区别

  编者按:三层交换与路由的区别,这是一个非常老的话题了,老得不需要讨论。不过,ssffzz1这位网友却有一番新论,请看:

  【IT168 报道】以下是两段摘选自在网络上比较流行的解释路由器和三层交换机区别的文章,我的问题主要是基于这两段,来进一步分析一下三层交换与路由的区别:

  传统的交换与路由区别

  三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。

  假设两个使用IP协议的机器通过第三层交换机进行通信的过程,。。。若两个机器不在同一子网内,如发送机器A要与目的机器C通信,发送机器A要向“缺省网关”发出ARP包,而“缺省网关”的IP地址已经在系统软件中设置。这个IP地址实际上对应第三层交换机的第三层交换模块。所以当发送机器A对“缺省网关”的IP地址广播出一个ARP请求时,若第三层交换模块在以往的通信过程中已得到目的机器C的MAC地址,则向发送机器A回复C的MAC地址;否则第三层交换模块根据路由信息向目的机器广播一个ARP请求,目的机器C得到此ARP请示后向第三层交换模块回复其MAC地址,第三层交换模块保存此地址并回复给发送机器A。以后,当再进行A与C之间数据包转发进,将用最终的目的机器的MAC地址封装,数据转发过程全部交给第二层交换处理,信息得以高速交换。既所谓的一次选路,多次交换。

  问题一:第二段说“则向发送机器A回复C的MAC地址”,我用ethereal抓包看过,L3交换机回的是自己的IP(默认网关)对应的MAC,而且从道理上讲,L3交换机也不可能回C的MAC给A啊,因为1,A和C不在一个网段,A保存C的MAC也没有意义;2,A发出去的ARP请求中没有C的IP, L3交换机怎么可能知道A想和C通信呢?
  这么说来这段话说的不对?可是为啥流行着么广泛呢?是我的理解有误?抓包也有误?

  问题二:如果把默认网关看成一个黑盒子,只从A和C来抓包,能否判断出来默认网关是router还是L3交换机么?

  问题三:文档1说“三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表”,请问这个表是什么表?难道是目的IP和下一跳 IP对应的MAC的对应关系?没见过这样的表啊,路由器上有arp表和路由表,交换机上有MAC表,L3交换机上有mac表,arp表,路由表。可是L3 交换机上没有见过文档1说的这种表啊?
  问题四:“一次选路,多次交换”怎么理解?文档1说“当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由”,我的理解是L3收到同样的数据流后,查看目的IP,然后查到下一跳IP对应的MAC以及接口,然后转出去。

  可是这样的话,如果在L3交换机上我修改了下一跳,这个表怎么知道刷新呢?
  #################################
 

  另眼看的观点区别

  我的观点:

  问题1:上面这段话是有错误的,交换机永远不可能用主机C的MAC来回应主机A,而是用自己的和A机所在网段的虚接口的MAC来回应。 也就是说三层交换并没有改变数据的发送以及接收流程。

  问题2:如果把默认网关看成黑盒子,那么的确无法判断是三层交换还是三层路由。

  问题3/4:你说的这个表联系上下文应该指的是一个供硬件转发使用的转发表,三层交换的路由过程基本上是靠硬件完成的,当第一个包被转发后,系统会形成一个单独的转发表,后续的转发由特殊的ASIC硬件查询这个表来完成,不在走软件查询的路由过程,从而提高转发速度,但是这并没有从本质上改变数据转发的流程,这个就是”一次路由,多次交换“。


  我认为的三层交换和三层路由的区别:

  1、三层交换机能够提供比路由器大的多的转发速率,而路由器的转发速率相对较低。
  2、三层交换机通常仅支持IP协议的告诉转发,路由器通常支持多种协议。
  3、三层交换机的接口比较单一,且数目众多。路由器有丰富的接口类型,但是一般单一类型的接口数目较少。
  4、三层交换机能够连接的网络类型较单一。路由器可以实现多种异种网络的互联。

  另外,我认为交换机和路由器在转发上没有本质的区别,无非一个偏硬件,一个偏软件。况且现在的高速路由器也借鉴了交换机的技术,也实现了部分的硬件转发,从而也就有了“快速转发,”“极速转发”等等术语。
 

0
相关文章