数据通讯原理
PC1(192.168.1.1/24) ping PC2(192.168.2.1/24)
PC机上发生的
1.首先PC1判断目的IP是不是与自己是同网段的?
PC1把目的IP与自己的掩码相与(相乘),如果发现是不同网段找网关【就是ICMP中目的IP还是PC2,但是ARP广播中目的IP为网管的IP地址】
因为ICPM包的目的地址不在同一个网段,在第一个ICMP包封装失败后,PC1通过ARP广播的形式,SW1广播转发,PC1与网管R1之间获得了对方的IP地址和MAC地址,分别存入自己的ARP表中
2.封装ICMP包
SIP(原IP) DIP(目的IP)SMAC(原MAC)DMAC(目的MAC,这个你是不知道的?)
如何判断ICMP包封装成功?
根据ARP表,找对应目的IP与DMAC对应信息,填到封装ICMP包对应的信息,才能封装,如果ARP表中没有对应的IP地址与MAC
CISCO 的icmp包为什么会有一个是"."?
。!!!!
ICMP有5个包,在cicso中,第一个ICMP包会被丢掉,因为封装失败了,使用ARP报文去找封装完整的DMAC信息,下面的包封装起来信息就完整了,不会被丢弃
华为是把第一个ICMP封装不成功的报文缓存了下来,等arp收集完成,在发送
因为ICPM包的目的地址不在同一个网段,所以PC1通过ARP广播的形式,SW1广播转发,PC1与网管R1之间获得了对方的IP地址和MAC地址,分别存入自己的ARP表中
4.重新封装ICMP报文
PC机重新封装ICMP报文,比特流的形式传输到SW1,SW1对数据帧的部分解封装,看到要去往的mac地址,通过前面学到的目的mac地址绑定的端口,转发出去,ICMP报文就到达了R1路由器
SW1上发生的
交换机原理
基于源MAC地址去学习【就是学习PC的MAC地址】,源mac地址并与端口g0/0/0进行绑定,基于目的MAC地址转发【R1的MAC地址】向其它接口进行转发源mac地址
那么R1的MAC地址怎么来呢?
3.ARP广播到达交换机
基于源MAC地址去学习【就是学习PC的MAC地址】,基于目的MAC地址转发(广播的形式)|ARP Request,R1收到这个ARP 广播包查看是否请求的自己的地址,【就是ARP广播请求的目的地址里是R1的IP地址】确定是自己把PC1的mac地址和IP地址存到ARP表中,回应reply单播报文,这个单播报文到达SW1,SW1基于源MAC进行学习并和端口g0/0/1进行绑定,又把R1的MAC地址学习上了
交换机收到报文的转发方式:
- 广播:泛洪,除了自己接收的接口,向其他接口去发送
- 组播:泛洪,除了自己接收的接口,向其他接口去发送
- 单播:
- 已知单播:直接根据MAC表转发
- 未知单播:泛洪
R1上发生的
5.查表转发
ICMP到达R1首先解封数据链路层,发现目的MAC是自己,然后在解封网络层,看到目的IP不是自己,然后查路由表,如果有对应的路由表信息,根据路由信息转发,如果没有,直接丢掉这个ICMP包
6.重新封装数据
R1向R2发送ICMP包,要重新封装ICMP包(源MAC【换成R1的】目的MAC【R2的,不知道就arp广播解析,重复上面5步骤】源IP【PC1的】,目的IP【PC2的】)

评论