二层、三层、四层交换机区别
上一篇 / 下一篇 2007-09-15 18:30:39 / 个人分类:网络技术
_E B;w&y"| ?8a8n0 (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;DOIT博客(Y R k,R |d
5P G A.N%w]0 (2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;DOIT博客'L/~H.o!U3Ji
V(e/{f8}3f0 (3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;DOIT博客4z!{PR3H)qkNH0o
I:S0W@*C&|0 (4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
HpI'WG(x0;PDablH7V c;|{!p!b0 不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。DOIT博客L?5}Q5}U.Z Kr
DOIT博客il!N;VQ6N*Mhr:K8ZQ:@从二层交换机的工作原理可以推知以下三点:
6wKT+p%QF2~ d@&u0M/[G%} P"nc6e7F]P0 (1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换;
@ ra&_`%I0DOIT博客Q2Hl6Z*BR!~3]#P(2) 学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BEFFER RAM,一为MAC表瘀汁杩?挢e项数值),地址表大小影响交换机的接入容量;DOIT博客GdD{ N.L.C
s:mTRGZ E.t0 (3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家采用ASIC不同,直接影响产品性能。
\2UcWg%S M0lAw d y]c[-Tp0 以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较。DOIT博客:?~?eQcA
DOIT博客Loa"p{pv3ky(二)路由技术DOIT博客T.jX6hb|LU/giC
4o+bA@/@1YkDZ?0 路由器工作在OSI模型的第三层---网络层操作,其工作模式与二层交换相似,但路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是如果要去某一个地方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源地址。DOIT博客 sr)e4M:a5?:yh
DOIT博客Dw/L1Zn[Z,h
_2gaPV:cU0 路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达目的路由器。
而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。DOIT博客v.v7F'`*wJ.t
V!KFTF6{:j0 由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设计。DOIT博客 _S{3f9sv9tQ
DOIT博客Df,OJ1p?Iy'g~(三)三层交换技术DOIT博客a2[ h1I~4Fi#{;r
x#QZ6DR$UN%P5i0 近年来的对三层技术的宣传,耳朵都能起茧子,到处都在喊三层技术,有人说这是个非常新的技术,也有人说,三层交换嘛,不就是路由器和二层交换机的堆叠,也没有什么新的玩意,事实果真如此吗?下面先来通过一个简单的网络来看看三层交换机的工作过程。DOIT博客$H*x&ZS(zZ*K5G ^
DOIT博客M o| Q3G2W
m
r9]2?q;`/Z0 组网比较简单DOIT博客4Q(KulMo3^
使用IP的设备A------------------------三层交换机------------------------使用IP的设备B
$g D2oT0X0r1n3h0'k9Wq"c*nb0 比如A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。DOIT博客c(kZ7G+G X#f
-rp.C|["L0 如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。DOIT博客k j:Oq(\ qS
)c[0FK^#[a#XX0 如果目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的路由,将构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后的A到B的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。