ARP协议简介

来源:互联网 发布:一个网络女歌手翻唱 编辑:程序博客网 时间:2024/06/06 07:52

ARP协议简介:

协议功能:地址解析协议(ARP),目3>2

当我们想访问一个主机的时候,通常是用它的IP地址,但是IP的数据包不能直接在物理的网络上进行发送,比如我在一个网内我知道对方的IP地址192.168.0.1,但是我并不能用这个IP地址去做物理网络的寻址,物理网络实际上是一个以太网,物理网是有自己的一套实现机制,并不认IP地址,那么现在在发送一个数据包的时候,遇到的问题是怎么样从一个IP地址查询变换成为一个以太网的地址,这就是ARP协议的功能,它把三层的目标地址解析成2层的目标地址,便于数据包封装成帧在物理网络上传输。

ARP的实现:

IP->Ethernet的典型环境中:3层是一个IP网络,2层是一个以太网络,在典型的这种情况下,ARP的实现方法叫做广播+cache。首先说的是广播,我们有一个IP地址192.168.0.1,我们没有它的物理地址(以太地址),通过ARP协议在网上广播一下:哪一台机器是192.168.0.1,所有的机器都听到了这个广播,但是只有192.168.0.1这台机器给出回应,并且给出其网卡地址是什么。这样源主机就可以通过广播获得了一个绑定关系,获得了目标主机的IP地址和网卡地址的绑定关系,这个绑定地址并不是用一次就完,而是放在了Cache里面,缓存下来,那么下次再找192.168.0.1就不需要广播了,只要去内存里查表即可得。通过广播+Cache这种方法实现了三层地址到二层地址的变换。

1.检查ARP缓存;

2.发出ARP广播请求;

3.AMAC加入到ARP缓存中

4.回应ARP消息

5.CMAC加入ARP缓存中

6.使用MAC地址封帧发送数据。

 

 

 

 

Cache的问题

Cache分为静/动两种

动态的Cache有寿命的问题

不同系统的动态Cache寿命不同

Cache问题影响系统调试

 

ARP命令:

显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

 

ARP -s inet_addr eth_addr [if_addr]

ARP -d inet_addr [if_addr]

ARP -a [inet_addr] [-N if_addr] [-v]

 

  -a            通过询问当前协议数据,显示当前 ARP 项。

                如果指定 inet_addr,则只显示指定计算机

                IP 地址和物理地址。如果不止一个网络

                接口使用 ARP,则显示每个 ARP 表的项。

  -g            -a 相同。

  -v            在详细模式下显示当前 ARP 项。所有无效项

                和环回接口上的项都将显示。

  inet_addr     指定 Internet 地址。

  -N if_addr    显示 if_addr 指定的网络接口的 ARP 项。

  -d            删除 inet_addr 指定的主机。inet_addr

                以是通配符 *,以删除所有主机。

  -s            添加主机并且将 Internet 地址 inet_addr

                与物理地址 eth_addr 相关联。物理地址是用

                连字符分隔的 6 个十六进制字节。该项是永久的。

  eth_addr      指定物理地址。

  if_addr       如果存在,此项指定地址转换表应修改的接口

                Internet 地址。如果不存在,则使用第一

                个适用的接口。

示例:

  > arp -s 157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。

  > arp -a                                  .... 显示 ARP 表。

 

 

RARP

RARPRreverse,和ARP的协议功能是相反的。源2->3,系统启动时查找自己的IP地址,启动时自己没有IP地址,需要动态的获得一个IP,把自己的MAC地址发到网上,网上有ARPserver,查到自己的IP地址并且反馈IP,以便初始化协议栈,由于存在BOOTP(除了提供IP地址还能提供启动映像文件的比如说操作系统文件网上的路径)、DHCPdynamic host configuration protocol不仅能给出IP地址还能动态的分配IP地址,上网的时候ISP使用DHCP动态的分配一个IP地址)等协议,RARP使用较少。

 

IARP inverse address resolution protocol

3->2,这种变换只在Frame Relay网络中使用,因为在帧中继网络中没有全局MAC地址的概念,它的二层的(数据链路层)的地址都是本地的,也就是说Frame RelayDLCI号码是本地地址,所以解析的结果不能解析到对端的二层地址,只能解析到源端的二层地址。Frame RelayIARP是一个比较复杂的操作。在帧中继中有详细的IARP

原创粉丝点击