admin 管理员组

文章数量: 887006

二三层转发原理

个人认为最基础最重要的学习网络的原理

我自己在校自学了很久,学了很多在校学不到的技术,MPLS VPN,组播等技术。以前认为网络基础的学习就像很多公开的学习视屏一样,只需要了解一点基础的东西就行了。但是当深入学习网络后才感觉到自己的基础的多么的不扎实。在此写下这篇文章:希望大家能认真学好这边文章里的东西,对大家以后学习高级技术有很大的帮助。有可能写的不是特别好,但是大家可以通过其他途径更加深入的学习这两个原理。且大家在以后的故障排查中按照这两个原理来,可以更快的解决问题。
(原创,转载请标明出处)

二层转发原理(交换机转发原理)

二层转发原理也就是交换机的转发原理
交换机转发原理:学习源MAC,根据目的MAC转发
看这篇文章的人,应该至少都接触过gns3,ensp,PT,eve等软件或者直接接触过真机。
下面就开始正式讲解一下二层转发原理:在OSI和TCP/IP模型中,交换机都在二层,转发数据帧。
下图是数据帧的格式
在最开始就说了二层转发原理就是学习源MAC地址,根据目的MAC地址转发。
当一个数据帧到达交换机后,交换机学习源MAC地址,将该MAC地址添加到自己的MAC地址表中;然后查看自己的MAC地址表,根据目的MAC地址转发。
数据帧分为4种,单播帧、广播帧、组播帧、未知单播帧(这个我就不详解了,大家可以自行去了解一下)
假设一台交换机上不配置任何东西,直连两台PC机,且PC机处于同一网段。PC机会先发送ARP请求,请求对端的MAC地址,交换机在ARP报文的交互过程中,学习源MAC地址,根据目的MAC地址转发。
从下面的一个抓包中可以看出PC1先发出的ARP请求的目的MAC是广播,ARP响应是单播。
交换机接收到ARP请求报文,学习源MAC地址,然后将该MAC地址对应到接收到该数据帧的端口(假如从1端口收到一个ARP请求报文,MAC地址表中 1 端口对应的MAC地址就是收到的报文中的源MAC地址)接收到回包后学习对端的MAC地址,然后构建了一个完整的MAC地址表,双发就能互通。
因为是同一网段,且只用交换机,数据接封装只会解到二层。
因为有了ARP请求,PC1中的ARP表有了PC2的地址,封装数据帧后,交换机接收到该数据帧,根据目的MAC地址转发,PC2收到该数据包,因为目的MAC是自己,解二层,因为目的IP是自己,解封装,看到数据是icmp,然后回包。

三层转发原理(路由器转发原理)

三层转发原理就是路由器的转发原理
路由器的转发原理就是根据路由表转发,路由表中有路由才会转发,无路由则直接丢弃
PC1 ping PC2,PC1 看路由、网关,主机先找到自己的网关,先发送ARP请求,在ARP表中找到对应关系,把数据包转发给网关,网关所在路由器解封装,根据路由表确定出接口,下一跳,然后重新封装,源MAC是出接口,目的MAC是下一跳,但是MAC地址表中无下一跳MAC地址,所以先发送ARP请求,更新MAC地址后在转发包,直到数据包中解封装后目的IP地址直连后,重新解封装,查看MAC地址表,然后ARP请求目的IP地址的MAC地址,然后发给目标主机。目标主机接收后,拆解数据包,然后原路放回数据包,完成传输。
下面是R1-R2,R2-R3之间的抓包
在这个环境中IP头部数据始终不变,MAC头部在经过一个路由器时就会发生改变。因为在路由器是三层设备,传输数据时会解封装到IP头部。


本文标签: 二三层转发原理