TCP-IP详解卷1-04:ARP:地址解析协议(Address Resolution Protocol)

TCP-IP详解卷1-04:ARP:地址解析协议(Address Resolution Protocol)

一:基本功能
    1: 地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
        在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。
        在TCP/IP协议栈中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。
        于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。
    2: ARP代理(ARP Proxy)
        当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。
        所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。
        于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。

二:ARP分组格式:以太网首部(14B)+ ARP请求/应答(28B)
    1: 以太网首部(14B):以太网目的地址(6B)+以太网源地址(6B)+帧类型(2B)
        以太网目的地址:当目的地址位全1时,是特殊地址,表示广播地址
        以太网源地址:
        帧类型:0x0806
    2: ARP请求/应答(28B):硬件类型(2B)+协议类型(2B)+硬件地址长度(1B)+协议地址长度(1B)+OP(2B)+发送端以太网地址(6B)+发送端IP地址(4B)+目的以太网地址(6B)+目的IP地址(4B)
        硬件类型(硬件地址类型):1表示以太网地址
        协议类型(协议地址类型):0x0800表示IP地址
        硬件地址长度:对于以太网上IP地址的ARP请求或应答来说,值为6
        协议地址长度:对于以太网上IP地址的ARP请求或应答来说,值为4
        OP:只是四种操作类型,1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示RARP应答。
        发送端以太网地址:
        发送端IP地址:
        目的以太网地址:
        目的IP地址:

三:工作原理
    以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。
    当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。
    如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;
    如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是"主机A的MAC地址".请问IP地址为192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。
    同时A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己的IP和MAC地址一起告诉了B),下次A再向主机B或者B向A发送信息时,直接从各自的ARP缓存表里查找就可以了。ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值