地址解析协议(ARP)

ARP(Address Resolution Protocol)地址解析协议:

根据已知的IP地址解析获得其对应的MAC地址

ARP工作流程

1.HOST1 ARP缓存

HOST1通信之前需要封装数据包,其中在封装二层数据链路层时,终端查询自己的ARP缓存表,ARP缓存表维护一个IP和MAC地址的对应关系,根据对端IP地址再查询ARP缓存表可知道对方的MAC地址,然后直接封装就好了,默认ARP缓存表是没有对应关系的(ARP的默认老化时间为180秒,就是原本的ARP记录如果180秒没有被使用,那么此对应关系会被删除)

2.HOST1 ARP请求

终端1发生ARP请求来获取IP和MAC地址的对应关系并存到自己的ARP表中,由于不知道对方的MAC地址因此在封装ARP请求的Ether_II目的MAC为ff:ff:ff:ff:ff:ff(广播地址),在ARP报文中由于不知道对端的MAC地址因此设置目的MAC为00:00:00:00:00:00

3.HOST2 ARP缓存写入

HOST1发送的ARP请求为广播,在同一广播域的主机都会收到,HOST2在收到ARP请求报文后,对比ARP报文中的目的IP,发现和本机的IP匹配,讲ARP请求报文中的源IP和源MAC的对应关系写入到自己的ARP缓存表中

4.HOST2 发送ARP响应

HOST2需要对ARP请求进行回复,由于上一步中已经从ARP请求将HOST1的IP和MAC地址的对应关系写入到了ARP缓存中,在封装ARP回复时目的MAC就可以封装进去了,不用以广播的形式,而是单播,ARP Replay的封装和ARP请求一样,只是ARP类型该成了ARP Replay,在ARP Replay报文中封装了源目IP和MAC地址

5.HOST1写入ARP缓存表

HOST1收到ARP Replay后将ARP报文中的源IP和源MAC记录进ARP缓存表中,之后HOST1和HOST2通信就不需要考虑二层封装目的MAC未知问题

免费ARP报文

在终端获取到了自己的IP地址后,会发送一个免费的ARP报文,免费ARP是一个ARP请求报文,封装ARP时源目IP和源MAC都是自己,Ether_II的源MAC是自己,目的MAC是广播地址,如果有人回ARP Replay,代表此IP已经和其他MAC地址绑定了,免费ARP报文的作用是查询自己的IP是否和其他终端冲突了

抓包



在GE0/0/0上抓

AR1

sys

Enter system view, return user view with Ctrl+Z.

[Huawei]sys AR1

[AR1]inte gi 0/0/0

[AR1-GigabitEthernet0/0/0]ip addr 192.168.1.1 255.255.255.0

Aug 27 2023 22:47:03-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP

on the interface GigabitEthernet0/0/0 has entered the UP state.

AR2

sys

Enter system view, return user view with Ctrl+Z.

[Huawei]sys AR2

[AR2]inte gi 0/0/0

[AR2-GigabitEthernet0/0/0]ip addr 192.168.1.2 255.255.255.0

Aug 27 2023 22:48:50-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP

on the interface GigabitEthernet0/0/0 has entered the UP state.

AR1 ping AR2

[AR1]ping 192.168.1.2

PING 192.168.1.2: 56 data bytes, press CTRL_C to break

Reply from 192.168.1.2: bytes=56 Sequence=1 ttl=255 time=90 ms

Reply from 192.168.1.2: bytes=56 Sequence=2 ttl=255 time=20 ms

Reply from 192.168.1.2: bytes=56 Sequence=3 ttl=255 time=20 ms

--- 192.168.1.2 ping statistics ---

3 packet(s) transmitted

3 packet(s) received

0.00% packet loss

round-trip min/avg/max = 20/43/90 ms

