计算机网络(六) 网络层--硬件地址与ARP

从层次的角度看,物理地址时数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址。

IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。


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

虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址网络号进行路由选择。

在局域网的链路层,只能看见MAC帧。其MAC帧首部中的源地址和目的地址会发生变化。

尽管互连在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。


地址解析协议ARP

     作用:从网络层使用的IP地址解析出在数据链路层使用的硬件地址。

问题:IP地址有32位,而局域网的硬件地址是48位,所以两者不存在简单的映射关系。在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。更换网络适配器也会使主机的硬件地址改变。

解决方法:在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且该表经常动态更新(新增或超时删除)。ARP高速缓存中存放着本局域网上的各主机和路由器的IP地址到硬件地址的映射表。

注意:ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。

过程:

          1)当主机A在ARP高速缓存中找不到目的IP地址,ARP进程在本局域网上广播发送一个ARP请求分组。

          2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组(主要内容是表明“我的IP地址是什么,我的硬件地址是什么,我想知道IP地址是192.2.2.2的主机的硬件地址”)。

          3)主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并向主机A发送ARP响应分组(单播)。

          4)主机A收到主机B的响应分组后,在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间(例如 10~20分钟)。

从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。


问题:在数据链路层发送数据时需要硬件地址,ARP只解决同一个局域网上的主机的IP地址和硬件地址的映射,如何发送消息给不在同一个网络的主机?

传送ARP分组使用的是IP协议  所以其使用抽象的地址。解决不同网络上的主机通信问题必须要使用路由器,主机的路由表会指出下一跳(此时为一个路由器地址),路由器的路由表会选择路由并转发IP数据报(注意不会转发ARP分组)。当路由器找不到目的IP地址对应的硬件地址时,才会发送ARP分组更新ARP高速缓存。


因特网所有的分组转发都是基于目的主机所在的网络。(特例:特定主机路由、默认路由)

路由表最主要的信息:目的网络地址、下一跳地址

当路由器收到一个待转发的数据报,从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交数据链路层的网络接口软件。网络接口软件负责把下一跳路由器的IP地址转换成硬件地址(使用ARP),并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。

分组转发算法:

     1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。

     2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就是间接交付,执行3)

     3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行4)

     4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行5)

     5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行6)

     6)报告转发分组出错。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值