看完后,搞懂ARP的工作原理,其实并不难!

【原创作品,禁止转载,如要转载,请私信公众号engineer-along】

有读者在新浪微博私信阿龙,关于ARP的困惑:

看完后,搞懂ARP的工作原理,其实并不难!_第1张图片


看完后,搞懂ARP的工作原理,其实并不难!_第2张图片



本期,我就来解答一下关于ARP的工作原理吧! 

(今后,各位读者,要是有遇到什么困惑,或者有什么建议,也欢迎来私信,虽然我现在好久没搞路由交换了,但只要阿龙会的,还是会尽力帮大家解答的。别忘了,当初我们的初衷就是:是为了集结所有热爱网络技术的爱好者,大家一起交流、分享知识、分享你我的见解、一起成长。交流的方式有很多,比如大家一起在文章下面进行评论,大家看了,就多收获了解决问题的一种思路、思想。)


本篇适合初学者、在校大学生阅读,本公众号也存在许多技术很厉害,甚至比阿龙强得多的读者,看到本篇,您就饶过阿龙了,就飘过好了。或者当初复习一下也挺好的。



思路

1、思考ARP到底是干嘛的? 为什么要有它?why?  

2、掌握ARP的工作原理。



技术人,要掌握一种技术,绝对离不开以上两点基本思路,带着这两个思路去学习新技术,你绝对是不可能学不会的。再笨,你也会学得很深刻的。甚至,你还可以有更多的思路,比如,可不可以没有它? 有它?跟没有它的情况又是什么样的?等等。


1、ARP到底是干嘛的?

我们都知道局域网里面通信,都是靠MAC地址来通信的。ARP简单说,就是用来把IP地址转换成MAC地址,就是某个去往目的IP地址翻译成MAC地址。

交换机的工作原理就是基于源MAC地址学习,基于目的MAC地址转发的。大家都知道网络的参考模型,我们在电脑上要发送消息时,电脑内部的处理机制是先从上层开始一层一层往下封装的。如图:

看完后,搞懂ARP的工作原理,其实并不难!_第3张图片
现在,有了这张图,就更容易理解ARP的作用了。

电脑从上层往下封装,到了二层,要封装帧头部时,就需要把目的mac地址封装上,形成完整的二层头部后,就可以发送出去了。


现在的问题就是,电脑如何知道对方的MAC地址?


看完后,搞懂ARP的工作原理,其实并不难!_第4张图片
计算机A要发送消息,给计算机E。他们是第一次通信。


当用户计算机A在上使用QQ聊天工具,输入:你好,约吗?

回车,计算机A就先从上层往下封装头部。如IP头部就将

目的IP:1.1.1.2   , 源IP就是:1.1.1.1 等信息进行封装,到了二层,就需要将目的MAC地址,源MAC地址进行封装。计算机A肯定知道自己网卡的mac地址,为1111.1111.1111.1111。但是目的mac地址(计算机E的mac地址)就不知道了,因为他们是第一次通信,哪里知道啊~  要是知道,就上天了!

于是,这时候,计算机A就执行ARP程序,发送一个ARP请求报文的广播包:

该数据包的关键字段如下:




二层:

目的MAC地址:ffff.ffff.ffff.ffff

源mac地址:1111.1111.1111.1111

类型:0x0806


arp的关键内容如下:

source mac:1111.1111.1111.1111.1111

source IP: 1.1.1.1

target mac:ffff.ffff.ffff.ffff (因为第一次通信,不知道对方的mac地址)

target IP:1.1.1.2




这样,交换机收到这个报文,看到目的mac地址是全F就进广播!


阿龙这里要提醒初学者的是,因为交换机是二层设备,只会拆包、解析到二层信息而已,不会进行更深入的解析,如网络层信息。换句话说,就是交换机根本不知道里面是什么数据,只知道这个数据包的源、目mac地址而已。


这样,所有的计算机收到这个广播包,会进行更深入的解析,看到里面的target IP 是1.1.1.2,  与自己的IP地址进行对比,发现不一样,就丢弃。发现一样,就回应ARP报文。单播回应喔!


ARP的响应报文里的关键字段如下,



二层:

目的MAC地址:1111.1111.1111.1111

源mac地址:2222.2222.2222.2222

类型:0x0806


arp的关键内容如下:

source mac:2222.2222.2222.2222

source IP: 1.1.1.1

target mac:1111.1111.1111.1111 (从请求包里得知A的mac地址,于是单播)

target IP:1.1.1.1



这样,计算机A收到这个报文后,就将计算机E的mac地址记录下来,存在计算机A的一个数据库,叫做ARP缓存表。下次通信时,如果缓存未超时,就可以直接使用了。如果超时了,就再次进行arp请求广播了。


如果你还不信的话,那龙哥就亲自动手做实验吧!  

看完后,搞懂ARP的工作原理,其实并不难!_第5张图片


计算机A的信息:

看完后,搞懂ARP的工作原理,其实并不难!_第6张图片


计算机E的信息:

看完后,搞懂ARP的工作原理,其实并不难!_第7张图片



用计算机A ping 计算机E来模拟A发送消息给计算机E,并且抓包:

看完后,搞懂ARP的工作原理,其实并不难!_第8张图片

抓包就会发现抓到了2个ARP的报文:

看完后,搞懂ARP的工作原理,其实并不难!_第9张图片
分别如下:

1、

看完后,搞懂ARP的工作原理,其实并不难!_第10张图片


2、

看完后,搞懂ARP的工作原理,其实并不难!_第11张图片

这时,你就可以在计算机A看到arp缓存表了:

看完后,搞懂ARP的工作原理,其实并不难!_第12张图片


不知道,那位同学明白了没? 如以上有讲错地方,欢迎大家在下方评论地方指出! 如您还有其他见解,也欢迎您在下方评论的地方进行参与。



感觉您的阅读! 祝您学习愉快!



看完后,搞懂ARP的工作原理,其实并不难!_第13张图片


你可能感兴趣的:(网络攻城狮阿龙,网络,局域网,新浪微博)