第九章 ARP与ICMP
学习目标:
1、 了解ARP与ICMP两种协议的作用及运作方式
2、 了解ARP与ICMP的工具程序
本章重点:
l 地址分辨协议(ARP)
l ARP工具程序
l ICMP(Internet Control Message Protocol)
本章难点:
l ARP工具程序
l ICMP(Internet Control Message Protocol)
讲授方式:
l 面授,实验
课时分配: 2 2
思考题:习题集九
讲授内容:
除了用于数据传送的IP协议外,因特网还有多个用于网络层的控制协议,包括ICMP,ARP,RARP以及BOOTP。本章主要介绍有关ARP与ICMP的内容。
9-1 ARP简介
一、地址分辨协议(ARP)
虽然因特网上的每个机器都有一个或多个IP地址,却不能真正用它们来发送分组,因为主机名和IP地址都是逻辑地址,数据链路层硬件不能识别它们。如今,大多数主机都是通过一个只识别局域网地址的网络接口卡连上局域网的。例如,每个出厂的以太网卡都有一个48位以太网地址。以太网卡的生产商向一个权威机构申请一大批地址,以保证没有两个相同地址的网卡,避免当两个网卡用于同一个局域网时出现冲突。这些网卡发送和接收基于48位的以太网地址的帧,它们完全不知道32位IP地址。
真正通信时是要使用物理地址经过物理网络(如以太网)来完成的,那么,IP地址如何映射到数据链路层的物理地址上。
地址分辨协议(ARP,Address Resolution Protocol)就是用来将IP地址翻译成物理网络地址的。当应用程序把IP分组交给网络接口驱动程序时,由接口驱动程序完成IP地址到物理地址的映射请求,若在本地映射表中找不到,该接口驱动程序就广播一个ARP分组给本地网所有主机。这时网络上所有支持ARP的主机便会收到ARP请求分组,但是只有ARP分组中IP地址和自己的IP地址一致的主机才会响应,将它的物理地址告诉给请求者。值得注意的是,ARP只适应于具有广播功能的网络,如以太网,不适应点到点网络。
ARP是TCP/IP协议的一部分,它一般由TCP/IP内核来完成,用户和应用程序不直接与ARP打交道。几乎因特网上的每台机器都运行它。
二、 ARP运作的方式:整个过程是由ARP请求(ARP Request)与ARP应答
(ARP Reply)两种信息包所组成。由于ARP在解析过程中,ARP请求信息包为以太网广播信息包,即ARP请求无法通过路由器传送到其他网络。因此ARP仅能解析同一网络内的MAC地址,无法解析其他网络的MAC地址。
三、ARP与IP路由
由于ARP只能解析同一网络内的MAC地址,因此,在整个IP路由过程中,会出现多次的ARP地址解析,见下图:
四、ARP高速缓存
可以对ARP进行各种优化以使其更有效率。例如高速缓存的设计,一旦某机器运行ARP,它便将映射结果缓存起来,以备后用。下一次与同一机器联系时,就可以直接在其缓存中找到映射关系,因此不需再发一次广播。实际上,所有以太网上的机器都可以将这一映射结果加入到自己的ARP缓存中。
当以太网卡拆除并换上新卡(新以太网地址)时,为了使地址映射可变,ARP缓存区中的项每过几秒钟就会刷新一次。
9-2 ARP工具程序
大部分操作系统都会提供ARP工具程序。以下介绍2种ARP工具程序:Win_dows 98的ARP.EXE与Linux的ARPWATCH。
一、ARP方便用户查看与编辑ARP高速缓存的内容。ARP.EXE主要提供3项功能,说明如下。
1、查看目前记录。
语法:arp -a
2、添加记录
在ARP高速缓存中添加一条静态记录。
语法: arp -s[IP地址][MAC地址]
3、 删除记录
删除ARP高速缓存中制定的记录。
语法:arp –d[IP地址]
二、ARPWATCH
Linux的ARPWATcH可检测与记录局域网中的ARP信息包,并通过电子邮件将
结果报告给管理员,或直接将结果显示在屏幕上
1、 执行arpwatch后,若检测到新的ARP记录,即通过电子邮件来报告
2、若要直接在屏幕上显示结果,执行:
arpwatch -d
9-3 ICMP简介
因特网的操作被路由器严密监视。当发生意外事故时,这些事件由ICMP(Internet Control Message Protocol)报告,它也可以用来检测因特网。下图中列出了最重要的ICMP消息类型。每个ICMP消息类型都被封装于IP分组中。
主要的ICMP消息类型
9-4 ICMP工具程序
大部分操作系统都会提供一些ICMP工具程序,方便用户测试网络连线状况。以下以Windows 98为例,介绍数种常见的ICMP工具程序
一、1、PING工具程序可用来发出ICMP响应请求信息包。网管人员可利用PING工具程序,发出响应请求给特定的主机或路由器,以诊断网络的问题。
2、利用PING来诊断网络问题
具体步骤如下:
l ping 127.0.0.1
主要是用来测试TCP/IP协议是否正常运作。
l ping本机IP地址
若步骤1中本机TCP/lP设置正确,接下来可试试看网络设备是否正常。若网络设
备有问题(例如:旧式网卡的IRQ设置有误),则不会响应。
l ping对外连接的路由器
就是PING“默认网关”的IP地址。若成功,代表内部网络与对外连接的路
由器正常。 .
l ping互联网上计算机的IP地址
随便找一台互联网上的计算机,PING它的IP地址。如果有响应,代表
IP设置全部正常。
l ping互联网上计算机的网址
您可以随便找一台互联网上的计算机,PING它的网址,例如:WWW.Sina.com.cn
(Sina的WWW服务器)。如果有响应,代表DNS设置无误。
3、PlNG的语法与参数
PING的语法如下:
PING[参数][网址或Ip地址]
表9-1 PING的参数
参数 |
意义 |
-a 行 |
执行DNS反向查询(由IP地址查出FQDN,详见第12章),默认不会执 此查询。 |
-i<存活时间> |
设置IP信息包的存活时间,默认为32。 |
-n<次数> . |
每次执行时,发出响应请求信息包的数目,默认为4次。 |
-t |
持续发出响应请求直到按ctrl c才停止。 |
-w<等待时间> |
等待响应应答的时间。<等待时间>的单位为千分之一秒,默认值为1000, 也就是1秒 |
二、TRACERT
TRACERT工具程序可找出至目的IP地址所经过的路由器。
1、TRACERT的语法与参数
TRACERT的语法如下:
TRAcERT[参数][网址或IP地址]
以下为TRACERT常用的参数(见表9-2)。
表9-2 TRACERT的参数
参数 |
意义 |
-d |
TRACERT默认会执行DNS反向查询。若不要反向查询,请使用此参数。 |
-h<存活时问> |
TRACERT每次发出响应请求时存活时间会加l。本参数可设置存活时间最大 值,默认为30~ |
-w<等待时间> |
等待传送超时或响应应答的时间。<等待时间>的单位为千分之一秒,默认值 为1000,亦即1秒。 |