写在最前面欢迎回来嘿小朋友又见面啦我们之前一起学习了链路层、MAC 地址、以太网、交换机知道了好多神奇的东西我们也提到过一个超级重要的协议——ARP但是你有没有想过ARP 到底是什么这三个字母好奇怪它为什么这么重要没有它整个网络都没法工作这是真的吗今天我们就要揭开ARP 协议的神秘面纱讲完后你会发现“哇原来 ARP 这么聪明它就是网络的’翻译官’”听到ARP 协议这个词你可能会想听起来好高深我能听懂吗别担心超级简单让我们一起出发第一章先来想想一个有趣的问题在讲 ARP 之前让我先问你一个超级有趣的问题你怎么找到学校里一个只知道名字的同学想象一下这个场景老师告诉你去找小明把这本书给他但是你不知道小明长什么样怎么办呢方法一满学校乱找你到处问“你是小明吗你是小明吗”效率太低方法二到广播室广播“全校注意请小明同学到操场来” 全校都听到了只有真正的小明会回应“我是小明我来了”你看到了真正的小明记住了他的样子然后把书给他下次再找他就不用广播了直接认人ARP 就是这样的ARP 就是网络里的广播找人机制当一台设备只知道对方的 IP 地址名字但不知道 MAC 地址长什么样时它就用 ARPARP 会全网广播“谁是 192.168.1.1请告诉我你的 MAC 地址” 真正的目标设备就会回应这样就找到了是不是超级聪明让我们一起深入了解这个伟大的协议第二章ARP 是什么让我们正式认识一下 ARPARP 的全名ARP的全名是Address Resolution Protocol翻译成中文是“地址解析协议”听起来很高深其实超级简单就是把一种地址翻译成另一种地址ARP 翻译什么ARP 把IP 地址翻译成MAC 地址IP 地址像名字192.168.1.1。MAC 地址像样子AA:BB:CC:DD:EE:FF。为什么需要翻译因为网络层只知道 IP 地址但链路层只认 MAC 地址中间需要一个翻译官这个翻译官就是 ARP为什么需要 ARP让我用一个生动的比喻来解释想象你要给同学小明送一本书你只知道他叫小明IP 地址但不知道他长什么样MAC 地址如果你不知道他长什么样怎么把书递给他呢你得先弄清楚他是哪个这就需要 ARP 来帮忙ARP 会全班广播“谁是小明” 小明举手“我是小明” 你看到了他记住了他的样子然后把书递给他没有 ARP你就无法把书送到小明手里同样没有 ARP数据就无法送到目标设备第三章再回顾 IP 地址和 MAC 地址要理解 ARP我们要再回顾一下IP 地址和 MAC 地址的区别这很重要IP 地址可变的住址IP 地址像你的住址可以改变比如 192.168.1.5你今天住在北京IP 是 192.168.1.5明天搬到上海IP 可能变成 10.0.0.18地址变了IP 地址由网络分配是软件层面的MAC 地址不变的身份证MAC 地址像你的身份证号永远不变比如 AA:BB:CC:DD:EE:FF你不管搬到哪里身份证号都不变这是你出生时就有的MAC 地址在设备出厂时确定是硬件层面的全世界独一无二为什么两种地址都需要IP 地址用来导航告诉数据要去哪个网络像地址MAC 地址用来精准定位告诉数据送给具体哪个设备像身份证两者配合工作缺一不可网络通信需要两者发送数据时需要同时知道目标的 IP 和 MACIP 地址告诉网络层这个数据要发到哪个网络的哪个设备MAC 地址告诉链路层这一段路要送给哪个邻居但是通常我们只知道目标的 IP比如 ping 192.168.1.1不知道 MAC怎么办这就需要 ARP 来翻译第四章ARP 是怎么工作的让我们看看 ARP 的详细工作过程场景电脑要发数据给路由器假设你的电脑IP 是 192.168.1.5要发数据给路由器IP 是 192.168.1.1。但是电脑不知道路由器的 MAC 地址怎么办第一步检查 ARP 缓存电脑先检查自己的ARP 缓存这是电脑里记录 IP 和 MAC 对应关系的一张表如果之前问过路由器缓存里就有记录直接用如果没有记录就要发广播了第二步发送 ARP 请求广播电脑向全网广播一个ARP 请求“大家好我是 192.168.1.5IP我的 MAC 是 11:22:33:44:55:66。我想找 192.168.1.1请它告诉我它的 MAC 地址”这个广播所有连接在同一网络的设备都能收到第三步所有设备都收到广播网络里的每台设备都收到了这个广播它们都看一下啊这个广播是问谁的不是问我的设备忽略什么都不做真正的目标路由器啊是问我的赶紧回应第四步目标设备回应单播路由器回应一个ARP 应答“你好我就是 192.168.1.1我的 MAC 地址是 AA:BB:CC:DD:EE:FF”注意这次不是广播而是单独发给电脑因为路由器从广播中知道了电脑的 MAC11:22:33:44:55:66直接回应给电脑第五步记录到 ARP 缓存电脑收到回应它记录到自己的 ARP 缓存IP 地址MAC 地址192.168.1.1AA:BB:CC:DD:EE:FF记下来了下次再要找路由器直接查表就行不用再广播第六步开始发送数据现在电脑知道了路由器的 MAC可以正式发送数据了数据被打包成以太网帧贴上路由器的 MAC 地址通过链路层送出去任务完成是不是超级清楚整个过程只用几毫秒但是完成了一项伟大的工作第五章ARP 缓存——电脑的通讯录让我们详细看看ARP 缓存ARP 缓存是什么ARP 缓存就是设备里记录 IP 和 MAC 对应关系的一张表像电话通讯录每台设备都有自己的 ARP 缓存每次解析了 IP 和 MAC 的关系就记到缓存里下次直接查表ARP 缓存长什么样IP 地址MAC 地址类型192.168.1.1AA:BB:CC:DD:EE:FF动态192.168.1.511:22:33:44:55:66动态192.168.1.899:88:77:66:55:44动态简单清晰一查就知道对应关系为什么要有缓存如果每次发数据都要广播多麻烦而且广播会占用大量带宽有了缓存只在第一次广播之后直接查表超级高效缓存会过期ARP 缓存里的记录不是永久的会自动过期为什么因为设备可能换了比如有人换了新电脑MAC 变了如果缓存永远不更新就会出错所以 ARP 缓存通常每几分钟过期一次过期了就要重新广播查询保证信息总是最新的怎么查看自己电脑的 ARP 缓存你可以在电脑上看到 ARP 缓存Windows打开命令提示符输入arp -a按回车Mac/Linux打开终端输入arp -a按回车就能看到电脑里所有的 ARP 缓存记录是不是超级好玩回家可以试试第六章ARP 的工作场景ARP 在很多场景都会用到让我们看看场景一电脑访问互联网你的电脑要访问百度一个外网 IP怎么办第一步电脑发现目标 IP不在本地网络需要通过路由器转发第二步电脑要把数据先送到路由器但是不知道路由器的 MAC第三步用 ARP 解析路由器的 MAC第四步数据送到路由器继续往外送场景二电脑访问同网络的设备你要复制文件到另一台电脑IP 是 192.168.1.10怎么办第一步电脑发现目标 IP在本地网络可以直接送达第二步但是不知道目标电脑的 MAC第三步用 ARP 解析目标电脑的 MAC第四步数据直接送到目标电脑场景三手机连 WiFi你的手机连接家里 WiFi 后也会用 ARP手机要和路由器通信就需要知道路由器的 MAC用 ARP 解析每台设备第一次通信前都要先用 ARP这就是为什么 ARP 这么重要第七章ARP 的有趣故事让我们用一个有趣的故事来记住 ARP故事聪明的小翻译官小 ARP很久很久以前在数字王国里有一个聪明的小翻译官叫做**“小 ARP”**小 ARP 的工作数字王国里住着很多设备它们互相通信但是有一个问题网络层只知道 IP 地址名字链路层只认 MAC 地址身份证它们说着不同的语言没法直接沟通小 ARP 出现了它会两种语言专门做翻译一次翻译任务有一天电脑哥哥IP 是 192.168.1.5要给路由器姐姐IP 是 192.168.1.1寄一封信电脑哥哥找到小 ARP“小 ARP我只知道路由器姐姐的 IP不知道她的 MAC你能帮我吗”小 ARP拍拍胸脯“包在我身上”小 ARP 大喊一声小 ARP跑到广场中央大喊一声“全网注意全网注意谁的 IP 是 192.168.1.1请告诉我你的 MAC 地址”所有设备都听到了纷纷看一下是不是我电视不是我我是 192.168.1.10忽略手机不是我我是 192.168.1.8忽略路由器姐姐啊是问我赶紧回应路由器姐姐的回应路由器姐姐举手说“小 ARP我就是 192.168.1.1我的 MAC 是 AA:BB:CC:DD:EE:FF”小 ARP 听到了飞快记下来跑回电脑哥哥那里任务完成小 ARP告诉电脑哥哥“找到了路由器姐姐的 MAC 是 AA:BB:CC:DD:EE:FF”电脑哥哥超级开心“太谢谢你了小 ARP”然后电脑哥哥写好信贴上路由器姐姐的 MAC寄出去信顺利到达小 ARP 的记忆小 ARP特别聪明它把这次翻译记到自己的小本本上ARP 缓存下次电脑哥哥再寄信给路由器姐姐不用再广播直接从小本本查超级高效但是小 ARP每隔一段时间会清理小本本为什么怕信息过时万一路由器姐姐换新身份证了老信息就不对了这就是小 ARP 的故事——那个默默工作的翻译官第八章ARP 的特殊情况ARP 还有一些特殊的工作方式让我们看看特殊情况一免费 ARP有时候设备会自己发广播告诉大家自己的 IP 和 MAC这叫**“免费 ARP”**Gratuitous ARP为什么要这样两个目的目的一检查有没有人和自己 IP 冲突如果有人响应说明 IP 重复了需要换一个目的二告诉大家自己的 MAC让别人更新缓存比如换了新网卡就发免费 ARP特殊情况二ARP 代理有时候一台设备代替另一台设备回应 ARP这叫**“ARP 代理”**比如路由器经常代替远程设备回应 ARP让本地设备以为目标就在本地实际上路由器在中间转发特殊情况三反向 ARPRARPARP 是通过 IP 查 MAC。反向 ARPRARP是通过 MAC 查 IP这个比较少用主要用在一些老旧的无盘工作站它只知道自己的 MAC通过 RARP 获取 IP现在基本被 DHCP 取代了第九章ARP 的小问题ARP 很聪明但也有一些小问题让我们看看问题一ARP 欺骗ARP 的工作基于信任如果有坏人冒充别的设备回应 ARP就能骗取数据这叫“ARP 欺骗”ARP Spoofing比如坏人冒充路由器回应 ARP把自己的 MAC伪装成路由器的这样所有发给路由器的数据都先经过坏人数据就被偷看了怎么防止 ARP 欺骗方法一静态 ARP 绑定手动设置 IP 和 MAC 的对应关系不接受动态更新方法二使用 ARP 防火墙专门检测 ARP 欺骗方法三加密通信即使数据被偷也看不懂比如 HTTPS不过别担心现在的家庭网络通常很安全主要是公共 WiFi需要小心问题二广播太多如果网络里设备特别多ARP 广播会占用大量带宽为了解决这个问题可以减小广播域用 VLAN优化缓存策略让 ARP 广播少一些第十章让我们回顾一下ARP 协议到底是做什么的我们用一句话总结ARP 就是网络世界里的地址翻译官它把 IP 地址翻译成 MAC 地址让网络层和链路层能完美配合是网络通信不可缺少的协议ARP 的核心核心功能把 IP 地址翻译成 MAC 地址。工作方式广播请求单播回应。记忆机制ARP 缓存避免重复查询。更新机制定期过期保证信息最新。ARP 的工作流程 第一步检查 ARP 缓存。 第二步发送 ARP 请求广播。 第三步目标设备回应单播。 第四步记录到 ARP 缓存。 第五步开始正常通信。IP 和 MAC 的对比IP 地址可变的住址软件层面。MAC 地址不变的身份证硬件层面。关系ARP 是它们之间的桥梁。ARP 的特殊情况⭐免费 ARP自己发广播告知大家。⭐ARP 代理代替别人回应。⭐反向 ARP通过 MAC 查 IP。第十一章今天的智慧亲爱的小朋友让我们一起总结一下今天学到的智慧智慧一沟通需要翻译不同的语言之间需要翻译这告诉我们学好多种语言能和不同的人沟通世界因沟通而精彩智慧二记忆很重要ARP 有缓存记住经常用的信息这告诉我们好记性是宝把常用的知识记在脑子里做事就快但是也要及时更新智慧三广播找人很高效ARP通过广播找人这告诉我们有时候大声问比一个个找快但是要分场合该广播时广播该单播时单播智慧四信任也要小心ARP 基于信任容易被骗这告诉我们信任是宝贵的但是也要警惕遇到陌生人要谨慎不要轻易相信智慧五默默工作的伟大ARP每天默默工作很少有人注意但是没有它网络就崩溃这告诉我们做好基础工作很重要平凡的事做好了就不平凡最后的话亲爱的小朋友下次当你用电脑上网用手机刷视频用平板看动画……请记得有一个默默工作的小 ARP它飞速翻译地址它让数据能找到目标它让网络流畅运转它就是 ARP 协议它每天工作几百万次它广播、回应、记忆它让你能享受互联网每一次你打开网页每一次你发送消息每一次你看到精彩内容背后都有 ARP 在默默翻译“ARP 是数字世界的’地址翻译官’它让 IP 和 MAC 能完美配合。”️“它广播询问、记忆缓存默默支撑着每一次网络通信。”“理解了 ARP你就理解了’网络通信是如何精准送达的’。”✨那个让你能访问任何网站的便利那个让你能和朋友视频通话的服务那个让你能享受高速上网的体验它们都依靠ARP 的默默翻译都是让信息精准送达这个伟大梦想的完美实现。下次当你享受网络时请想想ARP 正在飞速工作它正在广播询问 MAC 地址它正在记录到缓存它正在让你的数据精准送达这就是 ARP 的魔法✨“在数字世界里ARP 是无声的翻译官。”️“它让每一份数据都能找到正确的接收者。”恭喜你又毕业了 下次再见时我们一起去探索更多有趣的网络秘密️✨