Ping通原理

拓扑描述: 

设备 接口接口ip地址接口mac地址
AR1GE 0/0/0192.168.1.100e0-fc17-29eb
AR2GE 0/0/0192.168.1.200e0-fc64-63fd

1、查路由表

2、封装

  当R1要访问R2时,需要根据TCP/IP模型进行依次的封装过程,应用层产生的原始数据交PDU,经过下层协议的封装,最终通过传输介质,到达R2,每一层封装的信息都不相同。

应用层原始数据---PDU
传输层封装TCP头部---数据段
网络层封装IP头部---数据包
数据链路层封装以太帧头部---数据帧
物理层

转换成二进制进行传输---比特流

工作中用来测试网络连通性最常用的就是ICMP协议中的ping命令,当R1 ping R2时,R1需要先进行数据的封装。

数据ICMP封装:ICMP头部

IP封装:

SIP:192.168.1.1

DIP:192.168.1.2

以太网封装:

SMAC:R1MAC

DMAC:    ?

  当进行二层封装时,R1并不知道R2的MAC地址,无法完成ICMP的完整封装过程,导致无法进行通信。

   ARP——地址解析协议,可以根据已知的IP地址,去获取目的MAC地址。工作原理如下:

  • R1访问R2,进行数据的封装,封装到二层,发现没有R2的MAC地址。
  • R1查看本地ARP缓存表,发现没有R2的IP和MAC地址映射。
  • 查看ARP表命令:dis arp all 或者 dis arp | include 192.168.1.2 

  •  R1开始封装ARP,发送ARP request 广播请求

    ARP request

    Sender IP:192.168.1.1

    Sender MAC:00e0-fc17-29eb

    Target IP:192.168.1.2

    Target MAC  :00-00-00-00-00-00

    ethernet ||

    SMAC:00e0-fc17-29eb

    DMAC:FF-FF-FF-FF-FF-FF

  • 以太帧的目的MAC地址用全F的广播地址代替,ARP报文中由于不知道R2的MAC地址,所以用全0补充,以比特流的形式发送出去。
  • R2收到R1的ARP request报文,进行解封装,去掉物理层头部,查看以太帧的目的MAC地址是广播地址,所以接收,由于type字段是0x0806,所以拆掉二层头部交由ARP协议处理。
  • 查看ARP头部信息,发现目的地址是自己的接口地址,并且获取到R1的IP和MAC,给R1回复单播ARP reply,同时将R1的IP和MAC缓存到本地ARP表中。

ARP reply

Sender IP:192.168.1.2

Sender MAC:00e0-fc64-63fd

Target IP:192.168.1.1

Target MAC  :00e0-fc17-29eb

ethernet ||

SMAC:00e0-fc64-63fd

DMAC:00e0-fc17-29eb

 3、查arp

  • R1收到R2的ARP reply报文,经过解封装,获取到R2的MAC地址,将R2的MAC缓存到本地ARP表中,然后可以完成ICMP包的封装,进行数据转发。

4、转发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值