arp 基本功能
地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。ARP最初在1982年的RFC 826(征求意见稿)[1]中提出并纳入互联网标准STD 37。ARP也可能指是在多数操作系统中管理其相关地址的一个进程。
ARP是通过网络地址来定位MAC地址。 ARP已经在很多网路层和数据链接层之间得以实现,包括IPv4、Chaosnet、DECnet和Xerox PARC Universal Packet(PUP)使用IEEE 802标准, 光纤分布式数据接口, X.25,帧中继和异步传输模式(ATM),IEEE 802.3和IEEE 802.11标准上IPv4占了多数流量。
在IPv6中邻居发现协议(NDP)用于代替地址解析协议(ARP)。
基本功能
OSI 七层模型中tcp/ip 协议簇解决应用层、传输层、网络层问题,以太网
在TCP/IP协议中,传输层只关心目标主机的IP地址+端口地址(因为这两元素唯一的确定一个传输层的包要交互的目的地,也即目标主机上的哪个应用程序,比如udp包或者tcp包)。网络层会对传输层的包进行封装形成ip包,网络层只关心目标机器的IP地址,并根据这个ip地址寻址到网络上的目的机器。在以太网中,ip数据包又是被封装在以太网帧中,经过物理层(也就是网卡)发送到网络上,以太网帧又是根据MAC地址来寻址到目的机器的网卡的(局域网中的所有机器的网卡都会接收到这个帧,而只有该帧头部中的目的MAC地址与自己网卡的MAC地址匹配时,才会向网络协议栈交付该帧中的数据包,否则网卡就会丢弃该帧)。因此,同一局域网中的一台主机要和另一台主机或者交换机,路由器等进行网络通信时,必须要知道与本机用网线连接上的,目标设备那边的那个网络接口的MAC地址(也就是网卡的地址)。这就导致在以太网中使用IP协议向下传递IP包时,IP包被包含在以太网帧中,以太网帧是有自己的格式的,在帧头部就需要填充目的机器MAC地址,而此时从ARP表里面没有查询到目的ip地址对应的MAC地址,因此主机会暂存这个ip数据包,由于主机刚连接到这个局域网时或者重启之后,是不知道目的方的MAC地址的,如果要向目的机器发送一个ip包,就需要先知道目的机器的MAC地址,于是需要一种方法,根据目的主机的IP地址,获得其MAC地址,这个方法就是通过发送一个叫做arp请求的数据包(arp数据包也是被包含在以太网帧中的,发送时,帧头部中的目的mac地址填写为0xffffffff,表示在本地局域网上广播,这样属于该局域网的所有机器接收到一个广播帧的时候都会向协议栈递交这个帧中的数据包,这里是arp数据包)广播到该局域网中,而仅当某台机器的IP地址与该arp请求中的要询问的ip地址相同时,那台机器就才会向发送方返回一个arp回应数据包,这个回应包中就包含了先前要询问的机器的IP地址 + MAC地址,本地主机接收到这个回应的arp数据包后,会提取ip地址和mac地址,记录到一个叫做arp的表的表项中,这样就把目的主机的ip地址和mac地址对应关系记录下来了,随即找到先前由于缺少目的mac地址而暂存的数据包,并用以太网帧封装它,用该arp表项中的mac地址来填充帧头部中的MAC地址域,当这个帧被发送到局域网中之后,目标机器网卡接收到这个帧之后,判断该MAC地址和自己的MAC地址相同,就会向上层协议栈递交这个帧中的数据包,从而数据得以交付,而其他主机检测到MAC地址与本机不同,会把这个帧丢弃。这就是ARP协议要做的事情。
另外,当发送主机和目的主机不在同一个局域网中时,即便知道对方的MAC地址,两者也不能直接通信,必须经过路由器进行ip层的转发才可以,因为路由器把这个局域网进行了链路层上的隔离(除非进行网络层次的显示转发,否则路由器不会把一个局域网中的以太网帧自动的转发到另一个局域网或者外网中去,如果可以自动转发,可以想象有多可怕,无效的广播帧可能像洪水一样淹没整个网络,使得网络瘫痪,这也就是路由器的基本功能之一,隔离网络),所以此时,发送主机会把一个网关ip地址作为目的ip地址(这个是ip层决定的),那么通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)。
在点对点链路中不使用ARP,实际上在点对点网络中也不使用MAC地址,因为在此类网络中分别已经获取了对端的IP地址。
arp 基本功能的更多相关文章
- 密码分析:使用 Ettercap 和 它的 ARP 毒化功能来嗅探流量
vim /etc/etterconf 将 ec_uid 和 ec_gid 改为 0 需要取消下面的 IPTABLES 行的注释.它在靠近文件末尾的 LINUX 一节 ettercap -G Shift ...
- 【转】宽带路由器应用(三)—ARP欺骗防护功能的使用
在局域网中,通信前必须通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址).ARP协议对网络安全具有重要的意义.通过伪造IP地址和MAC地址实现ARP欺骗,对网络的正常传输和安全都是一个很 ...
- 详述网络中ARP安全的综合功能
组网图形 ARP安全简介 ARP(Address Resolution Protocol)安全是针对ARP攻击的一种安全特性,它通过一系列对ARP表项学习和ARP报文处理的限制.检查等措施来保证网络设 ...
- 转载《遭受arp攻击怎么办》
ARP(Address Resolution Protocol,地址解析协议)协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行.ARP攻击仅能在以太网(局 域网如: ...
- 1-12 ARP协议
ARP(Address Resolution Protocol)地址解析协议,负责将相应的IP地址解析成MAC地址. 在局域网中,网络中实际传输的是‘帧’,帧里面包含了目的主机的MAC.ARP就是用来 ...
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 第四章:ARP 地址解析协议
网络接口有一个硬件地址,48bit的值,在硬件层次上进行的数据帧交换必须有正确的接口地址.tcp/ip有自己的地址,32bit的IP地址. 但是知道主机的IP地址并不能让内核发送一帧数据给主机.内核( ...
- 浅谈局域网ARP攻击的危害及防范方法(图)
浅谈局域网ARP攻击的危害及防范方法(图) 作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-03-03 自 去年5月份开始出现的校内局域网频繁掉线等问题,对正常的教育教 ...
- 网络地址到物理地址的映射(ARP)
网络的互连首先要解决的问题就是网络地址到物理地址的映射,以太网接口分配的是一个48位的物理地址,而IP地址却只有32位,因此无法将它编码到IP地址中.有人建议可以构建一个中央数据库存储所有网络中的网络 ...
- 网络层和arp协议
1:arp协议功能:获取mac地址 ----------------------在同一个局域网:发送端mac 接收端mac(FF:FF:FF:FF:FF:FF:FF) 源IP 目标IP 数据 - ...
随机推荐
- Vue 解决因网络延时 页面中的{{XXX}}模板直接展示在用户面前,配合v-cloak指令
v-cloak指令: 1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉 v-cloak属性 2.使用 CSS配合v-cloak可以解决网速慢时,页面展示出{{XXX}}模板的问题 案例: ...
- 记SpringBoot中 Consider defining a bean of type 'com.xxx.classname' in your configuration 错误的解决办法
一.背景 笔者项目中.有两个子模块代码.需要分别在不同的包名中运行,假设一个包名为 cn.com.a,另一个包名为cn.com.b.由于启动类只加了@SpringBootApplication注解,所 ...
- [BOM]实现页面loading效果,在图片资源加载完之前显示loading
使用到jquery. 判断整个页面是否加载完: // 这是根据js判断,页面加载完毕就显示 window.onload = function () { // console.log('load com ...
- 在项目中配置proxy 解决调试过程中的跨域问题
- Node Sass version 7.0.1 is incompatible with ^4.0.0 node-sass 问题
执行旧版项目安装依赖时报错 卸载 npm uninstall node-sass sass-loader 安装(need Python27) npm install sass-loader@7.3.1 ...
- vue中key
使用key维护列表的状态 当列表的数据变化时,默认情况下,vue尽可能的服用已存在的DOM元素,从而提升渲染的性能.但这种默认的性能优化策略,会导致由状态的列表无法被正确更新. key的使用注意事项: ...
- (jmeter笔记)模拟用户各种场景压测
插件:standard set 1.jp@gc - Ultimate Thread Group(波浪式压测,最终线程组) Start Threads Count :设置启用并发数 Initial De ...
- c语言中位运算符及用法 异或
a&b: 00000000 00000000 a&b=0x0 a|b : 00000000 01011111 a|b=0x5f a^b : 00000000 01011111 ...
- ssh 解决远程桌面端口问题
昨天做好今天编辑 先上图 后编辑 需求:因操作失误光猫nat只剩一个可访问命令行的7000端口 前提:7000端口映射内网的22端口,可以登录ssh 解决思路:先vnc安装, gui界面安装 , 然 ...
- win10查看笔记本电池性能
要生成电池报告,可以按Windows + R,窗口中输入 cmd 回车. 在提示符处输入: Powercfg /batteryreport,回车. 就可以在C盘看到性能报告文件.