05 地址解析协议ARP的更多相关文章

  1. 2016.7.8 计算机网络复习要点第四章之地址解析协议ARP

    1.地址解析协议ARP:知道一个机器的IP地址,需要找到其相应的硬件地址:ARP协议的用途是为了从网络层使用的IP地址解析出在链路层使用的硬件地址: 2.由于是IP协议使用了ARP协议,因此通常就把A ...

  2. 【RL-TCPnet网络教程】第23章 RL-TCPnet之地址解析协议ARP

    第23章      RL-TCPnet之地址解析协议ARP 本章节为大家讲解ARP(Address Resolution Protocol,地址解析协议),通过前面章节对TCP和UDP的学习,需要大家 ...

  3. TCP/IP具体解释学习笔记——地址解析协议ARP

    一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址 ...

  4. TCP/IP的排头兵――地址解析协议(ARP) (转载)

    转自:http://blog.csdn.net/wangxg_7520/article/details/2488442 一.引言 古人行军打仗,都要有一个可以引领队伍前进方向的排头兵,在TCP/IP网 ...

  5. 地址解析协议ARP与逆地址解析协议RARP

    IP地址是用来通信的,但是和硬件地址是有区别的.物理地址是数据链路层和物理层使用的地址,IP地址是网络层及以上各层使用的地址. 发送数据时,数据从高层向下层传输,使用IP地址的IP数据报交给下层的数据 ...

  6. TCP/IP协议(4): 地址解析协议(ARP) —— 网络地址转换为物理地址的方式

    TCP/IP协议(4): 地址解析协议(ARP)--网络地址转换为物理地址的方式 关于地址解析协议(Address Resolution Protocol, ARP) 关于 ARP 地址解析协议(Ad ...

  7. <TCP/IP>地址解析协议ARP

    从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址.物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的 在传统的IPv4网络中,一台A主机要 ...

  8. 地址解析协议(ARP) 分析

    什么是ARP协议 ARP(A ddress R esolution P rotocol)- 地址解析协议 ,用于将IP地址解析为MAC地址.复杂来说,ARP用于32位IPv4地址和以太网的48位MAC ...

  9. 地址解析协议ARP,网络层协议IP、ICMP协议

    分析所用软件下载:Wireshark-win32-1.10.2.exe 阅读导览 1. 分析并且应用ARP协议 2.分析IP协议 3.分析ICMP协议 1.分析arp报文的格式与内容 (1)ping ...

  10. 地址解析协议ARP(Address Resolution Protocol)

    1.引言 说明: ARP的作用,解决了什么问题: 以太网中的链路层,可能会采用不同的网络技术,而且不以ip作为路由依据. 链路层以mac地址作为路由依据. ARP的功能是在32 bit的IP地址和采用 ...

随机推荐

  1. 新出的Alist云盘视频助手,真的香还是假的香?

    作为某云盘的重度使用者和长期受虐者,前段时间无意中看到一款新出的网盘工具,叫Alist云盘视频助手,不同于一般的网盘工具,它不是面向网盘数据下载的,它面向的是网盘视频文件隐私保护,大白话就是:加密网盘 ...

  2. Selenium - 元素定位(2) - XPATH进阶

    Selenium - 元素定位 XPATH 定位进阶 元素示例 属性定位 # xpath 通过id属性定位 driver.find_element_by_xpath("//*[@id='kw ...

  3. [学习笔记]解决因C#8.0的语言特性导致EFCore实体类型映射的错误

    今天下午在排查一个EF问题时,遇到了个很隐蔽的坑,特此记录. 问题 使用ef执行Insert对象到某表时报错,此对象的Address为空: 不能将值 NULL 插入列 'Address',表 'dbo ...

  4. web自动化01-环境搭建

    1.自动化测试是什么? 借助工具实现 借助代码编写脚本实现  2.自动化测试需要掌握那些? web自动化测试基础 移动端自动化基础 pytest自动化测试框架 po设计模式 数据驱动 日志模块使用 自 ...

  5. SpringBoot配置文件加载

    Spring Boot 配置文件加载是通过 Spring Boot 的自动配置机制实现的,它可以根据不同的环境加载不同的配置文件,包括 application.properties.applicati ...

  6. 利用APIFOX对ABAP函数进行调用

    1.安装APIFOX,当然也可以使用在线版,无需下载 官网地址:https://apifox.com/ 2.新建项目 3.为项目起一个名称,为相关开发测试人员授权 4.在根目录新增子目录 5.编辑开发 ...

  7. 03. 选择器补充及CSS动画

    1.了解frameset 2.iframe html5新特性 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 提示:您可以把需要的文本放置在 <iframe> 和 &l ...

  8. 没用,随便写的(Dec_8_2022)

    import numpy as np from PIL import Image import pandas as pd import matplotlib.pyplot as plt # 第一个 # ...

  9. 2023-06-19:讲一讲Redis分布式锁的实现?

    2023-06-19:讲一讲Redis分布式锁的实现? 答案2023-06-19: Redis分布式锁最简单的实现 要实现分布式锁,确实需要使用具备互斥性的Redis操作.其中一种常用的方式是使用SE ...

  10. 精选Golang高频面试题和答案汇总

    大家好,我是阳哥. 之前写的< GO必知必会面试题汇总>,已经阅读破万,收藏230+. 也欢迎大家收藏.转发本文. 这篇文章给大家整理了17道Go语言高频面试题和答案详解,每道题都给出了代 ...