ARP协议:地址解析协议,将IP地址映射到MAC地址。

ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区。每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除。如果始终在使用,再分配2分钟,直到最长生命周期为止。

动态添加:发送ARP请求后,若网络上的主机发现自己的IP与ARP请求中的IP一致,会将发送方的IP地址和MAC地址记录到本机缓存,并回应ARP响应。发送方收到响应后,将接收方的IP地址和MAC地址记录到本机缓存。等生命周期到了,自动删除。

静态添加:通过ARP命令手动添加,始终存在,重启机器后消失。

ARP命令:可以通过arp -a 或者 arp -g查看本机的arp表。也可手动添加、删除记录。

过程:

A主机向B主机发送数据,要封装IP报头(源IP、目的IP等),再封装以太报头(源MAC、目的MAC)。而A知道自己的IP地址和MAC地址,也知道B的IP地址,却不知道B的MAC地址。此时需要ARP协议得到接收方的MAC地址。

(1)首先查询A主机的ARP缓存,查看是否有与B的IP地址对应的记录。

(2)如果本地ARP缓存中没有该记录,向局域网中广播ARP请求(包括发送方的IP地址、MAC地址、接收方的IP地址),每台主机接收到ARP请求后都检查自己的IP地址是否与ARP请求中的接收方IP地址相同,若不相同则丢弃ARP请求包。

(3)若相同,则B主机将A的IP地址和MAC地址添加到本地ARP缓存,并将自己的MAC地址通过ARP响应报文发送给A主机。

(4)A收到ARP响应报文后,将B的IP地址和MAC地址添加到本地ARP缓存。

ARP攻击:

ARP是建立在网络中主机相互信任的基础之上,主机不对ARP响应进行真实性检查,直接添加到ARP缓存中。黑客可以向主机发送错误的ARP响应,从而使主机发送的数据都发送到黑客的主机,所以有很大的安全隐患。

ARP协议详解的更多相关文章

  1. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  2. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  3. ARP协议详解RARP

    简单来说,ARP协议是IP地址转换成MAC地址的协议.链路层协议.过程如下: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 2:当源主机要 ...

  4. HTTP TCP UDP ICMP IP ARP 协议详解(10.15 第二十一天)

    ARP协议 ARP(Address Resolution Protocol)协议 地址解析协议 把网络层的IP地址翻译成在数据链路层寻址的48位硬件地址(MAC地址) 在OSI模型中ARP协议属于链路 ...

  5. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  6. 【转载】TCP /IP协议详解

    首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...

  7. 入木三分学网络第一篇--VRRP协议详解第一篇(转)

    因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...

  8. 第3章 TCP协议详解

    第3章 TCP协议详解 3.1 TCP服务的特点 传输协议主要有两个:TCP协议和UDP协议,TCP协议相对于UDP协议的特点是 面向连接使用TCP协议通信的双方必须先建立连接,完成数据交换后,通信双 ...

  9. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

随机推荐

  1. lua分割字符串终究版(转载,有改动)

    来源http://codepad.org/BRHIS6WA --根据首字节获取UTF8需要的字节数 local function GetUTF8CharLength(ch) local utf8_lo ...

  2. Golang学习 - errors 包

    ------------------------------------------------------------ Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 e ...

  3. WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框)

    1.添加一个数据实体类 AutoCompleteEntry,如下: using System; using System.Collections.Generic; using System.Linq; ...

  4. C# 之 判断或设置以管理员身份运行程序

    一.判断程序是否以管理员权限运行 using System.Security.Principal; public bool IsAdministrator() { WindowsIdentity cu ...

  5. 自定义uiview 当没有数据的时候 显示自定义的uiview界面

    // // ZSDTJNoDataView.h // ZSDTJNoDataView // // Created by Mac on 14-12-28. // Copyright (c) 2014年 ...

  6. [WinForm] VS2010的程序打包封装

    因为学习的要求,我需要把自己的程序进行打包封装,开始也是苦恼,没有找到很好的办法,但并没有放弃,终于发现了一个差不多的文章,于是摸索着进行,可喜的是是成功了,下面和大家分享一下. 第一步:前提是你已经 ...

  7. SQL查询中的in与join效率比较

    大多数情况下,程序员比较喜欢使用in来查询符合某些条件的数据,最近在查询某个角色有哪些用户的方法中,使用了in语句: ) FROM baseuser AND BaseUser.Id IN (SELEC ...

  8. 【Linux/Ubuntu学习 13】ubuntu上好用的pdf软件okular

    step 1: 安装 sudo apt-get install okular step 2: 注释 按 F6 快捷方式打开注释功能,你会发现太神奇了. step 3: 中文配置 如果安装完成后中文显示 ...

  9. 从源码的角度解析View的事件分发

    有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图 ...

  10. Java线程同步的方式

     java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),      将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的 ...