大家好
欢迎走进网络编程的课堂
今天我们来学习“ARP协议的原理及应用”
可以毫不夸张的讲
ARP协议是逻辑网络与物理网络之间的桥梁
直接关系到我们能否稳定
安全的使用网络
比如：在无线路由器走进千家万户的今天
由Wifi万能钥匙等软件带来的蹭网
网速不稳定等问题
同样需要ARP协议的支持
网络世界丰富多彩
但是黑客的攻击让我们头疼不已
针对黑客设备的定位
同样需要ARP协议的支持
那么到底什么是ARP协议呢
ARP协议工作在TCP/IP模型的网络接口层
有别于其他逻辑协议
ARP协议与物理网卡关系最为紧密
实现了逻辑地址到物理地址的转换
这里的物理地址又称为MAC地址
用于识别不同的网卡
有别于域名
IP等逻辑地址
这个地址一般固化在网卡的可编程只读存储器（EEPROM）中
一般的用户操作是不能轻易修改MAC地址的
图中是一块普联的千兆网卡
采用93C46作为EEPROM，用于存放烧写的MAC地址。
MAC地址由48个bit的0,1构成
以8位为一组
分为6组
其中前三组为组织唯一标识符（OUI）
用于区分网卡生产厂商
由IEEE权威机构管理
后三组为网络接口标识符
由厂商自行分配
通过这样的划分
可以明确的标识出不同网卡的厂商信息
例如
如图所示的是思科出厂网卡的地址
为了表示方便
MAC地址通常采用16进制的形式表示
不同操作系统的表现形式不同
例如windows中采用16进制加短线表示
Linux、android等则中采用十六进制加冒号形式表示
至此
我们明确了网卡由MAC地址唯一标识
那么具有IP地址的数据包到达网络接口层后
该如何明确所使用的网卡呢
这就涉及到了我们今天学习的难点问题
ARP协议的基本原理
表示为函数F，
表示为函数F
这个函数具有两个参数
一个是IP地址
另一个是上下文信息集合
主要描述当前的时间
网络拓扑结构等
F的结果为MAC地址
这个函数关系在计算机中表现为包含IP与MAC等相关信息的列表
即ARP列表
计算机中ARP协议工作的核心任务就是高效、准确的构建这个列表
这个构建过程与我们日常生活中的一项常见活动十分相似
这个活动就是送快递
实际生活中的快递员在遇到地址定位不明确的运单时
将通过建立运单地址与实际收件人的物理联系
完成派件工作
而互联网世界的ARP协议
则通过建立IP地址与MAC地址的联系确认数据传输的具体网卡
完成信息交互
如同网络中的快递员
那么
这位网络中的快递员与实际生活中的快递员有哪些相似之处呢
在实际生活中
当快递员遇到定位不明确的快递单时
首先
首先将借助物业、街道提前登记的住户静态信息，进行定位
这个方法就对应了ARP列表建立的第一种方式
静态映射
将IP与MAC地址的对应关系提前输入到计算机中
通信时
即用即查
静态映射可以通过输入arp -s的指令进行创建
如图所示
这种方式具有简单
直观
可控性强的优点
常用于固定功能的地址映射构建或者用于网络管控
但是这个方式局限性较大
在面对多变的网络环境时就略显不足了
有没有其他方式呢
继续回到实际生活中
快递员在静态查找失败的情况下
并不会马上放弃
他会在快递单的地址范围内，进行挨家挨户的询问
实时定位
这种方法就对应了ARP列表建立的第二种方式
动态映射
在通信活动进行的过程中
对局域网中的计算机逐台询问
直到确认映射关系
这个过程是计算机网络协议栈的自主行为
无法通过人为方式创建与控制
仅可以通过ARP -a的指令查看现有的动态映射关系
这个方式具有灵活、高效的优势
常用于动态网络环境中的临时通信关系的构建
但是也带来了不安全的问题
那么
动态映射中
计算机网络协议栈的具体工作过程是怎样的呢
这个过程又称为ARP请求应答机制 请求应答机制
以如图所示局域网为例
该网络中计算机A将与计算机D进行映射动态构建
首先
A将自身的IP地址
MAC地址及D的IP地址打包封装
产生ARP请求数据包
接着逐个发送给该局域网的每一台计算机
计算机B、C通过地址判定后，忽略请求数据包
计算机D接到请求数据包后
第一步将A的地址信息写入自己的ARP列表中
第二步
封装自己的IP与MAC地址，产生ARP应答数据包，反馈给A
最后A从应答数据中获得D的MAC地址
完成动态映射
实际上
日常生活中的无线路由器多采用ARP动态映射的方式进行管理
提升连接的便利程度
但是也为非法用户提供了蹭网的机会
结合ARP协议的工作原理
如果，我们将该计算机的ARP映射关系改为静态映射
进一步控制该映射的上网行为
例如限制连接
限制速度
强制下线等
就可以从根源上杜绝蹭网
提升正常用户的网络体验
在信息战成为国力竞争核心的今天
针对敌方黑客的反制至关重要
ARP协议可以通过分析攻击时产生的映射关系
MAC地址等，获取敌方硬件设备核心数据
进而为反制战术的制定提供关键信息
ARP协议应用范围十分广泛
从局域网管理工具
各类防火墙等安全软件
甚至黑客工具中都能看到ARP协议的身影
下面我们来思考一个问题
前面的讲解中
ARP的请求应答都在同一个局域网中
那么分别处于两个局域网的主机在通信时需要跨越路由器
这种环境下，该如何进行ARP的请求与应答呢
这个问题涉及到代理ARP机制
请大家阅读
扩展资料
完成学习
最后
我们进行一下小结
本节课学习了MAC地址的结构和作用
重点讲解了ARP协议的工作原理
通过动静结合的方式，为网络数据传输
完成了重要的映射构建工作
同学们
世界上的网卡生产厂商众多
因此网卡形态各异
MAC地址统一了不同厂商网卡的参数信息描述方式
让我们在使用网卡时，无需苦恼于网卡的多样性
同时尊重了不同厂商的个性化
这充分体现了网络世界的“求同存异”
我们对ARP协议内涵的理解来源于简单的日常生活
同时将ARP协议的抽象理论回归到具体生活问题的解决中
这正是理论技术从生活中来到生活中去的体现
也是网络世界飞速发展的大智慧
今天的课就上到这
谢谢大家