关于三层交换机原理
(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? 所以我不太认同第一段,但是这段描述网上到处都是,请大牛解释下,多谢。 没看到有数据通信的版面,看到设备商比较火,就发这里了先。
一次路由,多次交换!
[i=s] 本帖最后由 冲击2012 于 2012-12-12 10:11 编辑 [/i]
这句话我也知道,能不能详细解释下,网上基本上都是第一段描述,但是我觉得说的不对。
“一次路由,多次交换” 应该是说在CPU层次上进行第一次路由,然后把ARP,PORT信息都写到ASIC上,后续流量直接在ASIC完成,所以集成了路由器和交换机的特性。
请针对我的那两种模型提出看法,多谢
第一段的描述有问题。对于不同子网报文交换,首先A发ARP查询的是网关的MAC地址。到B的报文转发由网关来完成。
是的,我也是这么想的, 但是那段话网上流传的到处都是,不知道为什么。 是不是三层交换机有什么特殊处理? 有没有搞数通的同学,出来澄清下,三层交换原理应该比较基本。
三层交换机,实际上就是传统的二层交换机和一个弱化版路由器的合成体。但交换功能和路由功能还是各司其职,不要由于有三层交换机这么个叫法就混淆了两者的功能。
交换机的处理逻辑比较简单(按端口转发数据),一般都是直接烧制在集成电路中的,而路由器则复杂得多,路由器的实现需要通过大型软件系统来实现。
但在一些网络的拓扑比较简单的情况下(比如企业内部网络或小型办公网络),在L3只需要一些简单的路由功能,能够把内部的数据发送到外部网络去就够了,所以才有在二层交换机上搭载一些简单路由的功能,形成所谓的三层交换机这么一个产品。
普通家用的路由器其实就是典型的“三层交换机”
多谢各位回复。 能不能详细的说明一下转发过程? 比如对于我举例的那两种处理情况,能不能帮忙批判下?
交换机就交换机,路由器就路由器,三层交换……给驴装个马头
:L 大哥,直接回复我的问题,尖锐点,不要跑题。
第一种说法是某种特殊情况下的配置吧!不在一个网段还只走二层转发,一般是不允许吧。
对于第二种情况,还有一个处理方式,当SWITCH收到A的PING包后,不给B发送ARP请求,而是直接把包广播出去(模拟二层交换机),这样做的好处是不需要缓存PING包,坏处就是增加的广播流量。 既然二层交换机可以这样做,我觉得三层也可以这样实现。 请指出错误。
hello, is anyone here?
" ... 从这以后,A向B发送的数据包便全部交给二层交换处理,信息得以高速交换。 ..."
----- 对这条不太认同。 若A B不同网段,A向B发包时, DMAC填的是 SWITCH 的MAC,而不是 B的MAC, 所以不会 二层交换处理。 不是查MAC表,而是 类似MAC表的 3层转发表。
如果第一种情况不是什么高深的处理,就是很低级的错误,为什么在网络上