二层主机通信与三层主机通信
今天记一下二层主机通信过程,三层主机通信过程。
1、二层主机通信
(1)PC0向PC1通信,首先会查看自己的arp缓存。如果没有,pc0就会广播arp请求,pc1收到请求之后就会单播回复mac地址,同时pc1自己也会把pc0的mac地址存储在arp缓存中,pc0收到pc1的arp回复后,把pc1的mac地址写入到自己的arp缓存中,并封装帧转发给交换机。
(2)如果缓存中有pc1的mac地址,则pc0会把自己要发的数据封装成帧,帧格式为【目的mac地址 源mac地址 源IP地址 目的IP地址 数据】,帧到交换机之后,交换机就会学习pc0的mac地址,然后检擦mac地址表中是否有目的mac地址,如果有,那么交换机就单播把帧转发给pc1。
(3)如果没有就会,交换机就会广播arp请求,pc1收到请求后就会把自己的mac地址发给交换机,交换机会把pc1的mac地址放入自己的mac地址缓存表中,然后在转发帧到pc1。
2、三层主机通信
(1)PC0向PC1通信,首先查看自己的arp缓存是否有三层交换机的mac地址。如果没有,pc0就广播arp请求,三层交换机就会把自己的mac地址单播回复给pc0,pc0就会把三层交换机的mac地址写入arp缓存,并封装成帧。
(2)如果有,就会构造一个帧,帧内容为【三层交换机的目的mac地址 源mac地址 源IP地址 pc1的目的IP地址 数据】发给三层交换机。
(3)三层交换机收到这个帧之后,检查发现是发给自己的,就去掉了帧头和帧尾,查看路由表是否有目的IP地址。如果没有,就丢弃这个数据包,并发送目标主机不可达。
(4)如果有,就把这个数据包转到能到目的IP地址I的接口,然后查看自己的arp缓存是否有PC1的mac地址。如果有,就会把这个数据包封装成帧,转发给PC1。
(4)如果没有就广播arp请求,pc1回复三层交换机自己的mac地址,三层交换机就会把pc1的mac地址写入arp缓存,并封装成帧。
在这些过程中,我忽略了与二层交换机的通信过程,但是其过程其实与二层主机通信过程很像,所以我就不再描述。
结束