三层/二层转发基础(2)
接上个文章,如果本地主机发现目的IP主机不是和自己在同一个网段上,那么这个过程将进入三层转发范围内。本地主机将会将默认网关的MAC地址组在准备发送出去的数据包上,然后本地主机将数据包通过网卡扔到物理层发送出去;
另一端一个二层交换机一个物理口收到了这个数据包,因为二层交换是通过MAC地址进行转发的,所以这里将会重复之前二层转发的过程,查对应的MAC-PORT表,将目的MAC对应的Port找出来,然后将这个数据包重新扔到了对应的端口发送出去,因为二层转发是一个透明操作,不涉及到数据包处理,所以数据包原样发送到指定端口,因为网关一定是和本地主机在同一个网段上,所以不用担心,一定会发送到网关对应三层口上,这里假定数据包成功到了网关端口上,网关收到了这个数据包,然后从这个数据包中抽出对应的目的IP地址,从路由上的路由表中查对应的转发策略,通过最长匹配原则将目的IP地址进行选择下一跳,从路由的哪个端口出去。如果是下一跳还不是直接到了目的主机,而是另一个路由,Ok那么继续三层转发,继续跳下去。这里如果找到了对应的目的地址网段,这里假设这个端口接了一个二层交换机,因为发送一个数据包需要一个完整的数据包,这里有了三层IP,但是少了链路层MAC,那么MAC从哪里获取到呢? 这里路由维护了一张ARP表,包括了接入层上所有MAC-IP关系,路由将会从这里获取到了目的IP地址对应的MAC地址,然后填充到数据包中,从三层查到的路由表对应端口发出去,等数据包到了二层交换这边,那么将开始新的二层交换历程。
-** 这里说的不一定完全,但是毕竟把流程都滤了一遍。