待解决问题
关于三层交换机原理
离问题结束还有0天0小时 |
提问者:冲击2012
|
提问时间:2012-12-12 10:01
我网上搜了些资料,关于三层交换机原理大致有2中说法,各位帮忙看看哪一种正确:
(1)第三层交换的原理是,假设两个使用IP的主机A、B通过第三层交换机进行通信。发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。若目的站B与发送站A在同一子网内,则进行二层的转发。若两个站点不在同一子网内,如发送站A要与目的站B通信,发送站A要向“缺省网关”发出ARP请求(地址解析)封包,而“缺省网关”的IP地址其实是三层交换机的三层交换模块。当发送站A对“缺省网关”的IP地址广播出一个ARP请求时,如果三层交换模块在以前的通信过程中已经知道B站的MAC地址,则向发送站A回复B的MAC地址。否则三层交换模块根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换模块回复其MAC地址,三层交换模块保存此地址并回复给发送站A,同时将B站的MAC地址发送到二层交换引擎的MAC地址表中。从这以后,A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。由于仅仅在路由过程中才需要三层处理,绝大部分数据都通过二层交换转发,因此第三层交换机的速度很快,接近第二层交换机的速度,同时比相同路由器的价格低很多。
(2)假设A和B处于不同网段,且都和三层SWITCH直连。A先用ARP请求SWITCH的MAC(网关MAC), 然后发送报文到SWITCH(假设是PING报文), 如果是第一次通信,SWITCH也不知道B的MAC,但SWITCH发现B是直连网段,此时SWITCH发送ARP请求,B收到后回应ARP,SWITCH学习到后,再转发PING数据包。
第2种方式是我一直认为的。 第一种我就不太理解,SWITCH是做了一个ARP代理吗?真正的三层交换机是这样工作的?A在发送ARP请求时,不应该是请求下一跳的MAC吗,为什么会请求B的MAC? 所以我不太认同第一段,但是这段描述网上到处都是,请大牛解释下,多谢。 没看到有数据通信的版面,看到设备商比较火,就发这里了先。
我来答复一下,一是错误的,二的描述基本正确,只是没有说清楚硬件转发(ASIC),CPU软转。你在11楼的说法也是糊涂的,A发给Switch的时候报文的DMAC已经是Switch的三层接口MAC了(即网关MAC),你让Switch广播给B,你希望报文用什么DMAC? 继续使用Switch的三层接口MAC?还是把报文改成广播?另外关于Ping包缓存,那也只是首包缓存并软转,后续的都是硬件转发了,这也是所谓的一次路由、多次转发,对CPU冲击不大。你根本的问题在于网络层次不清楚,当然上面也有些TX也是半吊子。
回答时间:2012-12-13 00:53
热点问题