ARP
来源:互联网 发布:java开发人员平均年龄 编辑:程序博客网 时间:2024/06/06 02:39
ARP地址解析协议
ARP(Address Resolution Protocol):
为已知的IP地址确定网络接口层的
MAC地址
1、源主机A要向目的主机B发送数据,为什么主机A除知道目的主机B的IP地
址外,源主机A还必须要知道目的主机B的MAC地址?
— IP地址具有全网范围内的寻址能力,主机A和B可能分别处在不同网络,
主机A要访问主机B首先要知道主机B的IP地址,不然找不到主机B所在
的网络;
— 在现行寻址机制中,主机的以太网网卡只能识别MAC地址,而不能识别
IP地址,若数据帧中不指明主机B的MAC 地址,主机B的网卡不能识别
该帧是发给自己的,因此主机A仅知道主机B的IP地址还不够,还必须知
道主机B的MAC地址,才能完成对主机B的访问;网络之间是用IP地址寻
址,网络之内(同一物理网段或称IP子网)是用MAC地址寻址;
— 且尽管MAC地址和IP地址一样都是在全网范围内唯一定义的,但MAC的
寻址能力仅局限在一个物理网段(一个IP子网)中。
2、主机A如何通过主机B的IP地址解析得到主机B的MAC地址?
ARP(Address Resolution Protocol)主要任务是根据IP地址解析对应的
MAC地址。
(1)源主机A与目的主机B位于同一物理网段
— 当主机A不知道主机B的MAC地址时,发送ARP request 广播包;
— 主机B 收到 ARP request 广播包后,发现目的IP地址是自己,于是将
自己的MAC地址通过ARP reply 包送回主机A,同时主机B将广播包
中主机A的IP地址和MAC地址存入本地的ARP cache中,以备后用;
网上其他主机不作响应;
— 主机A收到ARP reply包后将包中主机B的IP地址和MAC地址存入本
地ARP cache中,并开始向主机B发送数据。
(2)源主机A与目的主机B位于不同物理网段
— 当主机A不知道主机B的MAC地址时,发送ARP request 广播包
(第二 层广播帧);
— 路由器能收到此广播包后,路由器能够根据主机A和B的IP地址
可以知道主机A和主机B不在同一IP子网(或同一广播域),且
主机B不可能收到ARP request 广播包(广播包不跨路由器),
因此路由器则以ARP代理身份将自己的MAC地址发送给主机A;
—主机A收到来自路由器的ARP reply包后,将包中主机B的IP地址和
路由器的MAC地址存入本地ARP cache中,以后主机A发往主机B
的数据帧用的是主机B的IP地址和路由器的MAC地址,数据帧首
先送往路由器,然后由路由器转发。
3、 当主机A不知道主机B的MAC地址时是通过发送ARP request广播
包获取主机B的MAC地址,然后再向主机B发送数据帧,为什么
不可直接用广播的方式将数据帧发送给主机B?
— 在网中每次都以广播方式传送数据帧是低效的,因网中每一台
主机都要花费一定的代价去处理广播包,所以不直接用广播方式
发送数据帧。
— 为提高地址解析的效率,每一台主机都必须在本地建立一张ARP
cache表,记录本地子网中所有主机包括路由器的IP地址和MAC
地址的对应关系。
4、主机本地ARP cache表的建立和维护:
— 通过发送和接收ARP request包获取对方的IP和MAC地址;
— 接收网上任一ARP request 广播包,取得发送主机的IP和MAC地址;
— 为ARP cache中每一表项设定生存时间,以防某台主机的IP地址
或MAC地址发生变更(动态更新)。
5、ARP 解析过程
— 主机A向主机B发送数据前,根据主机B的IP地址首先查找本地的
ARP cache表,若查到则向主机B发送数据;
— 若主机A在本地没查到主机B的MAC地址,则发ARP request广播
包,从ARP reply 包中获取主机B的IP和MAC地址并存入本地ARP
cache表中,然后才向主机B发送数据。
ARP地址解析和数据包在网间的传递
— 跨路由器后主机A不可能知道主机B的MAC地址;
— 数据包传送过程中,不仅仅是主机A,所经过的路由器都要进行地址解析;
— 数据包传送过程中源、目IP地址始终不变,而源、目MAC地址逐段变化
0 0
- ARP
- ARP
- ARP
- ARP
- ARP
- ARP
- ARP
- arp
- arp
- ARP
- ARP
- ARP
- ARP
- ARP
- ARP
- ARP
- arp
- ARP
- java中Cloneable与Serializable接口
- 计算机网络在电子商务中的应用研究
- powerDesigner学习一_概念模型
- Oracle Instance Client + PL/SQL Developer远程访问数据库(Windows)
- WEBAPP开发技巧总结
- ARP
- 用Android UEventObserver监听内核event
- 数据库更新操作方法一
- 网页中出现莫名其妙的空隙引号
- cocos2dx3.0正式版 屏幕分辨率自适应
- jdk自带访问https和apache httpclient访问htts的SLL报错处理
- Android浏览图片,点击放大至全屏效果
- 求三元组的最值问题
- UVa 10004 - Bicoloring