IP报文传递过程
- 1、PC1访问PC2报文传递过程
- 1.1、PC1准备数据请求报文封装
- 1.2、PC1准备ARP请求报文
- 1.3、PC2准备ARP响应报文
- 1.4、PC1完成数据请求报文封装
- 2、PC1访问PC3报文传递过程
- 2.1、PC1准备数据请求报文封装
- 2.2、PC1准备获取网关MAC地址的ARP请求报文
- 2.3、网关准备ARP响应报文
- 2.4、PC1组装并发送到网关下一跳的报文
- 2.5、网关组装发送到目标IP的报文
- 2.6、网关准备获取PC3的MAC地址的ARP请求报文
- 2.7、网关组装到PC3的数据请求报文
- 3、小小小结语
- 4、报文的解封装简述
IP报文在网络设备间的传递过程主要涉及到4个概念:源IP
、目的IP
、源MAC
、目的MAC
。
1、PC1访问PC2报文传递过程
1.1、PC1准备数据请求报文封装
由PC1向PC2发送数据报,可知此时的PC1已知以下参数:
数据请求报文 | 源IP:192.168.1.1 | 目的IP:192.168.1.2 |
源MAC:0A:D0:CB:22:02:01 | 目的MAC:UNKOWN |
1.2、PC1准备ARP请求报文
报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC2与自己存在同一网段下,而同一网段可以直接通过二层传输,即目的MAC地址直接指向PC2。
为了获取PC2的MAC地址,PC1组装ARP请求报文发起ARP广播:
ARP请求报文 | 发送者IP:192.168.1.1 | 目标IP:192.168.1.2 |
发送者MAC:0A:D0:CB:22:02:01 | 目标MAC:FF:FF:FF:FF:FF:FF |
1.3、PC2准备ARP响应报文
PC2通过判断ARP广播包的目标IP地址是自己的IP地址,会通过单播的形式返回ARP响应包给PC1:
ARP响应报文 | 发送者IP:192.168.1.2 | 目标IP:192.168.1.1 |
发送者MAC:0A:D0:CB:22:02:02 | 目标MAC:0A:D0:CB:22:02:01 |
PC2的ARP响应包经过交换机LSW1时,LSW1通过MAC地址表将此响应包发送给PC1,PC1此时得知PC2的MAC地址是54-89-98-A3-13-98。
1.4、PC1完成数据请求报文封装
此时PC1就可以组装并发送报文
数据请求报文 | 源IP:192.168.1.1 | 目的IP:192.168.1.2 |
源MAC:0A:D0:CB:22:02:01 | 目的MAC:0A:D0:CB:22:02:02 |
报文经过LSW1时,LSW1通过MAC地址表,将报文转发至PC2,PC1向PC2的一次单向通信结束。
2、PC1访问PC3报文传递过程
2.1、PC1准备数据请求报文封装
由PC1发起到PC3的连接,可以判断,此时的PC1已知以下参数:
数据请求报文 | 源IP:192.168.1.1 | 目的IP:10.15.10.3 |
源MAC:0A:D0:CB:22:02:01 | 目的MAC:UNKOWN |
报文的传递可分为二层传输和三层传输,PC1通过分析自己的CIDR,得出PC3与自己不在同一网段下,而不同网段需要通过三层网关传输。
PC1已知网关IP地址为192.168.1.254,PC1与网关之间是通过二层通信即MAC地址通信,因此PC1需要得知网关的MAC地址,才可以将报文顺利发送给网关。
2.2、PC1准备获取网关MAC地址的ARP请求报文
为了获取网关的MAC地址,PC1需要发起ARP广播:
ARP请求报文 | 发送者IP:192.168.1.1 | 目标IP:192.168.1.254 |
发送者MAC:0A:D0:CB:22:02:01 | 目标MAC:FF:FF:FF:FF:FF:FF |
2.3、网关准备ARP响应报文
同样网关收到PC1的ARP广播后,会单播回复ARP响应包给PC1:
ARP回复报文 | 发送者IP:192.168.1.254 | 目标IP:192.168.1.1 |
发送者MAC:0A:D0:CB:22:02:54 | 目标MAC:0A:D0:CB:22:02:01 |
2.4、PC1组装并发送到网关下一跳的报文
此时PC1就可以组装并发送数据报文:
数据请求报文 | 源IP:192.168.1.1 | 目的IP:10.15.10.3 |
源MAC:0A:D0:CB:22:02:01 | 目的MAC:0A:D0:CB:22:02:54 |
报文经过LSW1时,LSW1通过MAC地址表,将报文转发至网关,网关此时会关注报文中的目的IP这个参数。
2.5、网关组装发送到目标IP的报文
网关通过分析自己的CIDR,得出PC3与自己在同一个网段,即直连路由,可以通过二层直接转发至PC3。
此时网关需要将PC1的报文中源MAC地址及目的MAC地址修改,即:
数据请求报文 | 源IP:192.168.1.1 | 目的IP:10.15.10.3 |
源MAC:0A:D0:CB:11:02:54 | 目的MAC:UNKOWN |
2.6、网关准备获取PC3的MAC地址的ARP请求报文
源MAC 0A:D0:CB:11:02:54,为网关直连PC3接口的MAC地址,报文通过这个接口发出。由于PC3的MAC地址未知,网关会通过ARP广播查找PC3的MAC地址:
ARP请求报文 | 发送者IP:10.15.10.254 | 目标IP:10.15.10.3 |
发送者MAC:0A:D0:CB:11:02:54 | 目标MAC:FF:FF:FF:FF:FF:FF |
同样PC3单播回复ARP响应给网关:
ARP响应报文 | 发送者IP:10.15.10.3 | 目标IP:10.15.10.254 |
发送者MAC:0A:D0:CB:11:02:03 | 目标MAC:0A:D0:CB:11:02:54 |
2.7、网关组装到PC3的数据请求报文
此时网关就可以组装并发送报文:
数据请求报文 | 源IP:192.168.1.1 | 目的IP:10.15.10.3 |
源MAC:0A:D0:CB:11:02:54 | 目的MAC:0A:D0:CB:11:02:03 |
报文经过交换机LSW2,LSW2根据MAC地址表,将报文转发给PC3,PC1向PC3的一次单向通信结束。
3、小小小结语
数据报文在三层传输过程中,报文的MAC地址是不断变化的,报文的IP地址通常不变(除非经过NAT)。