传统的交换与路由区别
三层交换机在对第一个数据流进行路由后,它将会产生一个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、三层交换机能够连接的网络类型较单一。路由器可以实现多种异种网络的互联。
另外,我认为交换机和路由器在转发上没有本质的区别,无非一个偏硬件,一个偏软件。况且现在的高速路由器也借鉴了交换机的技术,也实现了部分的硬件转发,从而也就有了“快速转发,”“极速转发”等等术语。
【相关文章】