IP地址和硬件地址 ARP协议

强颜欢笑 提交于 2020-01-16 03:58:18

ip地址使用在网络层以上,是一个逻辑地址,物理地址是数据链路层和物理层使用的

在发送数据的时候,数据是从上层往下层发送的,通过tcp报文-》ip数据报-》mac数据帧

 

IP地址放在数据报的首部,硬件地址放在mac帧的首部,在里面有几点注意

1:在ip层抽象的互联网上只能看到ip数据报。

2:在局域网的链路层只能看到MAC帧

3:虽然ip数据报首部有目的ip地址,但是路由器只根据目的地址的ip网络号进行选者

4:ip层抽象的互联网层屏蔽了下面的复杂的细节,所以在网络层上我们只对统一的ip地址研究原地址和目的地址就可以了

 

 

ARP解析协议:

我们在进行通信的时候,需要知道相互的硬件地址,但是我们只知道源ip和目的ip,怎么才能进行相互通信呢,这就需要了ARP地址解析协议,通过arp可以通过ip找到对应的硬件地址,rarp逆地址解析协议可以通过硬件地址找到ip地址

 

ARP的原理就是在主机ARP高速缓存中存储着一个ip地址到硬件地址的映射表,每一个主机都有arp高速缓存,

当主机A向主机B发送ip数据报的时候,他先查看本地arp缓存是否有主机b的mac地址,如果有,则将硬件地址写入mac帧,并通过局域网将mac帧发送到硬件地址去,如果找不到,那么主机A自动运行ARP,通过下面的方法找到mac地址

(1)主机A在局域网发送一个广播ARP请求,说我的ip是什么,我的硬件是什么,我要找到ip多少的

(2)本局域网所有主机都能收到,发现不是针对自己的,就丢弃,如果主机B收到了,发现是在寻找自己,那么就收下这个ARP请求分组,并向主机A发送一个响应分组,并在这个ARP响应分组写入自己的硬件地址,说我的ip是什么,我的硬件地址是什么,注意请求分组是广播,响应分组是单播

(3)在这个过程中,主机A收到主机B的响应分组,把B的硬件地址写入自己的ARP高速缓冲中,主机B也将A的硬件地址写入自己的高速缓存中

(4)ARP把缓冲中的每一个映射地址都设置了一个生存时间,过了这个时间,就会删除,并重新发送一个广播获得mac地址。因为如果主机b的mac地址改变了,可能会发送给错误的mac主机

 

优点:如果不使用ARP高速缓冲,那么任何一个主机进行通信的时候,都需要发送一次广播,这样会使网络的通信量增加很大,但是他解决的是同一个局域网的主机和路由,不能跨路由器,如果跨的话,需要多次解析,(不断的通过各个路由器),

注意:这个过程是自动进行的,主机的用户对这种解析并不知道

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!