ARP协议解决的问题就是:在同一个局域网中,解决主机IP地址和硬件地址的映射问题
当数据在网络中某一条链路传输的时候我们知道目的主机的IP地址,但是不知道硬件地址,ARP协议就是解决这个问题的一个协议,IP协议可以使用ARP协议找到相应的硬件地址
下面的一个图简单看一下ARP协议的使用的位置
两种情况
补充机制
ARP的高速缓存中为每个映射地址的项目都会设置一个生存时间(一般是10–20分钟),超过生存时间的映射就会被删除掉。原因是,假设一种情况是主机A中的ARP缓存中有主机B的映射,这个时候主机B可能 有一些故障之类的发生,就需要换各种硬件,这个时候主机B的硬件地址就改变了,那么刚刚的那个映射就没有意义了,所以这个时候需要重新发送 广播来获取主机B的IP地址和硬件地址的映射
设置ARP高速缓存的优点在于,如果不设置映射的话,每次发送数据时候都需要广播一次,这个时候在局域网中的数据通信就大大的增加了
在上文的基础之上,我们具体看看ARP数据的各个字段的内容都是什么,请看下图
- 第一个字段表示MAC目的地址,如果是全f,表示这是一条广播,所在局域网中的所有主机都可以收到这个消息
- 第二个地段表示源地址,即发送方的MAC地址
- 第三个地段是0806表示这个数据报是属于ARP的,如果是0800则表示IP数据报,因为我们这里讲的是ARP数据报,所以这里就是0806。
- 硬件类型:指链路层网络类型,这里为1,表示以太网
- 协议类型:指要转换的地址类型,这里为0x0800,表示IP地址
- 硬件地址长度和协议地址长度:就是使用的硬件的地址长度和使用的IP地址的长度,就是图中的op地段后面的那些地段的长度分别是6和4
- op:op字段为1表示ARP请求,op字段为2表示ARP应答
- 发送端MAC地址和发送端IP地址:根据实际内容填写
- 目标MAC地址和目标IP地址:此时的目标MAC地址是空白,因为我这里发送的一个广播,要寻找的就是目标MAC地址,所以此时为空,等待目标主机应答,但是目标IP地址是知道的
51 三菱PLC可读不可写Q:MT8102IQ和三菱Q系列PLC通讯,屏无法写入PLC,但是可以读取PLC的状态和数值?A:PLC程序中"允许RUN中写入"打钩,程序下载重启后解决。52 控制不了输入点Q:触摸屏做了三菱PLC的X点的元件,但是控制不了X输出?A:是的,PLC端X点无法通过触摸屏控制输出,屏上只能做X点的显示。53 M...
传统方法(仅适用于普通项目): 1、在vscode中安装 Live Server 插件: 2、安装成功后,vscode右下角会有 Go Live 标识点击: 3、cmd ipconfig 查询自己电脑的ip地址: 4、复制地址替换端口前的地址(http://127.0.0.1:8080修改为http://192.168....
ngx_http_geo_module模块,默认情况下,nginx会加载,除非人为的 --without-http_geo_module。 这个模块提供了一个非常好用的geo指令,可以用它来创建变量,诞生其值依赖于客户端IP地址。 ngx_http_geo_module 模块官网地址 http://nginx.org/en...
uboot启动Linux内核过程分为4大步骤: 问题2: uboot阶段DDR的分区的问题 上述步骤2和步骤4中,有将uboot/kernel拷贝纸DDR的步骤,具体要拷贝到DDR的什么位置呢? 分清楚这两个概念: 链接地址:链接时指定的地址(指定方式为:Makefile中用-Ttext,或者链接脚本) 运行地址:程序实际运行...
在Linux系统中,以32bit x86系统来说,进程的4GB内存空间(虚拟地址空间)被划分成为两个部分 ------用户空间和内核空间,大小分别为0-3G,3-4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间存放用户的程序和代码(堆栈,数据区,代码区等)...
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息。数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息。 1.IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是...
原文链接 tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Li...