70421">
以后到达目的主机的数据包就可以直接利用三层硬件转发表中的转发表项进行数据交换,不用再查看CPU中的路由表了。
以上流程适用位于不同VLAN(网段)中的主机互访时属于这种情况,这时用于互连的交换机作三层交换转发。这就是“一次路由,多次交换”的原理。
三层交换示例
在三层交换中,同一交换机上的不同网段主机通信和不同交换机上的不同网段主机通信的基本原理是一样的,只是具体流程有所区别。本节仅以比较简单的“同一交换机上的不同网段主机通信”这种情形来解释上节介绍的三层交换原理。
如下图所示,通信的源、目的主机连接在同一台三层交换机上,但它们位于不同VLAN(也位于不同网段)。对于三层交换机来说,这两台主机都位于它的直连网段内,它们的IP对应的路由都是直连路由。图中已标明了两台主机的MAC地址、IP地址、网关IP地址(也就是对应VLAN接口IP地址),以及三层交换机的MAC地址。
【说明】本示例中虽然划分了VLAN,但是在下面的数据转发流程中我们并没有提到VLAN标记,那是因为在本示例中,通信双方主机都连接到同一个三层交换机上,端口类型均为Access类型,发送和接收的数据帧都是无VLAN标记的。在下节介绍的示例中,在数据的转发过程中将会涉及到VLAN标记问题。
同一交换机上不同网段主机间的三层交换示例
当PC A要第一次向PC B发向数据包时,数据包的传输流程如下:(假设三层交换机上当前还未建立任何硬件转发表项)
(1)PC A首先检查出目的IP地址2.1.1.2(PC B)与自己不在同一网段,觉得就这样直接发送肯定不行,于是把要发送的数据包先缓存起来。它知道这个数据包必须经过网关来转发,所以先查看一下自己是已经知道网关的MAC地址(也就是在PC A主机的ARP表中查看是否有与网关IP地址对应的MAC地址表项)。如果有,则直接把要发送给PC B的数据包在封装成数据帧时,把“目的MAC地址”字段的值设为网关的MAC地址(也就是三层交换机的MAC地址MAC S,交换机上各端口、各VLAN是共享一个或多个MAC地址的)。
(2)如果PC A在自己的ARP表中没有找到网关MAC地址,则先向网关发出(其实是会向本VLAN内所有节点发出)一个ARP广播请求报文,以获取网关IP地址1.1.1.1所对应的MAC地址。此ARP请求报文的“源MAC地址”字段是PC A的MAC地址“MAC A”,“目的MAC地址”因为未知,以全0格式填充;“源IP地址”和“目的IP地址”字段分别填上PC A的IP地址(1.1.1.2)和网关的IP地址(1.1.1.1)。
ARP请求报文向下传输到了以太网数据链路层后被再次封装成以太网帧,以太网帧头中的“源MAC地址”字段值仍为PC A的MAC地址“MAC A”,“目的MAC地址”字段值为广播MAC地址FF-FF-FF-FF-FF-FF以,“帧类型”字段填上ARP的协议号0x0806。有关ARP报文和ARP帧格式参见本章7.3.10节。
本文来源:不详 作者:佚名