arp协议、arp应答出现的原因、arp应答过程详细解答附图(建议电脑观看)

      最后更新:2022-01-22 00:52:05 手机定位技术交流文章

      一、arp协议:

      地址解析协议,即ARP(Address Resolution Protocol),是根据 IP地址 获取 物理地址 的一个 TCP/IP协议 。 主机 发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;

      ----------------------------------------------------------------------------------------------------------------------------

      二、功能:

      地址解析协议由互联网工程任务组( IETF )在1982年11月发布的RFC 826中描述制定。 [1] 地址解析协议是 IPv4 中必不可少的协议,而IPv4是使用较为广泛的互联网协议版本(IPv6仍处在部署的初期)。

      OSI模型 把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过 以太网 发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的包头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

      ------------------------------------------------------------------------------------------------------------------------------

      三、原理:

      arp应答出现的原因:

      由于pc1发送ping包给pc3进行数据的封装时pc3的mac未知,也就是目的mac未知所以pc1向pc3发起了arp请求。

      数据封装:

      smac:0...........A sip:10.1.1.1 ICMP头部 ECHO
      dmac:? dip:10.1.1.3

      -------------------------------------------------------------------------------------------------------------------------------

      arp应答过程:

      第一步:pc1以广播的形式发起arp请求-------->(去)

      二层帧头(14字节) arp
      smac:0...........A 我是10.1.1.1,我的mac是0.......A
      谁是10.1.1.3,你的mac发给我
      二层帧尾(4字节)
      dmac:  12个F(二层广播)
      Type:0806

      第二步:sw2收到arp请求之后,首先学习pc1中arp请求的SMAC,形成mac地址表,如下:

      0..........A f0/8 VLAN   10

      从f0/8接口学习到的mac地址)0........A,属于      vlan  10

      然后在判断Dmac,当Dmac为12个F时,然后在自己所有vlan   10  的接口内(除了F0/8)以及trunk链路接口泛洪 -------------->(去)

      同样sw3收到来自sw2也形成一个mac地址表:

      0..........A f0/6 VLAN   10

      然后泛洪给pc3 -------------->(去)

      第三步:pc3收到arp请求之后,首先把arp请求(10.1.1.1-----0........A)记录到自己的arp缓存表之中再判断Dip是否是自己,不是则丢弃,是则以单播的方式回一个arp响应 -------------->(回)

      smac:0...........C 我是10.1.1.3,我的mac是0.....C 二层帧尾
      Dmac:0...........A
      type:0X0806

      第四步:然后sw3形成mac地址表: -------------->(回)

      0..........a f0/6 VLAN   10
      0...........C F0/9 vlan     10

      sw2形成mac地址表: -------------->(回)

      0..........a f0/8 VLAN   10
      0...........C F0/5 vlan     10

      最后:pc1收到arp响应,生成arp缓存表,存入pc3的mac地址 -------------->(回)

      10.1.1.3 0................C

      最终得到了pc3的mac,完成数据的封装:

      smac:0...A sip:10.1.1.1 ICMP头部 ECHO
      Dmac:0...C dip:10.1.1.3

      ---------------------------------------------------------------------------------------------------------------------------------

      注:

      ICMP(Internet Control Message Protocol)Internet控制 报文 协议。它是 TCP/IP协议簇 的一个子协议,用于在IP 主机 、 路由 器之间传递控制消息。控制消息是指 网络通 不通、 主机 是否可达、 路由 是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

      ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。

      ----------------------------------------------------------------------------------------------------------------------------

      ping为应用层小程序,直接调用网络层的ICMP协议给对方发送ECHO请求,对方收到之后会回复一个ECHO-reply,然后打印一个  !号。

      以上仅代表个人观点,如有错误还请指出。感谢!

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/17059.html

          热门文章

          文章分类