在我带过的班里,我都会让他们知道:在一个局域网内部,所有的设备通信,是需要MAC地址的。他们的通信是依靠MAC地址的。后来也给他们做过ARP欺骗的实验。事实证明,如果IP不变,而目标的MAC字段被我修改,数据是不能到达目标的。那么MAC地址和IP地址的关系又是怎么样的呢?
举个例子来说吧!
小张和小明两人不在同一个城市,有一天他们同时来到一家学校读书,他们之前并不认识,后来在学校的关系相处的很好。放暑假了,小张和小明互相留了家里的电话号码。小张约小明到时候去自己家玩儿。
看一下,小明最后是如何找到小张的家的。因为他们之前并不认识,而且居住在不同的城市,那么可以肯定,小明最初是不知道小张家的实际住址的。我们知道:现实生活中,我们要去一个人的家,必须得知道对方的家庭住址!那么小明是如何得知小张的家庭住址呢?
对!他有小张家的电话号码!他给小张打了个电话:“小张啊,我是小明,我想去你家玩儿,但是我不知道你家在哪里啊!”于是小张就告诉了小明自己的家庭住址。
这个过程在日常生活中是再熟悉不过的啦!!!
现在我们就和网络中的IP 地址和MAC地址来进行比较一下。
小张的家里的电话号码,是一串数字,它能不能标识小张家的位置呢?不能!
小张的家庭住址,是不是一个实际存在的物理位置呢?能不能标识小张家的位置呢?
我们能不能打一个电话就能到对方家里呢?——除非你在电话接通的时候,自己变成一串电信号,沿电话线传输过去。但是我们可以通过打这个号码来询问对方的实际住址。对吧!!通过对方的电话号码来找到对方实际的位置,然后就可以顺利的找到对方了。
而网络中的IP地址呢?是不是和电话号码很相像啊?因为它也是一个逻辑的地址。并不能标识一台主机真实的位置。
MAC地址呢?它是在网卡出厂时就烧录在网卡芯片上的,它是一个真实存在的,物理上的,它可以准确在一个局域网里标识出一台设备的位置。
我们打电话给对方,询问对方的实际住址这个过程其实就是网络中ARP的工作过程!在这个过程中,IP,MAC一个也不能少。如果电话号码给错了,你能联系到对方并问到一个准确的实际地址吗?如果电话是对的,但是对方不想让你来,给了你一个“假”地址,那么你能找到对方吗?答案都是否定的!!!
现在我们来看一下ARP的工作。
ARP——地址解析协议,工作在数据链路层。
当主机A要和主机B通信时,这时候假定A,B刚开机,或者ARP缓 存表是空的。既然谈到通信,那么一般来说,它们应该对数据完成一个封装和解封装的过程。其他的层次我们先不谈,只看数据链路层和网络层。在A这边,做为一 个数据的源,它在发送数据时,数据被封装到网络层,需要添加一个IP报头,里面有源和目标IP地址字段,源的IP和目标的IP都知道,那么是可以顺利的封 装的,但是封装好的包交给数据链路层,进行再一次封装时,问题发生了,因为在数据链路层,需要封装成帧,那么在帧的头部有源MAC和目标MAC字段,源MAC是它自己,当然知道,但是目标的MAC呢?没有!!!也就是说,没有实际的地址!!!那封装还能继续下去吗?那么通信难道要终止吗?
其实在封装之前,PC将会查看自己的ARP缓存表(我们可以通过手工查看start—run—cmd—arp-a)。如果缓存表中存在目标主机的MAC和IP信息,那么就可以顺利的成帧。如果没有的话,那么它将经历一次ARP的解析过程。它发出一个broadcast request(一个广播请求,请求对方的
ARP原理
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论
热点关注
相关文章
赞助商链接

