视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
二三层转发理解分析
2025-10-02 04:42:20 责编:小OO
文档
二三层转发原理理解与分析

二层转发原理

在OSI模型中,二层即为数据链路层,该层主要流通的数据是以数据帧的形式来构成,可以说是当数据进入二层后,封装或者解封装为数据帧结构.根据下图和我的理解简单描述一下数据在二层是如何完成转发的.

图1

在二层数据的转发主要依据链路层信息MAC地址来完成的.MAC地址也就是我们所说的硬件地址,网络中的每个通讯设备都有自己唯一的MAC地址,该地址是独一无二的.设备根据MAC地址判断把数据包转发到何处,以及该数据包是从何处来.二层交换设备一般通过内部的ASIC硬件芯片完成转发.由于是硬件转发,转发性能非常高的,这也是ASIC交换机的一大特点和优势.二层交换机不同的端口发送和接收数据相互,各端口属于不同的冲突域,以此有效隔离了网络中的物理冲突,使得通过它相连的主机之间不必担心流量大小对于数据发生冲突的影响.

二层交换不同与三层交换,它主要完成同一网段内的数据交互,二层交换机通过解析和学习以太网帧的源MAC地址来维护MAC地址与端口的对应关系,它会把这些信息写入到MAC表中,其次是根据目的MAC来查找MAC表决定向哪个端口转发数据.以图1为例,假设PC1要把数据发送给PC3,它会有一个数据转发流程

1)当交换机端口收到PC1发来的一个数据包时,它先读取包头中的源MAC地址,也就是PC1的MAC地址,这样它就知道源MAC地址的机器是PC1并且连在port1端口上的.交换机会把源MAC地址与端口对应关系写入到MAC表中,作为以后的二次转发依据,如果MAC表项中有相同的记录,它会刷新该记录的老化时间,在交换机中采取了一定的老化时间,在老化时间内未得到刷新会自动删除MAC表项的记录.

2)读取包头中的目的MAC地址,即PC3的MAC地址们,并在地址表中查找相应的端口,经过查找会查找到两个端口分别是port2和port3,经过对比,port2对应的MAC地址不是报文中的目的MAC地址,port3对应的MAC地址是目的MAC地址.

3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上,直接把数据包复制到端口port3

4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。如果表项所示端口与收到的以太网帧的端口相同,则丢弃该帧.

不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。

从二层交换机的工作原理可以得出以下结论:

由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换.

学习端口连接的机器的MAC地址,写入MAC地址表,MAC地址表的大小影响交换机的接入容量.

三层转发原理

图2

路由和三层交换最大的区别是路由器依靠CPU进行三层转发,三层交换机主要依靠ASIC芯片进行三层转发.目前的三层交换机一般是通过VLAN来划分二层网络并实现二层交换,同时能够实现不同VLAN直接的三层互访,根据图2的拓扑分析三层数据转发原理.

图2是个比较典型比较简单的三层转发拓扑.PC1在1.1.1.0/24网段,PC2在2.2.2.0/24网段,他们通过交换机进行三层数据包转发.在这个过程中既有二层转发出现,又有三层转发出现.三层转发原理

1)源主机PC1在发起通信之前,将自己的 IP与目的IP地址向比较,如果两者位于同一个网段内,源主机PC1向目的主机交换机发送ARP请求,收到ARP请求的交换机,会回应一个ARP应答,应答报文中带有目的主机的MAC地址,源主机获得目的MAC后,根据MAC地址发送报文.这是一个完整的同网段内二层交换转发.

2)当源主机PC1判断目的主机地址与自己不是在同一个网段内时,它会通过网关来递交报文,即发送ARP请求到网关主机获得对应的MAC地址,以网关MAC地址作为报文的目的MAC地址进行报文交互,在此过程中,源IP地址和目的IP地址都不变,改变的是源MAC地址和目的MAC地址.

三层转发过程描述

1)PC1要给PC2发送数据,已知目的IP,那么PC1就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。

2)在同一网段,但不知道转发数据所需的MAC地址,PC1就发送一个ARP请求,PC2返回其MAC地址,PC1用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。

3)目的IP地址显示不是同一网段的,那么PC1要实现和PC2的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向缺省网关,这个缺省网关就是交换机,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,把数据包送CPU处理,查询其中的软件路由表和ARP表,以确定到达PC2的路由,将构造一个新的帧头,其中以交换机的MAC地址为源MAC地址,以主机PC2的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机PC1与PC2的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后的PC1到PC2的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。

上述流程是我对二三层转发的浅显理解,在之前没能深入理解二三层转发的概念,在工作中会遇到一些问题,而且又无法解决,但是通过学习感觉得到很大提高,最重要的是以前模糊的概念现在很清晰,做起事情也会得心应手,事办功倍.下载本文

显示全文
专题