简析报文传递过程
报文传递整个过程主要涉及到报文的四元组,无法建立四元组,报文就无法传递:
源IP | 目的IP |
源MAC | 目的MAC |
通过分析四元组的四个参数,就能很好理解路由交换的全过程。
TOPO
现在根据以下两种情况,分析下如上图所示的报文传递过程。
情况1,PC1访问PC2:
由PC1发起到PC2的连接,那么结合一开始所说的四元组,可以判断,此时的PC1已知以下参数:
源IP:192.168.1.2 | 目的IP:192.168.1.3 |
源MAC:54-89-98-4F-65-FA | 目的MAC:UNKOWN |
PC1此时需要得到一个目的MAC地址,满足四元组,才可以组装出报文。
报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC2与自己存在同一网段下,而同一网段可以直接通过二层传输,即目的MAC地址直接指向PC2。
为了获取PC2的MAC地址,PC1需要发起ARP广播:
发送者IP:192.168.1.2 |
目标IP:192.168.1.3 |
发送者MAC:54-89-98-4F-65-FA |
目标MAC:00:00:00:00:00:00 |
PC1的ARP广播包通过通过交换机LSW1时,交换机会向所有UP状态的端口泛洪,PC2会收到这个广播包。
PC2通过判断ARP广播包的目标IP地址是自己的IP地址,会通过单播的形式返回ARP响应包给PC1:
发送者IP:192.168.1.3 | 目标IP:192.168.1.2 |
发送者MAC:54-89-98-A3-13-98 | 目标MAC:54-89-98-4F-65-FA |
PC2的ARP响应包经过交换机LSW1时,LSW1通过MAC地址表将此响应包发送给PC1,PC1此时得知PC2的MAC地址是54-89-98-A3-13-98。
此时PC1就可以组装并发送报文
源IP:192.168.1.2 | 目的IP:192.168.1.3 |
源MAC:54-89-98-4F-65-FA | 目的MAC:54-89-98-A3-13-98 |
报文经过LSW1时,LSW1通过MAC地址表,将报文转发至PC2,PC1向PC2的一次单向通信结束。
情况2,PC1访问PC3
由PC1发起到PC3的连接,可以判断,此时的PC1已知以下参数:
源IP:192.168.1.2 | 目的IP:172.16.1.2 |
源MAC:54-89-98-4F-65-FA | 目的MAC:UNKOWN |
PC1此时需要得到一个目的MAC地址,满足四元组,才可以组装出报文。
报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC3与自己不在同一网段下,而不同网段需要通过三层网关传输。
PC1已知网关IP地址为192.168.1.1,PC1与网关之间是通过二层通信即MAC地址通信,因此PC1需要得知网关的MAC地址,才可以将报文顺利发送给网关。
为了获取网关的MAC地址,PC1需要发起ARP广播:
发送者IP:192.168.1.2 |
目标IP:192.168.1.1 |
发送者MAC:54-89-98-4F-65-FA |
目标MAC:00:00:00:00:00:00 |
同样网关收到PC1的ARP广播后,会单播回复ARP响应包给PC1:
发送者IP:192.168.1.1 | 目标IP:192.168.1.2 |
发送者MAC:54-89-98-83-50-F2 | 目标MAC:54-89-98-4F-65-FA |
此时PC1就可以组装并发送报文:
源IP:192.168.1.2 | 目的IP:172.16.1.2 |
源MAC:54-89-98-4F-65-FA | 目的MAC:54-89-98-83-50-F2 |
注意此时报文的目的MAC地址指向的是网关的MAC地址。
报文经过LSW1时,LSW1通过MAC地址表,将报文转发至网关,网关此时会关注报文中的目的IP这个参数。
源IP:192.168.1.2 | 目的IP:172.16.1.2 |
源MAC:54-89-98-4F-65-FA | 目的MAC:54-89-98-83-50-F2 |
网关通过分析自己的CIDR,得出PC3与自己在同一个网段,即直连路由,可以通过二层直接转发至PC3。
此时网关需要将PC1的报文中源MAC地址及目的MAC地址修改,即:
源IP:192.168.1.2 | 目的IP:172.16.1.2 |
源MAC:54-89-98-83-50-F3 | 目的MAC: |
源MAC 54-89-98-83-50-F3,为网关直连PC3接口的MAC地址,报文通过这个接口吐出。由于PC3的MAC地址未知,网关会通过ARP广播查找PC3的MAC地址:
发送者IP:172.16.1.1 |
目标IP:172.16.1.2 |
发送者MAC:54-89-98-83-50-F3 |
目标MAC:00:00:00:00:00:00 |
同样PC3单播回复ARP响应给网关:
发送者IP:172.16.1.2 |
目标IP:172.16.1.1 |
发送者MAC:54-89-98-83-49-83 |
目标MAC:54-89-98-83-50-F3 |
此时网关就可以组装并发送报文:
源IP:192.168.1.2 | 目的IP:172.16.1.2 |
源MAC:54-89-98-83-50-F3 | 目的MAC:54-89-98-83-49-83 |
报文经过交换机LSW2,LSW2根据MAC地址表,将报文转发给PC3,PC1向PC3的一次单向通信结束。
小结:
在三层传输过程中,报文的MAC地址是不断变化的,报文的IP地址通常不变(除非经过NAT)。