TCP/IP的网际层协议——ARP

来源:百度文库 编辑:神马文学网 时间:2024/04/29 06:55:14
MAC:介质访问控制层(Media Access Control,MAC)地址对于每一台设备是全球唯一的,该地址被烧录在网卡(Network Interface Card,NIC)的
硬件电路上。MAC地址由12位十六进制数表示,其中前6位标识网卡的制造厂商,后6位是网卡的序列号。在以太网中,一个主机要和另一个
主机进行通信,必须知道知道目标主机的的MAC地址。
什么是ARP:ARP(Address Resolution Protocol,地址解析协议)用来将IP地址映射到MAC地址,以便设备能在多路访问介质上通信。可以举一个
例子很好的说明ARP是如何工作的:老师要将一封信交给教室里的某个学生,但是老师
并不认识这个学生,她只知道这个学生的姓名(IP),于是她对教室里所有的人说:“谁是王XX,有你的信!”(MAC地址),当王XX听到这个信
息时(地址匹配),他站起来回答,然后老师就知道了他坐在几排几列(MAC地址),最后把信送到他的座位上。
在ARP协议的实现中还有一些应该注意的事项:
每台计算机上都有一个ARP缓冲,它保存了一定数量的从IP地址到MAC地址的映射,同时当一个ARP广播到来时,虽然这个ARP广播可能与它
无关,但ARP协议软件也会把其中的物理地址与IP地址的映射记录下来,这样做的好处是能够减少ARP报文在局域网上发送的次数。
按照缺省设置,ARP高速缓冲中的项目是动态的,ARP缓冲中IP地址与物理地址之间的映射并不是一旦生成就永久有效的,每一个ARP映射表
项都有自己的寿命,如果在一段时间内没有使用,那么这个ARP映射就会从缓冲中删除 ,这一点和交换机MAC地址表的原理一样的。这种老
化机制,可以大大减少ARP缓存表的长度,加快查询速度。
在以太网中,当主机要确定某个IP地址的MAC地址时,它会先检查自己的ARP缓冲区表,如果目标地址不包含在该缓冲表中,主机就会发送一
个ARP请求(广播形式),网段上的任何记住都可以接收到给广播但是只有目标主机才会响应此ARP请求。由于目标主机在收到ARP请求时可以学
习到发送方的IP地址和MAC地址的映射,因此它采用一个单播消息回应请求。
主机A以广播形式发送ARP请求查询IP地址为192.168.1.3的主机的MAC地址,网段上所有的主机都会收到该ARP请求。
主机B、主机D收到主机A发送的ARP请求时,他们发现这个请求不是发给自己的,因此他们忽略这个请求但是他们还是将主机A的IP地址和MAC
地址的映射记录到自己的ARP表中。当主机C收到主机A发来的ARP请求时,它发现这个ARP请求是发给自己的,于是它用单播消息回应ARP请求,
同时记录下其IP地址和MAC地址的映射。
通常ARP协议都在支持广播的网络上使用,如以以太网。但那是ARP数据包不能跨网段使用,也就是说不能跨越路由器(路由器本身用作ARP代
理除外)。但目标网络IP地址和源IP地址不在统一网段上时,就要使用代理ARP。
在PC上使用ARP命令:
Windows操作系统支持ARP命令,使用ARP命令,用户能够查看本地计算机的ARP高速缓冲中的内容。此外,使用ARP命令,也可以人工方式输入
静态的网卡物理/IP地址,用户可以使用这种方式为缺省网关和本地服务器等常用主机进行配置,这将有助于减少网络上的信息量。
常用ARP命令选项如下:
arp -a 或arp -g :用与查看高速缓冲的所有项目。“-a”和“-g”参数的结果是一样的,多年来“-g”一直是UNIX平台上用来显示ARP高速缓存
中素有项目的选项,而Windows用的是arp -a(“-a”可被是为all,即全部的意思),但它也可以接收比较传统的“-g”选项。
arp -a IP:如果你有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓冲项目。
arp -s IP MAC:你可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或
者在出现错误时,人工配置的物理地址将自动更新给项目。
arp -d IP:使用本命令能够人工删除一个静态项目。
IP地址冲突的问题及解决方法:
ARP产生的问题汇总最常见的是IP地址的冲突,这时由于两个不同的主机使用相同的IP地址而产生的,在任何互联网中,IP地址必须是唯一的。
当接口初始化时,它发送一个含有其IP地址的ARP请求,如果收到回应,Windows就会向刃虎报告这个IP地址已经被别人占用了;如果没有收
到回应,它就认为IP地址没有被使用。
非常有趣的是:Windows对待IP地址是以先来后到的顺序分配,如果已经有人先占了,那么本机的网络接口就会被禁用。这也是非常烦人的特
点,因为一旦开机后有了第一次冲突,以后的任何网络操作就都无效了。Windows XP对这点有了一定的改进,它在发现冲突以后并不立即禁
用接口,而是允许用户进行修复。
在Cisco路由器上使用ARP相关的命令:
在Cisco路由器上,使用show ip arp命令可以查看路由器当前的ARP表。
参数 解析
Protocol 网络地址所使用的协议,这里的协议是IP
Address 网络地址,这里指IP地址
Age(min) ARP缓冲条目的寿命,其中“-”代表本地连接,即路由器接口本身的缓冲条目
Hardware Addr MAC地址
Type ARP条目的封装类型,其中ARPA代表标准的以太网地址解析类型(RFC826定义),snap 代
表FDDI和TokenRing地址解析类型(RFC1042定义)
Interface 路由器上学习到此ARP条目的接口
ARP不仅仅存在IP网络中,其他网络(如IPX、Applettalk等)也存在ARP。
用户也可以在Cisco路由器中手动地指定静态ARP映射条目,通常可以为缺省网关和本地服务器等常用主机进行静态映射
这样有助于减少网络上的信息量。
arp ip-address hardware-address type[alias]
参数 解释
ip-address IP地址
hardware-address MAC地址
type ARP条目的封装类型,以太网为ARPA
[alias] 可选参数,如果配置了这个参数,当Cisco路由器接收到关于这个条目中的IP地址请
求时,它会自动回应ARP请求,就像它自己拥有这个IP地址一样。
ARP命令的使用
Router#conft
Router(config)#arp 10.21.9.254 2222.2222.2222 arpa alias
要在Cisco路由器上配置静态ARP映射条目,首先进入全局配置模式,然后再输入相应的命令。
RARP
通常主机的IP地址都是保存在硬盘中的,Windows子啊启动时会找到它,但是对于那些把文件存放在远程服务器上的工作站
来说,它们启动时是如何获得IP地址的呢?
反向(Reverse Address Ressolution Rrotocol,RARP)是ARP的逆过程,RAPR就是用户那些不知道自己IP地址的无盘工作站或者无
配置的路由器。使用RAPR时,站点广播一个包含自己MAC地址的RARP请求,网络上所有的主机都会接收到该请求,但只有
被授权的RARP服务器才能处理这个请求。RARP服务器有一张映射表,它可以查出该MAC地址与哪个IP地址相对应,然后把
响应发送给源站点。
如果某个网段上存在多个被授权的RARP服务器时,这些RARP服务器都会以单播方式响应RARP请求。不过当源主机接收到一
个RARP应答时,它只接收第一个到达的RARP应答。
ARP和RARP都是在数据链路上实现的。
动态主机配置协议(DHCP)是现代RARP的实现。
DHCPDHCP是将IP地址和一些TCP/IP配置分配给网络中的计算机的一项服务和协议。它克服了手动配置TCP/IP客户端及维护IP地址
的局限性。
DHCP是Bootstrap Protocol(引导协议)的扩展。BOOTP的主要限制是在管理员必须手动为每个客户端在服务器上输入配置信息,
DHCP对BOOTP进行了改进,它专门设计了一个地址池,从地址池中动态地为客户机分配IP地址和TCP/IP配置
使用DHCP有以下几点好处:
DHCP省去了很多维护工作,管理员无须到每台客户机上去设置TCP/IP设置、无须维护IP地址分配表。
当网络中的IP配置需要更换时(例如IP地址从192.168.1.0/24换到10.10.0.0/16、或者DNS服务器地址需要更换等),使用DHCP,管
理员只需在DHCP服务器上更改相应的设置就可以轻松完成网络升级。
DHCP大大降低了IP地址冲突的问题。
DHCP通信过程
一台DHCP服务器可以是太运行Windows 2000 Server或Windows Server 2003的计算机。也可以是一台Cisco路由器。
DHCP客户端首次初始化时会向DHCP服务器发送一个请求(DHCPDISCOVER),请求获得IP寻址信息,这个寻址信息包括IP地址
子网掩码、默认网关、DNS服务器地址等,请求中间也包含了客户机自己的MAC地址信息。DHCPDISCOVER以及广播形式发送
网段上的所有社别都护收到这个请求。
当DHCP服务器接收到请求时,它会从自己的地址池中选择一个IP地址分配给客户机,并且把其他TCP/IP配置一起发送过去
(DHCPOFFER)。DHCPOFFER以单播形式发送,因为它是针对某个具体主机的消息,DHCP服务器可以从DHCPDISCOVER消息中
获得客户即的MAC地址。
当客户端接收到服务器所提供的信息时,它又以广播方式发送一个DHCPREQUEST消息,指明:我需要你的服务。
为什么还要以广播形式发送DHCPREQUEST消息呢?如果一个网段上存在多个DHCP服务器,那么DHCP客户端可能会收到多个
DHCP服务器响应的DHCPOFFER消息,DHCP客户端只会选择最先收到的那个DHCPOFFER消息。以广播方式发送DHCPREQUEST
消息有两个作用:
一是通知那个服务器:我已经收到你提供的IP地址,我需要你的服务;
二是通知网络上其他DHCP服务器:我拒绝 你们提供的IP寻址信息。
DHCP服务器接收到DHCPREQUEST消息后,它将做提供的IP地址和其他配置交给数据库,并且向DHCP客户端以单播形式发送一个
DHCPACK消息,确认DHCP过程已经完成。
这样这个IP地址就会租给这个客户端一段时间,在租用期间,客户端每次登录时都会像服务器发送这个IP地址的续订请求(DHCPREQUEST)。
如果租用期到了,但是客户端没有续定,这个IP地址就会退回到DHCP服务器的地址池中等待重新分配。
DHCP地址的分配类型
DHCP的核心功能是分配IP地址,这个IP地址对每个客户机都必须是唯一的。下面定义了类型的IP地址分配
1.静态分配
管理员将某个IP地址固定地分配给某个主机,服务器接收到该主机的请求时就将该地址提供给这个主机,并且该地址只能分配给
该主机。静态分配一般用于为网络中的服务器或者固定主机分配IP地址。
2.动态分配
管理员首先在DHCP服务器上定义一个地址池。当服务器收到DHCP请求时,它从地址池中取出一个IP地址分配给客户机(租借)。
如果租用到期,并且客户端没有续订,这个IP地址就会退出到DHCP服务器的地址池中等待重新分配,它有可能分配给另一台主
机。因此处于动态DHCP分配作用能够下的主机的IP地址不是固定的。
DHCP还可以帮客户端指定网关、子网掩码、DNS服务器、WINS服务器等项目,因此在客户端方面,除了选中“自动获得IP地址”
选项之外,几乎无须做任何的IP环境设置。